diff --git a/dist/mapboxgl/iclient-mapboxgl.css b/dist/mapboxgl/iclient-mapboxgl.css index 75c3451f67..6b26f2d189 100644 --- a/dist/mapboxgl/iclient-mapboxgl.css +++ b/dist/mapboxgl/iclient-mapboxgl.css @@ -3,7 +3,7 @@ * iclient-mapboxgl * Copyright© 2000 - 2026 SuperMap Software Co.Ltd * license: Apache-2.0 - * version: v12.1.0-r + * version: v12.1.1-dev * */ @@ -12,7 +12,7 @@ src: url(data:application/vnd.ms-fontobject;base64,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AAAAPwAA5nwAAOZ8AAAAQAAA5n0AAOZ9AAAAQQAA5n4AAOZ+AAAAQgAA5n8AAOZ/AAAAQwAA5oAAAOaAAAAARAAA5oEAAOaBAAAARQAA5oIAAOaCAAAARgAA5oMAAOaDAAAARwAA5oQAAOaEAAAASAAA5oUAAOaFAAAASQAA5oYAAOaGAAAASgAA5ocAAOaHAAAASwAA5ogAAOaIAAAATAAA5okAAOaJAAAATQAA5ooAAOaKAAAATgAA5osAAOaLAAAATwAA5owAAOaMAAAAUAAA5o0AAOaNAAAAUQAA5o4AAOaOAAAAUgAA5o8AAOaPAAAAUwAA5pAAAOaQAAAAVAAA5pEAAOaRAAAAVQAA5pIAAOaSAAAAVgAA5pMAAOaTAAAAVwAA5pQAAOaUAAAAWAAA5pUAAOaVAAAAWQAA5pYAAOaWAAAAWgAA5pcAAOaXAAAAWwAA5pgAAOaYAAAAXAAA5pkAAOaZAAAAXQAA5poAAOaaAAAAXgAA5psAAOabAAAAXwAA5pwAAOacAAAAYAAA5p0AAOadAAAAYQAA5p4AAOaeAAAAYgAA5p8AAOafAAAAZQAA5qAAAOagAAAAYwAA5qEAAOahAAAAZAAA5qIAAOaiAAAAZgAA5qMAAOajAAAAZwAA5qQAAOakAAAAaAAA5qUAAOalAAAAaQAA5qYAAOamAAAAagAA5qcAAOanAAAAawAA5qgAAOaoAAAAbAAA5qkAAOapAAAAbQAA5qoAAOaqAAAAbgAA5qsAAOarAAAAbwAA5qwAAOasAAAAcAAA5q0AAOatAAAAcQAA5q4AAOauAAAAcgAA5q8AAOavAAAAcwAA5rAAAOawAAAAdAAA5rEAAOaxAAAAdQAA5rIAAOayAAAAdgAA5rMAAOazAAAAdwAA5rQAAOa0AAAAeAAA5rUAAOa1AAAAeQAA5rYAAOa2AAAAegAA5rcAAOa3AAAAewAA5rgAAOa4AAAAfAAA5rkAAOa5AAAAfQAA5roAAOa6AAAAfgAA5rsAAOa7AAAAfwAA5rwAAOa8AAAAgAAA5r0AAOa9AAAAgQAA5r4AAOa+AAAAggAA5r8AAOa/AAAAgwAA5sAAAObAAAAAhAAA5sEAAObBAAAAhQAA5sIAAObCAAAAhgAA5sMAAObDAAAAhwAA5sQAAObEAAAAiAAA5sUAAObFAAAAiQAA5sYAAObG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dABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUABG1vcmUGZGVsZXRlB3Zpc2libGUHem9vbS10bwZvdXRwdXQHb3BhY2l0eQpsYXllci1pbmZvBHNhdmULbGF5ZXItc3R5bGUKbGluZS1sYXllcgRza2luDG1hcmtlci1sYXllcgtwb2ludC1sYXllcg1wb2x5Z29uLWxheWVyCWludmlzaWJsZQZzZWFyY2gEZWRpdAZsYXllcnMJYmFzZWxheWVyB3NldHRpbmcDYWRkB3ByZXZpZXcHcmVmcmVzaA5zb2xpZC10cmlhbmdsZQtyb2FkbmV0d29yawZyZXR1cm4GcGFja3VwBXNoYXJlDGJhY2tob21lcGFnZQZNeU1hcHMJQ3JlYXRlTWFwCGZlZWRiYWNrBXNraW4xBlNoYXBlLQdhY2NvdW50B1NoYXBlLTEHU2hhcGUtMgdTaGFwZS0zB1NoYXBlLTQHU2hhcGUtNQdTaGFwZS02B1NoYXBlLTcHU2hhcGUtOAdTaGFwZS05CFNoYXBlLTEwCFNoYXBlLTExCFNoYXBlLTEyCFNoYXBlLTEzCFNoYXBlLTE0CFNoYXBlLTE1CFNoYXBlLTE2CFNoYXBlLTE3CFNoYXBlLTE4CFNoYXBlLTE5CFNoYXBlLTIwCFNoYXBlLTIxCFNoYXBlLTIyCFNoYXBlLTIzCFNoYXBlLTI0CFNoYXBlLTI1CFNoYXBlLTI2CFNoYXBlLTI3CFNoYXBlLTI4CFNoYXBlLTI5CFNoYXBlLTMwCFNoYXBlLTMxCFNoYXBlLTMyCFNoYXBlLTMzCFNoYXBlLTM0CFNoYXBlLTM1CFNoYXBlLTM2CFNoYXBlLTM3CFNoYXBlLTM4CFNoYXBlLTM5CFNoYXBlLTQwCFNoYXBlLTQxCFNoYXBlLTQyCFNoYXBlLTQzCFNoYXBlLTQ0CFNoYXBlLTQ1CFNoYXBlLTQ2CFNoYXBlLTQ3CFNoYXBlLTQ4CFNoYXBlLTQ5CFNoYXBlLTUwCFNoYXBlLTUxCFNoYXBlLTUyCFNoYXBlLTUzCFNoYXBlLTU0CFNoYXBlLTU1CFNoYXBlLTU2CFNoYXBlLTU3CFNoYXBlLTU4CFNoYXBlLTU5BE92YWwJUmVjdGFuZ2xlBFN0YXIIVHJpYW5nbGUOcmVzdG9yZWRlZmF1bHQJdXBsb2FkaW5nBWVycm9yBnpvb21pbgd6b29tb3V0BWZpcnN0BG5leHQEbGFzdARwcmV2CHBvaS1sb2FkCHBvaS1zYXZlBGZvbGQMbGFiZWwtZGVsZXRlBnVwbG9hZAZ1bmZvbGQFY2xvc2UEbWFyawd0cmFmZmljC2Z1bGwtZmlndXJlB21lYXN1cmUMZGlzcGxheS1saXN0CWhpZGUtbGlzdAZyZW5hbWUEY29weQdxcS16b25lCnNpbmEtd2VpYm8MY29sb3ItY2hhbmdlEGNyZWF0LWN1c3RvbS1tYXAKY3VzdG9tLW1hcAtsZWdlbmQtZm9sZA1sZWdlbmQtdW5mb2xkCmxlZ2VuZC1iaWcJYXR0cmlidXRlDGxlZ2VuZC1zbWFsbAxjbG9zZS1sZWdlbmQKZm9udC1jb2xvcgRib2xkB2l0YWxpY3MEZm9udA1qdXN0aWZ5LWFsaWduD21pZGRsZS1hbGlnbm1lbglmb250LXNpemUJc3RyaWtlb3V0CnRleHQtbGF5ZXIPcmlnaHQtYWxpZ25tZW50DmxlZnQtYWxpZ25tZW50FHRyYW5zcGFyZW50LWJhY2tncm91CXVuZGVybGluZQVxdWVyeQAAAAA=#iefix) format('embedded-opentype'), /* IE6-IE8 */ url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff'), url(data:font/ttf;base64,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AADmIgAAAAUAAOYlAADmJQAAAAYAAOYnAADmJwAAAAcAAOYoAADmKAAAAAgAAOYpAADmKQAAAAkAAOYqAADmKgAAAAoAAOYrAADmKwAAAAsAAOYsAADmLAAAAAwAAOYtAADmLQAAAA0AAOYuAADmLgAAAA4AAOYvAADmLwAAAA8AAOYwAADmMAAAABAAAOYzAADmMwAAABEAAOY0AADmNAAAABIAAOY1AADmNQAAABMAAOY2AADmNgAAABQAAOY3AADmNwAAABYAAOY4AADmOAAAABUAAOY5AADmOQAAABcAAOY6AADmOgAAABgAAOY7AADmOwAAABkAAOY8AADmPAAAABoAAOY9AADmPQAAABsAAOY+AADmPgAAABwAAOZZAADmWQAAAB0AAOZaAADmWgAAAB4AAOZbAADmWwAAAB8AAOZcAADmXAAAACAAAOZdAADmXQAAACEAAOZeAADmXgAAACIAAOZfAADmXwAAACMAAOZgAADmYAAAACQAAOZhAADmYQAAACUAAOZiAADmYgAAACYAAOZjAADmYwAAACcAAOZkAADmZAAAACgAAOZlAADmZQAAACkAAOZmAADmZgAAACoAAOZnAADmZwAAACsAAOZoAADmaAAAACwAAOZpAADmaQAAAC0AAOZqAADmagAAAC4AAOZrAADmawAAAC8AAOZsAADmbAAAADAAAOZtAADmbQAAADEAAOZuAADmbgAAADIAAOZvAADmbwAAADMAAOZwAADmcAAAADQAAOZxAADmcQAAADUAAOZyAADmcgAAADYAAOZzAADmcwAAADcAAOZ0AADmdAAAADgAAOZ1AADmdQAAADkAAOZ2AADmdgAAADoAAOZ3AADmdwAAADsAAOZ4AADmeAAAADwAAOZ5AADmeQAAAD0AAOZ6AADmegAAAD4AAOZ7AADmewAAAD8AAOZ8AADmfAAAAEAAAOZ9AADmfQAAAEEAAOZ+AADmfgAAAEIAAOZ/AADmfwAAAEMAAOaAAADmgAAAAEQAAOaBAADmgQAAAEUAAOaCAADmggAAAEYAAOaDAADmgwAAAEcAAOaEAADmhAAAAEgAAOaFAADmhQAAAEkAAOaGAADmhgAAAEoAAOaHAADmhwAAAEsAAOaIAADmiAAAAEwAAOaJAADmiQAAAE0AAOaKAADmigAAAE4AAOaLAADmiwAAAE8AAOaMAADmjAAAAFAAAOaNAADmjQAAAFEAAOaOAADmjgAAAFIAAOaPAADmjwAAAFMAAOaQAADmkAAAAFQAAOaRAADmkQAAAFUAAOaSAADmkgAAAFYAAOaTAADmkwAAAFcAAOaUAADmlAAAAFgAAOaVAADmlQAAAFkAAOaWAADmlgAAAFoAAOaXAADmlwAAAFsAAOaYAADmmAAAAFwAAOaZAADmmQAAAF0AAOaaAADmmgAAAF4AAOabAADmmwAAAF8AAOacAADmnAAAAGAAAOadAADmnQAAAGEAAOaeAADmngAAAGIAAOafAADmnwAAAGUAAOagAADmoAAAAGMAAOahAADmoQAAAGQAAOaiAADmogAAAGYAAOajAADmowAAAGcAAOakAADmpAAAAGgAAOalAADmpQAAAGkAAOamAADmpgAAAGoAAOanAADmpwAAAGsAAOaoAADmqAAAAGwAAOapAADmqQAAAG0AAOaqAADmqgAAAG4AAOarAADmqwAAAG8AAOasAADmrAAAAHAAAOatAADmrQAAAHEAAOauAADmrgAAAHIAAOavAADmrwAAAHMAAOawAADmsAAAAHQAAOaxAADmsQAAAHUAAOayAADmsgAAAHYAAOazAADmswAAAHcAAOa0AADmtAAAAHgAAOa1AADmtQAAAHkAAOa2AADmtgAAAHoAAOa3AADmtwAAAHsAAOa4AADmuAAAAHwAAOa5AADmuQAAAH0AAOa6AADmugAAAH4AAOa7AADmuwAAAH8AAOa8AADmvAAAAIAAAOa9AADmvQAAAIEAAOa+AADmvgAAAIIAAOa/AADmvwAAAIMAAObAAADmwAAAAIQAAObBAADmwQAAAIUAAObCAADmwgAAAIYAAObDAADmwwAAAIcAAObEAADmxAAAAIgAAObFAADmxQAAAIkAAObGAADmxgAAAIoAAObHAADmxwAAAIsAAObIAADmyAAAAIwAAObJAADmyQAAAI0AAObKAADmygAAAI4AAObLAADmywAAAI8AAObMAADmzAAAAJAAAObNAADmzQAAAJEAAObOAADmzgAAAJIAAObPAADmzwAAAJMAAAAAAC4AuAEcAXYByAH2AmACogMOAz4DxgP2BDgEqAUcBWgFsgXiBrAHLgdCB7QIYgh8COIJAglICYwKBgpaCqwK/gt8C6AMRAywDPANYA3KDgYOeA7e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AUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAARtb3JlBmRlbGV0ZQd2aXNpYmxlB3pvb20tdG8Gb3V0cHV0B29wYWNpdHkKbGF5ZXItaW5mbwRzYXZlC2xheWVyLXN0eWxlCmxpbmUtbGF5ZXIEc2tpbgxtYXJrZXItbGF5ZXILcG9pbnQtbGF5ZXINcG9seWdvbi1sYXllcglpbnZpc2libGUGc2VhcmNoBGVkaXQGbGF5ZXJzCWJhc2VsYXllcgdzZXR0aW5nA2FkZAdwcmV2aWV3B3JlZnJlc2gOc29saWQtdHJpYW5nbGULcm9hZG5ldHdvcmsGcmV0dXJuBnBhY2t1cAVzaGFyZQxiYWNraG9tZXBhZ2UGTXlNYXBzCUNyZWF0ZU1hcAhmZWVkYmFjawVza2luMQZTaGFwZS0HYWNjb3VudAdTaGFwZS0xB1NoYXBlLTIHU2hhcGUtMwdTaGFwZS00B1NoYXBlLTUHU2hhcGUtNgdTaGFwZS03B1NoYXBlLTgHU2hhcGUtOQhTaGFwZS0xMAhTaGFwZS0xMQhTaGFwZS0xMghTaGFwZS0xMwhTaGFwZS0xNAhTaGFwZS0xNQhTaGFwZS0xNghTaGFwZS0xNwhTaGFwZS0xOAhTaGFwZS0xOQhTaGFwZS0yMAhTaGFwZS0yMQhTaGFwZS0yMghTaGFwZS0yMwhTaGFwZS0yNAhTaGFwZS0yNQhTaGFwZS0yNghTaGFwZS0yNwhTaGFwZS0yOAhTaGFwZS0yOQhTaGFwZS0zMAhTaGFwZS0zMQhTaGFwZS0zMghTaGFwZS0zMwhTaGFwZS0zNAhTaGFwZS0zNQhTaGFwZS0zNghTaGFwZS0zNwhTaGFwZS0zOAhTaGFwZS0zOQhTaGFwZS00MAhTaGFwZS00MQhTaGFwZS00MghTaGFwZS00MwhTaGFwZS00NAhTaGFwZS00NQhTaGFwZS00NghTaGFwZS00NwhTaGFwZS00OAhTaGFwZS00OQhTaGFwZS01MAhTaGFwZS01MQhTaGFwZS01MghTaGFwZS01MwhTaGFwZS01NAhTaGFwZS01NQhTaGFwZS01NghTaGFwZS01NwhTaGFwZS01OAhTaGFwZS01OQRPdmFsCVJlY3RhbmdsZQRTdGFyCFRyaWFuZ2xlDnJlc3RvcmVkZWZhdWx0CXVwbG9hZGluZwVlcnJvcgZ6b29taW4Hem9vbW91dAVmaXJzdARuZXh0BGxhc3QEcHJldghwb2ktbG9hZAhwb2ktc2F2ZQRmb2xkDGxhYmVsLWRlbGV0ZQZ1cGxvYWQGdW5mb2xkBWNsb3NlBG1hcmsHdHJhZmZpYwtmdWxsLWZpZ3VyZQdtZWFzdXJlDGRpc3BsYXktbGlzdAloaWRlLWxpc3QGcmVuYW1lBGNvcHkHcXEtem9uZQpzaW5hLXdlaWJvDGNvbG9yLWNoYW5nZRBjcmVhdC1jdXN0b20tbWFwCmN1c3RvbS1tYXALbGVnZW5kLWZvbGQNbGVnZW5kLXVuZm9sZApsZWdlbmQtYmlnCWF0dHJpYnV0ZQxsZWdlbmQtc21hbGwMY2xvc2UtbGVnZW5kCmZvbnQtY29sb3IEYm9sZAdpdGFsaWNzBGZvbnQNanVzdGlmeS1hbGlnbg9taWRkbGUtYWxpZ25tZW4JZm9udC1zaXplCXN0cmlrZW91dAp0ZXh0LWxheWVyD3JpZ2h0LWFsaWdubWVudA5sZWZ0LWFsaWdubWVudBR0cmFuc3BhcmVudC1iYWNrZ3JvdQl1bmRlcmxpbmUFcXVlcnkAAAAA) format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ - url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPCEtLQoyMDEzLTktMzA6IENyZWF0ZWQuCi0tPgo8c3ZnPgo8bWV0YWRhdGE+CkNyZWF0ZWQgYnkgaWNvbmZvbnQKPC9tZXRhZGF0YT4KPGRlZnM+Cgo8Zm9udCBpZD0ic3VwZXJtYXBvbC1pY29ucyIgaG9yaXotYWR2LXg9IjEwMjQiID4KICA8Zm9udC1mYWNlCiAgICBmb250LWZhbWlseT0ic3VwZXJtYXBvbC1pY29ucyIKICAgIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICBmb250LXN0cmV0Y2g9Im5vcm1hbCIKICAgIHVuaXRzLXBlci1lbT0iMTAyNCIKICAgIGFzY2VudD0iODk2IgogICAgZGVzY2VudD0iLTEyOCIKICAvPgogICAgPG1pc3NpbmctZ2x5cGggLz4KICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Im1vcmUiIHVuaWNvZGU9IiYjNTg5MDk7IiBkPSJNNTMwLjI4NTcxNCAxMjhhOTEuNDI4NTcxIDkxLjQyODU3MSAwIDEgMSAwLTE4Mi44NTcxNDMgOTEuNDI4NTcxIDkxLjQyODU3MSAwIDAgMSAwIDE4Mi44NTcxNDN6IG0wIDM2NS42NDExNDNhOTEuNDI4NTcxIDkxLjQyODU3MSAwIDEgMSAwLTE4Mi44NTcxNDMgOTEuNDI4NTcxIDkxLjQyODU3MSAwIDAgMSAwIDE4Mi44NTcxNDN6IG0wIDE4Mi44NTcxNDNhOTEuNDI4NTcxIDkxLjQyODU3MSAwIDEgMSAwIDE4Mi44NTcxNDMgOTEuNDI4NTcxIDkxLjQyODU3MSAwIDAgMSAwLTE4Mi44NTcxNDN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZGVsZXRlIiB1bmljb2RlPSImIzU4OTExOyIgZD0iTTEzNS44ODE0OC0xMTQuOTgyNDMxYTEwNy41MDQ2NDIgMTA3LjUwNDY0MiAwIDAgMC04LjU1NjQ5MiA4LjU1NjQ5MmMzLjE0NDY5NC0zLjA3MTU2MSA1LjcwNDMyOC02LjA2OTk5IDguNTU2NDkyLTguNTU2NDkyeiBtLTEwLjk2OTg2MSA0LjY4MDQ3NGMtMi45MjUyOTYgMi43NzkwMzItNS44NTA1OTMgNS40ODQ5MzEtOC42Mjk2MjUgOC41NTY0OTIgMi43MDU4OTktMy4wNzE1NjEgNS42MzExOTYtNS44NTA1OTMgOC41NTY0OTItOC41NTY0OTJ6TTEwMTEuNzg4MzUgNzM3LjA4MzI3NGE0Mi45Mjg3MjQgNDIuOTI4NzI0IDAgMCAxLTI5Ljk4NDI4OCAxMi4yMTMxMTJoLTIxMC4xODI1NDV2NjUuODE5MTY5Qzc3MS42OTQ2NSA4NTkuNzk5NDU3IDczNS42NDAzNzIgODk2IDY5MS4zOTUyNjQgODk2SDMzMi4zODgyNjVDMjg4LjE0MzE1NyA4OTYgMjUyLjA4ODg3OSA4NTkuNzk5NDU3IDI1Mi4wODg4NzkgODE1LjE4ODY4N3YtNjUuODkyMzAxSDQwLjczNjIxNUE0MC45NTQxNDkgNDAuOTU0MTQ5IDAgMCAxIDAuMDAxNDYzIDcwOC4xOTU5NzJjMC0yMi42NzEwNDcgMTguMjgzMTAyLTQwLjk1NDE0OSA0MC44MDc4ODQtNDAuOTU0MTQ5aDM1Ljk4MTE0NnYtNzE0LjI4NDI0NmMwLTQ0LjYxMDc3IDM1Ljk4MTE0Ni04MC44MTEzMTMgODAuMjk5Mzg2LTgwLjgxMTMxMmg3MjEuMDg1NTU5YzQ0LjMxODI0IDAgODAuMjk5Mzg2IDM2LjIwMDU0MyA4MC4yOTkzODYgODAuODExMzEyVjY2Ny4xNjg2OWgyMy40MDIzNzFjMjIuNTI0NzgyIDAgNDEuOTc4MDAzIDE4LjI4MzEwMiA0MS45NzgwMDMgNDEuMDI3MjgyYTQwLjY2MTYyIDQwLjY2MTYyIDAgMCAxLTExLjk5MzcxNSAyOC44ODczMDJ6TTMzMi4yNDIgODE0Ljk2OTI5aDM1OC43MTQ0Njl2LTY2LjMzMTA5NUgzMzIuMjQyeiBtNTQ1Ljc4NzE3My04NjEuODY1NDQ4SDE1Ny4wODk4NzlWNjY3LjI0MTgyM2g3MjAuOTM5Mjk0ek01MTEuMzQzMjcxIDUyOS42MDY2MjhjLTIyLjY3MTA0NyAwLTQwLjk1NDE0OS0xOC41MDI1LTQwLjk1NDE0OS00MS4zMTk4MTJ2LTM4Mi44NDgxNjRjMC0yMi43NDQxNzkgMTguMjgzMTAyLTQxLjI0NjY3OSA0MC45NTQxNDktNDEuMjQ2Njc5czQxLjAyNzI4MiAxOC41MDI1IDQxLjAyNzI4MiA0MS4yNDY2NzlWNDg4LjM1OTk0OWE0MS4xMDA0MTQgNDEuMTAwNDE0IDAgMCAxLTQwLjk1NDE0OSA0MS4zMTk4MTF6IG0tMjIyLjEwMzEyOCAwYy0yMi42NzEwNDcgMC00MC45NTQxNDktMTguNTAyNS00MC45NTQxNDktNDEuMzE5ODEydi0zODIuODQ4MTY0YzAtMjIuNzQ0MTc5IDE4LjI4MzEwMi00MS4yNDY2NzkgNDAuOTU0MTQ5LTQxLjI0NjY3OXM0MC45NTQxNDkgMTguNTAyNSA0MC45NTQxNDkgNDEuMjQ2Njc5VjQ4OC4zNTk5NDlhNDEuMTAwNDE0IDQxLjEwMDQxNCAwIDAgMS00MC45NTQxNDkgNDEuMzE5ODExeiBtNDQyLjAxMjI4NCAwYy0yMi42NzEwNDcgMC00MS4wMjcyODItMTguNTAyNS00MS4wMjcyODItNDEuMzE5ODEydi0zODIuODQ4MTY0YzAtMjIuNzQ0MTc5IDE4LjI4MzEwMi00MS4yNDY2NzkgNDAuOTU0MTUtNDEuMjQ2Njc5czQxLjAyNzI4MiAxOC41MDI1IDQxLjAyNzI4MSA0MS4yNDY2NzlWNDg4LjM1OTk0OWE0MS4xMDA0MTQgNDEuMTAwNDE0IDAgMCAxLTQwLjk1NDE0OSA0MS4zMTk4MTF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idmlzaWJsZSIgdW5pY29kZT0iJiM1ODkxMjsiIGQ9Ik01MTIuMDM4MDM0LTU0Ljg1NzE0M0MxNzkuNzUwMDM0LTU0Ljg1NzE0MyA0My4wNDYwMzQgMjIzLjUyNDU3MSA3LjM1MjMyIDMwOC44MDkxNDNhMTA1LjEwNjI4NiAxMDUuMTA2Mjg2IDAgMCAwIDAgNzcuMjM4ODU3QzQzLjExOTE3NyA0NzEuMzMyNTcxIDE3OS44MjMxNzcgNzQ5LjcxNDI4NiA1MTIuMDM4MDM0IDc0OS43MTQyODZjMzMwLjc1MiAwIDQ2OS4wNjUxNDMtMjc4LjM4MTcxNCA1MDQuNjg1NzE1LTM2My42NjYyODYgOS44MDExNDMtMjUuMjM0Mjg2IDkuODAxMTQzLTUyLjAwNDU3MSAwLTc3LjIzODg1N0M5ODEuMTAzMTc3IDIyMy41MjQ1NzEgODQyLjc5MDAzNC01NC44NTcxNDMgNTEyLjAzODAzNC01NC44NTcxNDN6TTc1LjQ0ODMyIDM2MC41OTQyODZhMzQuNzQyODU3IDM0Ljc0Mjg1NyAwIDAgMSAwLTI0Ljc5NTQyOUMxMDUuMzYzNzQ5IDI2MC4wOTYgMjI1LjkwMzE3NyAxOC4yODU3MTQgNTEyLjAzODAzNCAxOC4yODU3MTRjMjg2LjIwOCAwIDQwNi42NzQyODYgMjQxLjczNzE0MyA0MzYuNTg5NzE1IDMxNS45NzcxNDNhMzQuNzQyODU3IDM0Ljc0Mjg1NyAwIDAgMSAwIDI0Ljc5NTQyOUM5MTguNzEyMzIgNDM0Ljc2MTE0MyA3OTguMjQ2MDM0IDY3Ni41NzE0MjkgNTEyLjAzODAzNCA2NzYuNTcxNDI5IDIyNS45MDMxNzcgNjc2LjU3MTQyOSAxMDUuMzYzNzQ5IDQzNC44MzQyODYgNzUuNDQ4MzIgMzYwLjU5NDI4NnpNNTEyLjAzODAzNCAxNjQuNTcxNDI5Yy0xMDAuNzkwODU3IDAtMTgyLjg1NzE0MyA4Mi42NTE0MjktMTgyLjg1NzE0MyAxODIuODU3MTQyUzQxMS4yNDcxNzcgNTMwLjI4NTcxNCA1MTIuMDM4MDM0IDUzMC4yODU3MTRzMTgyLjg1NzE0My04Mi42NTE0MjkgMTgyLjg1NzE0My0xODIuODU3MTQzUzYxMi44Mjg4OTEgMTY0LjU3MTQyOSA1MTIuMDM4MDM0IDE2NC41NzE0Mjl6IG0wIDI5Mi41NzE0MjhjLTYwLjEyMzQyOSAwLTEwOS43MTQyODYtNDkuMDA1NzE0LTEwOS43MTQyODUtMTA5LjcxNDI4NlM0NTEuMzI5NDYzIDIzNy43MTQyODYgNTEyLjAzODAzNCAyMzcuNzE0Mjg2czEwOS43MTQyODYgNDkuMDA1NzE0IDEwOS43MTQyODYgMTA5LjcxNDI4NVM1NzIuMTYxNDYzIDQ1Ny4xNDI4NTcgNTEyLjAzODAzNCA0NTcuMTQyODU3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Inpvb20tdG8iIHVuaWNvZGU9IiYjNTg5MTM7IiBkPSJNODcxLjQ5NzE0MyA4MzcuNDg1NzE0YzQzLjg4NTcxNCAwIDc5LjM2LTM1LjU0NzQyOSA3OS4zNi03OS4zNlY0NDEuNzgyODU3aC04MC40NTcxNDNWNjgyLjY0MjI4NmMwIDQxLjEwNjI4Ni0zMy4yOCA3NC4zODYyODYtNzQuMzg2Mjg2IDc0LjM4NjI4NUg1NTMuNjkxNDI5TDU1My4zMjU3MTQgODM3LjQ4NTcxNHogbS03NS40ODM0MjktODg1Ljc2YzQxLjEwNjI4NiAwIDc0LjM4NjI4NiAzMy4yOCA3NC4zODYyODYgNzQuMzg2Mjg2VjI3Ny4yMTE0MjlIOTUwLjg1NzE0M3YtMzMwLjgyNTE0M2MwLTQxLjEwNjI4Ni0zMy4yOC03NC4zODYyODYtNzQuMzg2Mjg2LTc0LjM4NjI4Nkg1NTMuMzI1NzE0djc5LjcyNTcxNHpNMC4wNzMxNDMgNzU4LjEyNTcxNEMwIDgwMi4wMTE0MjkgMzUuNTQ3NDI5IDgzNy40ODU3MTQgNzkuMzYgODM3LjQ4NTcxNGgzMTYuNDE2di04MC40NTcxNDNIMTU0LjExMmMtNDEuMTA2Mjg2IDAtNzQuMzg2Mjg2LTMzLjI4LTc0LjM4NjI4Ni03NC4zODYyODV2LTI0MC45MzI1NzJIMHpNNzkuMzYgMjc3LjIxMTQyOXYtMjUxLjA5OTQyOWMwLTQxLjEwNjI4NiAzMy4yOC03NC4zODYyODYgNzQuMzg2Mjg2LTc0LjM4NjI4NkgzOTUuNzAyODU3Vi0xMjhINzQuMzg2Mjg2QTc0LjM4NjI4NiA3NC4zODYyODYgMCAwIDAgMC01My42MTM3MTRWMjc3LjIxMTQyOXpNNjc4Ljc2NTcxNCA0MDguNzIyMjg2di04OS42SDUxOS40NjA1NzF2LTE1NC4xODUxNDNINDI5Ljc4NzQyOVYzMTkuMTIyMjg2SDI3Mi4zODRWNDA4LjcyMjI4NmgxNTcuNDAzNDI5VjU2My45MzE0MjloODkuNjczMTQydi0xNTUuMjA5MTQzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Im91dHB1dCIgdW5pY29kZT0iJiM1ODkxNDsiIGQ9Ik0zMjUuNDEyNTcxIDQxMy40NzY1NzFhNDQuMzI0NTcxIDQ0LjMyNDU3MSAwIDAgMS0zMS42NzA4NTctMTMuMTY1NzE0IDQ0LjMyNDU3MSA0NC4zMjQ1NzEgMCAwIDEgMC02My4wNDkxNDNsMTgyLjI3Mi0xODEuMTc0ODU3YTQ0LjgzNjU3MSA0NC44MzY1NzEgMCAwIDEgNjMuMzQxNzE1IDBMNzIxLjYyNzQyOSAzMzcuMTg4NTcxYTQ0LjMyNDU3MSA0NC4zMjQ1NzEgMCAwIDEgMCA2My4xMjIyODYgNDQuOTgyODU3IDQ0Ljk4Mjg1NyAwIDAgMS02My40ODggMEw1NTIuNDQ4IDI5NS4yMDQ1NzFWODUxLjM4Mjg1N0M1NTIuNDQ4IDg3Ni4wMzIgNTMyLjQ4IDg5NiA1MDcuNjExNDI5IDg5NnMtNDQuNzYzNDI5LTE5Ljk2OC00NC43NjM0MjktNDQuNjE3MTQzdi01NTYuMTc4Mjg2bC0xMDUuNjkxNDI5IDEwNS4zMjU3MTVhNDUuMjAyMjg2IDQ1LjIwMjI4NiAwIDAgMS0zMS43NDQgMTIuOTQ2Mjg1eiBtNjU5LjAxNzE0My0xNzguMTAyODU3YTM5LjQ5NzE0MyAzOS40OTcxNDMgMCAwIDEtMzkuNDk3MTQzLTM5LjM1MDg1N3YtMjIyLjIwOGMwLTEyLjg3MzE0My0xMC41MzI1NzEtMjMuNDA1NzE0LTIzLjU1Mi0yMy40MDU3MTRIMTAyLjU0NjI4NmEyMy41NTIgMjMuNTUyIDAgMCAwLTIzLjU1MiAyMy40MDU3MTR2MjIyLjM1NDI4NmEzOS40OTcxNDMgMzkuNDk3MTQzIDAgMCAxLTc4Ljk5NDI4NiAwdi0yNTMuNTEzMTQzYzAtMzkuMDU4Mjg2IDMxLjg5MDI4Ni03MC42NTYgNzAuOTQ4NTcxLTcwLjY1Nmg4ODIuMTAyODU4YzM5LjIwNDU3MSAwIDcwLjk0ODU3MSAzMS43NDQgNzAuOTQ4NTcxIDcwLjY1NlYxOTYuMDIyODU3YTM5LjQ5NzE0MyAzOS40OTcxNDMgMCAwIDEtMzkuNDk3MTQzIDM5LjI3NzcxNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJvcGFjaXR5IiB1bmljb2RlPSImIzU4OTE3OyIgZD0iTTY1NC4yNTA2NjcgMjQxLjc0OTMzM0g5MzguNjY2NjY3Vi00Mi42NjY2NjdINjU0LjI1MDY2N3pNMzY5Ljc0OTMzMyA1MjYuMjUwNjY3aDI4NC41MDEzMzR2LTI4NC41MDEzMzRIMzY5Ljc0OTMzM3pNNjU0LjI1MDY2NyA4MTAuNjY2NjY3SDkzOC42NjY2Njd2LTI4NC40MTZINjU0LjI1MDY2N3pNODUuMzMzMzMzIDI0MS43NDkzMzNoMjg0LjQxNlYtNDIuNjY2NjY3SDg1LjMzMzMzM3pNODUuMzMzMzMzIDgxMC42NjY2NjdoMjg0LjQxNnYtMjg0LjQxNkg4NS4zMzMzMzN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGF5ZXItaW5mbyIgdW5pY29kZT0iJiM1ODkxOTsiIGQ9Ik01MTIgODk1LjA2MTMzM0E1MTEuMTQ2NjY3IDUxMS4xNDY2NjcgMCAxIDEgNTEyLTEyNy4xNDY2NjcgNTExLjE0NjY2NyA1MTEuMTQ2NjY3IDAgMCAxIDUxMiA4OTUuMTQ2NjY3eiBtMC05MjguNDI2NjY2YTQxNy4yOCA0MTcuMjggMCAxIDAgMCA4MzQuNTYgNDE3LjI4IDQxNy4yOCAwIDAgMCAwLTgzNC41NnpNNDg4Ljc4OTMzMyA2MjQuODk2YTYwLjE2IDYwLjE2IDAgMSAxIDEyMC4zMiAwIDYwLjE2IDYwLjE2IDAgMCAxLTEyMC4zMiAwek01MzEuNjI2NjY3IDcwLjgyNjY2N2MtNDQuMzczMzMzLTExLjA5MzMzMy0xMDUuODEzMzMzLTEwLjA2OTMzMy0xMzYuNTMzMzM0IDIuMjE4NjY2LTMwLjcyIDEyLjM3MzMzMy00MS44OTg2NjcgNTcuMTczMzMzLTI0LjgzMiA5OS42NjkzMzRsNzYuNTQ0IDE5MC44MDUzMzNhNzIuOTYgNzIuOTYgMCAwIDEtNDkuMTUyIDk5LjQ5ODY2N2wtMTQuNjc3MzMzIDQuMDk2Yy00NC4wMzIgMTIuMjAyNjY3LTQzLjE3ODY2NyAyOC4yNDUzMzMgMS45NjI2NjcgMzUuNTg0bDQzLjg2MTMzMyA3LjE2OGM0NS4yMjY2NjcgNy4zMzg2NjcgMTA3LjI2NCAzLjI0MjY2NyAxMzcuOTg0LTkuMDQ1MzM0IDMwLjcyLTEyLjM3MzMzMyA0MS44MTMzMzMtNTcuMTczMzMzIDI0Ljc0NjY2Ny05OS41ODRsLTcxLjUwOTMzNC0xNzYuODEwNjY2Yy0xNy4wNjY2NjctNDIuNDk2IDQuMzUyLTg3Ljg5MzMzMyA0Ny43MDEzMzQtMTAxLjAzNDY2NyA0My4zNDkzMzMtMTMuMDU2IDQyLjQ5Ni0zMi44NTMzMzMtMS44NzczMzQtNDQuMDMybC0zNC4xMzMzMzMtOC41MzMzMzN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ic2F2ZSIgdW5pY29kZT0iJiM1ODkyMDsiIGQ9Ik03MzIuOCA4MTAuNjg4bDIwNS44ODgtMjA1Ljg4OHYtNjQ3LjQ4OEg4NS4zMTJWODEwLjY4OHpNNzY4IDg5Nkg4NS4zMTJDMzguNCA4OTYgMCA4NTcuNiAwIDgxMC42ODh2LTg1My4zNzZDMC04OS42IDM4LjQtMTI4IDg1LjMxMi0xMjhoODUzLjM3NkM5ODUuNi0xMjggMTAyNC04OS42IDEwMjQtNDIuNjg4VjY0MHpNMTcwLjY4OCA3MjUuMzEyaDQyNi42MjR2LTE3MC42MjRIMTcwLjY4OHpNNTEyIDQyLjY4OGExNzEuMiAxNzEuMiAwIDAgMC0xNzAuNjg4IDE3MC42MjRDMzQxLjMxMiAzMDcuMiA0MTguMTEyIDM4NCA1MTIgMzg0czE3MC42ODgtNzYuOCAxNzAuNjg4LTE3MC42ODhjMC05My44MjQtNzYuOC0xNzAuNjI0LTE3MC42ODgtMTcwLjYyNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYXllci1zdHlsZSIgdW5pY29kZT0iJiM1ODkyMTsiIGQ9Ik05OTMuNzI4ODUzIDMzMy41Njh2LTAuMDg1MzMzTDUzMC40NTQxODcgMTE0LjM0NjY2N2wtMC4xNzA2NjctMC4wODUzMzQtMC4yNTYtMC4wODUzMzNhNDIuODM3MzMzIDQyLjgzNzMzMyAwIDAgMC0zNi42OTMzMzMgMEg0OTMuMjQ4ODUzYy0wLjA4NTMzMyAwLTAuMTcwNjY3IDAtMC4yNTYgMC4xNzA2NjdMMjkuNzE4MTg3IDMzMy40ODI2NjdBNTUuMzgxMzMzIDU1LjM4MTMzMyAwIDAgMCAwLjAyMjE4NyAzODQuMjU2YzAgMzAuMjkzMzMzIDIxLjUwNCA1NC43ODQgNDcuOTU3MzMzIDU0Ljc4NCA2LjU3MDY2NyAwIDEyLjgtMS41MzYgMTguNDMyLTQuMDk2bDAuMTcwNjY3LTAuMDg1MzMzIDAuMTcwNjY2LTAuMDg1MzM0IDQ0NS4wMTMzMzQtMjEwLjUxNzMzMyA0NDQuOTI4IDIxMC41MTczMzNoMC4yNTZsMC4xNzA2NjYgMC4yNTZ2LTAuMDg1MzMzYTQyLjkyMjY2NyA0Mi45MjI2NjcgMCAwIDAgMTguMjYxMzM0IDQuMDk2YzI2LjQ1MzMzMyAwIDQ3Ljk1NzMzMy0yNC40OTA2NjcgNDcuOTU3MzMzLTU0Ljc4NGE1NS4zODEzMzMgNTUuMzgxMzMzIDAgMCAwLTI5LjYxMDY2Ny01MC42MDI2Njd6IG0wIDIzNy41NjhMNTMwLjQ1NDE4NyAzNTEuOTE0NjY3aC0wLjE3MDY2N2wtMC4yNTYtMC4xNzA2NjdhNDMuOTQ2NjY3IDQzLjk0NjY2NyAwIDAgMC0xOC4yNjEzMzMtNC4yNjY2NjcgNDMuODYxMzMzIDQzLjg2MTMzMyAwIDAgMC0xOC40MzIgNC4yNjY2NjdsLTAuMTcwNjY3IDAuMDg1MzMzLTAuMjU2IDAuMDg1MzM0LTQ2My4xODkzMzMgMjE5LjMwNjY2NkE1NS4zODEzMzMgNTUuMzgxMzMzIDAgMCAwIDAuMDIyMTg3IDYyMS42NTMzMzNjMCAyMi44NjkzMzMgMTIuMzczMzMzIDQyLjQ5NiAyOS42OTYgNTAuNjg4TDQ5Mi45MDc1MiA4OTEuNTYyNjY3IDQ5My4yNDg4NTMgODkxLjczMzMzM2gwLjE3MDY2N2E0Mi40OTYgNDIuNDk2IDAgMCAwIDM2LjY5MzMzMyAwaDAuNDI2NjY3bDQ2My4yNzQ2NjctMjE5LjMwNjY2NmMxNy4zMjI2NjctOC4xOTIgMjkuNjEwNjY3LTI3LjgxODY2NyAyOS42MTA2NjYtNTAuNjAyNjY3YTU1LjM4MTMzMyA1NS4zODEzMzMgMCAwIDAtMjkuNjEwNjY2LTUwLjY4OHpNNDcuOTc5NTIgMjAxLjM4NjY2N2M2LjU3MDY2NyAwIDEyLjgtMS41MzYgMTguNDMyLTQuMjY2NjY3SDY2LjU4MjE4N3MwLjE3MDY2NyAwIDAuMTcwNjY2LTAuMTcwNjY3bDQ0NS4wMTMzMzQtMjEwLjQzMiA0NDQuOTI4IDIxMC40MzIgMC4yNTYgMC4wODUzMzQgMC4xNzA2NjYgMC4wODUzMzNhNDEuODEzMzMzIDQxLjgxMzMzMyAwIDAgMCAxOC4yNjEzMzQgNC4yNjY2NjdjMjYuNDUzMzMzIDAgNDcuOTU3MzMzLTI0LjU3NiA0Ny45NTczMzMtNTQuODY5MzM0IDAtMjIuNzg0LTEyLjI4OC00Mi40MTA2NjctMjkuNjEwNjY3LTUwLjY4OGwtNDYzLjI3NDY2Ni0yMTkuMTM2cy0wLjE3MDY2NyAwLTAuMTcwNjY3LTAuMTcwNjY2SDUyOS45NDIxODdhNDEuNzI4IDQxLjcyOCAwIDAgMC0zNi42OTMzMzQgMEg0OTMuMjQ4ODUzbC0wLjI1NiAwLjE3MDY2NkwyOS43MTgxODcgOTUuODI5MzMzQTU1LjQ2NjY2NyA1NS40NjY2NjcgMCAwIDAgMC4wMjIxODcgMTQ2LjUxNzMzM2MwIDMwLjI5MzMzMyAyMS41MDQgNTQuODY5MzMzIDQ3Ljk1NzMzMyA1NC44NjkzMzR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGluZS1sYXllciIgdW5pY29kZT0iJiM1ODkyMjsiIGQ9Ik03NjcuMzA2OTA4IDU3Ny44NDg1MTFMMzE4LjEzMDU4MyAxMjguNjcyMTg2YTE3MC42NTk2OTggMTcwLjY1OTY5OCAwIDEgMC00NS41NjYxMzkgNTAuOTQxOTJsNDQzLjcxNTIxNSA0NDMuODg1ODc0YTE3MC42NTk2OTggMTcwLjY1OTY5OCAwIDEgMCA1MC45NDE5MTktNDUuNTY2MTM5eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNraW4iIHVuaWNvZGU9IiYjNTg5MjM7IiBkPSJNOTIwLjkwMzA0IDgxNi4yNTZoLTU0Ljg0OGMtNTMuNTA0LTU3LjQ3Mi0xNjcuNDI0LTkzLjQ0LTI1Ny45ODQtOTMuNDQtOTAuNTYgMC0yMDQuNDggMzUuOTY4LTI1Ny45MiA5My40NGgtNTQuOTEyTDk1LjYyMzA0IDYxMS4ybDg5LjI4LTkxLjcxMmE4Ny44NzIgODcuODcyIDAgMCAwIDExOS41NTItODIuMTEydi00ODUuNjMyaDYwNy4xNjhWNDM3LjM3NmE4Ny44NzIgODcuODcyIDAgMCAwIDExOS42MTYgODIuMTEybDg5LjI4IDkxLjcxMnpNMjI0LjcxMTA0IDM2Ni4zMzZ2NzEuMDRhOC4xMjggOC4xMjggMCAwIDEtOC4wNjQgOC4zMiA3LjgwOCA3LjgwOCAwIDAgMS01LjYzMi0yLjQzMmwtNC42NzItNC44YTM3LjQ0IDM3LjQ0IDAgMCAwLTUzLjgyNCAwTDExLjIwNzA0IDU4My41NTJhMzkuODcyIDM5Ljg3MiAwIDAgMCAwIDU1LjI5NkwyNDIuODg3MDQgODc2LjhBNjMuMTA0IDYzLjEwNCAwIDAgMCAyODguMDcxMDQgODk2aDY5LjYzMmMxOC40OTYgMCAzNi4yMjQtOC4wNjQgNDguMTkyLTIyLjQ2NCAzNS43MTItNDMuMDcyIDEzNy44NTYtNzAuOTc2IDIwMi4xNzYtNzAuOTc2czE2Ni40IDI3LjkwNCAyMDIuMjQgNzAuOTc2QTYyLjQ2NCA2Mi40NjQgMCAwIDAgODU4LjM3NTA0IDg5Nkg5MjguMDcxMDRjMTYuOTYgMCAzMy4yOC02LjkxMiA0NS4yNDgtMTkuMmwyMzEuNjE2LTIzNy45NTJhMzkuODcyIDM5Ljg3MiAwIDAgMCAwLTU1LjI5NmwtMTQxLjMxMi0xNDUuMDg4YTM3LjQ0IDM3LjQ0IDAgMCAwLTUzLjgyNCAwbC00LjY3MiA0LjhhNy43NDQgNy43NDQgMCAwIDEtNS42MzIgMi40MzIgOC4xMjggOC4xMjggMCAwIDEtOC4wNjQtOC4zMnYtNTA1Ljg1NmMwLTMyLjg5Ni0yNS45ODQtNTkuNTItNTcuOTg0LTU5LjUySDI4Mi42OTUwNGE1OC43NTIgNTguNzUyIDAgMCAwLTU3Ljk4NCA1OS41MlYzNTYuMzUyek00MjUuOTI3MDQgNTAzLjY4aDI2Mi45MTJjMjQuMjU2IDAgNDMuODQtMTMuODg4IDQzLjg0LTMxLjA0di0yNDguMzJjMC0xNy4xNTItMTkuNTg0LTMxLjA0LTQzLjg0LTMxLjA0SDQyNS45MjcwNGMtMjQuMTkyIDAtNDMuNzc2IDEzLjg4OC00My43NzYgMzEuMDR2MjQ4LjMyYzAgMTcuMTUyIDE5LjU4NCAzMS4wNCA0My43NzYgMzEuMDR6IiAgaG9yaXotYWR2LXg9IjEyMTYiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibWFya2VyLWxheWVyIiB1bmljb2RlPSImIzU4OTI0OyIgZD0iTTUxMiA4OTZDMjc2LjM5NDY2NyA4OTYgODUuMzMzMzMzIDcwOS43MTczMzMgODUuMzMzMzMzIDQ4MFM1MTItMTI4IDUxMi0xMjhzNDI2LjY2NjY2NyAzNzguMjgyNjY3IDQyNi42NjY2NjcgNjA4Uzc0Ny42MDUzMzMgODk2IDUxMiA4OTZ6IG0wLTU5Ny4zMzMzMzNhMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMSAwIDAgMzQxLjMzMzMzMyAxNzAuNjY2NjY3IDE3MC42NjY2NjcgMCAwIDAgMC0zNDEuMzMzMzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InBvaW50LWxheWVyIiB1bmljb2RlPSImIzU4OTI1OyIgZD0iTTY4Mi42NjY2NjcgMzg0YTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDAgMCAwLTUxMnpNMTcwLjY2NjY2NyAxMjhhMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMSAwIDAgMzQxLjMzMzMzMyAxNzAuNjY2NjY3IDE3MC42NjY2NjcgMCAwIDAgMC0zNDEuMzMzMzMzeiBtNTU0LjY2NjY2Ni0xNzAuNjY2NjY3YTEyOCAxMjggMCAxIDAgMCAyNTYgMTI4IDEyOCAwIDAgMCAwLTI1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwb2x5Z29uLWxheWVyIiB1bmljb2RlPSImIzU4OTI2OyIgZD0iTTE2MCA1NzZhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiBtNzA0IDBhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiBtMC03MDRhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiBtLTcwNCAwYTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHpNMzIwIDc2OGgzODR2LTY0aC0zODR6IG0wLTcwNGgzODR2LTY0aC0zODR6IG0tMTI4IDUxMnYtMzg0SDEyOHYzODR6IG03MDQgMHYtMzg0aC02NHYzODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iaW52aXNpYmxlIiB1bmljb2RlPSImIzU4OTI3OyIgZD0iTTMwNi4xNDA4OTEgMjIuODkzNzE0bDU2LjUzOTQyOSA1Ni42MTI1NzJBNDQ2LjAyNTE0MyA0NDYuMDI1MTQzIDAgMCAxIDUxMi4wMzgwMzQgNTQuODU3MTQzYzI4Ni4yMDggMCA0MDYuNjc0Mjg2IDI0MS43MzcxNDMgNDM2LjU4OTcxNSAzMTUuOTc3MTQzYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMCAyNC43OTU0MjggNTc4Ljg1MjU3MSA1NzguODUyNTcxIDAgMCAxLTEwMi45ODUxNDMgMTY2Ljc2NTcxNWw1MS4xMjY4NTcgNTEuMmE2ODkuNjY0IDY4OS42NjQgMCAwIDAgMTE5Ljk1NDI4Ni0xOTAuOTc2YzkuODAxMTQzLTI1LjIzNDI4NiA5LjgwMTE0My01Mi4wMDQ1NzEgMC03Ny4yMzg4NThDOTgxLjEwMzE3NyAyNjAuMDk2IDg0Mi43OTAwMzQtMTguMjg1NzE0IDUxMi4wMzgwMzQtMTguMjg1NzE0YTUxMS4wNDkxNDMgNTExLjA0OTE0MyAwIDAgMC0yMDUuODk3MTQzIDQxLjI1MjU3MXogbS0xNzkuMTI2ODU3IDEzMS4yOTE0MjlBNjg4LjU2Njg1NyA2ODguNTY2ODU3IDAgMCAwIDcuMzUyMzIgMzQ1LjM4MDU3MWExMDUuMTA2Mjg2IDEwNS4xMDYyODYgMCAwIDAgMCA3Ny4yMzg4NThDNDIuOTcyODkxIDUwNy45MDQgMTc5Ljc1MDAzNCA3ODYuMjg1NzE0IDUxMi4wMzgwMzQgNzg2LjI4NTcxNGM3OS4yMTM3MTQgMCAxNDcuMzgyODU3LTE1Ljk0NTE0MyAyMDUuNjc3NzE1LTQxLjM5ODg1N2wtNTYuMzItNTYuMzkzMTQzQTQ0Ni4wMjUxNDMgNDQ2LjAyNTE0MyAwIDAgMSA1MTIuMDM4MDM0IDcxMy4xNDI4NTdjLTI4Ni4yMDggMC00MDYuNjc0Mjg2LTI0MS43MzcxNDMtNDM2LjU4OTcxNC0zMTUuOTc3MTQzYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMC0yNC43OTU0MjhjMTMuNTMxNDI5LTM0LjIzMDg1NyA0NS40OTQ4NTctMTAyLjQgMTAyLjk4NTE0My0xNjYuNzY1NzE1eiBtMzU5LjEzMTQyOSA0OC43ODYyODZsMTAxLjAxMDI4NiAxMDEuMDEwMjg1IDQuOTAwNTcxIDQuODI3NDI5IDEwMS4wMTAyODYgMTAxLjAxMDI4NmExODMuNTE1NDI5IDE4My41MTU0MjkgMCAwIDAtMjA2LjkyMTE0My0yMDYuOTIxMTQzek0zMzEuMDA5NDYzIDM1OC4xMDc0MjlhMTgzLjUxNTQyOSAxODMuNTE1NDI5IDAgMCAwIDIwNi45MjExNDMgMjA2LjkyMTE0MnogbTUxNy4xOTMxNDMgMzYyLjA1NzE0MmEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAwIDAtNTEuNzEybC02MjAuNjE3MTQzLTYyMC42MTcxNDJhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMC01MS43MTIgNTEuNzEybDYyMC42MTcxNDMgNjIwLjYxNzE0MmEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAwIDUxLjcxMiAweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNlYXJjaCIgdW5pY29kZT0iJiM1ODkyODsiIGQ9Ik03NzAuNjU5NTgyIDY4Mi4zMTE4OGEzNTAuNzA3MDY4IDM1MC43MDcwNjggMCAwIDEtNDk4LjkyNTYwMiAwIDM1Ny43NDY4MDggMzU3Ljc0NjgwOCAwIDAgMSAwLTUwMy4wMjE0NTEgMzUwLjc3MTA2NSAzNTAuNzcxMDY1IDAgMCAxIDQ5OC45MjU2MDIgMCAzNTcuNzQ2ODA4IDM1Ny43NDY4MDggMCAwIDEgMCA1MDMuMDIxNDUxeiBtLTU3NS43MjI3Ny01ODAuNDU4NTk2Yy0xODAuMTUzMzU3IDE4MS43NTMyOTgtMTgwLjE1MzM1NyA0NzYuMjA2NDQgMCA2NTcuODk1NzRhNDU4Ljg2MzA3OSA0NTguODYzMDc5IDAgMCAwIDY1Mi41ODM5MzYgMGMxODAuMTUzMzU3LTE4MS42ODkzIDE4MC4xNTMzNTctNDc2LjE0MjQ0MiAwLTY1Ny44OTU3NGE0NTguODYzMDc5IDQ1OC44NjMwNzkgMCAwIDAtNjUyLjU4MzkzNiAweiBtODYyLjA0ODIxMi0yMTEuMTkyMjEyYTYyLjcxNzY4NyA2Mi43MTc2ODcgMCAwIDAtODkuMTQ4NzEzIDBsLTg5LjE0ODcxMyA4OS44NTI2ODdhNjMuOTMzNjQyIDYzLjkzMzY0MiAwIDAgMCAwIDg5Ljg1MjY4NiA2Mi43MTc2ODcgNjIuNzE3Njg3IDAgMCAwIDg5LjE0ODcxMyAwbDg5LjE0ODcxMy04OS44NTI2ODZhNjMuODY5NjQ1IDYzLjg2OTY0NSAwIDAgMCAwLTg5Ljg1MjY4N3oiICBob3Jpei1hZHYteD0iMTA4NyIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJlZGl0IiB1bmljb2RlPSImIzU4OTMxOyIgZD0iTTk3OC4yMjE1NjQtMzYuNjMyNTE3MDAwMDAwMDFINDUuNzc4NDM2YTQ1LjcyNjM5NyA0NS43MjYzOTcgMCAwIDEgMC05MS4zNjc0ODNoOTMyLjQ0MzEyOGE0NS43MjYzOTcgNDUuNzI2Mzk3IDAgMCAxIDAgOTEuMzY3NDgzek0yNzUuODYwNjk3IDEwMC40NjEzNjNhNTEuNTI3NTA3IDUxLjUyNzUwNyAwIDAgMSAxOC44NTM2MDggMy44Mzg5N2gwLjQyNjU1MmwyNTkuNjg0OTg1IDEyMi4xNjQ1NTIgMi42NDQ2MjMgMS4yNzk2NTcgNDQxLjczNzQ2OCA0NDIuNTA1MjYxYTc5LjU5NDY0MiA3OS41OTQ2NDIgMCAwIDEgMCAxMTIuOTUxMDI1TDkxMC4wNTg1MjEgODcyLjQzNTU1YTc5Ljc2NTI2MyA3OS43NjUyNjMgMCAwIDEtMTEyLjk1MTAyNS0wLjE3MDYyMWwtNDM5Ljk0NTk0OC00NDAuMjAxODc5LTIuMDQ3NDUtMS45NjIxNC0xLjE5NDM0Ni0yLjU1OTMxNC0xMjEuNDgyMDY5LTI1OC40OTA2MzhhNDcuMjYxOTg1IDQ3LjI2MTk4NSAwIDAgMSAyLjkwMDU1NS00Ni40MDg4OGM4Ljk1NzU5Ni0xMy42NDk2NzEgMjQuMzk4Nzg2LTIyLjE4MDcxNSA0MC41MjI0NTktMjIuMTgwNzE1eiBtNTI0LjY1OTIxNyA2NDYuMjI2NTk2bDUyLjg5MjQ3NCA1Mi45Nzc3ODQgNzMuMDI1NzM4LTczLjExMTA0OS01Mi44OTI0NzQtNTIuOTc3Nzg0ek0zNjUuOTQ4NTI0IDIzOC44MzQ4OTg5OTk5OTk5NWw2NC44MzU5MzYgMTM3Ljk0Njk4NSAzMDUuMDcwMTM5IDMwNS4zMjYwNyA3My4wMjU3MzgtNzMuMTExMDQ4TDUwMy44OTU1MDggMzAzLjY3MDgzNXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYXllcnMiIHVuaWNvZGU9IiYjNTg5MzI7IiBkPSJNNTQwLjQ0NDQ0NCAyNTEuMDUwNjY3TDEuMDgwODg5IDU3My4xNTU1NTYgNTQwLjQ0NDQ0NCA4OTUuMjAzNTU2bDUzOS4zNjM1NTYtMzIyLjA0OHpNMTAxMi4zOTQ2NjcgNDMzLjA5NTExMWwtNjcuNDEzMzM0LTQxLjk4NEw1NDAuNDQ0NDQ0IDE1My4wMzExMTEgNjguNDk0MjIyIDQzMy4wOTUxMTFsLTY3LjQxMzMzMy00MS45ODRMNTQwLjQ0NDQ0NCA2OS4wMDYyMjJsNTM5LjM2MzU1NiAzMjIuMTA0ODg5ek0xMDEyLjM5NDY2NyAyMzcuMDU2bC02Ny40MTMzMzQtNDIuMDQwODg5TDU0MC40NDQ0NDQtNDMuMDA4di02Ljk5NzMzM2wtNDcxLjk1MDIyMiAyODAuMDY0LTY3LjQxMzMzMy0zNS4wNDM1NTZMNTQwLjQ0NDQ0NC0xMjcuMDMyODg5bDUzOS4zNjM1NTYgMzIyLjA0OHoiICBob3Jpei1hZHYteD0iMTA4MCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJiYXNlbGF5ZXIiIHVuaWNvZGU9IiYjNTg5MzM7IiBkPSJNMTAyMi45NzYgMzg0LjM5ODIyMkMxMDIyLjk3NiA2NjYuMzk2NDQ0IDc5NC4xNjg4ODkgODk0Ljk3NiA1MTIgODk0Ljk3NiAyMjkuODMxMTExIDg5NC45NzYgMS4wMjQgNjY2LjM5NjQ0NCAxLjAyNCAzODQuMzk4MjIyYzAtMjYwLjQzNzMzMyAxOTUuMjQyNjY3LTQ3NS4zNjM1NTYgNDQ3LjQzMTExMS01MDYuNTk1NTU1YTI1NS4yNjA0NDQgMjU1LjI2MDQ0NCAwIDAgMSA2OC44OTI0NDUtMy45MjUzMzRjMjc5LjcyMjY2NyAyLjkwMTMzMyA1MDUuNjI4NDQ0IDIzMC40IDUwNS42Mjg0NDQgNTEwLjUyMDg4OXogbS03My4xMDIyMjItNy4yMjQ4ODlhNDk5LjgyNTc3OCA0OTkuODI1Nzc4IDAgMCAxLTkuOTU1NTU2IDc0LjYzODIyM2MwLjQ1NTExMSA4LjY0NzExMSAwLjU2ODg4OSAxNi44OTYgMC4zNDEzMzQgMjQuNDYyMjIyYTQzOS4wMTE1NTYgNDM5LjAxMTU1NiAwIDAgMCA5LjY3MTExMS05OS4xMDA0NDV6TTc0LjA2OTMzMyAzODQuMzk4MjIyYzAgMzAuOTQ3NTU2IDMuMTg1Nzc4IDYxLjE1NTU1NiA5LjMyOTc3OCA5MC4yODI2NjcgMTguODg3MTExLTIwLjI1MjQ0NCA2My40ODgtMTkuNzQwNDQ0IDc0LjM1Mzc3OCAxMC40Njc1NTUgMTkuNDU2LTExLjYwNTMzMyA0NS41NjgtMTMuNjUzMzMzIDQ1LjU2OC0zNi44NjQgMC03Ni40NTg2NjcgMi43MzA2NjctMTU4LjQzNTU1NiA3Mi4yNDg4ODktMTU5Ljc0NCAxLjkzNDIyMiAwIDM4LjY4NDQ0NC0xMy45Mzc3NzggNTYuMjA2MjIyLTU5LjMzNTExMSA2LjA4NzExMS0xNS43MDEzMzMgMzAuMDM3MzMzIDAgNTYuMzIgMCAxMy4wODQ0NDQgMCAwLTIyLjA3Mjg4OSAwLTY5Ljg1OTU1NSAwLTQ3LjU1OTExMSAxMDIuNTcwNjY3LTEyMC44MzIgMTAyLjU3MDY2Ny0xMjAuODMyYTU1MC41MTM3NzggNTUwLjUxMzc3OCAwIDAgMSAzLjQxMzMzMy03Ny4zMTIgMTcxLjc0NzU1NiAxNzEuNzQ3NTU2IDAgMCAxLTU4LjAyNjY2Ny03Ljg1MDY2N2MtMjA1LjY1MzMzMyAzNS45NTM3NzgtMzYxLjk4NCAyMTUuMjY3NTU2LTM2MS45ODQgNDMxLjA0NzExMXogbTU0NS43MzUxMTEtNDI0LjIyMDQ0NGMtMi4yNzU1NTYgMTEuMDkzMzMzLTEyLjE3NDIyMiAxNy4xODA0NDQtMzAuMzIxNzc3IDEyLjQ1ODY2NiAxNC40NDk3NzggNjEuNTUzNzc4IDIxLjUwNCA5Ni4wMjg0NDQgNTEuNzEyIDEyMi4yNTQyMjMgNDMuNjMzNzc4IDM3LjgzMTExMSA1LjE3Njg4OSA3OS45Mjg4ODktMjguMDQ2MjIzIDc0Ljk3OTU1NS0yNi4xNjg4ODktMy45ODIyMjItOS42NzExMTEgMzIuNDI2NjY3LTMyLjk5NTU1NSAzNC40MTc3NzgtMjMuNDM4MjIyIDEuOTkxMTExLTUzLjkzMDY2NyA0OC40NjkzMzMtODcuNjA4ODg5IDY0LjUxMi0xNy44MDYyMjIgOC40MTk1NTYtMzUuMzg0ODg5IDMxLjExODIyMi02Mi44NjIyMjIgMzIuMTQyMjIyLTI0LjQwNTMzMyAwLjk2NzExMS02MC4wMTc3NzgtMjAuNTkzNzc4LTYwLjAxNzc3OC0zLjk4MjIyMiAwIDUzLjUzMjQ0NC01LjQwNDQ0NCA5MS43NjE3NzgtNi41NDIyMjIgMTA2Ljk1MTExMS0wLjkxMDIyMiAxMi4yODgtNy45NjQ0NDQgNC4xNTI4ODkgMjQuOTc0MjIyIDMuNDEzMzMzIDE3LjkyLTAuNTEyIDkuMTAyMjIyIDM2LjAxMDY2NyAyNi45MDg0NDQgMzcuNDMyODg5IDE3LjQ2NDg4OSAxLjM2NTMzMyA1OC45OTM3NzgtMTYuMzI3MTExIDY5LjU3NTExMi05LjI3Mjg4OSA5Ljg0MTc3OCA2LjU0MjIyMiA3Mi4zMDU3NzgtMTYzLjk1Mzc3OCA3Mi4zMDU3NzctMjguMTYgMCAxNi4wOTk1NTYtOC4zNjI2NjcgNDQuMDg4ODg5IDAgNTkuMzM1MTEyIDMyLjk5NTU1NiA2MC4zMDIyMjIgNjMuODg2MjIyIDEwOS40NTQyMjIgNjEuMDk4NjY3IDExNi42MjIyMjItMS41MzYgNC4wMzkxMTEtMzMuNzM1MTExIDcuMzk1NTU2LTU5LjUwNTc3OC0xLjI1MTU1Ni04LjcwNC0yLjkwMTMzMyAyLjc4NzU1Ni0xNi40OTc3NzgtOS42NzExMTEtMTkuMzk5MTExLTQ2LjgxOTU1Ni0xMC44MDg4ODktODguMTc3Nzc4IDEyLjU3MjQ0NC03My42NzExMTEgMzQuNTg4NDQ1IDE0Ljc5MTExMSAyMi41MjggNjguNDk0MjIyIDkuODQxNzc4IDczLjIxNiA1NS4wNjg0NDQgMi43MzA2NjcgMjUuODg0NDQ0IDQuOTQ5MzMzIDU1LjkyMTc3OCA2LjQ4NTMzMyA3OC4yMjIyMjIgNjIuOTE5MTExLTkuODQxNzc4IDU1Ljk3ODY2NyA4MS42OTI0NDQtMzcuNTQ2NjY2IDkxLjQ3NzMzNGE0MzguMTAxMzMzIDQzOC4xMDEzMzMgMCAwIDAgNDA4LjYzMjg4OS0yOTQuMTcyNDQ1IDE3Ljg2MzExMSAxNy44NjMxMTEgMCAwIDEtMTAuNDY3NTU2IDQuNzc4NjY3Yy0yOC4yNzM3NzggNzAuNjU2LTk2Ljk5NTU1NiAxOS41MTI4ODktNzMuNjcxMTExLTQyLjgzNzMzNC0xMjQuODcxMTExLTk1Ljk3MTU1Ni05Mi44OTk1NTYtMTYyLjg3Mjg4OS01MS44ODI2NjctMjAxLjIxNiAyMS42MTc3NzgtMjAuMTM4NjY3IDQyLjE1NDY2Ny01MC40MDM1NTYgNTUuNTgwNDQ1LTcyLjE5Mi0xNC42MjA0NDQtNDIuNDk2IDUzLjcwMzExMS0yNS40ODYyMjIgODcuMzgxMzMzIDQ2LjY0ODg4OWE0MzguNjEzMzMzIDQzOC42MTMzMzMgMCAwIDAtMzEzLjA1OTU1Ni0zMDIuODE5NTU1eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNldHRpbmciIHVuaWNvZGU9IiYjNTg5MzQ7IiBkPSJNOTUwLjg0MDg4OSA0NTcuMTU5MTExaC04MS4xODA0NDVhMzY0LjgyODQ0NCAzNjQuODI4NDQ0IDAgMCAxLTUzLjM2MTc3NyAxMjcuMjYwNDQ1bDU3Ljc0MjIyMiA1Ny43OTkxMTFhNzIuODE3Nzc4IDcyLjgxNzc3OCAwIDEgMS0xMDMuMTM5NTU2IDEwMy4xMzk1NTVsLTU3Ljc0MjIyMi01Ny43OTkxMTFhMzUwLjQzNTU1NiAzNTAuNDM1NTU2IDAgMCAxLTEyOCA1NC44NDA4ODlWODIyLjg0MDg4OUM1ODUuMTU5MTExIDg2My4wNjEzMzMgNTUyLjIyMDQ0NCA4OTYgNTEyIDg5NlM0MzguODQwODg5IDg2My4wNjEzMzMgNDM4Ljg0MDg4OSA4MjIuODQwODg5Vjc0Mi40YTM2MS45MjcxMTEgMzYxLjkyNzExMSAwIDAgMS0xMjgtNTQuMTAxMzMzTDI1My4xNTU1NTYgNzQ2LjA0MDg4OWE3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxLTEwMy4xMzk1NTYgMCA3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxIDAtMTAzLjEzOTU1NkwyMDcuNjQ0NDQ0IDU4NS4xNTkxMTFhMzc0LjM4NTc3OCAzNzQuMzg1Nzc4IDAgMCAxLTUzLjM2MTc3Ny0xMjhINzMuMTU5MTExQzMyLjkzODY2NyA0NTcuMTU5MTExIDAgNDI0LjIyMDQ0NCAwIDM4NHMzMi45Mzg2NjctNzMuMTU5MTExIDczLjE1OTExMS03My4xNTkxMTFoODEuMTgwNDQ1YzkuNTAwNDQ0LTQ2LjgxOTU1NiAyOC41MDEzMzMtODkuMjAxNzc4IDUzLjM2MTc3Ny0xMjcuMjYwNDQ1bC01Ny43NDIyMjItNTcuNzk5MTExYTcyLjgxNzc3OCA3Mi44MTc3NzggMCAwIDEgMC0xMDMuMDgyNjY2IDcyLjgxNzc3OCA3Mi44MTc3NzggMCAwIDEgMTAzLjEzOTU1NiAwbDU3Ljc0MjIyMiA1Ny43NDIyMjJhMzUwLjQzNTU1NiAzNTAuNDM1NTU2IDAgMCAxIDEyOC01NC44NDA4ODl2LTgwLjQ0MDg4OUM0MzguODQwODg5LTk1LjA2MTMzMyA0NzEuNzc5NTU2LTEyOCA1MTItMTI4czczLjE1OTExMSAzMi45Mzg2NjcgNzMuMTU5MTExIDczLjE1OTExMVYyNS42YTM2MS45MjcxMTEgMzYxLjkyNzExMSAwIDAgMSAxMjggNTQuMTAxMzMzbDU3Ljc0MjIyMi01Ny43NDIyMjJjMjguNTU4MjIyLTI4LjU1ODIyMiA3NC42MzgyMjItMjguNTU4MjIyIDEwMy4xMzk1NTYgMHMyOC41NTgyMjIgNzQuNTgxMzMzIDAgMTAzLjEzOTU1NmwtNTcuNzQyMjIyIDU3Ljc0MjIyMmEzNzAuNzQ0ODg5IDM3MC43NDQ4ODkgMCAwIDEgNTMuMzYxNzc3IDEyNy4yNjA0NDRoODEuMTgwNDQ1YTczLjUwMDQ0NCA3My41MDA0NDQgMCAwIDEgMCAxNDcuMDAwODg5ek01MTIgMjM3LjczODY2N0ExNDYuNzE2NDQ0IDE0Ni43MTY0NDQgMCAwIDAgMzY1LjczODY2NyAzODQgMTQ2LjcxNjQ0NCAxNDYuNzE2NDQ0IDAgMCAwIDUxMiA1MzAuMjYxMzMzIDE0Ni43MTY0NDQgMTQ2LjcxNjQ0NCAwIDAgMCA2NTguMjYxMzMzIDM4NCAxNDYuNzE2NDQ0IDE0Ni43MTY0NDQgMCAwIDAgNTEyIDIzNy43Mzg2Njd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYWRkIiB1bmljb2RlPSImIzU4OTM2OyIgZD0iTTAgNDY5LjMzMzMzM2gxMDI0di0xNzAuNjY2NjY2SDB6TTQyNi42NjY2NjcgODk2aDE3MC42NjY2NjZ2LTEwMjRINDI2LjY2NjY2N3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwcmV2aWV3IiB1bmljb2RlPSImIzU4OTM1OyIgZD0iTTc3Mi4zNTIgMTk3LjYzMmM5Mi4xNiAxMjYuNTQ5MzMzIDgwLjA0MjY2NyAzMDEuOTk0NjY3LTMxLjA2MTMzMyA0MTIuNDE2QTMxNi4zMzA2NjcgMzE2LjMzMDY2NyAwIDAgMSA1MTUuNzU0NjY3IDcwMy4xNDY2NjdjLTg1LjE2MjY2NyAwLTE2NS4xMi0zMy4zNjUzMzMtMjI1LjUzNi05My4xODRhMzIwLjQyNjY2NyAzMjAuNDI2NjY3IDAgMCAxLTkyLjY3Mi0yMjUuNTM2QTMxOC40NjQgMzE4LjQ2NCAwIDAgMSA1MTYuMjY2NjY3IDY1Ljk2MjY2N2M2Ny4yNDI2NjcgMCAxMzEuNzU0NjY3IDIxLjMzMzMzMyAxODYuOTY1MzMzIDYyLjEyMjY2NmwxNjUuNzE3MzMzLTE2NS4xMmE0OC4yOTg2NjcgNDguMjk4NjY3IDAgMCAxIDY5LjEyIDAgNDguOTgxMzMzIDQ4Ljk4MTMzMyAwIDAgMSAwIDY5LjEyeiBtLTQxMi41ODY2NjcgMzAuNDY0YTIyMC42NzIgMjIwLjY3MiAwIDAgMCAxNTYuNTg2NjY3IDM3Ni43NDY2NjcgMjIwLjY3MiAyMjAuNjcyIDAgMCAwIDE1Ni41MDEzMzMtMzc2LjY2MTMzNGMtODMuNDU2LTgyLjg1ODY2Ny0yMjkuNTQ2NjY3LTgyLjg1ODY2Ny0zMTMuMDg4IDB6TTc2Mi41Mzg2NjcgODk1LjMxNzMzM0gyNjEuOTczMzMzYTI2MS4zNzYgMjYxLjM3NiAwIDAgMS0yNjEuMjA1MzMzLTI2MS4xMnYtNTAwLjM5NDY2NmEyNjEuMzc2IDI2MS4zNzYgMCAwIDEgMjYxLjEyLTI2MS4xMmgyNzEuNzAxMzMzYTQ4LjgxMDY2NyA0OC44MTA2NjcgMCAxIDEgMCA5Ny43OTJIMjYxLjk3MzMzM2ExNjIuOTg2NjY3IDE2Mi45ODY2NjcgMCAwIDAtMTYyLjgxNiAxNjIuNzMwNjY2VjYzMy42QTE2Mi45ODY2NjcgMTYyLjk4NjY2NyAwIDAgMCAyNjEuOTczMzMzIDc5Ni4zMzA2NjdoNTAwLjU2NTMzNGExNjIuOTg2NjY3IDE2Mi45ODY2NjcgMCAwIDAgMTYyLjk4NjY2Ni0xNjIuNzMwNjY3di0yNjYuMjRhNDguODEwNjY3IDQ4LjgxMDY2NyAwIDEgMSA5Ny43MDY2NjcgMFY2MzQuNjI0QTI2MC43Nzg2NjcgMjYwLjc3ODY2NyAwIDAgMSA3NjIuNTM4NjY3IDg5NS4zMTczMzN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icmVmcmVzaCIgdW5pY29kZT0iJiM1ODkzNzsiIGQ9Ik02OTguMDAyMjg2IDExMS4xNzcxNDNhMzE2LjU2MjI4NiAzMTYuNTYyMjg2IDAgMCAwLTE4OS44Nzg4NTctNTkuOTc3MTQzYy04Ljk5NjU3MSAwLjA3MzE0My0xNy43NzM3MTQgMC43MzE0MjktMjYuNTUwODU4IDEuNDYyODU3LTMuNjU3MTQzIDAuMzY1NzE0LTcuMTY4IDAuOTUwODU3LTEwLjc1MiAxLjQ2Mjg1N2EyNjEuMTIgMjYxLjEyIDAgMCAwLTIwLjQ4IDMuMjE4Mjg2Yy00LjE2OTE0MyAwLjczMTQyOS04LjI2NTE0MyAxLjk3NDg1Ny0xMi4yODggMi45MjU3MTQtNi41ODI4NTcgMS40NjI4NTctMTMuMTY1NzE0IDIuOTI1NzE0LTE5LjY3NTQyOCA0LjkwMDU3Mi0yLjk5ODg1NyAxLjI0MzQyOS01LjkyNDU3MSAyLjE5NDI4Ni04Ljk5NjU3MiAzLjQzNzcxNGEyNDMuMzQ2Mjg2IDI0My4zNDYyODYgMCAwIDAtMjIuMDE2IDguMTkybC00LjgyNzQyOCAxLjk3NDg1N2E1NDguNTcxNDI5IDU0OC41NzE0MjkgMCAwIDAtMjQuNzIyMjg2IDEyLjM2MTE0M2wtMS4wMjQgMC41ODUxNDNhMzI0LjQ2MTcxNCAzMjQuNDYxNzE0IDAgMCAwLTczLjg3NDI4NiA1Ni44MzJsLTEuMDI0IDEuMjQzNDI4YTI3NS4wOTAyODYgMjc1LjA5MDI4NiAwIDAgMC0xOS4zODI4NTcgMjEuODY5NzE1QTMzNi44MjI4NTcgMzM2LjgyMjg1NyAwIDAgMCAxODcuNzU3NzE0IDM4NGg4NS40MzA4NTdMMTM2LjYzMDg1NyA1OTQuMjg1NzE0IDAuMDczMTQzIDM4NGg4NS4yODQ1NzFjMC05Mi4wODY4NTcgMjguMDg2ODU3LTE3Ny41MTc3MTQgNzUuNTU2NTcyLTI0OC4yNDY4NTcgMC41ODUxNDMtMS4wOTcxNDMgMC45NTA4NTctMi4xOTQyODYgMS42MDkxNDMtMy4wNzIgNC45MDA1NzEtNy4zMTQyODYgMTAuMzg2Mjg2LTEzLjk3MDI4NiAxNS42NTI1NzEtMjAuNjk5NDI5IDIuMDQ4LTIuNDg2ODU3IDMuNzMwMjg2LTUuMDQ2ODU3IDUuODUxNDI5LTcuNzUzMTQzIDcuNzUzMTQzLTkuNTgxNzE0IDE2LjA5MTQyOS0xOC43MjQ1NzEgMjQuNTAyODU3LTI3LjY0OGwyLjM0MDU3MS0yLjQ4Njg1N2MyOC41OTg4NTctMjkuNDAzNDI5IDYwLjg1NDg1Ny01NC4xMjU3MTQgOTUuOTYzNDI5LTczLjk0NzQyOGwyLjg1MjU3MS0xLjYwOTE0M2MxMC4wOTM3MTQtNS41NTg4NTcgMjAuNDgtMTAuNzUyIDMwLjkzOTQyOS0xNS4zNmw3LjgyNjI4NS0zLjU4NGE2OTIuODA5MTQzIDY5Mi44MDkxNDMgMCAwIDEgNDAuODg2ODU4LTE1LjA2NzQyOWM4LjExODg1Ny0yLjQxMzcxNCAxNi4zODQtNC42MDggMjQuODY4NTcxLTYuNTgyODU3IDUuNTU4ODU3LTEuMjQzNDI5IDEwLjk3MTQyOS0yLjc3OTQyOSAxNi42NzY1NzEtMy44MDM0MjggMi4zNDA1NzEtMC41ODUxNDMgNC41MzQ4NTctMS4zODk3MTQgNi44NzU0MjktMS42MDkxNDMgOC4wNDU3MTQtMS40NjI4NTcgMTUuOTQ1MTQzLTIuMTk0Mjg2IDIzLjc3MTQyOS0zLjIxODI4NiAyLjkyNTcxNC0wLjUxMiA1Ljc3ODI4Ni0xLjAyNCA4LjYzMDg1Ny0xLjMxNjU3MSAxNC4xODk3MTQtMS40NjI4NTcgMjguMzc5NDI5LTIuMzQwNTcxIDQyLjU2OTE0My0yLjM0MDU3MmE0MTUuNzQ0IDQxNS43NDQgMCAwIDEgMjQzLjkzMTQyOCA3OS41MDYyODYgNTMuNTQwNTcxIDUzLjU0MDU3MSAwIDAgMSAxMi42NTM3MTQgNzMuMTQyODU3IDUwLjAyOTcxNCA1MC4wMjk3MTQgMCAwIDEtNzEuMzE0Mjg1IDEyLjk0NjI4NnpNOTM4LjQ5NiAzODRhNDQyLjg4IDQ0Mi44OCAwIDAgMS03NS4wNDQ1NzEgMjQ3LjY2MTcxNGMtMC43MzE0MjkgMS4xNzAyODYtMS4wOTcxNDMgMi40MTM3MTQtMS42ODIyODYgMy41MTA4NTdhNTM1Ljk5MDg1NyA1MzUuOTkwODU3IDAgMCAxLTE4Ljg3MDg1NyAyNC44Njg1NzIgMzAuNjQ2ODU3IDMwLjY0Njg1NyAwIDAgMC0yLjEyMTE0MyAyLjkyNTcxNCA0MjcuNzM5NDI5IDQyNy43Mzk0MjkgMCAwIDEtMTU5LjMwNTE0MyAxMjIuODhsLTUuMTIgMi4yNjc0MjlhNTA0LjUzOTQyOSA1MDQuNTM5NDI5IDAgMCAxLTMwLjIwOCAxMS40MTAyODVsLTEwLjgyNTE0MyAzLjY1NzE0M2E0MTYuNDAyMjg2IDQxNi40MDIyODYgMCAwIDEtMjYuNzcwMjg2IDcuMTY4bC0xNS4xNDA1NzEgMy41MTA4NTdjLTIuNDg2ODU3IDAuNDM4ODU3LTQuNzU0Mjg2IDEuMTcwMjg2LTcuMzE0Mjg2IDEuNjgyMjg2LTYuODAyMjg2IDEuMDk3MTQzLTEzLjM4NTE0MyAxLjgyODU3MS0yMC4xODc0MjggMi42MzMxNDMtNC42ODExNDMgMC41MTItOS4yMTYgMS4yNDM0MjktMTMuODk3MTQzIDEuNzU1NDI5YTQzMS4wMzA4NTcgNDMxLjAzMDg1NyAwIDAgMS0zMy45MzgyODYgMS44Mjg1NzFjLTIuMDQ4IDAtNC4wOTYgMC4yOTI1NzEtNi4xNDQgMC4yOTI1NzFhNDE1LjE1ODg1NyA0MTUuMTU4ODU3IDAgMCAxLTI0NC41ODk3MTQtNzkuMjg2ODU3IDUzLjM5NDI4NiA1My4zOTQyODYgMCAwIDEtMTIuNTA3NDI5LTczLjIxNmMxNi4wOTE0MjktMjMuNjk4Mjg2IDQ4LjEyOC0yOS41NDk3MTQgNzEuMzE0Mjg2LTEyLjhhMzE1LjYxMTQyOSAzMTUuNjExNDI5IDAgMCAwIDIxNi43OTU0MjkgNTguNTE0Mjg2YzIuOTI1NzE0LTAuMjE5NDI5IDUuNzA1MTQzLTAuNzMxNDI5IDguNTU3NzE0LTEuMTcwMjg2IDcuNzUzMTQzLTAuOTUwODU3IDE1LjM2LTEuOTc0ODU3IDIyLjk2Njg1Ny0zLjY1NzE0MyAzLjIxODI4Ni0wLjU4NTE0MyA2LjU4Mjg1Ny0xLjQ2Mjg1NyA5LjcyOC0yLjE5NDI4NSA3LjQ2MDU3MS0xLjc1NTQyOSAxNC43NzQ4NTctMy41MTA4NTcgMjEuOTQyODU3LTUuNzc4Mjg2IDIuNDEzNzE0LTAuNzMxNDI5IDQuNjA4LTEuNDYyODU3IDYuODAyMjg2LTIuNDEzNzE0IDguMzM4Mjg2LTIuNzc5NDI5IDE2LjQ1NzE0My01LjYzMiAyNC4zNTY1NzEtOS4wNjk3MTUgMC44Nzc3MTQtMC4yMTk0MjkgMS42ODIyODYtMC45NTA4NTcgMi40ODY4NTctMS4yNDM0MjhhMzI2LjIxNzE0MyAzMjYuMjE3MTQzIDAgMCAwIDEyMi44OC05NC43OTMxNDNBMzM3LjMzNDg1NyAzMzcuMzM0ODU3IDAgMCAwIDgzNi4yNDIyODYgMzg0aC04NS41MDRsMTM2Ljc3NzE0My0yMTAuMzU4ODU3TDEwMjMuOTI2ODU3IDM4NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzb2xpZC10cmlhbmdsZSIgdW5pY29kZT0iJiM1ODkzODsiIGQ9Ik00NzEuMTQyNCAxMjIuMTYzMmMyMi41MjgtMjUuMDg4IDU4LjY3NTItMjUuNiA4MS43MTUyIDBsMjQ1Ljk2NDggMjczLjQwOGM0NS4xNTg0IDUwLjE3NiAyNi40MTkyIDkwLjgyODgtNDEuNTc0NCA5MC44Mjg4aC00OTAuNDk2Yy02OC4wOTYgMC04Ni43MzI4LTQwLjc1NTItNDEuNTc0NC05MC45MzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InJvYWRuZXR3b3JrIiB1bmljb2RlPSImIzU4OTM5OyIgZD0iTTUwMi43MTA4NTcgODE4LjQ2ODU3MWEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjYyMDU3MS0zNy4zMDI4NTd2LTE2Mi4yMzA4NTdhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42MjA1NzEtMzcuMzAyODU3IDM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjkzNzE0IDM3LjMwMjg1N1Y3ODEuMTY1NzE0YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjkzNzE0IDM3LjMwMjg1N3ogbS0xLjYwOTE0My0zNTIuNzY4YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjkzNzE0LTM3LjMwMjg1N3YtMTYyLjMwNGEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjY5MzcxNC0zNy4zMDI4NTcgMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42MjA1NzIgMzcuMzAyODU3VjQyOC4zOTc3MTRhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42MjA1NzIgMzcuMzAyODU3eiBtMC0zNTMuMjhhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42OTM3MTQtMzcuMzAyODU3di0xNjIuMzc3MTQzYTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjkzNzE0LTM3LjMwMjg1NyAzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjYyMDU3MiAzNy4zMDI4NTd2MTYyLjM3NzE0M2EzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjYyMDU3MiAzNy4zMDI4NTd6IG01MDYuNzMzNzE1LTE5My4wOTcxNDJsLTE4OS4xNDc0MjkgODczLjMyNTcxNGMtNC40NjE3MTQgMjAuNzcyNTcxLTIzLjY5ODI4NiAzMy43MTg4NTctNDIuODYxNzE0IDI5LjAzNzcxNC0xOS4yMzY1NzEtNC43NTQyODYtMzEuMTU4ODU3LTI1LjM4MDU3MS0yNi42OTcxNDMtNDYuMDhsMTg5LjE0NzQyOC04NzMuMzk4ODU3YzQuNTM0ODU3LTIwLjc3MjU3MSAyMy42OTgyODYtMzMuNzE4ODU3IDQyLjkzNDg1OC0yOS4wMzc3MTQgMTkuMjM2NTcxIDQuNzU0Mjg2IDMxLjE1ODg1NyAyNS4zODA1NzEgMjYuNjI0IDQ2LjA4ek0yMzMuODM3NzE0IDgyMS42ODY4NTdjLTE5LjE2MzQyOSA0LjY4MTE0My0zOC40LTguMjY1MTQzLTQyLjg2MTcxNC0yOS4wMzc3MTRMMS44Mjg1NzEtODAuNjc2NTcxYy00LjUzNDg1Ny0yMC43NzI1NzEgNy4zODc0MjktNDEuMzk4ODU3IDI2LjYyNC00Ni4wOCAxOS4yMzY1NzEtNC43NTQyODYgMzguNCA4LjE5MiA0Mi45MzQ4NTggMjguOTY0NTcxbDE4OS4xNDc0MjggODczLjMyNTcxNGM0LjQ2MTcxNCAyMC43NzI1NzEtNy40NjA1NzEgNDEuMzk4ODU3LTI2LjY5NzE0MyA0Ni4wOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyZXR1cm4iIHVuaWNvZGU9IiYjNTg5NDA7IiBkPSJNOTQxLjMxMiAzNDIuNzg0SDI0MC4zODRsMzQ3LjItMzQ3LjItNTguMjQtNTguMjRMODIuNjg4IDM4NGw0NDYuNzIgNDQ2LjY1NiA1OC4yNC01OC4yNC0zNDcuMjY0LTM0Ny4yaDcwMC45Mjh6TTE5OS4yMzIgMzgxLjQ0bDMuNjQ4LTMuMnY2LjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icGFja3VwIiB1bmljb2RlPSImIzU4OTQxOyIgZD0iTTEwNi40OTYgODAwaDgyMC40MTZjMjIuNjU2IDAgNDAuOTYgMjEuNTA0IDQwLjk2IDQ4cy0xOC4zMDQgNDgtNDAuOTYgNDhIMTA2LjQ5NmMtMjIuNTkyIDAtNDAuOTYtMjEuNTA0LTQwLjk2LTQ4czE4LjM2OC00OCA0MC45Ni00OHpNNTQwLjIyNCA0NDhIOTkuNzc2QzgwIDQ0OCA2NCA0MjYuNDk2IDY0IDQwMHMxNi00OCAzNS44NC00OGg0NDAuMzJjMTkuODQgMCAzNS44NCAyMS41MDQgMzUuODQgNDhTNTYwIDQ0OCA1NDAuMTYgNDQ4eiBtMzg1LjE1Mi00NDhIMTA1LjAyNGMtMjIuNjU2IDAtNDEuMDI0LTIxLjUwNC00MS4wMjQtNDhzMTguMzY4LTQ4IDQwLjk2LTQ4aDgyMC40OGMyMi41OTIgMCA0MC45NiAyMS41MDQgNDAuOTYgNDhzLTE4LjM2OCA0OC00MC45NiA0OHogbTMxLjQyNCA2MDcuOTM2bC0yNDAtMjA4IDI0MC0yMDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ic2hhcmUiIHVuaWNvZGU9IiYjNTg5NDI7IiBkPSJNOTE1LjUyIDIzOC43MnYtMjE3LjcyOGMwLTM3LjQ0LTMwLjcyLTY4Ljg2NC02Ni44MTYtNjguODY0bC03MDYuNTYtMS4yOGMtMzYuMDk2IDAtNjUuNiAzMC40LTY1LjYgNjcuODRsMS4yMTYgNzI4LjA2NGMwIDM3LjMxMiAzMC43MiA2OC45MjggNjYuODggNjguOTI4aDM5MC43ODRWODk1LjgwOEgxNDQuNjRDNjIuMDE2IDg5NS44MDggMC4xOTIgODA5LjY2NCAwLjE5MiA3MzIuNjA4di03MTMuODU2YzAtODAuNzY4IDYzLjYxNi0xNDYuNTYgMTQyLjIwOC0xNDYuNTZoNjkyLjczNmM4Mi44MTYgMCAxNTguMTQ0IDcwLjk3NiAxNTguMTQ0IDE0OC44VjIzOC43MnogbS0xODMuMTY4IDU1My40NzJsMjkxLjQ1Ni0yODIuMTEyLTI5MS40NTYtMjgxLjk4NFYzODkuMjQ4cy0yODkuMjggMzEuMDQtNDU4LjA0OC0yMDEuNmMwIDAgNTMuMTIgNDQzLjM5MiA0NTguMDQ4IDQ0My4zOTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYmFja2hvbWVwYWdlIiB1bmljb2RlPSImIzU4OTY5OyIgZD0iTTcyOS4yNDggNDguMTI4aC0xMzkuOTY4YTE5Ljg0IDE5Ljg0IDAgMCAwLTE5Ljg0IDE5Ljg0djI2OS4xMmExOC4wNDggMTguMDQ4IDAgMCAxLTE4LjA0OCAxOC4wMTZoLTc2LjczNmExOC4wNDggMTguMDQ4IDAgMCAxLTE4LjA0OC0xOC4wMTZ2LTI2OS4xMmExOS44NCAxOS44NCAwIDAgMC0xOS44NC0xOS44NEgyOTIuNDhhNTguNDY0IDU4LjQ2NCAwIDAgMC01OC40NjQgNTguNDY0djI0Ny4zNmExMy40NCAxMy40NCAwIDAgMS0xMy40NCAxMy40NEgxODMuNzQ0Yy0zNC40IDAtNTEuODcyIDQxLjI4LTI3Ljk2OCA2NS45ODRsMzI4LjMyIDMzOS4wNGEzOC45MTIgMzguOTEyIDAgMCAwIDU1LjY0OCAwLjMyTDg3Mi41MTIgNDM2LjQ4YzI1LjM3Ni0yNS42IDcuMi02OS4xMi0yOC44MzItNjkuMTJIODA0LjE2YTE0LjQ2NCAxNC40NjQgMCAwIDEtMTQuNDY0LTE0LjQ2NHYtMjQ0LjM1MmE2MC40OCA2MC40OCAwIDAgMC02MC40OC02MC40OHogbS04NS42NjQgNDkuODg4aDcxLjk2OGMxMy40MDggMCAyNC4yNTYgMTAuODggMjQuMjU2IDI0LjI1NnYyNzAuMjA4YzAgMTMuNjk2IDExLjEwNCAyNC44IDI0LjggMjQuOGg0Ni40OTZhNC4yODggNC4yODggMCAwIDEgMy4wNCA3LjI5Nkw1MjMuOTY4IDcxNy43NmExNi4zODQgMTYuMzg0IDAgMCAxLTIzLjQyNC0wLjEyOGwtMjkwLjg4LTMwMC4zODRoNDkuNDcyYzEzLjY5NiAwIDI0LjgtMTEuMTA0IDI0LjgtMjQuOHYtMjcwLjIwOGMwLTEzLjQwOCAxMC44OC0yNC4yNTYgMjQuMjU2LTI0LjI1Nmg3NC4yNGMxMy40NCAwIDI0LjMyIDEwLjg4IDI0LjMyIDI0LjI1NlYzMzQuNzJjMCAzOC44NDggMzEuNDU2IDcwLjMwNCA3MC4yNzIgNzAuMzA0aDcyYzM4LjgxNiAwIDcwLjMwNC0zMS40NTYgNzAuMzA0LTcwLjMwNHYtMjEyLjQxNmMwLTEzLjQwOCAxMC44OC0yNC4yNTYgMjQuMjU2LTI0LjI1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJNeU1hcHMiIHVuaWNvZGU9IiYjNTg5NzA7IiBkPSJNODMwLjU5MiA3MjguNTc2Yy01LjE1MiAwLTEwLjQzMi0wLjg2NC0xNS41ODQtMi44MTZsLTE3Mi44OTYtNjIuODE2YTQ1LjI0OCA0NS4yNDggMCAwIDAtMTUuNTg0LTIuNzJjLTUuNzYgMC0xMS40NTYgMS4wNTYtMTYuODY0IDMuMjY0bC0xOTUuMiA3OC4xMTJhNDUuNiA0NS42IDAgMCAxLTMyLjQ0OCAwLjUxMkwxNzcuOTg0IDY2Ny45NjhhNDUuNDQgNDUuNDQgMCAwIDEtMjkuOTItNDIuNzg0di01NDAuMTZhNDUuNTA0IDQ1LjUwNCAwIDAgMSA2MC45OTItNDIuNjg4bDE3Mi44OTYgNjIuODQ4YzQuOTkyIDEuODI0IDEwLjMwNCAyLjY4OCAxNS41NTIgMi42ODggNS43NiAwIDExLjQ4OC0xLjA1NiAxNi44OTYtMy4ybDE5NS4yLTc4LjE3NmE0NS4yNDggNDUuMjQ4IDAgMCAxIDMyLjQ4LTAuNTEybDIwMy45NjggNzQuMjA4YTQ1LjQ0IDQ1LjQ0IDAgMCAxIDI5LjkyIDQyLjc4NFY2ODMuMTA0YzAgMjUuOTUyLTIxLjM0NCA0NS40NzItNDUuNDQgNDUuNDcyek0xOTMuNDcyIDg0LjkyOFY2MjUuMTUybDE4Mi4wMTYgNjYuMTQ0di01NDAuNzM2YTgzLjkzNiA4My45MzYgMCAwIDEtOS4wODgtMi44MTZ6IG0yMjcuNTIgNjUuMjhWNjg5Ljg4OGwxNzEuNzc2LTY4LjY3MmMzLjM5Mi0xLjMxMiA2LjgxNi0yLjQ2NCAxMC4yNC0zLjQyNHYtNTM5LjY4bC0xNzEuNzc2IDY4LjY3MmE3MC4yNCA3MC4yNCAwIDAgMS0xMC4yNCAzLjQyNHogbTQwOS41MDQtNy4zNmwtMTgxLjk4NC02Ni4xNDRWNjE3LjQ0YzMuMDQgMC44IDYuMTEyIDEuNjY0IDkuMDg4IDIuODE2bDE3Mi44OTYgNjIuODE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IkNyZWF0ZU1hcCIgdW5pY29kZT0iJiM1ODk3MTsiIGQ9Ik01MTIgNzM2QzMwMC4wMzIgNzM2IDEyOCA1NjMuOTY4IDEyOCAzNTJzMTcyLjAzMi0zODQgMzg0LTM4NCAzODQgMTcyLjAzMiAzODQgMzg0UzcyMy45NjggNzM2IDUxMiA3MzZ6IG0wLTcxNC4yNGMtMTgyLjAxNiAwLTMzMC4yNCAxNDguMjI0LTMzMC4yNCAzMzAuMjRTMzI5Ljk4NCA2ODIuMjQgNTEyIDY4Mi4yNCA4NDIuMjQgNTM0Ljc4NCA4NDIuMjQgMzUyIDY5NC4wMTYgMjEuNzYgNTEyIDIxLjc2ek02NjcuMTM2IDM4NS43OTJoLTEyMS4zNDR2MTIxLjM0NGMwIDE0LjU5Mi0xMi4yODggMjYuODgtMjYuODggMjYuODhzLTI2Ljg4LTEyLjI4OC0yNi44OC0yNi44OHYtMTIxLjM0NGgtMTIxLjM0NGMtMTQuNTkyIDAtMjYuODgtMTIuMjg4LTI2Ljg4LTI2Ljg4czEyLjI4OC0yNi44OCAyNi44OC0yNi44OGgxMjEuMzQ0di0xMjEuMzQ0YzAtMTQuNTkyIDEyLjI4OC0yNi44OCAyNi44OC0yNi44OHMyNi44OCAxMi4yODggMjYuODggMjYuODh2MTIxLjM0NGgxMjEuMzQ0YzE0LjU5MiAwIDI2Ljg4IDEyLjI4OCAyNi44OCAyNi44OHMtMTIuMjg4IDI2Ljg4LTI2Ljg4IDI2Ljg4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImZlZWRiYWNrIiB1bmljb2RlPSImIzU4OTcyOyIgZD0iTTQxMC4zMDQgMTUyLjg5NmwtMTc1LjY0OC0xMzguNjg4djEzOC42ODhoLTI4LjQ0OGE2NCA2NCAwIDAgMC02NCA2NFY2NDMuNTJhNjQgNjQgMCAwIDAgNjQgNjRoNjExLjU4NGE2NCA2NCAwIDAgMCA2NC02NHYtNDI2LjY1NmE2NCA2NCAwIDAgMC02NC02NHogbS03LjM2IDQ2LjIwOGg0MDAuNjRhMzIgMzIgMCAwIDEgMzIgMzJWNjI5LjM0NGEzMiAzMiAwIDAgMS0zMiAzMkgyMjAuNDE2YTMyIDMyIDAgMCAxLTMyLTMydi0zOTguMjRhMzIgMzIgMCAwIDEgMzItMzJoMjguNDQ4YTMyIDMyIDAgMCAwIDMyLTMydi01NS44MDhsMTAyLjIwOCA4MC44OTZhMzIgMzIgMCAwIDAgMTkuODQgNi45MTJ6TTI4MC44OTYgMzg0aDQ2Mi4yMDh2LTQ2LjIwOEgyODAuODk2eiBtMCAxMzguNjU2aDQ2Mi4yMDh2LTQ2LjIwOEgyODAuODk2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNraW4xIiB1bmljb2RlPSImIzU4OTczOyIgZD0iTTc0MC4xOTIgNzgwdi01NmwxNDIuODE2LTE0MS40MDgtNzkuODA4LTc5Ljc3NmE1NS4yIDU1LjIgMCAwIDEtMzcuNzkyIDEzLjk4NCA1Ni43NjggNTYuNzY4IDAgMCAxLTU3LjQwOC01Ny40MDh2LTI5NS4zOTJjMC0zMC44MTYtMjUuMTg0LTU2LTU2LTU2aC0yODBjLTMwLjc4NCAwLTU2IDI1LjE4NC01NiA1NnYyOTUuMzkyYTU2Ljc2OCA1Ni43NjggMCAwIDEtNTcuNDA4IDU3LjQwOGMtMTMuOTg0IDAtMjgtNS42LTM3Ljc5Mi0xNC4wMTZMMTQwLjk5MiA1ODIuNTkybDE0MS40MDggMTQxLjQwOGgzNS4wMDhsMS40MDgtMS40MDhDMzU4LjAxNiA2NjMuODA4IDQzMi4xOTIgNjI1Ljk4NCA1MTIgNjI1Ljk4NHMxNTQuMDE2IDM2LjQxNiAxOTMuMTg0IDk2LjY0YzAgMS4zNzYgMS40MDggMS4zNzYgMS40MDggMS4zNzZoMzMuNnogbS00MjEuMzc2IDBIMjg4Yy0xOS41ODQgMC0zMy42LTUuNi00My4zOTItMTYuOEwxMDEuNzYgNjIxLjc5MmMtMjIuNC0yMi40LTIyLjQtNTcuNDA4IDAtNzguNEwxODQuNDE2IDQ2MC44YzkuNzkyLTkuNzkyIDIzLjc3Ni0xNS4zOTIgMzYuMzg0LTE1LjM5MnMyNi41OTIgNS42IDM2LjQxNiAxNS4zOTJoMS4zNzZjMS40MDggMCAxLjQwOCAwIDEuNDA4LTEuNDA4di0yOTUuMzkyYTExMi4zMiAxMTIuMzIgMCAwIDEgMTEyLTExMmgyODBhMTEyLjMyIDExMi4zMiAwIDAgMSAxMTIgMTEydjI5NS4zOTJjMCAxLjQwOCAwIDEuNDA4IDEuNDA4IDEuNDA4aDEuMzc2YzkuODI0LTkuNzkyIDIzLjgwOC0xNS4zOTIgMzYuNDE2LTE1LjM5MiAxMy45ODQgMCAyNi41OTIgNS42IDM2LjM4NCAxNS4zOTJsODIuNjI0IDgyLjU5MmMyMi40IDIyLjQgMjIuNCA1Ny40MDggMCA3OC40TDc4MC44IDc2My4yYTU2LjA2NCA1Ni4wNjQgMCAwIDEtNDAuNjA4IDE2LjhoLTM1LjAwOGMtMTkuNTg0IDAtMzYuMzg0LTkuNzkyLTQ3LjU4NC0yNi41OTItMjkuNDA4LTQzLjQyNC04NC03MS40MjQtMTQ3LjAwOC03MS40MjRzLTExNy42IDI5LjQ0LTE0Ny4wMDggNzEuNDI0Yy04LjM4NCAxNi44LTI2LjU2IDI2LjU5Mi00NC44IDI2LjU5MnpNMzg0IDQ4MGgxMjh2LTE2MGgtMTI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLSIgdW5pY29kZT0iJiM1ODk3NDsiIGQ9Ik02MTMuNjMyIDgzOS4zNmMxNC41MjggMTguNDMyIDIxLjY5NiAxNS4wNCAxNS44MDgtOEw1NTUuMzkyIDU0MC40OCA3OTguNzg0IDQ2Ny4yYzExLjItMy4zMjggMTQuNTkyLTEzLjYzMiA3LjQ4OC0yMy4wNGwtMzg3LjUyLTUxNi4wOTZjLTE0LjE0NC0xOC45NDQtMjAuODY0LTE1LjgwOC0xNC45MTIgNy4xMDRMNDgyLjI0IDIzNi44IDIwMC45NiAyODYuMjcyYy0xMS41ODQgMi4wNDgtMTUuMTY4IDExLjA3Mi03Ljc0NCAyMC40OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJhY2NvdW50IiB1bmljb2RlPSImIzU4OTc1OyIgZD0iTTg0Ny42OCA2NjEuNDRjMTcuNiAwIDMxLjg3Mi0xNC4yNzIgMzEuODcyLTMxLjg0di00OTEuMmMwLTE3LjU2OC0xNC4yNzItMzEuODcyLTMxLjg3Mi0zMS44NzJIMTc2LjMyYTMxLjkwNCAzMS45MDQgMCAwIDAtMzEuODcyIDMxLjg3MlY2MjkuNmMwIDE3LjU2OCAxNC4yNzIgMzEuODcyIDMxLjg3MiAzMS44NzJ6IG0wIDUyLjUxMkgxNzYuMzJhODQuMzg0IDg0LjM4NCAwIDAgMS04NC4zODQtODQuMzUydi00OTEuMkE4NC4zODQgODQuMzg0IDAgMCAxIDE3Ni4zMiA1NC4wOGg2NzEuMzZhODQuMzg0IDg0LjM4NCAwIDAgMSA4NC4zODQgODQuMzUyVjYyOS42QTg0LjM4NCA4NC4zODQgMCAwIDEgODQ3LjY4IDcxMy45MnpNODEyLjQ0OCA1MzcuNzZjMC0xNC40MzItMTEuODQtMjYuMjQtMjYuMjQtMjYuMjRoLTE3Mi40OGMtMTQuNDMyIDAtMjYuMjQgMTEuODA4LTI2LjI0IDI2LjI0czExLjgwOCAyNi4yNCAyNi4yNCAyNi4yNGgxNzIuNDhjMTQuNCAwIDI2LjI0LTExLjg0IDI2LjI0LTI2LjI0eiBtMC0xMjMuNzQ0YzAtMTQuNDMyLTExLjg0LTI2LjI0LTI2LjI0LTI2LjI0aC0xMTYuOTZhMjYuMzM2IDI2LjMzNiAwIDAgMC0yNi4yNCAyNi4yNGMwIDE0LjQzMiAxMS44MDggMjYuMjQgMjYuMjQgMjYuMjRoMTE2LjkyOGMxNC40NjQgMCAyNi4yNC0xMS44MDggMjYuMjQtMjYuMjR6IG0wLTEyMy43NDRjMC0xNC40LTExLjg0LTI2LjI0LTI2LjI0LTI2LjI0aC02NS43NmMtMTQuNDMyIDAtMjYuMjQgMTEuODQtMjYuMjQgMjYuMjRzMTEuODA4IDI2LjI0IDI2LjI0IDI2LjI0aDY1LjcyOGMxNC40NjQgMCAyNi4yNC0xMS43NzYgMjYuMjQtMjYuMjR6TTQ4MS4wMjQgMzc0LjA4YTE4Ny41MiAxODcuNTIgMCAwIDAgMTA2LjQ2NC0xNjkuMTUyaC01Mi41MTJhMTM0LjExMiAxMzQuMTEyIDAgMCAxLTM5LjU1MiA5NS40NTYgMTM0LjAxNiAxMzQuMDE2IDAgMCAxLTg4Ljg5NiAzOS4zOTIgMTE0LjE3NiAxMTQuMTc2IDAgMCAwLTEzLjEyIDBjLTMzLjYtMS42LTY0Ljk2LTE1LjQyNC04OC44OTYtMzkuMzZhMTM0LjExMiAxMzQuMTEyIDAgMCAxLTM5LjUyLTk1LjQ4OEgyMTIuNDhhMTg3LjUyIDE4Ny41MiAwIDAgMCAxMDYuNDY0IDE2OS4xMiAxMTIuNTEyIDExMi41MTIgMCAxIDAgMTYyLjA4IDB6IG0tMTQxLjA1NiA3OC4wMTZjMC0zMS4yMzIgMjQtNTYuOTYgNTQuNDY0LTU5Ljc0NGExOTAuMTEyIDE5MC4xMTIgMCAwIDAgMTEuMDcyIDAgNjAuMDY0IDYwLjA2NCAwIDAgMSA1NC40NjQgNTkuNzQ0YzAgMzMuMDU2LTI2Ljg4IDYwLTYwIDYwcy02MC0yNi45NDQtNjAtNjB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMSIgdW5pY29kZT0iJiM1ODk3NjsiIGQ9Ik04MjMuMjMyIDUxMkg3MDRWNjcyYzAgMTcuNi0xNC40IDMyLTMyIDMyaC01NzZjLTE3LjYgMC0zMi0xNC40LTMyLTMydi00NDhjMC0xNy42IDE0LjQtMzIgMzItMzJIMTI4YzAtNzAuNCA1Ny42LTEyOCAxMjgtMTI4czEyOCA1Ny42IDEyOCAxMjhoMjU2YzAtNzAuNCA1Ny42LTEyOCAxMjgtMTI4czEyOCA1Ny42IDEyOCAxMjhoMzJjMTcuNiAwIDMyIDE0LjQgMzIgMzJWMzE0LjQzMmMwIDMuMi0wLjgzMiA2LjQtMi4zNjggOC43NjhsLTEyMC44MzIgMTgxLjU2OEExNS43NDQgMTUuNzQ0IDAgMCAxIDgyMy4yMzIgNTEyek0yNjguOCAxMjkuNmE2NCA2NCAwIDEgMC0yNC43NjggMTI1LjYzMiA2NCA2NCAwIDAgMCA3NS4yLTc1LjJjLTUuNjMyLTI1LjYtMjUuNi00NS42MzItNTAuNDMyLTUwLjQzMnogbTUxMiAwYTY0IDY0IDAgMSAwLTI0Ljc2OCAxMjUuNjMyIDY0IDY0IDAgMCAwIDc1LjEzNi03NS4yYy01LjU2OC0yNS42LTI1LjYtNDUuNjMyLTUwLjM2OC01MC40MzJ6TTcwNCAzMjBWNDQ4aDk1LjIzMmM1LjU2OCAwIDEwLjM2OC0yLjM2OCAxMi44LTcuMjMyTDg5NiAzMjB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMiIgdW5pY29kZT0iJiM1ODk3NzsiIGQ9Ik05MjggNTEyYTMyIDMyIDAgMCAwLTE0LjA4IDMuMkw1NDQgNzA0IDE3NC4wOCA1MTYuNDhBMzIuODk2IDMyLjg5NiAwIDAgMCAxNDUuOTIgNTc2TDU0NCA3NzMuMTIgOTQyLjA4IDU3NmEzMi43NjggMzIuNzY4IDAgMCAwLTE0LjA4LTY0ek0zODQgMTkySDE5MnYtMTkyaDE5MnogbTI1NiAwSDQ0OHYtMTkyaDE5MnogbTI1NiAwaC0xOTJ2LTE5MmgxOTJ6IG0tMTI4IDI1Nkg1NzZ2LTE5MmgxOTJ6TTUxMiA0NDhIMzIwdi0xOTJoMTkyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTMiIHVuaWNvZGU9IiYjNTg5Nzg7IiBkPSJNNjk2LjMyIDM2MC40NDhjMC0yNi42MjQtNC45MjgtNTEuNTItMTQuODQ4LTc0Ljc1MnMtMjMuNTUyLTQzLjUyLTQwLjk2LTYwLjkyOC0zNy43Ni0zMS4wNC02MC45MjgtNDAuOTYtNDguMTI4LTE0Ljg0OC03NC43NTItMTQuODQ4LTUxLjUyIDQuOTI4LTc0Ljc1MiAxNC44NDgtNDMuNTIgMjMuNTUyLTYwLjkyOCA0MC45Ni0zMS4wNCAzNy43Ni00MC45NiA2MC45MjgtMTQuODQ4IDQ4LjEyOC0xNC44NDggNzQuNzUyIDQuOTI4IDUxLjUyIDE0Ljg0OCA3NC43NTIgMjMuNTUyIDQzLjUyIDQwLjk2IDYwLjkyOCAzNy43NiAzMS4wNCA2MC45MjggNDAuOTYgNDguMTI4IDE0Ljg0OCA3NC43NTIgMTQuODQ4IDUxLjUyLTQuOTI4IDc0Ljc1Mi0xNC44NDggNDMuNTItMjMuNTUyIDYwLjkyOC00MC45NiAzMS4wNC0zNy43NiA0MC45Ni02MC45MjggMTQuODQ4LTQ4LjEyOCAxNC44NDgtNzQuNzUyeiBtNjQuNTEyLTM3Ny44NTZjMC03LjQ4OC0zLjA3Mi0xNC4zMzYtOS4yMTYtMjAuNDhzLTE0LjAxNi0xMS40NTYtMjMuNTUyLTE1Ljg3Mi0yMC44LTgtMzMuNzkyLTEwLjc1Mi0yNS45Mi00LjA5Ni0zOC45MTItNC4wOTZIMzQ3LjEzNmMtMTEuNTg0IDAtMjMuMjMyIDEuMzQ0LTM0LjgxNiA0LjA5NnMtMjIuMDE2IDYuMzM2LTMxLjIzMiAxMC43NTItMTYuNzA0IDkuNzI4LTIyLjUyOCAxNS44NzItOC43MDQgMTIuOTkyLTguNzA0IDIwLjQ4eiBtOS4yMTYgODY1LjI4YzI5LjM3NiAwIDUwLjY4OC04LjUxMiA2NC0yNS42czE5Ljk2OC0zNy41NjggMTkuOTY4LTYxLjQ0di02NTcuNDA4YzAtMjMuODcyLTguNTEyLTQ0LjM1Mi0yNS42LTYxLjQ0cy0zOC41OTItMjUuNi02NC41MTItMjUuNkgyNDUuNzZjLTI2LjYyNCAwLTQ4LjEyOCA4LjUxMi02NC41MTIgMjUuNnMtMjQuNTc2IDM3LjU2OC0yNC41NzYgNjEuNDRWNzYwLjgzMmMwIDIzLjg3MiA3LjQ4OCA0NC4xNiAyMi41MjggNjAuOTI4czM1LjUyIDI1LjA4OCA2MS40NCAyNS4wODh6TTIyNS4yOCA3MjguMDY0YzAtNy40ODggMi41Ni0xNC41MjggNy42OC0yMC45OTJzMTMuNDQtOS43MjggMjUuMDg4LTkuNzI4aDc3LjgyNGMxMS41ODQgMCAyMC4xNiAzLjkwNCAyNS42IDExLjc3NnM4LjE5MiAxNS41NTIgOC4xOTIgMjMuMDR2MTUuMzZjMCA3LjQ4OC0zLjA3MiAxNC4zMzYtOS4yMTYgMjAuNDhzLTE0LjcyIDkuMjE2LTI1LjYgOS4yMTZIMjYwLjA5NmMtMTEuNTg0IDAtMjAuMjg4LTMuMi0yNi4xMTItOS43MjhzLTguNzA0LTEzLjQ0LTguNzA0LTIwLjk5MnogbTI3OS41NTItNjIzLjYxNmMzNS41MiAwIDY4LjggNi42NTYgOTkuODQgMTkuOTY4czU4LjI0IDMxLjU1MiA4MS40MDggNTQuNzg0IDQxLjQ3MiA1MC4zNjggNTQuNzg0IDgxLjQwOGEyNTAuNzUyIDI1MC43NTIgMCAwIDEgMTkuOTY4IDk5Ljg0YzAgMzQuODE2LTYuNjU2IDY3Ljc3Ni0xOS45NjggOTguODE2cy0zMS41NTIgNTguMjQtNTQuNzg0IDgxLjQwOC01MC4zNjggNDEuNDcyLTgxLjQwOCA1NC43ODQtNjQuMzIgMTkuOTY4LTk5Ljg0IDE5Ljk2OGMtMzQuODE2IDAtNjcuNzc2LTYuNjU2LTk4LjgxNi0xOS45NjhzLTU4LjI0LTMxLjU1Mi04MS40MDgtNTQuNzg0LTQxLjQ3Mi01MC4zNjgtNTQuNzg0LTgxLjQwOC0xOS45NjgtNjQtMTkuOTY4LTk4LjgxNmMwLTM1LjUyIDYuNjU2LTY4LjggMTkuOTY4LTk5Ljg0IDEzLjMxMi0zMS4wNCAzMS41NTItNTguMjQgNTQuNzg0LTgxLjQwOHM1MC4zNjgtNDEuNDcyIDgxLjQwOC01NC43ODQgNjQtMTkuOTY4IDk4LjgxNi0xOS45Njh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNCIgdW5pY29kZT0iJiM1ODk3OTsiIGQ9Ik02NzcuNzYgMTg0Ljc2OGExOC43NTIgMTguNzUyIDAgMCAwLTUuMTg0IDEyLjU0NGMwIDkuNDcyIDcuNjggMTcuMjE2IDE3LjA4OCAxNy4zNDRoMTAwLjQxNmM5LjYgMCAxNy4zNDQgNy44MDggMTcuMzQ0IDE3LjQwOGExNy45ODQgMTcuOTg0IDAgMCAxLTUuNTA0IDEyLjQ4TDY1Mi44IDM5NC40OTZhMjAuOTI4IDIwLjkyOCAwIDAgMC00LjI4OCAxMS44NCAxNy40MDggMTcuNDA4IDAgMCAwIDE3LjI4IDE3LjI4aDc5LjM2YzkuNiAwLjEyOCAxNy4zNDQgNy45MzYgMTcuMzQ0IDE3LjUzNmExNy4yOCAxNy4yOCAwIDAgMS01LjMxMiAxMi40MTZMNjA4LjU3NiA2MDIuNDMybC0wLjk2IDAuOTZhMTcuNDA4IDE3LjQwOCAwIDAgMCAxMi42MDggMjkuMjQ4aDYwLjE2YzkuNiAwIDE3LjI4IDcuODA4IDE3LjI4IDE3LjQ3MmExNy4xNTIgMTcuMTUyIDAgMCAxLTQuNjcyIDExLjM5MmgwLjM4NEw1NTcuNzYgODI1LjA4OEExNy4yOCAxNy4yOCAwIDAgMSA1NDMuODcyIDgzMmExNy4yOCAxNy4yOCAwIDAgMS0xMy44ODgtNi45MTJMMzk0Ljg4IDY2MS41MDRhMTcuMTUyIDE3LjE1MiAwIDAgMS00LjczNi0xMS4zOTJjMC05LjYgNy43NDQtMTcuNDA4IDE3LjM0NC0xNy40MDhoNjAuMTZhMTYuODMyIDE2LjgzMiAwIDAgMCAxMi44LTI5LjI0OGwtMS4wMjQtMS4wMjQtMTQ4LjQ4LTE0OC44NjRhMTcuMjggMTcuMjggMCAwIDEtNS4zNzYtMTIuNDE2YzAtOS41MzYgNy42MTYtMTcuMjggMTcuMDg4LTE3LjQ3Mmg3OS40ODhhMTcuMjggMTcuMjggMCAwIDAgMTcuMzQ0LTE3LjM0NCAyMC45MjggMjAuOTI4IDAgMCAwLTQuMzUyLTExLjg0TDI4NS44MjQgMjQ0LjQ4YTE3Ljk4NCAxNy45ODQgMCAwIDEtNS42OTYtMTIuNDhjMC05LjYgNy44MDgtMTcuNDA4IDE3LjM0NC0xNy40MDhoMTAwLjY3MmExNy40MDggMTcuNDA4IDAgMCAwIDE3LjIxNi0xNy4yOCAxOC43NTIgMTguNzUyIDAgMCAwLTUuMTItMTIuNjA4bC0xNDguNTQ0LTE0OC40OC0wLjY0LTAuNjRhMTcuMjggMTcuMjggMCAwIDEgMC0yNC40NDggMTcuNzI4IDE3LjcyOCAwIDAgMSAxMi40OC01LjUwNGgyMzUuNjQ4Vi02NGw2OS4zNzYgMC41NzZ2NjkuMTJoMjM1LjM5MmExOC4zMDQgMTguMzA0IDAgMCAxIDE4LjA0OCAxNy42NjQgMTcuMjggMTcuMjggMCAwIDEtNC45MjggMTIuMzUyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUiIHVuaWNvZGU9IiYjNTg5ODA7IiBkPSJNMjk0LjE0NCAzMjcuMTA0bDEuMzQ0LTEuNjY0IDE1NC41Ni0xNjQuOTI4YzMzLjkyLTM5LjkzNiA5MC42ODgtMzkuOTM2IDEyNS4xMiAwLjUxMmwxNTMuNiAxNjQuODY0IDMuNzc2IDQuMDMyIDIuMjQgMi40MzJBMTQ2LjY4OCAxNDYuNjg4IDAgMCAxIDc2OCA0MjcuNTg0YTE0OC40OCAxNDguNDggMCAwIDEtMjU2IDEwMi4yNzIgMTQ4LjQ4IDE0OC40OCAwIDAgMS0yNTYtMTAyLjI3MmMwLTM3LjEyIDE0LjA4LTczLjQwOCAzOC4xNDQtMTAwLjQ4ek01MTItMzJhNDE2IDQxNiAwIDEgMCAwIDgzMiA0MTYgNDE2IDAgMCAwIDAtODMyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTYiIHVuaWNvZGU9IiYjNTg5ODE7IiBkPSJNNjA4IDMyMGEyMi40IDIyLjQgMCAwIDAgMC00NC44SDUzNC40di0xOS4yYTIyLjQgMjIuNCAwIDEgMC00NC44IDB2MTkuMkg0MTZhMjIuNCAyMi40IDAgMSAwIDAgNDQuOGg3My42djUxLjJINDE2YTIyLjQgMjIuNCAwIDAgMCAwIDQ0LjhoNjQuMzg0bC0wLjI1NiAwLjE5Mi02NCA2NGEyMi40IDIyLjQgMCAwIDAgMzEuNzQ0IDMxLjY4bDY0LTY0TDUxMiA0NDcuNjE2bDAuMTkyIDAuMjU2IDY0IDY0YTIyLjQgMjIuNCAwIDEgMCAzMS42MTYtMzEuNjhsLTY0LTY0LTAuMTkyLTAuMTkySDYwOGEyMi40IDIyLjQgMCAwIDAgMC00NC44SDUzNC40VjMyMHogbTI1NiAxNjBoMzJWNjQwLjE5MkE2NCA2NCAwIDAgMSA4MzEuOTM2IDcwNEgxOTIuMDY0QTY0IDY0IDAgMCAxIDEyOCA2NDAuMTkyVjQ4MGgzMkMyMTIuOTI4IDQ4MCAyNTYgNDM2LjkyOCAyNTYgMzg0cy00My4wNzItOTYtOTYtOTZIMTI4di0xNjAuMTkyQTY0IDY0IDAgMCAxIDE5Mi4wNjQgNjRoNjM5Ljg3MkE2NCA2NCAwIDAgMSA4OTYgMTI3LjgwOFYyODhoLTMyYy01Mi45MjggMC05NiA0My4wNzItOTYgOTZzNDMuMDcyIDk2IDk2IDk2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTciIHVuaWNvZGU9IiYjNTg5ODI7IiBkPSJNMTY0Ljk5MiAyODcuMzZjLTIzLjY4LTQyLjgxNi02Ny4xMzYtMTIwLjgzMiA5LjY2NC0xNzIuOTkyIDI0LjEyOC0xNi4xOTIgNTEuMi0yNy40NTYgNzkuNTUyLTMzLjAyNCAyMS42MzItMy4yIDIyLjcyLTM3LjEyLTIuNjg4LTM2LjI4OC0yNy4wNzIgMS40MDgtMTU4LjkxMiAxMy44MjQtMTgwLjA5NiAxMTQuNDMyLTEwLjk0NCA1OC43NTIgMS40MDggMTExLjM2IDM1LjQ1NiAxNjguNTEybDQ5LjAyNCA4OC4xMjhMNjQgNDY5LjMxMmwyNDQuOCAxNDcuOTY4di0yODYuMDhMMjE2Ljk2IDM4MC44eiBtMjk4LjU2IDQ3MC41MjhjODEuMjE2IDQ0LjkyOCAxMjguMTkyLTMwLjcyIDE1NC4wNDgtNzJsNTYuNzA0LTkwLjM2OC04OS4wMjQtNTcuNzkyIDI1MS4wMDgtMTM0LjAxNi0xMy44MjQgMjg4LTg4Ljk2LTU3LjcyOC01My40NCA4NC45OTJjLTM2LjY3MiA1My4zNzYtNjMuNTUyIDkyLjgtMTI5LjAyNCAxMTAuNTI4LTExNS4yIDIyLjQtMTg1LjkyLTExMy40NzItMTg1LjIxNi0xMTIuNTc2LTExLjUyLTIwLjQ4IDE1LjE2OC0zOC41OTIgMzEuNzQ0LTE1LjA0YTIyMS4xODQgMjIxLjE4NCAwIDAgMCA2NS45MiA1NnogbTQ2My43NDQtNDQyLjQ5NmMtNi4xNDQgMTMuNTY4LTM4LjU5MiAxMC4xMTItMjkuNDQtMTkuMTM2IDkuMjE2LTI3Ljg0IDEyLjkyOC01Ny4yMTYgMTEuMDA4LTg2LjUyOC02LjUyOC05My44MjQtOTQuNzg0LTkzLjEyLTE0Mi45MTItOTMuMTJINjYwLjQ4djEwNy4yNjRsLTI0Ni4yMDgtMTQzLjA0TDY1OS41ODQtNjRsMC4zODQgMTA5LjA1NmgxMDUuOTg0YzYyLjY1Ni0xLjA4OCAxMTIuNTEyIDEyLjYwOCAxNTQuNzUyIDUxLjAwOCA4NC40MTYgNzUuOTA0IDYuNTkyIDIxOS4zMjggNi41OTIgMjE5LjMyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS04IiB1bmljb2RlPSImIzU4OTgzOyIgZD0iTTQ5MC4xNzYgNjM0LjI0YzEwLjMwNCAwIDE5LjMyOC0zLjcxMiAyNy4xMzYtMTEuMDA4czExLjU4NC0xNi4zODQgMTEuNTg0LTI3LjA3MmMwLTEwLjY4OC0zLjg0LTE5LjcxMi0xMS41ODQtMjcuMDcycy0xNi44MzItMTAuOTQ0LTI3LjEzNi0xMC45NDRhMzcuODI0IDM3LjgyNCAwIDAgMC0zOC43ODQgMzguMDE2YzAgMTAuNjg4IDMuNzEyIDE5LjcxMiAxMS4yIDI3LjA3MnMxNi42NCAxMC45NDQgMjcuNTIgMTAuOTQ0ek0xOTIgMzg0YzAgMjkuMzEyIDEuOTg0IDU3LjYgNi4wMTYgODQuOTI4IDQuMDMyIDI3LjMyOCAxMC4wNDggNTMuNjk2IDE4LjExMiA3OS4wNGw2NDcuMTA0LTM1My4yOGE0NzguNDY0IDQ3OC40NjQgMCAwIDAtNTQuMjcyLTEwNC44MzIgNDAxLjYgNDAxLjYgMCAwIDAtNzQuMTEyLTgxLjZjLTI3LjUyLTIyLjc4NC01Ny42LTQwLjU3Ni05MC4wNDgtNTMuMjQ4QTI3NS44NCAyNzUuODQgMCAwIDAgNTQzLjU1Mi02NGMtNDguMjU2IDAtOTMuNzYgMTEuNzEyLTEzNi41NzYgMzUuMDcycy04MC4xMjggNTUuMzYtMTEyIDk2LTU2Ljk2IDg4LTc1LjM5MiAxNDIuNEE1NDEuNTA0IDU0MS41MDQgMCAwIDAgMTkyIDM4NHogbTY3Mi45NiAxODMuNDI0YzkuNzkyLTI4LjE2IDE3LjQwOC01Ny42IDIyLjg0OC04OC4zMlM4OTYgNDE2LjY0IDg5NiAzODRjMC01MC42ODgtNi41OTItOTkuNDU2LTE5Ljg0LTE0Ni4yNEw2MDQuOCAzODYuNTZ6TTU2NC4yMjQgNDA4LjUxMkwyMzEuNjggNTkwLjI3MmMxNC40IDM2LjAzMiAzMi40NDggNjguODY0IDU0LjMzNiA5OC40MzJzNDYuMDggNTQuOTc2IDcyLjc2OCA3Ni4wOTYgNTUuNjggMzcuNjMyIDg3LjA0IDQ5LjQ3MkM0NzcuMTIgODI2LjExMiA1MDkuNjk2IDgzMiA1NDMuNTUyIDgzMmMzMi43NjggMCA2NC4wNjQtNS4zNzYgOTMuOTUyLTE2YTMyMi41NiAzMjIuNTYgMCAwIDAgODQuMDMyLTQ1LjMxMmMyNi4xMTItMTkuMzkyIDQ5Ljc5Mi00Mi44MTYgNzEuMDQtNzAuMTQ0IDIxLjI0OC0yNy4zMjggMzkuNjgtNTcuNiA1NS4xNjgtOTAuODhMNTYyLjQ5NiA0MTEuMDcyeiBtLTExLjIgNTcuNDcyTDczNi42NCA1ODYuODhhMjM3LjQ0IDIzNy40NCAwIDAgMS0zOC43ODQgNzEuMDQgMTc3LjQwOCAxNzcuNDA4IDAgMCAxLTI0Ljk2IDI2LjE3NiAxODkuNTY4IDE4OS41NjggMCAwIDEtMzMuMjE2IDIyLjc4NCAxNzkuNTIgMTc5LjUyIDAgMCAxLTQxLjM0NCAxNi4wNjQgMjAwLjgzMiAyMDAuODMyIDAgMCAxLTUwLjM2OCA1Ljk1MmMtMTcuMjggMC0zMy4wODgtMi4xMTItNDcuMzYtNi40YTE5MS4xMDQgMTkxLjEwNCAwIDAgMS03Mi44OTYtMzkuNjggMjk5LjU4NCAyOTkuNTg0IDAgMCAxLTI3LjEzNi0yNi42MjQgMjg3LjQ4OCAyODcuNDg4IDAgMCAxLTQ2LjUyOC03MS44NzJ6IG00NC44IDE2OC4xOTJhMzcuODI0IDM3LjgyNCAwIDAgMCAzOC43ODQtMzguMDE2IDM3LjgyNCAzNy44MjQgMCAwIDAtMzguNzg0LTM4LjAxNiAzNy44MjQgMzcuODI0IDAgMCAwLTM4LjcyIDM4LjAxNmMwIDEwLjY4OCAzLjcxMiAxOS43MTIgMTEuMiAyNy4wNzJzMTYuNjQgMTAuOTQ0IDI3LjUyIDEwLjk0NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS05IiB1bmljb2RlPSImIzU4OTg0OyIgZD0iTTYzMS44MDggNjIzLjYxNmMwLTM1LjUyLTYuMzM2LTY4LjkyOC0xOC45NDQtMTAwLjM1MnMtMjkuNTA0LTU4Ljg4LTUwLjY4OC04Mi40MzItNDUuNTY4LTQyLjE3Ni03My4yMTYtNTUuODA4LTU2LjgzMi0yMC40OC04Ny41NTItMjAuNDhTMzQxLjMxMiAzNzEuMDA4IDMxMy4zNDQgMzg0cy01Mi41NDQgMzEuMjMyLTczLjcyOCA1NC43ODQtMzguMDggNTEuNTItNTAuNjg4IDgzLjk2OC0xOC45NDQgNjguMDk2LTE4Ljk0NCAxMDcuMDA4YzAgMzAuNzIgNi4xNDQgNTkuOTA0IDE4LjQzMiA4Ny41NTJBMjQ1Ljc2IDI0NS43NiAwIDAgMCAzMTAuMjcyIDg0MS4yMTZjMjcuMzI4IDEyLjYwOCA1Ni4zMiAxOC45NDQgODcuMDQgMTguOTQ0czYwLjA5Ni02LjY1NiA4OC4wNjQtMTkuOTY4IDUyLjkyOC0zMC45MTIgNzQuNzUyLTUyLjczNiAzOS4yMzItNDYuOTEyIDUyLjIyNC03NS4yNjQgMTkuNDU2LTU3Ljg1NiAxOS40NTYtODguNTc2eiBtLTI3MS4zNi0zMzAuNzUybC0xLjAyNC0zNjMuNTIgMzYuODY0IDQ4LjEyOCAzOC45MTItNDguMTI4djM2My41MnpNNjA0LjE2IDgxMS4wMDhjMTQuMzM2LTE3LjA4OCAyNy4zMjgtMzUuNTIgMzguOTEyLTU1LjI5NiA5LjYtMTcuMDg4IDE4LjQzMi0zNi40OCAyNi42MjQtNTguMzY4czEyLjI4OC00NC43MzYgMTIuMjg4LTY4LjYwOGMtMS4zNDQtNDEuNi01Ljk1Mi03Ni40OC0xMy44MjQtMTA0LjQ0OHMtMTYuNTc2LTUwLjU2LTI2LjExMi02Ny41ODRjLTExLjU4NC0xOS44NC0yNC4yNTYtMzUuNTItMzcuODg4LTQ3LjEwNCAxOS44NCAyLjA0OCAzOS42MTYgNS4xMiA1OS4zOTIgOS4yMTYgMTcuMDg4IDMuMzkyIDM1LjUyIDcuODcyIDU1LjI5NiAxMy4zMTJzMzguNTkyIDEyLjk5MiA1Ni4zMiAyMi41MjhjMTUuNjggOC4xOTIgMzAuNTI4IDE4Ljk0NCA0NC41NDQgMzIuMjU2czI1LjkyIDI5LjE4NCAzNS44NCA0Ny42MTYgMTYuODk2IDM5LjA0IDIwLjk5MiA2MS45NTIgNC4wOTYgNDguMzIgMCA3Ni4yODhjLTQuMDk2IDI4LjY3Mi0xNiA1NC4yNzItMzUuODQgNzYuOHMtNDMuMzI4IDQwLjQ0OC03MC42NTYgNTMuNzYtNTUuODA4IDIxLjEyLTg1LjUwNCAyMy41NTItNTYuNTEyLTIuODgtODAuMzg0LTE1Ljg3MnogbTEuMDI0LTQ1OC43NTJMNjA0LjE2IDUuMTJsMzUuODQgNDcuMTA0IDM4LjkxMi00Ny4xMDRWMzUyLjI1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xMCIgdW5pY29kZT0iJiM1ODk4NTsiIGQ9Ik0yNTYuNTEyIDgzMmwtNjQtMzUyYy05LjM0NC01MS41MiAxMTMuOTg0LTc1LjU4NCAxMTItMTI4bC0xNi00MTZjLTIuNDMyLTY0IDY0LTY0IDY0LTY0czY2LjQzMiAwIDY0IDY0bC0xNiA0MTZjLTEuOTg0IDUyLjM1MiAxMTAuOTEyIDc1LjUyIDExMiAxMjhsLTY0IDM1MmgtMzJsMTYtMjU2LTQ4LTMyLTE2IDI4OGgtMzJsLTE2LTI4OC00OCAzMiAxNiAyNTZ6IG01NDQgMGMtNDcuMTA0IDAtMTI1LjY5Ni00MS45Mi0xNTcuMTItMTA0Ljc2OC0yNi4yNC00Ny4xMDQtMzQuODgtMTUyLjM4NC0zNC44OC0yMTUuMjMydi0xNjBjMC01Mi4zNTIgNjkuNzYtNjQgOTYtNjRsLTMyLTM1MmMtNS43Ni02My43NDQgNjQtNjQgNjQtNjRzNjQgMCA2NCA2NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xMSIgdW5pY29kZT0iJiM1ODk4NjsiIGQ9Ik01MTMuNjY0IDUyNS4zMTJhMTE3LjEyIDExNy4xMiAwIDAgMCAxMTYuOTI4IDExNi45OTJjNjQuNTEyIDAgMTE2LjkyOC01Mi40OCAxMTYuOTI4LTExNi45OTJTNjk1LjA0IDQwOC4zMiA2MzAuNTkyIDQwOC4zMmExMTcuMTIgMTE3LjEyIDAgMCAwLTExNi45MjggMTE2Ljk5Mm0zNzcuNiAxNzEuNzEyYzAgMzYuOC0yOS44MjQgNjYuNjg4LTY1LjM0NCA2Ni42ODhoLTAuMDY0QzgyNC43MDQgNzYzLjcxMiA3MDkuMjQ4IDc2OCA2MjIuMDggNzY4Yy0xMDAuNDE2IDAtMTA5LjQ0LTQuODY0LTEyMC4zMi0xNS43NDRMMzQ2LjY4OCA1OTYuOTI4IDE0Ny41MiAzOTcuNjk2YTY3LjA3MiA2Ny4wNzIgMCAwIDEgMC4xMjgtOTQuNzJsMjgzLjItMjgzLjMyOGMxMi42NzItMTIuNjcyIDI5LjQ0LTE5LjY0OCA0Ny40MjQtMTkuNjQ4IDE3LjkyIDAgMzQuNjg4IDYuOTEyIDQ3LjE2OCAxOS40NTZsMjIxLjU2OCAyMjEuNjk2IDEzMi44IDEzMi45MjhjMTEuNzEyIDExLjY0OCAyMi43MiAyMi43MiAxMS41MiAzMjIuOTQ0IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTIiIHVuaWNvZGU9IiYjNTg5ODc7IiBkPSJNODM5LjkzNiA1MDYuNjg4YzAgMTc5Ljg0LTE0Ny4wMDggMzI1Ljc2LTMyOC41NzYgMzI1Ljc2LTE4MS40NCAwLTMyOC41MTItMTQ1LjkyLTMyOC41MTItMzI1Ljc2IDAtNTkuNTIgMTYuMjU2LTExNS4wMDggNDQuMjg4LTE2Mi45NDRoLTAuMzg0bDI4NC42MDgtNDA3LjM2IDI4NC42NzIgNDA3LjM2aC0wLjM4NGMyOC4xNiA0OCA0NC4yODggMTAzLjQ4OCA0NC4yODggMTYyLjk0NE01MTEuNDI0IDM0My44MDhhMTYzLjU4NCAxNjMuNTg0IDAgMCAwLTE2NC4yODggMTYyLjg4IDE2My42NDggMTYzLjY0OCAwIDAgMCAxNjQuMjg4IDE2Mi45NDQgMTYzLjU4NCAxNjMuNTg0IDAgMCAwIDE2NC4yODgtMTYyLjk0NEExNjMuNTIgMTYzLjUyIDAgMCAwIDUxMS4zNiAzNDMuODA4IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTMiIHVuaWNvZGU9IiYjNTg5ODg7IiBkPSJNOTQwLjggNDgwVjEyOGE2NCA2NCAwIDAgMC02NC02NGgtNzA0YTY0IDY0IDAgMCAwLTY0IDY0VjQ4MGEzMiAzMiAwIDAgMCAzMiAzMiAzMS4zNiAzMS4zNiAwIDAgMCAxMy40NCAwbDM3MC41Ni0yNTZMODk2IDUxMmEzMS4yMzIgMzEuMjMyIDAgMCAwIDEyLjggMCAzMiAzMiAwIDAgMCAzMi0zMnpNMTI0LjggNjQ1LjEybDUuMTItNS4xMkw1MjQuOCAzODRsMzk2LjE2IDI1NmgzLjg0YTMxLjM2IDMxLjM2IDAgMCAxIDE2IDMyIDMyIDMyIDAgMCAxLTMyIDMyaC03NjhhMzIgMzIgMCAwIDEtMzItMzIgMzEuMzYgMzEuMzYgMCAwIDEgMTYtMjYuODh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTQiIHVuaWNvZGU9IiYjNTg5ODk7IiBkPSJNMTg4LjE2IDQxMi4yMjRjMTAuNjI0IDIuNzUyIDc4LjIwOCAzMiA4OC44OTYgMzQuNzUyLTI4LjQ4IDMxLjY4LTQ5LjYgNzMuMTUyLTc2LjA5NiAxMzMuNzYtMzUuMDcyLTguNzY4LTk1LjkzNi0yNi44OC05NS45MzYtMjYuODhTMTgzLjgwOCA0MjAuNDggMTg4LjE2IDQxMi4xNnogbTM5MS4wNC0xMTMuNTM2bDcyLjQ0OC04MS45MmMxMjQuMTYgNDEuODU2IDI4OS40NzIgMjA3LjM2IDI4OS40NzIgMjA3LjM2TDg1OC4wNDggNTA4LjhTNzc3LjAyNCAzODMuMzYgNTc5LjIgMjk4LjY4OHpNNDI5LjgyNCA0NjAuMjI0bDY3LjAwOC0zNS4yYzYyLjkxMiA2Mi44NDggMTE1LjIgMTYyLjMwNCAxMTUuMiAxNjIuMzA0bC0xMDQuNTEyIDM5LjA0cy00MC45Ni0xMTMuMTUyLTc3LjY5Ni0xNjYuMTQ0eiBtMjMxLjU1Mi0zMC4zMzZjMTA0Ljk2IDUxLjg0IDI0Ni43ODQgMjI4LjczNiAyNDYuNzg0IDIyOC43MzZMODI2LjE3NiA3MzZzLTExOC42NTYtMTc0LjkxMi0yMzEuMTY4LTIzMy42NjR6IG0tNDkuNDA4LTI1Ny40NzJMNDIwLjE2IDI3My42NjRINjA4LjY0djExMS4zNkg0MTEuNjQ4djUxLjM5MkgyODMuMTM2di01MS4zOTJINjkuMTJ2LTExMS4zNkgyMzEuNjhjLTQ4LjMyLTY1LjQwOC03Mi44MzItOTIuOTkyLTE2Mi41Ni0xNDguMzUybDY1LjcyOC05Ny4yOGM4MS4yOCA1OS45NjggMTEyLjgzMiA5Ny41MzYgMTQ4LjIyNCAxNDIuODQ4di0xOTYuOTkyaDEyOC41MTJWMTcwLjg4bDE0MC40OC04Mi4wNDh6IG0yNjUuOTg0IDEyMS41MzZzLTg5LjQ3Mi0xNjAtMzU2LjQxNi0yMzMuMjhsMzkuMDQtODYuNzg0YzI2NS40NzIgNjQuNzY4IDM3Ni4zMiAyMDUuNjMyIDM5OS4xNjggMjI4LjE2eiBtLTU2My4yIDE3MS45NjhzODEuMjgtMC41NzYgOTQuNTI4IDBjLTkuMjggNDkuMzQ0LTExLjQ1NiA3MC45MTItMTguODggMTMyLjQ4bC0xMTMuODU2LTE4LjI0YzE1LjY4LTM3LjgyNCAzMC43Mi02NS45ODQgMzguMjcyLTExNC4yNHogbTI4OC44OTYgMjA4LjEyOGwtMzIuNDQ4IDExMy41MzZzLTc4LjE0NC03MC4yNzItNDg0LjM1Mi03OC4wOGw0LjkyOC05My44MjRjNDgyLjExMi05LjcyOCA1MTEuODcyIDU4LjM2OCA1MTEuODcyIDU4LjM2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xNSIgdW5pY29kZT0iJiM1ODk5MDsiIGQ9Ik04MzUuMiA1NTQuNjg4aC01ODIuNGMtNzAuNzIgMC0xMjQuOC01NS40ODgtMTI0LjgtMTI4di0yNTZoMTY2LjRWMGg0OTkuMnYxNzAuNjg4SDk2MHYyNTZjMCA3Mi41MTItNTQuMTQ0IDEyOC0xMjQuOCAxMjh6IG0tMTI0LjgtNDY5LjM3NkgzNzcuNlYyOTguNjI0aDMzMi44ek04MzUuMiAzODRjLTI0Ljk2IDAtNDEuNiAxNy4wODgtNDEuNiA0Mi42ODhzMTYuNjQgNDIuNjI0IDQxLjYgNDIuNjI0IDQxLjYtMTcuMDI0IDQxLjYtNDIuNjI0LTE2LjY0LTQyLjY4OC00MS42LTQyLjY4OHogbS00MS42IDM4NEgyOTQuNHYtMTcwLjY4OGg0OTkuMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xNiIgdW5pY29kZT0iJiM1ODk5MTsiIGQ9Ik05MjEuNiA2NTAuNTZsLTI0Ljk2IDIyLjAxNiAyMS4zMTIgMjQuNDQ4YTM1LjU4NCAzNS41ODQgMCAwIDEgMy41ODQgNTAuMzY4bC0zNy43NiA0Mi44OGEzNi4wOTYgMzYuMDk2IDAgMCAxLTUwLjY4OCAzLjJsLTMwMS40NC0yMzMuNkEzMDMuMjMyIDMwMy4yMzIgMCAwIDEgMjAzLjI2NCA1MTJjLTEyNi41OTItMTExLjIzMi0xNDAuMTYtMzAzLjc0NC0zMC4zMzYtNDMwLjA4IDEwOS43Ni0xMjYuMjA4IDMwMS40NC0xMzguNDMyIDQyNy45NjgtMjcuMmEzMDYuODE2IDMwNi44MTYgMCAwIDEgNzQuMTEyIDM2My43NzZsNDguODk2IDU2IDMwLjIwOC0yNi44OGMxMC44MTYtOS42IDI3Ljg0LTcuNjggMzguMDE2IDQuMjI0bDI5LjYzMiAzNC43NTJjMTAuMjQgMTEuOTY4IDkuNzI4IDI5LjUwNC0xLjA4OCAzOS4xNjhsLTI5LjMxMiAyNi4xMTIgMzcuNjMyIDQzLjIgMjcuMDA4LTIzLjY4YzEwLjg4LTkuNiAyNy44NC03LjU1MiAzNy45NTIgNC42MDhsMjkuMTIgMzUuMmMxMC4xMTIgMTIuMTYgOS40MDggMjkuNzYtMS40NzIgMzkuMzZ6IG0tNTExLjQ4OC01MDkuNjk2YTEwNi4xNzYgMTA2LjE3NiAwIDAgMC0xNTAuNTI4IDkuNiAxMDcuNzc2IDEwNy43NzYgMCAwIDAgMTAuNzUyIDE1MS4zNiAxMDYuMTc2IDEwNi4xNzYgMCAwIDAgMTUwLjUyOC05LjYgMTA3Ljc3NiAxMDcuNzc2IDAgMCAwLTEwLjc1Mi0xNTEuMzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTciIHVuaWNvZGU9IiYjNTg5OTI7IiBkPSJNOTYwIDU3NmgtMjU2di0yMjRhMTI4IDEyOCAwIDAgMSA5Ni0xMjMuNTJWMEg3NjhhMzIgMzIgMCAwIDEgMC02NGgxMjhhMzIgMzIgMCAwIDEgMCA2NGgtMzJ2MjI4LjQ4QTEyOCAxMjggMCAwIDEgOTYwIDM1MnYzLjg0eiBtLTY0LTIyNGE2NCA2NCAwIDEgMC0xMjggMFY1MTJoMTI4eiBtLTQ4MCAzMjBWNzA0YTMyIDMyIDAgMCAxIDAgNjR2MzJBMzIgMzIgMCAwIDEgMzg0IDgzMkgzMjBhMzIgMzIgMCAwIDEtMzItMzJWNzY4YTMyIDMyIDAgMCAxIDAtNjR2LTMyQzI4OCA1ODAuNDggMTI4IDQ3NS41MiAxMjggMzg0di0zODRhNjQgNjQgMCAwIDEgNjQtNjRoMzIwYTcwLjQgNzAuNCAwIDAgMSA2NCA2NFYzODRjMCA4Ni40LTE2MCAyMDEuNi0xNjAgMjg4eiBtLTY0LTYwOGExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAwIDAgMC0zMjB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTgiIHVuaWNvZGU9IiYjNTg5OTM7IiBkPSJNODMyIDQyMS42MzJjMzcuNjMyIDEyLjggNjQgNDguNzY4IDY0IDkwLjM2OCAwIDUuNTY4LTMwLjQgMjQxLjYtMzAuNCAyNDEuNmExNi4zODQgMTYuMzg0IDAgMCAxLTE2IDE0LjRIMTc0LjRjLTggMC0xNS4yMzItNi40LTE2LTE0LjQgMCAwLTMwLjQtMjM2LjgtMzAuNC0yNDEuNiAwLTQxLjYgMjYuMzY4LTc3LjU2OCA2NC05MC40MzJ2LTQwNS41NjhjMC04LjgzMiA3LjE2OC0xNiAxNi0xNmg2MDhhMTYgMTYgMCAwIDEgMTYgMTZ6TTcyMC43NjggNzA0bDIxLjYzMi0xOTJoLTMybC0yMS42MzIgMTkyek01OTIgNzA0bDcuMjMyLTE5MmgtMzJMNTYwIDcwNHogbS0xNjAgMGgzMmwtNy4yMzItMTkyaC0zMnpNMzAzLjE2OCA3MDRoMzJMMzEzLjYgNTEyaC0zMnpNNjA4IDY0aC0xOTJ2MTYwaDE5MnpNNzY4IDM1MkgyNTZWNDIxLjU2OGMxNS4xNjggNS42MzIgMjkuNjMyIDE1LjIzMiA0MCAyNy4yNjRhOTUuNjE2IDk1LjYxNiAwIDAgMSAxNDQgMCA5NS42MTYgOTUuNjE2IDAgMCAxIDE0NCAwIDk1LjYxNiA5NS42MTYgMCAwIDEgMTQ0IDBjMTAuNDMyLTEyLjAzMiAyNC44MzItMjEuNjMyIDQwLTI3LjJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTkiIHVuaWNvZGU9IiYjNTg5OTQ7IiBkPSJNOTA4LjggODAwcy04OS4wMjQgMi42MjQtMTI0LjU0NC0zMmMtMzQuMTc2LTMzLjI4LTQ4LjI1Ni01OC43NTItNDguMjU2LTEyOEgxNDAuOGw4OS4yMTYtMzA4LjA5NmMwLjE5Mi0wLjUxMiAwLjY0LTAuOTYgMC44MzItMS40MDggMTUuMDQtNDIuMDQ4IDU0LjI3Mi03Mi4zMiAxMDEuMDU2LTc0LjExMmwwLjgzMi0wLjM4NGg0MTZ2LTEyLjhzMC4wNjQtMTkuMi0xMi43MzYtNDQuOC0xOS4yLTM4LjQtNzAuNC0zOC40SDI0OS42Yy02NCAwLTY0LTk2IDAtOTZINjU5LjJjNzYuOCAwIDEzNC40IDQ0LjggMTUzLjYgODkuNnMxOS4yIDgzLjIgMTkuMiA4My4yVjY0MGMwIDMzLjUzNiAxNC42NTYgNjQgNDQuOCA2NGgzNS4yYTQ4IDQ4IDAgMCAxIDAgOTZ6IG0tMjU2LTczNmMtMzguNCAwLTY0LTI1LjYtNjQtNjRzMjUuNi02NCA2NC02NCA2NCAyNS42IDY0IDY0LTI1LjYgNjQtNjQgNjR6IG0tMzIwIDBjLTM4LjQgMC02NC0yNS42LTY0LTY0czI1LjYtNjQgNjQtNjQgNjQgMjUuNiA2NCA2NC0yNS42IDY0LTY0IDY0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIwIiB1bmljb2RlPSImIzU4OTk1OyIgZD0iTTk1MS41NjYwOCAwLjM4NGwtOTAxLjc2IDAuNDQ4cy05Ny4wODgtNC40OC0yMC4xNiA3MC43ODRhNDczLjc5MiA0NzMuNzkyIDAgMCAwIDcwLjQ2NCAzMS43NDQgMTI3Ljg3MiAxMjcuODcyIDAgMCAwLTEwLjQzMiA1MC42ODhjMCA2NC44OTYgNDcuMjMyIDExNy41MDQgMTA1LjUzNiAxMTcuNTA0czEwNS41MzYtNTIuNjA4IDEwNS41MzYtMTE3LjUwNGMwLTEuNDA4LTAuMTI4LTIuNzUyLTAuMTkyLTQuMDk2IDYuNzg0IDAuODk2IDEzLjY5NiAxLjc5MiAyMC42MDggMi41NlY3NjAuNDQ4QzMyMS4xNjYwOCA4MDAuMzg0IDM0OS44MzgwOCA4MzIgMzg4LjY4NjA4IDgzMmg0MDQuNTQ0YzM4Ljg0OCAwIDY1LjkyLTMxLjYxNiA2NS45Mi03MS42MTZ2LTY0MS45MmM0Ny4yOTYtMTMuNjMyIDg3Ljg3Mi0yOS44ODggMTE5LjY4LTQ4LjE5MiAxMTUuNzEyLTc5LjYxNi0yNy4zMjgtNjkuODg4LTI3LjMyOC02OS44ODh6TTU0Ni43NjYwOCA2NzAuOTEyYTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4IDM1Ljg0SDQ0Mi42MzgwOGEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OC0zNS44NHYtOTguNDMyYzAtMTkuOTY4IDIzLjkzNi0zNS44NCA0My4zOTItMzUuODRoNjAuOGEzNC45NDQgMzQuOTQ0IDAgMCAxIDM0LjYyNCAzNS44NFY2NzAuOTEyeiBtMC0yNTkuNTJhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODggMzUuODRINDQyLjYzODA4YTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4LTM1Ljg0VjMxMi45NmMwLTE5LjkwNCAyMy45MzYtMzUuNzc2IDQzLjM5Mi0zNS43NzZoNjAuOGEzNC45NDQgMzQuOTQ0IDAgMCAxIDM0LjYyNCAzNS44NFY0MTEuMzI4eiBtMjI1LjY2NCAyNTkuNTJhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODggMzUuODRoLTY5LjQ0YTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNzUyLTM1Ljg0di05OC40MzJjMC0xOS45NjggMjQtMzUuODQgNDMuMzkyLTM1Ljg0aDYwLjhhMzUuMDA4IDM1LjAwOCAwIDAgMSAzNC42ODggMzUuODR6IG0wLTI1OS41MmEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OCAzNS44NGgtNjkuNDRhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC43NTItMzUuODRWMzEyLjk2YzAtMTkuOTA0IDI0LTM1Ljc3NiA0My4zOTItMzUuNzc2aDYwLjhhMzUuMDA4IDM1LjAwOCAwIDAgMSAzNC42ODggMzUuODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjEiIHVuaWNvZGU9IiYjNTg5OTY7IiBkPSJNNTEyIDc2OGMtMjAuNjcyIDAtMjcuNTItMTMuOTUyLTQxLjM0NC0yNy45MDRMNzAuOTEyIDc2LjhDNjQgNjkuNzYgNjQgNTUuODcyIDY0IDQ4Ljg5NmMwLTM0Ljk0NCAyNy41Mi00OC44OTYgNDguMjU2LTQ4Ljg5Nmg3OTkuNDg4YzI3LjUyIDAgNDguMjU2IDEzLjk1MiA0OC4yNTYgNDguODk2IDAgMTMuOTUyIDAgMTMuOTUyLTYuOTEyIDI3LjkwNEw1NjAuMjU2IDc0MC4wOTZDNTQ2LjQzMiA3NTQuMDQ4IDUzMi43MzYgNzY4IDUxMiA3Njh6IG0wLTEwNC43MDRsMjI3LjQ1Ni0zODRoLTU1LjE2OEw1ODAuOTI4IDM4NCA1MTIgMjc5LjI5NiA0NDMuMDcyIDM4NCAzMzkuNzEyIDI3OS4yOTZoLTYyLjA4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIyIiB1bmljb2RlPSImIzU4OTk3OyIgZD0iTTg0OCA0MzguODQ4TDc5MiAzODRsNTEuNjQ4LTM1My45ODRhMjYuNDk2IDI2LjQ5NiAwIDAgMC0yNi41Ni0zMC4wMTZoLTY0YTI2Ljg4IDI2Ljg4IDAgMCAwLTI0IDE0LjUyOGwtNDEuMzQ0IDgwLjc2OGE5NC41MjggOTQuNTI4IDAgMCAxLTE4LjExMiAyNC41MTJsLTM4LjIwOCAzNy4zNzZhMjIuMTQ0IDIyLjE0NCAwIDAgMS0xNS40ODggNi4yNzJoLTE0OS4xMmEyMi4xNDQgMjIuMTQ0IDAgMCAxLTE1LjQ4OC02LjI3MmwtMzguMjcyLTM3LjM3NmMtNy4yOTYtNy4xNjgtMTMuNDQtMTUuNDI0LTE4LjA0OC0yNC41MTJsLTQxLjM0NC04MC43NjhhMjYuODggMjYuODggMCAwIDAtMjQtMTQuNTI4aC01Mi40OGEyNi4zMDQgMjYuMzA0IDAgMCAwLTI0LjE5MiAzNy41NjhsMjQuOTYgNTEuMzkyYzYuNTkyIDEzLjYzMiAxMC4wNDggMjguNjA4IDEwLjA0OCA0My43NzZWMzg0bDE2OCAxMDkuNjk2LTI0IDIzLjU1Mi0zMi0yMy41NTItMzMuNiAzMi45Ni0xMzQuNC04Ny44MDhMMjg4IDM4NHMtMjIuMTQ0IDE5Ljk2OC01NiA1NC44NDhjMC4xOTIgNDUuNDQtNzUuNDU2IDkwLjI0LTEwMi41MjggMTA0LjgzMmE0MS4yMTYgNDEuMjE2IDAgMCAxLTE5LjUyIDQuODY0aC0yNEEyMS43NiAyMS43NiAwIDAgMCA2NCA1NzAuMTEydjE5LjQ1NmMwIDguNDQ4IDUuMDU2IDE2LjEyOCAxMi45MjggMTkuNTg0bDE5MC43ODQgODQuNTQ0TDMwNC4xMjggNzY4bDQ2LjIwOC02NS40NzJjOS4yMTYtMTMuMDU2IDE1LjkzNi0yNy43MTIgMTkuNjQ4LTQzLjJsMTguODE2LTc3LjgyNEw1NjggNzY4bDU2LTU0Ljg0OC0xOTItMTk1LjkwNCA2Ni41Ni02NS4yMTZhNDYuNDY0IDQ2LjQ2NCAwIDAgMSAzMi41MTItMTMuMTg0aDEzNi4wNjRhNDYuNzIgNDYuNzIgMCAwIDEgMjMuODcyIDYuNTkybDI0Ni41MjggMTQ3LjAwOGExNS40ODggMTUuNDg4IDAgMCAwIDIyLjQ2NC0xMy42MzJ2LTYuNTI4YTU2LjY0IDU2LjY0IDAgMCAwLTE3LjA4OC00MC40NDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjMiIHVuaWNvZGU9IiYjNTg5OTg7IiBkPSJNNjkwLjI0IDc2OGMtNy42OCAwLTI5LjY5Ni0xMC4yNC0yOS42OTYtMTAuMjRMNDMzLjcyOCA2NDAuNTEyYy0zMC4yMDgtMTIuMjg4LTQyLjE3Ni02MS41NjgtMjQtODYuMjA4bDY2LjMwNC05OC4zMDQtMjcxLjEwNC0xNDEuNjk2IDEzNi4zODQtMTA0LjcwNCAxNzAuODggMTA0LjcwNCAxNzAuNjI0LTEwNC43MDQgNjguNDE2IDY5Ljk1Mi0yMDQuOCAyNzkuMjk2TDcyMC45NiA2NjUuNmMzNi4wMzIgMTguNTYgMzAuMjcyIDQ5LjIxNiAzMC4yNzIgNjcuNzc2LTAuMzIgMTQuNjU2LTI0LjY0IDM0LjYyNC02MC45OTIgMzQuNjI0eiBtMTQ2LjE3Ni0yMDkuNDcyYy02Ni4wNDggMC0xMTkuNjE2LTU0LjY1Ni0xMTkuNjE2LTEyMi4xNzYgMC02Ny41MiA1My41NjgtMTIyLjMwNCAxMTkuNjE2LTEyMi4zMDRzMTE5LjQyNCA1NC43ODQgMTE5LjQyNCAxMjIuMzA0YzAgNjcuNTItNTMuNDQgMTIyLjI0LTExOS40MjQgMTIyLjI0ek0xNzAuNjg4IDIwOS40NzJMMCAxMDQuNzA0VjBsMTcwLjY4OCAxMDQuNzA0TDM0MS4zMTIgMGwxNzAuODggMTA0LjcwNEw2ODIuNzUyIDBsMTM2LjM4NCAxMDQuNzA0TDEwMjQgMHYxMDQuNzA0bC0yMDQuOCAxMDQuNzY4LTEzNi4zODQtMTA0Ljc2OC0xNzAuNjg4IDEwNC43NjgtMTcwLjgxNi0xMDQuNzY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI0IiB1bmljb2RlPSImIzU4OTk5OyIgZD0iTTcyOC4zMiA2NjguMzUyYTIyMS4yNDggMjIxLjI0OCAwIDAgMS03NC4xMTIgMTEuMzkyIDI3MiAyNzIgMCAwIDEtNjIuNDY0LTguMzJjLTYuMDE2LTEuNjY0LTEyLjE2LTMuMDcyLTE3LjkyLTQuOTI4IDQuMTYgMi4zNjggOC4zODQgNC4yODggMTIuNjA4IDYuMDE2IDMwLjU5MiAxMi45OTIgNjMuMjMyIDE0LjcyIDg4LjMyIDEyLjE2LTI3LjkwNCAxOC44OC03OC4yNzIgMTkuNzc2LTExMC45NzYtMC44OTZsLTAuMTkyIDAuNDQ4YzcuMzYgNC40OCAxNS4yMzIgOC44OTYgMjMuNTUyIDEyLjk5MiAzNi45OTIgMTguMTc2IDgxLjQ3MiAyNi45NDQgMTEyLjM4NCAxNC41OTJhMTI4LjM4NCAxMjguMzg0IDAgMCAxLTQ1Ljk1MiAyMi41OTJjMzMuNiA2LjU5MiA2OC4yMjQgMS45MiA5Ny4xNTItNi4wMTYtMTUuMjk2IDE1LjQyNC0zOC41OTIgMjMuNTUyLTYzLjM2IDI1LjZhMTc0LjA4IDE3NC4wOCAwIDAgMCAxMDAuMDMyLTQuOTI4IDE1NC4yNCAxNTQuMjQgMCAwIDEtNTEuNTIgMzUuOTY4YzQxLjkyIDEuMDI0IDg0LjYwOC0xNS4zNiAxMTYuMjg4LTM1Ljk2OGExOTQuNTYgMTk0LjU2IDAgMCAxLTU5LjY0OCA1MS45NjhjNDcuMjMyLTAuNjQgOTkuNDU2LTIwLjg2NCAxMzAuNTYtNTAuMzY4LTQwLjgzMiA2My44NzItMTEyLjI1NiA4OS41MzYtMTg4LjczNiA3Ni45MjgtNzUuMjY0LTExLjY0OC0xNTcuNDQtNjQuNTc2LTE5OC4xNDQtMTQ0LjU3Ni0xLjUzNi0yLjk0NC0zLjItNi4yNzItNC42NzItOS42YTI3OS45MzYgMjc5LjkzNiAwIDAgMS0zMC43ODQgMzcuNTY4Yy02MC45OTIgNjIuOTc2LTEyNy42OCA3OC41OTItMTc0LjI3MiA2MC41NDQtMzguNC0xMy42OTYtNjguNTQ0LTYxLjUwNC02MC4wOTYtMTE3LjYzMi0yLjg4IDI5Ljc2IDE1LjI5NiA2My4zNiAzNS44NCA3Ny4yNDgtOC44MzItMTcuNTM2LTE0LjMzNi0zOS42OC0xNi40NDgtNTcuMzQ0IDguNzY4IDI1LjI4IDI2LjExMiA1MC4zNjggNDcuNjggNjIuMjA4LTkuMDg4LTEzLjQ0LTE2LjEyOC0zMC4xNDQtMTkuODQtNDQuNTQ0YTgyLjU2IDgyLjU2IDAgMCAwIDUzLjYzMiAzMi44MzIgNzUuNzc2IDc1Ljc3NiAwIDAgMS0zMS4zNi00MC41NzZjMTQuNDY0IDE0LjcyIDM0LjI0IDI4LjggNTcuMDg4IDMzLjkyYTExNi41NDQgMTE2LjU0NCAwIDAgMS0yNC41MTItMzUuMTM2YzE3LjAyNCAyMC40OCA0OS42NjQgMjYuNTYgODMuMDcyIDIyLjQgOC4wNjQtMC45NiAxNi4wNjQtMi4zMDQgMjMuOTM2LTQuMTZ2LTAuNjRjLTI5LjEyIDcuMDQtNjAuOTI4LTUuODI0LTc4LjQ2NC0yNi43NTItMTAzLjQ4OC0zLjY0OC0yMDQuOTI4LTQ3LjE2OC0yNDEuNi0xNDguNzM2IDI0LjE5MiAzNC41NiA2NS45MiA2Ny41MiAxMDUuNzkyIDg2LjAxNmEyMjYuMzY4IDIyNi4zNjggMCAwIDEtMzQuODE2LTY2Ljg4YzIyLjg0OCAyOC45OTIgNTQuMjA4IDU4LjY4OCA4OC43MDQgNzYuMjI0YTE2OS45MiAxNjkuOTIgMCAwIDEtMjguOC01Mi4yODggMjIzLjM2IDIyMy4zNiAwIDAgMCA3OC43MiA0OC42NCAyNjAuNDggMjYwLjQ4IDAgMCAxLTI5LjI0OC0yNC44OTZjLTQ5Ljg1Ni01MC4yNC04Ny44MDgtMTE5LjE2OC0xMDMuNDI0LTIxNC4wOCAyMy4zNiA1NC4yMDggNTYuNTc2IDExMS4yOTYgODYuOTEyIDE0OS45NTItNi45NzYtMjkuNDQtMTAuMTEyLTYyLjUyOC05LjYtODcuODcyIDEzLjQ0IDQyLjI0IDMwLjA4IDg3LjY4IDUyLjczNiAxMjAuNTEyYTI0NS4xMiAyNDUuMTIgMCAwIDEtNS41NjgtNjUuMjE2IDI1NC4wOCAyNTQuMDggMCAwIDAgNDcuMzYgODMuMTM2Yy05LjA4OC0yMC42NzItMTUuMjMyLTQzLjg0LTEzLjI0OC02NS40NzJhNDA4Ljk2IDQwOC45NiAwIDAgMCAyNS41MzYgNjAuMjg4di0wLjEyOGwtMC42NC0xLjY2NCAwLjk2IDAuNzA0YTQzLjY0OCA0My42NDggMCAwIDEgNy42OC0xMy44MjRjMC00LjU0NCAwLTguNzY4IDAuMTkyLTEyLjkyOCAwLjcwNCAzLjMyOCAxLjUzNiA2LjY1NiAyLjQ5NiA5Ljk4NCA2LjY1Ni02Ljc4NCAxNS4zNi0xMS41MiAyNS4xNTItMTMuMDU2LTQ5LjAyNC0xMDguNjA4LTg3LjM2LTIzOC4wOC04OS4yOC0zNjMuMi0xMjEuNDA4LTE4LjQzMi0yMDYuNDY0LTk2LjA2NC0yMDYuNDY0LTEyMS45ODQgMC0yNC45NiAxMDAuNDgtNjEuMjQ4IDI1Ny45Mi02MS4yNDggMTU3LjU2OCAwIDI1OC4wNDggMzYuMjI0IDI1OC4wNDggNjEuMjQ4IDAgMjguOTI4LTEwNi40MzIgMTIyLjU2LTI1MC44OCAxMjUuNzYgMy4wNzIgOTIuNjA4IDI4LjI4OCAyMDAuMzg0IDcwLjIwOCAzMDMuMDRBNDUuMjQ4IDQ1LjI0OCAwIDAgMSA1NTguMDggNTI1LjQ0YzAgMS43MjgtMC4xMjggMy41ODQtMC4zMiA1LjU2OGE0NS4yNDggNDUuMjQ4IDAgMCAxIDYyLjk3NiA0MS40NzJjMCAyLjM2OC0wLjMyIDQuODY0LTAuNTc2IDcuNDI0IDcuMDQtMTUuMDQgMTAuOTQ0LTMwLjQgMTIuNjA4LTQzLjcxMiAxMC4yNCAyNy4wMDggMC41MTIgNjkuNzYtMjYuMDQ4IDkyLjE2YTIwLjA5NiAyMC4wOTYgMCAwIDEgMS40NzItMC43MDRjNS41MDQtNC43MzYgMTAuNjg4LTkuOTg0IDE1Ljg3Mi0xNS40ODggMjQuNzY4LTI2Ljg4IDQwLjcwNC02My4xMDQgMzYuMDMyLTkxLjI2NGExMDguOCAxMDguOCAwIDAgMSAxMC4yNCA0My4wMDhjMTIuMTYtMjcuMiAxNC40LTU3LjE1MiAxMi4xNi04Mi44OCAxMC43NTIgMTUuMzYgMTMuNjk2IDM2LjQ4IDEwLjc1MiA1Ny43OTIgMTMuMzEyLTI2LjgxNiAxNy40NzItNTguMTc2IDExLjk2OC04NS4xMiA5LjkyIDEyLjM1MiAxOS4wMDggMzAuMjcyIDIzLjA0IDQ5LjE1MiA3LjY4LTM1Ljg0LTAuNzY4LTc0LjYyNC0xNi0xMDIuNTI4IDE0LjI3MiAxMy4wNTYgMjkuODg4IDMzLjYgMzcuODI0IDU2LjEyOCA2LjA4LTQwLjUxMi04LTg4LjA2NC0zNS43MTItMTA5LjMxMiA1Ny45MiAyOS4xMiA3My43OTIgOTkuMDA4IDQ5LjkyIDE2My4wMDgtOS40MDggMjYuMzA0LTI1LjUzNiA1Mi40OC00Ni43MiA3NS4xMzZhMTM2LjMyIDEzNi4zMiAwIDAgMS04LjI1NiAyOC41NDRjMjYuNTYtMjMuNzQ0IDQzLjg0LTU0LjcyIDU0LjQtODMuOTY4IDMuODQgMjIuMDgtMy4zMjggNDYuNDY0LTE3LjIxNiA2OC4xNiAyOC4wMzItMjIuNDY0IDQ3LjYxNi01NC43MiA1Ni4zODQtODYuNCAzLjk2OCAxOC40MzIgNC4yODggNDIuMjQtMC41MTIgNjQuODk2IDI1Ljk4NC0zNS4wNzIgMzcuMzc2LTgwLjI1NiAzOS42OC0xMTkuNTUyIDYuNzIgMjIuMDggMTEuMDA4IDUzLjE4NCA3LjU1MiA4MS4xNTJhMjUxLjUyIDI1MS41MiAwIDAgMCA0MS4wODgtMTQwLjYwOGMyMi4xNDQgNzUuMiAzLjAwOCAxNDguNDgtNTMuNTA0IDIwNS4yNDhhMjYyLjI3MiAyNjIuMjcyIDAgMCAxLTEwOC44IDY1LjY2NHogbS0yMjQuNjQtNS4xMmE0MTQuOTc2IDQxNC45NzYgMCAwIDEtOTEuMiAxMC4zNjggMTE1Ljk2OCAxMTUuOTY4IDAgMCAwIDEwMS4xMi0xMi41NDRsLTkuOTIgMi4yNHogbTEwOS41NjgtMTYuMzJhNTIuMTYgNTIuMTYgMCAwIDEtNS41MDQgMi44MTZsMC4xMjggMC43MDQgMTMuMTItNi40Yy0yLjU2IDEuMDI0LTUuMTIgMS45Mi03Ljc0NCAyLjg4eiBtNjkuMTItNTgwLjkyOGMxLjI4LTMuMzkyIDEuOTItNi41OTIgMS45Mi05LjQwOCAwLTQwLjMyLTEyMC43NjgtNzIuOTYtMjY5LjY5Ni03Mi45Ni0xNDguOTkyIDAtMjY5LjY5NiAzMi42NC0yNjkuNjk2IDcyLjk2IDAgMi44MTYgMC42NCA2LjAxNiAxLjg1NiA5LjQwOC0yOS4xMi0xMi43MzYtNDUuODI0LTI3Ljg0LTQ1LjgyNC00NC4wOTYgMC00Ni41OTIgMTQwLjQxNi04NC42MDggMzEzLjYtODQuNjA4IDE3My4yNDggMCAzMTMuNzI4IDM4LjAxNiAzMTMuNzI4IDg0LjYwOCAwIDE2LjI1Ni0xNi44MzIgMzEuMzYtNDUuOTUyIDQ0LjA5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yNSIgdW5pY29kZT0iJiM1OTAwMDsiIGQ9Ik02NCAzODguMjg4YzAgNTMuMDU2IDE5LjU4NCAxMDAuNDggNTguODE2IDE0Mi40IDguMzg0IDguMzIgMTYuNzY4IDE5LjUyIDIyLjQgMjcuOTA0IDUzLjE4NCA2Ny4wMDggMTE0Ljc1MiAxMjUuNjMyIDE3OS4yIDE4MS40NCAxOS41ODQgMTYuNzY4IDM2LjM1MiAzMy41MzYgNTYgNDcuNDg4IDI3Ljk2OCAyMi4zMzYgNjEuNTY4IDM2LjI4OCAxMDAuOCA0MS44NTYgNjcuMiA4LjM4NCAxMjUuOTUyLTExLjEzNiAxNzYuMzg0LTU4LjYyNCAxOS41ODQtMTYuNzY4IDM5LjIzMi0zMy40NzIgNjEuNjMyLTUwLjI0IDY0LjM4NC01NS44NzIgMTIzLjItMTE0LjQ5NiAxNzMuNTY4LTE4MS41MDQgOC4zODQtMTEuMTM2IDE5LjU4NC0yMi4zMzYgMjguMDMyLTM2LjI4OCAzMC43Mi00NC42NzIgNDEuOTg0LTk3LjY2NCAzMy42LTE1MC43Mi01LjYzMi00NC42NzItMjUuMjE2LTgwLjk2LTU2LTExNC40OTZsLTUwLjQzMi01OC42MjRjLTM2LjQxNi00MS44NTYtNzIuNzY4LTgwLjk2LTExNC44MTYtMTE3LjI0OC0yMi40LTE5LjUyLTQ0LjgtMzYuMjg4LTY3LjItNTUuODA4LTEzLjk1Mi0xMS4yLTI1LjE1Mi0yMi40LTM5LjE2OC0zMC43MmEyMTQuNTkyIDIxNC41OTIgMCAwIDAtMTUzLjk4NC0zMy41MzZjLTQ0LjggNS41NjgtODEuMjggMjUuMTUyLTExNC44MTYgNTUuODcyLTguMzg0IDguMzItMTYuODMyIDEzLjk1Mi0yOC4wMzIgMjIuMzM2YTExMzkuNTIgMTEzOS41MiAwIDAgMC0xNTYuOCAxNTAuNzJjLTE2Ljc2OCAyMi40LTM2LjM1MiA0MS45Mi01My4xODQgNjQuMjU2LTIuODE2IDguMzItMTQuMDE2IDIyLjMzNi0yMi40IDM2LjI4OEM3NS4yIDMwNC41MTIgNjQgMzQzLjYxNiA2NCAzODguMjg4eiBtMzcyLjQxNi04MC45NnYtMTc1Ljg3MmMwLTE5LjU4NCAxMS4yLTMwLjcyIDMwLjc4NC0zMC43Mmg4OS42YTIxLjQ0IDIxLjQ0IDAgMCAxIDE0LjAxNiA1LjU2OCA1Ni43MDQgNTYuNzA0IDAgMCAxIDE2Ljc2OCA0MS44NTZ2MTUzLjZjMCA1LjU2OCAwIDUuNTY4IDUuNjMyIDUuNTY4aDE3Ni4zODRjMTQuMDE2IDAgMjUuMjE2IDExLjEzNiAyNy45NjggMjUuMDg4djkyLjE2YzAgNS41NjgtMi43NTIgMTEuMTM2LTUuNTY4IDE2Ljc2OC01LjYzMiA4LjMyLTE2LjgzMiAxMS4xMzYtMjguMDMyIDExLjEzNkg1ODcuNTg0VjYyOC4zNTJjMCAyMi40LTExLjIgMzMuNTM2LTMzLjYgMzMuNTM2SDQ3MC4wMTZjLTUuNjMyIDAtMTEuMiAwLTE2LjgzMi0yLjgxNmEzMC43MiAzMC43MiAwIDAgMS0xNi43NjgtMjcuOTA0di0xNzUuODcySDI1OS45NjhjLTE5LjU4NCAwLTMwLjcyLTExLjItMzAuNzItMzAuNzJ2LTg2LjUyOGMwLTguMzg0IDIuNzUyLTE0LjAxNiA1LjU2OC0xOS41ODQgNS41NjgtOC4zMiAxNi43NjgtMTEuMTM2IDI3Ljk2OC0xMS4xMzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjYiIHVuaWNvZGU9IiYjNTkwMDE7IiBkPSJNMzI1LjMxMjM1IDQ1Mi45MjY5MTFjLTEwMy4wMzk4MDcgMC0xODYuNjIzNjUgODIuNjIzODQ1LTE4Ni42MjM2NSAxODQuNjM5NjU0Vjc4NS4yMTQyODhhMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDAgMzcuMzExOTMgMzYuOTI3OTNoMzcuMzExOTNhMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDEgMzcuMzc1OTMgMzYuOTI3OTMxQTM3LjExOTkzIDM3LjExOTkzIDAgMCAxIDIxMy4zMTI1NiA4OTUuOTk4MDhIMTc2LjAwMDYzQTExMS4zNTk3OTEgMTExLjM1OTc5MSAwIDAgMSA2NC4wMDA4NCA3ODUuMjc4Mjg4di0xNDcuNzExNzIzQTI1Ni45NTk1MTggMjU2Ljk1OTUxOCAwIDAgMSAxNzYuNzY4NjI5IDQyNS41OTg5NjIgMzI0LjI4NzM5MiAzMjQuMjg3MzkyIDAgMCAwIDI4OC4wMDA0MiAxOTQuNDMxMzk1QzI4OC4wMDA0MiA1MS43MTE2NjMgNDA0Ljk5MjIwMS02NC4wMDAxMiA1NDkuMzExOTMtNjQuMDAwMTJzMjYxLjM3NTUxIDExNS43MTE3ODMgMjYxLjM3NTUxIDI1OC40MzE1MTV2NDIuMTExOTIxYTE0Ny41ODM3MjMgMTQ3LjU4MzcyMyAwIDAgMSAxMDcuMjYzNzk5IDE3OS45Njc2NjNjLTIwLjY3MTk2MSA3OC45NzU4NTItMTAyLjA3OTgwOSAxMjYuNDYzNzYzLTE4MS45NTE2NTkgMTA2LjA0NzgwMWExNDcuNTgzNzIzIDE0Ny41ODM3MjMgMCAwIDEtMTA3LjI2Mzc5OS0xNzkuOTAzNjYyIDE0OC40Nzk3MjIgMTQ4LjQ3OTcyMiAwIDAgMSAxMDcuMjYzNzk5LTEwNi4xMTE4MDJ2LTQyLjExMTkyMWMwLTEwMS45NTE4MDktODMuNTgzODQzLTE4NC41NzU2NTQtMTg2LjY4NzY1LTE4NC41NzU2NTMtMTAzLjAzOTgwNyAwLTE4Ni42MjM2NSA4Mi42MjM4NDUtMTg2LjYyMzY1IDE4NC41NzU2NTNhMzI0LjI4NzM5MiAzMjQuMjg3MzkyIDAgMCAwIDExMS45OTk3OSAyMzEuMTY3NTY3IDI1Ni44OTU1MTggMjU2Ljg5NTUxOCAwIDAgMSAxMTEuOTk5NzkgMjExLjk2NzYwM1Y3ODUuMjE0Mjg4QTExMS4zNTk3OTEgMTExLjM1OTc5MSAwIDAgMSA0NzQuNjg4MDcgODk1Ljk5ODA4aC0zNy4zNzU5M2EzNy4xMTk5MyAzNy4xMTk5MyAwIDAgMS0zNy4zMTE5My0zNi45Mjc5MzEgMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDEgMzcuMzExOTMtMzYuOTI3OTMxaDM3LjM3NTkzQTM3LjExOTkzIDM3LjExOTkzIDAgMCAwIDUxMiA3ODUuMjc4Mjg4di0xNDcuNjQ3NzI0YzAtMTAyLjAxNTgwOS04My41ODM4NDMtMTg0LjYzOTY1NC0xODYuNjg3NjUtMTg0LjYzOTY1M3ogbTQ0Ny45OTkxNi0xNDcuNzExNzIzYy00MS4yMTU5MjMgMC03NC42MjM4NiAzMy4wODc5MzgtNzQuNjIzODYgNzMuODU1ODYxczMzLjQwNzkzNyA3My44NTU4NjIgNzQuNjIzODYgNzMuODU1ODYyIDc0LjY4Nzg2LTMzLjA4NzkzOCA3NC42ODc4Ni03My44NTU4NjItMzMuNDA3OTM3LTczLjg1NTg2Mi03NC42ODc4Ni03My44NTU4NjF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjciIHVuaWNvZGU9IiYjNTkwMDI7IiBkPSJNODEwLjYyNCAyMzkuMTA0YTI5Ny42IDI5Ny42IDAgMCAxLTI0MS45Mi0xMjQuMDk2Yy04LjM4NC0xMS42NDgtMjYuODgtNS40NC0yNi44OCA4Ljk2djYyLjY1NmEzMC43MiAzMC43MiAwIDAgMCAxNS44MDggMjYuMjRjMzAuMjA4IDE3Ljg1NiA0Ny4yMzIgNTEuNzEyIDQzLjQ1NiA4Ni41OTIgMS45Mi0yLjQzMiAzLjY0OC01LjA1NiA1Ljk1Mi03LjI5NmE4OS42IDg5LjYgMCAwIDEgMTI2LjcyIDEyNi43MmMtMi4zMDQgMi4yNC00Ljg2NCAzLjk2OC03LjI5NiA1Ljk1MiAxOC44OC0xLjk4NCAzOS4yMzIgMS4yMTYgNjEuOTUyIDE5LjMyOCAyMy40ODggMTguODE2IDM5LjIzMiA0Ni43MiAzNi45MjggNzYuNjcyYTg5LjYgODkuNiAwIDAgMS05OC44OCA4Mi4xNzZjMi40MzIgMS45MiA0Ljk5MiAzLjY0OCA3LjI5NiA1Ljk1MmE4OS42IDg5LjYgMCAwIDEtMTI2LjcyIDEyNi43MmMtMi4zMDQtMi4zMDQtMy45NjgtNC44NjQtNS45NTItNy4yOTYgMi4xNzYgMjAuNDgtMS43OTIgNDIuODgtMjQuNDQ4IDY3Ljg0LTE2LjY0IDE4LjMwNC0zOS40MjQgMzEuMTY4LTY0LjEyOCAzMS4yOTZhODkuNiA4OS42IDAgMCAxLTg5LjYtOTkuMmMtMS45MiAyLjQ5Ni0zLjY0OCA1LjEyLTUuOTUyIDcuMzZhODkuNiA4OS42IDAgMCAxLTEyNi43Mi0xMjYuNzJjMi4zMDQtMi4zMDQgNC44NjQtNC4wMzIgNy4yOTYtNS45NTItMjAuNDggMi4xNzYtNDIuODgtMS44NTYtNjcuODQtMjQuNTEyLTE4LjMwNC0xNi42NC0zMS4xNjgtMzkuMzYtMzEuMjk2LTY0LjA2NGE4OS42IDg5LjYgMCAwIDEgOTkuMi04OS42Yy0yLjQ5Ni0xLjkyLTUuMTItMy43MTItNy4zNi01Ljk1MmE4OS42IDg5LjYgMCAwIDEgMTI2LjcyLTEyNi43MmMyLjMwNCAyLjI0IDMuOTY4IDQuODY0IDUuOTUyIDcuMjk2YTg5LjM0NCA4OS4zNDQgMCAwIDEgNDMuNTItODYuNTkyIDMwLjc4NCAzMC43ODQgMCAwIDAgMTUuNjgtMjYuMjR2LTYyLjcyYzAtMTQuMzM2LTE4LjQzMi0yMC41NDQtMjYuODE2LTguOTZhMjk3LjYgMjk3LjYgMCAwIDEtMzIzLjM5MiAxMTIuODMyIDMwLjE0NCAzMC4xNDQgMCAwIDEtMTkuMi00Mi40OTZBNDQ3LjkzNiA0NDcuOTM2IDAgMCAxIDUxMi01OS41Mkg1MTJhNDQ3LjkzNiA0NDcuOTM2IDAgMCAxIDM5OS4xNjggMjQ0LjggMzAuMTQ0IDMwLjE0NCAwIDAgMS0xOS4yIDQyLjQ5NiAyOTcuMzQ0IDI5Ny4zNDQgMCAwIDEtODEuNDA4IDExLjMyOHogbS00MDMuMiAyNzQuODE2YTEwNC41MTIgMTA0LjUxMiAwIDEgMCAyMDkuMDg4IDAgMTA0LjUxMiAxMDQuNTEyIDAgMCAwLTIwOS4wMjQgMHogbTEwNS4wMjQtNTc3LjM0NGMwIDIuMTEyLTAuMzg0IDQuMjI0LTAuNTEyIDYuNGgxLjA4OGMtMC4xMjgtMi4yNC0wLjU3Ni00LjI4OC0wLjU3Ni02LjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjgiIHVuaWNvZGU9IiYjNTkwMDM7IiBkPSJNNTEyIDgzMkMyNjQuODMyIDgzMiA2NCA2MzEuMTY4IDY0IDM4NHMyMDAuODMyLTQ0OCA0NDgtNDQ4IDQ0OCAyMDAuODMyIDQ0OCA0NDgtMjAwLjgzMiA0NDgtNDQ4IDQ0OHogbTIyNC02NTQuNGMwLTE0LjQtMTEuMi0yNS42LTI0LjgzMi0yNS42LTIzNS45NjggMC00MjcuMTM2IDE5Ni4wMzItNDI3LjEzNiA0MzguNCAwIDE0LjQgMTEuMiAyNS42IDI0Ljc2OCAyNS42SDM5Ni44YzEzLjYzMiAwIDI0LjgzMi0xMS4yIDI0LjgzMi0yNS42IDAtMzIgNC44LTYzLjIzMiAxNC40LTkyLjggMi4zNjgtOC44MzIgMC43NjgtMTkuMi02LjQtMjYuNDMybC01NS4yMzItNTYuNzY4YTM4MS41MDQgMzgxLjUwNCAwIDAgMSAxNjUuNjMyLTE2OS42bDU1LjE2OCA1Ni43NjhjNi40IDcuMjMyIDE2LjgzMiA5LjYgMjUuNiA2LjQgMjguMDMyLTkuNiA1OC40MzItMTQuNCA4OS42LTE0LjRhMjUuNiAyNS42IDAgMCAwIDI0LjgzMi0yNS42di05MC4zNjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjkiIHVuaWNvZGU9IiYjNTkwMDQ7IiBkPSJNNTYzLjc3NiAzMTAuNTkySDQ2NS40MDh2LTE5Ni4zNTJIMzY3LjEwNFY2MDUuMTg0aDE5Ni42NzJjOTcuMDg4IDAgMTQ0LjM4NC02Ny40NTYgMTQ0LjM4NC0xNDcuMiAwLTc5Ljg3Mi0zNy4yNDgtMTQ3LjMyOC0xMzQuNC0xNDcuMzI4aC05Ljk4NHpNNTEyIDgzMy45MkMyNjMuMTY4IDgzMy45MiA2MS40NCA2MzIuNTEyIDYxLjQ0IDM4NGMwLTI0OC41MTIgMjAxLjcyOC00NDkuOTg0IDQ1MC41Ni00NDkuOTg0czQ1MC41NiAyMDEuNDcyIDQ1MC41NiA0NDkuOTJDOTYyLjU2IDYzMi41MTIgNzYwLjgzMiA4MzMuOTIgNTEyIDgzMy45MnogbTUxLjc3Ni0zMjYuODQ4SDQ2NS40MDh2LTk4LjI0SDU2My44NGM0MS42IDAgNDkuMDg4IDEwLjg4IDQ5LjA4OCA0OS4wODggMCAzOC4yNzIgMi4zNjggNDkuMTUyLTM5LjI5NiA0OS4xNTJINTYzLjg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTMwIiB1bmljb2RlPSImIzU5MDA1OyIgZD0iTTMxNy42OTYgNTQ0LjE5MlY2OTEuNzEySDE2MC44MzJ6IG0zODguNjA4IDE0Ny41MnYtMTQ3LjQ1NmwxNTYuODY0IDE0Ny40NTZ6TTMxNy42OTYgMzI5LjI4VjQ3Ni42NzJIMTYwLjgzMnogbTM4OC42MDggMGwxNTYuODY0IDE0Ny40NTZoLTE1Ni44NjR6TTMxOC40LTY0aDM4Ny41ODRWODMySDMxOC40ek01MDkuMzc2IDc2OS45ODRjNjEuNzYgMCAxMTEuODcyLTQ5LjY2NCAxMTEuODcyLTExMC45NzZzLTUwLjExMi0xMTAuOTc2LTExMS44NzItMTEwLjk3Ni0xMTEuODcyIDQ5LjY2NC0xMTEuODcyIDExMC45NzYgNTAuMTEyIDExMC45NzYgMTExLjg3MiAxMTAuOTc2eiBtMC0yNzUuNTJhMTExLjM2IDExMS4zNiAwIDAgMCAxMTEuODcyLTExMC45MTJjMC02MS4zMTItNTAuMTEyLTExMC45NzYtMTExLjg3Mi0xMTAuOTc2cy0xMTEuODcyIDQ5LjYtMTExLjg3MiAxMTAuOTEyIDUwLjExMiAxMTAuOTc2IDExMS44NzIgMTEwLjk3NnogbTAtMjc1LjUyYzYxLjc2IDAgMTExLjg3Mi00OS42NjQgMTExLjg3Mi0xMTAuOTc2IDAtNjEuMjQ4LTUwLjExMi0xMTAuOTEyLTExMS44NzItMTEwLjkxMnMtMTExLjg3MiA0OS42NjQtMTExLjg3MiAxMTAuOTEyYzAgNjEuMzEyIDUwLjExMiAxMTAuOTc2IDExMS44NzIgMTEwLjk3NnogbTE5Ni45MjgtMTA0LjcwNGwxNTYuODY0IDE0Ny40NTZoLTE1Ni44NjR6IG0tMzg4LjYwOCAwVjI2MS42OTZIMTYwLjgzMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMSIgdW5pY29kZT0iJiM1OTAwNjsiIGQ9Ik02NTguNDMyIDQyNi42ODhBNDIuNjg4IDQyLjY4OCAwIDEgMCA2NTYuNTEyIDUxMmE0Mi42ODggNDIuNjg4IDAgMCAwIDEuOTItODUuMzEyeiBtLTI5OC42ODggMEE0Mi42ODggNDIuNjg4IDAgMSAwIDM1Ny44MjQgNTEyYTQyLjY4OCA0Mi42ODggMCAwIDAgMS45Mi04NS4zMTJ6IG0wLjk2IDI1MS4zOTJDMzYwLjcwNCA3NjMuMiA0MjcuNDU2IDgzMiA1MDkuNTY4IDgzMmM4Mi4wNDggMCAxNDguODY0LTY4LjggMTQ4Ljg2NC0xNTMuOTJ2LTM4Ljc4NEwzNjAuNzA0IDY0MHogbTU1Ni42NzItMTAwLjM1MkE2Ny45MDQgNjcuOTA0IDAgMCAxIDg1MC40MzIgNjQwaC0xNDkuMzc2djM4LjA4YzAgMTA4LjQxNi04NS41NjggMTk2LjYwOC0xOTEuNDg4IDE5Ni42MDhTMzE4LjAxNiA3ODYuNDk2IDMxOC4wMTYgNjc4LjA4VjY0MEgxNjcuNzQ0Yy0zNC44MTYgMC02NC41MTItMjcuNjQ4LTY3LjAwOC02Mi4yNzJsLTM2LjU0NC01MTIuMzg0QTYwLjQ4IDYwLjQ4IDAgMCAxIDEyNC45OTIgMGg3NjguMTI4YTYwLjM1MiA2MC4zNTIgMCAwIDEgNjAuODY0IDY1LjM0NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMiIgdW5pY29kZT0iJiM1OTAwNzsiIGQ9Ik0yMjAuNDE2IDgxNS41NTJ2LTE0LjY1NmMwLTI5LjI0OCAyMS4zNzYtNTEuMiA0OS43OTItNTEuMiAyMS4zMTIgMCAzNS41ODQgMTQuNjU2IDQyLjY4OCAzNi42MDhsMTQuMjA4IDM2LjU0NCAzOTguMjA4LTE2OC4xOTJMNDQ4IDQ1Ny4xNTJjLTI4LjQxNi0yMS45NTItMjguNDE2LTUxLjItMjEuMzEyLTgwLjQ0OGw2NC0xNTMuNi05Mi40OC0yODUuMjQ4QTQ3LjE2OCA0Ny4xNjggMCAwIDEgNDQwLjk2LTEyOGMyMS4zMTIgMCAzNS41MiA3LjI5NiA0Mi42ODggMzYuNTQ0bDk5LjUyIDI5Mi42MDggNy4xMDQtMjEuOTUydi0yNTZzMC01MS4yIDQ5Ljc5Mi01MS4yIDQ5Ljc5MiA1MS4yIDQ5Ljc5MiA1MS4ydjI0MS4zNDRjMCAxNC42NTYgMCAyMS45NTItNy4xMDQgMzYuNjA4TDU4My4wNCA0NDkuODU2bDE5MiAxMzguOTQ0YzE0LjIwOCAxNC42NTYgMjguNDggMjEuOTUyIDI4LjQ4IDQzLjkwNHMtMTQuMjcyIDM2LjU0NC0yOC40OCA0My44NGwtNTEyIDIxMi4xNmMtNi4yMDggMC04LjM4NC0xLjI4LTE0LjIwOC03LjM2ek0zNjkuNzkyIDY3Ni40OGMtNTYuOTYgMC0xMDYuNjg4LTUxLjItMTA2LjY4OC0xMDkuNjk2IDAtNTguNDk2IDQ5Ljc5Mi0xMDkuNjk2IDEwNi42ODgtMTA5LjY5NnMxMDYuNjI0IDUxLjIgMTA2LjYyNCAxMDkuNjk2YzAgNTguNDk2LTQ5LjcyOCAxMDkuNjk2LTEwNi42MjQgMTA5LjY5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMyIgdW5pY29kZT0iJiM1OTAwODsiIGQ9Ik03NjggODAwYTk2IDk2IDAgMSAwLTE5MiAwIDk2IDk2IDAgMCAwIDE5MiAweiBtMC02MDhhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAwIDEgMCAxMjh6IG0xMTcuNzYgMzE0LjI0bC0xMjIuMjQgMTIyLjI0YTMwLjcyIDMwLjcyIDAgMCAxLTIzLjY4IDExLjUySDI4OGEzMiAzMiAwIDAgMSAwLTY0aDE3Mi44TDI1NiAxNzIuOGEzMS4yMzIgMzEuMjMyIDAgMCAxIDAtMTIuOCAzMi43MDQgMzIuNzA0IDAgMCAxIDY0LTEzLjQ0TDM4NCAyNTZoMTI4bC0xMjMuNTItMjcxLjM2YTMxLjM2IDMxLjM2IDAgMCAxLTQuNDgtMTYuNjQgMzIuNjQgMzIuNjQgMCAwIDEgNjQtMTIuOGwzMDAuOCA2MDAuMzIgOTIuMTYtOTQuNzJhMzIgMzIgMCAwIDEgNDQuOCA0NS40NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNCIgdW5pY29kZT0iJiM1OTAwOTsiIGQ9Ik04MzYuOTI4IDQ3Mi42NHYtMzI0LjkyOGEyOS41NjggMjkuNTY4IDAgMCAwLTU5LjA3MiAwVjI2NS44NTZjMCA0OC45Ni0zOS42OCA4OC41NzYtODguNjQgODguNTc2SDYwMC42NFY3MDguOTI4QTU5LjA3MiA1OS4wNzIgMCAwIDEgNTQxLjU2OCA3NjhIMTg3LjA3MkE1OS4wNzIgNTkuMDcyIDAgMCAxIDEyOCA3MDguOTI4di02NDkuODU2YzAtMzIuNjQgMjYuNDMyLTU5LjA3MiA1OS4wNzItNTkuMDcyaDM1NC40OTZjMzIuNjQgMCA1OS4wNzIgMjYuNDMyIDU5LjA3MiA1OS4wNzJWMjk1LjM2aDg4LjU3NmMxNi4zMiAwIDI5LjU2OC0xMy4xODQgMjkuNTY4LTI5LjUwNHYtMTE4LjE0NGE4OC42NCA4OC42NCAwIDAgMSAxNzcuMjE2IDB2Mzg0YTU5LjA3MiA1OS4wNzIgMCAwIDEtNTkuMDcyIDU5LjA3MlY2ODBhMjkuNTA0IDI5LjUwNCAwIDAgMS0yOS41NjggMjguOTI4IDMwLjA4IDMwLjA4IDAgMCAxLTI5LjUwNC0zMi41MTJ2LTE0NC43MDRhNTkuMDcyIDU5LjA3MiAwIDEgMSA1OS4wNzIgNTkuMDcyeiBtLTI5NS4zNi0yOS41NjhBMjkuNTY4IDI5LjU2OCAwIDAgMCA1MTIgNDEzLjU2OEgyMTYuNjRhMjkuNTY4IDI5LjU2OCAwIDAgMC0yOS41NjggMjkuNTA0djE3Ny4yOGMwIDE2LjI1NiAxMy4yNDggMjkuNDQgMjkuNTY4IDI5LjQ0SDUxMmMxNi4zMiAwIDI5LjU2OC0xMy4xODQgMjkuNTY4LTI5LjQ0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTM1IiB1bmljb2RlPSImIzU5MDEwOyIgZD0iTTMwOC41NDQgNjkyLjU0NGMzMC43ODQgNS4xMiAyOS4wNTYgMzIuNTEyIDEwOS40NCA1MS4zMjggMCAwIDM0LjE3NiA0Mi42ODggNzYuOTI4IDM5LjI5NiAwIDAgNDcuODcyLTYuODQ4IDM1Ljg0IDEzLjY5NlM0OTMuMjQ4IDg2OC42NzIgNTM3LjcyOCA4ODUuNzZzNjYuNjI0LTMuNDU2IDc1LjItMTEuOTY4YzguNTc2LTguNTc2IDguNTc2LTIzLjkzNiA4LjU3Ni0yMy45MzZzMy4zOTItMjcuMzkyIDEuNjY0LTM0LjE3NmMtMS42NjQtNi44NDgtMjMuOTM2LTIwLjU0NC0xMS45NjgtMjcuMzkyIDExLjk2OC02Ljg0OCA5Mi4zNTIgNS4xMiA5NS43NDQtNzAuMDggMCAwIDM5LjI5Ni01NC43MiA1Mi45OTItNzguNjU2IDAgMCA1NC43Mi00NC40MTYgNjguNDE2LTcwLjA4IDAgMCA1Mi45OTItNDQuNDE2IDU2LjM4NC00Ny44NzIgMS43MjgtMy4zOTIgNjYuNjg4LTUxLjI2NCAzNy42MzItNTYuMzg0IDAgMCAxLjY2NC0zNC4xNzYtMTUuMzYtNi44NDgtMTUuNDI0IDI3LjMyOC0xMy42OTYgOC41MTItMTMuNjk2IDUuMTIgMC0zLjM5MiAxMC4yNC0zNS44NC0yMC40OC0xNy4wODgtMjkuMTIgMTguODE2LTI0IDQ0LjQxNi0yNCA0NC40MTZzMTEuOTY4IDYuODQ4LTEzLjY5NiAyMi4yNzJjLTI1LjYgMTUuMzYtNjYuNjI0IDQ2LjA4LTY2LjYyNCA1NC42NTYgMCAwLTQ5LjYgMzUuOTA0LTU2LjQ0OCA1Mi45OTItNi44NDggMTUuMzYtNi44NDggMC0xMC4yNC02Ljc4NCAwIDAtMjUuNi00Mi43NTItMjAuNDgtNjEuNTY4IDMuMzkyLTE4LjgxNiAyOC45OTItOTkuMiAyNS42LTExOS42OC0zLjM5Mi0yMC40OC0xOC44MTYtODUuNDQtMTcuMDg4LTg4Ljg5NiAxLjcyOC0zLjM5MiAyMi4yMDgtODAuMzItMjUuNi0xMTEuMTA0IDAgMC04Mi4xMTItMTU3LjI0OC04MC4zODQtMTc0LjMzNiAxLjcyOC0xOC44MTYgMS43MjgtMjkuMTIgMS43MjgtMjkuMTJsMS42NjQtMjUuNmMtNi44NDgtOC41NzYgNS4xMi02My4yOTYgMTguODE2LTc1LjI2NCAxMy42OTYtMTEuOTY4IDMyLjUxMi02NC45Ni0yNy4zMjgtNDIuNjg4QzUxOC44NDgtOTMuODI0IDUxMi0zOS4xMDQgNTEyLTM5LjEwNHMtNDYuMTQ0IDIwLjQ4LTE1LjM2IDU2LjM4NGMyOS4wNTYgMzUuOTA0IDM5LjI5NiAzNC4yNCAzOS4yOTYgMzQuMjRzMS43MjggMjAuNDggNi44NDggMTcuMDg4YzMuMzkyLTEuNzI4IDE4LjgxNiAyMTMuNjk2IDcwLjA4IDIwNi44NDhsLTEwLjI0IDIwLjQ4cy0xNy4wODgtMzUuODQtMjUuNjY0LTQyLjY4OGMtOC41NzYtNi44NDgtNi44NDgtMzAuNzg0LTM3LjYzMi00Mi43NTItMzAuNzItMTEuOTY4LTg1LjQ0LTU2LjQ0OC0xMjkuOTItODcuMTY4IDAgMC02Ljg0OC0zNy42MzItMTEuOTY4LTM5LjM2LTMuMzkyLTEuNzI4LTMwLjcyLTUxLjI2NC0yNS42LTYxLjUwNCA2Ljg0OC0xMS45NjgtMjIuMjcyLTgwLjM4NC00Ny44NzItOC41NzYtMjUuNiA3MC4wOC02Ljg0OCA3Ni45MjgtNi44NDggNzYuOTI4cy0yMC40OCA1OS44NCA1LjEyIDYxLjU2OCA0Ny44NzItMS43MjggNTEuMjY0IDBjMy40NTYgMS42NjQgOC41NzYgMy4zOTIgOC41NzYgMy4zOTJzODMuNzc2IDExNy45NTIgMTIxLjM0NCAxMTQuNTZjMCAwLTYuNzg0IDE1Mi4xMjggMTAuMjQgMTYwLjY0IDAgMC01Ni4zMiA5MC42MjQtNi43ODQgMTQxLjk1MiAwIDAtMzQuMTc2IDgzLjcxMi0yMi4yMDggOTQuMDE2IDAgMC0yNS42NjQgMTguODE2LTE4LjgxNiAyNS42IDAgMC03OC42NTYtMzIuNDQ4LTExNi4yODgtMzIuNDQ4IDAgMC0yMC40OC01LjEyLTI3LjMyOC0xMS45NjggMCAwLTExOC4yNzItMjUuNi0xMzAuMjQtOC41NzYtMTAuMjQgMTUuMzYgNTMuMzEyIDM3LjYzMiA1My4zMTIgMzcuNjMyczMyLjUxMiAxMC4yNCA2My4yMzIgMTUuMzZ6IG0tMjEzLjY5Ni0xLjY2NGE3My41MzYgNzMuNTM2IDAgMSAxIDE0Ny4wNzIgMCA3My41MzYgNzMuNTM2IDAgMCAxLTE0Ny4wNzIgMHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNiIgdW5pY29kZT0iJiM1OTAxMTsiIGQ9Ik02ODIuNjg4IDc2OGMtMzcuNzYgMC02OC4yODgtMzEuMDQtNjguMjg4LTY5LjMxMnMzMC41OTItNjkuMzc2IDY4LjI4OC02OS4zNzYgNjguMjI0IDMxLjA0IDY4LjIyNCA2OS4zNzZTNzIwLjM4NCA3NjggNjgyLjY4OCA3Njh6IG0tMTI2LjcyLTEzOC4yNGEzMy45MiAzMy45MiAwIDAgMS0yMy42OC05LjkyTDM1MiA0NDYuNTI4YTM1LjAwOCAzNS4wMDggMCAwIDEgMi45NDQtNTIuOTI4bDEyMi44OC05My41Njh2LTE5MC43MmMtMC42NC00Ni44NDggNjguOTkyLTQ2Ljg0OCA2OC4yODggMHYyMDhhMzQuODggMzQuODggMCAwIDEtMTMuNTY4IDI3Ljc3NmwtNTIuNDE2IDM5LjkzNiAxMjQuMTYgMTE5LjM2IDUxLjA3Mi02OS4yNDhhMzMuOTIgMzMuOTIgMCAwIDEgMjcuMzI4LTEzLjgyNGgxMDIuNGM0Ni4wOC0wLjY0IDQ2LjA4IDcwLjAxNiAwIDY5LjM3NmgtODUuMzc2bC01MS4yIDY5LjMxMi00MC45NiA1NS41NTJhMzMuOTg0IDMzLjk4NCAwIDAgMS0yNi4yNCAxNC4yMDh6TTIwNC44IDM1MkM5MS43MTIgMzUyIDAgMjU4Ljg4IDAgMTQ0UzkxLjcxMi02NCAyMDQuOC02NHMyMDQuOCA5My4xMiAyMDQuOCAyMDhTMzE3Ljg4OCAzNTIgMjA0LjggMzUyeiBtNjE0LjQgMGMtMTEzLjA4OCAwLTIwNC44LTkzLjEyLTIwNC44LTIwOFM3MDYuMTEyLTY0IDgxOS4yLTY0czIwNC44IDkzLjEyIDIwNC44IDIwOC05MS43MTIgMjA4LTIwNC44IDIwOHpNMjA0LjggMjgyLjY4OGM3NS4zOTIgMCAxMzYuNTEyLTYyLjA4IDEzNi41MTItMTM4LjY4OHMtNjEuMTItMTM4LjY4OC0xMzYuNTEyLTEzOC42ODgtMTM2LjUxMiA2Mi4wOC0xMzYuNTEyIDEzOC42ODggNjEuMTIgMTM4LjY4OCAxMzYuNTEyIDEzOC42ODh6IG02MTQuNCAwYzc1LjM5MiAwIDEzNi41MTItNjIuMDggMTM2LjUxMi0xMzguNjg4cy02MS4xMi0xMzguNjg4LTEzNi41MTItMTM4LjY4OC0xMzYuNTEyIDYyLjA4LTEzNi41MTIgMTM4LjY4OCA2MS4xMiAxMzguNjg4IDEzNi41MTIgMTM4LjY4OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNyIgdW5pY29kZT0iJiM1OTAxMjsiIGQ9Ik01MTIgNzY4QzQwOS42IDc2OCAzMzIuOCA2ODcuNzQ0IDMzMi44IDU4OC44YTE3OC43NTIgMTc4Ljc1MiAwIDAgMSAxMjgtMTcwLjg4di0zMDkuMjQ4Yy00Ny42MTYgOC40NDgtOTYgMjguMTYtMTM1LjYxNiA2NS4wMjQtNTMuODg4IDUwLjE3Ni05NC43MiAxMzAuMDQ4LTk0LjcyIDI2MS42MzJhNTEuMiA1MS4yIDAgMSAxLTEwMi40NjQgMGMwLTE1My43OTIgNTEuODQtMjY2LjA0OCAxMjcuNDg4LTMzNi41MTJTNDI2Ljg4IDAgNTEyIDBjODUuMjQ4IDAgMTgwLjk5MiAyOC42NzIgMjU2LjY0IDk5LjMyOHMxMjcuMjMyIDE4Mi45NzYgMTI3LjIzMiAzMzZjMy4zMjggNzEuNDI0LTEwNS42IDcxLjQyNC0xMDIuMjcyIDAgMC0xMzAuNzUyLTQwLjk2LTIxMC42ODgtOTQuOTEyLTI2MS4xMi0zOS42MTYtMzYuOTkyLTg3LjkzNi01Ni44OTYtMTM1LjQ4OC02NS40MDhWNDE3LjcyOGExNzguODggMTc4Ljg4IDAgMCAxIDEyOCAxNzEuMDcyQzY5MS4yIDY4Ny43NDQgNjE0LjQgNzY4IDUxMiA3Njh6IG0wLTEwMi40QTc2LjggNzYuOCAwIDEgMCA1MTIgNTEyYTc2LjggNzYuOCAwIDAgMCAwIDE1My42eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTM4IiB1bmljb2RlPSImIzU5MDEzOyIgZD0iTTM4My44MDggMTczLjE4NGMzOS44NzItMC41NzYgNzguMzM2LTE0LjcyIDEwOS4zMTItNDAuMzJsMTUuMzYtMTMuODg4aDIuOTQ0bDE4LjMwNCAxNi44MzJhMTY4LjEyOCAxNjguMTI4IDAgMCAwIDIwMy4yIDEwLjg4bDEzMy41MDQgMjY3LjQ1Ni04OC41NzYgNjAuMTZWNjg4LjI1NmE5MS44NCA5MS44NCAwIDAgMS04OC42NCA4Ny4zNmgtMjkuNTA0YTU2LjI1NiA1Ni4yNTYgMCAwIDEtNTkuMDcyIDYwLjE2aC0xNzcuMjhhNTUuOTM2IDU1LjkzNiAwIDAgMS01OS4wNzItNjAuMTZoLTI5LjUwNGE5MS44NCA5MS44NCAwIDAgMS04OC42NC04Ny4zNnYtMjEzLjgyNGwtODguNTc2LTYwLjIyNCAxMzIuODY0LTI3Mi44OTZhMTcwLjg4IDE3MC44OCAwIDAgMCA5My4zNzYgMzEuOTM2ek0zMDUuMjE2IDY4OC4xOTJhMjcuOTY4IDI3Ljk2OCAwIDAgMCAyOC44NjQgMjcuMTM2aDM1NS4yYTI3Ljk2OCAyNy45NjggMCAwIDAgMjkuNDQtMzAuMTQ0di0xODAuNzM2TDUxMiA2MjQuOTYgMzA1LjI4IDUwNy40NTZ6TTg5NiA1Mi42NzJ2LTYwLjE2YTU4LjY4OCA1OC42ODggMCAwIDEtNDAuMTkyLTIwLjQ4Yy0xNi0xNy40MDgtMzYuNDgtMjkuODg4LTU5LjA3Mi0zNi4xNi0zNi4yODgtMTAuOTQ0LTc1LjUyLTIuNTYtMTA0LjU3NiAyMi4yNzJsLTIzLjA0IDIxLjEyYTQ1LjQ0IDQ1LjQ0IDAgMCAxLTY0Ljk2IDBjLTguMzItNy4yOTYtMTYtMTUuMTA0LTI0LjgzMi0yMi4zMzZhMTExLjc0NCAxMTEuNzQ0IDAgMCAwLTE0Ni40OTYgNC4yMjRsLTIzLjA0IDIxLjEyYTQ0LjIyNCA0NC4yMjQgMCAwIDEtNTkuMDcyIDBjLTExLjItOS4wODgtMjEuMjQ4LTE5LjMyOC0zMi41MTItMjguMzUyLTQxLjYtMzEuMzYtOTguODE2LTI5Ljk1Mi0xMzguODE2IDMuNTg0bC0xOC4zMDQgMTYuMzJBNTUuMjMyIDU1LjIzMiAwIDAgMSAxMjgtNy41NTJ2NjAuMjg4YzE1LjI5NiAxLjkyIDMwLjcyLTEuMDI0IDQ0LjI4OC04LjQ0OCAxNi40NDgtMTAuMzY4IDMyLjA2NC0yMi4wOCA0Ni43Mi0zNC45NDQgMTIuMDk2LTEzLjQ0IDMwLjQtMTkuMiA0Ny44MDgtMTUuMDRhNTQuNTkyIDU0LjU5MiAwIDAgMSAxOC4zMDQgOS42YzkuNDcyIDcuMjMyIDE3LjE1MiAxNS42OCAyNi42MjQgMjMuNDg4YTExMS43NDQgMTExLjc0NCAwIDAgMCAxNDQuNzA0IDBjOS40NzItNy44MDggMTguMzA0LTE2LjgzMiAyNy43NzYtMjQuNzA0YTQ0LjIyNCA0NC4yMjQgMCAwIDEgNTkuMDcyIDBjOS40NzIgNy44NzIgMTguMzA0IDE2Ljg5NiAyNy43NzYgMjQuNzA0YTExMS43NDQgMTExLjc0NCAwIDAgMCAxNDUuMjggMGM4Ljk2LTcuODA4IDE3LjIxNi0xNi4yNTYgMjYuMDQ4LTIzLjQ4OGE0NC4yMjQgNDQuMjI0IDAgMCAxIDU5LjA3MiAwbDI3Ljc3NiAyNC43MDRBMTA0LjUxMiAxMDQuNTEyIDAgMCAwIDg5NiA1Mi43MzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzkiIHVuaWNvZGU9IiYjNTkwMTQ7IiBkPSJNNzE1LjYzNTI3MyA3MzguNDQxODQ3YzQ0Ljk4OTE4OCAwIDgxLjQ2NjkwOCAzNS4yNjE3OTYgODEuNDY2OTA4IDc4Ljc3OTA3N1M3NjAuNjI0NDYxIDg5NiA3MTUuNjM1MjczIDg5NiA2MzQuMTY4MzY0IDg2MC43MzgyMDQgNjM0LjE2ODM2NCA4MTcuMjg0OTJjMC00My41MTcyOCAzNi40Nzc3Mi03OC44NDMwNzIgODEuNDY2OTA5LTc4Ljg0MzA3M3ogbS02MTAuOTA1ODE5LTU1MS4zMjU1NDJoMjAzLjYzNTI3M2w4MS40NjY5MDkgMjM2LjI3MzIzM0w0NzEuMjk4NTQ0IDU2MS4zMDA5MTkgMzg5Ljc2NzY0IDU4MC45NDc2OTFsLTE4Ny4zMTYyOTMtNzguNzE1MDgxYTQ0LjM0OTIyOCA0NC4zNDkyMjggMCAwIDAtNTcuMDIwNDM2IDIzLjU1MDUyOSA0MS45ODEzNzYgNDEuOTgxMzc2IDAgMCAwIDI0LjQ0NjQ3MiA1NS4xNjQ1NTJsMjE5Ljg5MDI1NyA3OC43MTUwOGgxNjIuODY5ODJsMTYyLjkzMzgxNy03OC43MTUwOCA4MS40NjY5MDgtNzguNzE1MDgxaDEyMi4xNjgzNjVjMjIuNDYyNTk2IDAgNDAuNzAxNDU2LTE3LjY2Mjg5NiA0MC43MDE0NTYtMzkuNDIxNTM2IDAtMjEuNzU4NjQtMTguMjM4ODYtMzkuNDIxNTM2LTQwLjcwMTQ1Ni0zOS40MjE1MzZoLTIwMy42MzUyNzNMNjM0LjE2ODM2NCA1MDIuMTY4NjE0IDU1Mi43MDE0NTYgMzQ0LjY3NDQ1OGwxNjIuOTMzODE3LTE1Ny41NTgxNTN2LTI3NS42OTQ3NjljMC0yMS43NTg2NC0xOC4yMzg4Ni0zOS4zNTc1NC00MC43NjU0NTItMzkuMzU3NTRzLTQwLjcwMTQ1NiAxNy42NjI4OTYtNDAuNzAxNDU3IDM5LjM1NzU0djI0NC45NzY2ODlsLTE2Mi44Njk4MiAxMDkuNDMzMTYxLTgxLjQ2NjkwOC0xNTcuNDMwMTYxSDEwNC43Mjk0NTRjLTIyLjQ2MjU5NiAwLTQwLjcwMTQ1NiAxNy41OTg5LTQwLjcwMTQ1NiAzOS4zNTc1NHMxOC4yMzg4NiAzOS4zNTc1NCA0MC43MDE0NTYgMzkuMzU3NTR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDAiIHVuaWNvZGU9IiYjNTkwMTU7IiBkPSJNMTI4IDY0MGMtMzUuNDU2IDAtNjQtMjguNTQ0LTY0LTY0di00NDhjMC0zNS40NTYgMjguNTQ0LTY0IDY0LTY0aDgzMmMzNS40NTYgMCA2NCAyOC41NDQgNjQgNjRWNTc2YzAgMzUuNDU2LTI4LjU0NCA2NC02NCA2NHogbTAtNjRoOTZhMzIgMzIgMCAxIDAtMzItMzJsLTMyLTMyYTMyIDMyIDAgMSAwLTMyLTMyeiBtNDE2IDBDNjMyLjMyIDU3NiA3MDQgNDc1LjcxMiA3MDQgMzUyUzYzMi4zMiAxMjggNTQ0IDEyOCAzODQgMjI4LjI4OCAzODQgMzUyIDQ1NS42OCA1NzYgNTQ0IDU3NnogbTMyMCAwSDk2MHYtOTZhMzIgMzIgMCAxIDAtMzIgMzJsLTMyIDMyYTMyIDMyIDAgMSAwLTMyIDMyeiBtLTMyMC05NmMtMjAuNjcyIDAtMzQuMTc2LTYuOTc2LTQzLjY0OC0xNmg4Ny4yOTZjLTkuNDcyIDkuMDI0LTIyLjk3NiAxNi00My42NDggMTZ6IG0tNTYtMzJjLTIuODgtNS44MjQtMy45NjgtMTAuOTQ0LTUuMTItMTZoMTIyLjI0Yy0xLjE1MiA1LjA1Ni0yLjI0IDEwLjE3Ni01LjEyIDE2eiBtLTgtMzJ2LTE2aDEyOFY0MTZ6IG0wLTMydi0xNmgxMjhWMzg0eiBtMC0zMnYtMTZoMTI4VjM1MnogbTAtMzJsLTE2LTE2aDEyOEw2MDggMzIweiBtLTMyLTMyczIuMjQtNi41MjggNi41MjgtMTZoMTQ1LjQ3Mkw1NzYgMjg4eiBtLTI4OC0zMmEzMiAzMiAwIDAgMCAwLTY0bDMyLTMyYTMyIDMyIDAgMSAwIDMyLTMySDEyOHY5NmEzMiAzMiAwIDAgMCAzMiAzMnogbTMwMy4yMzIgMGMyLjk0NC01LjUwNCA0Ljg2NC0xMC4xNzYgOC43NjgtMTZoMTQ1LjE1MmM0LjIyNCA4LjgzMiA2Ljg0OCAxNiA2Ljg0OCAxNnogbTQ2NC43NjggMGEzMiAzMiAwIDAgMCAzMi0zMlYxMjhoLTk2YTMyIDMyIDAgMSAwIDMyIDMybDMyIDMyYTMyIDMyIDAgMCAwIDAgNjR6IG0tNDQzLjc3Ni0zMmM1LjA1Ni01LjgyNCAxMC41Ni0xMS4yNjQgMTYuNjQtMTZoOTAuODhjNi40IDQuOTI4IDEyLjAzMiAxMC4zNjggMTYuMjU2IDE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQxIiB1bmljb2RlPSImIzU5MDE2OyIgZD0iTTUxMiA3NjhjLTExNy4wNTYgMC00MDkuNi0xNC43Mi0zODAuMzUyLTQ0LjI4OGwzNTEuMTA0LTM2OS4yOHYtMjM2LjI4OGMwLTU5LjA3Mi0xNzUuNTUyLTI5LjUwNC0xNzUuNTUyLTExOC4xNDRoNDA5LjZjMCA4OC42NC0xNzUuNTUyIDU5LjA3Mi0xNzUuNTUyIDExOC4xNDRWMzU0LjQzMmwzNTEuMTA0IDM2OS4yOEM5MjEuNiA3NTMuMjE2IDYyOS4wNTYgNzY4IDUxMiA3Njh6IG0wLTU5LjA3MmMxNDYuMzA0IDAgMjc3Ljk1Mi0xNC43MiAyNzcuOTUyLTE0LjcybC00My45MDQtNDQuMzUySDI3Ny45NTJsLTQzLjkwNCA0NC4yODhzMTMxLjY0OCAxNC43MiAyNzcuOTUyIDE0LjcyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQyIiB1bmljb2RlPSImIzU5MDE3OyIgZD0iTTg4NS4zMTIgNTYzLjJoLTEzOC42MjRWNzA0SDE5MnYtMjgxLjZjMC44OTYtMTU1LjUyIDEyNS44MjQtMjgwLjgzMiAyNzkuMDQtMjc5Ljg3MkEyNzYuNjA4IDI3Ni42MDggMCAwIDEgNzA4LjQ4IDI4MS42aDE3Ni44MzJDOTYxLjkyIDI4MS42IDEwMjQgMzQ0LjY0IDEwMjQgNDIyLjRzLTYyLjA4IDE0MC44LTEzOC42ODggMTQwLjh6IG0wLTIxMS4yaC0xNDguMzUyYzYuMTQ0IDIyLjk3NiA5LjQwOCA0Ni41OTIgOS43MjggNzAuNFY0OTIuOGgxMzguNjI0YzM4LjMzNiAwIDY5LjM3Ni0zMS40ODggNjkuMzc2LTcwLjRzLTMxLjA0LTcwLjQtNjkuMzc2LTcwLjR6IG0tMTM4LjYyNC0zMTYuOGMwLTE5LjQ1Ni0xNS41NTItMzUuMi0zNC42ODgtMzUuMkgyMjYuNjg4Yy0xOS4yIDAtMzQuNjg4IDE1Ljc0NC0zNC42ODggMzUuMnMxNS41NTIgMzUuMiAzNC42ODggMzUuMmg0ODUuMzEyYzE5LjIgMCAzNC42ODgtMTUuNzQ0IDM0LjY4OC0zNS4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQzIiB1bmljb2RlPSImIzU5MDE4OyIgZD0iTTk3Mi41NDQgNDA5LjI4aC0xNTAuMDE2di0yNTMuNjMyaDgzLjMyOHYtNjcuNjQ4aDUwLjA0OHYtNjcuNjQ4SDg5LjI4djY3LjY0OGg0OS45ODR2NjcuNjQ4aDk5Ljk2OFY0MDkuMjhINzYuOGwyMjkuMTIgMTUyLjE5MkgxNDMuNDg4TDUwNS45MiA3OTguMDhWODMyaDMzLjI4di0zMy44NTZsMzgzLjM2LTIzNi42NzJoLTE2OC4xOTJ6IG0tNjgzLjI2NCAwdi0yMDIuODhoODMuMzI4djIwMi44OHogbTIxNi42NCAwSDQyMi41OTJ2LTIwMi44OGg4My4zMjh6IG0xMzMuMzEyIDBINTU1LjkwNHYtMjAyLjg4aDgzLjMyOHogbTQ5Ljk4NC0yMDIuODhoODMuMzI4djIwMi44OEg2ODkuMjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDQiIHVuaWNvZGU9IiYjNTkwMTk7IiBkPSJNOTYgNzM2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnYtNjA4YzAtMTkuMiAxMi44LTMyIDMyLTMyczMyIDEyLjggMzIgMzJWMTkyaDgzMnYtOTZjMC0xOS4yIDEyLjgtMzIgMzItMzJzMzIgMTIuOCAzMiAzMnYxMjhjMCAxOS4yLTEyLjggMzItMzIgMzJIMTI4VjcwNGMwIDE5LjItMTIuOCAzMi0zMiAzMnogbTE5Mi0zMkMyMzYuOCA3MDQgMTkyIDY1OS4yIDE5MiA2MDhTMjM2LjggNTEyIDI4OCA1MTIgMzg0IDU1Ni44IDM4NCA2MDggMzM5LjIgNzA0IDI4OCA3MDR6TTUxMiA2NDBDNDE2IDY0MCA0MTYgNTQ0IDQxNiA1NDRWNDQ4aC0xOTJjLTE5LjIgMC0zMi0xMi44LTMyLTMydi02NGMwLTE5LjIgMTIuOC0zMiAzMi0zMkgxMDI0VjQ4MEMxMDI0IDY0MCA4NjQgNjQwIDg2NCA2NDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDUiIHVuaWNvZGU9IiYjNTkwMjA7IiBkPSJNODk0LjI3MiAzNC44OGMtNDAuOTYtMjAuOTI4LTk1LjU1Mi02Ljk3Ni0xMjIuODggMzQuOTQ0bC03NS4wNzIgOTcuNzI4SDMyNy42OGwtNzUuMDcyLTk3LjcyOGMtMzQuMTc2LTQ4Ljg5Ni05NS42MTYtNTUuODcyLTE0My4zNi0yMC45MjgtMzQuMTc2IDI3LjkwNC00Ny44MDggNjkuNzYtNDAuOTYgMTA0LjcwNGw0Ny43NDQgMjU4LjMwNEMxMjkuNzI4IDQ5NS43NDQgMjA0LjggNTU4LjUyOCAyODYuNzIgNTU4LjUyOGgxOTEuMTY4VjY2My4yOTZDNDc3Ljg4OCA3MTkuMTA0IDUxOC44NDggNzY4IDU3My40NCA3NjhoMjExLjY0OGMyMC40OCAwIDM0LjExMi0xMy45NTIgMzQuMTEyLTM0Ljg4IDAtMjAuOTkyLTEzLjYzMi0zNC45NDQtMzQuMTEyLTM0Ljk0NGgtMjA0LjhjLTIwLjQ4IDAtMzQuMTc2LTEzLjk1Mi0zNC4xNzYtMjcuOTA0di0xMTEuNzQ0aDE5MS4xNjhjODEuOTIgMCAxNTYuOTkyLTYyLjg0OCAxNzAuNjg4LTE0Ni41Nmw0Ny43NDQtMjU4LjM2OGM2Ljg0OC00OC44OTYtMTMuNjMyLTk3LjcyOC02MS40NC0xMTguNzJ6TTQwOS42IDM4NGMwIDU1Ljg3Mi00Ny44MDggMTA0LjcwNC0xMDIuNCAxMDQuNzA0UzIwNC44IDQzOS44NzIgMjA0LjggMzg0czQ3LjgwOC0xMDQuNzA0IDEwMi40LTEwNC43MDRTNDA5LjYgMzI4LjEyOCA0MDkuNiAzODR6IG00MDkuNiAwYzAgMjAuOTI4LTEzLjYzMiAzNC44OC0zNC4xMTIgMzQuODhoLTM0LjE3NnYzNC45NDRjMCAyMC45MjgtMTMuNjMyIDM0Ljg4LTM0LjExMiAzNC44OHMtMzQuMTEyLTEzLjk1Mi0zNC4xMTItMzQuODh2LTM0Ljk0NGgtMzQuMTc2Yy0yMC40OCAwLTM0LjExMi0xMy45NTItMzQuMTEyLTM0Ljg4czEzLjYzMi0zNC44OCAzNC4xMTItMzQuODhoMzQuMTc2di0zNC45NDRjMC0yMC45MjggMTMuNjMyLTM0Ljg4IDM0LjExMi0zNC44OHMzNC4xMTIgMTMuOTUyIDM0LjExMiAzNC44OHYzNC45NDRoMzQuMTc2YzIwLjQ4IDAgMzQuMTEyIDEzLjk1MiAzNC4xMTIgMzQuODh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDYiIHVuaWNvZGU9IiYjNTkwMjE7IiBkPSJNMzQxLjEyIDc2OEg2NHYtNjg1LjMxMmgyNTkuMDcyYzQ2LjkxMiAwIDE0OC4wMzItMjcuMDcyIDE0OC4wMzItODIuNjg4VjY0My45NjhDNDcxLjEwNCA2OTAuMTEyIDQwMC4xOTIgNzY4IDM0MS4xMiA3Njh6IG0zNDEuNTA0IDBjLTU5LjEzNiAwLTEzMC4wNDgtNzcuODg4LTEzMC4wNDgtMTI0LjAzMlYwYzAgNTUuNjE2IDEwMS4xMiA4Mi42ODggMTQ3Ljk2OCA4Mi42ODhoMjU5LjEzNlY3Njh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDciIHVuaWNvZGU9IiYjNTkwMjI7IiBkPSJNMTAyNCAzNzQuNHYtMTY2LjRjMC0yMi45NzYtMTcuOTItNDEuNi00MC00MS42cy00MCAxOC42MjQtNDAgNDEuNmMwIDAgNC44IDQxLjYtODAgNDEuNmgtODB2LTIwOGMwLTIyLjk3Ni0xNy45Mi00MS42LTQwLTQxLjZoLTY0MEE0MC44MzIgNDAuODMyIDAgMCAwIDY0IDQxLjZ2MzMyLjhjMCAyMi45NzYgMTcuOTIgNDEuNiA0MCA0MS42aDY0MGMyMi4wOCAwIDQwLTE4LjYyNCA0MC00MS42di00MS42aDgwYzg0LjggMCA4MCA0MS42IDgwIDQxLjYgMCAyMi45NzYgMTcuOTIgNDEuNiA0MCA0MS42czQwLTE4LjYyNCA0MC00MS42ek0yMjQgNzQ4LjhDMTM1LjY4IDc0OC44IDY0IDY3NC4zMDQgNjQgNTgyLjRzNzEuNjgtMTY2LjQgMTYwLTE2Ni40UzM4NCA0OTAuNDk2IDM4NCA1ODIuNCAzMTIuMzIgNzQ4LjggMjI0IDc0OC44eiBtMC0yNDkuNmMtNDQuMTYgMC04MCAzNy4yNDgtODAgODMuMnMzNS44NCA4My4yIDgwIDgzLjIgODAtMzcuMjQ4IDgwLTgzLjItMzUuODQtODMuMi04MC04My4yek01ODQgODMyQzQ3My41MzYgODMyIDM4NCA3MzguODggMzg0IDYyNFM0NzMuNiA0MTYgNTg0IDQxNnMyMDAgOTMuMTIgMjAwIDIwOFM2OTQuNCA4MzIgNTg0IDgzMnogbTAtMzMyLjhjLTY2LjMwNCAwLTEyMCA1NS44NzItMTIwIDEyNC44UzUxNy43NiA3NDguOCA1ODQgNzQ4LjggNzA0IDY5Mi45MjggNzA0IDYyNCA2NTAuMjQgNDk5LjIgNTg0IDQ5OS4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ4IiB1bmljb2RlPSImIzU5MDIzOyIgZD0iTTg5MS45MDQgNzYwYTIyNS45ODQgMjI1Ljk4NCAwIDAgMS0zODYuNDk2LTE0OC42MDhsMjM3LjY5Ni0yMzcuNjk2YTIyNS45ODQgMjI1Ljk4NCAwIDAgMSAxNDguOCAzODYuMzA0ek0zMzAuMTEyIDM1OC45MTJMMTY5LjYgMTk4LjRhNzUuNjQ4IDc1LjY0OCAwIDAgMSAwLTEwNi45NDRsNTMuNTA0LTUzLjUwNGMyOS41MDQtMjkuNTA0IDc3LjQ0LTI5LjUwNCAxMDYuODggMEw0OTAuNDk2IDE5OC40bDE2MC41MTIgMTYwLjUxMi0xNjAuNDQ4IDE2MC4zODR6IG01Ni4wNjQtMTU3Ljg4OGwtNTMuNTA0IDUzLjUwNCAxNTcuODI0IDE1Ny44MjQgNTMuNTA0LTUzLjQ0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ5IiB1bmljb2RlPSImIzU5MDI0OyIgZD0iTTk1MS4wNCA0MDAuNDQ4TDE1Mi4wNjQgODMwLjIwOGMtMTEuNTIgNS43Ni0yNS42LTMuMzI4LTIzLjkzNi0xNS44MDhsNjEuOTUyLTc0Mi4zMzZjMC44MzItMTEuNjQ4IDEyLjQxNi0xOC4zMDQgMjMuMTY4LTE0LjA4bDI1Ny43MjggMTA4LjggMTQxLjMxMi0xNjEuMjE2YzkuMDg4LTkuOTg0IDI0Ljc2OC01Ljc2IDI4LjA5NiA2LjY1Nmw2Ny43MTIgMjU1LjIzMiAyNDIuOTQ0IDEwMy4wNGExNi45NiAxNi45NiAwIDAgMSAwIDI5Ljk1MnogbS0zMzguNzUyLTMxNy41NjhsLTc0LjM2OCAxMzIuOTkyLTM4MC4wMzIgNTkwLjIwOCA1MDMuOTM2LTUyMy43MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTAiIHVuaWNvZGU9IiYjNTkwMjU7IiBkPSJNOTYwIDIxNnY4MGwtMzY2LjU5MiAyNDBWODE2UzU5My40MDggODk2IDUxMiA4OTZDNDMwLjUyOCA4OTYgNDMwLjUyOCA4MTYgNDMwLjUyOCA4MTZ2LTI4MEw2NCAyOTZ2LTgwbDM2Ni41MjggMTIwLjA2NHYtMjI0LjA2NGwtMTIyLjE3Ni05NlYtNjRMNTEyIDE2IDcxNS42NDgtNjR2ODBsLTEyMi4yNCA5NnYyMjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTEiIHVuaWNvZGU9IiYjNTkwMjY7IiBkPSJNOTgwLjczNiA1MjQuMDk2di0xNzEuNzEybDM1LjY0OC0zNi4wOTYtNzQuMzY4LTc4LjQ2NC03NS4yNjQgNzYuMTYgNTEuNTg0IDQ3LjQ4OFY0OTYuOTZDNjk5LjUyIDQwNS41NjggNjI5LjUwNCAzNzcuMTUyIDU4MC45OTIgMzU1LjAwOHMtODMuNDU2LTIyLjA4LTEzMS41ODQtMy43MTJDNDAxLjM0NCAzNjkuNjY0IDE3Mi4yODggNDU0LjQgNTguNTYgNTA5LjU2OGMtNzUuODQgMzYuOC04MC43NjggNjAuMTYgMS4yOCA5MS4zMjggMTA3LjEzNiA0MS4yOCAyODQuMTYgMTA3LjI2NCAzNzguMDQ4IDE0My4zNiA1NS41NTIgMjIuNzg0IDg0LjkyOCAzNS4yIDEzNS44NzIgOS4yMTYgOTEuMDcyLTM4LjA4IDI5OS4xMzYtMTE3LjE4NCA0MDIuNTYtMTYwLjUxMiA5MC4wNDgtMzkuODA4IDI5LjUwNC01Mi45MjggNC40MTYtNjguODY0ek01OTEuNTUyIDI4Ny4wNGM1Mi44NjQgMjIuMTQ0IDEyNC4xNiA1OC42ODggMjAxLjkyIDkyLjQ4di0yNzEuMTA0UzY5Mi45MjggMCA1MTYuMTYgMGMtMTkwLjQgMC0yOTMuMjQ4IDEwOC40MTYtMjkzLjI0OCAxMDguNDE2VjM2MS40NzJjNTkuOTY4LTI0LjgzMiAxMjcuMzYtNDYuMDggMjA4Ljk2LTc0LjQzMiA1MC4yNC0xOC4xMTIgMTE0LjA0OC0yNC4zODQgMTU5LjY4IDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTIiIHVuaWNvZGU9IiYjNTkwMjc7IiBkPSJNNzc3LjM0NCA2NTAuNDk2SDg3Ni44YzQ0Ljg2NC0wLjA2NCA4MS4yOC0zNS4wMDggODEuNTM2LTc4LjIwOEw5NjAgMTQyLjAxNmMwLjEyOC0yMC43MzYtOC4zODQtNDAuNjQtMjMuNjgtNTUuMjk2cy0zNS44NC0yMi44NDgtNTcuNDA4LTIyLjcybC03MzEuNjQ4IDEuNjY0Yy00NC45OTIgMC4xMjgtODEuNDA4IDM1LjItODEuNjY0IDc4LjRMNjQgNTcyLjIyNGMtMC4xMjggMjAuNzM2IDguMzg0IDQwLjY0IDIzLjYxNiA1NS4zNnMzNS44NCAyMi45MTIgNTcuMzQ0IDIyLjkxMmgxMjQuMjg4YTM2LjU0NCAzNi41NDQgMCAwIDEgMjkuNjMyIDE3LjZsMzMuMjggNjMuNjE2YzkuOTIgMTkuMiAzNi4yODggMzQuOTQ0IDU4LjY4OCAzNS4wNzJMNjU0LjcyIDc2OGMyMi41MjggMC4xMjggNDguNzY4LTE1LjQ4OCA1OC44OC0zNC44MTZsMzQuMjQtNjUuMzQ0YzUuMDU2LTkuNiAxOC4yNC0xNy4zNDQgMjkuNDQtMTcuMzQ0eiBtLTI2Ni40MzItMzguODQ4Yy0xMzQuNzg0IDAtMjQzLjkwNC0xMDUuMDg4LTI0My45MDQtMjM0Ljc1MiAwLTEyOS43MjggMTA5LjEyLTIzNC44OCAyNDMuODQtMjM0Ljg4IDEzNC43ODQgMCAyNDMuOTY4IDEwNS4xNTIgMjQzLjk2OCAyMzQuODggMCAxMjkuNjY0LTEwOS4xODQgMjM0Ljc1Mi0yNDMuOTA0IDIzNC43NTJ6IG0tNS4xMi0zODEuNTA0YzgxLjQwOCAwIDE0Ny4zOTIgNjMuNDg4IDE0Ny4zOTIgMTQxLjgyNGExOS45NjggMTkuOTY4IDAgMCAxLTIwLjM1MiAxOS41ODQgMTkuOTY4IDE5Ljk2OCAwIDAgMS0yMC4yODgtMTkuNTg0YzAtNTYuNzA0LTQ3LjgwOC0xMDIuNzItMTA2Ljc1Mi0xMDIuNzJhMTkuOTY4IDE5Ljk2OCAwIDAgMS0yMC4yODgtMTkuNTg0YzAtMTAuODE2IDkuMDg4LTE5LjUyIDIwLjI4OC0xOS41MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01MyIgdW5pY29kZT0iJiM1OTAyODsiIGQ9Ik01MTIgNzY4YTM4NCAzODQgMCAxIDEgMC03NjhBMzg0IDM4NCAwIDAgMSA1MTIgNzY4eiBtMC02ODIuNjg4YTI5OC42ODggMjk4LjY4OCAwIDEgMCAwIDU5Ny4zNzYgMjk4LjY4OCAyOTguNjg4IDAgMCAwIDAtNTk3LjM3NnogbTAgNDY5LjMxMmExNzAuNjg4IDE3MC42ODggMCAxIDAgMC0zNDEuMzEyIDE3MC42ODggMTcwLjY4OCAwIDAgMCAwIDM0MS4zMTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTQiIHVuaWNvZGU9IiYjNTkwMjk7IiBkPSJNNTE3LjQ0IDY5OS4wNzJjLTg0LjA5NiAwLTE0OS41NjgtOTUuMTA0LTE3NS4xMDQtMTI1LjQ0YTMzLjc5MiAzMy43OTIgMCAwIDEtNy41NTItMjIuMDh2LTMwMy4yMzJhMzAuMzM2IDMwLjMzNiAwIDAgMSA0OS42LTI0LjgzMiAyMDYuNzIgMjA2LjcyIDAgMCAwIDEzMy4wNTYgODAuNjRjOTcuMTUyIDAgMTM0LjQtODcuNDg4IDIzNS43MTItODcuNDg4YTM2My45NjggMzYzLjk2OCAwIDAgMSAxODguMTYgNzUuMDcyYzguNzY4IDYuNDY0IDEzLjg4OCAxNi43MDQgMTMuNzYgMjcuNTg0VjY2OC4xNmEzMC4zMzYgMzAuMzM2IDAgMCAxLTQyLjc1MiAzMC45NzYgMzk2LjM1MiAzOTYuMzUyIDAgMCAwLTE1OS4xNjgtNzMuMDI0Yy0xMDEuMzEyLTEuNDA4LTEzNC40IDczLjAyNC0yMzUuNzEyIDczLjAyNHogbS0yODYuMDgtNjguOTI4YTY4LjkyOCA2OC45MjggMCAxIDAgMCAxMzcuODU2IDY4LjkyOCA2OC45MjggMCAwIDAgMC0xMzcuODU2eiBtMzQuNDk2LTY4LjkyOFYtOTIuMTZhMzQuNDk2IDM0LjQ5NiAwIDAgMC02OC45MjggMFY1NjEuMjhhMzQuNDk2IDM0LjQ5NiAwIDAgMCA2OC45MjggMHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01NSIgdW5pY29kZT0iJiM1OTAzMDsiIGQ9Ik00NzQuMjQxMDYyIDc2OC42Nzg3ODFoLTEzNC4zOTYyMmEzMS43NDMxMDcgMzEuNzQzMTA3IDAgMCAwLTIxLjQzOTM5NyA2LjQ2MzgxOCAzNC4yMzkwMzcgMzQuMjM5MDM3IDAgMCAwLTEwLjQzMTcwNyAxNi40NDc1MzhjLTEuOTgzOTQ0IDYuNTkxODE1LTMuMDA3OTE1IDE0LjA3OTYwNC0zLjAwNzkxNSAyMi4zOTkzN3MwLjYzOTk4MiAxNi4wNjM1NDggMi4wNDc5NDIgMjMuMzU5MzQzYzAuNjM5OTgyIDcuMjk1Nzk1IDEuOTE5OTQ2IDE1LjI5NTU3IDMuOTY3ODg5IDIzLjg3MTMyOEE3My41OTc5MyA3My41OTc5MyAwIDAgMCAzMTkuMzY1NDE4IDg4My4xNzE1NjFhMjYuNTU5MjUzIDI2LjU1OTI1MyAwIDAgMCAxNC4zOTk1OTUgMTEuOTY3NjYzYzYuMDE1ODMxIDEuOTgzOTQ0IDEzLjMxMTYyNiAwLjMxOTk5MSAyMS45NTEzODItNC45OTE4NTkgOS45MTk3MjEtNS45NTE4MzMgMjEuMTgzNDA0LTEyLjQxNTY1MSAzMy43OTEwNS0xOS4zOTE0NTUgMTIuNjA3NjQ1LTYuOTc1ODA0IDI0Ljg5NTMtMTMuOTUxNjA4IDM2Ljg2Mjk2My0yMC45Mjc0MTEgMTEuOTAzNjY1LTYuOTExODA2IDIzLjAzOTM1Mi0xMy4yNDc2MjcgMzMuMjc5MDY0LTE4Ljg3OTQ2OSAxMC4zMDM3MS01LjYzMTg0MiAxOC4xMTE0OTEtMTAuMTExNzE2IDIzLjQyMzM0Mi0xMy40Mzk2MjIgNi42NTU4MTMtNC42NzE4NjkgMTEuNTgzNjc0LTkuNzkxNzI1IDE0LjkxMTU4LTE1LjQyMzU2N3M0LjY3MTg2OS0xMC45NDM2OTIgMy45Njc4ODktMTUuOTM1NTUxLTMuMjYzOTA4LTkuMDg3NzQ0LTcuOTM1Nzc3LTEyLjQxNTY1MWEzMy45MTkwNDYgMzMuOTE5MDQ2IDAgMCAwLTE5LjgzOTQ0Mi00Ljk5MTg2eiBtNzcuNTY1ODE4IDEuMDIzOTcxaDEzMy4zNzIyNDlhMzEuNzQzMTA3IDMxLjc0MzEwNyAwIDAgMSAyMS4zNzUzOTkgNi4zOTk4MiAzNC4yMzkwMzcgMzQuMjM5MDM3IDAgMCAxIDEwLjQzMTcwNyAxNi40NDc1MzhjMi4wNDc5NDIgNi42NTU4MTMgMy4wMDc5MTUgMTQuMDc5NjA0IDMuMDA3OTE1IDIyLjM5OTM3cy0wLjMxOTk5MSAxNi4xMjc1NDYtMC45NTk5NzMgMjMuNDIzMzQxYTEzNjEuODgxNjk3IDEzNjEuODgxNjk3IDAgMCAxLTQuNDc5ODc0IDIzLjM1OTM0M0E2NS4yNzgxNjQgNjUuMjc4MTY0IDAgMCAxIDcwNi41NTQ1MjggODgzLjE3MTU2MWEyNi41NTkyNTMgMjYuNTU5MjUzIDAgMCAxLTE0LjM5OTU5NSAxMS45Njc2NjNjLTYuMDE1ODMxIDEuOTgzOTQ0LTEzLjMxMTYyNiAwLjYzOTk4Mi0yMS44ODczODQtMy45Njc4ODgtOS45ODM3MTktNi4wMTU4MzEtMjEuMjQ3NDAyLTEyLjQ3OTY0OS0zMy45MTkwNDYtMTkuMzkxNDU1cy0yNC45NTkyOTgtMTMuOTUxNjA4LTM3LjI0Njk1My0yMC45Mjc0MTFjLTEyLjI4NzY1NC02Ljk3NTgwNC0yMy41NTEzMzgtMTMuMjQ3NjI3LTMzLjg1NTA0OC0xOC44Nzk0NjktMTAuMjM5NzEyLTUuNjk1ODQtMTcuNzI3NTAxLTEwLjE3NTcxNC0yMi4zOTkzNy0xMy40Mzk2MjItNy4yOTU3OTUtNC42NzE4NjktMTIuNjA3NjQ1LTkuNzkxNzI1LTE1LjkzNTU1MS0xNS40MjM1NjZzLTQuNjA3ODctMTAuOTQzNjkyLTMuOTY3ODg5LTE1Ljk5OTU1IDMuMzI3OTA2LTkuMDg3NzQ0IDcuOTM1Nzc3LTEyLjQxNTY1MSAxMS42NDc2NzItNC45Mjc4NjEgMjAuOTI3NDExLTQuOTI3ODYyek00NjAuMjg5NDU0IDcwMy45NzY2MDFoLTI4OC42MzE4ODJjLTIxLjI0NzQwMiAwLTM1LjAwNzAxNS0zLjQ1NTkwMy00MS4zNDI4MzctMTAuNDMxNzA3LTYuMjcxODI0LTYuOTc1ODA0LTkuNDA3NzM1LTE4LjA0NzQ5Mi05LjQwNzczNi0zMy4yNzkwNjR2LTg3LjY3NzUzNGMwLTE2LjU3NTUzNCAzLjQ1NTkwMy0yOC43OTkxOSAxMC40MzE3MDctMzYuNzk4OTY1IDYuOTc1ODA0LTcuOTM1Nzc3IDIwLjczNTQxNy0xMS45MDM2NjUgNDEuMjc4ODM5LTExLjkwMzY2NWgyODcuNjA3OTExeiBtMTA4LjQxMjk1MSAwaDI4NC42NjM5OTRjMjEuMjQ3NDAyIDAgMzUuNjQ2OTk3LTQuMTU5ODgzIDQzLjI2Mjc4My0xMi40MTU2NTEgNy42Nzk3ODQtOC4zMTk3NjYgMTEuNTE5Njc2LTIwLjA5NTQzNSAxMS41MTk2NzYtMzUuMzI3MDA3di04NS41NjU1OTNjMC0xNS45OTk1NS0zLjUxOTkwMS0yNy43MTEyMjEtMTAuNDk1NzA0LTM1LjM5MTAwNS02Ljk3NTgwNC03LjYxNTc4Ni0yMC43MzU0MTctMTEuMzkxNjgtNDEuMjc4ODQtMTEuMzkxNjc5SDU2OC43MDI0MDV6TTQ2MC4yMjU0NTYgNDcxLjA4NzE1MUgxNTQuNjk4MDQ5di0zNzYuMTgxNDJjMC0zMy43OTEwNSA5LjU5OTczLTYwLjAzMDMxMiAyOC44NjMxODgtNzguNTg5NzkgMTkuMjYzNDU4LTE4LjU1OTQ3OCA0OS4wODY2MTktMjcuOTAzMjE1IDg5LjU5NzQ4LTI3LjkwMzIxNUg0NjAuMTYxNDU4eiBtMTA4LjQ3Njk0OSAwaDMwNC41Njc0MzR2LTM3My4xNzM1MDVjLTAuNjM5OTgyLTMzLjg1NTA0OC0xMC4yMzk3MTItNjAuNTQyMjk3LTI4Ljg2MzE4OC04MC4xMjU3NDYtMTguNTU5NDc4LTE5LjU4MzQ0OS00OC4xMjY2NDYtMjkuMzc1MTc0LTg4LjU3MzUwOS0yOS4zNzUxNzRINTY4LjcwMjQwNXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01NiIgdW5pY29kZT0iJiM1OTAzMTsiIGQ9Ik05MTUuMiA3NjUuMzEyYTI5LjQ0IDI5LjQ0IDAgMCAxLTIxLjg4OCAyMS45NTJBNDkzLjE4NCA0OTMuMTg0IDAgMCAxIDM4NC43MDQgNTk5LjA0YTI5Ljc2IDI5Ljc2IDAgMCAwLTE2Ljk2LTExLjMyOCAzODUuNiAzODUuNiAwIDAgMS0xNzkuOTY4LTEwMi4yNzIgMzk0LjA0OCAzOTQuMDQ4IDAgMCAxLTYwLjQxNi03Ny42OTZjLTE0LjI3Mi0yNC4wNjQgMTAuMTEyLTUyLjQ4IDM2LjM1Mi00Mi43NTJhMzgxLjUwNCAzODEuNTA0IDAgMCAwIDEzMi4xNiAyMi44NDhjLTAuNjQtMy45MDQtMS41MzYtNy44MDgtMi4xMTItMTEuNzEyQTE5ODcuMzI4IDE5ODcuMzI4IDAgMCAxIDM5NC44OCAyNjYuODhhMTk4MS45NTIgMTk4MS45NTIgMCAwIDEgMTA5LjI0OC0xMDEuMTJjMy44NCAwLjUxMiA3LjgwOCAxLjQwOCAxMS43MTIgMi4wNDggMC00Ni4wOC03LjU1Mi05MC43NTItMjIuODQ4LTEzMi4xNi05LjY2NC0yNi4yNCAxOC42ODgtNTAuNjI0IDQyLjc1Mi0zNi4zNTIgMjguMjg4IDE2Ljc2OCA1NC40IDM3LjEyIDc3LjY5NiA2MC40MTZhMzg1LjY2NCAzODUuNjY0IDAgMCAxIDEwMi4yNzIgMTc5Ljk2OCAyOS44MjQgMjkuODI0IDAgMCAwIDExLjI2NCAxNi45NiA0OTMuMjQ4IDQ5My4yNDggMCAwIDEgMTg4LjI4OCA1MDguNjA4eiBtLTIwMC45Ni0zMjAuMTI4YTk5Ljc3NiA5OS43NzYgMCAxIDAtMTQxLjA1NiAxNDEuMTIgOTkuNzc2IDk5Ljc3NiAwIDAgMCAxNDEuMTItMTQxLjEyek0yMjQuNTc2IDIyOC42NzJjLTMwLjI3Mi0zMC4yMDgtMTU4LjQ2NC0yMTcuNi0xMjEuOTg0LTI1NC4wOCAzNi40OC0zNi40OCAyMjMuODcyIDkxLjcxMiAyNTQuMDggMTIxLjkyIDMwLjI3MiAzMC4yNzIgMjUuMjE2IDg0LjM1Mi0xMS4zMjggMTIwLjgzMi0zNi40OCAzNi40OC05MC41NiA0MS42LTEyMC43NjggMTEuMzI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU3IiB1bmljb2RlPSImIzU5MDMyOyIgZD0iTTMwNS4yOCA4MzJDMjI0LjY0IDgzMiAxMjggNzg3LjU4NCAxMjggNjY3Ljk2OFYxMTUuMnMwLTU5LjcxMiA1OS4wNzItNTkuNzEydi01OS43NzZzMC01OS43MTIgNTkuMDcyLTU5LjcxMiA1OS4wNzIgNTkuNzEyIDU5LjA3MiA1OS43MTJ2NTkuNzc2aDQxMy41Njh2LTU5Ljc3NnMwLTU5LjcxMiA1OS4wNzItNTkuNzEyIDU5LjA3MiA1OS43MTIgNTkuMDcyIDU5LjcxMnY1OS43NzZzNTkuMDcyIDAgNTkuMDcyIDU5LjcxMlY2NjcuOTY4Qzg5NiA3OTAuMjA4IDgyMy4wNCA4MzIgNzQyLjQgODMyek0zMjAgNzQyLjRoMzg0YzguMTkyIDAgMTQuNzItNi42NTYgMTQuNzItMTQuOTEyIDAtOC4zMi02LjUyOC0xNC45NzYtMTQuNzItMTQuOTc2SDMyMGExNC44NDggMTQuODQ4IDAgMCAwLTE0LjcyIDE0Ljk3NmMwIDguMjU2IDYuNTI4IDE0LjkxMiAxNC43MiAxNC45MTJ6TTI0Ni4xNDQgNjUyLjhoNTMxLjcxMmM1OS4wNzIgMCA1OS4wNzItNTcuNzI4IDU5LjA3Mi01Ny43Mjh2LTE4MS4xODRzMC01OS43NzYtNTkuMDcyLTU5Ljc3NkgyNDYuMTQ0Yy01OS4wNzIgMC01OS4wNzIgNTkuNzc2LTU5LjA3MiA1OS43NzZ2MTc5LjJzMCA1OS43MTIgNTkuMDcyIDU5LjcxMnogbTAtNDE4LjExMmMzMi42NCAwIDU5LjA3Mi0yNi43NTIgNTkuMDcyLTU5Ljc3NnMtMjYuNDMyLTU5LjcxMi01OS4wNzItNTkuNzEyLTU5LjA3MiAyNi43NTItNTkuMDcyIDU5LjcxMiAyNi40MzIgNTkuNzc2IDU5LjA3MiA1OS43NzZ6IG01MzEuNzEyIDBjMzIuNjQgMCA1OS4wNzItMjYuNzUyIDU5LjA3Mi01OS43NzZzLTI2LjQzMi01OS43MTItNTkuMDcyLTU5LjcxMi01OS4wNzIgMjYuNzUyLTU5LjA3MiA1OS43MTIgMjYuNDMyIDU5Ljc3NiA1OS4wNzIgNTkuNzc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU4IiB1bmljb2RlPSImIzU5MDMzOyIgZD0iTTk2MCA0MTguODhhMTA0LjQ0OCAxMDQuNDQ4IDAgMCAxLTc5LjIzMiAxMDEuMjQ4bC05NS44MDggMjI2LjI0QTM0LjQzMiAzNC40MzIgMCAwIDEgNzUzLjIxNiA3NjhIMjcwLjc4NGEzNC40MzIgMzQuNDMyIDAgMCAxLTMwLjMzNi0xOS41MkwxNDMuMjMyIDUyMC44MzJBMTA0LjQ0OCAxMDQuNDQ4IDAgMCAxIDY0IDQxOC44OHYtMjQ0LjM1Mmg2OC45Mjh2LTY5Ljc2YzAtMzguNTkyIDMwLjg0OC02OS44ODggNjguOTI4LTY5Ljg4OHM2OC45MjggMzEuMjk2IDY4LjkyOCA2OS44MjR2NjkuODI0aDQ4Mi40MzJ2LTY5Ljc2YzAtMzguNTkyIDMwLjg0OC02OS44ODggNjguOTI4LTY5Ljg4OHM2OC45MjggMzEuMjk2IDY4LjkyOCA2OS44MjR2NjkuODI0SDk2MHpNMjkxLjQ1NiA2OTguMjRoNDQxLjA4OGw3Mi4zMi0xNzQuNTI4SDIxOS4xMzZ6IG0tODkuNi00MTguODhhNjkuMzc2IDY5LjM3NiAwIDAgMC02OC45MjggNjkuNzZjMCAzOC41OTIgMzAuODQ4IDY5LjgyNCA2OC45MjggNjkuODI0czY4LjkyOC0zMS4yMzIgNjguOTI4LTY5Ljc2YzAtMzguNTkyLTMwLjg0OC02OS44MjQtNjguOTI4LTY5LjgyNHogbTYyMC4yODggMGE2OS4zNzYgNjkuMzc2IDAgMCAwLTY4LjkyOCA2OS43NmMwIDM4LjU5MiAzMC44NDggNjkuODI0IDY4LjkyOCA2OS44MjRzNjguOTI4LTMxLjIzMiA2OC45MjgtNjkuNzZjMC0zOC41OTItMzAuODQ4LTY5LjgyNC02OC45MjgtNjkuODI0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU5IiB1bmljb2RlPSImIzU5MDM0OyIgZD0iTTI1NiA4MzJhNjQgNjQgMCAwIDEtNjQtNjR2LTUxMmE2NCA2NCAwIDAgMSA2NC02NGg1NzZhNjQgNjQgMCAwIDEgNjQgNjRWNzY4YTY0IDY0IDAgMCAxLTY0IDY0eiBtMTc2LTMyaDIyNC42NGExNiAxNiAwIDEgMCAwLTMySDQzMmExNiAxNiAwIDEgMCAwIDMyek0yODggNzA0SDUxMnYtMjU2SDI4OGEzMiAzMiAwIDAgMC0zMiAzMnYxOTJhMzIgMzIgMCAwIDAgMzIgMzJ6TTU3NiA3MDRoMjI0YTMyIDMyIDAgMCAwIDMyLTMydi0xOTJhMzIgMzIgMCAwIDAtMzItMzJINTc2ek0zODQgMzg0YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMCAwIDAgMTI4eiBtMzIwIDBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAwIDAgMCAxMjh6IG0yOC40OC0yNTUuNjE2YTMyLjI1NiAzMi4yNTYgMCAwIDEtMjcuMi00My4yNjRsMTAuODgtMjEuMTJIMzcxLjg0bDguMzIgMTcuMjhhMzIgMzIgMCAwIDEtNTguMjQgMjYuMjRsLTY0LTEyOGEzMS4xNjggMzEuMTY4IDAgMCAxLTEuOTItMTEuNTIgMzIgMzIgMCAwIDEgMzItMzIgMzEuMzYgMzEuMzYgMCAwIDEgMjcuNTIgMTYuNjR2My4ySDMyMGwxOS44NCA0NC4xNmg0MDguMzJsMTkuODQtNDQuMTZ2LTMuMmEzMS4zNiAzMS4zNiAwIDAgMSAyNy41Mi0xNi42NCAzMiAzMiAwIDAgMSAzMiAzMiAzMS4zNiAzMS4zNiAwIDAgMSAwIDE1LjM2bC02NCAxMjhhMzIgMzIgMCAwIDEtMzEuMDQgMTcuMDI0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Ik92YWwiIHVuaWNvZGU9IiYjNTkwMzU7IiBkPSJNNTEyIDM4NG0tMzIwIDBhMzIwIDMyMCAwIDEgMSA2NDAgMCAzMjAgMzIwIDAgMSAxLTY0MCAwWiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlJlY3RhbmdsZSIgdW5pY29kZT0iJiM1OTAzNjsiIGQ9Ik0xOTIgNzA0aDY0MHYtNjQwSDE5MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTdGFyIiB1bmljb2RlPSImIzU5MDM3OyIgZD0iTTUxMiAxNjBsLTI2My4yOTYtMTM4LjQzMiA1MC4yNCAyOTMuMTg0LTIxMi45OTIgMjA3LjY4IDI5NC40IDQyLjgxNkw1MTIgODMybDEzMS42NDgtMjY2Ljc1MiAyOTQuNC00Mi44MTYtMjEyLjk5Mi0yMDcuNjggNTAuMjQtMjkzLjE4NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJUcmlhbmdsZSIgdW5pY29kZT0iJiM1OTAzODsiIGQ9Ik01MTIgNzA0bDM4NC02NDBIMTI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InJlc3RvcmVkZWZhdWx0IiB1bmljb2RlPSImIzU5MDQwOyIgZD0iTTg4MC44Njc1NTYgMzI1LjQwNDQ0NGEzNzIuNTA4NDQ0IDM3Mi41MDg0NDQgMCAwIDAtMTk4LjcxMjg4OS0xOTYuNzc4NjY2Yy00Ni4wOC0xOS4zNDIyMjItOTQuNzItMjkuMDcwMjIyLTE0NS40NjQ4ODktMjkuMDcwMjIydjcxLjczNjg4OGMxNjUuNzE3MzMzIDAgMzAwLjk0MjIyMiAxMzMuNjg4ODg5IDMwMC45NDIyMjIgMjk4LjA0MDg4OXMtMTM0LjgyNjY2NyAyOTguMDQwODg5LTMwMC43MTQ2NjcgMjk4LjA0MDg4OWMtMTY1Ljg4OCAwLTMwMC44ODUzMzMtMTMzLjY4ODg4OS0zMDAuODg1MzMzLTI5OC4wNDA4ODkgMC0zMS40MDI2NjcgNC44MzU1NTYtNjIuMDA4ODg5IDE0LjM5Mjg4OS05MS4yNDk3NzdsNjguMjY2NjY3IDM3LjQzMjg4OC0yLjEwNDg4OS0xMTUuOTk2NDQ0LTIuMTA0ODg5LTExNS45OTY0NDQtMTAwLjM1MiA1OS43OTAyMjJMMTEzLjc3Nzc3OCAzMDMuMjE3Nzc4bDcyLjI0ODg4OSAzOS41OTQ2NjZBMzY0LjIwMjY2NyAzNjQuMjAyNjY3IDAgMCAwIDE2My42NjkzMzMgNDY5LjMzMzMzM2MwIDQ5Ljg5MTU1NiA5Ljg5ODY2NyA5OC4zNjA4ODkgMjkuMzU0NjY3IDE0My45Mjg4ODlBMzcyLjIyNCAzNzIuMjI0IDAgMCAwIDM5MS42MjMxMTEgODEwLjA5Nzc3OCAzNzQuMTAxMzMzIDM3NC4xMDEzMzMgMCAwIDAgNTM2LjkxNzMzMyA4MzkuMTExMTExYTM3NC4wNDQ0NDQgMzc0LjA0NDQ0NCAwIDAgMCAyNjMuOTY0NDQ1LTEwOC4zMTY0NDQgMzY4LjI5ODY2NyAzNjguMjk4NjY3IDAgMCAwIDc5Ljk4NTc3OC0xMTcuNTMyNDQ1YzE5LjUxMjg4OS00NS41NjggMjkuMzU0NjY3LTk0LjAzNzMzMyAyOS4zNTQ2NjYtMTQzLjkyODg4OXMtOS44OTg2NjctOTguMzYwODg5LTI5LjM1NDY2Ni0xNDMuOTI4ODg5ek05Ni43MTExMTEtMjUuNmg4MzAuNTc3Nzc4YTM5LjgyMjIyMiAzOS44MjIyMjIgMCAwIDAgMzkuODIyMjIyLTM5LjgyMjIyMnYtNS42ODg4ODlhMzkuODIyMjIyIDM5LjgyMjIyMiAwIDAgMC0zOS44MjIyMjItMzkuODIyMjIySDk2LjcxMTExMUEzOS44MjIyMjIgMzkuODIyMjIyIDAgMCAwIDU2Ljg4ODg4OS03MS4xMTExMTF2NS42ODg4ODlhMzkuODIyMjIyIDM5LjgyMjIyMiAwIDAgMCAzOS44MjIyMjIgMzkuODIyMjIyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InVwbG9hZGluZyIgdW5pY29kZT0iJiM1OTA0MTsiIGQ9Ik03ODQgMTE1LjJhNDguNDQ4IDQ4LjQ0OCAwIDAgMC00OCA0OC44OTZjMCAyNi45NDQgMjEuNTA0IDQ4LjgzMiA0OCA0OC44MzIgNzkuNTUyIDAgMTQ0IDY1LjY2NCAxNDQgMTQ2LjYyNGExNDcuMjY0IDE0Ny4yNjQgMCAwIDEtNTguMTc2IDExNy41MDRsLTAuNjQgMC41MTJhMTQ4LjY3MiAxNDguNjcyIDAgMCAxLTkuNiA2LjU5MmwtMS40NzIgMC45NmExNDYuODE2IDE0Ni44MTYgMCAwIDEtOS40NzIgNS4zMTJsLTIuNjg4IDEuMjhhMTUwLjcyIDE1MC43MiAwIDAgMS04Ljk2IDQuMDk2bC00LjAzMiAxLjQ3MmExNDcuMDA4IDE0Ny4wMDggMCAwIDEtOC4zMiAyLjg4Yy0xLjg1NiAwLjU3Ni0zLjcxMiAwLjk2LTUuNjMyIDEuNDcyLTIuNDMyIDAuNjQtNC44NjQgMS4yOC03LjI5NiAxLjc5Mi0yLjU2IDAuNTEyLTUuMjQ4IDAuODMyLTcuOTM2IDEuMjE2LTEuOTIgMC4yNTYtMy43NzYgMC42NC01LjY5NiAwLjgzMmExNDQuNTEyIDE0NC41MTIgMCAwIDEtMTQuMDggMC43MDRjLTEuNDcyIDAtMi45NDQtMC4xOTItNC40OC0wLjE5MmEyNzEuOTM2IDI3MS45MzYgMCAwIDEtNS40NCAyNC41NzZjLTAuNTEyIDEuOTg0LTEuMjggMy44NC0xLjg1NiA1LjgyNGEyNzQuMDQ4IDI3NC4wNDggMCAwIDEtNS43NiAxOC4xMTJjLTAuNjQgMS43OTItMS41MzYgMy41Mi0yLjE3NiA1LjMxMmEyOTQuNTI4IDI5NC41MjggMCAwIDEtNy42MTYgMTcuNzkyYy0wLjY0IDEuNDA4LTEuNDA4IDIuNzUyLTIuMTEyIDQuMDk2YTI4NC4yMjQgMjg0LjIyNCAwIDAgMS05LjYgMTcuOTJDNjk3LjUzNiA2ODAuMjU2IDYxMS4xMzYgNzM0LjI3MiA1MTIgNzM0LjI3MnMtMTg1LjQ3Mi01NC4wOC0yMzIuOTYtMTM0LjY1NmMtMy40NTYtNS44MjQtNi41OTItMTEuODQtOS42LTE3LjkyLTAuNjQtMS4zNDQtMS40NzItMi42ODgtMi4xMTItNC4wOTYtMi43NTItNS43Ni01LjI0OC0xMS43NzYtNy42MTYtMTcuNzkyLTAuNjQtMS43OTItMS40NzItMy41Mi0yLjExMi01LjMxMmEyNzQuMDQ4IDI3NC4wNDggMCAwIDEtNS44MjQtMTguMTEybC0xLjg1Ni01Ljc2YTI3MS40MjQgMjcxLjQyNCAwIDAgMS01LjQ0LTI0LjY0Yy0xLjUzNiAwLTMuMDA4IDAuMTkyLTQuNDggMC4xOTItNC44IDAtOS40NzItMC4yNTYtMTQuMDgtMC43MDQtMS45Mi0wLjE5Mi0zLjg0LTAuNTc2LTUuNzYtMC44MzItMi41Ni0wLjM4NC01LjI0OC0wLjcwNC03Ljg3Mi0xLjI4LTIuNDk2LTAuNDQ4LTQuODY0LTEuMDg4LTcuMjk2LTEuNzI4LTEuOTItMC41MTItMy44NC0wLjg5Ni01LjY5Ni0xLjQ3MmExNDcuMzkyIDE0Ny4zOTIgMCAwIDEtOC4zMi0yLjg4bC0zLjk2OC0xLjQ3MmMtMy4wNzItMS4yOC02LjA4LTIuNTYtOC45Ni00LjAzMmwtMi42ODgtMS4yOGMtMy4yLTEuNjY0LTYuNC0zLjQ1Ni05LjQwOC01LjM3NmwtMS41MzYtMC45NmExNTIuMDY0IDE1Mi4wNjQgMCAwIDEtOS42LTYuNTkybC0wLjY0LTAuNTEyQTE0Ny4zMjggMTQ3LjMyOCAwIDAgMSA5NiAzNTkuNTUyYzAtODAuOTYgNjQuNDQ4LTE0Ni41NiAxNDQtMTQ2LjU2IDI2LjQ5NiAwIDQ4LTIxLjk1MiA0OC00OC44OTZhNDguNDQ4IDQ4LjQ0OCAwIDAgMC00OC00OC44OTZDMTA3LjQ1NiAxMTUuMiAwIDIyNC42NCAwIDM1OS41NTJjMCAxMTAuMDggNzEuNTUyIDIwMy4xMzYgMTY5Ljg1NiAyMzMuNzI4QzIyMy4yMzIgNzMyLjggMzU1Ljk2OCA4MzIgNTEyIDgzMnMyODguNzY4LTk5LjIgMzQyLjIwOC0yMzguNzJDOTUyLjQ0OCA1NjIuNjg4IDEwMjQgNDY5LjYzMiAxMDI0IDM1OS41NTJjMC0xMzQuOTEyLTEwNy40NTYtMjQ0LjM1Mi0yNDAtMjQ0LjM1MnogbS00NTEuNjQ4IDExNC4xNzZ2MC4wNjRjMC4xMjggMCAwLjEyOCAwLjA2NCAwLjEyOCAwLjEyOEw0NzYuMzUyIDM5Mi4zMmwwLjEyOC0wLjEyOEE0Ny4zNiA0Ny4zNiAwIDAgMCA1MTIgNDA4LjQ0OGMxNC4xNDQgMCAyNi43NTItNi40IDM1LjU4NC0xNi4zMmwwLjA2NCAwLjEyOCAxNDMuODcyLTE2Mi42ODh2LTAuMDY0bDAuMTI4LTAuMTI4YzYuNzItNy42MTYgMTEuMTM2LTE3LjI4IDEyLjE2LTI4LjAzMnYtMC4xMjhhNDguNDQ4IDQ4LjQ0OCAwIDAgMC00Ny44MDgtNTMuNDRoLTEuNTM2bC0wLjk2IDAuMDY0LTEuMDI0IDAuMDY0LTEuNiAwLjE5MmgtMC41MTJsLTIuMTEyIDAuMzJhNDcuNjE2IDQ3LjYxNiAwIDAgMC0yNy45MDQgMTUuNTUybC02MC4zNTIgNjguMjI0di0yNDcuMjk2QTQ4LjQ0OCA0OC40NDggMCAwIDAgNTEyLTY0YTQ4LjQ0OCA0OC40NDggMCAwIDAtNDggNDguODk2djI0Ny4yOTZsLTYwLjM1Mi02OC4yMjRhNDcuNDI0IDQ3LjQyNCAwIDAgMC0yNy44NC0xNS40ODhjLTAuNzA0LTAuMTkyLTEuNDA4LTAuMjU2LTIuMTEyLTAuMzJhMTAuNjI0IDEwLjYyNCAwIDAgMC0wLjY0LTAuMDY0bC0xLjUzNi0wLjE5MkgzNzAuNTZsLTAuODk2LTAuMDY0SDM2OGE0Ny44NzIgNDcuODcyIDAgMCAwLTQyLjI0IDI1LjUzNiA0OS4yOCA0OS4yOCAwIDAgMCA2LjU5MiA1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJlcnJvciIgdW5pY29kZT0iJiM1OTAzOTsiIGQ9Ik01MTItMTI4QTUxMiA1MTIgMCAxIDAgNTEyIDg5NmE1MTIgNTEyIDAgMCAwIDAtMTAyNHogbTAgMjI3LjU4NEE1Ni45MTczMzMgNTYuOTE3MzMzIDAgMSAxIDUxMiAyMTMuMzMzMzMzYTU2LjkxNzMzMyA1Ni45MTczMzMgMCAwIDEgMC0xMTMuNzQ5MzMzeiBtMCA1NjguODMyYTU2LjkxNzMzMyA1Ni45MTczMzMgMCAwIDEtNTYuOTE3MzMzLTU2LjgzMnYtMjg0LjUwMTMzM2E1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxIDExMy44MzQ2NjYgMFY2MTEuNTg0QTU2LjkxNzMzMyA1Ni45MTczMzMgMCAwIDEgNTEyIDY2OC40MTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iem9vbWluIiB1bmljb2RlPSImIzU5MDQyOyIgZD0iTTU4NS4xNDI4NTcgNDU3LjE0Mjg1N2gzNjUuNzE0Mjg2di0xNDYuMjg1NzE0SDU4NS4xNDI4NTd2LTM2NS43MTQyODZINDM4Ljg1NzE0M1YzMTAuODU3MTQzSDczLjE0Mjg1N1Y0NTcuMTQyODU3aDM2NS43MTQyODZWODIyLjg1NzE0M2gxNDYuMjg1NzE0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Inpvb21vdXQiIHVuaWNvZGU9IiYjNTkwNDM7IiBkPSJNNzMuMTQyODU3IDQ1Ny4xNDI4NTdoODc3LjcxNDI4NnYtMTQ2LjI4NTcxNEg3My4xNDI4NTd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZmlyc3QiIHVuaWNvZGU9IiYjNTkwNDQ7IiBkPSJNMjg0LjQ0NDQ0NCA2MTEuNTU1NTU2aDU2Ljg4ODg4OXYtNTEySDI4NC40NDQ0NDR6IG00MjYuNDk2LTUxMS4zMTczMzRhMjkuNDExNTU2IDI5LjQxMTU1NiAwIDAgMC0xOC4yMDQ0NDQgNi40Mjg0NDVMNDEwLjYyNCAzMzMuNDgyNjY3YTI5LjEyNzExMSAyOS4xMjcxMTEgMCAwIDAgMCA0NS4zNDA0NDRsMjgwLjgwMzU1NiAyMjUuNjc4MjIyYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDAgMzYuNDA4ODg4LTQ1LjM0MDQ0NGwtMjUyLjU4NjY2Ni0yMDIuOTc5NTU2IDI1My44MzgyMjItMjA0LjIzMTExMWEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwLTE4LjIwNDQ0NC01MS43MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibmV4dCIgdW5pY29kZT0iJiM1OTA0NTsiIGQ9Ik0zNzAuNDAzNTU2IDEwMC45MjA4ODg5OTk5OTk5OWEyOS40MTE1NTYgMjkuNDExNTU2IDAgMCAxIDE4LjIwNDQ0NCA2LjQyODQ0NGwyODIuMDU1MTExIDIyNi44MTZhMjkuMTI3MTExIDI5LjEyNzExMSAwIDAgMSAwIDQ1LjM0MDQ0NUwzODkuODU5NTU2IDYwNS4xMjcxMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMS0zNi40MDg4ODktNDUuMjgzNTU1bDI1Mi41ODY2NjYtMjAyLjk3OTU1Ni0yNTMuODM4MjIyLTIwNC4yMzExMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMSAxOC4yMDQ0NDUtNTEuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Imxhc3QiIHVuaWNvZGU9IiYjNTkwNDY7IiBkPSJNNzA5LjUxODIyMiA2MTEuNTU1NTU2YTI4LjQ0NDQ0NCAyOC40NDQ0NDQgMCAwIDAgMjguNDQ0NDQ1LTI4LjQ0NDQ0NXYtNDU1LjExMTExMWEyOC40NDQ0NDQgMjguNDQ0NDQ0IDAgMSAwLTU2Ljg4ODg4OSAwdjQ1NS4xMTExMTFhMjguNDQ0NDQ0IDI4LjQ0NDQ0NCAwIDAgMCAyOC40NDQ0NDQgMjguNDQ0NDQ1eiBtLTM5NS45NDY2NjYtNTExLjMxNzMzNGEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwLTE4LjIwNDQ0NSA1MS43MTJsMjUzLjgzODIyMiAyMDQuMjMxMTExLTI1Mi41ODY2NjYgMjAyLjk3OTU1NmEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwIDM2LjM1MiA0NS4zNDA0NDRsMjgwLjgwMzU1NS0yMjUuNjc4MjIyYTI5LjAxMzMzMyAyOS4wMTMzMzMgMCAwIDAgMC00NS4zNDA0NDRsLTI4MS45OTgyMjItMjI2LjgxNmEyOS40MTE1NTYgMjkuNDExNTU2IDAgMCAwLTE4LjIwNDQ0NC02LjQyODQ0NXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwcmV2IiB1bmljb2RlPSImIzU5MDQ3OyIgZD0iTTY1Mi40NTg2NjcgMTAwLjkyMDg4ODk5OTk5OTk5YTI5LjQxMTU1NiAyOS40MTE1NTYgMCAwIDAtMTguMjA0NDQ1IDYuNDI4NDQ0TDM1Mi4xNDIyMjIgMzM0LjE2NTMzMzAwMDAwMDAzYTI5LjEyNzExMSAyOS4xMjcxMTEgMCAwIDAgMCA0NS4zNDA0NDVsMjgwLjgwMzU1NiAyMjUuNjIxMzMzYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDAgMzYuNDA4ODg5LTQ1LjI4MzU1NWwtMjUyLjU4NjY2Ny0yMDIuOTc5NTU2IDI1My44MzgyMjItMjA0LjIzMTExMWEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwLTE4LjIwNDQ0NC01MS43MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icG9pLWxvYWQiIHVuaWNvZGU9IiYjNTkwNDg7IiBkPSJNMjEyLjMzMzcxNCA1NjYuODU3MTQzaDQzOC4zNDUxNDNjMjEuOTQyODU3IDAgMzYuNTcxNDI5IDE0LjYyODU3MSAzNi41NzE0MjkgMzYuNTcxNDI4cy0xNC42Mjg1NzEgMzYuNTcxNDI5LTM2LjU3MTQyOSAzNi41NzE0MjlIMjEyLjMzMzcxNGMtMjEuOTQyODU3IDAtMzYuNTcxNDI5LTE0LjYyODU3MS0zNi41NzE0MjgtMzYuNTcxNDI5czE0LjYyODU3MS0zNi41NzE0MjkgMzYuNTcxNDI4LTM2LjU3MTQyOHpNNjg3LjI1MDI4NiAzODRjMCAyMS45NDI4NTctMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjkgMzYuNTcxNDI5SDIxMi4zMzM3MTRjLTIxLjk0Mjg1NyAwLTM2LjU3MTQyOS0xNC42Mjg1NzEtMzYuNTcxNDI4LTM2LjU3MTQyOXMxNC42Mjg1NzEtMzYuNTcxNDI5IDM2LjU3MTQyOC0zNi41NzE0MjloNDM4LjM0NTE0M2MyMS45NDI4NTcgMCAzNi41NzE0MjkgMTQuNjI4NTcxIDM2LjU3MTQyOSAzNi41NzE0Mjl6TTIxMi4zMzM3MTQgMjAxLjE0Mjg1N2MtMjEuOTQyODU3IDAtMzYuNTcxNDI5LTE0LjYyODU3MS0zNi41NzE0MjgtMzYuNTcxNDI4czE0LjYyODU3MS0zNi41NzE0MjkgMzYuNTcxNDI4LTM2LjU3MTQyOWgyNTUuNzA3NDI5YzIxLjk0Mjg1NyAwIDM2LjU3MTQyOSAxNC42Mjg1NzEgMzYuNTcxNDI4IDM2LjU3MTQyOXMtMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjggMzYuNTcxNDI4ek0xMDA4LjY0IDE1Ny4yNTcxNDNjLTE0LjU1NTQyOSAxNC42Mjg1NzEtMzYuNDk4Mjg2IDE0LjYyODU3MS01MS4wNTM3MTQgMGwtODAuNDU3MTQzLTgwLjQ1NzE0M1Y3NDkuNzE0Mjg2YzAgODAuNDU3MTQzLTY1LjY4MjI4NiAxNDYuMjg1NzE0LTE0Ni4wNjYyODYgMTQ2LjI4NTcxNEgxNDYuNTc4Mjg2QzY2LjE5NDI4NiA4OTYgMC40Mzg4NTcgODMwLjE3MTQyOSAwLjQzODg1NyA3NDkuNzE0Mjg2di03MzEuNDI4NTcyYzAtODAuNDU3MTQzIDY1LjgyODU3MS0xNDYuMjg1NzE0IDE0Ni4xMzk0MjktMTQ2LjI4NTcxNGg1MDQuMTAwNTcxYzIxLjk0Mjg1NyAwIDM2LjU3MTQyOSAxNC42Mjg1NzEgMzYuNTcxNDI5IDM2LjU3MTQyOXMtMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjkgMzYuNTcxNDI4SDE0Ni41NzgyODZjLTQzLjg4NTcxNCAwLTczLjA2OTcxNCAzNi41NzE0MjktNzMuMDY5NzE1IDczLjE0Mjg1N1Y3NDkuNzE0Mjg2YzAgNDMuODg1NzE0IDM2LjU3MTQyOSA3My4xNDI4NTcgNzMuMDY5NzE1IDczLjE0Mjg1N2g1ODQuNDg0NTcxYzQzLjg4NTcxNCAwIDczLjA2OTcxNC0yOS4yNTcxNDMgNzMuMDY5NzE0LTczLjE0Mjg1N3YtNjgwLjIyODU3MmwtODAuMzg0IDgwLjQ1NzE0M2MtMTQuNjI4NTcxIDE0LjYyODU3MS0zNi41NzE0MjkgMTQuNjI4NTcxLTUxLjEyNjg1NyAwLTE0LjYyODU3MS0xNC42Mjg1NzEtMTQuNjI4NTcxLTM2LjU3MTQyOSAwLTUxLjJsMTQ2LjEzOTQyOS0xNDYuMjg1NzE0czcuMzE0Mjg2LTcuMzE0Mjg2IDE0LjYyODU3MS03LjMxNDI4NmgyOS4yNTcxNDNjNy4yNDExNDMgMCA3LjI0MTE0MyA3LjMxNDI4NiAxNC41NTU0MjkgNy4zMTQyODZsMTQ2LjEzOTQyOCAxNDYuMjg1NzE0Yy03LjMxNDI4NiAxNC42Mjg1NzEtNy4zMTQyODYgNDMuODg1NzE0LTE0LjYyODU3MSA1OC41MTQyODZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icG9pLXNhdmUiIHVuaWNvZGU9IiYjNTkwNDk7IiBkPSJNODY3LjY5MzcxNCA4MjIuMjcySDIyOS40NDkxNDNjLTg2LjAxNiAwLTE1NS43OTQyODYtNjkuNzA1MTQzLTE1NS43OTQyODYtMTU1Ljc5NDI4NnYtNjM4LjY4MzQyOGMwLTg2LjA4OTE0MyA2OS43NzgyODYtMTU1Ljc5NDI4NiAxNTUuNzk0Mjg2LTE1NS43OTQyODZoNjM4LjI0NDU3MWM4Ni4wMTYgMCAxNTUuNzk0Mjg2IDY5LjcwNTE0MyAxNTUuNzk0Mjg2IDE1NS43OTQyODZWNjY2LjU1MDg1N2MwIDg2LjAxNi02OS43NzgyODYgMTU1Ljc5NDI4Ni0xNTUuNzk0Mjg2IDE1NS43OTQyODZ6IG0tNTg0Ljg1MDI4NS02OC4wMjI4NTdoNTMxLjQ1NnYtMjM3LjQ5NDg1N2MwLTMyLjEwOTcxNC0zMy4yMDY4NTctNTguMjIxNzE0LTc0LjAyMDU3Mi01OC4yMjE3MTVIMzU2Ljg2NGMtNDAuODEzNzE0IDAtNzQuMDIwNTcxIDI2LjExMi03NC4wMjA1NzEgNTguMjIxNzE1eiBtNjcyLjU0ODU3MS03MjUuOTQyODU3YzAtNDguNDkzNzE0LTM5LjIwNDU3MS04Ny42OTgyODYtODcuNzcxNDI5LTg3LjY5ODI4NkgyMjkuNTIyMjg2YTg3LjYyNTE0MyA4Ny42MjUxNDMgMCAwIDAtODcuNjk4Mjg2IDg3Ljc3MTQyOVY2NjYuNDc3NzE0YzAgNDMuNTIgMzEuNTk3NzE0IDc5LjUwNjI4NiA3Mi45OTY1NzEgODYuMDE2di0yMzYuMzI0NTcxYzAtNjkuNzA1MTQzIDYzLjcwNzQyOS0xMjYuMzE3NzE0IDE0Mi4xMTY1NzItMTI2LjMxNzcxNGgzODMuNDE0ODU3Yzc4LjQwOTE0MyAwIDE0Mi4xMTY1NzEgNTYuNjEyNTcxIDE0Mi4xMTY1NzEgMTI2LjMxNzcxNFY3NTMuMTUyYzQxLjM5ODg1Ny03LjA5NDg1NyA3Mi45OTY1NzEtNDMuMDgxMTQzIDcyLjk5NjU3Mi04Ni4wODkxNDN6TTcwNS45NzQ4NTcgNTA5LjczMjU3MWEzMy42NDU3MTQgMzMuNjQ1NzE0IDAgMCAxIDMzLjcxODg1NyAzMy43MTg4NThWNjYwLjU1MzE0M2EzMy42NDU3MTQgMzMuNjQ1NzE0IDAgMCAxLTMzLjcxODg1NyAzMy43OTIgMzQuMDg0NTcxIDM0LjA4NDU3MSAwIDAgMS0zNC4zNzcxNDMtMzMuNzkydi0xMTcuMDI4NTcyYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMzQuMzc3MTQzLTMzLjc5MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmb2xkIiB1bmljb2RlPSImIzU5MDUwOyIgZD0iTTUxMi0xMjhBNTEyIDUxMiAwIDEgMSA1MTIgODk2YTUxMiA1MTIgMCAwIDEgMC0xMDI0ek0yNzMuNTc4NjY3IDQyNC4yNzczMzNsMTk1LjQxMzMzMyAxNTguMjkzMzM0QTY3LjkyNTMzMyA2Ny45MjUzMzMgMCAwIDAgNTEyIDU5Ni45MDY2NjdjMTUuNTMwNjY3IDAgMzEuMTQ2NjY3LTQuNjkzMzMzIDQzLjAwOC0xNC4zMzZsMTk1LjQxMzMzMy0xNTguMjkzMzM0YzIzLjQ2NjY2Ny0xOS4xMTQ2NjcgMjMuNDY2NjY3LTUwLjAwNTMzMyAwLTY5LjEyYTcwLjU3MDY2NyA3MC41NzA2NjcgMCAwIDAtODUuMzMzMzMzIDBMNTEyIDQ3OS4yMzIgMzU4LjkxMiAzNTUuMTU3MzMzYTcwLjY1NiA3MC42NTYgMCAwIDAtODUuMzMzMzMzIDBjLTIzLjQ2NjY2NyAxOS4xMTQ2NjctMjMuNDY2NjY3IDUwLjAwNTMzMyAwIDY5LjEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImxhYmVsLWRlbGV0ZSIgdW5pY29kZT0iJiM1OTA1MTsiIGQ9Ik04NzQuMDY5MzMzIDgxNy4xNTJINjg5LjE1MmMwIDM1LjY2OTMzMy0yNy4wNTA2NjcgNzguNjc3MzMzLTYwLjU4NjY2NyA3OC42NzczMzNINDE2LjkzODY2N2MtMzMuNDUwNjY3IDAtNjAuNTg2NjY3LTQzLjAwOC02MC41ODY2NjctNzguNjc3MzMzSDE3MS41MmMtNDAuODc0NjY3IDAtODUuODQ1MzMzLTYuMjI5MzMzLTg1Ljg0NTMzMy00OC4wNDI2Njd2LTY0Ljc2OEg5MzguNjY2NjY3djY0Ljc2OGMwIDQxLjgxMzMzMy0yMy42MzczMzMgNDguMDQyNjY3LTY0LjUxMiA0OC4wNDI2Njd6TTE2MS4wMjQgNjI4LjY1MDY2N3YtNjE2LjM2MjY2N2MwLTYyLjYzNDY2NyA2MC4wNzQ2NjctMTM5LjA5MzMzMyAxMjEuMzQ0LTEzOS4wOTMzMzNoNDgwLjc2OGM2MS4yNjkzMzMgMCAxMDEuNDYxMzMzIDc2LjQ1ODY2NyAxMDEuNDYxMzMzIDEzOS4wOTMzMzNWNjI4LjY1MDY2N3ogbTIwMi4wNjkzMzMtNjI5LjI0OGgtNzQuMDY5MzMzVjU0NC44NTMzMzNoNzQuMDY5MzMzeiBtMTg1LjM0NCAwSDQ3NC40NTMzMzNWNTQ0Ljg1MzMzM2g3My45ODR6IG0xODUuNDI5MzM0IDBoLTc0LjA2OTMzNFY1NDQuODUzMzMzSDczMy44NjY2Njd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idXBsb2FkIiB1bmljb2RlPSImIzU5MDUyOyIgZD0iTTk1Mi4wMjc0MjkgNzYuOGMtMzIuMTgyODU3IDAtNTguMjk0ODU3IDI1LjAxNDg1Ny01OC4yOTQ4NTggNTUuODgxMTQzIDAgMzAuNzkzMTQzIDI2LjExMiA1NS44MDggNTguMjk0ODU4IDU1LjgwOCA5Ni41NDg1NzEgMCAxNzQuODExNDI5IDc1LjA0NDU3MSAxNzQuODExNDI4IDE2Ny41NzAyODZhMTY0LjEzMjU3MSAxNjQuMTMyNTcxIDAgMCAxLTcwLjU4Mjg1NyAxMzQuMjkwMjg1bC0wLjczMTQyOSAwLjU4NTE0M2ExODEuMzk0Mjg2IDE4MS4zOTQyODYgMCAwIDEtMTEuNzAyODU3IDcuNTMzNzE0bC0xLjkwMTcxNCAxLjA5NzE0M2ExODEuNjEzNzE0IDE4MS42MTM3MTQgMCAwIDEtMTEuNDEwMjg2IDYuMDcwODU3bC0zLjIxODI4NSAxLjQ2Mjg1OGExODguODU0ODU3IDE4OC44NTQ4NTcgMCAwIDEtMTAuOTcxNDI5IDQuNjgxMTQybC00LjgyNzQyOSAxLjY4MjI4NmExODYuMjIxNzE0IDE4Ni4yMjE3MTQgMCAwIDEtMTAuMDkzNzE0IDMuMjkxNDI5Yy0yLjI2NzQyOSAwLjY1ODI4Ni00LjYwOCAxLjA5NzE0My02Ljg3NTQyOCAxLjY4MjI4NS0yLjkyNTcxNCAwLjczMTQyOS01Ljg1MTQyOSAxLjQ2Mjg1Ny04Ljg1MDI4NiAyLjA0OC0zLjIxODI4NiAwLjU4NTE0My02LjQzNjU3MSAwLjk1MDg1Ny05LjY1NDg1NyAxLjM4OTcxNS0yLjI2NzQyOSAwLjI5MjU3MS00LjUzNDg1NyAwLjczMTQyOS02Ljg3NTQyOSAwLjk1MDg1N2ExODYuMzY4IDE4Ni4zNjggMCAwIDEtMTcuMTE1NDI4IDAuODA0NTcxYy0xLjgyODU3MSAwLTMuNjU3MTQzLTAuMjE5NDI5LTUuNDEyNTcyLTAuMjE5NDI4YTI5NS4yMDQ1NzEgMjk1LjIwNDU3MSAwIDAgMS02LjY1NiAyOC4wODY4NTdjLTAuNjU4Mjg2IDIuMjY3NDI5LTEuNDYyODU3IDQuMzg4NTcxLTIuMTk0Mjg2IDYuNjU2LTIuMTk0Mjg2IDcuMDIxNzE0LTQuMzg4NTcxIDEzLjg5NzE0My03LjA5NDg1NyAyMC42OTk0MjgtMC44MDQ1NzEgMi4wNDgtMS44Mjg1NzEgNC4wMjI4NTctMi42MzMxNDMgNi4wNzA4NThhMzI2LjIxNzE0MyAzMjYuMjE3MTQzIDAgMCAxLTkuMjE2IDIwLjMzMzcxNGMtMC43MzE0MjkgMS42MDkxNDMtMS43NTU0MjkgMy4xNDUxNDMtMi41NiA0LjY4MTE0M2EzMTguOTc2IDMxOC45NzYgMCAwIDEtMTEuNjI5NzE0IDIwLjQ4Yy01Ny42MzY1NzEgOTIuMTYtMTYyLjY2OTcxNCAxNTMuODkyNTcxLTI4Mi45MTY1NzEgMTUzLjg5MjU3MS0xMjAuMzIgMC0yMjUuMjgtNjEuODA1NzE0LTI4Mi45MTY1NzItMTUzLjg5MjU3MS00LjE2OTE0My02LjY1Ni03Ljk3MjU3MS0xMy41MzE0MjktMTEuNzAyODU3LTIwLjQ4LTAuNzMxNDI5LTEuNTM2LTEuNjgyMjg2LTMuMDcyLTIuNDg2ODU3LTQuNjgxMTQzYTMxNi43MDg1NzEgMzE2LjcwODU3MSAwIDAgMS05LjIxNi0yMC4zMzM3MTRjLTAuODA0NTcxLTIuMDQ4LTEuODI4NTcxLTQuMDIyODU3LTIuNjMzMTQzLTYuMDcwODU4YTMwMC4xMDUxNDMgMzAwLjEwNTE0MyAwIDAgMS03LjA5NDg1Ny0yMC42OTk0MjhsLTIuMTk0Mjg2LTYuNTgyODU3YTI5NC42MTk0MjkgMjk0LjYxOTQyOSAwIDAgMS02LjU4Mjg1Ny0yOC4xNmMtMS45MDE3MTQgMC0zLjY1NzE0MyAwLjIxOTQyOS01LjQ4NTcxNCAwLjIxOTQyOC01Ljc3ODI4NiAwLTExLjQ4MzQyOS0wLjI5MjU3MS0xNy4xMTU0MjktMC44MDQ1NzEtMi4zNDA1NzEtMC4yMTk0MjktNC42MDgtMC42NTgyODYtNi44NzU0MjgtMC45NTA4NTctMy4yMTgyODYtMC40Mzg4NTctNi40MzY1NzEtMC44MDQ1NzEtOS42NTQ4NTctMS40NjI4NTctMi45MjU3MTQtMC41MTItNS44NTE0MjktMS4yNDM0MjktOC43NzcxNDMtMS45NzQ4NTgtMi4zNDA1NzEtMC41ODUxNDMtNC42ODExNDMtMS4wMjQtNi45NDg1NzItMS42ODIyODVhMTg2LjY2MDU3MSAxODYuNjYwNTcxIDAgMCAxLTEwLjA5MzcxNC0zLjI5MTQyOWwtNC45MDA1NzEtMS42ODIyODZjLTMuNjU3MTQzLTEuNDYyODU3LTcuMzE0Mjg2LTIuOTI1NzE0LTEwLjg5ODI4Ni00LjYwOGwtMy4yMTgyODYtMS40NjI4NTdhMTczLjg2MDU3MSAxNzMuODYwNTcxIDAgMCAxLTExLjQxMDI4Ni02LjE0NGwtMS45MDE3MTQtMS4wOTcxNDNhMTg1LjU2MzQyOSAxODUuNTYzNDI5IDAgMCAxLTExLjcwMjg1Ny03LjUzMzcxNGwtMC43MzE0MjktMC41ODUxNDNhMTY0LjIwNTcxNCAxNjQuMjA1NzE0IDAgMCAxLTcwLjU4Mjg1Ny0xMzQuMjkwMjg1YzAtOTIuNTI1NzE0IDc4LjI2Mjg1Ny0xNjcuNDk3MTQzIDE3NC44MTE0MjktMTY3LjQ5NzE0MyAzMi4xODI4NTcgMCA1OC4yOTQ4NTctMjUuMDg4IDU4LjI5NDg1Ny01NS44ODExNDMgMC0zMC44NjYyODYtMjYuMTEyLTU1Ljg4MTE0My01OC4yOTQ4NTctNTUuODgxMTQzQzEzMC40ODY4NTcgNzYuOCAwIDIwMS44NzQyODYgMCAzNTYuMDU5NDI5YzAgMTI1LjgwNTcxNCA4Ni44MjA1NzEgMjMyLjE1NTQyOSAyMDYuMjYyODU3IDI2Ny4xMTc3MTRDMjcwLjk5NDI4NiA3ODIuNjI4NTcxIDQzMi4yNzQyODYgODk2IDYyMS43MTQyODYgODk2czM1MC42NDY4NTctMTEzLjM3MTQyOSA0MTUuNTI0NTcxLTI3Mi44MjI4NTdDMTE1Ni42MDggNTg4LjIxNDg1NyAxMjQzLjQyODU3MSA0ODEuODY1MTQzIDEyNDMuNDI4NTcxIDM1Ni4wNTk0MjljMC0xNTQuMTg1MTQzLTEzMC40ODY4NTctMjc5LjI1OTQyOS0yOTEuNDAxMTQyLTI3OS4yNTk0Mjl6TTQwMy41MjkxNDMgMjA3LjI4Njg1N2wwLjA3MzE0MyAwLjA3MzE0MyAwLjE0NjI4NSAwLjE0NjI4Nkw1NzguNDEzNzE0IDM5My41MDg1NzFsMC4xNDYyODYtMC4xNDYyODVhNTkuMDk5NDI5IDU5LjA5OTQyOSAwIDAgMCA4Ni4zMDg1NzEgMGwwLjE0NjI4NiAwLjE0NjI4NSAxNzQuNjY1MTQzLTE4NS45MjkxNDJ2LTAuMDczMTQzbDAuMjE5NDI5LTAuMTQ2Mjg2YzguMTE4ODU3LTguNzA0IDEzLjQ1ODI4Ni0xOS43NDg1NzEgMTQuNjI4NTcxLTMyLjAzNjU3MXYtMC4xNDYyODZhNDguNDIwNTcxIDQ4LjQyMDU3MSAwIDAgMCAwLjM2NTcxNC01LjEyYzAtMzAuOTM5NDI5LTI2LjExMi01NS45NTQyODYtNTguMjk0ODU3LTU1Ljk1NDI4NmgtMS45MDE3MTRsLTEuMTcwMjg2IDAuMDczMTQzLTEuMjQzNDI4IDAuMDczMTQzLTEuOTAxNzE1IDAuMjE5NDI4aC0wLjczMTQyOGwtMi40ODY4NTcgMC4zNjU3MTVhNTguODA2ODU3IDU4LjgwNjg1NyAwIDAgMC0zMy45MzgyODYgMTcuNzczNzE0TDY4MC4wMDkxNDMgMjEwLjUwNTE0M3YtMjgyLjYyNGMwLTMwLjg2NjI4Ni0yNi4xMTItNTUuODgxMTQzLTU4LjI5NDg1Ny01NS44ODExNDMtMzIuMTgyODU3IDAtNTguMjk0ODU3IDI1LjAxNDg1Ny01OC4yOTQ4NTcgNTUuODgxMTQzVjIxMC41MDUxNDNsLTczLjIxNi03Ny45NzAyODZhNTguNTg3NDI5IDU4LjU4NzQyOSAwIDAgMC0zMy44NjUxNDMtMTcuNzAwNTcxYy0wLjg3NzcxNC0wLjIxOTQyOS0xLjY4MjI4Ni0wLjI5MjU3MS0yLjU2LTAuMzY1NzE1YTEzLjY3NzcxNCAxMy42Nzc3MTQgMCAwIDAtMC43MzE0MjktMC4wNzMxNDJsLTEuOTAxNzE0LTAuMjE5NDI5aC0xLjI0MzQyOWwtMS4wOTcxNDMtMC4wNzMxNDNoLTEuOTc0ODU3YTU4LjY2MDU3MSA1OC42NjA1NzEgMCAwIDAtNTEuMiAyOS4xODQgNTMuNjg2ODU3IDUzLjY4Njg1NyAwIDAgMCA3Ljg5OTQyOSA2NHoiICBob3Jpei1hZHYteD0iMTI0MyIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ1bmZvbGQiIHVuaWNvZGU9IiYjNTkwNTM7IiBkPSJNNTEyIDg5NmE1MTIgNTEyIDAgMSAwIDAtMTAyNEE1MTIgNTEyIDAgMCAwIDUxMiA4OTZ6TTI3My41Nzg2NjcgMzQzLjcyMjY2N2wxOTUuNDEzMzMzLTE1OC4yOTMzMzRBNjcuOTI1MzMzIDY3LjkyNTMzMyAwIDAgMSA1MTIgMTcxLjA5MzMzM2E2OC4wMTA2NjcgNjguMDEwNjY3IDAgMCAxIDQzLjAwOCAxNC4zMzZsMTk1LjQxMzMzMyAxNTguMjkzMzM0YzIzLjQ2NjY2NyAxOS4xMTQ2NjcgMjMuNDY2NjY3IDUwLjAwNTMzMyAwIDY5LjEyYTcwLjU3MDY2NyA3MC41NzA2NjcgMCAwIDEtODUuMzMzMzMzIDBMNTEyIDI4OC43NjggMzU4LjkxMiA0MTIuODQyNjY3YTcwLjY1NiA3MC42NTYgMCAwIDEtODUuMzMzMzMzIDBjLTIzLjQ2NjY2Ny0xOS4xMTQ2NjctMjMuNDY2NjY3LTUwLjAwNTMzMyAwLTY5LjEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImNsb3NlIiB1bmljb2RlPSImIzU5MDU0OyIgZD0iTTY0MS4zNjUzMzMgMzg0bDM1NS40MTMzMzQtMzU1LjMyOGMzNi4wMTA2NjctMzYuMDEwNjY3IDM2LjQzNzMzMy05My44NjY2NjcgMC40MjY2NjYtMTI5Ljg3NzMzM2E5MS43MzMzMzMgOTEuNzMzMzMzIDAgMCAwLTEyOS44NzczMzMgMC40MjY2NjZMNTEyIDI1NC42MzQ2NjdsLTM1NS4zMjgtMzU1LjQxMzMzNGMtMzYuMDEwNjY3LTM2LjAxMDY2Ny05My44NjY2NjctMzYuNDM3MzMzLTEyOS44NzczMzMtMC40MjY2NjZhOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMCAwLjQyNjY2NiAxMjkuODc3MzMzTDM4Mi42MzQ2NjcgMzg0IDI3LjIyMTMzMyA3MzkuMzI4QTkxLjY0OCA5MS42NDggMCAwIDAgMjYuNzk0NjY3IDg2OS4yMDUzMzNhOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMCAxMjkuODc3MzMzLTAuNDI2NjY2TDUxMiA1MTMuMzY1MzMzIDg2Ny4zMjggODY4Ljc3ODY2N2E5MS42NDggOTEuNjQ4IDAgMCAwIDEyOS44NzczMzMgMC40MjY2NjYgOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMC0wLjQyNjY2Ni0xMjkuODc3MzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Im1hcmsiIHVuaWNvZGU9IiYjNTkwNTU7IiBkPSJNMjU2IDE4LjY1MTQyOWE1MS4zNDYyODYgNTEuMzQ2Mjg2IDAgMCAwLTQ0LjM5NzcxNCAyNS4zODA1NzFMNy42OCAzOTQuMzg2Mjg2Yy0xNC4xMTY1NzEgMjQuMTM3MTQzLTUuNDg1NzE0IDU0Ljg1NzE0MyAxOS4wMTcxNDMgNjguNjgxMTQzczU1Ljg4MTE0MyA1LjQxMjU3MSA2OS45MjQ1NzEtMTguNzI0NTcybDE3MC40OTYtMjkzLjE1NjU3MSA2MjguNTE2NTcyIDYxOS4xNTQyODVhNTEuOTMxNDI5IDUxLjkzMTQyOSAwIDAgMCA3Mi40MTE0MjggMC4wNzMxNDMgNDkuNzM3MTQzIDQ5LjczNzE0MyAwIDAgMCAwLjE0NjI4Ni03MS4xNjhMMjk0LjYxOTQyOSAzNS44NGwtMi40MTM3MTUtMi40MTM3MTRhNTEuNjM4ODU3IDUxLjYzODg1NyAwIDAgMC0zNi4yMDU3MTQtMTQuNjI4NTcyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InRyYWZmaWMiIHVuaWNvZGU9IiYjNTkwNTY7IiBkPSJNNTEyIDY5MS4yYy04NC44Mzg0IDAtMTUzLjYtNDkuNjY0LTE1My42LTExMC45NTA0di00NDMuNjk5MkMzNTguNCA3NS4yNjQgNDI3LjE2MTYgMjUuNiA1MTIgMjUuNnMxNTMuNiA0OS42NjQgMTUzLjYgMTEwLjk1MDRWNTgwLjI0OTZDNjY1LjYgNjQxLjUzNiA1OTYuODM4NCA2OTEuMiA1MTIgNjkxLjJ6IG0wIDEwMi40YzE0MS4zNjMyIDAgMjU2LTk3LjQzMzYgMjU2LTIxNy42di00MzUuMmMwLTEyMC4xNjY0LTExNC42MzY4LTIxNy42LTI1Ni0yMTcuNnMtMjU2IDk3LjQzMzYtMjU2IDIxNy42djQzNS4yQzI1NiA2OTYuMTY2NCAzNzAuNjM2OCA3OTMuNiA1MTIgNzkzLjZ6TTUxMiA1NjMuMm0tNzYuOCAwYTc2LjggNzYuOCAwIDEgMSAxNTMuNiAwIDc2LjggNzYuOCAwIDEgMS0xNTMuNiAwWk01MTIgMzU4LjRtLTc2LjggMGE3Ni44IDc2LjggMCAxIDEgMTUzLjYgMCA3Ni44IDc2LjggMCAxIDEtMTUzLjYgMFpNNTEyIDE1My42bS03Ni44IDBhNzYuOCA3Ni44IDAgMSAxIDE1My42IDAgNzYuOCA3Ni44IDAgMSAxLTE1My42IDBaIiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZnVsbC1maWd1cmUiIHVuaWNvZGU9IiYjNTkwNTc7IiBkPSJNMjYwLjYwOCA2NDBDMjI5LjgzNjggNjQwIDIwNC44IDYxNC41NTM2IDIwNC44IDU4My4xMTY4di0zOTguMjMzNkMyMDQuOCAxNTMuNDQ2NCAyMjkuNzg1NiAxMjggMjYwLjYwOCAxMjhoNTAyLjc4NGMzMC44MjI0IDAgNTUuODA4IDI1LjQ0NjQgNTUuODA4IDU2Ljg4MzJWNTgzLjE2OEM4MTkuMiA2MTQuNTUzNiA3OTQuMjE0NCA2NDAgNzYzLjM5MiA2NDB6IG01LjYzMiAxMDIuNGg0OTEuNTJDODQ4LjIzMDQgNzQyLjQgOTIxLjYgNjY4LjM2NDggOTIxLjYgNTc3LjAyNHYtMzg2LjA0OGMwLTkxLjM0MDgtNzMuMzY5Ni0xNjUuMzc2LTE2My44NC0xNjUuMzc2SDI2Ni4yNEMxNzUuNzY5NiAyNS42IDEwMi40IDk5LjYzNTIgMTAyLjQgMTkwLjk3NlY1NzcuMDI0QzEwMi40IDY2OC4zMTM2IDE3NS43Njk2IDc0Mi40IDI2Ni4yNCA3NDIuNHpNMzIzLjg5MTIgNDE4LjY2MjRhMzUuODQgMzUuODQgMCAwIDAtMzUuODQgMzUuNDMwNFY1MjUuMDA0OGEzNS44NCAzNS44NCAwIDAgMCAzNS44NCAzNS40MzA0bDcxLjY4LTAuNjE0NGMxOS42MDk2IDAgMzUuNzg4OC0xNS4zNiAzNS43ODg4LTM0LjgxNnMtMTYuMTc5Mi0zNS40MzA0LTM1Ljg0LTM1LjQzMDRoLTM1Ljg0di0zNS40ODE2YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljc4ODgtMzUuNDMwNHogbTcxLjY4LTIxMi42ODQ4aC03MS42OGEzNS44NCAzNS44NCAwIDAgMC0zNS44NCAzNS40ODE2VjMxMi4zMmEzNS44NCAzNS44NCAwIDAgMCA3MS42OCAwdi0zNS40MzA0aDM1Ljg0YzE5LjYwOTYgMCAzNS43ODg4LTE2LjAyNTYgMzUuNzg4OC0zNS40MzA0cy0xNi4xNzkyLTM1LjQ4MTYtMzUuODQtMzUuNDgxNnogbTMxMC4zNzQ0IDIxMi42ODQ4YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljg0IDM1LjQzMDR2MzUuNDgxNmgtMzUuNzg4OGMtMTkuNjYwOCAwLTM1Ljg0IDE1Ljk3NDQtMzUuODQgMzUuNDMwNHMxNi4xNzkyIDM1LjQzMDQgMzUuODQgMzUuNDMwNGg3MS42OGEzNS44NCAzNS44NCAwIDAgMCAzNS43ODg4LTM1LjQzMDR2LTcwLjkxMmEzNS44NCAzNS44NCAwIDAgMC0zNS44NC0zNS40MzA0eiBtMC0yMTIuNjg0OEg2MzQuMzY4Yy0xOS42NjA4IDAtMzUuODQgMTYuMDI1Ni0zNS44NCAzNS40ODE2czE2LjE3OTIgMzUuNDMwNCAzNS44NCAzNS40MzA0aDM1Ljg0VjMxMi4zMmEzNS44NCAzNS44NCAwIDAgMCA3MS42Mjg4IDB2LTcwLjg2MDhhMzUuODQgMzUuODQgMCAwIDAtMzUuODQtMzUuNDgxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtZWFzdXJlIiB1bmljb2RlPSImIzU5MDU4OyIgZD0iTTEyOS4xMjY0IDIwMy4wMDhhMTAyLjI5NzYgMTAyLjI5NzYgMCAwIDAtMC4yMDQ4IDE0NC41ODg4bDQzNC44NDE2IDQzNC44NDE2YTEwMS45OTA0IDEwMS45OTA0IDAgMCAwIDE0NC41ODg4LTAuMjA0OGwyMTcuMjQxNi0yMTcuMjQxNmMzOS45ODcyLTM5LjkzNiA0MC4wMzg0LTEwNC43NTUyIDAuMjA0OC0xNDQuNTg4OEw0OTEuMDA4LTE0LjQzODRhMTAxLjk5MDQgMTAxLjk5MDQgMCAwIDAtMTQ0LjU4ODggMC4yMDQ4eiBtMTA4LjI4OCAzNi41MDU2bDE0NS40NTkyLTE0NS40NTkyYTUxLjI1MTIgNTEuMjUxMiAwIDAgMSA3Mi4xOTIgMC40MDk2bDM2MS44MzA0IDM2MS44MzA0YTUxLjI1MTIgNTEuMjUxMiAwIDAgMSAwLjQwOTYgNzIuMTkybC0xNDUuNDU5MiAxNDUuNDU5MmE1MS4yNTEyIDUxLjI1MTIgMCAwIDEtNzIuMTkyLTAuNDA5NmwtMzYxLjgzMDQtMzYxLjgzMDRhNTEuMjUxMiA1MS4yNTEyIDAgMCAxLTAuNDA5Ni03Mi4xOTJ6TTI0Ny45NjE2IDMyNi45NjMybDM2LjE5ODQgMzYuMTk4NCAxMDguNjQ2NC0xMDguNTk1Mi0zNi4yNDk2LTM2LjI0OTZ6TTMyMC4zNTg0IDM5OS4zNmwzNi4xOTg0IDM2LjE5ODQgMTQ0Ljg0NDgtMTQ0Ljc5MzYtMzYuMTk4NC0zNi4xOTg0eiBtNzIuNDQ4IDcyLjM5NjhsMzYuMTk4NCAzNi4xOTg0TDUzNy42IDM5OS4zNmwtMzYuMTk4NC0zNi4xOTg0ek01MzcuNiA2MTYuNjAxNmwzNi4xOTg0IDM2LjE5ODQgMTA4LjU5NTItMTA4LjY0NjQtMzYuMTk4NC0zNi4xOTg0ek00NjUuMjAzMiA1NDQuMTUzNmwzNi4xOTg0IDM2LjI0OTYgMTQ0Ljc5MzYtMTQ0Ljg0NDgtMzYuMTk4NC0zNi4xOTg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImRpc3BsYXktbGlzdCIgdW5pY29kZT0iJiM1OTA1OTsiIGQ9Ik0wIDc5LjI3NDY2N2gyNTZWLTQyLjY2NjY2N0gweiBtMzg0IDBoMjU2Vi00Mi42NjY2NjdoLTI1NnogbTM4NCAwaDI1NlYtNDIuNjY2NjY3SDc2OHpNMCAzMjMuMDcyaDI1NnYtMTIxLjk0MTMzM0gweiBtMzg0IDBoMjU2di0xMjEuOTQxMzMzaC0yNTZ6IG0zODQgMGgyNTZ2LTEyMS45NDEzMzNINzY4ek01MTIgNjg4LjY0TDAgNDQ0LjkyOFY1NjYuODY5MzMzTDUxMiA4MTAuNjY2NjY3eiBtNTEyLTI0My43OTczMzNMNTEyIDY4OC43MjUzMzNWODEwLjY2NjY2N2w1MTItMjQzLjc5NzMzNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJoaWRlLWxpc3QiIHVuaWNvZGU9IiYjNTkwNjA7IiBkPSJNMCA2ODguNzI1MzMzaDI1NlY4MTAuNjY2NjY3SDB6IG0zODQgMGgyNTZWODEwLjY2NjY2N2gtMjU2eiBtMzg0IDBoMjU2VjgxMC42NjY2NjdINzY4ek0wIDQ0NC45MjhoMjU2VjU2Ni44NjkzMzNIMHogbTM4NCAwaDI1NlY1NjYuODY5MzMzaC0yNTZ6IG0zODQgMGgyNTZWNTY2Ljg2OTMzM0g3Njh6TTUxMiA3OS4zNkwwIDMyMy4wNzJ2LTEyMS45NDEzMzNMNTEyLTQyLjY2NjY2N3ogbTUxMiAyNDMuNzk3MzMzTDUxMiA3OS4yNzQ2NjdWLTQyLjY2NjY2N2w1MTIgMjQzLjc5NzMzNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyZW5hbWUiIHVuaWNvZGU9IiYjNTkwNjE7IiBkPSJNOTYwIDY4Mi42NjY2NjdoLTk5LjU4NHYtOTkuNTg0aDQ5LjgzNDY2N3YtMzk4LjE2NTMzNGgtNDkuODM0NjY3Vjg1LjMzMzMzM2g5OS41ODRhNDkuNzQ5MzMzIDQ5Ljc0OTMzMyAwIDAgMSA0OS43NDkzMzMgNDkuNzQ5MzM0VjYzMi45MTczMzNhNDkuNzQ5MzMzIDQ5Ljc0OTMzMyAwIDAgMS00OS43NDkzMzMgNDkuNzQ5MzM0eiBtLTg5Ni01OTcuMzMzMzM0aDQ5Ny43NDkzMzNWMTg0LjkxNzMzM2gtNDQ4VjU4My4wODI2NjdoNDQ4VjY4Mi42NjY2NjdINjRhNDkuNzQ5MzMzIDQ5Ljc0OTMzMyAwIDAgMS00OS43NDkzMzMtNDkuNzQ5MzM0di00OTcuODM0NjY2YzAtMjcuNDc3MzMzIDIyLjE4NjY2Ny00OS43NDkzMzMgNDkuNzQ5MzMzLTQ5Ljc0OTMzNHpNMjEzLjMzMzMzMyA0ODMuNTg0aDM0OC40MTZ2LTE5OS4xNjhIMjEzLjMzMzMzM3pNNzYwLjkxNzMzMyA2ODEuNDcyYzAuNTk3MzMzIDE2LjgxMDY2NyAxMC45MjI2NjcgMTAwLjY5MzMzMyAxNDkuMzMzMzM0IDEwMC42OTMzMzNWODgxLjgzNDY2N2MtOTguOTAxMzMzIDAtMTYxLjI4LTMzLjI4LTE5OC44MjY2NjctNzUuMTc4NjY3QzY3NC4xMzMzMzMgODQ4LjM4NCA2MTEuNTg0IDg4MS43NDkzMzMgNTEyIDg4MS43NDkzMzN2LTk5LjQ5ODY2NmMxMzkuMzQ5MzMzIDAgMTQ4LjgyMTMzMy04My42MjY2NjcgMTQ5LjMzMzMzMy05OS41ODR2LTU5Ny4yNDhjMC00LjA5Ni0xLjg3NzMzMy05OS42NjkzMzMtMTQ5LjMzMzMzMy05OS42NjkzMzR2LTk5LjQ5ODY2NmM5OS42NjkzMzMgMCAxNjIuMTMzMzMzIDMzLjQ1MDY2NyAxOTkuNjggNzUuNTIgMi4zODkzMzMtMi43MzA2NjcgNC4zNTItNS41NDY2NjcgNy4wODI2NjctOC4yNzczMzQgNDQuNDU4NjY3LTQ0LjYyOTMzMyAxMDguODg1MzMzLTY3LjI0MjY2NyAxOTEuNDg4LTY3LjI0MjY2NnY5OS40OTg2NjZjLTEzOS41MiAwLTE0OC45MDY2NjcgODMuNDU2LTE0OS4zMzMzMzQgOTkuNDk4NjY3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImNvcHkiIHVuaWNvZGU9IiYjNTkwNjI7IiBkPSJNNjM5Ljg3MiA2MzkuNjhIMTkyLjM4NGMtMzUuMiAwLTYzLjg3Mi0yOC44LTYzLjg3Mi02My44NzJ2LTU3NS4zNmMwLTM1LjIgMjguOC02NCA2My44NzItNjRoNDQ3LjQ4OGMzNS4yIDAgNjMuOTM2IDI4LjggNjMuOTM2IDY0djU3NS4zNmMwIDM1LjA3Mi0yOC44IDYzLjg3Mi02My45MzYgNjMuODcyeiBtMC02MzkuMjk2SDE5Mi4zODR2NTc1LjM2aDQ0Ny40ODh2LTU3NS4zNnogbTE5MS43NDQgODMxLjEwNEgzODQuMTI4Yy0zNS4yIDAtNjMuOTM2LTI4LjgtNjMuOTM2LTYzLjg3MnYtNjMuOTM2aDYzLjkzNnY2My45MzZoNDQ3LjQ4OHYtNTc1LjM2aC02My45MzZ2LTY0aDYzLjkzNmMzNS4yIDAgNjMuODcyIDI4LjggNjMuODcyIDY0djU3NS4zNmE2NCA2NCAwIDAgMS02My44NzIgNjMuODcyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InFxLXpvbmUiIHVuaWNvZGU9IiYjNTkwNjM7IiBkPSJNNTEyIDg5NkMyMjkuMDE3NiA4OTYgMCA2NjYuOTgyNCAwIDM4NHMyMjkuMDE3Ni01MTIgNTEyLTUxMiA1MTIgMjI5LjAxNzYgNTEyIDUxMlM3OTQuOTgyNCA4OTYgNTEyIDg5NnogbTM1NC4xNTA0LTQxOC44MTZsLTE4My42NTQ0LTE1NS40OTQ0IDYuMjQ2NC0yNC42Nzg0Yy0xMjkuNTM2LTEuMjI4OC0yMTUuMDkxMiAxMS4xMTA0LTIxNS4wOTEyIDExLjExMDRsMjEzLjg2MjQgMTQ5LjI5OTJjLTE3My42MTkyIDM1Ljc4ODgtNDA4Ljg4MzItNi4xNDQtMzkwLjA0MTYtNy40MjQgMjY1LjQ3Mi04LjY1MjggMjczLjA0OTYtMjIuMjIwOCAyNzMuMDQ5Ni0yMi4yMjA4TDM1Ny44ODggMjc4LjUyOGMyOTMuMTItMTguNTM0NCAzNzQuODg2NCAxOS43MTIgMzc0Ljg4NjQgMTkuNzEycy0yMC4xMjE2LTE2LjAyNTYtMzguOTYzMi0yNC42Nzg0bDQ0LjAzMi0xODIuNTc5MmMxLjIyODgtMy42ODY0LTEuMjgtOC42NTI4LTMuNzg4OC0xMS4xMTA0LTIuNTYtMS4yMjg4LTMuNzg4OC0yLjQ1NzYtNi4yOTc2LTIuNDU3NnMtMy43ODg4IDAtNi4yOTc2IDEuMjI4OGwtMjA4Ljg0NDggMTIyLjE2MzItMjA4Ljg0NDgtMTIyLjE2MzJhMTEuNjIyNCAxMS42MjI0IDAgMCAwLTEyLjU0NCAwIDkuODMwNCA5LjgzMDQgMCAwIDAtMy43ODg4IDExLjExMDRsNTUuMzQ3MiAyMzEuOTM2TDE1Ny44NDk2IDQ3Ny4xODRjLTMuNzg4OCAyLjQ1NzYtNS4wMTc2IDcuNDI0LTMuNzg4OCAxMS4xMTA0czUuMDY4OCA3LjQyNCAxMC4wODY0IDcuNDI0bDI0Mi43OTA0IDE5LjcxMkw1MDIuNTc5MiA3MzYuMjU2YzEuMjI4OCAzLjY4NjQgNi4yOTc2IDYuMTQ0IDEwLjAzNTIgNi4xNDQgNS4wNjg4IDAgOC44MDY0LTIuNDU3NiAxMC4wODY0LTYuMTQ0bDk0LjM2MTYtMjE4LjQxOTIgMjQyLjc5MDQtMTkuNzEyYzUuMDE3NiAwIDguODA2NC0zLjY4NjQgMTAuMDg2NC03LjQyNCAxLjIyODgtMy42ODY0IDAtMTEuMTEwNC0zLjc4ODgtMTMuNTY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNpbmEtd2VpYm8iIHVuaWNvZGU9IiYjNTkwNjQ7IiBkPSJNMzk5Ljg3MiAyODAuMDY0Yy0yMi44MzUyIDAtNDMuODI3Mi0xOC43OTA0LTQ0LjE4NTYtMzkuNDc1Mi0wLjMwNzItMTcuNjY0IDE0LjU0MDgtMzEuMTI5NiAzNC40NTc2LTMxLjEyOTYgMjMuNjU0NCAwIDQzLjUyIDE3LjgxNzYgNDMuNjIyNCAzOS4yMTkyIDAuMjA0OCAxOC4yNzg0LTE0LjA4IDMxLjM4NTYtMzMuOTQ1NiAzMS4zODU2eiBtNTYuNzI5NiAxNS43MTg0Yy02Ljc1ODQtMy4zMjgtMTMuMzEyLTguMTkyLTE3Ljk3MTItMTQuMTMxMi0xLjAyNC0xLjI4IDUuOTM5Mi04LjgwNjQgMTEuNTcxMi0xNi44OTYgNy4yMTkyIDcuOTM2IDEzLjc3MjggMTIuNDkyOCAxNi4xNzkyIDE4LjY4OCAxLjAyNCAyLjYxMTItOC42NTI4IDEyLjk1MzYtOS43MjggMTIuMzM5MnogbTE0My4zMDg4IDg5LjgwNDhhMjI1LjY4OTYgMjI1LjY4OTYgMCAwIDEtMzQuOTY5NiAxNy41MTA0Yy00MC40NDggMTYuMTc5Mi04Mi45NDQgMjAuOTkyLTEyNi4xMDU2IDE3LjIwMzItNjUuMjgtNS42MzItMTI1LjU0MjQtMjQuODgzMi0xNzIuNDQxNi03My4zMTg0LTU0LjM3NDQtNTYuMDY0LTQ3LjAwMTYtMTI3LjA3ODQgMTYuOTk4NC0xNzEuNTcxMiA0My4zMTUyLTMwLjEwNTYgOTIuNTE4NC00MC40NDggMTQ0LjQ4NjQtMzkuMTY4IDkuNDIwOCAwIDE4Ljk0NC0wLjc2OCAyOC4yNjI0IDAuMTAyNCA1OS4xODcyIDUuNjMyIDExMy42NjQgMjMuNjAzMiAxNTguODIyNCA2My42NDE2IDY1Ljk5NjggNTguMzY4IDU5LjM5MiAxMzguODAzMi0xNS4wNTI4IDE4NS42eiBtLTczLjIxNi0xNjQuOTE1MmMtMjIuNDc2OC0zNC4wNDgtNjIuMjU5Mi01NC43MzI4LTEwNS40NzItNTQuOTM3Ni01NC40MjU2LTAuMzU4NC05NS4yODMyIDMwLjIwOC0xMDIuNTUzNiA3Ny44MjRhNzkuMjA2NCA3OS4yMDY0IDAgMCAwIDEuMDc1MiAyOS45NTJjMTAuOTU2OCA0Ni42OTQ0IDQzLjMxNTIgNzIuNzU1MiA4Ny4yOTYgODQuNTMxMiA0My40Njg4IDExLjUyIDgzLjg2NTYgMy45OTM2IDExNS41MDcyLTMwLjUxNTIgMjYuMTEyLTI4LjU2OTYgMjcuMTg3Mi03Mi4xNDA4IDQuMDk2LTEwNi44NTQ0ek01MTIgODk2QzIyOS4yMjI0IDg5NiAwIDY2Ni43Nzc2IDAgMzg0czIyOS4yMjI0LTUxMiA1MTItNTEyYzI4Mi43MjY0IDAgNTEyIDIyOS4yMjI0IDUxMiA1MTIgMCAyODIuNzI2NC0yMjkuMjIyNCA1MTItNTEyIDUxMnogbTI0NC4xMjE2LTY2NC44ODMyYy00My43MjQ4LTY3LjI3NjgtMTEwLjk1MDQtMTAwLjY1OTItMTg2LjAwOTYtMTE5LjA0LTM2LjM1Mi04Ljk2LTc0LjI0LTExLjcyNDgtOTMuOTUyLTE0Ljc0NTYtOTMuMDgxNiAyLjMwNC0xNjUuMDY4OCAxNi4wNzY4LTIyOS45OTA0IDU2LjQyMjQtODEuODE3NiA1MC44NDE2LTEwNS42NzY4IDEyNy4wMjcyLTYyLjg3MzYgMjEzLjQ1MjggNDUuOTI2NCA5Mi42NzIgMTE3LjQwMTYgMTYxLjIyODggMjExLjI1MTIgMjA1LjMxMiAxNy40MDggOC4xNDA4IDM3LjIyMjQgMTIuOCA1Ni4zMiAxNS4xMDQgMzkuMzcyOCA0LjkxNTIgNjIuMzEwNC0xNy40MDggNjEuMzM3Ni01Ny4wMzY4LTAuMjA0OC04LjcwNC0yLjIwMTYtMTcuMjAzMi0yLjY2MjQtMjUuOTU4NC0wLjQwOTYtNy40MjQgMC4xNTM2LTE1LjA1MjggMC4zMDcyLTIyLjUyOCA3LjY4IDEuMjggMTUuMzYgMi4wNDggMjIuODg2NCAzLjczNzYgMzAuMzEwNCA2LjUwMjQgNjAuMzEzNiAxNy4zMDU2IDkwLjg4IDE4Ljk0NCA1My4wOTQ0IDIuODE2IDc2LjgtMjkuMjg2NCA2MC43MjMyLTc5LjcxODQtNi45NjMyLTIxLjQ1MjgtMS43NDA4LTI4LjY3MiAxOC4yNzg0LTM1Ljg0IDc1LjQ2ODgtMjcuMjM4NCA5Ny4yMjg4LTkwLjkzMTIgNTMuNTA0LTE1OC4xMDU2eiBtLTM5LjU3NzYgMjgyLjU3MjhjLTEyLjQ5MjggMTUuODcyLTQwLjgwNjQgMTkuNTA3Mi00OS43NjY0IDE5LjYwOTZhMjMuOTYxNiAyMy45NjE2IDAgMCAwIDAuMTUzNiA0Ny45NzQ0aDAuMjA0OGM1LjgzNjggMCA1OC4zNjgtMS41MzYgODcuMDQtMzcuOTM5MiAxMS40MTc2LTE0LjQzODQgMjMuMDkxMi00MC4wODk2IDEzLjgyNC04MC4wMjU2YTI0LjAxMjggMjQuMDEyOCAwIDEgMC00Ni42OTQ0IDEwLjc1MmM0LjA5NiAxNy41MTA0IDIuNDU3NiAzMC40NjQtNC43NjE2IDM5LjYyODh6TTg1Ny43MDI0IDQzNS4yYTI0LjA2NCAyNC4wNjQgMCAwIDAtMjcuNDQzMi0xOS45NjggMjMuOTYxNiAyMy45NjE2IDAgMCAwLTE5Ljk2OCAyNy40NDMyYzguOTA4OCA1Ni41NzYtMC4xNTM2IDEwMC42MDgtMjcuMDMzNiAxMzAuNzEzNi00Ni43OTY4IDUyLjQyODgtMTMyLjU1NjggNDkuMzA1Ni0xMzMuNDI3MiA0OS4zMDU2YTIzLjk2MTYgMjMuOTYxNiAwIDEgMC0yLjA0OCA0Ny45MjMyYzQuNDU0NCAwLjE1MzYgMTA5LjQxNDQgMy44NCAxNzEuMjY0LTY1LjI4IDM2Ljg2NC00MS4zNjk2IDQ5Ljg2ODgtOTguNjExMiAzOC42NTYtMTcwLjEzNzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY29sb3ItY2hhbmdlIiB1bmljb2RlPSImIzU5MDY1OyIgZD0iTTQ4LjcxMzE0MyA0NzEuNzcxNDI5aDkyNi45Mzk0MjhhNDkuMDA1NzE0IDQ5LjAwNTcxNCAwIDEgMSAzMC4xMzQ4NTggODcuMjU5NDI4IDQ4Ljg1OTQyOSA0OC44NTk0MjkgMCAwIDEtMTAuMzg2Mjg2IDkuODc0Mjg2bC0zNDYuMjU4Mjg2IDI0NS4wMjg1NzFhNDguMjAxMTQzIDQ4LjIwMTE0MyAwIDAgMS00OC40MjA1NzEgNC4zODg1NzIgNDkuMDc4ODU3IDQ5LjA3ODg1NyAwIDAgMS03LjMxNDI4Ni04NC40OGwyMzIuMDA5MTQzLTE2NC4yMDU3MTVINDguNjRjLTI2Ljc3MDI4NiAwLTQ4LjQ5MzcxNC0yMS45NDI4NTctNDguNDkzNzE0LTQ4LjkzMjU3MSAwLTI3LjA2Mjg1NyAyMS43MjM0MjktNDguOTMyNTcxIDQ4LjU2Njg1Ny00OC45MzI1NzF6IG05MjYuOTM5NDI4LTE3NS41NDI4NThINDguNjRhNDguMjc0Mjg2IDQ4LjI3NDI4NiAwIDAgMS0zNC4zMDQtMTQuMzM2IDQ5LjE1MiA0OS4xNTIgMCAwIDEgNC4yNDIyODYtNzIuOTIzNDI4YzIuODUyNTcxLTMuNjU3MTQzIDYuMjkwMjg2LTcuMDIxNzE0IDEwLjI0LTkuODc0Mjg2bDM0Ni4zMzE0MjgtMjQ1LjAyODU3MWE0OC4yMDExNDMgNDguMjAxMTQzIDAgMCAxIDY3LjU4NCAxMS45MjIyODUgNDkuMjI1MTQzIDQ5LjIyNTE0MyAwIDAgMS0xMS44NDkxNDMgNjguMTY5MTQzTDE5OC44NzU0MjkgMTk4LjM2MzQyOWg3NzYuNzc3MTQyYzI2Ljc3MDI4NiAwIDQ4LjQ5MzcxNCAyMS45NDI4NTcgNDguNDkzNzE1IDQ4LjkzMjU3MWE0OC43MTMxNDMgNDguNzEzMTQzIDAgMCAxLTQ4LjQ5MzcxNSA0OC45MzI1NzF6IiAgaG9yaXotYWR2LXg9IjEwNTUiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY3JlYXQtY3VzdG9tLW1hcCIgdW5pY29kZT0iJiM1OTA2NjsiIGQ9Ik03NzAuOTI1NzE0LTU0LjcxMDg1N0gyNTMuMDc0Mjg2YTE3OS45MzE0MjkgMTc5LjkzMTQyOSAwIDAgMC0xNzkuNzEyIDE3OS43MTJWNjQyLjkyNTcxNGExNzkuOTMxNDI5IDE3OS45MzE0MjkgMCAwIDAgMTc5LjcxMiAxNzkuNzEyaDI1MS4zOTJhNTAuMTc2IDUwLjE3NiAwIDEgMCAwLTEwMC40MjUxNDNIMjUzLjAwMTE0M2MtNDMuNzM5NDI5IDAtNzkuMjg2ODU3LTM1LjU0NzQyOS03OS4yODY4NTctNzkuMjg2ODU3di01MTcuOTk3NzE0YzAtNDMuNzM5NDI5IDM1LjU0NzQyOS03OS4yODY4NTcgNzkuMjg2ODU3LTc5LjI4Njg1N2g1MTcuOTk3NzE0YzQzLjczOTQyOSAwIDc5LjI4Njg1NyAzNS41NDc0MjkgNzkuMjg2ODU3IDc5LjI4Njg1N1YzODguMTY5MTQzYTUwLjE3NiA1MC4xNzYgMCAxIDAgMTAwLjQyNTE0MyAwdi0yNjMuMTY4YTE3OS45MzE0MjkgMTc5LjkzMTQyOSAwIDAgMC0xNzkuNzEyLTE3OS43MTJ6TTkwMC41MzQ4NTcgNTUyLjM3NDg1N0g1NjAuNTY2ODU3YTUwLjE3NiA1MC4xNzYgMCAwIDAgMCAxMDAuMzUyaDMzOS45NjhhNTAuMjQ5MTQzIDUwLjI0OTE0MyAwIDAgMCAwLTEwMC4zNTJ6TTczMC41NTA4NTcgMzgyLjM5MDg1N2E1MC4xNzYgNTAuMTc2IDAgMCAwLTUwLjE3NiA1MC4xNzZWNzcyLjUzNDg1N2E1MC4xNzYgNTAuMTc2IDAgMSAwIDEwMC4zNTIgMHYtMzM5Ljk2OGE1MC4yNDkxNDMgNTAuMjQ5MTQzIDAgMCAwLTUwLjE3Ni01MC4xNzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY3VzdG9tLW1hcCIgdW5pY29kZT0iJiM1OTA2NzsiIGQ9Ik05MzYuNTUwNCA3ODMuMzZMNzUyLjUzNzYgODMwLjcyYTI4LjA1NzYgMjguMDU3NiAwIDAgMS0xOS43NjMyLTIuMjI3MmwtMjE1LjYyODgtMTEwLjA4LTE5OC40IDkyLjI4OGEyOC4wNTc2IDI4LjA1NzYgMCAwIDEtMjMuMDY1NiAwLjMwNzJMODIuMTc2IDcxOC4xODI0Yy0xMS44NTI4LTUuMTQ1Ni0xOS42MDk2LTE3LjkyLTE5LjYwOTYtMzIuMDUxMnYtNjUzLjUxNjhjMC0xMS4zNjY0IDQuOTkyLTIyLjAxNiAxMy40MTQ0LTI4LjQxNiA4LjM5NjgtNi40IDE5LjA5NzYtNy43MzEyIDI4LjU2OTYtMy42MzUybDIwMS45MzI4IDg3Ljc4MjQgMTk5LjM0NzItOTIuNzc0NGMzLjc4ODgtMS43NDA4IDcuODMzNi0yLjYzNjggMTEuODc4NC0yLjYzNjggNC4zNzc2IDAgOC43NTUyIDEuMDQ5NiAxMi44NTEyIDMuMTIzMmwxNS45NzQ0IDguMTY2NC0yNy4zNDA4IDYxLjY5Ni0yLjA0OC0xLjA0OTYtMTk4LjQgOTIuMjg4YTI4LjE2IDI4LjE2IDAgMCAxLTIzLjA2NTYgMC4zMzI4TDEyNC4yMTEyIDgyLjk0NFY2NjIuNjA0OGwxODIuMjcyIDc5LjI1NzYgMTk5LjM0NzItOTIuNzQ4OGM3LjkzNi0zLjcxMiAxNi44OTYtMy41MzI4IDI0LjcyOTYgMC40NjA4bDIxOC4zNDI0IDExMS40NjI0IDE0OS44ODgtMzguNTUzNnYtNTgyLjkxMmwtMjkuMDMwNCA3LjQ0OTYtMTQuNjY4OC0zMy4wNzUyYy0yLjMwNC01Ljc4NTYtNC44NjQtMTEuNTItNy42MDMyLTE3LjA3NTJsLTAuNDYwOC0xLjEwMDgtNS4zNzYtMTIuMTA4OCA4MS4wNDk2LTIwLjgzODRhMjguNDE2IDI4LjQxNiAwIDAgMSAyNi4xMTIgNi42MDQ4YzcuMzcyOCA2LjUwMjQgMTEuNjQ4IDE2LjQwOTYgMTEuNjQ4IDI2LjkzMTJWNzQ5LjgyNGMwIDE2LjAyNTYtOS45MDcyIDI5LjkwMDgtMjMuOTEwNCAzMy41MzZ6TTI4Ny44MjA4IDY1My4yODY0di00MTQuNzJjMC03LjYwMzIgOC41NTA0LTEzLjc0NzIgMTkuMDQ2NC0xMy43NDcyczE5LjA0NjQgNi4xNDQgMTkuMDQ2NCAxMy43NDcydjQxNC43MmMwIDcuNjAzMi04LjU1MDQgMTMuNzcyOC0xOS4wNDY0IDEzLjc3MjhzLTE5LjA0NjQtNi4xNjk2LTE5LjA0NjQtMTMuNzcyOHogbTIxMC44NDE2LTkxLjYyMjR2LTIwOC42OTEyYzAtNy42MDMyIDguNTUwNC0xMy43NzI4IDE5LjA0NjQtMTMuNzcyOHMxOS4wNDY0IDYuMTQ0IDE5LjA0NjQgMTMuNzcyOHYyMDguNjkxMmMwIDcuNjAzMi04LjU1MDQgMTMuNzk4NC0xOS4wNDY0IDEzLjc5ODRzLTE5LjA0NjQtNi4xOTUyLTE5LjA0NjQtMTMuNzk4NHogbTI3MC4wOC0xMzAuOTY5NlY2ODIuNzAwOGMwIDcuNjAzMi04LjUyNDggMTMuNzcyOC0xOS4wNDY0IDEzLjc3MjgtMTAuNTQ3MiAwLTE5LjA0NjQtNi4xNjk2LTE5LjA0NjQtMTYuNjE0NHYtMjUyLjAzMmMwLTQuNzM2IDguNDk5Mi0xMC45MzEyIDE5LjA0NjQtMTAuOTMxMiAxMC41MjE2IDAgMTkuMDcyIDYuMTk1MiAxOS4wNzIgMTMuNzcyOHogbS0xNzguNTA4OC00OTAuOTA1Nmw4MS40MDggNTkuOTA0LTYzLjg5NzYgNDguNDM1Mi0xNy41MTA0LTEwOC4zMzkyeiBtMjI0LjIzMDQgMjg1LjQxNDRsLTY2LjQ1NzYgNTIuOTY2NC0xMzIuOTQwOC0yMTEuNDA0OCA2OS4xMi01NS40NDk2IDEzMC4yNzg0IDIxMy44ODh6IG0zMy40ODQ4IDg2LjM0ODhzLTE3Ljc5MiAxNS4yNTc2LTM3LjEyIDI1LjY3NjhjLTE5LjMwMjQgMTAuNDE5Mi0zMC4xMzEyLTYuMTQ0LTMwLjEzMTItNi4xNDRsLTIzLjU1Mi0zOC4wNDE2IDY5LjE3MTItNTMuMTQ1NnMyMC4xNDcyIDMyLjgxOTIgMjYuMTg4OCA0My44NTI4YzYuMDQxNiAxMS4wNTkyLTQuNTU2OCAyNy44MDE2LTQuNTU2OCAyNy44MDE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImxlZ2VuZC1mb2xkIiB1bmljb2RlPSImIzU5MDY4OyIgZD0iTTUxMiA2NzYuNTcxNDI5YTYwLjYzNTQyOSA2MC42MzU0MjkgMCAwIDEtNDMuNDQ2ODU3LTE4LjQzMmwtMzc3LjQxNzE0My0zODYuMTk0Mjg2YTYzLjkyNjg1NyA2My45MjY4NTcgMCAwIDEgMC04OC45NDE3MTQgNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMSA4Ni45NjY4NTcgMEw1MTIgNTI0LjcyNjg1N2wzMzMuODk3MTQzLTM0MS43MjM0MjhhNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMSA4Ni45NjY4NTcgMCA2My45MjY4NTcgNjMuOTI2ODU3IDAgMCAxIDAgODguOTQxNzE0bC0zNzcuNDE3MTQzIDM4Ni4xOTQyODZBNjAuNTYyMjg2IDYwLjU2MjI4NiAwIDAgMSA1MTIgNjc2LjU3MTQyOXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWdlbmQtdW5mb2xkIiB1bmljb2RlPSImIzU5MDY5OyIgZD0iTTUxMiA5MS40Mjg1NzFhNjAuNjM1NDI5IDYwLjYzNTQyOSAwIDAgMC00My40NDY4NTcgMTguNDMybC0zNzcuNDE3MTQzIDM4Ni4xOTQyODZhNjMuOTI2ODU3IDYzLjkyNjg1NyAwIDAgMCAwIDg4Ljk0MTcxNCA2MC40ODkxNDMgNjAuNDg5MTQzIDAgMCAwIDg2Ljk2Njg1NyAwTDUxMiAyNDMuMjczMTQzbDMzMy44OTcxNDMgMzQxLjcyMzQyOGE2MC40ODkxNDMgNjAuNDg5MTQzIDAgMCAwIDg2Ljk2Njg1NyAwIDYzLjkyNjg1NyA2My45MjY4NTcgMCAwIDAgMC04OC45NDE3MTRsLTM3Ny40MTcxNDMtMzg2LjE5NDI4NkE2MC41NjIyODYgNjAuNTYyMjg2IDAgMCAwIDUxMiA5MS40Mjg1NzF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGVnZW5kLWJpZyIgdW5pY29kZT0iJiM1OTA3MDsiIGQ9Ik0zMDcuMiA0ODYuNGgxMDIuNFY1ODguOEgzMDcuMnogbTAtMTUzLjZoMTAyLjRWNDM1LjJIMzA3LjJ6IG0wLTE1My42aDEwMi40djEwMi40SDMwNy4yeiBtMTUzLjYgMzA3LjJoMjU2VjU4OC44SDQ2MC44eiBtMzA3LjIgMzA3LjJIMjU2YTE1My42IDE1My42IDAgMCAxLTE1My42LTE1My42di01MTJhMTUzLjYgMTUzLjYgMCAwIDEgMTUzLjYtMTUzLjZoNTEyYTE1My42IDE1My42IDAgMCAxIDE1My42IDE1My42VjY0MGExNTMuNiAxNTMuNiAwIDAgMS0xNTMuNiAxNTMuNnogbTUxLjItNjY1LjZhNTEuMiA1MS4yIDAgMCAwLTUxLjItNTEuMkgyNTZhNTEuMiA1MS4yIDAgMCAwLTUxLjIgNTEuMlY2NDBhNTEuMiA1MS4yIDAgMCAwIDUxLjIgNTEuMmg1MTJhNTEuMiA1MS4yIDAgMCAwIDUxLjItNTEuMnogbS0zNTguNCAyMDQuOGgyNTZWNDM1LjJINDYwLjh6IG0wLTE1My42aDI1NnYxMDIuNEg0NjAuOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJhdHRyaWJ1dGUiIHVuaWNvZGU9IiYjNTkwNzE7IiBkPSJNMTAyNCA1MTEuMzQxNzE0VjcyNC42MjYyODZDMTAyNCA4MDMuMTA4NTcxIDk1OC40NjQgODY2Ljc0Mjg1NyA4NzcuNzE0Mjg2IDg2Ni43NDI4NTdIMTQ2LjI4NTcxNEM2NS41MzYgODY2Ljc0Mjg1NyAwIDgwMy4xMDg1NzEgMCA3MjQuNjI2Mjg2di03MTAuNTA5NzE1QzAtNjQuMzY1NzE0IDY1LjUzNi0xMjggMTQ2LjI4NTcxNC0xMjhoNzMxLjQyODU3MmM4MC43NDk3MTQgMCAxNDYuMjg1NzE0IDYzLjYzNDI4NiAxNDYuMjg1NzE0IDE0Mi4xMTY1NzF6TTk0LjU3MzcxNCA3NzQuODc1NDI5YzEzLjY3NzcxNCAxMy4zODUxNDMgMzIuMzI5MTQzIDIwLjkxODg1NyA1MS43ODUxNDMgMjAuODQ1NzE0aDczMS41MDE3MTRjMTkuNDU2IDAgMzguMDM0Mjg2LTcuNTMzNzE0IDUxLjcxMi0yMC44NDU3MTQgMTMuNzUwODU3LTEzLjM4NTE0MyAyMS4zNTc3MTQtMzEuNDUxNDI5IDIxLjM1NzcxNS01MC4zMjIyODZ2LTE0Mi4xODk3MTRINzMuMDY5NzE0VjcyNC41NTMxNDNjMCAxOC44NzA4NTcgNy42OCAzNy4wMTAyODYgMjEuNTA0IDUwLjMyMjI4NnogbTMwNy41NjU3MTUtNTEyLjIxOTQyOXYyNDguNjg1NzE0aDIxOS43MjExNDJ2LTI0OC42ODU3MTR6IG0yMTkuNzIxMTQyLTcwLjk0ODU3MXYtMjQ4LjY4NTcxNUg0MDIuMTM5NDI5djI0OC42ODU3MTV6IG0tMjkyLjc5MDg1NyA3MC45NDg1NzFINzMuMTQyODU3djI0OC42ODU3MTRoMjU2eiBtLTIzNC40OTYtMjk4LjkzNDg1N2E2OS40ODU3MTQgNjkuNDg1NzE0IDAgMCAwLTIxLjUwNCA1MC4xNzZWMTkxLjYzNDI4NmgyNTZ2LTI0OC42ODU3MTVIMTQ2LjM1ODg1N2E3My44NzQyODYgNzMuODc0Mjg2IDAgMCAwLTUxLjc4NTE0MyAyMC43NzI1NzJ6TTk1MC44NTcxNDMgMTMuODk3MTQzYzAtMTguNzk3NzE0LTcuNjgtMzYuODY0LTIxLjM1NzcxNC01MC4xNzZzLTMyLjMyOTE0My0yMC43NzI1NzEtNTEuNzEyLTIwLjY5OTQyOUg2OTQuOTMwMjg2djI0OC42ODU3MTVIOTUwLjg1NzE0M3ogbTAgMjQ4Ljc1ODg1N0g2OTQuODU3MTQzdjI0OC42ODU3MTRIOTUwLjg1NzE0M3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWdlbmQtc21hbGwiIHVuaWNvZGU9IiYjNTkwNzI7IiBkPSJNMjczLjM0Njg1MSAxODUuNTY0Mjc5Yy0xOS4wMTcwNjEgMC0zOC4xMDcyNjUtMTkuMTYzMzQ2LTM4LjEwNzI2NS0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xMDcyNjUtMzguMzk5ODM2IDM4LjEwNzI2NSAxOS4yMzY0ODkgMzguMTA3MjY2IDM4LjM5OTgzNmMwIDI1LjU5OTg5LTEyLjY1MzY2IDM4LjM5OTgzNS0zOC4xMDcyNjYgMzguMzk5ODM1eiBtMCA0NzMuNTk3OTdjLTE5LjAxNzA2MSAwLTM4LjEwNzI2NS0xOS4xNjMzNDYtMzguMTA3MjY1LTM4LjM5OTgzNXMxOS4wMTcwNjEtMzguMzk5ODM1IDM4LjEwNzI2NS0zOC4zOTk4MzYgMzguMTA3MjY1IDE5LjIzNjQ4OSAzOC4xMDcyNjYgMzguMzk5ODM2LTEyLjY1MzY2IDM4LjM5OTgzNS0zOC4xMDcyNjYgMzguMzk5ODM1eiBtMC0yMzYuNzYyNDE0Yy0xOS4wMTcwNjEgMC0zOC4xMDcyNjUtMTkuMjM2NDg5LTM4LjEwNzI2NS0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xMDcyNjUtMzguMzk5ODM1IDM4LjEwNzI2NSAxOS4xNjMzNDYgMzguMTA3MjY2IDM4LjM5OTgzNS0xMi42NTM2NiAzOC4zOTk4MzUtMzguMTA3MjY2IDM4LjM5OTgzNXpNODU4LjEyMTQ4OCA4OTUuOTk3ODA2aC02OTkuMjQyNzE3QTE1Ny45MTQ3NTIgMTU3LjkxNDc1MiAwIDAgMSAwLjAxMzE2NiA3MzUuOTYxOTJWMjUuNjAxNTM2QzAuMDEzMTY2LTU3LjYzNDY3OSA2OS45Mzc0MzctMTI3Ljk5NzgwNiAxNTguOTUxOTEzLTEyNy45OTc4MDZoNzA1LjUzMjk3NmExNTcuOTE0NzUyIDE1Ny45MTQ3NTIgMCAwIDEgMTU4LjkzODc0OCAxNTkuOTYyNzQzVjczNS45NjE5MkMxMDE3LjA2MDIzNiA4MjUuNTYxNTM2IDk0Ny4xMzU5NjQgODk1Ljk5NzgwNiA4NTguMTIxNDg4IDg5NS45OTc4MDZ6IG04Mi42NTEwNzQtODY0LjAzMjg2OWE3Ny41MzEwOTYgNzcuNTMxMDk2IDAgMCAwLTc2LjI4NzY3My03Ni43OTk2NzFIMTU4Ljk1MTkxM2MtNDQuNTQzODA5IDAtNzYuMjg3NjczIDM4LjM5OTgzNS03Ni4yODc2NzMgNzYuNzk5NjcxVjczNi4wMzUwNjNjMCA0NC43NjMyMzcgMzguMTA3MjY1IDc2Ljc5OTY3MSA3Ni4yODc2NzMgNzYuNzk5NjcxaDcwNS41MzI5NzZjNDQuNTQzODA5IDAgNzYuMjg3NjczLTM4LjM5OTgzNSA3Ni4yODc2NzMtNzYuNzk5NjcxeiBtLTE5Ny4wNDYwMTIgNjI3LjE5NzMxMkg0MzIuMjg1NTk5Yy0yNS40NTM2MDUgMC0zOC4xODA0MDgtMTkuMTYzMzQ2LTM4LjE4MDQwOC0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xODA0MDgtMzguMzk5ODM2aDMxMS40NDA5NTFjMTkuMDE3MDYxIDAgMzguMTA3MjY1IDE5LjIzNjQ4OSAzOC4xMDcyNjUgMzguMzk5ODM2cy0xOS4wMTcwNjEgMzguMzk5ODM1LTM4LjEwNzI2NSAzOC4zOTk4MzV6IG0wLTIzNi43NjI0MTRINDMyLjI4NTU5OWMtMjUuNDUzNjA1IDAtMzguMTgwNDA4LTE5LjIzNjQ4OS0zOC4xODA0MDgtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTgwNDA4LTM4LjM5OTgzNWgzMTEuNDQwOTUxYzE5LjAxNzA2MSAwIDM4LjEwNzI2NSAxOS4xNjMzNDYgMzguMTA3MjY1IDM4LjM5OTgzNXMtMTkuMDE3MDYxIDM4LjM5OTgzNS0zOC4xMDcyNjUgMzguMzk5ODM1eiBtMC0yMzYuODM1NTU2SDQzMi4yODU1OTljLTE5LjA5MDIwNCAwLTM4LjE4MDQwOC0xOS4xNjMzNDYtMzguMTgwNDA4LTM4LjM5OTgzNXMxOS4wMTcwNjEtMzguMzk5ODM1IDM4LjE4MDQwOC0zOC4zOTk4MzZoMzExLjQ0MDk1MWMxOS4wMTcwNjEgMCAzOC4xMDcyNjUgMTkuMjM2NDg5IDM4LjEwNzI2NSAzOC4zOTk4MzYgMCAyNS41OTk4OS0xOS4wMTcwNjEgMzguMzk5ODM1LTM4LjEwNzI2NSAzOC4zOTk4MzV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY2xvc2UtbGVnZW5kIiB1bmljb2RlPSImIzU5MDczOyIgZD0iTTY0My4xNDUxNDMgNTg2Ljg5ODI4Nkw1MTIgNDU1LjY4IDM4MC44NTQ4NTcgNTg2Ljg5ODI4NmwtNzEuNjgtNzEuNzUzMTQzTDQ0MC4xNzM3MTQgMzg0IDMwOS4xMDE3MTQgMjUyLjg1NDg1N2w3MS43NTMxNDMtNzEuNjhMNTEyIDMxMi4xNzM3MTRsMTMxLjE0NTE0My0xMzEuMTQ1MTQzIDcxLjY4IDcxLjc1MzE0M0w1ODMuODI2Mjg2IDM4NGwxMzEuMTQ1MTQzIDEzMS4xNDUxNDN6TTUxMiA4OTEuMTcyNTcxQTUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSA0Ljc1NDI4NiAzODQgNTA3LjA5OTQyOSA1MDcuMDk5NDI5IDAgMCAxIDUxMi0xMjMuMjQ1NzE0IDUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSAxMDE5LjI0NTcxNCAzODQgNTA3LjA5OTQyOSA1MDcuMDk5NDI5IDAgMCAxIDUxMiA4OTEuMjQ1NzE0eiBtMC05MTIuOTY5MTQyQTQwNi4zMDg1NzEgNDA2LjMwODU3MSAwIDAgMCAxMDYuMjAzNDI5IDM4NCA0MDYuMzA4NTcxIDQwNi4zMDg1NzEgMCAwIDAgNTEyIDc4OS43OTY1NzEgNDA2LjMwODU3MSA0MDYuMzA4NTcxIDAgMCAwIDkxNy43OTY1NzEgMzg0IDQwNi4zMDg1NzEgNDA2LjMwODU3MSAwIDAgMCA1MTItMjEuNzk2NTcxeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImZvbnQtY29sb3IiIHVuaWNvZGU9IiYjNTkwNzQ7IiBkPSJNNDk1Ljg3MiA4MzJMMjQ0LjIyNCAxNjBoMTE5LjY4bDUyLjIyNCAxNTYuOGgyNTUuNzQ0bDU2LjMyLTE1Ni44aDExOS42OEw1OTYuMjg4IDgzMkg0OTUuODcyek01NDQgNjg5LjE1Mmw5Mi4xNi0yNzguNTI4SDQ0Ny43NDRMNTQ0IDY4OS4yMTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYm9sZCIgdW5pY29kZT0iJiM1OTA3NTsiIGQ9Ik0zODQgMzk3LjgyNGgyMDguODk2YzMwLjcyIDAgNTYuMzIgOC43MDQgNzYuOCAyNi4xMTIgMjAuNDggMTcuNDA4IDMwLjcyIDQyLjQ5NiAzMC43MiA3NS4yNjQgMCAzNi44NjQtOS4yMTYgNjIuNzg0LTI3LjY0OCA3Ny44MjQtMTguNDMyIDE1LjA0LTQ1LjA1NiAyMi41MjgtNzkuODcyIDIyLjUyOEgzODR2LTIwMS43Mjh6TTI1NiA3MDRoMzU1LjMyOGM2NS41MzYgMCAxMTguMDgtMTUuMDQgMTU3LjY5Ni00NS4wNTYgMzkuNjE2LTMwLjA4IDU5LjM5Mi03NS40NTYgNTkuMzkyLTEzNi4xOTIgMC0zNi44NjQtOS4wMjQtNjguNDgtMjcuMTM2LTk0LjcyLTE4LjExMi0yNi4yNC00My44NC00Ni41OTItNzcuMzEyLTYwLjkyOHYtMi4wNDhjNDUuMDU2LTkuNiA3OS4xNjgtMzAuOTEyIDEwMi40LTY0czM0LjgxNi03NC41NiAzNC44MTYtMTI0LjQxNmMwLTI4LjY3Mi01LjEyLTU1LjQ4OC0xNS4zNi04MC4zODQtMTAuMjQtMjQuOTYtMjYuMjQtNDYuNC00OC4xMjgtNjQuNTEyLTIxLjgyNC0xOC4xMTItNDkuODU2LTMyLjQ0OC04My45NjgtNDMuMDA4LTM0LjExMi0xMC41Ni03NC43NTItMTUuODcyLTEyMS44NTYtMTUuODcySDI1NlY3MDR6IG0xMjgtNjI2LjY4OGgyMjYuMzA0YzM4LjkxMiAwIDY5LjEyIDEwLjA0OCA5MC42MjQgMzAuMjA4IDIxLjUwNCAyMC4xNiAzMi4yNTYgNDguNjQgMzIuMjU2IDg1LjUwNCAwIDM2LjE2LTEwLjc1MiA2NC0zMi4yNTYgODMuNDU2LTIxLjUwNCAxOS40NTYtNTEuNzEyIDI5LjE4NC05MC42MjQgMjkuMTg0SDM4NHYtMjI4LjM1MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJpdGFsaWNzIiB1bmljb2RlPSImIzU5MDc2OyIgZD0iTTYxNi41MTIgNTc2bC03OS4wNC00NDhINzA0di0xMjhIMjU2djEyOGgxNTEuNDg4bDc5LjA0IDQ0OEgzMjBWNzA0aDQ0OHYtMTI4SDYxNi41MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZm9udCIgdW5pY29kZT0iJiM1OTA3NzsiIGQ9Ik04NzUuMjY0IDBoLTEwNi42ODhhMjAuNjA4IDIwLjYwOCAwIDAgMC0xOS4zMjggMTMuNTY4bC03Ny40NCAyMDYuMjA4SDQwNC40OGwtNzIuODMyLTIwNS43NmEyMC43MzYgMjAuNzM2IDAgMCAwLTE5LjQ1Ni0xNC4wMTZIMjEyLjczNmEyMC44IDIwLjggMCAwIDAtMTcuMTUyIDkuMjE2IDIxLjY5NiAyMS42OTYgMCAwIDAtMi4xNzYgMTkuNjQ4TDQ2NS4yMTYgNzU0LjQzMkEyMC42NzIgMjAuNjcyIDAgMCAwIDQ4NC42MDggNzY4aDEwMC45MjhjOC4zMiAwIDE2LTUuMTg0IDE5LjItMTMuMTg0bDI4OS43MjgtNzI1LjUwNGEyMS40NCAyMS40NCAwIDAgMC0xLjk4NC0xOS44NCAyMC42NzIgMjAuNjcyIDAgMCAwLTE3LjIxNi05LjQ3MnpNNDQ2Ljg0OCAzNDAuNDE2aDE4MC4yMjRsLTYzLjM2IDE3Mi4yMjRjLTEwLjU2IDI4LjgtMTkuOTY4IDU1LjI5Ni0yOC4wOTYgNzkuMzYtNi4yNzItMjIuNTI4LTEzLjQ0LTQ0Ljk5Mi0yMS40NC02Ny4zMjhsLTY3LjMyOC0xODQuMzJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ianVzdGlmeS1hbGlnbiIgdW5pY29kZT0iJiM1OTA3ODsiIGQ9Ik0xMjggMzg0VjUxMmg3Njh2LTEyOEgxMjh6IG0wIDE5MlY3MDRoNzY4di0xMjhIMTI4eiBtMC01NzZ2MTI4aDc2OHYtMTI4SDEyOHogbTc2OCAzMjB2LTEyOEgxMjhWMzIwaDc2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtaWRkbGUtYWxpZ25tZW4iIHVuaWNvZGU9IiYjNTkwNzk7IiBkPSJNMjU2IDM4NFY1MTJoNTEydi0xMjhIMjU2ek0xMjggNTc2VjcwNGg3Njh2LTEyOEgxMjh6IG0wLTU3NnYxMjhoNzY4di0xMjhIMTI4eiBtNjQwIDMyMHYtMTI4SDI1NlYzMjBoNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImZvbnQtc2l6ZSIgdW5pY29kZT0iJiM1OTA4MDsiIGQ9Ik0yNjEuNTA0IDI5My42MzJsMTAzLjY4IDM0Mi44NDggMTA0LjA2NC0zNDIuODQ4SDI2MS41MDRNNDU4LjY4OCA3NjhoLTE1OC4wOEw2NCAwaDEwOS42MzJsNTUuOTM2IDE4Mi43ODRINTAzLjY4TDU2MC42NCAwaDEzNy4yOEw0NTguNjg4IDc2OG0yNDguNTc2LTU5MC4wOGw2MC4xNiAxNjMuODQgNjAuMjI0LTE2My44NGgtMTIwLjM4NG0xMTQuMzA0IDI0MC4xMjhoLTkxLjU4NGwtNzMuNi0yMDMuNDU2IDMxLjg3Mi0xMDIuNDY0IDAuNTEyIDEuNDcyaDE1OC43ODRsMzMuMDI0LTEwNS43OTJIOTYwbC0xMzguNDMyIDQxMC4yNCIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InN0cmlrZW91dCIgdW5pY29kZT0iJiM1OTA4MTsiIGQ9Ik0zMzIuNDggMzg0QzI4NS41MDQgNDI0LjE5MiAyNTYgNDgwLjQ0OCAyNTYgNTQ0IDI1NiA2NzAuNTI4IDM3Mi45MjggNzY4IDUxMiA3NjhzMjU2LTk3LjQ3MiAyNTYtMjI0aC0xMjhDNjQwIDU5NC4xNzYgNTg0Ljk2IDY0MCA1MTIgNjQwYy03Mi45NiAwLTEyOC00NS44MjQtMTI4LTk2UzQzOS4wNCA0NDggNTEyIDQ0OGM2OS4yNDggMCAxMzIuOTI4LTI0LjEyOCAxNzkuNTItNjRIODMydi02NGgtODguMzJjMTUuNTUyLTI4Ljg2NCAyNC4zMi02MS4zNzYgMjQuMzItOTYgMC0xMjYuNTI4LTExNi45MjgtMjI0LTI1Ni0yMjRzLTI1NiA5Ny40NzItMjU2IDIyNGgxMjhjMC01MC4xNzYgNTUuMDQtOTYgMTI4LTk2IDcyLjk2IDAgMTI4IDQ1LjgyNCAxMjggOTZTNTg0Ljk2IDMyMCA1MTIgMzIwSDI1NlYzODRoNzYuNDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idGV4dC1sYXllciIgdW5pY29kZT0iJiM1OTA4MjsiIGQ9Ik01NzYgNjQwdi03NjhINDQ4VjY0MEg2NFY4MzJoODk2di0xOTJINTc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InJpZ2h0LWFsaWdubWVudCIgdW5pY29kZT0iJiM1OTA4MzsiIGQ9Ik0zODQgNTc2VjcwNGg1MTJ2LTEyOEgzODR6IG0xMjgtMTkyVjUxMmgzODR2LTEyOEg1MTJ6IG0tMzg0LTM4NHYxMjhoNzY4di0xMjhIMTI4eiBtNzY4IDMyMHYtMTI4SDM4NFYzMjBoNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImxlZnQtYWxpZ25tZW50IiB1bmljb2RlPSImIzU5MDg0OyIgZD0iTTEyOCA1NzZWNzA0aDUxMnYtMTI4SDEyOHogbTAtMTkyVjUxMmgzODR2LTEyOEgxMjh6IG0wLTM4NHYxMjhoNzY4di0xMjhIMTI4eiBtNTEyIDMyMHYtMTI4SDEyOFYzMjBoNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InRyYW5zcGFyZW50LWJhY2tncm91IiB1bmljb2RlPSImIzU5MDg1OyIgZD0iTTIyMC44IDgzMkw2NCA2NzUuMnYtNzEuMTY4TDI5MS45NjggODMySDIyMC44NjR6IG0xOTMuMzQ0IDBMNjQgNDgxLjg1NnYtNzEuMTY4TDQ4NS4zMTIgODMySDQxNC4wOHogbTE5My4yOCAwTDY0IDI4OC41MTJ2LTcxLjEwNEw2NzguNTkyIDgzMkg2MDcuNDg4eiBtMTkzLjM0NCAwTDY0IDk1LjIzMnYtNzEuMTY4TDg3MS45MzYgODMyaC03MS4xNjh6TTk2MCA3OTUuMzkyYTQ0LjggNDQuOCAwIDAgMS05Ljc5Mi03LjI5NkwxMDAuNjcyLTYxLjQ0Yy0wLjgzMi0wLjc2OC0xLjIxNi0xLjcyOC0xLjkyLTIuNTZoNzAuNDY0TDk2MCA3MjYuNzg0Vjc5NS4zOTJ6IG0wLTE5MC43ODRMMjkxLjM5Mi02NGg3MS4xNjhMOTYwIDUzMy40NFY2MDQuNjA4eiBtMC0xOTMuMjhMNDg0LjczNi02NGg3MS4xMDRMOTYwIDM0MC4xNlY0MTEuMjY0eiBtMC0xOTMuMzQ0TDY3OC4wMTYtNjRoNzEuMTY4TDk2MCAxNDYuODE2djcxLjE2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ1bmRlcmxpbmUiIHVuaWNvZGU9IiYjNTkwODY7IiBkPSJNNjQwIDcwNGgxMjh2LTM1OC40YzAtMTE5LjI5Ni05Mi4xNi0yMTcuNi0yMDgtMjE3LjZoLTk2QzM0OC4xNiAxMjggMjU2IDIyNi4zMDQgMjU2IDM0NS42VjcwNGgxMjh2LTM1OC40YzAtNTAuMzY4IDM2LjgtODkuNiA4MC04OS42aDk2QzYwMy4yIDI1NiA2NDAgMjk1LjIzMiA2NDAgMzQ1LjZWNzA0ek0yNTYgNjRoNTEydi02NEgyNTZ2NjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icXVlcnkiIHVuaWNvZGU9IiYjNTkwODc7IiBkPSJNNTEyIDg5NC45NzZDMjI5LjIyOTcxNCA4OTQuOTc2IDAgNjY2LjE4NTE0MyAwIDM4NGMwLTI4Mi4xODUxNDMgMjI5LjIyOTcxNC01MTAuOTc2IDUxMi01MTAuOTc2UzEwMjQgMTAxLjgxNDg1NyAxMDI0IDM4NEMxMDI0IDY2Ni4xODUxNDMgNzk0Ljc3MDI4NiA4OTQuOTc2IDUxMiA4OTQuOTc2eiBtNDkuNzM3MTQzLTgwNS44MTQ4NTdhMjUuNiAyNS42IDAgMCAwLTI1LjYtMjUuNkg0NTkuMzM3MTQzYTI1LjYgMjUuNiAwIDAgMC0yNS42IDI1LjZWMTY1LjgxNDg1N2EyNS42IDI1LjYgMCAwIDAgMjUuNiAyNS41MjY4NTdoNzYuOGEyNS42IDI1LjYgMCAwIDAgMjUuNi0yNS42di03Ni41ODA1NzF6IG0xMjYuODI5NzE0IDM1MS42NzA4NTdjLTEwLjI0LTE0LjYyODU3MS0zMy42NDU3MTQtMzMuMjgtNjIuOTAyODU3LTU2LjAyNzQyOWwtMzIuNDAyMjg2LTIyLjM4MTcxNGMtMTUuNzI1NzE0LTEyLjE0MTcxNC0yOS42OTYtMjYuMzMxNDI5LTM0LjgxNi00Mi41NjkxNDNhMTMwLjE5NDI4NiAxMzAuMTk0Mjg2IDAgMCAxLTMuOTQ5NzE0LTI0LjQyOTcxNGMtMC41MTItNC45NzM3MTQtNC45MDA1NzEtMTUuMDY3NDI5LTE1LjI4Njg1Ny0xNS4wNjc0MjloLTgzLjM4Mjg1N2MtMTMuNDU4Mjg2IDAtMTUuODcyIDEwLjYwNTcxNC0xNS42NTI1NzIgMTUuNzk4ODU4IDEuNDYyODU3IDMzLjkzODI4NiA0LjYwOCA2NC4wNzMxNDMgMTguNDMyIDgwLjMxMDg1NyAyOC4wODY4NTcgMzIuODQxMTQzIDkxLjk0MDU3MSA3My43MjggOTEuOTQwNTcyIDczLjcyOCA5LjcyOCA3LjMxNDI4NiAxNy41NTQyODYgMTUuMjg2ODU3IDIzLjU1MiAyMy45MTc3MTQgMTAuODI1MTQzIDE0LjkyMTE0MyAxOS43NDg1NzEgMzEuMjMyIDE5Ljc0ODU3MSA0OS4xNTIgMCAyMC40OC01Ljk5NzcxNCAzOS4yNzc3MTQtMTguMDY2Mjg2IDU2LjE3MzcxNC0xMi4wNjg1NzEgMTYuODk2LTM0LjA4NDU3MSAyNS4zODA1NzEtNjYuMDQ4IDI1LjM4MDU3Mi0zMS40NTE0MjkgMC01My42ODY4NTctMTAuNDU5NDI5LTY2Ljg1MjU3MS0zMS4yMzItOS43MjgtMTUuMzYtMTUuNzk4ODU3LTI5LjU0OTcxNC0xOC4yODU3MTQtNDQuOTA5NzE1LTAuOTUwODU3LTUuNDg1NzE0LTQuMzg4NTcxLTE2Ljk2OTE0My0xNi4wOTE0MjktMTYuOTY5MTQySDMyNy4xNjhjLTE3LjI2MTcxNCAwLTIxLjA2NTE0MyAxMS4xOTA4NTctMjAuNjI2Mjg2IDE2LjYwMzQyOCA2LjI5MDI4NiA2OC4wMjI4NTcgMzIuOTE0Mjg2IDExNC40Njg1NzEgODAuMDE4Mjg2IDE0NC4zMTA4NTcgMzEuOTYzNDI5IDIwLjQ4IDcxLjM4NzQyOSAzMC44NjYyODYgMTE4LjEyNTcxNCAzMC44NjYyODYgNjEuMzY2ODU3IDAgMTEyLjM0NzQyOS0xNC42Mjg1NzEgMTUyLjk0MTcxNS00My44ODU3MTQgNDAuNTk0Mjg2LTI5LjI1NzE0MyA2MC45MjgtNzIuNDg0NTcxIDYwLjkyOC0xMjkuOTAxNzE1IDAtMzUuMTA4NTcxLTEyLjQzNDI4Ni02NC44MDQ1NzEtMjkuOTg4NTcyLTg4Ljg2ODU3MXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKCgogIDwvZm9udD4KPC9kZWZzPjwvc3ZnPgo=#supermapol-icons) format('svg'); /* iOS 4.1- */ + url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+DQo8IS0tDQoyMDEzLTktMzA6IENyZWF0ZWQuDQotLT4NCjxzdmc+DQo8bWV0YWRhdGE+DQpDcmVhdGVkIGJ5IGljb25mb250DQo8L21ldGFkYXRhPg0KPGRlZnM+DQoNCjxmb250IGlkPSJzdXBlcm1hcG9sLWljb25zIiBob3Jpei1hZHYteD0iMTAyNCIgPg0KICA8Zm9udC1mYWNlDQogICAgZm9udC1mYW1pbHk9InN1cGVybWFwb2wtaWNvbnMiDQogICAgZm9udC13ZWlnaHQ9IjUwMCINCiAgICBmb250LXN0cmV0Y2g9Im5vcm1hbCINCiAgICB1bml0cy1wZXItZW09IjEwMjQiDQogICAgYXNjZW50PSI4OTYiDQogICAgZGVzY2VudD0iLTEyOCINCiAgLz4NCiAgICA8bWlzc2luZy1nbHlwaCAvPg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtb3JlIiB1bmljb2RlPSImIzU4OTA5OyIgZD0iTTUzMC4yODU3MTQgMTI4YTkxLjQyODU3MSA5MS40Mjg1NzEgMCAxIDEgMC0xODIuODU3MTQzIDkxLjQyODU3MSA5MS40Mjg1NzEgMCAwIDEgMCAxODIuODU3MTQzeiBtMCAzNjUuNjQxMTQzYTkxLjQyODU3MSA5MS40Mjg1NzEgMCAxIDEgMC0xODIuODU3MTQzIDkxLjQyODU3MSA5MS40Mjg1NzEgMCAwIDEgMCAxODIuODU3MTQzeiBtMCAxODIuODU3MTQzYTkxLjQyODU3MSA5MS40Mjg1NzEgMCAxIDEgMCAxODIuODU3MTQzIDkxLjQyODU3MSA5MS40Mjg1NzEgMCAwIDEgMC0xODIuODU3MTQzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImRlbGV0ZSIgdW5pY29kZT0iJiM1ODkxMTsiIGQ9Ik0xMzUuODgxNDgtMTE0Ljk4MjQzMWExMDcuNTA0NjQyIDEwNy41MDQ2NDIgMCAwIDAtOC41NTY0OTIgOC41NTY0OTJjMy4xNDQ2OTQtMy4wNzE1NjEgNS43MDQzMjgtNi4wNjk5OSA4LjU1NjQ5Mi04LjU1NjQ5MnogbS0xMC45Njk4NjEgNC42ODA0NzRjLTIuOTI1Mjk2IDIuNzc5MDMyLTUuODUwNTkzIDUuNDg0OTMxLTguNjI5NjI1IDguNTU2NDkyIDIuNzA1ODk5LTMuMDcxNTYxIDUuNjMxMTk2LTUuODUwNTkzIDguNTU2NDkyLTguNTU2NDkyek0xMDExLjc4ODM1IDczNy4wODMyNzRhNDIuOTI4NzI0IDQyLjkyODcyNCAwIDAgMS0yOS45ODQyODggMTIuMjEzMTEyaC0yMTAuMTgyNTQ1djY1LjgxOTE2OUM3NzEuNjk0NjUgODU5Ljc5OTQ1NyA3MzUuNjQwMzcyIDg5NiA2OTEuMzk1MjY0IDg5NkgzMzIuMzg4MjY1QzI4OC4xNDMxNTcgODk2IDI1Mi4wODg4NzkgODU5Ljc5OTQ1NyAyNTIuMDg4ODc5IDgxNS4xODg2ODd2LTY1Ljg5MjMwMUg0MC43MzYyMTVBNDAuOTU0MTQ5IDQwLjk1NDE0OSAwIDAgMSAwLjAwMTQ2MyA3MDguMTk1OTcyYzAtMjIuNjcxMDQ3IDE4LjI4MzEwMi00MC45NTQxNDkgNDAuODA3ODg0LTQwLjk1NDE0OWgzNS45ODExNDZ2LTcxNC4yODQyNDZjMC00NC42MTA3NyAzNS45ODExNDYtODAuODExMzEzIDgwLjI5OTM4Ni04MC44MTEzMTJoNzIxLjA4NTU1OWM0NC4zMTgyNCAwIDgwLjI5OTM4NiAzNi4yMDA1NDMgODAuMjk5Mzg2IDgwLjgxMTMxMlY2NjcuMTY4NjloMjMuNDAyMzcxYzIyLjUyNDc4MiAwIDQxLjk3ODAwMyAxOC4yODMxMDIgNDEuOTc4MDAzIDQxLjAyNzI4MmE0MC42NjE2MiA0MC42NjE2MiAwIDAgMS0xMS45OTM3MTUgMjguODg3MzAyek0zMzIuMjQyIDgxNC45NjkyOWgzNTguNzE0NDY5di02Ni4zMzEwOTVIMzMyLjI0MnogbTU0NS43ODcxNzMtODYxLjg2NTQ0OEgxNTcuMDg5ODc5VjY2Ny4yNDE4MjNoNzIwLjkzOTI5NHpNNTExLjM0MzI3MSA1MjkuNjA2NjI4Yy0yMi42NzEwNDcgMC00MC45NTQxNDktMTguNTAyNS00MC45NTQxNDktNDEuMzE5ODEydi0zODIuODQ4MTY0YzAtMjIuNzQ0MTc5IDE4LjI4MzEwMi00MS4yNDY2NzkgNDAuOTU0MTQ5LTQxLjI0NjY3OXM0MS4wMjcyODIgMTguNTAyNSA0MS4wMjcyODIgNDEuMjQ2Njc5VjQ4OC4zNTk5NDlhNDEuMTAwNDE0IDQxLjEwMDQxNCAwIDAgMS00MC45NTQxNDkgNDEuMzE5ODExeiBtLTIyMi4xMDMxMjggMGMtMjIuNjcxMDQ3IDAtNDAuOTU0MTQ5LTE4LjUwMjUtNDAuOTU0MTQ5LTQxLjMxOTgxMnYtMzgyLjg0ODE2NGMwLTIyLjc0NDE3OSAxOC4yODMxMDItNDEuMjQ2Njc5IDQwLjk1NDE0OS00MS4yNDY2NzlzNDAuOTU0MTQ5IDE4LjUwMjUgNDAuOTU0MTQ5IDQxLjI0NjY3OVY0ODguMzU5OTQ5YTQxLjEwMDQxNCA0MS4xMDA0MTQgMCAwIDEtNDAuOTU0MTQ5IDQxLjMxOTgxMXogbTQ0Mi4wMTIyODQgMGMtMjIuNjcxMDQ3IDAtNDEuMDI3MjgyLTE4LjUwMjUtNDEuMDI3MjgyLTQxLjMxOTgxMnYtMzgyLjg0ODE2NGMwLTIyLjc0NDE3OSAxOC4yODMxMDItNDEuMjQ2Njc5IDQwLjk1NDE1LTQxLjI0NjY3OXM0MS4wMjcyODIgMTguNTAyNSA0MS4wMjcyODEgNDEuMjQ2Njc5VjQ4OC4zNTk5NDlhNDEuMTAwNDE0IDQxLjEwMDQxNCAwIDAgMS00MC45NTQxNDkgNDEuMzE5ODExeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InZpc2libGUiIHVuaWNvZGU9IiYjNTg5MTI7IiBkPSJNNTEyLjAzODAzNC01NC44NTcxNDNDMTc5Ljc1MDAzNC01NC44NTcxNDMgNDMuMDQ2MDM0IDIyMy41MjQ1NzEgNy4zNTIzMiAzMDguODA5MTQzYTEwNS4xMDYyODYgMTA1LjEwNjI4NiAwIDAgMCAwIDc3LjIzODg1N0M0My4xMTkxNzcgNDcxLjMzMjU3MSAxNzkuODIzMTc3IDc0OS43MTQyODYgNTEyLjAzODAzNCA3NDkuNzE0Mjg2YzMzMC43NTIgMCA0NjkuMDY1MTQzLTI3OC4zODE3MTQgNTA0LjY4NTcxNS0zNjMuNjY2Mjg2IDkuODAxMTQzLTI1LjIzNDI4NiA5LjgwMTE0My01Mi4wMDQ1NzEgMC03Ny4yMzg4NTdDOTgxLjEwMzE3NyAyMjMuNTI0NTcxIDg0Mi43OTAwMzQtNTQuODU3MTQzIDUxMi4wMzgwMzQtNTQuODU3MTQzek03NS40NDgzMiAzNjAuNTk0Mjg2YTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMC0yNC43OTU0MjlDMTA1LjM2Mzc0OSAyNjAuMDk2IDIyNS45MDMxNzcgMTguMjg1NzE0IDUxMi4wMzgwMzQgMTguMjg1NzE0YzI4Ni4yMDggMCA0MDYuNjc0Mjg2IDI0MS43MzcxNDMgNDM2LjU4OTcxNSAzMTUuOTc3MTQzYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMCAyNC43OTU0MjlDOTE4LjcxMjMyIDQzNC43NjExNDMgNzk4LjI0NjAzNCA2NzYuNTcxNDI5IDUxMi4wMzgwMzQgNjc2LjU3MTQyOSAyMjUuOTAzMTc3IDY3Ni41NzE0MjkgMTA1LjM2Mzc0OSA0MzQuODM0Mjg2IDc1LjQ0ODMyIDM2MC41OTQyODZ6TTUxMi4wMzgwMzQgMTY0LjU3MTQyOWMtMTAwLjc5MDg1NyAwLTE4Mi44NTcxNDMgODIuNjUxNDI5LTE4Mi44NTcxNDMgMTgyLjg1NzE0MlM0MTEuMjQ3MTc3IDUzMC4yODU3MTQgNTEyLjAzODAzNCA1MzAuMjg1NzE0czE4Mi44NTcxNDMtODIuNjUxNDI5IDE4Mi44NTcxNDMtMTgyLjg1NzE0M1M2MTIuODI4ODkxIDE2NC41NzE0MjkgNTEyLjAzODAzNCAxNjQuNTcxNDI5eiBtMCAyOTIuNTcxNDI4Yy02MC4xMjM0MjkgMC0xMDkuNzE0Mjg2LTQ5LjAwNTcxNC0xMDkuNzE0Mjg1LTEwOS43MTQyODZTNDUxLjMyOTQ2MyAyMzcuNzE0Mjg2IDUxMi4wMzgwMzQgMjM3LjcxNDI4NnMxMDkuNzE0Mjg2IDQ5LjAwNTcxNCAxMDkuNzE0Mjg2IDEwOS43MTQyODVTNTcyLjE2MTQ2MyA0NTcuMTQyODU3IDUxMi4wMzgwMzQgNDU3LjE0Mjg1N3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ6b29tLXRvIiB1bmljb2RlPSImIzU4OTEzOyIgZD0iTTg3MS40OTcxNDMgODM3LjQ4NTcxNGM0My44ODU3MTQgMCA3OS4zNi0zNS41NDc0MjkgNzkuMzYtNzkuMzZWNDQxLjc4Mjg1N2gtODAuNDU3MTQzVjY4Mi42NDIyODZjMCA0MS4xMDYyODYtMzMuMjggNzQuMzg2Mjg2LTc0LjM4NjI4NiA3NC4zODYyODVINTUzLjY5MTQyOUw1NTMuMzI1NzE0IDgzNy40ODU3MTR6IG0tNzUuNDgzNDI5LTg4NS43NmM0MS4xMDYyODYgMCA3NC4zODYyODYgMzMuMjggNzQuMzg2Mjg2IDc0LjM4NjI4NlYyNzcuMjExNDI5SDk1MC44NTcxNDN2LTMzMC44MjUxNDNjMC00MS4xMDYyODYtMzMuMjgtNzQuMzg2Mjg2LTc0LjM4NjI4Ni03NC4zODYyODZINTUzLjMyNTcxNHY3OS43MjU3MTR6TTAuMDczMTQzIDc1OC4xMjU3MTRDMCA4MDIuMDExNDI5IDM1LjU0NzQyOSA4MzcuNDg1NzE0IDc5LjM2IDgzNy40ODU3MTRoMzE2LjQxNnYtODAuNDU3MTQzSDE1NC4xMTJjLTQxLjEwNjI4NiAwLTc0LjM4NjI4Ni0zMy4yOC03NC4zODYyODYtNzQuMzg2Mjg1di0yNDAuOTMyNTcySDB6TTc5LjM2IDI3Ny4yMTE0Mjl2LTI1MS4wOTk0MjljMC00MS4xMDYyODYgMzMuMjgtNzQuMzg2Mjg2IDc0LjM4NjI4Ni03NC4zODYyODZIMzk1LjcwMjg1N1YtMTI4SDc0LjM4NjI4NkE3NC4zODYyODYgNzQuMzg2Mjg2IDAgMCAwIDAtNTMuNjEzNzE0VjI3Ny4yMTE0Mjl6TTY3OC43NjU3MTQgNDA4LjcyMjI4NnYtODkuNkg1MTkuNDYwNTcxdi0xNTQuMTg1MTQzSDQyOS43ODc0MjlWMzE5LjEyMjI4NkgyNzIuMzg0VjQwOC43MjIyODZoMTU3LjQwMzQyOVY1NjMuOTMxNDI5aDg5LjY3MzE0MnYtMTU1LjIwOTE0M3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJvdXRwdXQiIHVuaWNvZGU9IiYjNTg5MTQ7IiBkPSJNMzI1LjQxMjU3MSA0MTMuNDc2NTcxYTQ0LjMyNDU3MSA0NC4zMjQ1NzEgMCAwIDEtMzEuNjcwODU3LTEzLjE2NTcxNCA0NC4zMjQ1NzEgNDQuMzI0NTcxIDAgMCAxIDAtNjMuMDQ5MTQzbDE4Mi4yNzItMTgxLjE3NDg1N2E0NC44MzY1NzEgNDQuODM2NTcxIDAgMCAxIDYzLjM0MTcxNSAwTDcyMS42Mjc0MjkgMzM3LjE4ODU3MWE0NC4zMjQ1NzEgNDQuMzI0NTcxIDAgMCAxIDAgNjMuMTIyMjg2IDQ0Ljk4Mjg1NyA0NC45ODI4NTcgMCAwIDEtNjMuNDg4IDBMNTUyLjQ0OCAyOTUuMjA0NTcxVjg1MS4zODI4NTdDNTUyLjQ0OCA4NzYuMDMyIDUzMi40OCA4OTYgNTA3LjYxMTQyOSA4OTZzLTQ0Ljc2MzQyOS0xOS45NjgtNDQuNzYzNDI5LTQ0LjYxNzE0M3YtNTU2LjE3ODI4NmwtMTA1LjY5MTQyOSAxMDUuMzI1NzE1YTQ1LjIwMjI4NiA0NS4yMDIyODYgMCAwIDEtMzEuNzQ0IDEyLjk0NjI4NXogbTY1OS4wMTcxNDMtMTc4LjEwMjg1N2EzOS40OTcxNDMgMzkuNDk3MTQzIDAgMCAxLTM5LjQ5NzE0My0zOS4zNTA4NTd2LTIyMi4yMDhjMC0xMi44NzMxNDMtMTAuNTMyNTcxLTIzLjQwNTcxNC0yMy41NTItMjMuNDA1NzE0SDEwMi41NDYyODZhMjMuNTUyIDIzLjU1MiAwIDAgMC0yMy41NTIgMjMuNDA1NzE0djIyMi4zNTQyODZhMzkuNDk3MTQzIDM5LjQ5NzE0MyAwIDAgMS03OC45OTQyODYgMHYtMjUzLjUxMzE0M2MwLTM5LjA1ODI4NiAzMS44OTAyODYtNzAuNjU2IDcwLjk0ODU3MS03MC42NTZoODgyLjEwMjg1OGMzOS4yMDQ1NzEgMCA3MC45NDg1NzEgMzEuNzQ0IDcwLjk0ODU3MSA3MC42NTZWMTk2LjAyMjg1N2EzOS40OTcxNDMgMzkuNDk3MTQzIDAgMCAxLTM5LjQ5NzE0MyAzOS4yNzc3MTR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ib3BhY2l0eSIgdW5pY29kZT0iJiM1ODkxNzsiIGQ9Ik02NTQuMjUwNjY3IDI0MS43NDkzMzNIOTM4LjY2NjY2N1YtNDIuNjY2NjY3SDY1NC4yNTA2Njd6TTM2OS43NDkzMzMgNTI2LjI1MDY2N2gyODQuNTAxMzM0di0yODQuNTAxMzM0SDM2OS43NDkzMzN6TTY1NC4yNTA2NjcgODEwLjY2NjY2N0g5MzguNjY2NjY3di0yODQuNDE2SDY1NC4yNTA2Njd6TTg1LjMzMzMzMyAyNDEuNzQ5MzMzaDI4NC40MTZWLTQyLjY2NjY2N0g4NS4zMzMzMzN6TTg1LjMzMzMzMyA4MTAuNjY2NjY3aDI4NC40MTZ2LTI4NC40MTZIODUuMzMzMzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImxheWVyLWluZm8iIHVuaWNvZGU9IiYjNTg5MTk7IiBkPSJNNTEyIDg5NS4wNjEzMzNBNTExLjE0NjY2NyA1MTEuMTQ2NjY3IDAgMSAxIDUxMi0xMjcuMTQ2NjY3IDUxMS4xNDY2NjcgNTExLjE0NjY2NyAwIDAgMSA1MTIgODk1LjE0NjY2N3ogbTAtOTI4LjQyNjY2NmE0MTcuMjggNDE3LjI4IDAgMSAwIDAgODM0LjU2IDQxNy4yOCA0MTcuMjggMCAwIDAgMC04MzQuNTZ6TTQ4OC43ODkzMzMgNjI0Ljg5NmE2MC4xNiA2MC4xNiAwIDEgMSAxMjAuMzIgMCA2MC4xNiA2MC4xNiAwIDAgMS0xMjAuMzIgMHpNNTMxLjYyNjY2NyA3MC44MjY2NjdjLTQ0LjM3MzMzMy0xMS4wOTMzMzMtMTA1LjgxMzMzMy0xMC4wNjkzMzMtMTM2LjUzMzMzNCAyLjIxODY2Ni0zMC43MiAxMi4zNzMzMzMtNDEuODk4NjY3IDU3LjE3MzMzMy0yNC44MzIgOTkuNjY5MzM0bDc2LjU0NCAxOTAuODA1MzMzYTcyLjk2IDcyLjk2IDAgMCAxLTQ5LjE1MiA5OS40OTg2NjdsLTE0LjY3NzMzMyA0LjA5NmMtNDQuMDMyIDEyLjIwMjY2Ny00My4xNzg2NjcgMjguMjQ1MzMzIDEuOTYyNjY3IDM1LjU4NGw0My44NjEzMzMgNy4xNjhjNDUuMjI2NjY3IDcuMzM4NjY3IDEwNy4yNjQgMy4yNDI2NjcgMTM3Ljk4NC05LjA0NTMzNCAzMC43Mi0xMi4zNzMzMzMgNDEuODEzMzMzLTU3LjE3MzMzMyAyNC43NDY2NjctOTkuNTg0bC03MS41MDkzMzQtMTc2LjgxMDY2NmMtMTcuMDY2NjY3LTQyLjQ5NiA0LjM1Mi04Ny44OTMzMzMgNDcuNzAxMzM0LTEwMS4wMzQ2NjcgNDMuMzQ5MzMzLTEzLjA1NiA0Mi40OTYtMzIuODUzMzMzLTEuODc3MzM0LTQ0LjAzMmwtMzQuMTMzMzMzLTguNTMzMzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InNhdmUiIHVuaWNvZGU9IiYjNTg5MjA7IiBkPSJNNzMyLjggODEwLjY4OGwyMDUuODg4LTIwNS44ODh2LTY0Ny40ODhIODUuMzEyVjgxMC42ODh6TTc2OCA4OTZIODUuMzEyQzM4LjQgODk2IDAgODU3LjYgMCA4MTAuNjg4di04NTMuMzc2QzAtODkuNiAzOC40LTEyOCA4NS4zMTItMTI4aDg1My4zNzZDOTg1LjYtMTI4IDEwMjQtODkuNiAxMDI0LTQyLjY4OFY2NDB6TTE3MC42ODggNzI1LjMxMmg0MjYuNjI0di0xNzAuNjI0SDE3MC42ODh6TTUxMiA0Mi42ODhhMTcxLjIgMTcxLjIgMCAwIDAtMTcwLjY4OCAxNzAuNjI0QzM0MS4zMTIgMzA3LjIgNDE4LjExMiAzODQgNTEyIDM4NHMxNzAuNjg4LTc2LjggMTcwLjY4OC0xNzAuNjg4YzAtOTMuODI0LTc2LjgtMTcwLjYyNC0xNzAuNjg4LTE3MC42MjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGF5ZXItc3R5bGUiIHVuaWNvZGU9IiYjNTg5MjE7IiBkPSJNOTkzLjcyODg1MyAzMzMuNTY4di0wLjA4NTMzM0w1MzAuNDU0MTg3IDExNC4zNDY2NjdsLTAuMTcwNjY3LTAuMDg1MzM0LTAuMjU2LTAuMDg1MzMzYTQyLjgzNzMzMyA0Mi44MzczMzMgMCAwIDAtMzYuNjkzMzMzIDBINDkzLjI0ODg1M2MtMC4wODUzMzMgMC0wLjE3MDY2NyAwLTAuMjU2IDAuMTcwNjY3TDI5LjcxODE4NyAzMzMuNDgyNjY3QTU1LjM4MTMzMyA1NS4zODEzMzMgMCAwIDAgMC4wMjIxODcgMzg0LjI1NmMwIDMwLjI5MzMzMyAyMS41MDQgNTQuNzg0IDQ3Ljk1NzMzMyA1NC43ODQgNi41NzA2NjcgMCAxMi44LTEuNTM2IDE4LjQzMi00LjA5NmwwLjE3MDY2Ny0wLjA4NTMzMyAwLjE3MDY2Ni0wLjA4NTMzNCA0NDUuMDEzMzM0LTIxMC41MTczMzMgNDQ0LjkyOCAyMTAuNTE3MzMzaDAuMjU2bDAuMTcwNjY2IDAuMjU2di0wLjA4NTMzM2E0Mi45MjI2NjcgNDIuOTIyNjY3IDAgMCAwIDE4LjI2MTMzNCA0LjA5NmMyNi40NTMzMzMgMCA0Ny45NTczMzMtMjQuNDkwNjY3IDQ3Ljk1NzMzMy01NC43ODRhNTUuMzgxMzMzIDU1LjM4MTMzMyAwIDAgMC0yOS42MTA2NjctNTAuNjAyNjY3eiBtMCAyMzcuNTY4TDUzMC40NTQxODcgMzUxLjkxNDY2N2gtMC4xNzA2NjdsLTAuMjU2LTAuMTcwNjY3YTQzLjk0NjY2NyA0My45NDY2NjcgMCAwIDAtMTguMjYxMzMzLTQuMjY2NjY3IDQzLjg2MTMzMyA0My44NjEzMzMgMCAwIDAtMTguNDMyIDQuMjY2NjY3bC0wLjE3MDY2NyAwLjA4NTMzMy0wLjI1NiAwLjA4NTMzNC00NjMuMTg5MzMzIDIxOS4zMDY2NjZBNTUuMzgxMzMzIDU1LjM4MTMzMyAwIDAgMCAwLjAyMjE4NyA2MjEuNjUzMzMzYzAgMjIuODY5MzMzIDEyLjM3MzMzMyA0Mi40OTYgMjkuNjk2IDUwLjY4OEw0OTIuOTA3NTIgODkxLjU2MjY2NyA0OTMuMjQ4ODUzIDg5MS43MzMzMzNoMC4xNzA2NjdhNDIuNDk2IDQyLjQ5NiAwIDAgMCAzNi42OTMzMzMgMGgwLjQyNjY2N2w0NjMuMjc0NjY3LTIxOS4zMDY2NjZjMTcuMzIyNjY3LTguMTkyIDI5LjYxMDY2Ny0yNy44MTg2NjcgMjkuNjEwNjY2LTUwLjYwMjY2N2E1NS4zODEzMzMgNTUuMzgxMzMzIDAgMCAwLTI5LjYxMDY2Ni01MC42ODh6TTQ3Ljk3OTUyIDIwMS4zODY2NjdjNi41NzA2NjcgMCAxMi44LTEuNTM2IDE4LjQzMi00LjI2NjY2N0g2Ni41ODIxODdzMC4xNzA2NjcgMCAwLjE3MDY2Ni0wLjE3MDY2N2w0NDUuMDEzMzM0LTIxMC40MzIgNDQ0LjkyOCAyMTAuNDMyIDAuMjU2IDAuMDg1MzM0IDAuMTcwNjY2IDAuMDg1MzMzYTQxLjgxMzMzMyA0MS44MTMzMzMgMCAwIDAgMTguMjYxMzM0IDQuMjY2NjY3YzI2LjQ1MzMzMyAwIDQ3Ljk1NzMzMy0yNC41NzYgNDcuOTU3MzMzLTU0Ljg2OTMzNCAwLTIyLjc4NC0xMi4yODgtNDIuNDEwNjY3LTI5LjYxMDY2Ny01MC42ODhsLTQ2My4yNzQ2NjYtMjE5LjEzNnMtMC4xNzA2NjcgMC0wLjE3MDY2Ny0wLjE3MDY2Nkg1MjkuOTQyMTg3YTQxLjcyOCA0MS43MjggMCAwIDAtMzYuNjkzMzM0IDBINDkzLjI0ODg1M2wtMC4yNTYgMC4xNzA2NjZMMjkuNzE4MTg3IDk1LjgyOTMzM0E1NS40NjY2NjcgNTUuNDY2NjY3IDAgMCAwIDAuMDIyMTg3IDE0Ni41MTczMzNjMCAzMC4yOTMzMzMgMjEuNTA0IDU0Ljg2OTMzMyA0Ny45NTczMzMgNTQuODY5MzM0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImxpbmUtbGF5ZXIiIHVuaWNvZGU9IiYjNTg5MjI7IiBkPSJNNzY3LjMwNjkwOCA1NzcuODQ4NTExTDMxOC4xMzA1ODMgMTI4LjY3MjE4NmExNzAuNjU5Njk4IDE3MC42NTk2OTggMCAxIDAtNDUuNTY2MTM5IDUwLjk0MTkybDQ0My43MTUyMTUgNDQzLjg4NTg3NGExNzAuNjU5Njk4IDE3MC42NTk2OTggMCAxIDAgNTAuOTQxOTE5LTQ1LjU2NjEzOXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJza2luIiB1bmljb2RlPSImIzU4OTIzOyIgZD0iTTkyMC45MDMwNCA4MTYuMjU2aC01NC44NDhjLTUzLjUwNC01Ny40NzItMTY3LjQyNC05My40NC0yNTcuOTg0LTkzLjQ0LTkwLjU2IDAtMjA0LjQ4IDM1Ljk2OC0yNTcuOTIgOTMuNDRoLTU0LjkxMkw5NS42MjMwNCA2MTEuMmw4OS4yOC05MS43MTJhODcuODcyIDg3Ljg3MiAwIDAgMCAxMTkuNTUyLTgyLjExMnYtNDg1LjYzMmg2MDcuMTY4VjQzNy4zNzZhODcuODcyIDg3Ljg3MiAwIDAgMCAxMTkuNjE2IDgyLjExMmw4OS4yOCA5MS43MTJ6TTIyNC43MTEwNCAzNjYuMzM2djcxLjA0YTguMTI4IDguMTI4IDAgMCAxLTguMDY0IDguMzIgNy44MDggNy44MDggMCAwIDEtNS42MzItMi40MzJsLTQuNjcyLTQuOGEzNy40NCAzNy40NCAwIDAgMC01My44MjQgMEwxMS4yMDcwNCA1ODMuNTUyYTM5Ljg3MiAzOS44NzIgMCAwIDAgMCA1NS4yOTZMMjQyLjg4NzA0IDg3Ni44QTYzLjEwNCA2My4xMDQgMCAwIDAgMjg4LjA3MTA0IDg5Nmg2OS42MzJjMTguNDk2IDAgMzYuMjI0LTguMDY0IDQ4LjE5Mi0yMi40NjQgMzUuNzEyLTQzLjA3MiAxMzcuODU2LTcwLjk3NiAyMDIuMTc2LTcwLjk3NnMxNjYuNCAyNy45MDQgMjAyLjI0IDcwLjk3NkE2Mi40NjQgNjIuNDY0IDAgMCAwIDg1OC4zNzUwNCA4OTZIOTI4LjA3MTA0YzE2Ljk2IDAgMzMuMjgtNi45MTIgNDUuMjQ4LTE5LjJsMjMxLjYxNi0yMzcuOTUyYTM5Ljg3MiAzOS44NzIgMCAwIDAgMC01NS4yOTZsLTE0MS4zMTItMTQ1LjA4OGEzNy40NCAzNy40NCAwIDAgMC01My44MjQgMGwtNC42NzIgNC44YTcuNzQ0IDcuNzQ0IDAgMCAxLTUuNjMyIDIuNDMyIDguMTI4IDguMTI4IDAgMCAxLTguMDY0LTguMzJ2LTUwNS44NTZjMC0zMi44OTYtMjUuOTg0LTU5LjUyLTU3Ljk4NC01OS41MkgyODIuNjk1MDRhNTguNzUyIDU4Ljc1MiAwIDAgMC01Ny45ODQgNTkuNTJWMzU2LjM1MnpNNDI1LjkyNzA0IDUwMy42OGgyNjIuOTEyYzI0LjI1NiAwIDQzLjg0LTEzLjg4OCA0My44NC0zMS4wNHYtMjQ4LjMyYzAtMTcuMTUyLTE5LjU4NC0zMS4wNC00My44NC0zMS4wNEg0MjUuOTI3MDRjLTI0LjE5MiAwLTQzLjc3NiAxMy44ODgtNDMuNzc2IDMxLjA0djI0OC4zMmMwIDE3LjE1MiAxOS41ODQgMzEuMDQgNDMuNzc2IDMxLjA0eiIgIGhvcml6LWFkdi14PSIxMjE2IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Im1hcmtlci1sYXllciIgdW5pY29kZT0iJiM1ODkyNDsiIGQ9Ik01MTIgODk2QzI3Ni4zOTQ2NjcgODk2IDg1LjMzMzMzMyA3MDkuNzE3MzMzIDg1LjMzMzMzMyA0ODBTNTEyLTEyOCA1MTItMTI4czQyNi42NjY2NjcgMzc4LjI4MjY2NyA0MjYuNjY2NjY3IDYwOFM3NDcuNjA1MzMzIDg5NiA1MTIgODk2eiBtMC01OTcuMzMzMzMzYTE3MC42NjY2NjcgMTcwLjY2NjY2NyAwIDEgMCAwIDM0MS4zMzMzMzMgMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMCAwIDAtMzQxLjMzMzMzM3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwb2ludC1sYXllciIgdW5pY29kZT0iJiM1ODkyNTsiIGQ9Ik02ODIuNjY2NjY3IDM4NGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAwIDAgMC01MTJ6TTE3MC42NjY2NjcgMTI4YTE3MC42NjY2NjcgMTcwLjY2NjY2NyAwIDEgMCAwIDM0MS4zMzMzMzMgMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMCAwIDAtMzQxLjMzMzMzM3ogbTU1NC42NjY2NjYtMTcwLjY2NjY2N2ExMjggMTI4IDAgMSAwIDAgMjU2IDEyOCAxMjggMCAwIDAgMC0yNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icG9seWdvbi1sYXllciIgdW5pY29kZT0iJiM1ODkyNjsiIGQ9Ik0xNjAgNTc2YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHogbTcwNCAwYTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHogbTAtNzA0YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHogbS03MDQgMGExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAwIDAgMC0zMjB6TTMyMCA3NjhoMzg0di02NGgtMzg0eiBtMC03MDRoMzg0di02NGgtMzg0eiBtLTEyOCA1MTJ2LTM4NEgxMjh2Mzg0eiBtNzA0IDB2LTM4NGgtNjR2Mzg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImludmlzaWJsZSIgdW5pY29kZT0iJiM1ODkyNzsiIGQ9Ik0zMDYuMTQwODkxIDIyLjg5MzcxNGw1Ni41Mzk0MjkgNTYuNjEyNTcyQTQ0Ni4wMjUxNDMgNDQ2LjAyNTE0MyAwIDAgMSA1MTIuMDM4MDM0IDU0Ljg1NzE0M2MyODYuMjA4IDAgNDA2LjY3NDI4NiAyNDEuNzM3MTQzIDQzNi41ODk3MTUgMzE1Ljk3NzE0M2EzNC43NDI4NTcgMzQuNzQyODU3IDAgMCAxIDAgMjQuNzk1NDI4IDU3OC44NTI1NzEgNTc4Ljg1MjU3MSAwIDAgMS0xMDIuOTg1MTQzIDE2Ni43NjU3MTVsNTEuMTI2ODU3IDUxLjJhNjg5LjY2NCA2ODkuNjY0IDAgMCAwIDExOS45NTQyODYtMTkwLjk3NmM5LjgwMTE0My0yNS4yMzQyODYgOS44MDExNDMtNTIuMDA0NTcxIDAtNzcuMjM4ODU4Qzk4MS4xMDMxNzcgMjYwLjA5NiA4NDIuNzkwMDM0LTE4LjI4NTcxNCA1MTIuMDM4MDM0LTE4LjI4NTcxNGE1MTEuMDQ5MTQzIDUxMS4wNDkxNDMgMCAwIDAtMjA1Ljg5NzE0MyA0MS4yNTI1NzF6IG0tMTc5LjEyNjg1NyAxMzEuMjkxNDI5QTY4OC41NjY4NTcgNjg4LjU2Njg1NyAwIDAgMCA3LjM1MjMyIDM0NS4zODA1NzFhMTA1LjEwNjI4NiAxMDUuMTA2Mjg2IDAgMCAwIDAgNzcuMjM4ODU4QzQyLjk3Mjg5MSA1MDcuOTA0IDE3OS43NTAwMzQgNzg2LjI4NTcxNCA1MTIuMDM4MDM0IDc4Ni4yODU3MTRjNzkuMjEzNzE0IDAgMTQ3LjM4Mjg1Ny0xNS45NDUxNDMgMjA1LjY3NzcxNS00MS4zOTg4NTdsLTU2LjMyLTU2LjM5MzE0M0E0NDYuMDI1MTQzIDQ0Ni4wMjUxNDMgMCAwIDEgNTEyLjAzODAzNCA3MTMuMTQyODU3Yy0yODYuMjA4IDAtNDA2LjY3NDI4Ni0yNDEuNzM3MTQzLTQzNi41ODk3MTQtMzE1Ljk3NzE0M2EzNC43NDI4NTcgMzQuNzQyODU3IDAgMCAxIDAtMjQuNzk1NDI4YzEzLjUzMTQyOS0zNC4yMzA4NTcgNDUuNDk0ODU3LTEwMi40IDEwMi45ODUxNDMtMTY2Ljc2NTcxNXogbTM1OS4xMzE0MjkgNDguNzg2Mjg2bDEwMS4wMTAyODYgMTAxLjAxMDI4NSA0LjkwMDU3MSA0LjgyNzQyOSAxMDEuMDEwMjg2IDEwMS4wMTAyODZhMTgzLjUxNTQyOSAxODMuNTE1NDI5IDAgMCAwLTIwNi45MjExNDMtMjA2LjkyMTE0M3pNMzMxLjAwOTQ2MyAzNTguMTA3NDI5YTE4My41MTU0MjkgMTgzLjUxNTQyOSAwIDAgMCAyMDYuOTIxMTQzIDIwNi45MjExNDJ6IG01MTcuMTkzMTQzIDM2Mi4wNTcxNDJhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMCAwLTUxLjcxMmwtNjIwLjYxNzE0My02MjAuNjE3MTQyYTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDAtNTEuNzEyIDUxLjcxMmw2MjAuNjE3MTQzIDYyMC42MTcxNDJhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMCA1MS43MTIgMHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzZWFyY2giIHVuaWNvZGU9IiYjNTg5Mjg7IiBkPSJNNzcwLjY1OTU4MiA2ODIuMzExODhhMzUwLjcwNzA2OCAzNTAuNzA3MDY4IDAgMCAxLTQ5OC45MjU2MDIgMCAzNTcuNzQ2ODA4IDM1Ny43NDY4MDggMCAwIDEgMC01MDMuMDIxNDUxIDM1MC43NzEwNjUgMzUwLjc3MTA2NSAwIDAgMSA0OTguOTI1NjAyIDAgMzU3Ljc0NjgwOCAzNTcuNzQ2ODA4IDAgMCAxIDAgNTAzLjAyMTQ1MXogbS01NzUuNzIyNzctNTgwLjQ1ODU5NmMtMTgwLjE1MzM1NyAxODEuNzUzMjk4LTE4MC4xNTMzNTcgNDc2LjIwNjQ0IDAgNjU3Ljg5NTc0YTQ1OC44NjMwNzkgNDU4Ljg2MzA3OSAwIDAgMCA2NTIuNTgzOTM2IDBjMTgwLjE1MzM1Ny0xODEuNjg5MyAxODAuMTUzMzU3LTQ3Ni4xNDI0NDIgMC02NTcuODk1NzRhNDU4Ljg2MzA3OSA0NTguODYzMDc5IDAgMCAwLTY1Mi41ODM5MzYgMHogbTg2Mi4wNDgyMTItMjExLjE5MjIxMmE2Mi43MTc2ODcgNjIuNzE3Njg3IDAgMCAwLTg5LjE0ODcxMyAwbC04OS4xNDg3MTMgODkuODUyNjg3YTYzLjkzMzY0MiA2My45MzM2NDIgMCAwIDAgMCA4OS44NTI2ODYgNjIuNzE3Njg3IDYyLjcxNzY4NyAwIDAgMCA4OS4xNDg3MTMgMGw4OS4xNDg3MTMtODkuODUyNjg2YTYzLjg2OTY0NSA2My44Njk2NDUgMCAwIDAgMC04OS44NTI2ODd6IiAgaG9yaXotYWR2LXg9IjEwODciIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZWRpdCIgdW5pY29kZT0iJiM1ODkzMTsiIGQ9Ik05NzguMjIxNTY0LTM2LjYzMjUxNzAwMDAwMDAxSDQ1Ljc3ODQzNmE0NS43MjYzOTcgNDUuNzI2Mzk3IDAgMCAxIDAtOTEuMzY3NDgzaDkzMi40NDMxMjhhNDUuNzI2Mzk3IDQ1LjcyNjM5NyAwIDAgMSAwIDkxLjM2NzQ4M3pNMjc1Ljg2MDY5NyAxMDAuNDYxMzYzYTUxLjUyNzUwNyA1MS41Mjc1MDcgMCAwIDEgMTguODUzNjA4IDMuODM4OTdoMC40MjY1NTJsMjU5LjY4NDk4NSAxMjIuMTY0NTUyIDIuNjQ0NjIzIDEuMjc5NjU3IDQ0MS43Mzc0NjggNDQyLjUwNTI2MWE3OS41OTQ2NDIgNzkuNTk0NjQyIDAgMCAxIDAgMTEyLjk1MTAyNUw5MTAuMDU4NTIxIDg3Mi40MzU1NWE3OS43NjUyNjMgNzkuNzY1MjYzIDAgMCAxLTExMi45NTEwMjUtMC4xNzA2MjFsLTQzOS45NDU5NDgtNDQwLjIwMTg3OS0yLjA0NzQ1LTEuOTYyMTQtMS4xOTQzNDYtMi41NTkzMTQtMTIxLjQ4MjA2OS0yNTguNDkwNjM4YTQ3LjI2MTk4NSA0Ny4yNjE5ODUgMCAwIDEgMi45MDA1NTUtNDYuNDA4ODhjOC45NTc1OTYtMTMuNjQ5NjcxIDI0LjM5ODc4Ni0yMi4xODA3MTUgNDAuNTIyNDU5LTIyLjE4MDcxNXogbTUyNC42NTkyMTcgNjQ2LjIyNjU5Nmw1Mi44OTI0NzQgNTIuOTc3Nzg0IDczLjAyNTczOC03My4xMTEwNDktNTIuODkyNDc0LTUyLjk3Nzc4NHpNMzY1Ljk0ODUyNCAyMzguODM0ODk4OTk5OTk5OTVsNjQuODM1OTM2IDEzNy45NDY5ODUgMzA1LjA3MDEzOSAzMDUuMzI2MDcgNzMuMDI1NzM4LTczLjExMTA0OEw1MDMuODk1NTA4IDMwMy42NzA4MzV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGF5ZXJzIiB1bmljb2RlPSImIzU4OTMyOyIgZD0iTTU0MC40NDQ0NDQgMjUxLjA1MDY2N0wxLjA4MDg4OSA1NzMuMTU1NTU2IDU0MC40NDQ0NDQgODk1LjIwMzU1Nmw1MzkuMzYzNTU2LTMyMi4wNDh6TTEwMTIuMzk0NjY3IDQzMy4wOTUxMTFsLTY3LjQxMzMzNC00MS45ODRMNTQwLjQ0NDQ0NCAxNTMuMDMxMTExIDY4LjQ5NDIyMiA0MzMuMDk1MTExbC02Ny40MTMzMzMtNDEuOTg0TDU0MC40NDQ0NDQgNjkuMDA2MjIybDUzOS4zNjM1NTYgMzIyLjEwNDg4OXpNMTAxMi4zOTQ2NjcgMjM3LjA1NmwtNjcuNDEzMzM0LTQyLjA0MDg4OUw1NDAuNDQ0NDQ0LTQzLjAwOHYtNi45OTczMzNsLTQ3MS45NTAyMjIgMjgwLjA2NC02Ny40MTMzMzMtMzUuMDQzNTU2TDU0MC40NDQ0NDQtMTI3LjAzMjg4OWw1MzkuMzYzNTU2IDMyMi4wNDh6IiAgaG9yaXotYWR2LXg9IjEwODAiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYmFzZWxheWVyIiB1bmljb2RlPSImIzU4OTMzOyIgZD0iTTEwMjIuOTc2IDM4NC4zOTgyMjJDMTAyMi45NzYgNjY2LjM5NjQ0NCA3OTQuMTY4ODg5IDg5NC45NzYgNTEyIDg5NC45NzYgMjI5LjgzMTExMSA4OTQuOTc2IDEuMDI0IDY2Ni4zOTY0NDQgMS4wMjQgMzg0LjM5ODIyMmMwLTI2MC40MzczMzMgMTk1LjI0MjY2Ny00NzUuMzYzNTU2IDQ0Ny40MzExMTEtNTA2LjU5NTU1NWEyNTUuMjYwNDQ0IDI1NS4yNjA0NDQgMCAwIDEgNjguODkyNDQ1LTMuOTI1MzM0YzI3OS43MjI2NjcgMi45MDEzMzMgNTA1LjYyODQ0NCAyMzAuNCA1MDUuNjI4NDQ0IDUxMC41MjA4ODl6IG0tNzMuMTAyMjIyLTcuMjI0ODg5YTQ5OS44MjU3NzggNDk5LjgyNTc3OCAwIDAgMS05Ljk1NTU1NiA3NC42MzgyMjNjMC40NTUxMTEgOC42NDcxMTEgMC41Njg4ODkgMTYuODk2IDAuMzQxMzM0IDI0LjQ2MjIyMmE0MzkuMDExNTU2IDQzOS4wMTE1NTYgMCAwIDAgOS42NzExMTEtOTkuMTAwNDQ1ek03NC4wNjkzMzMgMzg0LjM5ODIyMmMwIDMwLjk0NzU1NiAzLjE4NTc3OCA2MS4xNTU1NTYgOS4zMjk3NzggOTAuMjgyNjY3IDE4Ljg4NzExMS0yMC4yNTI0NDQgNjMuNDg4LTE5Ljc0MDQ0NCA3NC4zNTM3NzggMTAuNDY3NTU1IDE5LjQ1Ni0xMS42MDUzMzMgNDUuNTY4LTEzLjY1MzMzMyA0NS41NjgtMzYuODY0IDAtNzYuNDU4NjY3IDIuNzMwNjY3LTE1OC40MzU1NTYgNzIuMjQ4ODg5LTE1OS43NDQgMS45MzQyMjIgMCAzOC42ODQ0NDQtMTMuOTM3Nzc4IDU2LjIwNjIyMi01OS4zMzUxMTEgNi4wODcxMTEtMTUuNzAxMzMzIDMwLjAzNzMzMyAwIDU2LjMyIDAgMTMuMDg0NDQ0IDAgMC0yMi4wNzI4ODkgMC02OS44NTk1NTUgMC00Ny41NTkxMTEgMTAyLjU3MDY2Ny0xMjAuODMyIDEwMi41NzA2NjctMTIwLjgzMmE1NTAuNTEzNzc4IDU1MC41MTM3NzggMCAwIDEgMy40MTMzMzMtNzcuMzEyIDE3MS43NDc1NTYgMTcxLjc0NzU1NiAwIDAgMS01OC4wMjY2NjctNy44NTA2NjdjLTIwNS42NTMzMzMgMzUuOTUzNzc4LTM2MS45ODQgMjE1LjI2NzU1Ni0zNjEuOTg0IDQzMS4wNDcxMTF6IG01NDUuNzM1MTExLTQyNC4yMjA0NDRjLTIuMjc1NTU2IDExLjA5MzMzMy0xMi4xNzQyMjIgMTcuMTgwNDQ0LTMwLjMyMTc3NyAxMi40NTg2NjYgMTQuNDQ5Nzc4IDYxLjU1Mzc3OCAyMS41MDQgOTYuMDI4NDQ0IDUxLjcxMiAxMjIuMjU0MjIzIDQzLjYzMzc3OCAzNy44MzExMTEgNS4xNzY4ODkgNzkuOTI4ODg5LTI4LjA0NjIyMyA3NC45Nzk1NTUtMjYuMTY4ODg5LTMuOTgyMjIyLTkuNjcxMTExIDMyLjQyNjY2Ny0zMi45OTU1NTUgMzQuNDE3Nzc4LTIzLjQzODIyMiAxLjk5MTExMS01My45MzA2NjcgNDguNDY5MzMzLTg3LjYwODg4OSA2NC41MTItMTcuODA2MjIyIDguNDE5NTU2LTM1LjM4NDg4OSAzMS4xMTgyMjItNjIuODYyMjIyIDMyLjE0MjIyMi0yNC40MDUzMzMgMC45NjcxMTEtNjAuMDE3Nzc4LTIwLjU5Mzc3OC02MC4wMTc3NzgtMy45ODIyMjIgMCA1My41MzI0NDQtNS40MDQ0NDQgOTEuNzYxNzc4LTYuNTQyMjIyIDEwNi45NTExMTEtMC45MTAyMjIgMTIuMjg4LTcuOTY0NDQ0IDQuMTUyODg5IDI0Ljk3NDIyMiAzLjQxMzMzMyAxNy45Mi0wLjUxMiA5LjEwMjIyMiAzNi4wMTA2NjcgMjYuOTA4NDQ0IDM3LjQzMjg4OSAxNy40NjQ4ODkgMS4zNjUzMzMgNTguOTkzNzc4LTE2LjMyNzExMSA2OS41NzUxMTItOS4yNzI4ODkgOS44NDE3NzggNi41NDIyMjIgNzIuMzA1Nzc4LTE2My45NTM3NzggNzIuMzA1Nzc3LTI4LjE2IDAgMTYuMDk5NTU2LTguMzYyNjY3IDQ0LjA4ODg4OSAwIDU5LjMzNTExMiAzMi45OTU1NTYgNjAuMzAyMjIyIDYzLjg4NjIyMiAxMDkuNDU0MjIyIDYxLjA5ODY2NyAxMTYuNjIyMjIyLTEuNTM2IDQuMDM5MTExLTMzLjczNTExMSA3LjM5NTU1Ni01OS41MDU3NzgtMS4yNTE1NTYtOC43MDQtMi45MDEzMzMgMi43ODc1NTYtMTYuNDk3Nzc4LTkuNjcxMTExLTE5LjM5OTExMS00Ni44MTk1NTYtMTAuODA4ODg5LTg4LjE3Nzc3OCAxMi41NzI0NDQtNzMuNjcxMTExIDM0LjU4ODQ0NSAxNC43OTExMTEgMjIuNTI4IDY4LjQ5NDIyMiA5Ljg0MTc3OCA3My4yMTYgNTUuMDY4NDQ0IDIuNzMwNjY3IDI1Ljg4NDQ0NCA0Ljk0OTMzMyA1NS45MjE3NzggNi40ODUzMzMgNzguMjIyMjIyIDYyLjkxOTExMS05Ljg0MTc3OCA1NS45Nzg2NjcgODEuNjkyNDQ0LTM3LjU0NjY2NiA5MS40NzczMzRhNDM4LjEwMTMzMyA0MzguMTAxMzMzIDAgMCAwIDQwOC42MzI4ODktMjk0LjE3MjQ0NSAxNy44NjMxMTEgMTcuODYzMTExIDAgMCAxLTEwLjQ2NzU1NiA0Ljc3ODY2N2MtMjguMjczNzc4IDcwLjY1Ni05Ni45OTU1NTYgMTkuNTEyODg5LTczLjY3MTExMS00Mi44MzczMzQtMTI0Ljg3MTExMS05NS45NzE1NTYtOTIuODk5NTU2LTE2Mi44NzI4ODktNTEuODgyNjY3LTIwMS4yMTYgMjEuNjE3Nzc4LTIwLjEzODY2NyA0Mi4xNTQ2NjctNTAuNDAzNTU2IDU1LjU4MDQ0NS03Mi4xOTItMTQuNjIwNDQ0LTQyLjQ5NiA1My43MDMxMTEtMjUuNDg2MjIyIDg3LjM4MTMzMyA0Ni42NDg4ODlhNDM4LjYxMzMzMyA0MzguNjEzMzMzIDAgMCAwLTMxMy4wNTk1NTYtMzAyLjgxOTU1NXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzZXR0aW5nIiB1bmljb2RlPSImIzU4OTM0OyIgZD0iTTk1MC44NDA4ODkgNDU3LjE1OTExMWgtODEuMTgwNDQ1YTM2NC44Mjg0NDQgMzY0LjgyODQ0NCAwIDAgMS01My4zNjE3NzcgMTI3LjI2MDQ0NWw1Ny43NDIyMjIgNTcuNzk5MTExYTcyLjgxNzc3OCA3Mi44MTc3NzggMCAxIDEtMTAzLjEzOTU1NiAxMDMuMTM5NTU1bC01Ny43NDIyMjItNTcuNzk5MTExYTM1MC40MzU1NTYgMzUwLjQzNTU1NiAwIDAgMS0xMjggNTQuODQwODg5VjgyMi44NDA4ODlDNTg1LjE1OTExMSA4NjMuMDYxMzMzIDU1Mi4yMjA0NDQgODk2IDUxMiA4OTZTNDM4Ljg0MDg4OSA4NjMuMDYxMzMzIDQzOC44NDA4ODkgODIyLjg0MDg4OVY3NDIuNGEzNjEuOTI3MTExIDM2MS45MjcxMTEgMCAwIDEtMTI4LTU0LjEwMTMzM0wyNTMuMTU1NTU2IDc0Ni4wNDA4ODlhNzIuODE3Nzc4IDcyLjgxNzc3OCAwIDAgMS0xMDMuMTM5NTU2IDAgNzIuODE3Nzc4IDcyLjgxNzc3OCAwIDAgMSAwLTEwMy4xMzk1NTZMMjA3LjY0NDQ0NCA1ODUuMTU5MTExYTM3NC4zODU3NzggMzc0LjM4NTc3OCAwIDAgMS01My4zNjE3NzctMTI4SDczLjE1OTExMUMzMi45Mzg2NjcgNDU3LjE1OTExMSAwIDQyNC4yMjA0NDQgMCAzODRzMzIuOTM4NjY3LTczLjE1OTExMSA3My4xNTkxMTEtNzMuMTU5MTExaDgxLjE4MDQ0NWM5LjUwMDQ0NC00Ni44MTk1NTYgMjguNTAxMzMzLTg5LjIwMTc3OCA1My4zNjE3NzctMTI3LjI2MDQ0NWwtNTcuNzQyMjIyLTU3Ljc5OTExMWE3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxIDAtMTAzLjA4MjY2NiA3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxIDEwMy4xMzk1NTYgMGw1Ny43NDIyMjIgNTcuNzQyMjIyYTM1MC40MzU1NTYgMzUwLjQzNTU1NiAwIDAgMSAxMjgtNTQuODQwODg5di04MC40NDA4ODlDNDM4Ljg0MDg4OS05NS4wNjEzMzMgNDcxLjc3OTU1Ni0xMjggNTEyLTEyOHM3My4xNTkxMTEgMzIuOTM4NjY3IDczLjE1OTExMSA3My4xNTkxMTFWMjUuNmEzNjEuOTI3MTExIDM2MS45MjcxMTEgMCAwIDEgMTI4IDU0LjEwMTMzM2w1Ny43NDIyMjItNTcuNzQyMjIyYzI4LjU1ODIyMi0yOC41NTgyMjIgNzQuNjM4MjIyLTI4LjU1ODIyMiAxMDMuMTM5NTU2IDBzMjguNTU4MjIyIDc0LjU4MTMzMyAwIDEwMy4xMzk1NTZsLTU3Ljc0MjIyMiA1Ny43NDIyMjJhMzcwLjc0NDg4OSAzNzAuNzQ0ODg5IDAgMCAxIDUzLjM2MTc3NyAxMjcuMjYwNDQ0aDgxLjE4MDQ0NWE3My41MDA0NDQgNzMuNTAwNDQ0IDAgMCAxIDAgMTQ3LjAwMDg4OXpNNTEyIDIzNy43Mzg2NjdBMTQ2LjcxNjQ0NCAxNDYuNzE2NDQ0IDAgMCAwIDM2NS43Mzg2NjcgMzg0IDE0Ni43MTY0NDQgMTQ2LjcxNjQ0NCAwIDAgMCA1MTIgNTMwLjI2MTMzMyAxNDYuNzE2NDQ0IDE0Ni43MTY0NDQgMCAwIDAgNjU4LjI2MTMzMyAzODQgMTQ2LjcxNjQ0NCAxNDYuNzE2NDQ0IDAgMCAwIDUxMiAyMzcuNzM4NjY3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImFkZCIgdW5pY29kZT0iJiM1ODkzNjsiIGQ9Ik0wIDQ2OS4zMzMzMzNoMTAyNHYtMTcwLjY2NjY2Nkgwek00MjYuNjY2NjY3IDg5NmgxNzAuNjY2NjY2di0xMDI0SDQyNi42NjY2Njd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icHJldmlldyIgdW5pY29kZT0iJiM1ODkzNTsiIGQ9Ik03NzIuMzUyIDE5Ny42MzJjOTIuMTYgMTI2LjU0OTMzMyA4MC4wNDI2NjcgMzAxLjk5NDY2Ny0zMS4wNjEzMzMgNDEyLjQxNkEzMTYuMzMwNjY3IDMxNi4zMzA2NjcgMCAwIDEgNTE1Ljc1NDY2NyA3MDMuMTQ2NjY3Yy04NS4xNjI2NjcgMC0xNjUuMTItMzMuMzY1MzMzLTIyNS41MzYtOTMuMTg0YTMyMC40MjY2NjcgMzIwLjQyNjY2NyAwIDAgMS05Mi42NzItMjI1LjUzNkEzMTguNDY0IDMxOC40NjQgMCAwIDEgNTE2LjI2NjY2NyA2NS45NjI2NjdjNjcuMjQyNjY3IDAgMTMxLjc1NDY2NyAyMS4zMzMzMzMgMTg2Ljk2NTMzMyA2Mi4xMjI2NjZsMTY1LjcxNzMzMy0xNjUuMTJhNDguMjk4NjY3IDQ4LjI5ODY2NyAwIDAgMSA2OS4xMiAwIDQ4Ljk4MTMzMyA0OC45ODEzMzMgMCAwIDEgMCA2OS4xMnogbS00MTIuNTg2NjY3IDMwLjQ2NGEyMjAuNjcyIDIyMC42NzIgMCAwIDAgMTU2LjU4NjY2NyAzNzYuNzQ2NjY3IDIyMC42NzIgMjIwLjY3MiAwIDAgMCAxNTYuNTAxMzMzLTM3Ni42NjEzMzRjLTgzLjQ1Ni04Mi44NTg2NjctMjI5LjU0NjY2Ny04Mi44NTg2NjctMzEzLjA4OCAwek03NjIuNTM4NjY3IDg5NS4zMTczMzNIMjYxLjk3MzMzM2EyNjEuMzc2IDI2MS4zNzYgMCAwIDEtMjYxLjIwNTMzMy0yNjEuMTJ2LTUwMC4zOTQ2NjZhMjYxLjM3NiAyNjEuMzc2IDAgMCAxIDI2MS4xMi0yNjEuMTJoMjcxLjcwMTMzM2E0OC44MTA2NjcgNDguODEwNjY3IDAgMSAxIDAgOTcuNzkySDI2MS45NzMzMzNhMTYyLjk4NjY2NyAxNjIuOTg2NjY3IDAgMCAwLTE2Mi44MTYgMTYyLjczMDY2NlY2MzMuNkExNjIuOTg2NjY3IDE2Mi45ODY2NjcgMCAwIDAgMjYxLjk3MzMzMyA3OTYuMzMwNjY3aDUwMC41NjUzMzRhMTYyLjk4NjY2NyAxNjIuOTg2NjY3IDAgMCAwIDE2Mi45ODY2NjYtMTYyLjczMDY2N3YtMjY2LjI0YTQ4LjgxMDY2NyA0OC44MTA2NjcgMCAxIDEgOTcuNzA2NjY3IDBWNjM0LjYyNEEyNjAuNzc4NjY3IDI2MC43Nzg2NjcgMCAwIDEgNzYyLjUzODY2NyA4OTUuMzE3MzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InJlZnJlc2giIHVuaWNvZGU9IiYjNTg5Mzc7IiBkPSJNNjk4LjAwMjI4NiAxMTEuMTc3MTQzYTMxNi41NjIyODYgMzE2LjU2MjI4NiAwIDAgMC0xODkuODc4ODU3LTU5Ljk3NzE0M2MtOC45OTY1NzEgMC4wNzMxNDMtMTcuNzczNzE0IDAuNzMxNDI5LTI2LjU1MDg1OCAxLjQ2Mjg1Ny0zLjY1NzE0MyAwLjM2NTcxNC03LjE2OCAwLjk1MDg1Ny0xMC43NTIgMS40NjI4NTdhMjYxLjEyIDI2MS4xMiAwIDAgMC0yMC40OCAzLjIxODI4NmMtNC4xNjkxNDMgMC43MzE0MjktOC4yNjUxNDMgMS45NzQ4NTctMTIuMjg4IDIuOTI1NzE0LTYuNTgyODU3IDEuNDYyODU3LTEzLjE2NTcxNCAyLjkyNTcxNC0xOS42NzU0MjggNC45MDA1NzItMi45OTg4NTcgMS4yNDM0MjktNS45MjQ1NzEgMi4xOTQyODYtOC45OTY1NzIgMy40Mzc3MTRhMjQzLjM0NjI4NiAyNDMuMzQ2Mjg2IDAgMCAwLTIyLjAxNiA4LjE5MmwtNC44Mjc0MjggMS45NzQ4NTdhNTQ4LjU3MTQyOSA1NDguNTcxNDI5IDAgMCAwLTI0LjcyMjI4NiAxMi4zNjExNDNsLTEuMDI0IDAuNTg1MTQzYTMyNC40NjE3MTQgMzI0LjQ2MTcxNCAwIDAgMC03My44NzQyODYgNTYuODMybC0xLjAyNCAxLjI0MzQyOGEyNzUuMDkwMjg2IDI3NS4wOTAyODYgMCAwIDAtMTkuMzgyODU3IDIxLjg2OTcxNUEzMzYuODIyODU3IDMzNi44MjI4NTcgMCAwIDAgMTg3Ljc1NzcxNCAzODRoODUuNDMwODU3TDEzNi42MzA4NTcgNTk0LjI4NTcxNCAwLjA3MzE0MyAzODRoODUuMjg0NTcxYzAtOTIuMDg2ODU3IDI4LjA4Njg1Ny0xNzcuNTE3NzE0IDc1LjU1NjU3Mi0yNDguMjQ2ODU3IDAuNTg1MTQzLTEuMDk3MTQzIDAuOTUwODU3LTIuMTk0Mjg2IDEuNjA5MTQzLTMuMDcyIDQuOTAwNTcxLTcuMzE0Mjg2IDEwLjM4NjI4Ni0xMy45NzAyODYgMTUuNjUyNTcxLTIwLjY5OTQyOSAyLjA0OC0yLjQ4Njg1NyAzLjczMDI4Ni01LjA0Njg1NyA1Ljg1MTQyOS03Ljc1MzE0MyA3Ljc1MzE0My05LjU4MTcxNCAxNi4wOTE0MjktMTguNzI0NTcxIDI0LjUwMjg1Ny0yNy42NDhsMi4zNDA1NzEtMi40ODY4NTdjMjguNTk4ODU3LTI5LjQwMzQyOSA2MC44NTQ4NTctNTQuMTI1NzE0IDk1Ljk2MzQyOS03My45NDc0MjhsMi44NTI1NzEtMS42MDkxNDNjMTAuMDkzNzE0LTUuNTU4ODU3IDIwLjQ4LTEwLjc1MiAzMC45Mzk0MjktMTUuMzZsNy44MjYyODUtMy41ODRhNjkyLjgwOTE0MyA2OTIuODA5MTQzIDAgMCAxIDQwLjg4Njg1OC0xNS4wNjc0MjljOC4xMTg4NTctMi40MTM3MTQgMTYuMzg0LTQuNjA4IDI0Ljg2ODU3MS02LjU4Mjg1NyA1LjU1ODg1Ny0xLjI0MzQyOSAxMC45NzE0MjktMi43Nzk0MjkgMTYuNjc2NTcxLTMuODAzNDI4IDIuMzQwNTcxLTAuNTg1MTQzIDQuNTM0ODU3LTEuMzg5NzE0IDYuODc1NDI5LTEuNjA5MTQzIDguMDQ1NzE0LTEuNDYyODU3IDE1Ljk0NTE0My0yLjE5NDI4NiAyMy43NzE0MjktMy4yMTgyODYgMi45MjU3MTQtMC41MTIgNS43NzgyODYtMS4wMjQgOC42MzA4NTctMS4zMTY1NzEgMTQuMTg5NzE0LTEuNDYyODU3IDI4LjM3OTQyOS0yLjM0MDU3MSA0Mi41NjkxNDMtMi4zNDA1NzJhNDE1Ljc0NCA0MTUuNzQ0IDAgMCAxIDI0My45MzE0MjggNzkuNTA2Mjg2IDUzLjU0MDU3MSA1My41NDA1NzEgMCAwIDEgMTIuNjUzNzE0IDczLjE0Mjg1NyA1MC4wMjk3MTQgNTAuMDI5NzE0IDAgMCAxLTcxLjMxNDI4NSAxMi45NDYyODZ6TTkzOC40OTYgMzg0YTQ0Mi44OCA0NDIuODggMCAwIDEtNzUuMDQ0NTcxIDI0Ny42NjE3MTRjLTAuNzMxNDI5IDEuMTcwMjg2LTEuMDk3MTQzIDIuNDEzNzE0LTEuNjgyMjg2IDMuNTEwODU3YTUzNS45OTA4NTcgNTM1Ljk5MDg1NyAwIDAgMS0xOC44NzA4NTcgMjQuODY4NTcyIDMwLjY0Njg1NyAzMC42NDY4NTcgMCAwIDAtMi4xMjExNDMgMi45MjU3MTQgNDI3LjczOTQyOSA0MjcuNzM5NDI5IDAgMCAxLTE1OS4zMDUxNDMgMTIyLjg4bC01LjEyIDIuMjY3NDI5YTUwNC41Mzk0MjkgNTA0LjUzOTQyOSAwIDAgMS0zMC4yMDggMTEuNDEwMjg1bC0xMC44MjUxNDMgMy42NTcxNDNhNDE2LjQwMjI4NiA0MTYuNDAyMjg2IDAgMCAxLTI2Ljc3MDI4NiA3LjE2OGwtMTUuMTQwNTcxIDMuNTEwODU3Yy0yLjQ4Njg1NyAwLjQzODg1Ny00Ljc1NDI4NiAxLjE3MDI4Ni03LjMxNDI4NiAxLjY4MjI4Ni02LjgwMjI4NiAxLjA5NzE0My0xMy4zODUxNDMgMS44Mjg1NzEtMjAuMTg3NDI4IDIuNjMzMTQzLTQuNjgxMTQzIDAuNTEyLTkuMjE2IDEuMjQzNDI5LTEzLjg5NzE0MyAxLjc1NTQyOWE0MzEuMDMwODU3IDQzMS4wMzA4NTcgMCAwIDEtMzMuOTM4Mjg2IDEuODI4NTcxYy0yLjA0OCAwLTQuMDk2IDAuMjkyNTcxLTYuMTQ0IDAuMjkyNTcxYTQxNS4xNTg4NTcgNDE1LjE1ODg1NyAwIDAgMS0yNDQuNTg5NzE0LTc5LjI4Njg1NyA1My4zOTQyODYgNTMuMzk0Mjg2IDAgMCAxLTEyLjUwNzQyOS03My4yMTZjMTYuMDkxNDI5LTIzLjY5ODI4NiA0OC4xMjgtMjkuNTQ5NzE0IDcxLjMxNDI4Ni0xMi44YTMxNS42MTE0MjkgMzE1LjYxMTQyOSAwIDAgMCAyMTYuNzk1NDI5IDU4LjUxNDI4NmMyLjkyNTcxNC0wLjIxOTQyOSA1LjcwNTE0My0wLjczMTQyOSA4LjU1NzcxNC0xLjE3MDI4NiA3Ljc1MzE0My0wLjk1MDg1NyAxNS4zNi0xLjk3NDg1NyAyMi45NjY4NTctMy42NTcxNDMgMy4yMTgyODYtMC41ODUxNDMgNi41ODI4NTctMS40NjI4NTcgOS43MjgtMi4xOTQyODUgNy40NjA1NzEtMS43NTU0MjkgMTQuNzc0ODU3LTMuNTEwODU3IDIxLjk0Mjg1Ny01Ljc3ODI4NiAyLjQxMzcxNC0wLjczMTQyOSA0LjYwOC0xLjQ2Mjg1NyA2LjgwMjI4Ni0yLjQxMzcxNCA4LjMzODI4Ni0yLjc3OTQyOSAxNi40NTcxNDMtNS42MzIgMjQuMzU2NTcxLTkuMDY5NzE1IDAuODc3NzE0LTAuMjE5NDI5IDEuNjgyMjg2LTAuOTUwODU3IDIuNDg2ODU3LTEuMjQzNDI4YTMyNi4yMTcxNDMgMzI2LjIxNzE0MyAwIDAgMCAxMjIuODgtOTQuNzkzMTQzQTMzNy4zMzQ4NTcgMzM3LjMzNDg1NyAwIDAgMCA4MzYuMjQyMjg2IDM4NGgtODUuNTA0bDEzNi43NzcxNDMtMjEwLjM1ODg1N0wxMDIzLjkyNjg1NyAzODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ic29saWQtdHJpYW5nbGUiIHVuaWNvZGU9IiYjNTg5Mzg7IiBkPSJNNDcxLjE0MjQgMTIyLjE2MzJjMjIuNTI4LTI1LjA4OCA1OC42NzUyLTI1LjYgODEuNzE1MiAwbDI0NS45NjQ4IDI3My40MDhjNDUuMTU4NCA1MC4xNzYgMjYuNDE5MiA5MC44Mjg4LTQxLjU3NDQgOTAuODI4OGgtNDkwLjQ5NmMtNjguMDk2IDAtODYuNzMyOC00MC43NTUyLTQxLjU3NDQtOTAuOTMxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyb2FkbmV0d29yayIgdW5pY29kZT0iJiM1ODkzOTsiIGQ9Ik01MDIuNzEwODU3IDgxOC40Njg1NzFhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42MjA1NzEtMzcuMzAyODU3di0xNjIuMjMwODU3YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjIwNTcxLTM3LjMwMjg1NyAzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjY5MzcxNCAzNy4zMDI4NTdWNzgxLjE2NTcxNGEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjY5MzcxNCAzNy4zMDI4NTd6IG0tMS42MDkxNDMtMzUyLjc2OGEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjY5MzcxNC0zNy4zMDI4NTd2LTE2Mi4zMDRhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42OTM3MTQtMzcuMzAyODU3IDM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjIwNTcyIDM3LjMwMjg1N1Y0MjguMzk3NzE0YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjIwNTcyIDM3LjMwMjg1N3ogbTAtMzUzLjI4YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjkzNzE0LTM3LjMwMjg1N3YtMTYyLjM3NzE0M2EzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjY5MzcxNC0zNy4zMDI4NTcgMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42MjA1NzIgMzcuMzAyODU3djE2Mi4zNzcxNDNhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42MjA1NzIgMzcuMzAyODU3eiBtNTA2LjczMzcxNS0xOTMuMDk3MTQybC0xODkuMTQ3NDI5IDg3My4zMjU3MTRjLTQuNDYxNzE0IDIwLjc3MjU3MS0yMy42OTgyODYgMzMuNzE4ODU3LTQyLjg2MTcxNCAyOS4wMzc3MTQtMTkuMjM2NTcxLTQuNzU0Mjg2LTMxLjE1ODg1Ny0yNS4zODA1NzEtMjYuNjk3MTQzLTQ2LjA4bDE4OS4xNDc0MjgtODczLjM5ODg1N2M0LjUzNDg1Ny0yMC43NzI1NzEgMjMuNjk4Mjg2LTMzLjcxODg1NyA0Mi45MzQ4NTgtMjkuMDM3NzE0IDE5LjIzNjU3MSA0Ljc1NDI4NiAzMS4xNTg4NTcgMjUuMzgwNTcxIDI2LjYyNCA0Ni4wOHpNMjMzLjgzNzcxNCA4MjEuNjg2ODU3Yy0xOS4xNjM0MjkgNC42ODExNDMtMzguNC04LjI2NTE0My00Mi44NjE3MTQtMjkuMDM3NzE0TDEuODI4NTcxLTgwLjY3NjU3MWMtNC41MzQ4NTctMjAuNzcyNTcxIDcuMzg3NDI5LTQxLjM5ODg1NyAyNi42MjQtNDYuMDggMTkuMjM2NTcxLTQuNzU0Mjg2IDM4LjQgOC4xOTIgNDIuOTM0ODU4IDI4Ljk2NDU3MWwxODkuMTQ3NDI4IDg3My4zMjU3MTRjNC40NjE3MTQgMjAuNzcyNTcxLTcuNDYwNTcxIDQxLjM5ODg1Ny0yNi42OTcxNDMgNDYuMDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icmV0dXJuIiB1bmljb2RlPSImIzU4OTQwOyIgZD0iTTk0MS4zMTIgMzQyLjc4NEgyNDAuMzg0bDM0Ny4yLTM0Ny4yLTU4LjI0LTU4LjI0TDgyLjY4OCAzODRsNDQ2LjcyIDQ0Ni42NTYgNTguMjQtNTguMjQtMzQ3LjI2NC0zNDcuMmg3MDAuOTI4ek0xOTkuMjMyIDM4MS40NGwzLjY0OC0zLjJ2Ni40eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InBhY2t1cCIgdW5pY29kZT0iJiM1ODk0MTsiIGQ9Ik0xMDYuNDk2IDgwMGg4MjAuNDE2YzIyLjY1NiAwIDQwLjk2IDIxLjUwNCA0MC45NiA0OHMtMTguMzA0IDQ4LTQwLjk2IDQ4SDEwNi40OTZjLTIyLjU5MiAwLTQwLjk2LTIxLjUwNC00MC45Ni00OHMxOC4zNjgtNDggNDAuOTYtNDh6TTU0MC4yMjQgNDQ4SDk5Ljc3NkM4MCA0NDggNjQgNDI2LjQ5NiA2NCA0MDBzMTYtNDggMzUuODQtNDhoNDQwLjMyYzE5Ljg0IDAgMzUuODQgMjEuNTA0IDM1Ljg0IDQ4UzU2MCA0NDggNTQwLjE2IDQ0OHogbTM4NS4xNTItNDQ4SDEwNS4wMjRjLTIyLjY1NiAwLTQxLjAyNC0yMS41MDQtNDEuMDI0LTQ4czE4LjM2OC00OCA0MC45Ni00OGg4MjAuNDhjMjIuNTkyIDAgNDAuOTYgMjEuNTA0IDQwLjk2IDQ4cy0xOC4zNjggNDgtNDAuOTYgNDh6IG0zMS40MjQgNjA3LjkzNmwtMjQwLTIwOCAyNDAtMjA4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InNoYXJlIiB1bmljb2RlPSImIzU4OTQyOyIgZD0iTTkxNS41MiAyMzguNzJ2LTIxNy43MjhjMC0zNy40NC0zMC43Mi02OC44NjQtNjYuODE2LTY4Ljg2NGwtNzA2LjU2LTEuMjhjLTM2LjA5NiAwLTY1LjYgMzAuNC02NS42IDY3Ljg0bDEuMjE2IDcyOC4wNjRjMCAzNy4zMTIgMzAuNzIgNjguOTI4IDY2Ljg4IDY4LjkyOGgzOTAuNzg0Vjg5NS44MDhIMTQ0LjY0QzYyLjAxNiA4OTUuODA4IDAuMTkyIDgwOS42NjQgMC4xOTIgNzMyLjYwOHYtNzEzLjg1NmMwLTgwLjc2OCA2My42MTYtMTQ2LjU2IDE0Mi4yMDgtMTQ2LjU2aDY5Mi43MzZjODIuODE2IDAgMTU4LjE0NCA3MC45NzYgMTU4LjE0NCAxNDguOFYyMzguNzJ6IG0tMTgzLjE2OCA1NTMuNDcybDI5MS40NTYtMjgyLjExMi0yOTEuNDU2LTI4MS45ODRWMzg5LjI0OHMtMjg5LjI4IDMxLjA0LTQ1OC4wNDgtMjAxLjZjMCAwIDUzLjEyIDQ0My4zOTIgNDU4LjA0OCA0NDMuMzkyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImJhY2tob21lcGFnZSIgdW5pY29kZT0iJiM1ODk2OTsiIGQ9Ik03MjkuMjQ4IDQ4LjEyOGgtMTM5Ljk2OGExOS44NCAxOS44NCAwIDAgMC0xOS44NCAxOS44NHYyNjkuMTJhMTguMDQ4IDE4LjA0OCAwIDAgMS0xOC4wNDggMTguMDE2aC03Ni43MzZhMTguMDQ4IDE4LjA0OCAwIDAgMS0xOC4wNDgtMTguMDE2di0yNjkuMTJhMTkuODQgMTkuODQgMCAwIDAtMTkuODQtMTkuODRIMjkyLjQ4YTU4LjQ2NCA1OC40NjQgMCAwIDAtNTguNDY0IDU4LjQ2NHYyNDcuMzZhMTMuNDQgMTMuNDQgMCAwIDEtMTMuNDQgMTMuNDRIMTgzLjc0NGMtMzQuNCAwLTUxLjg3MiA0MS4yOC0yNy45NjggNjUuOTg0bDMyOC4zMiAzMzkuMDRhMzguOTEyIDM4LjkxMiAwIDAgMCA1NS42NDggMC4zMkw4NzIuNTEyIDQzNi40OGMyNS4zNzYtMjUuNiA3LjItNjkuMTItMjguODMyLTY5LjEySDgwNC4xNmExNC40NjQgMTQuNDY0IDAgMCAxLTE0LjQ2NC0xNC40NjR2LTI0NC4zNTJhNjAuNDggNjAuNDggMCAwIDAtNjAuNDgtNjAuNDh6IG0tODUuNjY0IDQ5Ljg4OGg3MS45NjhjMTMuNDA4IDAgMjQuMjU2IDEwLjg4IDI0LjI1NiAyNC4yNTZ2MjcwLjIwOGMwIDEzLjY5NiAxMS4xMDQgMjQuOCAyNC44IDI0LjhoNDYuNDk2YTQuMjg4IDQuMjg4IDAgMCAxIDMuMDQgNy4yOTZMNTIzLjk2OCA3MTcuNzZhMTYuMzg0IDE2LjM4NCAwIDAgMS0yMy40MjQtMC4xMjhsLTI5MC44OC0zMDAuMzg0aDQ5LjQ3MmMxMy42OTYgMCAyNC44LTExLjEwNCAyNC44LTI0Ljh2LTI3MC4yMDhjMC0xMy40MDggMTAuODgtMjQuMjU2IDI0LjI1Ni0yNC4yNTZoNzQuMjRjMTMuNDQgMCAyNC4zMiAxMC44OCAyNC4zMiAyNC4yNTZWMzM0LjcyYzAgMzguODQ4IDMxLjQ1NiA3MC4zMDQgNzAuMjcyIDcwLjMwNGg3MmMzOC44MTYgMCA3MC4zMDQtMzEuNDU2IDcwLjMwNC03MC4zMDR2LTIxMi40MTZjMC0xMy40MDggMTAuODgtMjQuMjU2IDI0LjI1Ni0yNC4yNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iTXlNYXBzIiB1bmljb2RlPSImIzU4OTcwOyIgZD0iTTgzMC41OTIgNzI4LjU3NmMtNS4xNTIgMC0xMC40MzItMC44NjQtMTUuNTg0LTIuODE2bC0xNzIuODk2LTYyLjgxNmE0NS4yNDggNDUuMjQ4IDAgMCAwLTE1LjU4NC0yLjcyYy01Ljc2IDAtMTEuNDU2IDEuMDU2LTE2Ljg2NCAzLjI2NGwtMTk1LjIgNzguMTEyYTQ1LjYgNDUuNiAwIDAgMS0zMi40NDggMC41MTJMMTc3Ljk4NCA2NjcuOTY4YTQ1LjQ0IDQ1LjQ0IDAgMCAxLTI5LjkyLTQyLjc4NHYtNTQwLjE2YTQ1LjUwNCA0NS41MDQgMCAwIDEgNjAuOTkyLTQyLjY4OGwxNzIuODk2IDYyLjg0OGM0Ljk5MiAxLjgyNCAxMC4zMDQgMi42ODggMTUuNTUyIDIuNjg4IDUuNzYgMCAxMS40ODgtMS4wNTYgMTYuODk2LTMuMmwxOTUuMi03OC4xNzZhNDUuMjQ4IDQ1LjI0OCAwIDAgMSAzMi40OC0wLjUxMmwyMDMuOTY4IDc0LjIwOGE0NS40NCA0NS40NCAwIDAgMSAyOS45MiA0Mi43ODRWNjgzLjEwNGMwIDI1Ljk1Mi0yMS4zNDQgNDUuNDcyLTQ1LjQ0IDQ1LjQ3MnpNMTkzLjQ3MiA4NC45MjhWNjI1LjE1MmwxODIuMDE2IDY2LjE0NHYtNTQwLjczNmE4My45MzYgODMuOTM2IDAgMCAxLTkuMDg4LTIuODE2eiBtMjI3LjUyIDY1LjI4VjY4OS44ODhsMTcxLjc3Ni02OC42NzJjMy4zOTItMS4zMTIgNi44MTYtMi40NjQgMTAuMjQtMy40MjR2LTUzOS42OGwtMTcxLjc3NiA2OC42NzJhNzAuMjQgNzAuMjQgMCAwIDEtMTAuMjQgMy40MjR6IG00MDkuNTA0LTcuMzZsLTE4MS45ODQtNjYuMTQ0VjYxNy40NGMzLjA0IDAuOCA2LjExMiAxLjY2NCA5LjA4OCAyLjgxNmwxNzIuODk2IDYyLjgxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJDcmVhdGVNYXAiIHVuaWNvZGU9IiYjNTg5NzE7IiBkPSJNNTEyIDczNkMzMDAuMDMyIDczNiAxMjggNTYzLjk2OCAxMjggMzUyczE3Mi4wMzItMzg0IDM4NC0zODQgMzg0IDE3Mi4wMzIgMzg0IDM4NFM3MjMuOTY4IDczNiA1MTIgNzM2eiBtMC03MTQuMjRjLTE4Mi4wMTYgMC0zMzAuMjQgMTQ4LjIyNC0zMzAuMjQgMzMwLjI0UzMyOS45ODQgNjgyLjI0IDUxMiA2ODIuMjQgODQyLjI0IDUzNC43ODQgODQyLjI0IDM1MiA2OTQuMDE2IDIxLjc2IDUxMiAyMS43NnpNNjY3LjEzNiAzODUuNzkyaC0xMjEuMzQ0djEyMS4zNDRjMCAxNC41OTItMTIuMjg4IDI2Ljg4LTI2Ljg4IDI2Ljg4cy0yNi44OC0xMi4yODgtMjYuODgtMjYuODh2LTEyMS4zNDRoLTEyMS4zNDRjLTE0LjU5MiAwLTI2Ljg4LTEyLjI4OC0yNi44OC0yNi44OHMxMi4yODgtMjYuODggMjYuODgtMjYuODhoMTIxLjM0NHYtMTIxLjM0NGMwLTE0LjU5MiAxMi4yODgtMjYuODggMjYuODgtMjYuODhzMjYuODggMTIuMjg4IDI2Ljg4IDI2Ljg4djEyMS4zNDRoMTIxLjM0NGMxNC41OTIgMCAyNi44OCAxMi4yODggMjYuODggMjYuODhzLTEyLjI4OCAyNi44OC0yNi44OCAyNi44OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmZWVkYmFjayIgdW5pY29kZT0iJiM1ODk3MjsiIGQ9Ik00MTAuMzA0IDE1Mi44OTZsLTE3NS42NDgtMTM4LjY4OHYxMzguNjg4aC0yOC40NDhhNjQgNjQgMCAwIDAtNjQgNjRWNjQzLjUyYTY0IDY0IDAgMCAwIDY0IDY0aDYxMS41ODRhNjQgNjQgMCAwIDAgNjQtNjR2LTQyNi42NTZhNjQgNjQgMCAwIDAtNjQtNjR6IG0tNy4zNiA0Ni4yMDhoNDAwLjY0YTMyIDMyIDAgMCAxIDMyIDMyVjYyOS4zNDRhMzIgMzIgMCAwIDEtMzIgMzJIMjIwLjQxNmEzMiAzMiAwIDAgMS0zMi0zMnYtMzk4LjI0YTMyIDMyIDAgMCAxIDMyLTMyaDI4LjQ0OGEzMiAzMiAwIDAgMCAzMi0zMnYtNTUuODA4bDEwMi4yMDggODAuODk2YTMyIDMyIDAgMCAwIDE5Ljg0IDYuOTEyek0yODAuODk2IDM4NGg0NjIuMjA4di00Ni4yMDhIMjgwLjg5NnogbTAgMTM4LjY1Nmg0NjIuMjA4di00Ni4yMDhIMjgwLjg5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJza2luMSIgdW5pY29kZT0iJiM1ODk3MzsiIGQ9Ik03NDAuMTkyIDc4MHYtNTZsMTQyLjgxNi0xNDEuNDA4LTc5LjgwOC03OS43NzZhNTUuMiA1NS4yIDAgMCAxLTM3Ljc5MiAxMy45ODQgNTYuNzY4IDU2Ljc2OCAwIDAgMS01Ny40MDgtNTcuNDA4di0yOTUuMzkyYzAtMzAuODE2LTI1LjE4NC01Ni01Ni01NmgtMjgwYy0zMC43ODQgMC01NiAyNS4xODQtNTYgNTZ2Mjk1LjM5MmE1Ni43NjggNTYuNzY4IDAgMCAxLTU3LjQwOCA1Ny40MDhjLTEzLjk4NCAwLTI4LTUuNi0zNy43OTItMTQuMDE2TDE0MC45OTIgNTgyLjU5MmwxNDEuNDA4IDE0MS40MDhoMzUuMDA4bDEuNDA4LTEuNDA4QzM1OC4wMTYgNjYzLjgwOCA0MzIuMTkyIDYyNS45ODQgNTEyIDYyNS45ODRzMTU0LjAxNiAzNi40MTYgMTkzLjE4NCA5Ni42NGMwIDEuMzc2IDEuNDA4IDEuMzc2IDEuNDA4IDEuMzc2aDMzLjZ6IG0tNDIxLjM3NiAwSDI4OGMtMTkuNTg0IDAtMzMuNi01LjYtNDMuMzkyLTE2LjhMMTAxLjc2IDYyMS43OTJjLTIyLjQtMjIuNC0yMi40LTU3LjQwOCAwLTc4LjRMMTg0LjQxNiA0NjAuOGM5Ljc5Mi05Ljc5MiAyMy43NzYtMTUuMzkyIDM2LjM4NC0xNS4zOTJzMjYuNTkyIDUuNiAzNi40MTYgMTUuMzkyaDEuMzc2YzEuNDA4IDAgMS40MDggMCAxLjQwOC0xLjQwOHYtMjk1LjM5MmExMTIuMzIgMTEyLjMyIDAgMCAxIDExMi0xMTJoMjgwYTExMi4zMiAxMTIuMzIgMCAwIDEgMTEyIDExMnYyOTUuMzkyYzAgMS40MDggMCAxLjQwOCAxLjQwOCAxLjQwOGgxLjM3NmM5LjgyNC05Ljc5MiAyMy44MDgtMTUuMzkyIDM2LjQxNi0xNS4zOTIgMTMuOTg0IDAgMjYuNTkyIDUuNiAzNi4zODQgMTUuMzkybDgyLjYyNCA4Mi41OTJjMjIuNCAyMi40IDIyLjQgNTcuNDA4IDAgNzguNEw3ODAuOCA3NjMuMmE1Ni4wNjQgNTYuMDY0IDAgMCAxLTQwLjYwOCAxNi44aC0zNS4wMDhjLTE5LjU4NCAwLTM2LjM4NC05Ljc5Mi00Ny41ODQtMjYuNTkyLTI5LjQwOC00My40MjQtODQtNzEuNDI0LTE0Ny4wMDgtNzEuNDI0cy0xMTcuNiAyOS40NC0xNDcuMDA4IDcxLjQyNGMtOC4zODQgMTYuOC0yNi41NiAyNi41OTItNDQuOCAyNi41OTJ6TTM4NCA0ODBoMTI4di0xNjBoLTEyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0iIHVuaWNvZGU9IiYjNTg5NzQ7IiBkPSJNNjEzLjYzMiA4MzkuMzZjMTQuNTI4IDE4LjQzMiAyMS42OTYgMTUuMDQgMTUuODA4LThMNTU1LjM5MiA1NDAuNDggNzk4Ljc4NCA0NjcuMmMxMS4yLTMuMzI4IDE0LjU5Mi0xMy42MzIgNy40ODgtMjMuMDRsLTM4Ny41Mi01MTYuMDk2Yy0xNC4xNDQtMTguOTQ0LTIwLjg2NC0xNS44MDgtMTQuOTEyIDcuMTA0TDQ4Mi4yNCAyMzYuOCAyMDAuOTYgMjg2LjI3MmMtMTEuNTg0IDIuMDQ4LTE1LjE2OCAxMS4wNzItNy43NDQgMjAuNDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYWNjb3VudCIgdW5pY29kZT0iJiM1ODk3NTsiIGQ9Ik04NDcuNjggNjYxLjQ0YzE3LjYgMCAzMS44NzItMTQuMjcyIDMxLjg3Mi0zMS44NHYtNDkxLjJjMC0xNy41NjgtMTQuMjcyLTMxLjg3Mi0zMS44NzItMzEuODcySDE3Ni4zMmEzMS45MDQgMzEuOTA0IDAgMCAwLTMxLjg3MiAzMS44NzJWNjI5LjZjMCAxNy41NjggMTQuMjcyIDMxLjg3MiAzMS44NzIgMzEuODcyeiBtMCA1Mi41MTJIMTc2LjMyYTg0LjM4NCA4NC4zODQgMCAwIDEtODQuMzg0LTg0LjM1MnYtNDkxLjJBODQuMzg0IDg0LjM4NCAwIDAgMSAxNzYuMzIgNTQuMDhoNjcxLjM2YTg0LjM4NCA4NC4zODQgMCAwIDEgODQuMzg0IDg0LjM1MlY2MjkuNkE4NC4zODQgODQuMzg0IDAgMCAxIDg0Ny42OCA3MTMuOTJ6TTgxMi40NDggNTM3Ljc2YzAtMTQuNDMyLTExLjg0LTI2LjI0LTI2LjI0LTI2LjI0aC0xNzIuNDhjLTE0LjQzMiAwLTI2LjI0IDExLjgwOC0yNi4yNCAyNi4yNHMxMS44MDggMjYuMjQgMjYuMjQgMjYuMjRoMTcyLjQ4YzE0LjQgMCAyNi4yNC0xMS44NCAyNi4yNC0yNi4yNHogbTAtMTIzLjc0NGMwLTE0LjQzMi0xMS44NC0yNi4yNC0yNi4yNC0yNi4yNGgtMTE2Ljk2YTI2LjMzNiAyNi4zMzYgMCAwIDAtMjYuMjQgMjYuMjRjMCAxNC40MzIgMTEuODA4IDI2LjI0IDI2LjI0IDI2LjI0aDExNi45MjhjMTQuNDY0IDAgMjYuMjQtMTEuODA4IDI2LjI0LTI2LjI0eiBtMC0xMjMuNzQ0YzAtMTQuNC0xMS44NC0yNi4yNC0yNi4yNC0yNi4yNGgtNjUuNzZjLTE0LjQzMiAwLTI2LjI0IDExLjg0LTI2LjI0IDI2LjI0czExLjgwOCAyNi4yNCAyNi4yNCAyNi4yNGg2NS43MjhjMTQuNDY0IDAgMjYuMjQtMTEuNzc2IDI2LjI0LTI2LjI0ek00ODEuMDI0IDM3NC4wOGExODcuNTIgMTg3LjUyIDAgMCAwIDEwNi40NjQtMTY5LjE1MmgtNTIuNTEyYTEzNC4xMTIgMTM0LjExMiAwIDAgMS0zOS41NTIgOTUuNDU2IDEzNC4wMTYgMTM0LjAxNiAwIDAgMS04OC44OTYgMzkuMzkyIDExNC4xNzYgMTE0LjE3NiAwIDAgMC0xMy4xMiAwYy0zMy42LTEuNi02NC45Ni0xNS40MjQtODguODk2LTM5LjM2YTEzNC4xMTIgMTM0LjExMiAwIDAgMS0zOS41Mi05NS40ODhIMjEyLjQ4YTE4Ny41MiAxODcuNTIgMCAwIDAgMTA2LjQ2NCAxNjkuMTIgMTEyLjUxMiAxMTIuNTEyIDAgMSAwIDE2Mi4wOCAweiBtLTE0MS4wNTYgNzguMDE2YzAtMzEuMjMyIDI0LTU2Ljk2IDU0LjQ2NC01OS43NDRhMTkwLjExMiAxOTAuMTEyIDAgMCAwIDExLjA3MiAwIDYwLjA2NCA2MC4wNjQgMCAwIDEgNTQuNDY0IDU5Ljc0NGMwIDMzLjA1Ni0yNi44OCA2MC02MCA2MHMtNjAtMjYuOTQ0LTYwLTYweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTEiIHVuaWNvZGU9IiYjNTg5NzY7IiBkPSJNODIzLjIzMiA1MTJINzA0VjY3MmMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtNTc2Yy0xNy42IDAtMzItMTQuNC0zMi0zMnYtNDQ4YzAtMTcuNiAxNC40LTMyIDMyLTMySDEyOGMwLTcwLjQgNTcuNi0xMjggMTI4LTEyOHMxMjggNTcuNiAxMjggMTI4aDI1NmMwLTcwLjQgNTcuNi0xMjggMTI4LTEyOHMxMjggNTcuNiAxMjggMTI4aDMyYzE3LjYgMCAzMiAxNC40IDMyIDMyVjMxNC40MzJjMCAzLjItMC44MzIgNi40LTIuMzY4IDguNzY4bC0xMjAuODMyIDE4MS41NjhBMTUuNzQ0IDE1Ljc0NCAwIDAgMSA4MjMuMjMyIDUxMnpNMjY4LjggMTI5LjZhNjQgNjQgMCAxIDAtMjQuNzY4IDEyNS42MzIgNjQgNjQgMCAwIDAgNzUuMi03NS4yYy01LjYzMi0yNS42LTI1LjYtNDUuNjMyLTUwLjQzMi01MC40MzJ6IG01MTIgMGE2NCA2NCAwIDEgMC0yNC43NjggMTI1LjYzMiA2NCA2NCAwIDAgMCA3NS4xMzYtNzUuMmMtNS41NjgtMjUuNi0yNS42LTQ1LjYzMi01MC4zNjgtNTAuNDMyek03MDQgMzIwVjQ0OGg5NS4yMzJjNS41NjggMCAxMC4zNjgtMi4zNjggMTIuOC03LjIzMkw4OTYgMzIweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIiIHVuaWNvZGU9IiYjNTg5Nzc7IiBkPSJNOTI4IDUxMmEzMiAzMiAwIDAgMC0xNC4wOCAzLjJMNTQ0IDcwNCAxNzQuMDggNTE2LjQ4QTMyLjg5NiAzMi44OTYgMCAwIDAgMTQ1LjkyIDU3Nkw1NDQgNzczLjEyIDk0Mi4wOCA1NzZhMzIuNzY4IDMyLjc2OCAwIDAgMC0xNC4wOC02NHpNMzg0IDE5MkgxOTJ2LTE5MmgxOTJ6IG0yNTYgMEg0NDh2LTE5MmgxOTJ6IG0yNTYgMGgtMTkydi0xOTJoMTkyeiBtLTEyOCAyNTZINTc2di0xOTJoMTkyek01MTIgNDQ4SDMyMHYtMTkyaDE5MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zIiB1bmljb2RlPSImIzU4OTc4OyIgZD0iTTY5Ni4zMiAzNjAuNDQ4YzAtMjYuNjI0LTQuOTI4LTUxLjUyLTE0Ljg0OC03NC43NTJzLTIzLjU1Mi00My41Mi00MC45Ni02MC45MjgtMzcuNzYtMzEuMDQtNjAuOTI4LTQwLjk2LTQ4LjEyOC0xNC44NDgtNzQuNzUyLTE0Ljg0OC01MS41MiA0LjkyOC03NC43NTIgMTQuODQ4LTQzLjUyIDIzLjU1Mi02MC45MjggNDAuOTYtMzEuMDQgMzcuNzYtNDAuOTYgNjAuOTI4LTE0Ljg0OCA0OC4xMjgtMTQuODQ4IDc0Ljc1MiA0LjkyOCA1MS41MiAxNC44NDggNzQuNzUyIDIzLjU1MiA0My41MiA0MC45NiA2MC45MjggMzcuNzYgMzEuMDQgNjAuOTI4IDQwLjk2IDQ4LjEyOCAxNC44NDggNzQuNzUyIDE0Ljg0OCA1MS41Mi00LjkyOCA3NC43NTItMTQuODQ4IDQzLjUyLTIzLjU1MiA2MC45MjgtNDAuOTYgMzEuMDQtMzcuNzYgNDAuOTYtNjAuOTI4IDE0Ljg0OC00OC4xMjggMTQuODQ4LTc0Ljc1MnogbTY0LjUxMi0zNzcuODU2YzAtNy40ODgtMy4wNzItMTQuMzM2LTkuMjE2LTIwLjQ4cy0xNC4wMTYtMTEuNDU2LTIzLjU1Mi0xNS44NzItMjAuOC04LTMzLjc5Mi0xMC43NTItMjUuOTItNC4wOTYtMzguOTEyLTQuMDk2SDM0Ny4xMzZjLTExLjU4NCAwLTIzLjIzMiAxLjM0NC0zNC44MTYgNC4wOTZzLTIyLjAxNiA2LjMzNi0zMS4yMzIgMTAuNzUyLTE2LjcwNCA5LjcyOC0yMi41MjggMTUuODcyLTguNzA0IDEyLjk5Mi04LjcwNCAyMC40OHogbTkuMjE2IDg2NS4yOGMyOS4zNzYgMCA1MC42ODgtOC41MTIgNjQtMjUuNnMxOS45NjgtMzcuNTY4IDE5Ljk2OC02MS40NHYtNjU3LjQwOGMwLTIzLjg3Mi04LjUxMi00NC4zNTItMjUuNi02MS40NHMtMzguNTkyLTI1LjYtNjQuNTEyLTI1LjZIMjQ1Ljc2Yy0yNi42MjQgMC00OC4xMjggOC41MTItNjQuNTEyIDI1LjZzLTI0LjU3NiAzNy41NjgtMjQuNTc2IDYxLjQ0Vjc2MC44MzJjMCAyMy44NzIgNy40ODggNDQuMTYgMjIuNTI4IDYwLjkyOHMzNS41MiAyNS4wODggNjEuNDQgMjUuMDg4ek0yMjUuMjggNzI4LjA2NGMwLTcuNDg4IDIuNTYtMTQuNTI4IDcuNjgtMjAuOTkyczEzLjQ0LTkuNzI4IDI1LjA4OC05LjcyOGg3Ny44MjRjMTEuNTg0IDAgMjAuMTYgMy45MDQgMjUuNiAxMS43NzZzOC4xOTIgMTUuNTUyIDguMTkyIDIzLjA0djE1LjM2YzAgNy40ODgtMy4wNzIgMTQuMzM2LTkuMjE2IDIwLjQ4cy0xNC43MiA5LjIxNi0yNS42IDkuMjE2SDI2MC4wOTZjLTExLjU4NCAwLTIwLjI4OC0zLjItMjYuMTEyLTkuNzI4cy04LjcwNC0xMy40NC04LjcwNC0yMC45OTJ6IG0yNzkuNTUyLTYyMy42MTZjMzUuNTIgMCA2OC44IDYuNjU2IDk5Ljg0IDE5Ljk2OHM1OC4yNCAzMS41NTIgODEuNDA4IDU0Ljc4NCA0MS40NzIgNTAuMzY4IDU0Ljc4NCA4MS40MDhhMjUwLjc1MiAyNTAuNzUyIDAgMCAxIDE5Ljk2OCA5OS44NGMwIDM0LjgxNi02LjY1NiA2Ny43NzYtMTkuOTY4IDk4LjgxNnMtMzEuNTUyIDU4LjI0LTU0Ljc4NCA4MS40MDgtNTAuMzY4IDQxLjQ3Mi04MS40MDggNTQuNzg0LTY0LjMyIDE5Ljk2OC05OS44NCAxOS45NjhjLTM0LjgxNiAwLTY3Ljc3Ni02LjY1Ni05OC44MTYtMTkuOTY4cy01OC4yNC0zMS41NTItODEuNDA4LTU0Ljc4NC00MS40NzItNTAuMzY4LTU0Ljc4NC04MS40MDgtMTkuOTY4LTY0LTE5Ljk2OC05OC44MTZjMC0zNS41MiA2LjY1Ni02OC44IDE5Ljk2OC05OS44NCAxMy4zMTItMzEuMDQgMzEuNTUyLTU4LjI0IDU0Ljc4NC04MS40MDhzNTAuMzY4LTQxLjQ3MiA4MS40MDgtNTQuNzg0IDY0LTE5Ljk2OCA5OC44MTYtMTkuOTY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQiIHVuaWNvZGU9IiYjNTg5Nzk7IiBkPSJNNjc3Ljc2IDE4NC43NjhhMTguNzUyIDE4Ljc1MiAwIDAgMC01LjE4NCAxMi41NDRjMCA5LjQ3MiA3LjY4IDE3LjIxNiAxNy4wODggMTcuMzQ0aDEwMC40MTZjOS42IDAgMTcuMzQ0IDcuODA4IDE3LjM0NCAxNy40MDhhMTcuOTg0IDE3Ljk4NCAwIDAgMS01LjUwNCAxMi40OEw2NTIuOCAzOTQuNDk2YTIwLjkyOCAyMC45MjggMCAwIDAtNC4yODggMTEuODQgMTcuNDA4IDE3LjQwOCAwIDAgMCAxNy4yOCAxNy4yOGg3OS4zNmM5LjYgMC4xMjggMTcuMzQ0IDcuOTM2IDE3LjM0NCAxNy41MzZhMTcuMjggMTcuMjggMCAwIDEtNS4zMTIgMTIuNDE2TDYwOC41NzYgNjAyLjQzMmwtMC45NiAwLjk2YTE3LjQwOCAxNy40MDggMCAwIDAgMTIuNjA4IDI5LjI0OGg2MC4xNmM5LjYgMCAxNy4yOCA3LjgwOCAxNy4yOCAxNy40NzJhMTcuMTUyIDE3LjE1MiAwIDAgMS00LjY3MiAxMS4zOTJoMC4zODRMNTU3Ljc2IDgyNS4wODhBMTcuMjggMTcuMjggMCAwIDEgNTQzLjg3MiA4MzJhMTcuMjggMTcuMjggMCAwIDEtMTMuODg4LTYuOTEyTDM5NC44OCA2NjEuNTA0YTE3LjE1MiAxNy4xNTIgMCAwIDEtNC43MzYtMTEuMzkyYzAtOS42IDcuNzQ0LTE3LjQwOCAxNy4zNDQtMTcuNDA4aDYwLjE2YTE2LjgzMiAxNi44MzIgMCAwIDAgMTIuOC0yOS4yNDhsLTEuMDI0LTEuMDI0LTE0OC40OC0xNDguODY0YTE3LjI4IDE3LjI4IDAgMCAxLTUuMzc2LTEyLjQxNmMwLTkuNTM2IDcuNjE2LTE3LjI4IDE3LjA4OC0xNy40NzJoNzkuNDg4YTE3LjI4IDE3LjI4IDAgMCAwIDE3LjM0NC0xNy4zNDQgMjAuOTI4IDIwLjkyOCAwIDAgMC00LjM1Mi0xMS44NEwyODUuODI0IDI0NC40OGExNy45ODQgMTcuOTg0IDAgMCAxLTUuNjk2LTEyLjQ4YzAtOS42IDcuODA4LTE3LjQwOCAxNy4zNDQtMTcuNDA4aDEwMC42NzJhMTcuNDA4IDE3LjQwOCAwIDAgMCAxNy4yMTYtMTcuMjggMTguNzUyIDE4Ljc1MiAwIDAgMC01LjEyLTEyLjYwOGwtMTQ4LjU0NC0xNDguNDgtMC42NC0wLjY0YTE3LjI4IDE3LjI4IDAgMCAxIDAtMjQuNDQ4IDE3LjcyOCAxNy43MjggMCAwIDEgMTIuNDgtNS41MDRoMjM1LjY0OFYtNjRsNjkuMzc2IDAuNTc2djY5LjEyaDIzNS4zOTJhMTguMzA0IDE4LjMwNCAwIDAgMSAxOC4wNDggMTcuNjY0IDE3LjI4IDE3LjI4IDAgMCAxLTQuOTI4IDEyLjM1MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01IiB1bmljb2RlPSImIzU4OTgwOyIgZD0iTTI5NC4xNDQgMzI3LjEwNGwxLjM0NC0xLjY2NCAxNTQuNTYtMTY0LjkyOGMzMy45Mi0zOS45MzYgOTAuNjg4LTM5LjkzNiAxMjUuMTIgMC41MTJsMTUzLjYgMTY0Ljg2NCAzLjc3NiA0LjAzMiAyLjI0IDIuNDMyQTE0Ni42ODggMTQ2LjY4OCAwIDAgMSA3NjggNDI3LjU4NGExNDguNDggMTQ4LjQ4IDAgMCAxLTI1NiAxMDIuMjcyIDE0OC40OCAxNDguNDggMCAwIDEtMjU2LTEwMi4yNzJjMC0zNy4xMiAxNC4wOC03My40MDggMzguMTQ0LTEwMC40OHpNNTEyLTMyYTQxNiA0MTYgMCAxIDAgMCA4MzIgNDE2IDQxNiAwIDAgMCAwLTgzMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS02IiB1bmljb2RlPSImIzU4OTgxOyIgZD0iTTYwOCAzMjBhMjIuNCAyMi40IDAgMCAwIDAtNDQuOEg1MzQuNHYtMTkuMmEyMi40IDIyLjQgMCAxIDAtNDQuOCAwdjE5LjJINDE2YTIyLjQgMjIuNCAwIDEgMCAwIDQ0LjhoNzMuNnY1MS4ySDQxNmEyMi40IDIyLjQgMCAwIDAgMCA0NC44aDY0LjM4NGwtMC4yNTYgMC4xOTItNjQgNjRhMjIuNCAyMi40IDAgMCAwIDMxLjc0NCAzMS42OGw2NC02NEw1MTIgNDQ3LjYxNmwwLjE5MiAwLjI1NiA2NCA2NGEyMi40IDIyLjQgMCAxIDAgMzEuNjE2LTMxLjY4bC02NC02NC0wLjE5Mi0wLjE5Mkg2MDhhMjIuNCAyMi40IDAgMCAwIDAtNDQuOEg1MzQuNFYzMjB6IG0yNTYgMTYwaDMyVjY0MC4xOTJBNjQgNjQgMCAwIDEgODMxLjkzNiA3MDRIMTkyLjA2NEE2NCA2NCAwIDAgMSAxMjggNjQwLjE5MlY0ODBoMzJDMjEyLjkyOCA0ODAgMjU2IDQzNi45MjggMjU2IDM4NHMtNDMuMDcyLTk2LTk2LTk2SDEyOHYtMTYwLjE5MkE2NCA2NCAwIDAgMSAxOTIuMDY0IDY0aDYzOS44NzJBNjQgNjQgMCAwIDEgODk2IDEyNy44MDhWMjg4aC0zMmMtNTIuOTI4IDAtOTYgNDMuMDcyLTk2IDk2czQzLjA3MiA5NiA5NiA5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS03IiB1bmljb2RlPSImIzU4OTgyOyIgZD0iTTE2NC45OTIgMjg3LjM2Yy0yMy42OC00Mi44MTYtNjcuMTM2LTEyMC44MzIgOS42NjQtMTcyLjk5MiAyNC4xMjgtMTYuMTkyIDUxLjItMjcuNDU2IDc5LjU1Mi0zMy4wMjQgMjEuNjMyLTMuMiAyMi43Mi0zNy4xMi0yLjY4OC0zNi4yODgtMjcuMDcyIDEuNDA4LTE1OC45MTIgMTMuODI0LTE4MC4wOTYgMTE0LjQzMi0xMC45NDQgNTguNzUyIDEuNDA4IDExMS4zNiAzNS40NTYgMTY4LjUxMmw0OS4wMjQgODguMTI4TDY0IDQ2OS4zMTJsMjQ0LjggMTQ3Ljk2OHYtMjg2LjA4TDIxNi45NiAzODAuOHogbTI5OC41NiA0NzAuNTI4YzgxLjIxNiA0NC45MjggMTI4LjE5Mi0zMC43MiAxNTQuMDQ4LTcybDU2LjcwNC05MC4zNjgtODkuMDI0LTU3Ljc5MiAyNTEuMDA4LTEzNC4wMTYtMTMuODI0IDI4OC04OC45Ni01Ny43MjgtNTMuNDQgODQuOTkyYy0zNi42NzIgNTMuMzc2LTYzLjU1MiA5Mi44LTEyOS4wMjQgMTEwLjUyOC0xMTUuMiAyMi40LTE4NS45Mi0xMTMuNDcyLTE4NS4yMTYtMTEyLjU3Ni0xMS41Mi0yMC40OCAxNS4xNjgtMzguNTkyIDMxLjc0NC0xNS4wNGEyMjEuMTg0IDIyMS4xODQgMCAwIDAgNjUuOTIgNTZ6IG00NjMuNzQ0LTQ0Mi40OTZjLTYuMTQ0IDEzLjU2OC0zOC41OTIgMTAuMTEyLTI5LjQ0LTE5LjEzNiA5LjIxNi0yNy44NCAxMi45MjgtNTcuMjE2IDExLjAwOC04Ni41MjgtNi41MjgtOTMuODI0LTk0Ljc4NC05My4xMi0xNDIuOTEyLTkzLjEySDY2MC40OHYxMDcuMjY0bC0yNDYuMjA4LTE0My4wNEw2NTkuNTg0LTY0bDAuMzg0IDEwOS4wNTZoMTA1Ljk4NGM2Mi42NTYtMS4wODggMTEyLjUxMiAxMi42MDggMTU0Ljc1MiA1MS4wMDggODQuNDE2IDc1LjkwNCA2LjU5MiAyMTkuMzI4IDYuNTkyIDIxOS4zMjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtOCIgdW5pY29kZT0iJiM1ODk4MzsiIGQ9Ik00OTAuMTc2IDYzNC4yNGMxMC4zMDQgMCAxOS4zMjgtMy43MTIgMjcuMTM2LTExLjAwOHMxMS41ODQtMTYuMzg0IDExLjU4NC0yNy4wNzJjMC0xMC42ODgtMy44NC0xOS43MTItMTEuNTg0LTI3LjA3MnMtMTYuODMyLTEwLjk0NC0yNy4xMzYtMTAuOTQ0YTM3LjgyNCAzNy44MjQgMCAwIDAtMzguNzg0IDM4LjAxNmMwIDEwLjY4OCAzLjcxMiAxOS43MTIgMTEuMiAyNy4wNzJzMTYuNjQgMTAuOTQ0IDI3LjUyIDEwLjk0NHpNMTkyIDM4NGMwIDI5LjMxMiAxLjk4NCA1Ny42IDYuMDE2IDg0LjkyOCA0LjAzMiAyNy4zMjggMTAuMDQ4IDUzLjY5NiAxOC4xMTIgNzkuMDRsNjQ3LjEwNC0zNTMuMjhhNDc4LjQ2NCA0NzguNDY0IDAgMCAwLTU0LjI3Mi0xMDQuODMyIDQwMS42IDQwMS42IDAgMCAwLTc0LjExMi04MS42Yy0yNy41Mi0yMi43ODQtNTcuNi00MC41NzYtOTAuMDQ4LTUzLjI0OEEyNzUuODQgMjc1Ljg0IDAgMCAwIDU0My41NTItNjRjLTQ4LjI1NiAwLTkzLjc2IDExLjcxMi0xMzYuNTc2IDM1LjA3MnMtODAuMTI4IDU1LjM2LTExMiA5Ni01Ni45NiA4OC03NS4zOTIgMTQyLjRBNTQxLjUwNCA1NDEuNTA0IDAgMCAwIDE5MiAzODR6IG02NzIuOTYgMTgzLjQyNGM5Ljc5Mi0yOC4xNiAxNy40MDgtNTcuNiAyMi44NDgtODguMzJTODk2IDQxNi42NCA4OTYgMzg0YzAtNTAuNjg4LTYuNTkyLTk5LjQ1Ni0xOS44NC0xNDYuMjRMNjA0LjggMzg2LjU2ek01NjQuMjI0IDQwOC41MTJMMjMxLjY4IDU5MC4yNzJjMTQuNCAzNi4wMzIgMzIuNDQ4IDY4Ljg2NCA1NC4zMzYgOTguNDMyczQ2LjA4IDU0Ljk3NiA3Mi43NjggNzYuMDk2IDU1LjY4IDM3LjYzMiA4Ny4wNCA0OS40NzJDNDc3LjEyIDgyNi4xMTIgNTA5LjY5NiA4MzIgNTQzLjU1MiA4MzJjMzIuNzY4IDAgNjQuMDY0LTUuMzc2IDkzLjk1Mi0xNmEzMjIuNTYgMzIyLjU2IDAgMCAwIDg0LjAzMi00NS4zMTJjMjYuMTEyLTE5LjM5MiA0OS43OTItNDIuODE2IDcxLjA0LTcwLjE0NCAyMS4yNDgtMjcuMzI4IDM5LjY4LTU3LjYgNTUuMTY4LTkwLjg4TDU2Mi40OTYgNDExLjA3MnogbS0xMS4yIDU3LjQ3Mkw3MzYuNjQgNTg2Ljg4YTIzNy40NCAyMzcuNDQgMCAwIDEtMzguNzg0IDcxLjA0IDE3Ny40MDggMTc3LjQwOCAwIDAgMS0yNC45NiAyNi4xNzYgMTg5LjU2OCAxODkuNTY4IDAgMCAxLTMzLjIxNiAyMi43ODQgMTc5LjUyIDE3OS41MiAwIDAgMS00MS4zNDQgMTYuMDY0IDIwMC44MzIgMjAwLjgzMiAwIDAgMS01MC4zNjggNS45NTJjLTE3LjI4IDAtMzMuMDg4LTIuMTEyLTQ3LjM2LTYuNGExOTEuMTA0IDE5MS4xMDQgMCAwIDEtNzIuODk2LTM5LjY4IDI5OS41ODQgMjk5LjU4NCAwIDAgMS0yNy4xMzYtMjYuNjI0IDI4Ny40ODggMjg3LjQ4OCAwIDAgMS00Ni41MjgtNzEuODcyeiBtNDQuOCAxNjguMTkyYTM3LjgyNCAzNy44MjQgMCAwIDAgMzguNzg0LTM4LjAxNiAzNy44MjQgMzcuODI0IDAgMCAwLTM4Ljc4NC0zOC4wMTYgMzcuODI0IDM3LjgyNCAwIDAgMC0zOC43MiAzOC4wMTZjMCAxMC42ODggMy43MTIgMTkuNzEyIDExLjIgMjcuMDcyczE2LjY0IDEwLjk0NCAyNy41MiAxMC45NDR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtOSIgdW5pY29kZT0iJiM1ODk4NDsiIGQ9Ik02MzEuODA4IDYyMy42MTZjMC0zNS41Mi02LjMzNi02OC45MjgtMTguOTQ0LTEwMC4zNTJzLTI5LjUwNC01OC44OC01MC42ODgtODIuNDMyLTQ1LjU2OC00Mi4xNzYtNzMuMjE2LTU1LjgwOC01Ni44MzItMjAuNDgtODcuNTUyLTIwLjQ4UzM0MS4zMTIgMzcxLjAwOCAzMTMuMzQ0IDM4NHMtNTIuNTQ0IDMxLjIzMi03My43MjggNTQuNzg0LTM4LjA4IDUxLjUyLTUwLjY4OCA4My45NjgtMTguOTQ0IDY4LjA5Ni0xOC45NDQgMTA3LjAwOGMwIDMwLjcyIDYuMTQ0IDU5LjkwNCAxOC40MzIgODcuNTUyQTI0NS43NiAyNDUuNzYgMCAwIDAgMzEwLjI3MiA4NDEuMjE2YzI3LjMyOCAxMi42MDggNTYuMzIgMTguOTQ0IDg3LjA0IDE4Ljk0NHM2MC4wOTYtNi42NTYgODguMDY0LTE5Ljk2OCA1Mi45MjgtMzAuOTEyIDc0Ljc1Mi01Mi43MzYgMzkuMjMyLTQ2LjkxMiA1Mi4yMjQtNzUuMjY0IDE5LjQ1Ni01Ny44NTYgMTkuNDU2LTg4LjU3NnogbS0yNzEuMzYtMzMwLjc1MmwtMS4wMjQtMzYzLjUyIDM2Ljg2NCA0OC4xMjggMzguOTEyLTQ4LjEyOHYzNjMuNTJ6TTYwNC4xNiA4MTEuMDA4YzE0LjMzNi0xNy4wODggMjcuMzI4LTM1LjUyIDM4LjkxMi01NS4yOTYgOS42LTE3LjA4OCAxOC40MzItMzYuNDggMjYuNjI0LTU4LjM2OHMxMi4yODgtNDQuNzM2IDEyLjI4OC02OC42MDhjLTEuMzQ0LTQxLjYtNS45NTItNzYuNDgtMTMuODI0LTEwNC40NDhzLTE2LjU3Ni01MC41Ni0yNi4xMTItNjcuNTg0Yy0xMS41ODQtMTkuODQtMjQuMjU2LTM1LjUyLTM3Ljg4OC00Ny4xMDQgMTkuODQgMi4wNDggMzkuNjE2IDUuMTIgNTkuMzkyIDkuMjE2IDE3LjA4OCAzLjM5MiAzNS41MiA3Ljg3MiA1NS4yOTYgMTMuMzEyczM4LjU5MiAxMi45OTIgNTYuMzIgMjIuNTI4YzE1LjY4IDguMTkyIDMwLjUyOCAxOC45NDQgNDQuNTQ0IDMyLjI1NnMyNS45MiAyOS4xODQgMzUuODQgNDcuNjE2IDE2Ljg5NiAzOS4wNCAyMC45OTIgNjEuOTUyIDQuMDk2IDQ4LjMyIDAgNzYuMjg4Yy00LjA5NiAyOC42NzItMTYgNTQuMjcyLTM1Ljg0IDc2LjhzLTQzLjMyOCA0MC40NDgtNzAuNjU2IDUzLjc2LTU1LjgwOCAyMS4xMi04NS41MDQgMjMuNTUyLTU2LjUxMi0yLjg4LTgwLjM4NC0xNS44NzJ6IG0xLjAyNC00NTguNzUyTDYwNC4xNiA1LjEybDM1Ljg0IDQ3LjEwNCAzOC45MTItNDcuMTA0VjM1Mi4yNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTAiIHVuaWNvZGU9IiYjNTg5ODU7IiBkPSJNMjU2LjUxMiA4MzJsLTY0LTM1MmMtOS4zNDQtNTEuNTIgMTEzLjk4NC03NS41ODQgMTEyLTEyOGwtMTYtNDE2Yy0yLjQzMi02NCA2NC02NCA2NC02NHM2Ni40MzIgMCA2NCA2NGwtMTYgNDE2Yy0xLjk4NCA1Mi4zNTIgMTEwLjkxMiA3NS41MiAxMTIgMTI4bC02NCAzNTJoLTMybDE2LTI1Ni00OC0zMi0xNiAyODhoLTMybC0xNi0yODgtNDggMzIgMTYgMjU2eiBtNTQ0IDBjLTQ3LjEwNCAwLTEyNS42OTYtNDEuOTItMTU3LjEyLTEwNC43NjgtMjYuMjQtNDcuMTA0LTM0Ljg4LTE1Mi4zODQtMzQuODgtMjE1LjIzMnYtMTYwYzAtNTIuMzUyIDY5Ljc2LTY0IDk2LTY0bC0zMi0zNTJjLTUuNzYtNjMuNzQ0IDY0LTY0IDY0LTY0czY0IDAgNjQgNjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTEiIHVuaWNvZGU9IiYjNTg5ODY7IiBkPSJNNTEzLjY2NCA1MjUuMzEyYTExNy4xMiAxMTcuMTIgMCAwIDAgMTE2LjkyOCAxMTYuOTkyYzY0LjUxMiAwIDExNi45MjgtNTIuNDggMTE2LjkyOC0xMTYuOTkyUzY5NS4wNCA0MDguMzIgNjMwLjU5MiA0MDguMzJhMTE3LjEyIDExNy4xMiAwIDAgMC0xMTYuOTI4IDExNi45OTJtMzc3LjYgMTcxLjcxMmMwIDM2LjgtMjkuODI0IDY2LjY4OC02NS4zNDQgNjYuNjg4aC0wLjA2NEM4MjQuNzA0IDc2My43MTIgNzA5LjI0OCA3NjggNjIyLjA4IDc2OGMtMTAwLjQxNiAwLTEwOS40NC00Ljg2NC0xMjAuMzItMTUuNzQ0TDM0Ni42ODggNTk2LjkyOCAxNDcuNTIgMzk3LjY5NmE2Ny4wNzIgNjcuMDcyIDAgMCAxIDAuMTI4LTk0LjcybDI4My4yLTI4My4zMjhjMTIuNjcyLTEyLjY3MiAyOS40NC0xOS42NDggNDcuNDI0LTE5LjY0OCAxNy45MiAwIDM0LjY4OCA2LjkxMiA0Ny4xNjggMTkuNDU2bDIyMS41NjggMjIxLjY5NiAxMzIuOCAxMzIuOTI4YzExLjcxMiAxMS42NDggMjIuNzIgMjIuNzIgMTEuNTIgMzIyLjk0NCIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTEyIiB1bmljb2RlPSImIzU4OTg3OyIgZD0iTTgzOS45MzYgNTA2LjY4OGMwIDE3OS44NC0xNDcuMDA4IDMyNS43Ni0zMjguNTc2IDMyNS43Ni0xODEuNDQgMC0zMjguNTEyLTE0NS45Mi0zMjguNTEyLTMyNS43NiAwLTU5LjUyIDE2LjI1Ni0xMTUuMDA4IDQ0LjI4OC0xNjIuOTQ0aC0wLjM4NGwyODQuNjA4LTQwNy4zNiAyODQuNjcyIDQwNy4zNmgtMC4zODRjMjguMTYgNDggNDQuMjg4IDEwMy40ODggNDQuMjg4IDE2Mi45NDRNNTExLjQyNCAzNDMuODA4YTE2My41ODQgMTYzLjU4NCAwIDAgMC0xNjQuMjg4IDE2Mi44OCAxNjMuNjQ4IDE2My42NDggMCAwIDAgMTY0LjI4OCAxNjIuOTQ0IDE2My41ODQgMTYzLjU4NCAwIDAgMCAxNjQuMjg4LTE2Mi45NDRBMTYzLjUyIDE2My41MiAwIDAgMCA1MTEuMzYgMzQzLjgwOCIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTEzIiB1bmljb2RlPSImIzU4OTg4OyIgZD0iTTk0MC44IDQ4MFYxMjhhNjQgNjQgMCAwIDAtNjQtNjRoLTcwNGE2NCA2NCAwIDAgMC02NCA2NFY0ODBhMzIgMzIgMCAwIDAgMzIgMzIgMzEuMzYgMzEuMzYgMCAwIDAgMTMuNDQgMGwzNzAuNTYtMjU2TDg5NiA1MTJhMzEuMjMyIDMxLjIzMiAwIDAgMCAxMi44IDAgMzIgMzIgMCAwIDAgMzItMzJ6TTEyNC44IDY0NS4xMmw1LjEyLTUuMTJMNTI0LjggMzg0bDM5Ni4xNiAyNTZoMy44NGEzMS4zNiAzMS4zNiAwIDAgMSAxNiAzMiAzMiAzMiAwIDAgMS0zMiAzMmgtNzY4YTMyIDMyIDAgMCAxLTMyLTMyIDMxLjM2IDMxLjM2IDAgMCAxIDE2LTI2Ljg4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE0IiB1bmljb2RlPSImIzU4OTg5OyIgZD0iTTE4OC4xNiA0MTIuMjI0YzEwLjYyNCAyLjc1MiA3OC4yMDggMzIgODguODk2IDM0Ljc1Mi0yOC40OCAzMS42OC00OS42IDczLjE1Mi03Ni4wOTYgMTMzLjc2LTM1LjA3Mi04Ljc2OC05NS45MzYtMjYuODgtOTUuOTM2LTI2Ljg4UzE4My44MDggNDIwLjQ4IDE4OC4xNiA0MTIuMTZ6IG0zOTEuMDQtMTEzLjUzNmw3Mi40NDgtODEuOTJjMTI0LjE2IDQxLjg1NiAyODkuNDcyIDIwNy4zNiAyODkuNDcyIDIwNy4zNkw4NTguMDQ4IDUwOC44Uzc3Ny4wMjQgMzgzLjM2IDU3OS4yIDI5OC42ODh6TTQyOS44MjQgNDYwLjIyNGw2Ny4wMDgtMzUuMmM2Mi45MTIgNjIuODQ4IDExNS4yIDE2Mi4zMDQgMTE1LjIgMTYyLjMwNGwtMTA0LjUxMiAzOS4wNHMtNDAuOTYtMTEzLjE1Mi03Ny42OTYtMTY2LjE0NHogbTIzMS41NTItMzAuMzM2YzEwNC45NiA1MS44NCAyNDYuNzg0IDIyOC43MzYgMjQ2Ljc4NCAyMjguNzM2TDgyNi4xNzYgNzM2cy0xMTguNjU2LTE3NC45MTItMjMxLjE2OC0yMzMuNjY0eiBtLTQ5LjQwOC0yNTcuNDcyTDQyMC4xNiAyNzMuNjY0SDYwOC42NHYxMTEuMzZINDExLjY0OHY1MS4zOTJIMjgzLjEzNnYtNTEuMzkySDY5LjEydi0xMTEuMzZIMjMxLjY4Yy00OC4zMi02NS40MDgtNzIuODMyLTkyLjk5Mi0xNjIuNTYtMTQ4LjM1Mmw2NS43MjgtOTcuMjhjODEuMjggNTkuOTY4IDExMi44MzIgOTcuNTM2IDE0OC4yMjQgMTQyLjg0OHYtMTk2Ljk5MmgxMjguNTEyVjE3MC44OGwxNDAuNDgtODIuMDQ4eiBtMjY1Ljk4NCAxMjEuNTM2cy04OS40NzItMTYwLTM1Ni40MTYtMjMzLjI4bDM5LjA0LTg2Ljc4NGMyNjUuNDcyIDY0Ljc2OCAzNzYuMzIgMjA1LjYzMiAzOTkuMTY4IDIyOC4xNnogbS01NjMuMiAxNzEuOTY4czgxLjI4LTAuNTc2IDk0LjUyOCAwYy05LjI4IDQ5LjM0NC0xMS40NTYgNzAuOTEyLTE4Ljg4IDEzMi40OGwtMTEzLjg1Ni0xOC4yNGMxNS42OC0zNy44MjQgMzAuNzItNjUuOTg0IDM4LjI3Mi0xMTQuMjR6IG0yODguODk2IDIwOC4xMjhsLTMyLjQ0OCAxMTMuNTM2cy03OC4xNDQtNzAuMjcyLTQ4NC4zNTItNzguMDhsNC45MjgtOTMuODI0YzQ4Mi4xMTItOS43MjggNTExLjg3MiA1OC4zNjggNTExLjg3MiA1OC4zNjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTUiIHVuaWNvZGU9IiYjNTg5OTA7IiBkPSJNODM1LjIgNTU0LjY4OGgtNTgyLjRjLTcwLjcyIDAtMTI0LjgtNTUuNDg4LTEyNC44LTEyOHYtMjU2aDE2Ni40VjBoNDk5LjJ2MTcwLjY4OEg5NjB2MjU2YzAgNzIuNTEyLTU0LjE0NCAxMjgtMTI0LjggMTI4eiBtLTEyNC44LTQ2OS4zNzZIMzc3LjZWMjk4LjYyNGgzMzIuOHpNODM1LjIgMzg0Yy0yNC45NiAwLTQxLjYgMTcuMDg4LTQxLjYgNDIuNjg4czE2LjY0IDQyLjYyNCA0MS42IDQyLjYyNCA0MS42LTE3LjAyNCA0MS42LTQyLjYyNC0xNi42NC00Mi42ODgtNDEuNi00Mi42ODh6IG0tNDEuNiAzODRIMjk0LjR2LTE3MC42ODhoNDk5LjJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTYiIHVuaWNvZGU9IiYjNTg5OTE7IiBkPSJNOTIxLjYgNjUwLjU2bC0yNC45NiAyMi4wMTYgMjEuMzEyIDI0LjQ0OGEzNS41ODQgMzUuNTg0IDAgMCAxIDMuNTg0IDUwLjM2OGwtMzcuNzYgNDIuODhhMzYuMDk2IDM2LjA5NiAwIDAgMS01MC42ODggMy4ybC0zMDEuNDQtMjMzLjZBMzAzLjIzMiAzMDMuMjMyIDAgMCAxIDIwMy4yNjQgNTEyYy0xMjYuNTkyLTExMS4yMzItMTQwLjE2LTMwMy43NDQtMzAuMzM2LTQzMC4wOCAxMDkuNzYtMTI2LjIwOCAzMDEuNDQtMTM4LjQzMiA0MjcuOTY4LTI3LjJhMzA2LjgxNiAzMDYuODE2IDAgMCAxIDc0LjExMiAzNjMuNzc2bDQ4Ljg5NiA1NiAzMC4yMDgtMjYuODhjMTAuODE2LTkuNiAyNy44NC03LjY4IDM4LjAxNiA0LjIyNGwyOS42MzIgMzQuNzUyYzEwLjI0IDExLjk2OCA5LjcyOCAyOS41MDQtMS4wODggMzkuMTY4bC0yOS4zMTIgMjYuMTEyIDM3LjYzMiA0My4yIDI3LjAwOC0yMy42OGMxMC44OC05LjYgMjcuODQtNy41NTIgMzcuOTUyIDQuNjA4bDI5LjEyIDM1LjJjMTAuMTEyIDEyLjE2IDkuNDA4IDI5Ljc2LTEuNDcyIDM5LjM2eiBtLTUxMS40ODgtNTA5LjY5NmExMDYuMTc2IDEwNi4xNzYgMCAwIDAtMTUwLjUyOCA5LjYgMTA3Ljc3NiAxMDcuNzc2IDAgMCAwIDEwLjc1MiAxNTEuMzYgMTA2LjE3NiAxMDYuMTc2IDAgMCAwIDE1MC41MjgtOS42IDEwNy43NzYgMTA3Ljc3NiAwIDAgMC0xMC43NTItMTUxLjM2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE3IiB1bmljb2RlPSImIzU4OTkyOyIgZD0iTTk2MCA1NzZoLTI1NnYtMjI0YTEyOCAxMjggMCAwIDEgOTYtMTIzLjUyVjBINzY4YTMyIDMyIDAgMCAxIDAtNjRoMTI4YTMyIDMyIDAgMCAxIDAgNjRoLTMydjIyOC40OEExMjggMTI4IDAgMCAxIDk2MCAzNTJ2My44NHogbS02NC0yMjRhNjQgNjQgMCAxIDAtMTI4IDBWNTEyaDEyOHogbS00ODAgMzIwVjcwNGEzMiAzMiAwIDAgMSAwIDY0djMyQTMyIDMyIDAgMCAxIDM4NCA4MzJIMzIwYTMyIDMyIDAgMCAxLTMyLTMyVjc2OGEzMiAzMiAwIDAgMSAwLTY0di0zMkMyODggNTgwLjQ4IDEyOCA0NzUuNTIgMTI4IDM4NHYtMzg0YTY0IDY0IDAgMCAxIDY0LTY0aDMyMGE3MC40IDcwLjQgMCAwIDEgNjQgNjRWMzg0YzAgODYuNC0xNjAgMjAxLjYtMTYwIDI4OHogbS02NC02MDhhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE4IiB1bmljb2RlPSImIzU4OTkzOyIgZD0iTTgzMiA0MjEuNjMyYzM3LjYzMiAxMi44IDY0IDQ4Ljc2OCA2NCA5MC4zNjggMCA1LjU2OC0zMC40IDI0MS42LTMwLjQgMjQxLjZhMTYuMzg0IDE2LjM4NCAwIDAgMS0xNiAxNC40SDE3NC40Yy04IDAtMTUuMjMyLTYuNC0xNi0xNC40IDAgMC0zMC40LTIzNi44LTMwLjQtMjQxLjYgMC00MS42IDI2LjM2OC03Ny41NjggNjQtOTAuNDMydi00MDUuNTY4YzAtOC44MzIgNy4xNjgtMTYgMTYtMTZoNjA4YTE2IDE2IDAgMCAxIDE2IDE2ek03MjAuNzY4IDcwNGwyMS42MzItMTkyaC0zMmwtMjEuNjMyIDE5MnpNNTkyIDcwNGw3LjIzMi0xOTJoLTMyTDU2MCA3MDR6IG0tMTYwIDBoMzJsLTcuMjMyLTE5MmgtMzJ6TTMwMy4xNjggNzA0aDMyTDMxMy42IDUxMmgtMzJ6TTYwOCA2NGgtMTkydjE2MGgxOTJ6TTc2OCAzNTJIMjU2VjQyMS41NjhjMTUuMTY4IDUuNjMyIDI5LjYzMiAxNS4yMzIgNDAgMjcuMjY0YTk1LjYxNiA5NS42MTYgMCAwIDEgMTQ0IDAgOTUuNjE2IDk1LjYxNiAwIDAgMSAxNDQgMCA5NS42MTYgOTUuNjE2IDAgMCAxIDE0NCAwYzEwLjQzMi0xMi4wMzIgMjQuODMyLTIxLjYzMiA0MC0yNy4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE5IiB1bmljb2RlPSImIzU4OTk0OyIgZD0iTTkwOC44IDgwMHMtODkuMDI0IDIuNjI0LTEyNC41NDQtMzJjLTM0LjE3Ni0zMy4yOC00OC4yNTYtNTguNzUyLTQ4LjI1Ni0xMjhIMTQwLjhsODkuMjE2LTMwOC4wOTZjMC4xOTItMC41MTIgMC42NC0wLjk2IDAuODMyLTEuNDA4IDE1LjA0LTQyLjA0OCA1NC4yNzItNzIuMzIgMTAxLjA1Ni03NC4xMTJsMC44MzItMC4zODRoNDE2di0xMi44czAuMDY0LTE5LjItMTIuNzM2LTQ0LjgtMTkuMi0zOC40LTcwLjQtMzguNEgyNDkuNmMtNjQgMC02NC05NiAwLTk2SDY1OS4yYzc2LjggMCAxMzQuNCA0NC44IDE1My42IDg5LjZzMTkuMiA4My4yIDE5LjIgODMuMlY2NDBjMCAzMy41MzYgMTQuNjU2IDY0IDQ0LjggNjRoMzUuMmE0OCA0OCAwIDAgMSAwIDk2eiBtLTI1Ni03MzZjLTM4LjQgMC02NC0yNS42LTY0LTY0czI1LjYtNjQgNjQtNjQgNjQgMjUuNiA2NCA2NC0yNS42IDY0LTY0IDY0eiBtLTMyMCAwYy0zOC40IDAtNjQtMjUuNi02NC02NHMyNS42LTY0IDY0LTY0IDY0IDI1LjYgNjQgNjQtMjUuNiA2NC02NCA2NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yMCIgdW5pY29kZT0iJiM1ODk5NTsiIGQ9Ik05NTEuNTY2MDggMC4zODRsLTkwMS43NiAwLjQ0OHMtOTcuMDg4LTQuNDgtMjAuMTYgNzAuNzg0YTQ3My43OTIgNDczLjc5MiAwIDAgMCA3MC40NjQgMzEuNzQ0IDEyNy44NzIgMTI3Ljg3MiAwIDAgMC0xMC40MzIgNTAuNjg4YzAgNjQuODk2IDQ3LjIzMiAxMTcuNTA0IDEwNS41MzYgMTE3LjUwNHMxMDUuNTM2LTUyLjYwOCAxMDUuNTM2LTExNy41MDRjMC0xLjQwOC0wLjEyOC0yLjc1Mi0wLjE5Mi00LjA5NiA2Ljc4NCAwLjg5NiAxMy42OTYgMS43OTIgMjAuNjA4IDIuNTZWNzYwLjQ0OEMzMjEuMTY2MDggODAwLjM4NCAzNDkuODM4MDggODMyIDM4OC42ODYwOCA4MzJoNDA0LjU0NGMzOC44NDggMCA2NS45Mi0zMS42MTYgNjUuOTItNzEuNjE2di02NDEuOTJjNDcuMjk2LTEzLjYzMiA4Ny44NzItMjkuODg4IDExOS42OC00OC4xOTIgMTE1LjcxMi03OS42MTYtMjcuMzI4LTY5Ljg4OC0yNy4zMjgtNjkuODg4ek01NDYuNzY2MDggNjcwLjkxMmEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OCAzNS44NEg0NDIuNjM4MDhhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODgtMzUuODR2LTk4LjQzMmMwLTE5Ljk2OCAyMy45MzYtMzUuODQgNDMuMzkyLTM1Ljg0aDYwLjhhMzQuOTQ0IDM0Ljk0NCAwIDAgMSAzNC42MjQgMzUuODRWNjcwLjkxMnogbTAtMjU5LjUyYTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4IDM1Ljg0SDQ0Mi42MzgwOGEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OC0zNS44NFYzMTIuOTZjMC0xOS45MDQgMjMuOTM2LTM1Ljc3NiA0My4zOTItMzUuNzc2aDYwLjhhMzQuOTQ0IDM0Ljk0NCAwIDAgMSAzNC42MjQgMzUuODRWNDExLjMyOHogbTIyNS42NjQgMjU5LjUyYTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4IDM1Ljg0aC02OS40NGEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0Ljc1Mi0zNS44NHYtOTguNDMyYzAtMTkuOTY4IDI0LTM1Ljg0IDQzLjM5Mi0zNS44NGg2MC44YTM1LjAwOCAzNS4wMDggMCAwIDEgMzQuNjg4IDM1Ljg0eiBtMC0yNTkuNTJhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODggMzUuODRoLTY5LjQ0YTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNzUyLTM1Ljg0VjMxMi45NmMwLTE5LjkwNCAyNC0zNS43NzYgNDMuMzkyLTM1Ljc3Nmg2MC44YTM1LjAwOCAzNS4wMDggMCAwIDEgMzQuNjg4IDM1Ljg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIxIiB1bmljb2RlPSImIzU4OTk2OyIgZD0iTTUxMiA3NjhjLTIwLjY3MiAwLTI3LjUyLTEzLjk1Mi00MS4zNDQtMjcuOTA0TDcwLjkxMiA3Ni44QzY0IDY5Ljc2IDY0IDU1Ljg3MiA2NCA0OC44OTZjMC0zNC45NDQgMjcuNTItNDguODk2IDQ4LjI1Ni00OC44OTZoNzk5LjQ4OGMyNy41MiAwIDQ4LjI1NiAxMy45NTIgNDguMjU2IDQ4Ljg5NiAwIDEzLjk1MiAwIDEzLjk1Mi02LjkxMiAyNy45MDRMNTYwLjI1NiA3NDAuMDk2QzU0Ni40MzIgNzU0LjA0OCA1MzIuNzM2IDc2OCA1MTIgNzY4eiBtMC0xMDQuNzA0bDIyNy40NTYtMzg0aC01NS4xNjhMNTgwLjkyOCAzODQgNTEyIDI3OS4yOTYgNDQzLjA3MiAzODQgMzM5LjcxMiAyNzkuMjk2aC02Mi4wOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yMiIgdW5pY29kZT0iJiM1ODk5NzsiIGQ9Ik04NDggNDM4Ljg0OEw3OTIgMzg0bDUxLjY0OC0zNTMuOTg0YTI2LjQ5NiAyNi40OTYgMCAwIDAtMjYuNTYtMzAuMDE2aC02NGEyNi44OCAyNi44OCAwIDAgMC0yNCAxNC41MjhsLTQxLjM0NCA4MC43NjhhOTQuNTI4IDk0LjUyOCAwIDAgMS0xOC4xMTIgMjQuNTEybC0zOC4yMDggMzcuMzc2YTIyLjE0NCAyMi4xNDQgMCAwIDEtMTUuNDg4IDYuMjcyaC0xNDkuMTJhMjIuMTQ0IDIyLjE0NCAwIDAgMS0xNS40ODgtNi4yNzJsLTM4LjI3Mi0zNy4zNzZjLTcuMjk2LTcuMTY4LTEzLjQ0LTE1LjQyNC0xOC4wNDgtMjQuNTEybC00MS4zNDQtODAuNzY4YTI2Ljg4IDI2Ljg4IDAgMCAwLTI0LTE0LjUyOGgtNTIuNDhhMjYuMzA0IDI2LjMwNCAwIDAgMC0yNC4xOTIgMzcuNTY4bDI0Ljk2IDUxLjM5MmM2LjU5MiAxMy42MzIgMTAuMDQ4IDI4LjYwOCAxMC4wNDggNDMuNzc2VjM4NGwxNjggMTA5LjY5Ni0yNCAyMy41NTItMzItMjMuNTUyLTMzLjYgMzIuOTYtMTM0LjQtODcuODA4TDI4OCAzODRzLTIyLjE0NCAxOS45NjgtNTYgNTQuODQ4YzAuMTkyIDQ1LjQ0LTc1LjQ1NiA5MC4yNC0xMDIuNTI4IDEwNC44MzJhNDEuMjE2IDQxLjIxNiAwIDAgMS0xOS41MiA0Ljg2NGgtMjRBMjEuNzYgMjEuNzYgMCAwIDAgNjQgNTcwLjExMnYxOS40NTZjMCA4LjQ0OCA1LjA1NiAxNi4xMjggMTIuOTI4IDE5LjU4NGwxOTAuNzg0IDg0LjU0NEwzMDQuMTI4IDc2OGw0Ni4yMDgtNjUuNDcyYzkuMjE2LTEzLjA1NiAxNS45MzYtMjcuNzEyIDE5LjY0OC00My4ybDE4LjgxNi03Ny44MjRMNTY4IDc2OGw1Ni01NC44NDgtMTkyLTE5NS45MDQgNjYuNTYtNjUuMjE2YTQ2LjQ2NCA0Ni40NjQgMCAwIDEgMzIuNTEyLTEzLjE4NGgxMzYuMDY0YTQ2LjcyIDQ2LjcyIDAgMCAxIDIzLjg3MiA2LjU5MmwyNDYuNTI4IDE0Ny4wMDhhMTUuNDg4IDE1LjQ4OCAwIDAgMCAyMi40NjQtMTMuNjMydi02LjUyOGE1Ni42NCA1Ni42NCAwIDAgMC0xNy4wODgtNDAuNDQ4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIzIiB1bmljb2RlPSImIzU4OTk4OyIgZD0iTTY5MC4yNCA3NjhjLTcuNjggMC0yOS42OTYtMTAuMjQtMjkuNjk2LTEwLjI0TDQzMy43MjggNjQwLjUxMmMtMzAuMjA4LTEyLjI4OC00Mi4xNzYtNjEuNTY4LTI0LTg2LjIwOGw2Ni4zMDQtOTguMzA0LTI3MS4xMDQtMTQxLjY5NiAxMzYuMzg0LTEwNC43MDQgMTcwLjg4IDEwNC43MDQgMTcwLjYyNC0xMDQuNzA0IDY4LjQxNiA2OS45NTItMjA0LjggMjc5LjI5Nkw3MjAuOTYgNjY1LjZjMzYuMDMyIDE4LjU2IDMwLjI3MiA0OS4yMTYgMzAuMjcyIDY3Ljc3Ni0wLjMyIDE0LjY1Ni0yNC42NCAzNC42MjQtNjAuOTkyIDM0LjYyNHogbTE0Ni4xNzYtMjA5LjQ3MmMtNjYuMDQ4IDAtMTE5LjYxNi01NC42NTYtMTE5LjYxNi0xMjIuMTc2IDAtNjcuNTIgNTMuNTY4LTEyMi4zMDQgMTE5LjYxNi0xMjIuMzA0czExOS40MjQgNTQuNzg0IDExOS40MjQgMTIyLjMwNGMwIDY3LjUyLTUzLjQ0IDEyMi4yNC0xMTkuNDI0IDEyMi4yNHpNMTcwLjY4OCAyMDkuNDcyTDAgMTA0LjcwNFYwbDE3MC42ODggMTA0LjcwNEwzNDEuMzEyIDBsMTcwLjg4IDEwNC43MDRMNjgyLjc1MiAwbDEzNi4zODQgMTA0LjcwNEwxMDI0IDB2MTA0LjcwNGwtMjA0LjggMTA0Ljc2OC0xMzYuMzg0LTEwNC43NjgtMTcwLjY4OCAxMDQuNzY4LTE3MC44MTYtMTA0Ljc2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yNCIgdW5pY29kZT0iJiM1ODk5OTsiIGQ9Ik03MjguMzIgNjY4LjM1MmEyMjEuMjQ4IDIyMS4yNDggMCAwIDEtNzQuMTEyIDExLjM5MiAyNzIgMjcyIDAgMCAxLTYyLjQ2NC04LjMyYy02LjAxNi0xLjY2NC0xMi4xNi0zLjA3Mi0xNy45Mi00LjkyOCA0LjE2IDIuMzY4IDguMzg0IDQuMjg4IDEyLjYwOCA2LjAxNiAzMC41OTIgMTIuOTkyIDYzLjIzMiAxNC43MiA4OC4zMiAxMi4xNi0yNy45MDQgMTguODgtNzguMjcyIDE5Ljc3Ni0xMTAuOTc2LTAuODk2bC0wLjE5MiAwLjQ0OGM3LjM2IDQuNDggMTUuMjMyIDguODk2IDIzLjU1MiAxMi45OTIgMzYuOTkyIDE4LjE3NiA4MS40NzIgMjYuOTQ0IDExMi4zODQgMTQuNTkyYTEyOC4zODQgMTI4LjM4NCAwIDAgMS00NS45NTIgMjIuNTkyYzMzLjYgNi41OTIgNjguMjI0IDEuOTIgOTcuMTUyLTYuMDE2LTE1LjI5NiAxNS40MjQtMzguNTkyIDIzLjU1Mi02My4zNiAyNS42YTE3NC4wOCAxNzQuMDggMCAwIDAgMTAwLjAzMi00LjkyOCAxNTQuMjQgMTU0LjI0IDAgMCAxLTUxLjUyIDM1Ljk2OGM0MS45MiAxLjAyNCA4NC42MDgtMTUuMzYgMTE2LjI4OC0zNS45NjhhMTk0LjU2IDE5NC41NiAwIDAgMS01OS42NDggNTEuOTY4YzQ3LjIzMi0wLjY0IDk5LjQ1Ni0yMC44NjQgMTMwLjU2LTUwLjM2OC00MC44MzIgNjMuODcyLTExMi4yNTYgODkuNTM2LTE4OC43MzYgNzYuOTI4LTc1LjI2NC0xMS42NDgtMTU3LjQ0LTY0LjU3Ni0xOTguMTQ0LTE0NC41NzYtMS41MzYtMi45NDQtMy4yLTYuMjcyLTQuNjcyLTkuNmEyNzkuOTM2IDI3OS45MzYgMCAwIDEtMzAuNzg0IDM3LjU2OGMtNjAuOTkyIDYyLjk3Ni0xMjcuNjggNzguNTkyLTE3NC4yNzIgNjAuNTQ0LTM4LjQtMTMuNjk2LTY4LjU0NC02MS41MDQtNjAuMDk2LTExNy42MzItMi44OCAyOS43NiAxNS4yOTYgNjMuMzYgMzUuODQgNzcuMjQ4LTguODMyLTE3LjUzNi0xNC4zMzYtMzkuNjgtMTYuNDQ4LTU3LjM0NCA4Ljc2OCAyNS4yOCAyNi4xMTIgNTAuMzY4IDQ3LjY4IDYyLjIwOC05LjA4OC0xMy40NC0xNi4xMjgtMzAuMTQ0LTE5Ljg0LTQ0LjU0NGE4Mi41NiA4Mi41NiAwIDAgMCA1My42MzIgMzIuODMyIDc1Ljc3NiA3NS43NzYgMCAwIDEtMzEuMzYtNDAuNTc2YzE0LjQ2NCAxNC43MiAzNC4yNCAyOC44IDU3LjA4OCAzMy45MmExMTYuNTQ0IDExNi41NDQgMCAwIDEtMjQuNTEyLTM1LjEzNmMxNy4wMjQgMjAuNDggNDkuNjY0IDI2LjU2IDgzLjA3MiAyMi40IDguMDY0LTAuOTYgMTYuMDY0LTIuMzA0IDIzLjkzNi00LjE2di0wLjY0Yy0yOS4xMiA3LjA0LTYwLjkyOC01LjgyNC03OC40NjQtMjYuNzUyLTEwMy40ODgtMy42NDgtMjA0LjkyOC00Ny4xNjgtMjQxLjYtMTQ4LjczNiAyNC4xOTIgMzQuNTYgNjUuOTIgNjcuNTIgMTA1Ljc5MiA4Ni4wMTZhMjI2LjM2OCAyMjYuMzY4IDAgMCAxLTM0LjgxNi02Ni44OGMyMi44NDggMjguOTkyIDU0LjIwOCA1OC42ODggODguNzA0IDc2LjIyNGExNjkuOTIgMTY5LjkyIDAgMCAxLTI4LjgtNTIuMjg4IDIyMy4zNiAyMjMuMzYgMCAwIDAgNzguNzIgNDguNjQgMjYwLjQ4IDI2MC40OCAwIDAgMS0yOS4yNDgtMjQuODk2Yy00OS44NTYtNTAuMjQtODcuODA4LTExOS4xNjgtMTAzLjQyNC0yMTQuMDggMjMuMzYgNTQuMjA4IDU2LjU3NiAxMTEuMjk2IDg2LjkxMiAxNDkuOTUyLTYuOTc2LTI5LjQ0LTEwLjExMi02Mi41MjgtOS42LTg3Ljg3MiAxMy40NCA0Mi4yNCAzMC4wOCA4Ny42OCA1Mi43MzYgMTIwLjUxMmEyNDUuMTIgMjQ1LjEyIDAgMCAxLTUuNTY4LTY1LjIxNiAyNTQuMDggMjU0LjA4IDAgMCAwIDQ3LjM2IDgzLjEzNmMtOS4wODgtMjAuNjcyLTE1LjIzMi00My44NC0xMy4yNDgtNjUuNDcyYTQwOC45NiA0MDguOTYgMCAwIDAgMjUuNTM2IDYwLjI4OHYtMC4xMjhsLTAuNjQtMS42NjQgMC45NiAwLjcwNGE0My42NDggNDMuNjQ4IDAgMCAxIDcuNjgtMTMuODI0YzAtNC41NDQgMC04Ljc2OCAwLjE5Mi0xMi45MjggMC43MDQgMy4zMjggMS41MzYgNi42NTYgMi40OTYgOS45ODQgNi42NTYtNi43ODQgMTUuMzYtMTEuNTIgMjUuMTUyLTEzLjA1Ni00OS4wMjQtMTA4LjYwOC04Ny4zNi0yMzguMDgtODkuMjgtMzYzLjItMTIxLjQwOC0xOC40MzItMjA2LjQ2NC05Ni4wNjQtMjA2LjQ2NC0xMjEuOTg0IDAtMjQuOTYgMTAwLjQ4LTYxLjI0OCAyNTcuOTItNjEuMjQ4IDE1Ny41NjggMCAyNTguMDQ4IDM2LjIyNCAyNTguMDQ4IDYxLjI0OCAwIDI4LjkyOC0xMDYuNDMyIDEyMi41Ni0yNTAuODggMTI1Ljc2IDMuMDcyIDkyLjYwOCAyOC4yODggMjAwLjM4NCA3MC4yMDggMzAzLjA0QTQ1LjI0OCA0NS4yNDggMCAwIDEgNTU4LjA4IDUyNS40NGMwIDEuNzI4LTAuMTI4IDMuNTg0LTAuMzIgNS41NjhhNDUuMjQ4IDQ1LjI0OCAwIDAgMSA2Mi45NzYgNDEuNDcyYzAgMi4zNjgtMC4zMiA0Ljg2NC0wLjU3NiA3LjQyNCA3LjA0LTE1LjA0IDEwLjk0NC0zMC40IDEyLjYwOC00My43MTIgMTAuMjQgMjcuMDA4IDAuNTEyIDY5Ljc2LTI2LjA0OCA5Mi4xNmEyMC4wOTYgMjAuMDk2IDAgMCAxIDEuNDcyLTAuNzA0YzUuNTA0LTQuNzM2IDEwLjY4OC05Ljk4NCAxNS44NzItMTUuNDg4IDI0Ljc2OC0yNi44OCA0MC43MDQtNjMuMTA0IDM2LjAzMi05MS4yNjRhMTA4LjggMTA4LjggMCAwIDEgMTAuMjQgNDMuMDA4YzEyLjE2LTI3LjIgMTQuNC01Ny4xNTIgMTIuMTYtODIuODggMTAuNzUyIDE1LjM2IDEzLjY5NiAzNi40OCAxMC43NTIgNTcuNzkyIDEzLjMxMi0yNi44MTYgMTcuNDcyLTU4LjE3NiAxMS45NjgtODUuMTIgOS45MiAxMi4zNTIgMTkuMDA4IDMwLjI3MiAyMy4wNCA0OS4xNTIgNy42OC0zNS44NC0wLjc2OC03NC42MjQtMTYtMTAyLjUyOCAxNC4yNzIgMTMuMDU2IDI5Ljg4OCAzMy42IDM3LjgyNCA1Ni4xMjggNi4wOC00MC41MTItOC04OC4wNjQtMzUuNzEyLTEwOS4zMTIgNTcuOTIgMjkuMTIgNzMuNzkyIDk5LjAwOCA0OS45MiAxNjMuMDA4LTkuNDA4IDI2LjMwNC0yNS41MzYgNTIuNDgtNDYuNzIgNzUuMTM2YTEzNi4zMiAxMzYuMzIgMCAwIDEtOC4yNTYgMjguNTQ0YzI2LjU2LTIzLjc0NCA0My44NC01NC43MiA1NC40LTgzLjk2OCAzLjg0IDIyLjA4LTMuMzI4IDQ2LjQ2NC0xNy4yMTYgNjguMTYgMjguMDMyLTIyLjQ2NCA0Ny42MTYtNTQuNzIgNTYuMzg0LTg2LjQgMy45NjggMTguNDMyIDQuMjg4IDQyLjI0LTAuNTEyIDY0Ljg5NiAyNS45ODQtMzUuMDcyIDM3LjM3Ni04MC4yNTYgMzkuNjgtMTE5LjU1MiA2LjcyIDIyLjA4IDExLjAwOCA1My4xODQgNy41NTIgODEuMTUyYTI1MS41MiAyNTEuNTIgMCAwIDAgNDEuMDg4LTE0MC42MDhjMjIuMTQ0IDc1LjIgMy4wMDggMTQ4LjQ4LTUzLjUwNCAyMDUuMjQ4YTI2Mi4yNzIgMjYyLjI3MiAwIDAgMS0xMDguOCA2NS42NjR6IG0tMjI0LjY0LTUuMTJhNDE0Ljk3NiA0MTQuOTc2IDAgMCAxLTkxLjIgMTAuMzY4IDExNS45NjggMTE1Ljk2OCAwIDAgMCAxMDEuMTItMTIuNTQ0bC05LjkyIDIuMjR6IG0xMDkuNTY4LTE2LjMyYTUyLjE2IDUyLjE2IDAgMCAxLTUuNTA0IDIuODE2bDAuMTI4IDAuNzA0IDEzLjEyLTYuNGMtMi41NiAxLjAyNC01LjEyIDEuOTItNy43NDQgMi44OHogbTY5LjEyLTU4MC45MjhjMS4yOC0zLjM5MiAxLjkyLTYuNTkyIDEuOTItOS40MDggMC00MC4zMi0xMjAuNzY4LTcyLjk2LTI2OS42OTYtNzIuOTYtMTQ4Ljk5MiAwLTI2OS42OTYgMzIuNjQtMjY5LjY5NiA3Mi45NiAwIDIuODE2IDAuNjQgNi4wMTYgMS44NTYgOS40MDgtMjkuMTItMTIuNzM2LTQ1LjgyNC0yNy44NC00NS44MjQtNDQuMDk2IDAtNDYuNTkyIDE0MC40MTYtODQuNjA4IDMxMy42LTg0LjYwOCAxNzMuMjQ4IDAgMzEzLjcyOCAzOC4wMTYgMzEzLjcyOCA4NC42MDggMCAxNi4yNTYtMTYuODMyIDMxLjM2LTQ1Ljk1MiA0NC4wOTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjUiIHVuaWNvZGU9IiYjNTkwMDA7IiBkPSJNNjQgMzg4LjI4OGMwIDUzLjA1NiAxOS41ODQgMTAwLjQ4IDU4LjgxNiAxNDIuNCA4LjM4NCA4LjMyIDE2Ljc2OCAxOS41MiAyMi40IDI3LjkwNCA1My4xODQgNjcuMDA4IDExNC43NTIgMTI1LjYzMiAxNzkuMiAxODEuNDQgMTkuNTg0IDE2Ljc2OCAzNi4zNTIgMzMuNTM2IDU2IDQ3LjQ4OCAyNy45NjggMjIuMzM2IDYxLjU2OCAzNi4yODggMTAwLjggNDEuODU2IDY3LjIgOC4zODQgMTI1Ljk1Mi0xMS4xMzYgMTc2LjM4NC01OC42MjQgMTkuNTg0LTE2Ljc2OCAzOS4yMzItMzMuNDcyIDYxLjYzMi01MC4yNCA2NC4zODQtNTUuODcyIDEyMy4yLTExNC40OTYgMTczLjU2OC0xODEuNTA0IDguMzg0LTExLjEzNiAxOS41ODQtMjIuMzM2IDI4LjAzMi0zNi4yODggMzAuNzItNDQuNjcyIDQxLjk4NC05Ny42NjQgMzMuNi0xNTAuNzItNS42MzItNDQuNjcyLTI1LjIxNi04MC45Ni01Ni0xMTQuNDk2bC01MC40MzItNTguNjI0Yy0zNi40MTYtNDEuODU2LTcyLjc2OC04MC45Ni0xMTQuODE2LTExNy4yNDgtMjIuNC0xOS41Mi00NC44LTM2LjI4OC02Ny4yLTU1LjgwOC0xMy45NTItMTEuMi0yNS4xNTItMjIuNC0zOS4xNjgtMzAuNzJhMjE0LjU5MiAyMTQuNTkyIDAgMCAwLTE1My45ODQtMzMuNTM2Yy00NC44IDUuNTY4LTgxLjI4IDI1LjE1Mi0xMTQuODE2IDU1Ljg3Mi04LjM4NCA4LjMyLTE2LjgzMiAxMy45NTItMjguMDMyIDIyLjMzNmExMTM5LjUyIDExMzkuNTIgMCAwIDAtMTU2LjggMTUwLjcyYy0xNi43NjggMjIuNC0zNi4zNTIgNDEuOTItNTMuMTg0IDY0LjI1Ni0yLjgxNiA4LjMyLTE0LjAxNiAyMi4zMzYtMjIuNCAzNi4yODhDNzUuMiAzMDQuNTEyIDY0IDM0My42MTYgNjQgMzg4LjI4OHogbTM3Mi40MTYtODAuOTZ2LTE3NS44NzJjMC0xOS41ODQgMTEuMi0zMC43MiAzMC43ODQtMzAuNzJoODkuNmEyMS40NCAyMS40NCAwIDAgMSAxNC4wMTYgNS41NjggNTYuNzA0IDU2LjcwNCAwIDAgMSAxNi43NjggNDEuODU2djE1My42YzAgNS41NjggMCA1LjU2OCA1LjYzMiA1LjU2OGgxNzYuMzg0YzE0LjAxNiAwIDI1LjIxNiAxMS4xMzYgMjcuOTY4IDI1LjA4OHY5Mi4xNmMwIDUuNTY4LTIuNzUyIDExLjEzNi01LjU2OCAxNi43NjgtNS42MzIgOC4zMi0xNi44MzIgMTEuMTM2LTI4LjAzMiAxMS4xMzZINTg3LjU4NFY2MjguMzUyYzAgMjIuNC0xMS4yIDMzLjUzNi0zMy42IDMzLjUzNkg0NzAuMDE2Yy01LjYzMiAwLTExLjIgMC0xNi44MzItMi44MTZhMzAuNzIgMzAuNzIgMCAwIDEtMTYuNzY4LTI3LjkwNHYtMTc1Ljg3MkgyNTkuOTY4Yy0xOS41ODQgMC0zMC43Mi0xMS4yLTMwLjcyLTMwLjcydi04Ni41MjhjMC04LjM4NCAyLjc1Mi0xNC4wMTYgNS41NjgtMTkuNTg0IDUuNTY4LTguMzIgMTYuNzY4LTExLjEzNiAyNy45NjgtMTEuMTM2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI2IiB1bmljb2RlPSImIzU5MDAxOyIgZD0iTTMyNS4zMTIzNSA0NTIuOTI2OTExYy0xMDMuMDM5ODA3IDAtMTg2LjYyMzY1IDgyLjYyMzg0NS0xODYuNjIzNjUgMTg0LjYzOTY1NFY3ODUuMjE0Mjg4YTM3LjExOTkzIDM3LjExOTkzIDAgMCAwIDM3LjMxMTkzIDM2LjkyNzkzaDM3LjMxMTkzYTM3LjExOTkzIDM3LjExOTkzIDAgMCAxIDM3LjM3NTkzIDM2LjkyNzkzMUEzNy4xMTk5MyAzNy4xMTk5MyAwIDAgMSAyMTMuMzEyNTYgODk1Ljk5ODA4SDE3Ni4wMDA2M0ExMTEuMzU5NzkxIDExMS4zNTk3OTEgMCAwIDEgNjQuMDAwODQgNzg1LjI3ODI4OHYtMTQ3LjcxMTcyM0EyNTYuOTU5NTE4IDI1Ni45NTk1MTggMCAwIDEgMTc2Ljc2ODYyOSA0MjUuNTk4OTYyIDMyNC4yODczOTIgMzI0LjI4NzM5MiAwIDAgMCAyODguMDAwNDIgMTk0LjQzMTM5NUMyODguMDAwNDIgNTEuNzExNjYzIDQwNC45OTIyMDEtNjQuMDAwMTIgNTQ5LjMxMTkzLTY0LjAwMDEyczI2MS4zNzU1MSAxMTUuNzExNzgzIDI2MS4zNzU1MSAyNTguNDMxNTE1djQyLjExMTkyMWExNDcuNTgzNzIzIDE0Ny41ODM3MjMgMCAwIDEgMTA3LjI2Mzc5OSAxNzkuOTY3NjYzYy0yMC42NzE5NjEgNzguOTc1ODUyLTEwMi4wNzk4MDkgMTI2LjQ2Mzc2My0xODEuOTUxNjU5IDEwNi4wNDc4MDFhMTQ3LjU4MzcyMyAxNDcuNTgzNzIzIDAgMCAxLTEwNy4yNjM3OTktMTc5LjkwMzY2MiAxNDguNDc5NzIyIDE0OC40Nzk3MjIgMCAwIDEgMTA3LjI2Mzc5OS0xMDYuMTExODAydi00Mi4xMTE5MjFjMC0xMDEuOTUxODA5LTgzLjU4Mzg0My0xODQuNTc1NjU0LTE4Ni42ODc2NS0xODQuNTc1NjUzLTEwMy4wMzk4MDcgMC0xODYuNjIzNjUgODIuNjIzODQ1LTE4Ni42MjM2NSAxODQuNTc1NjUzYTMyNC4yODczOTIgMzI0LjI4NzM5MiAwIDAgMCAxMTEuOTk5NzkgMjMxLjE2NzU2NyAyNTYuODk1NTE4IDI1Ni44OTU1MTggMCAwIDEgMTExLjk5OTc5IDIxMS45Njc2MDNWNzg1LjIxNDI4OEExMTEuMzU5NzkxIDExMS4zNTk3OTEgMCAwIDEgNDc0LjY4ODA3IDg5NS45OTgwOGgtMzcuMzc1OTNhMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDEtMzcuMzExOTMtMzYuOTI3OTMxIDM3LjExOTkzIDM3LjExOTkzIDAgMCAxIDM3LjMxMTkzLTM2LjkyNzkzMWgzNy4zNzU5M0EzNy4xMTk5MyAzNy4xMTk5MyAwIDAgMCA1MTIgNzg1LjI3ODI4OHYtMTQ3LjY0NzcyNGMwLTEwMi4wMTU4MDktODMuNTgzODQzLTE4NC42Mzk2NTQtMTg2LjY4NzY1LTE4NC42Mzk2NTN6IG00NDcuOTk5MTYtMTQ3LjcxMTcyM2MtNDEuMjE1OTIzIDAtNzQuNjIzODYgMzMuMDg3OTM4LTc0LjYyMzg2IDczLjg1NTg2MXMzMy40MDc5MzcgNzMuODU1ODYyIDc0LjYyMzg2IDczLjg1NTg2MiA3NC42ODc4Ni0zMy4wODc5MzggNzQuNjg3ODYtNzMuODU1ODYyLTMzLjQwNzkzNy03My44NTU4NjItNzQuNjg3ODYtNzMuODU1ODYxeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI3IiB1bmljb2RlPSImIzU5MDAyOyIgZD0iTTgxMC42MjQgMjM5LjEwNGEyOTcuNiAyOTcuNiAwIDAgMS0yNDEuOTItMTI0LjA5NmMtOC4zODQtMTEuNjQ4LTI2Ljg4LTUuNDQtMjYuODggOC45NnY2Mi42NTZhMzAuNzIgMzAuNzIgMCAwIDAgMTUuODA4IDI2LjI0YzMwLjIwOCAxNy44NTYgNDcuMjMyIDUxLjcxMiA0My40NTYgODYuNTkyIDEuOTItMi40MzIgMy42NDgtNS4wNTYgNS45NTItNy4yOTZhODkuNiA4OS42IDAgMCAxIDEyNi43MiAxMjYuNzJjLTIuMzA0IDIuMjQtNC44NjQgMy45NjgtNy4yOTYgNS45NTIgMTguODgtMS45ODQgMzkuMjMyIDEuMjE2IDYxLjk1MiAxOS4zMjggMjMuNDg4IDE4LjgxNiAzOS4yMzIgNDYuNzIgMzYuOTI4IDc2LjY3MmE4OS42IDg5LjYgMCAwIDEtOTguODggODIuMTc2YzIuNDMyIDEuOTIgNC45OTIgMy42NDggNy4yOTYgNS45NTJhODkuNiA4OS42IDAgMCAxLTEyNi43MiAxMjYuNzJjLTIuMzA0LTIuMzA0LTMuOTY4LTQuODY0LTUuOTUyLTcuMjk2IDIuMTc2IDIwLjQ4LTEuNzkyIDQyLjg4LTI0LjQ0OCA2Ny44NC0xNi42NCAxOC4zMDQtMzkuNDI0IDMxLjE2OC02NC4xMjggMzEuMjk2YTg5LjYgODkuNiAwIDAgMS04OS42LTk5LjJjLTEuOTIgMi40OTYtMy42NDggNS4xMi01Ljk1MiA3LjM2YTg5LjYgODkuNiAwIDAgMS0xMjYuNzItMTI2LjcyYzIuMzA0LTIuMzA0IDQuODY0LTQuMDMyIDcuMjk2LTUuOTUyLTIwLjQ4IDIuMTc2LTQyLjg4LTEuODU2LTY3Ljg0LTI0LjUxMi0xOC4zMDQtMTYuNjQtMzEuMTY4LTM5LjM2LTMxLjI5Ni02NC4wNjRhODkuNiA4OS42IDAgMCAxIDk5LjItODkuNmMtMi40OTYtMS45Mi01LjEyLTMuNzEyLTcuMzYtNS45NTJhODkuNiA4OS42IDAgMCAxIDEyNi43Mi0xMjYuNzJjMi4zMDQgMi4yNCAzLjk2OCA0Ljg2NCA1Ljk1MiA3LjI5NmE4OS4zNDQgODkuMzQ0IDAgMCAxIDQzLjUyLTg2LjU5MiAzMC43ODQgMzAuNzg0IDAgMCAwIDE1LjY4LTI2LjI0di02Mi43MmMwLTE0LjMzNi0xOC40MzItMjAuNTQ0LTI2LjgxNi04Ljk2YTI5Ny42IDI5Ny42IDAgMCAxLTMyMy4zOTIgMTEyLjgzMiAzMC4xNDQgMzAuMTQ0IDAgMCAxLTE5LjItNDIuNDk2QTQ0Ny45MzYgNDQ3LjkzNiAwIDAgMSA1MTItNTkuNTJINTEyYTQ0Ny45MzYgNDQ3LjkzNiAwIDAgMSAzOTkuMTY4IDI0NC44IDMwLjE0NCAzMC4xNDQgMCAwIDEtMTkuMiA0Mi40OTYgMjk3LjM0NCAyOTcuMzQ0IDAgMCAxLTgxLjQwOCAxMS4zMjh6IG0tNDAzLjIgMjc0LjgxNmExMDQuNTEyIDEwNC41MTIgMCAxIDAgMjA5LjA4OCAwIDEwNC41MTIgMTA0LjUxMiAwIDAgMC0yMDkuMDI0IDB6IG0xMDUuMDI0LTU3Ny4zNDRjMCAyLjExMi0wLjM4NCA0LjIyNC0wLjUxMiA2LjRoMS4wODhjLTAuMTI4LTIuMjQtMC41NzYtNC4yODgtMC41NzYtNi40eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI4IiB1bmljb2RlPSImIzU5MDAzOyIgZD0iTTUxMiA4MzJDMjY0LjgzMiA4MzIgNjQgNjMxLjE2OCA2NCAzODRzMjAwLjgzMi00NDggNDQ4LTQ0OCA0NDggMjAwLjgzMiA0NDggNDQ4LTIwMC44MzIgNDQ4LTQ0OCA0NDh6IG0yMjQtNjU0LjRjMC0xNC40LTExLjItMjUuNi0yNC44MzItMjUuNi0yMzUuOTY4IDAtNDI3LjEzNiAxOTYuMDMyLTQyNy4xMzYgNDM4LjQgMCAxNC40IDExLjIgMjUuNiAyNC43NjggMjUuNkgzOTYuOGMxMy42MzIgMCAyNC44MzItMTEuMiAyNC44MzItMjUuNiAwLTMyIDQuOC02My4yMzIgMTQuNC05Mi44IDIuMzY4LTguODMyIDAuNzY4LTE5LjItNi40LTI2LjQzMmwtNTUuMjMyLTU2Ljc2OGEzODEuNTA0IDM4MS41MDQgMCAwIDEgMTY1LjYzMi0xNjkuNmw1NS4xNjggNTYuNzY4YzYuNCA3LjIzMiAxNi44MzIgOS42IDI1LjYgNi40IDI4LjAzMi05LjYgNTguNDMyLTE0LjQgODkuNi0xNC40YTI1LjYgMjUuNiAwIDAgMCAyNC44MzItMjUuNnYtOTAuMzY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI5IiB1bmljb2RlPSImIzU5MDA0OyIgZD0iTTU2My43NzYgMzEwLjU5Mkg0NjUuNDA4di0xOTYuMzUySDM2Ny4xMDRWNjA1LjE4NGgxOTYuNjcyYzk3LjA4OCAwIDE0NC4zODQtNjcuNDU2IDE0NC4zODQtMTQ3LjIgMC03OS44NzItMzcuMjQ4LTE0Ny4zMjgtMTM0LjQtMTQ3LjMyOGgtOS45ODR6TTUxMiA4MzMuOTJDMjYzLjE2OCA4MzMuOTIgNjEuNDQgNjMyLjUxMiA2MS40NCAzODRjMC0yNDguNTEyIDIwMS43MjgtNDQ5Ljk4NCA0NTAuNTYtNDQ5Ljk4NHM0NTAuNTYgMjAxLjQ3MiA0NTAuNTYgNDQ5LjkyQzk2Mi41NiA2MzIuNTEyIDc2MC44MzIgODMzLjkyIDUxMiA4MzMuOTJ6IG01MS43NzYtMzI2Ljg0OEg0NjUuNDA4di05OC4yNEg1NjMuODRjNDEuNiAwIDQ5LjA4OCAxMC44OCA0OS4wODggNDkuMDg4IDAgMzguMjcyIDIuMzY4IDQ5LjE1Mi0zOS4yOTYgNDkuMTUySDU2My44NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMCIgdW5pY29kZT0iJiM1OTAwNTsiIGQ9Ik0zMTcuNjk2IDU0NC4xOTJWNjkxLjcxMkgxNjAuODMyeiBtMzg4LjYwOCAxNDcuNTJ2LTE0Ny40NTZsMTU2Ljg2NCAxNDcuNDU2ek0zMTcuNjk2IDMyOS4yOFY0NzYuNjcySDE2MC44MzJ6IG0zODguNjA4IDBsMTU2Ljg2NCAxNDcuNDU2aC0xNTYuODY0ek0zMTguNC02NGgzODcuNTg0VjgzMkgzMTguNHpNNTA5LjM3NiA3NjkuOTg0YzYxLjc2IDAgMTExLjg3Mi00OS42NjQgMTExLjg3Mi0xMTAuOTc2cy01MC4xMTItMTEwLjk3Ni0xMTEuODcyLTExMC45NzYtMTExLjg3MiA0OS42NjQtMTExLjg3MiAxMTAuOTc2IDUwLjExMiAxMTAuOTc2IDExMS44NzIgMTEwLjk3NnogbTAtMjc1LjUyYTExMS4zNiAxMTEuMzYgMCAwIDAgMTExLjg3Mi0xMTAuOTEyYzAtNjEuMzEyLTUwLjExMi0xMTAuOTc2LTExMS44NzItMTEwLjk3NnMtMTExLjg3MiA0OS42LTExMS44NzIgMTEwLjkxMiA1MC4xMTIgMTEwLjk3NiAxMTEuODcyIDExMC45NzZ6IG0wLTI3NS41MmM2MS43NiAwIDExMS44NzItNDkuNjY0IDExMS44NzItMTEwLjk3NiAwLTYxLjI0OC01MC4xMTItMTEwLjkxMi0xMTEuODcyLTExMC45MTJzLTExMS44NzIgNDkuNjY0LTExMS44NzIgMTEwLjkxMmMwIDYxLjMxMiA1MC4xMTIgMTEwLjk3NiAxMTEuODcyIDExMC45NzZ6IG0xOTYuOTI4LTEwNC43MDRsMTU2Ljg2NCAxNDcuNDU2aC0xNTYuODY0eiBtLTM4OC42MDggMFYyNjEuNjk2SDE2MC44MzJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzEiIHVuaWNvZGU9IiYjNTkwMDY7IiBkPSJNNjU4LjQzMiA0MjYuNjg4QTQyLjY4OCA0Mi42ODggMCAxIDAgNjU2LjUxMiA1MTJhNDIuNjg4IDQyLjY4OCAwIDAgMCAxLjkyLTg1LjMxMnogbS0yOTguNjg4IDBBNDIuNjg4IDQyLjY4OCAwIDEgMCAzNTcuODI0IDUxMmE0Mi42ODggNDIuNjg4IDAgMCAwIDEuOTItODUuMzEyeiBtMC45NiAyNTEuMzkyQzM2MC43MDQgNzYzLjIgNDI3LjQ1NiA4MzIgNTA5LjU2OCA4MzJjODIuMDQ4IDAgMTQ4Ljg2NC02OC44IDE0OC44NjQtMTUzLjkydi0zOC43ODRMMzYwLjcwNCA2NDB6IG01NTYuNjcyLTEwMC4zNTJBNjcuOTA0IDY3LjkwNCAwIDAgMSA4NTAuNDMyIDY0MGgtMTQ5LjM3NnYzOC4wOGMwIDEwOC40MTYtODUuNTY4IDE5Ni42MDgtMTkxLjQ4OCAxOTYuNjA4UzMxOC4wMTYgNzg2LjQ5NiAzMTguMDE2IDY3OC4wOFY2NDBIMTY3Ljc0NGMtMzQuODE2IDAtNjQuNTEyLTI3LjY0OC02Ny4wMDgtNjIuMjcybC0zNi41NDQtNTEyLjM4NEE2MC40OCA2MC40OCAwIDAgMSAxMjQuOTkyIDBoNzY4LjEyOGE2MC4zNTIgNjAuMzUyIDAgMCAxIDYwLjg2NCA2NS4zNDR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzIiIHVuaWNvZGU9IiYjNTkwMDc7IiBkPSJNMjIwLjQxNiA4MTUuNTUydi0xNC42NTZjMC0yOS4yNDggMjEuMzc2LTUxLjIgNDkuNzkyLTUxLjIgMjEuMzEyIDAgMzUuNTg0IDE0LjY1NiA0Mi42ODggMzYuNjA4bDE0LjIwOCAzNi41NDQgMzk4LjIwOC0xNjguMTkyTDQ0OCA0NTcuMTUyYy0yOC40MTYtMjEuOTUyLTI4LjQxNi01MS4yLTIxLjMxMi04MC40NDhsNjQtMTUzLjYtOTIuNDgtMjg1LjI0OEE0Ny4xNjggNDcuMTY4IDAgMCAxIDQ0MC45Ni0xMjhjMjEuMzEyIDAgMzUuNTIgNy4yOTYgNDIuNjg4IDM2LjU0NGw5OS41MiAyOTIuNjA4IDcuMTA0LTIxLjk1MnYtMjU2czAtNTEuMiA0OS43OTItNTEuMiA0OS43OTIgNTEuMiA0OS43OTIgNTEuMnYyNDEuMzQ0YzAgMTQuNjU2IDAgMjEuOTUyLTcuMTA0IDM2LjYwOEw1ODMuMDQgNDQ5Ljg1NmwxOTIgMTM4Ljk0NGMxNC4yMDggMTQuNjU2IDI4LjQ4IDIxLjk1MiAyOC40OCA0My45MDRzLTE0LjI3MiAzNi41NDQtMjguNDggNDMuODRsLTUxMiAyMTIuMTZjLTYuMjA4IDAtOC4zODQtMS4yOC0xNC4yMDgtNy4zNnpNMzY5Ljc5MiA2NzYuNDhjLTU2Ljk2IDAtMTA2LjY4OC01MS4yLTEwNi42ODgtMTA5LjY5NiAwLTU4LjQ5NiA0OS43OTItMTA5LjY5NiAxMDYuNjg4LTEwOS42OTZzMTA2LjYyNCA1MS4yIDEwNi42MjQgMTA5LjY5NmMwIDU4LjQ5Ni00OS43MjggMTA5LjY5Ni0xMDYuNjI0IDEwOS42OTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzMiIHVuaWNvZGU9IiYjNTkwMDg7IiBkPSJNNzY4IDgwMGE5NiA5NiAwIDEgMC0xOTIgMCA5NiA5NiAwIDAgMCAxOTIgMHogbTAtNjA4YTY0IDY0IDAgMSAxIDAtMTI4IDY0IDY0IDAgMCAxIDAgMTI4eiBtMTE3Ljc2IDMxNC4yNGwtMTIyLjI0IDEyMi4yNGEzMC43MiAzMC43MiAwIDAgMS0yMy42OCAxMS41MkgyODhhMzIgMzIgMCAwIDEgMC02NGgxNzIuOEwyNTYgMTcyLjhhMzEuMjMyIDMxLjIzMiAwIDAgMSAwLTEyLjggMzIuNzA0IDMyLjcwNCAwIDAgMSA2NC0xMy40NEwzODQgMjU2aDEyOGwtMTIzLjUyLTI3MS4zNmEzMS4zNiAzMS4zNiAwIDAgMS00LjQ4LTE2LjY0IDMyLjY0IDMyLjY0IDAgMCAxIDY0LTEyLjhsMzAwLjggNjAwLjMyIDkyLjE2LTk0LjcyYTMyIDMyIDAgMCAxIDQ0LjggNDUuNDR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzQiIHVuaWNvZGU9IiYjNTkwMDk7IiBkPSJNODM2LjkyOCA0NzIuNjR2LTMyNC45MjhhMjkuNTY4IDI5LjU2OCAwIDAgMC01OS4wNzIgMFYyNjUuODU2YzAgNDguOTYtMzkuNjggODguNTc2LTg4LjY0IDg4LjU3Nkg2MDAuNjRWNzA4LjkyOEE1OS4wNzIgNTkuMDcyIDAgMCAxIDU0MS41NjggNzY4SDE4Ny4wNzJBNTkuMDcyIDU5LjA3MiAwIDAgMSAxMjggNzA4LjkyOHYtNjQ5Ljg1NmMwLTMyLjY0IDI2LjQzMi01OS4wNzIgNTkuMDcyLTU5LjA3MmgzNTQuNDk2YzMyLjY0IDAgNTkuMDcyIDI2LjQzMiA1OS4wNzIgNTkuMDcyVjI5NS4zNmg4OC41NzZjMTYuMzIgMCAyOS41NjgtMTMuMTg0IDI5LjU2OC0yOS41MDR2LTExOC4xNDRhODguNjQgODguNjQgMCAwIDEgMTc3LjIxNiAwdjM4NGE1OS4wNzIgNTkuMDcyIDAgMCAxLTU5LjA3MiA1OS4wNzJWNjgwYTI5LjUwNCAyOS41MDQgMCAwIDEtMjkuNTY4IDI4LjkyOCAzMC4wOCAzMC4wOCAwIDAgMS0yOS41MDQtMzIuNTEydi0xNDQuNzA0YTU5LjA3MiA1OS4wNzIgMCAxIDEgNTkuMDcyIDU5LjA3MnogbS0yOTUuMzYtMjkuNTY4QTI5LjU2OCAyOS41NjggMCAwIDAgNTEyIDQxMy41NjhIMjE2LjY0YTI5LjU2OCAyOS41NjggMCAwIDAtMjkuNTY4IDI5LjUwNHYxNzcuMjhjMCAxNi4yNTYgMTMuMjQ4IDI5LjQ0IDI5LjU2OCAyOS40NEg1MTJjMTYuMzIgMCAyOS41NjgtMTMuMTg0IDI5LjU2OC0yOS40NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNSIgdW5pY29kZT0iJiM1OTAxMDsiIGQ9Ik0zMDguNTQ0IDY5Mi41NDRjMzAuNzg0IDUuMTIgMjkuMDU2IDMyLjUxMiAxMDkuNDQgNTEuMzI4IDAgMCAzNC4xNzYgNDIuNjg4IDc2LjkyOCAzOS4yOTYgMCAwIDQ3Ljg3Mi02Ljg0OCAzNS44NCAxMy42OTZTNDkzLjI0OCA4NjguNjcyIDUzNy43MjggODg1Ljc2czY2LjYyNC0zLjQ1NiA3NS4yLTExLjk2OGM4LjU3Ni04LjU3NiA4LjU3Ni0yMy45MzYgOC41NzYtMjMuOTM2czMuMzkyLTI3LjM5MiAxLjY2NC0zNC4xNzZjLTEuNjY0LTYuODQ4LTIzLjkzNi0yMC41NDQtMTEuOTY4LTI3LjM5MiAxMS45NjgtNi44NDggOTIuMzUyIDUuMTIgOTUuNzQ0LTcwLjA4IDAgMCAzOS4yOTYtNTQuNzIgNTIuOTkyLTc4LjY1NiAwIDAgNTQuNzItNDQuNDE2IDY4LjQxNi03MC4wOCAwIDAgNTIuOTkyLTQ0LjQxNiA1Ni4zODQtNDcuODcyIDEuNzI4LTMuMzkyIDY2LjY4OC01MS4yNjQgMzcuNjMyLTU2LjM4NCAwIDAgMS42NjQtMzQuMTc2LTE1LjM2LTYuODQ4LTE1LjQyNCAyNy4zMjgtMTMuNjk2IDguNTEyLTEzLjY5NiA1LjEyIDAtMy4zOTIgMTAuMjQtMzUuODQtMjAuNDgtMTcuMDg4LTI5LjEyIDE4LjgxNi0yNCA0NC40MTYtMjQgNDQuNDE2czExLjk2OCA2Ljg0OC0xMy42OTYgMjIuMjcyYy0yNS42IDE1LjM2LTY2LjYyNCA0Ni4wOC02Ni42MjQgNTQuNjU2IDAgMC00OS42IDM1LjkwNC01Ni40NDggNTIuOTkyLTYuODQ4IDE1LjM2LTYuODQ4IDAtMTAuMjQtNi43ODQgMCAwLTI1LjYtNDIuNzUyLTIwLjQ4LTYxLjU2OCAzLjM5Mi0xOC44MTYgMjguOTkyLTk5LjIgMjUuNi0xMTkuNjgtMy4zOTItMjAuNDgtMTguODE2LTg1LjQ0LTE3LjA4OC04OC44OTYgMS43MjgtMy4zOTIgMjIuMjA4LTgwLjMyLTI1LjYtMTExLjEwNCAwIDAtODIuMTEyLTE1Ny4yNDgtODAuMzg0LTE3NC4zMzYgMS43MjgtMTguODE2IDEuNzI4LTI5LjEyIDEuNzI4LTI5LjEybDEuNjY0LTI1LjZjLTYuODQ4LTguNTc2IDUuMTItNjMuMjk2IDE4LjgxNi03NS4yNjQgMTMuNjk2LTExLjk2OCAzMi41MTItNjQuOTYtMjcuMzI4LTQyLjY4OEM1MTguODQ4LTkzLjgyNCA1MTItMzkuMTA0IDUxMi0zOS4xMDRzLTQ2LjE0NCAyMC40OC0xNS4zNiA1Ni4zODRjMjkuMDU2IDM1LjkwNCAzOS4yOTYgMzQuMjQgMzkuMjk2IDM0LjI0czEuNzI4IDIwLjQ4IDYuODQ4IDE3LjA4OGMzLjM5Mi0xLjcyOCAxOC44MTYgMjEzLjY5NiA3MC4wOCAyMDYuODQ4bC0xMC4yNCAyMC40OHMtMTcuMDg4LTM1Ljg0LTI1LjY2NC00Mi42ODhjLTguNTc2LTYuODQ4LTYuODQ4LTMwLjc4NC0zNy42MzItNDIuNzUyLTMwLjcyLTExLjk2OC04NS40NC01Ni40NDgtMTI5LjkyLTg3LjE2OCAwIDAtNi44NDgtMzcuNjMyLTExLjk2OC0zOS4zNi0zLjM5Mi0xLjcyOC0zMC43Mi01MS4yNjQtMjUuNi02MS41MDQgNi44NDgtMTEuOTY4LTIyLjI3Mi04MC4zODQtNDcuODcyLTguNTc2LTI1LjYgNzAuMDgtNi44NDggNzYuOTI4LTYuODQ4IDc2LjkyOHMtMjAuNDggNTkuODQgNS4xMiA2MS41NjggNDcuODcyLTEuNzI4IDUxLjI2NCAwYzMuNDU2IDEuNjY0IDguNTc2IDMuMzkyIDguNTc2IDMuMzkyczgzLjc3NiAxMTcuOTUyIDEyMS4zNDQgMTE0LjU2YzAgMC02Ljc4NCAxNTIuMTI4IDEwLjI0IDE2MC42NCAwIDAtNTYuMzIgOTAuNjI0LTYuNzg0IDE0MS45NTIgMCAwLTM0LjE3NiA4My43MTItMjIuMjA4IDk0LjAxNiAwIDAtMjUuNjY0IDE4LjgxNi0xOC44MTYgMjUuNiAwIDAtNzguNjU2LTMyLjQ0OC0xMTYuMjg4LTMyLjQ0OCAwIDAtMjAuNDgtNS4xMi0yNy4zMjgtMTEuOTY4IDAgMC0xMTguMjcyLTI1LjYtMTMwLjI0LTguNTc2LTEwLjI0IDE1LjM2IDUzLjMxMiAzNy42MzIgNTMuMzEyIDM3LjYzMnMzMi41MTIgMTAuMjQgNjMuMjMyIDE1LjM2eiBtLTIxMy42OTYtMS42NjRhNzMuNTM2IDczLjUzNiAwIDEgMSAxNDcuMDcyIDAgNzMuNTM2IDczLjUzNiAwIDAgMS0xNDcuMDcyIDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzYiIHVuaWNvZGU9IiYjNTkwMTE7IiBkPSJNNjgyLjY4OCA3NjhjLTM3Ljc2IDAtNjguMjg4LTMxLjA0LTY4LjI4OC02OS4zMTJzMzAuNTkyLTY5LjM3NiA2OC4yODgtNjkuMzc2IDY4LjIyNCAzMS4wNCA2OC4yMjQgNjkuMzc2UzcyMC4zODQgNzY4IDY4Mi42ODggNzY4eiBtLTEyNi43Mi0xMzguMjRhMzMuOTIgMzMuOTIgMCAwIDEtMjMuNjgtOS45MkwzNTIgNDQ2LjUyOGEzNS4wMDggMzUuMDA4IDAgMCAxIDIuOTQ0LTUyLjkyOGwxMjIuODgtOTMuNTY4di0xOTAuNzJjLTAuNjQtNDYuODQ4IDY4Ljk5Mi00Ni44NDggNjguMjg4IDB2MjA4YTM0Ljg4IDM0Ljg4IDAgMCAxLTEzLjU2OCAyNy43NzZsLTUyLjQxNiAzOS45MzYgMTI0LjE2IDExOS4zNiA1MS4wNzItNjkuMjQ4YTMzLjkyIDMzLjkyIDAgMCAxIDI3LjMyOC0xMy44MjRoMTAyLjRjNDYuMDgtMC42NCA0Ni4wOCA3MC4wMTYgMCA2OS4zNzZoLTg1LjM3NmwtNTEuMiA2OS4zMTItNDAuOTYgNTUuNTUyYTMzLjk4NCAzMy45ODQgMCAwIDEtMjYuMjQgMTQuMjA4ek0yMDQuOCAzNTJDOTEuNzEyIDM1MiAwIDI1OC44OCAwIDE0NFM5MS43MTItNjQgMjA0LjgtNjRzMjA0LjggOTMuMTIgMjA0LjggMjA4UzMxNy44ODggMzUyIDIwNC44IDM1MnogbTYxNC40IDBjLTExMy4wODggMC0yMDQuOC05My4xMi0yMDQuOC0yMDhTNzA2LjExMi02NCA4MTkuMi02NHMyMDQuOCA5My4xMiAyMDQuOCAyMDgtOTEuNzEyIDIwOC0yMDQuOCAyMDh6TTIwNC44IDI4Mi42ODhjNzUuMzkyIDAgMTM2LjUxMi02Mi4wOCAxMzYuNTEyLTEzOC42ODhzLTYxLjEyLTEzOC42ODgtMTM2LjUxMi0xMzguNjg4LTEzNi41MTIgNjIuMDgtMTM2LjUxMiAxMzguNjg4IDYxLjEyIDEzOC42ODggMTM2LjUxMiAxMzguNjg4eiBtNjE0LjQgMGM3NS4zOTIgMCAxMzYuNTEyLTYyLjA4IDEzNi41MTItMTM4LjY4OHMtNjEuMTItMTM4LjY4OC0xMzYuNTEyLTEzOC42ODgtMTM2LjUxMiA2Mi4wOC0xMzYuNTEyIDEzOC42ODggNjEuMTIgMTM4LjY4OCAxMzYuNTEyIDEzOC42ODh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzciIHVuaWNvZGU9IiYjNTkwMTI7IiBkPSJNNTEyIDc2OEM0MDkuNiA3NjggMzMyLjggNjg3Ljc0NCAzMzIuOCA1ODguOGExNzguNzUyIDE3OC43NTIgMCAwIDEgMTI4LTE3MC44OHYtMzA5LjI0OGMtNDcuNjE2IDguNDQ4LTk2IDI4LjE2LTEzNS42MTYgNjUuMDI0LTUzLjg4OCA1MC4xNzYtOTQuNzIgMTMwLjA0OC05NC43MiAyNjEuNjMyYTUxLjIgNTEuMiAwIDEgMS0xMDIuNDY0IDBjMC0xNTMuNzkyIDUxLjg0LTI2Ni4wNDggMTI3LjQ4OC0zMzYuNTEyUzQyNi44OCAwIDUxMiAwYzg1LjI0OCAwIDE4MC45OTIgMjguNjcyIDI1Ni42NCA5OS4zMjhzMTI3LjIzMiAxODIuOTc2IDEyNy4yMzIgMzM2YzMuMzI4IDcxLjQyNC0xMDUuNiA3MS40MjQtMTAyLjI3MiAwIDAtMTMwLjc1Mi00MC45Ni0yMTAuNjg4LTk0LjkxMi0yNjEuMTItMzkuNjE2LTM2Ljk5Mi04Ny45MzYtNTYuODk2LTEzNS40ODgtNjUuNDA4VjQxNy43MjhhMTc4Ljg4IDE3OC44OCAwIDAgMSAxMjggMTcxLjA3MkM2OTEuMiA2ODcuNzQ0IDYxNC40IDc2OCA1MTIgNzY4eiBtMC0xMDIuNEE3Ni44IDc2LjggMCAxIDAgNTEyIDUxMmE3Ni44IDc2LjggMCAwIDAgMCAxNTMuNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zOCIgdW5pY29kZT0iJiM1OTAxMzsiIGQ9Ik0zODMuODA4IDE3My4xODRjMzkuODcyLTAuNTc2IDc4LjMzNi0xNC43MiAxMDkuMzEyLTQwLjMybDE1LjM2LTEzLjg4OGgyLjk0NGwxOC4zMDQgMTYuODMyYTE2OC4xMjggMTY4LjEyOCAwIDAgMCAyMDMuMiAxMC44OGwxMzMuNTA0IDI2Ny40NTYtODguNTc2IDYwLjE2VjY4OC4yNTZhOTEuODQgOTEuODQgMCAwIDEtODguNjQgODcuMzZoLTI5LjUwNGE1Ni4yNTYgNTYuMjU2IDAgMCAxLTU5LjA3MiA2MC4xNmgtMTc3LjI4YTU1LjkzNiA1NS45MzYgMCAwIDEtNTkuMDcyLTYwLjE2aC0yOS41MDRhOTEuODQgOTEuODQgMCAwIDEtODguNjQtODcuMzZ2LTIxMy44MjRsLTg4LjU3Ni02MC4yMjQgMTMyLjg2NC0yNzIuODk2YTE3MC44OCAxNzAuODggMCAwIDAgOTMuMzc2IDMxLjkzNnpNMzA1LjIxNiA2ODguMTkyYTI3Ljk2OCAyNy45NjggMCAwIDAgMjguODY0IDI3LjEzNmgzNTUuMmEyNy45NjggMjcuOTY4IDAgMCAwIDI5LjQ0LTMwLjE0NHYtMTgwLjczNkw1MTIgNjI0Ljk2IDMwNS4yOCA1MDcuNDU2ek04OTYgNTIuNjcydi02MC4xNmE1OC42ODggNTguNjg4IDAgMCAxLTQwLjE5Mi0yMC40OGMtMTYtMTcuNDA4LTM2LjQ4LTI5Ljg4OC01OS4wNzItMzYuMTYtMzYuMjg4LTEwLjk0NC03NS41Mi0yLjU2LTEwNC41NzYgMjIuMjcybC0yMy4wNCAyMS4xMmE0NS40NCA0NS40NCAwIDAgMS02NC45NiAwYy04LjMyLTcuMjk2LTE2LTE1LjEwNC0yNC44MzItMjIuMzM2YTExMS43NDQgMTExLjc0NCAwIDAgMC0xNDYuNDk2IDQuMjI0bC0yMy4wNCAyMS4xMmE0NC4yMjQgNDQuMjI0IDAgMCAxLTU5LjA3MiAwYy0xMS4yLTkuMDg4LTIxLjI0OC0xOS4zMjgtMzIuNTEyLTI4LjM1Mi00MS42LTMxLjM2LTk4LjgxNi0yOS45NTItMTM4LjgxNiAzLjU4NGwtMTguMzA0IDE2LjMyQTU1LjIzMiA1NS4yMzIgMCAwIDEgMTI4LTcuNTUydjYwLjI4OGMxNS4yOTYgMS45MiAzMC43Mi0xLjAyNCA0NC4yODgtOC40NDggMTYuNDQ4LTEwLjM2OCAzMi4wNjQtMjIuMDggNDYuNzItMzQuOTQ0IDEyLjA5Ni0xMy40NCAzMC40LTE5LjIgNDcuODA4LTE1LjA0YTU0LjU5MiA1NC41OTIgMCAwIDEgMTguMzA0IDkuNmM5LjQ3MiA3LjIzMiAxNy4xNTIgMTUuNjggMjYuNjI0IDIzLjQ4OGExMTEuNzQ0IDExMS43NDQgMCAwIDAgMTQ0LjcwNCAwYzkuNDcyLTcuODA4IDE4LjMwNC0xNi44MzIgMjcuNzc2LTI0LjcwNGE0NC4yMjQgNDQuMjI0IDAgMCAxIDU5LjA3MiAwYzkuNDcyIDcuODcyIDE4LjMwNCAxNi44OTYgMjcuNzc2IDI0LjcwNGExMTEuNzQ0IDExMS43NDQgMCAwIDAgMTQ1LjI4IDBjOC45Ni03LjgwOCAxNy4yMTYtMTYuMjU2IDI2LjA0OC0yMy40ODhhNDQuMjI0IDQ0LjIyNCAwIDAgMSA1OS4wNzIgMGwyNy43NzYgMjQuNzA0QTEwNC41MTIgMTA0LjUxMiAwIDAgMCA4OTYgNTIuNzM2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTM5IiB1bmljb2RlPSImIzU5MDE0OyIgZD0iTTcxNS42MzUyNzMgNzM4LjQ0MTg0N2M0NC45ODkxODggMCA4MS40NjY5MDggMzUuMjYxNzk2IDgxLjQ2NjkwOCA3OC43NzkwNzdTNzYwLjYyNDQ2MSA4OTYgNzE1LjYzNTI3MyA4OTYgNjM0LjE2ODM2NCA4NjAuNzM4MjA0IDYzNC4xNjgzNjQgODE3LjI4NDkyYzAtNDMuNTE3MjggMzYuNDc3NzItNzguODQzMDcyIDgxLjQ2NjkwOS03OC44NDMwNzN6IG0tNjEwLjkwNTgxOS01NTEuMzI1NTQyaDIwMy42MzUyNzNsODEuNDY2OTA5IDIzNi4yNzMyMzNMNDcxLjI5ODU0NCA1NjEuMzAwOTE5IDM4OS43Njc2NCA1ODAuOTQ3NjkxbC0xODcuMzE2MjkzLTc4LjcxNTA4MWE0NC4zNDkyMjggNDQuMzQ5MjI4IDAgMCAwLTU3LjAyMDQzNiAyMy41NTA1MjkgNDEuOTgxMzc2IDQxLjk4MTM3NiAwIDAgMCAyNC40NDY0NzIgNTUuMTY0NTUybDIxOS44OTAyNTcgNzguNzE1MDhoMTYyLjg2OTgybDE2Mi45MzM4MTctNzguNzE1MDggODEuNDY2OTA4LTc4LjcxNTA4MWgxMjIuMTY4MzY1YzIyLjQ2MjU5NiAwIDQwLjcwMTQ1Ni0xNy42NjI4OTYgNDAuNzAxNDU2LTM5LjQyMTUzNiAwLTIxLjc1ODY0LTE4LjIzODg2LTM5LjQyMTUzNi00MC43MDE0NTYtMzkuNDIxNTM2aC0yMDMuNjM1MjczTDYzNC4xNjgzNjQgNTAyLjE2ODYxNCA1NTIuNzAxNDU2IDM0NC42NzQ0NThsMTYyLjkzMzgxNy0xNTcuNTU4MTUzdi0yNzUuNjk0NzY5YzAtMjEuNzU4NjQtMTguMjM4ODYtMzkuMzU3NTQtNDAuNzY1NDUyLTM5LjM1NzU0cy00MC43MDE0NTYgMTcuNjYyODk2LTQwLjcwMTQ1NyAzOS4zNTc1NHYyNDQuOTc2Njg5bC0xNjIuODY5ODIgMTA5LjQzMzE2MS04MS40NjY5MDgtMTU3LjQzMDE2MUgxMDQuNzI5NDU0Yy0yMi40NjI1OTYgMC00MC43MDE0NTYgMTcuNTk4OS00MC43MDE0NTYgMzkuMzU3NTRzMTguMjM4ODYgMzkuMzU3NTQgNDAuNzAxNDU2IDM5LjM1NzU0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQwIiB1bmljb2RlPSImIzU5MDE1OyIgZD0iTTEyOCA2NDBjLTM1LjQ1NiAwLTY0LTI4LjU0NC02NC02NHYtNDQ4YzAtMzUuNDU2IDI4LjU0NC02NCA2NC02NGg4MzJjMzUuNDU2IDAgNjQgMjguNTQ0IDY0IDY0VjU3NmMwIDM1LjQ1Ni0yOC41NDQgNjQtNjQgNjR6IG0wLTY0aDk2YTMyIDMyIDAgMSAwLTMyLTMybC0zMi0zMmEzMiAzMiAwIDEgMC0zMi0zMnogbTQxNiAwQzYzMi4zMiA1NzYgNzA0IDQ3NS43MTIgNzA0IDM1MlM2MzIuMzIgMTI4IDU0NCAxMjggMzg0IDIyOC4yODggMzg0IDM1MiA0NTUuNjggNTc2IDU0NCA1NzZ6IG0zMjAgMEg5NjB2LTk2YTMyIDMyIDAgMSAwLTMyIDMybC0zMiAzMmEzMiAzMiAwIDEgMC0zMiAzMnogbS0zMjAtOTZjLTIwLjY3MiAwLTM0LjE3Ni02Ljk3Ni00My42NDgtMTZoODcuMjk2Yy05LjQ3MiA5LjAyNC0yMi45NzYgMTYtNDMuNjQ4IDE2eiBtLTU2LTMyYy0yLjg4LTUuODI0LTMuOTY4LTEwLjk0NC01LjEyLTE2aDEyMi4yNGMtMS4xNTIgNS4wNTYtMi4yNCAxMC4xNzYtNS4xMiAxNnogbS04LTMydi0xNmgxMjhWNDE2eiBtMC0zMnYtMTZoMTI4VjM4NHogbTAtMzJ2LTE2aDEyOFYzNTJ6IG0wLTMybC0xNi0xNmgxMjhMNjA4IDMyMHogbS0zMi0zMnMyLjI0LTYuNTI4IDYuNTI4LTE2aDE0NS40NzJMNTc2IDI4OHogbS0yODgtMzJhMzIgMzIgMCAwIDAgMC02NGwzMi0zMmEzMiAzMiAwIDEgMCAzMi0zMkgxMjh2OTZhMzIgMzIgMCAwIDAgMzIgMzJ6IG0zMDMuMjMyIDBjMi45NDQtNS41MDQgNC44NjQtMTAuMTc2IDguNzY4LTE2aDE0NS4xNTJjNC4yMjQgOC44MzIgNi44NDggMTYgNi44NDggMTZ6IG00NjQuNzY4IDBhMzIgMzIgMCAwIDAgMzItMzJWMTI4aC05NmEzMiAzMiAwIDEgMCAzMiAzMmwzMiAzMmEzMiAzMiAwIDAgMCAwIDY0eiBtLTQ0My43NzYtMzJjNS4wNTYtNS44MjQgMTAuNTYtMTEuMjY0IDE2LjY0LTE2aDkwLjg4YzYuNCA0LjkyOCAxMi4wMzIgMTAuMzY4IDE2LjI1NiAxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00MSIgdW5pY29kZT0iJiM1OTAxNjsiIGQ9Ik01MTIgNzY4Yy0xMTcuMDU2IDAtNDA5LjYtMTQuNzItMzgwLjM1Mi00NC4yODhsMzUxLjEwNC0zNjkuMjh2LTIzNi4yODhjMC01OS4wNzItMTc1LjU1Mi0yOS41MDQtMTc1LjU1Mi0xMTguMTQ0aDQwOS42YzAgODguNjQtMTc1LjU1MiA1OS4wNzItMTc1LjU1MiAxMTguMTQ0VjM1NC40MzJsMzUxLjEwNCAzNjkuMjhDOTIxLjYgNzUzLjIxNiA2MjkuMDU2IDc2OCA1MTIgNzY4eiBtMC01OS4wNzJjMTQ2LjMwNCAwIDI3Ny45NTItMTQuNzIgMjc3Ljk1Mi0xNC43MmwtNDMuOTA0LTQ0LjM1MkgyNzcuOTUybC00My45MDQgNDQuMjg4czEzMS42NDggMTQuNzIgMjc3Ljk1MiAxNC43MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00MiIgdW5pY29kZT0iJiM1OTAxNzsiIGQ9Ik04ODUuMzEyIDU2My4yaC0xMzguNjI0VjcwNEgxOTJ2LTI4MS42YzAuODk2LTE1NS41MiAxMjUuODI0LTI4MC44MzIgMjc5LjA0LTI3OS44NzJBMjc2LjYwOCAyNzYuNjA4IDAgMCAxIDcwOC40OCAyODEuNmgxNzYuODMyQzk2MS45MiAyODEuNiAxMDI0IDM0NC42NCAxMDI0IDQyMi40cy02Mi4wOCAxNDAuOC0xMzguNjg4IDE0MC44eiBtMC0yMTEuMmgtMTQ4LjM1MmM2LjE0NCAyMi45NzYgOS40MDggNDYuNTkyIDkuNzI4IDcwLjRWNDkyLjhoMTM4LjYyNGMzOC4zMzYgMCA2OS4zNzYtMzEuNDg4IDY5LjM3Ni03MC40cy0zMS4wNC03MC40LTY5LjM3Ni03MC40eiBtLTEzOC42MjQtMzE2LjhjMC0xOS40NTYtMTUuNTUyLTM1LjItMzQuNjg4LTM1LjJIMjI2LjY4OGMtMTkuMiAwLTM0LjY4OCAxNS43NDQtMzQuNjg4IDM1LjJzMTUuNTUyIDM1LjIgMzQuNjg4IDM1LjJoNDg1LjMxMmMxOS4yIDAgMzQuNjg4LTE1Ljc0NCAzNC42ODgtMzUuMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00MyIgdW5pY29kZT0iJiM1OTAxODsiIGQ9Ik05NzIuNTQ0IDQwOS4yOGgtMTUwLjAxNnYtMjUzLjYzMmg4My4zMjh2LTY3LjY0OGg1MC4wNDh2LTY3LjY0OEg4OS4yOHY2Ny42NDhoNDkuOTg0djY3LjY0OGg5OS45NjhWNDA5LjI4SDc2LjhsMjI5LjEyIDE1Mi4xOTJIMTQzLjQ4OEw1MDUuOTIgNzk4LjA4VjgzMmgzMy4yOHYtMzMuODU2bDM4My4zNi0yMzYuNjcyaC0xNjguMTkyeiBtLTY4My4yNjQgMHYtMjAyLjg4aDgzLjMyOHYyMDIuODh6IG0yMTYuNjQgMEg0MjIuNTkydi0yMDIuODhoODMuMzI4eiBtMTMzLjMxMiAwSDU1NS45MDR2LTIwMi44OGg4My4zMjh6IG00OS45ODQtMjAyLjg4aDgzLjMyOHYyMDIuODhINjg5LjI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ0IiB1bmljb2RlPSImIzU5MDE5OyIgZD0iTTk2IDczNmMtMTkuMiAwLTMyLTEyLjgtMzItMzJ2LTYwOGMwLTE5LjIgMTIuOC0zMiAzMi0zMnMzMiAxMi44IDMyIDMyVjE5Mmg4MzJ2LTk2YzAtMTkuMiAxMi44LTMyIDMyLTMyczMyIDEyLjggMzIgMzJ2MTI4YzAgMTkuMi0xMi44IDMyLTMyIDMySDEyOFY3MDRjMCAxOS4yLTEyLjggMzItMzIgMzJ6IG0xOTItMzJDMjM2LjggNzA0IDE5MiA2NTkuMiAxOTIgNjA4UzIzNi44IDUxMiAyODggNTEyIDM4NCA1NTYuOCAzODQgNjA4IDMzOS4yIDcwNCAyODggNzA0ek01MTIgNjQwQzQxNiA2NDAgNDE2IDU0NCA0MTYgNTQ0VjQ0OGgtMTkyYy0xOS4yIDAtMzItMTIuOC0zMi0zMnYtNjRjMC0xOS4yIDEyLjgtMzIgMzItMzJIMTAyNFY0ODBDMTAyNCA2NDAgODY0IDY0MCA4NjQgNjQweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ1IiB1bmljb2RlPSImIzU5MDIwOyIgZD0iTTg5NC4yNzIgMzQuODhjLTQwLjk2LTIwLjkyOC05NS41NTItNi45NzYtMTIyLjg4IDM0Ljk0NGwtNzUuMDcyIDk3LjcyOEgzMjcuNjhsLTc1LjA3Mi05Ny43MjhjLTM0LjE3Ni00OC44OTYtOTUuNjE2LTU1Ljg3Mi0xNDMuMzYtMjAuOTI4LTM0LjE3NiAyNy45MDQtNDcuODA4IDY5Ljc2LTQwLjk2IDEwNC43MDRsNDcuNzQ0IDI1OC4zMDRDMTI5LjcyOCA0OTUuNzQ0IDIwNC44IDU1OC41MjggMjg2LjcyIDU1OC41MjhoMTkxLjE2OFY2NjMuMjk2QzQ3Ny44ODggNzE5LjEwNCA1MTguODQ4IDc2OCA1NzMuNDQgNzY4aDIxMS42NDhjMjAuNDggMCAzNC4xMTItMTMuOTUyIDM0LjExMi0zNC44OCAwLTIwLjk5Mi0xMy42MzItMzQuOTQ0LTM0LjExMi0zNC45NDRoLTIwNC44Yy0yMC40OCAwLTM0LjE3Ni0xMy45NTItMzQuMTc2LTI3LjkwNHYtMTExLjc0NGgxOTEuMTY4YzgxLjkyIDAgMTU2Ljk5Mi02Mi44NDggMTcwLjY4OC0xNDYuNTZsNDcuNzQ0LTI1OC4zNjhjNi44NDgtNDguODk2LTEzLjYzMi05Ny43MjgtNjEuNDQtMTE4Ljcyek00MDkuNiAzODRjMCA1NS44NzItNDcuODA4IDEwNC43MDQtMTAyLjQgMTA0LjcwNFMyMDQuOCA0MzkuODcyIDIwNC44IDM4NHM0Ny44MDgtMTA0LjcwNCAxMDIuNC0xMDQuNzA0UzQwOS42IDMyOC4xMjggNDA5LjYgMzg0eiBtNDA5LjYgMGMwIDIwLjkyOC0xMy42MzIgMzQuODgtMzQuMTEyIDM0Ljg4aC0zNC4xNzZ2MzQuOTQ0YzAgMjAuOTI4LTEzLjYzMiAzNC44OC0zNC4xMTIgMzQuODhzLTM0LjExMi0xMy45NTItMzQuMTEyLTM0Ljg4di0zNC45NDRoLTM0LjE3NmMtMjAuNDggMC0zNC4xMTItMTMuOTUyLTM0LjExMi0zNC44OHMxMy42MzItMzQuODggMzQuMTEyLTM0Ljg4aDM0LjE3NnYtMzQuOTQ0YzAtMjAuOTI4IDEzLjYzMi0zNC44OCAzNC4xMTItMzQuODhzMzQuMTEyIDEzLjk1MiAzNC4xMTIgMzQuODh2MzQuOTQ0aDM0LjE3NmMyMC40OCAwIDM0LjExMiAxMy45NTIgMzQuMTEyIDM0Ljg4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ2IiB1bmljb2RlPSImIzU5MDIxOyIgZD0iTTM0MS4xMiA3NjhINjR2LTY4NS4zMTJoMjU5LjA3MmM0Ni45MTIgMCAxNDguMDMyLTI3LjA3MiAxNDguMDMyLTgyLjY4OFY2NDMuOTY4QzQ3MS4xMDQgNjkwLjExMiA0MDAuMTkyIDc2OCAzNDEuMTIgNzY4eiBtMzQxLjUwNCAwYy01OS4xMzYgMC0xMzAuMDQ4LTc3Ljg4OC0xMzAuMDQ4LTEyNC4wMzJWMGMwIDU1LjYxNiAxMDEuMTIgODIuNjg4IDE0Ny45NjggODIuNjg4aDI1OS4xMzZWNzY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ3IiB1bmljb2RlPSImIzU5MDIyOyIgZD0iTTEwMjQgMzc0LjR2LTE2Ni40YzAtMjIuOTc2LTE3LjkyLTQxLjYtNDAtNDEuNnMtNDAgMTguNjI0LTQwIDQxLjZjMCAwIDQuOCA0MS42LTgwIDQxLjZoLTgwdi0yMDhjMC0yMi45NzYtMTcuOTItNDEuNi00MC00MS42aC02NDBBNDAuODMyIDQwLjgzMiAwIDAgMCA2NCA0MS42djMzMi44YzAgMjIuOTc2IDE3LjkyIDQxLjYgNDAgNDEuNmg2NDBjMjIuMDggMCA0MC0xOC42MjQgNDAtNDEuNnYtNDEuNmg4MGM4NC44IDAgODAgNDEuNiA4MCA0MS42IDAgMjIuOTc2IDE3LjkyIDQxLjYgNDAgNDEuNnM0MC0xOC42MjQgNDAtNDEuNnpNMjI0IDc0OC44QzEzNS42OCA3NDguOCA2NCA2NzQuMzA0IDY0IDU4Mi40czcxLjY4LTE2Ni40IDE2MC0xNjYuNFMzODQgNDkwLjQ5NiAzODQgNTgyLjQgMzEyLjMyIDc0OC44IDIyNCA3NDguOHogbTAtMjQ5LjZjLTQ0LjE2IDAtODAgMzcuMjQ4LTgwIDgzLjJzMzUuODQgODMuMiA4MCA4My4yIDgwLTM3LjI0OCA4MC04My4yLTM1Ljg0LTgzLjItODAtODMuMnpNNTg0IDgzMkM0NzMuNTM2IDgzMiAzODQgNzM4Ljg4IDM4NCA2MjRTNDczLjYgNDE2IDU4NCA0MTZzMjAwIDkzLjEyIDIwMCAyMDhTNjk0LjQgODMyIDU4NCA4MzJ6IG0wLTMzMi44Yy02Ni4zMDQgMC0xMjAgNTUuODcyLTEyMCAxMjQuOFM1MTcuNzYgNzQ4LjggNTg0IDc0OC44IDcwNCA2OTIuOTI4IDcwNCA2MjQgNjUwLjI0IDQ5OS4yIDU4NCA0OTkuMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00OCIgdW5pY29kZT0iJiM1OTAyMzsiIGQ9Ik04OTEuOTA0IDc2MGEyMjUuOTg0IDIyNS45ODQgMCAwIDEtMzg2LjQ5Ni0xNDguNjA4bDIzNy42OTYtMjM3LjY5NmEyMjUuOTg0IDIyNS45ODQgMCAwIDEgMTQ4LjggMzg2LjMwNHpNMzMwLjExMiAzNTguOTEyTDE2OS42IDE5OC40YTc1LjY0OCA3NS42NDggMCAwIDEgMC0xMDYuOTQ0bDUzLjUwNC01My41MDRjMjkuNTA0LTI5LjUwNCA3Ny40NC0yOS41MDQgMTA2Ljg4IDBMNDkwLjQ5NiAxOTguNGwxNjAuNTEyIDE2MC41MTItMTYwLjQ0OCAxNjAuMzg0eiBtNTYuMDY0LTE1Ny44ODhsLTUzLjUwNCA1My41MDQgMTU3LjgyNCAxNTcuODI0IDUzLjUwNC01My40NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00OSIgdW5pY29kZT0iJiM1OTAyNDsiIGQ9Ik05NTEuMDQgNDAwLjQ0OEwxNTIuMDY0IDgzMC4yMDhjLTExLjUyIDUuNzYtMjUuNi0zLjMyOC0yMy45MzYtMTUuODA4bDYxLjk1Mi03NDIuMzM2YzAuODMyLTExLjY0OCAxMi40MTYtMTguMzA0IDIzLjE2OC0xNC4wOGwyNTcuNzI4IDEwOC44IDE0MS4zMTItMTYxLjIxNmM5LjA4OC05Ljk4NCAyNC43NjgtNS43NiAyOC4wOTYgNi42NTZsNjcuNzEyIDI1NS4yMzIgMjQyLjk0NCAxMDMuMDRhMTYuOTYgMTYuOTYgMCAwIDEgMCAyOS45NTJ6IG0tMzM4Ljc1Mi0zMTcuNTY4bC03NC4zNjggMTMyLjk5Mi0zODAuMDMyIDU5MC4yMDggNTAzLjkzNi01MjMuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUwIiB1bmljb2RlPSImIzU5MDI1OyIgZD0iTTk2MCAyMTZ2ODBsLTM2Ni41OTIgMjQwVjgxNlM1OTMuNDA4IDg5NiA1MTIgODk2QzQzMC41MjggODk2IDQzMC41MjggODE2IDQzMC41MjggODE2di0yODBMNjQgMjk2di04MGwzNjYuNTI4IDEyMC4wNjR2LTIyNC4wNjRsLTEyMi4xNzYtOTZWLTY0TDUxMiAxNiA3MTUuNjQ4LTY0djgwbC0xMjIuMjQgOTZ2MjI0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUxIiB1bmljb2RlPSImIzU5MDI2OyIgZD0iTTk4MC43MzYgNTI0LjA5NnYtMTcxLjcxMmwzNS42NDgtMzYuMDk2LTc0LjM2OC03OC40NjQtNzUuMjY0IDc2LjE2IDUxLjU4NCA0Ny40ODhWNDk2Ljk2QzY5OS41MiA0MDUuNTY4IDYyOS41MDQgMzc3LjE1MiA1ODAuOTkyIDM1NS4wMDhzLTgzLjQ1Ni0yMi4wOC0xMzEuNTg0LTMuNzEyQzQwMS4zNDQgMzY5LjY2NCAxNzIuMjg4IDQ1NC40IDU4LjU2IDUwOS41NjhjLTc1Ljg0IDM2LjgtODAuNzY4IDYwLjE2IDEuMjggOTEuMzI4IDEwNy4xMzYgNDEuMjggMjg0LjE2IDEwNy4yNjQgMzc4LjA0OCAxNDMuMzYgNTUuNTUyIDIyLjc4NCA4NC45MjggMzUuMiAxMzUuODcyIDkuMjE2IDkxLjA3Mi0zOC4wOCAyOTkuMTM2LTExNy4xODQgNDAyLjU2LTE2MC41MTIgOTAuMDQ4LTM5LjgwOCAyOS41MDQtNTIuOTI4IDQuNDE2LTY4Ljg2NHpNNTkxLjU1MiAyODcuMDRjNTIuODY0IDIyLjE0NCAxMjQuMTYgNTguNjg4IDIwMS45MiA5Mi40OHYtMjcxLjEwNFM2OTIuOTI4IDAgNTE2LjE2IDBjLTE5MC40IDAtMjkzLjI0OCAxMDguNDE2LTI5My4yNDggMTA4LjQxNlYzNjEuNDcyYzU5Ljk2OC0yNC44MzIgMTI3LjM2LTQ2LjA4IDIwOC45Ni03NC40MzIgNTAuMjQtMTguMTEyIDExNC4wNDgtMjQuMzg0IDE1OS42OCAweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUyIiB1bmljb2RlPSImIzU5MDI3OyIgZD0iTTc3Ny4zNDQgNjUwLjQ5Nkg4NzYuOGM0NC44NjQtMC4wNjQgODEuMjgtMzUuMDA4IDgxLjUzNi03OC4yMDhMOTYwIDE0Mi4wMTZjMC4xMjgtMjAuNzM2LTguMzg0LTQwLjY0LTIzLjY4LTU1LjI5NnMtMzUuODQtMjIuODQ4LTU3LjQwOC0yMi43MmwtNzMxLjY0OCAxLjY2NGMtNDQuOTkyIDAuMTI4LTgxLjQwOCAzNS4yLTgxLjY2NCA3OC40TDY0IDU3Mi4yMjRjLTAuMTI4IDIwLjczNiA4LjM4NCA0MC42NCAyMy42MTYgNTUuMzZzMzUuODQgMjIuOTEyIDU3LjM0NCAyMi45MTJoMTI0LjI4OGEzNi41NDQgMzYuNTQ0IDAgMCAxIDI5LjYzMiAxNy42bDMzLjI4IDYzLjYxNmM5LjkyIDE5LjIgMzYuMjg4IDM0Ljk0NCA1OC42ODggMzUuMDcyTDY1NC43MiA3NjhjMjIuNTI4IDAuMTI4IDQ4Ljc2OC0xNS40ODggNTguODgtMzQuODE2bDM0LjI0LTY1LjM0NGM1LjA1Ni05LjYgMTguMjQtMTcuMzQ0IDI5LjQ0LTE3LjM0NHogbS0yNjYuNDMyLTM4Ljg0OGMtMTM0Ljc4NCAwLTI0My45MDQtMTA1LjA4OC0yNDMuOTA0LTIzNC43NTIgMC0xMjkuNzI4IDEwOS4xMi0yMzQuODggMjQzLjg0LTIzNC44OCAxMzQuNzg0IDAgMjQzLjk2OCAxMDUuMTUyIDI0My45NjggMjM0Ljg4IDAgMTI5LjY2NC0xMDkuMTg0IDIzNC43NTItMjQzLjkwNCAyMzQuNzUyeiBtLTUuMTItMzgxLjUwNGM4MS40MDggMCAxNDcuMzkyIDYzLjQ4OCAxNDcuMzkyIDE0MS44MjRhMTkuOTY4IDE5Ljk2OCAwIDAgMS0yMC4zNTIgMTkuNTg0IDE5Ljk2OCAxOS45NjggMCAwIDEtMjAuMjg4LTE5LjU4NGMwLTU2LjcwNC00Ny44MDgtMTAyLjcyLTEwNi43NTItMTAyLjcyYTE5Ljk2OCAxOS45NjggMCAwIDEtMjAuMjg4LTE5LjU4NGMwLTEwLjgxNiA5LjA4OC0xOS41MiAyMC4yODgtMTkuNTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTMiIHVuaWNvZGU9IiYjNTkwMjg7IiBkPSJNNTEyIDc2OGEzODQgMzg0IDAgMSAxIDAtNzY4QTM4NCAzODQgMCAwIDEgNTEyIDc2OHogbTAtNjgyLjY4OGEyOTguNjg4IDI5OC42ODggMCAxIDAgMCA1OTcuMzc2IDI5OC42ODggMjk4LjY4OCAwIDAgMCAwLTU5Ny4zNzZ6IG0wIDQ2OS4zMTJhMTcwLjY4OCAxNzAuNjg4IDAgMSAwIDAtMzQxLjMxMiAxNzAuNjg4IDE3MC42ODggMCAwIDAgMCAzNDEuMzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU0IiB1bmljb2RlPSImIzU5MDI5OyIgZD0iTTUxNy40NCA2OTkuMDcyYy04NC4wOTYgMC0xNDkuNTY4LTk1LjEwNC0xNzUuMTA0LTEyNS40NGEzMy43OTIgMzMuNzkyIDAgMCAxLTcuNTUyLTIyLjA4di0zMDMuMjMyYTMwLjMzNiAzMC4zMzYgMCAwIDEgNDkuNi0yNC44MzIgMjA2LjcyIDIwNi43MiAwIDAgMCAxMzMuMDU2IDgwLjY0Yzk3LjE1MiAwIDEzNC40LTg3LjQ4OCAyMzUuNzEyLTg3LjQ4OGEzNjMuOTY4IDM2My45NjggMCAwIDEgMTg4LjE2IDc1LjA3MmM4Ljc2OCA2LjQ2NCAxMy44ODggMTYuNzA0IDEzLjc2IDI3LjU4NFY2NjguMTZhMzAuMzM2IDMwLjMzNiAwIDAgMS00Mi43NTIgMzAuOTc2IDM5Ni4zNTIgMzk2LjM1MiAwIDAgMC0xNTkuMTY4LTczLjAyNGMtMTAxLjMxMi0xLjQwOC0xMzQuNCA3My4wMjQtMjM1LjcxMiA3My4wMjR6IG0tMjg2LjA4LTY4LjkyOGE2OC45MjggNjguOTI4IDAgMSAwIDAgMTM3Ljg1NiA2OC45MjggNjguOTI4IDAgMCAwIDAtMTM3Ljg1NnogbTM0LjQ5Ni02OC45MjhWLTkyLjE2YTM0LjQ5NiAzNC40OTYgMCAwIDAtNjguOTI4IDBWNTYxLjI4YTM0LjQ5NiAzNC40OTYgMCAwIDAgNjguOTI4IDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTUiIHVuaWNvZGU9IiYjNTkwMzA7IiBkPSJNNDc0LjI0MTA2MiA3NjguNjc4NzgxaC0xMzQuMzk2MjJhMzEuNzQzMTA3IDMxLjc0MzEwNyAwIDAgMC0yMS40MzkzOTcgNi40NjM4MTggMzQuMjM5MDM3IDM0LjIzOTAzNyAwIDAgMC0xMC40MzE3MDcgMTYuNDQ3NTM4Yy0xLjk4Mzk0NCA2LjU5MTgxNS0zLjAwNzkxNSAxNC4wNzk2MDQtMy4wMDc5MTUgMjIuMzk5MzdzMC42Mzk5ODIgMTYuMDYzNTQ4IDIuMDQ3OTQyIDIzLjM1OTM0M2MwLjYzOTk4MiA3LjI5NTc5NSAxLjkxOTk0NiAxNS4yOTU1NyAzLjk2Nzg4OSAyMy44NzEzMjhBNzMuNTk3OTMgNzMuNTk3OTMgMCAwIDAgMzE5LjM2NTQxOCA4ODMuMTcxNTYxYTI2LjU1OTI1MyAyNi41NTkyNTMgMCAwIDAgMTQuMzk5NTk1IDExLjk2NzY2M2M2LjAxNTgzMSAxLjk4Mzk0NCAxMy4zMTE2MjYgMC4zMTk5OTEgMjEuOTUxMzgyLTQuOTkxODU5IDkuOTE5NzIxLTUuOTUxODMzIDIxLjE4MzQwNC0xMi40MTU2NTEgMzMuNzkxMDUtMTkuMzkxNDU1IDEyLjYwNzY0NS02Ljk3NTgwNCAyNC44OTUzLTEzLjk1MTYwOCAzNi44NjI5NjMtMjAuOTI3NDExIDExLjkwMzY2NS02LjkxMTgwNiAyMy4wMzkzNTItMTMuMjQ3NjI3IDMzLjI3OTA2NC0xOC44Nzk0NjkgMTAuMzAzNzEtNS42MzE4NDIgMTguMTExNDkxLTEwLjExMTcxNiAyMy40MjMzNDItMTMuNDM5NjIyIDYuNjU1ODEzLTQuNjcxODY5IDExLjU4MzY3NC05Ljc5MTcyNSAxNC45MTE1OC0xNS40MjM1NjdzNC42NzE4NjktMTAuOTQzNjkyIDMuOTY3ODg5LTE1LjkzNTU1MS0zLjI2MzkwOC05LjA4Nzc0NC03LjkzNTc3Ny0xMi40MTU2NTFhMzMuOTE5MDQ2IDMzLjkxOTA0NiAwIDAgMC0xOS44Mzk0NDItNC45OTE4NnogbTc3LjU2NTgxOCAxLjAyMzk3MWgxMzMuMzcyMjQ5YTMxLjc0MzEwNyAzMS43NDMxMDcgMCAwIDEgMjEuMzc1Mzk5IDYuMzk5ODIgMzQuMjM5MDM3IDM0LjIzOTAzNyAwIDAgMSAxMC40MzE3MDcgMTYuNDQ3NTM4YzIuMDQ3OTQyIDYuNjU1ODEzIDMuMDA3OTE1IDE0LjA3OTYwNCAzLjAwNzkxNSAyMi4zOTkzN3MtMC4zMTk5OTEgMTYuMTI3NTQ2LTAuOTU5OTczIDIzLjQyMzM0MWExMzYxLjg4MTY5NyAxMzYxLjg4MTY5NyAwIDAgMS00LjQ3OTg3NCAyMy4zNTkzNDNBNjUuMjc4MTY0IDY1LjI3ODE2NCAwIDAgMSA3MDYuNTU0NTI4IDg4My4xNzE1NjFhMjYuNTU5MjUzIDI2LjU1OTI1MyAwIDAgMS0xNC4zOTk1OTUgMTEuOTY3NjYzYy02LjAxNTgzMSAxLjk4Mzk0NC0xMy4zMTE2MjYgMC42Mzk5ODItMjEuODg3Mzg0LTMuOTY3ODg4LTkuOTgzNzE5LTYuMDE1ODMxLTIxLjI0NzQwMi0xMi40Nzk2NDktMzMuOTE5MDQ2LTE5LjM5MTQ1NXMtMjQuOTU5Mjk4LTEzLjk1MTYwOC0zNy4yNDY5NTMtMjAuOTI3NDExYy0xMi4yODc2NTQtNi45NzU4MDQtMjMuNTUxMzM4LTEzLjI0NzYyNy0zMy44NTUwNDgtMTguODc5NDY5LTEwLjIzOTcxMi01LjY5NTg0LTE3LjcyNzUwMS0xMC4xNzU3MTQtMjIuMzk5MzctMTMuNDM5NjIyLTcuMjk1Nzk1LTQuNjcxODY5LTEyLjYwNzY0NS05Ljc5MTcyNS0xNS45MzU1NTEtMTUuNDIzNTY2cy00LjYwNzg3LTEwLjk0MzY5Mi0zLjk2Nzg4OS0xNS45OTk1NSAzLjMyNzkwNi05LjA4Nzc0NCA3LjkzNTc3Ny0xMi40MTU2NTEgMTEuNjQ3NjcyLTQuOTI3ODYxIDIwLjkyNzQxMS00LjkyNzg2MnpNNDYwLjI4OTQ1NCA3MDMuOTc2NjAxaC0yODguNjMxODgyYy0yMS4yNDc0MDIgMC0zNS4wMDcwMTUtMy40NTU5MDMtNDEuMzQyODM3LTEwLjQzMTcwNy02LjI3MTgyNC02Ljk3NTgwNC05LjQwNzczNS0xOC4wNDc0OTItOS40MDc3MzYtMzMuMjc5MDY0di04Ny42Nzc1MzRjMC0xNi41NzU1MzQgMy40NTU5MDMtMjguNzk5MTkgMTAuNDMxNzA3LTM2Ljc5ODk2NSA2Ljk3NTgwNC03LjkzNTc3NyAyMC43MzU0MTctMTEuOTAzNjY1IDQxLjI3ODgzOS0xMS45MDM2NjVoMjg3LjYwNzkxMXogbTEwOC40MTI5NTEgMGgyODQuNjYzOTk0YzIxLjI0NzQwMiAwIDM1LjY0Njk5Ny00LjE1OTg4MyA0My4yNjI3ODMtMTIuNDE1NjUxIDcuNjc5Nzg0LTguMzE5NzY2IDExLjUxOTY3Ni0yMC4wOTU0MzUgMTEuNTE5Njc2LTM1LjMyNzAwN3YtODUuNTY1NTkzYzAtMTUuOTk5NTUtMy41MTk5MDEtMjcuNzExMjIxLTEwLjQ5NTcwNC0zNS4zOTEwMDUtNi45NzU4MDQtNy42MTU3ODYtMjAuNzM1NDE3LTExLjM5MTY4LTQxLjI3ODg0LTExLjM5MTY3OUg1NjguNzAyNDA1ek00NjAuMjI1NDU2IDQ3MS4wODcxNTFIMTU0LjY5ODA0OXYtMzc2LjE4MTQyYzAtMzMuNzkxMDUgOS41OTk3My02MC4wMzAzMTIgMjguODYzMTg4LTc4LjU4OTc5IDE5LjI2MzQ1OC0xOC41NTk0NzggNDkuMDg2NjE5LTI3LjkwMzIxNSA4OS41OTc0OC0yNy45MDMyMTVINDYwLjE2MTQ1OHogbTEwOC40NzY5NDkgMGgzMDQuNTY3NDM0di0zNzMuMTczNTA1Yy0wLjYzOTk4Mi0zMy44NTUwNDgtMTAuMjM5NzEyLTYwLjU0MjI5Ny0yOC44NjMxODgtODAuMTI1NzQ2LTE4LjU1OTQ3OC0xOS41ODM0NDktNDguMTI2NjQ2LTI5LjM3NTE3NC04OC41NzM1MDktMjkuMzc1MTc0SDU2OC43MDI0MDV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTYiIHVuaWNvZGU9IiYjNTkwMzE7IiBkPSJNOTE1LjIgNzY1LjMxMmEyOS40NCAyOS40NCAwIDAgMS0yMS44ODggMjEuOTUyQTQ5My4xODQgNDkzLjE4NCAwIDAgMSAzODQuNzA0IDU5OS4wNGEyOS43NiAyOS43NiAwIDAgMC0xNi45Ni0xMS4zMjggMzg1LjYgMzg1LjYgMCAwIDEtMTc5Ljk2OC0xMDIuMjcyIDM5NC4wNDggMzk0LjA0OCAwIDAgMS02MC40MTYtNzcuNjk2Yy0xNC4yNzItMjQuMDY0IDEwLjExMi01Mi40OCAzNi4zNTItNDIuNzUyYTM4MS41MDQgMzgxLjUwNCAwIDAgMCAxMzIuMTYgMjIuODQ4Yy0wLjY0LTMuOTA0LTEuNTM2LTcuODA4LTIuMTEyLTExLjcxMkExOTg3LjMyOCAxOTg3LjMyOCAwIDAgMSAzOTQuODggMjY2Ljg4YTE5ODEuOTUyIDE5ODEuOTUyIDAgMCAxIDEwOS4yNDgtMTAxLjEyYzMuODQgMC41MTIgNy44MDggMS40MDggMTEuNzEyIDIuMDQ4IDAtNDYuMDgtNy41NTItOTAuNzUyLTIyLjg0OC0xMzIuMTYtOS42NjQtMjYuMjQgMTguNjg4LTUwLjYyNCA0Mi43NTItMzYuMzUyIDI4LjI4OCAxNi43NjggNTQuNCAzNy4xMiA3Ny42OTYgNjAuNDE2YTM4NS42NjQgMzg1LjY2NCAwIDAgMSAxMDIuMjcyIDE3OS45NjggMjkuODI0IDI5LjgyNCAwIDAgMCAxMS4yNjQgMTYuOTYgNDkzLjI0OCA0OTMuMjQ4IDAgMCAxIDE4OC4yODggNTA4LjYwOHogbS0yMDAuOTYtMzIwLjEyOGE5OS43NzYgOTkuNzc2IDAgMSAwLTE0MS4wNTYgMTQxLjEyIDk5Ljc3NiA5OS43NzYgMCAwIDAgMTQxLjEyLTE0MS4xMnpNMjI0LjU3NiAyMjguNjcyYy0zMC4yNzItMzAuMjA4LTE1OC40NjQtMjE3LjYtMTIxLjk4NC0yNTQuMDggMzYuNDgtMzYuNDggMjIzLjg3MiA5MS43MTIgMjU0LjA4IDEyMS45MiAzMC4yNzIgMzAuMjcyIDI1LjIxNiA4NC4zNTItMTEuMzI4IDEyMC44MzItMzYuNDggMzYuNDgtOTAuNTYgNDEuNi0xMjAuNzY4IDExLjMyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01NyIgdW5pY29kZT0iJiM1OTAzMjsiIGQ9Ik0zMDUuMjggODMyQzIyNC42NCA4MzIgMTI4IDc4Ny41ODQgMTI4IDY2Ny45NjhWMTE1LjJzMC01OS43MTIgNTkuMDcyLTU5LjcxMnYtNTkuNzc2czAtNTkuNzEyIDU5LjA3Mi01OS43MTIgNTkuMDcyIDU5LjcxMiA1OS4wNzIgNTkuNzEydjU5Ljc3Nmg0MTMuNTY4di01OS43NzZzMC01OS43MTIgNTkuMDcyLTU5LjcxMiA1OS4wNzIgNTkuNzEyIDU5LjA3MiA1OS43MTJ2NTkuNzc2czU5LjA3MiAwIDU5LjA3MiA1OS43MTJWNjY3Ljk2OEM4OTYgNzkwLjIwOCA4MjMuMDQgODMyIDc0Mi40IDgzMnpNMzIwIDc0Mi40aDM4NGM4LjE5MiAwIDE0LjcyLTYuNjU2IDE0LjcyLTE0LjkxMiAwLTguMzItNi41MjgtMTQuOTc2LTE0LjcyLTE0Ljk3NkgzMjBhMTQuODQ4IDE0Ljg0OCAwIDAgMC0xNC43MiAxNC45NzZjMCA4LjI1NiA2LjUyOCAxNC45MTIgMTQuNzIgMTQuOTEyek0yNDYuMTQ0IDY1Mi44aDUzMS43MTJjNTkuMDcyIDAgNTkuMDcyLTU3LjcyOCA1OS4wNzItNTcuNzI4di0xODEuMTg0czAtNTkuNzc2LTU5LjA3Mi01OS43NzZIMjQ2LjE0NGMtNTkuMDcyIDAtNTkuMDcyIDU5Ljc3Ni01OS4wNzIgNTkuNzc2djE3OS4yczAgNTkuNzEyIDU5LjA3MiA1OS43MTJ6IG0wLTQxOC4xMTJjMzIuNjQgMCA1OS4wNzItMjYuNzUyIDU5LjA3Mi01OS43NzZzLTI2LjQzMi01OS43MTItNTkuMDcyLTU5LjcxMi01OS4wNzIgMjYuNzUyLTU5LjA3MiA1OS43MTIgMjYuNDMyIDU5Ljc3NiA1OS4wNzIgNTkuNzc2eiBtNTMxLjcxMiAwYzMyLjY0IDAgNTkuMDcyLTI2Ljc1MiA1OS4wNzItNTkuNzc2cy0yNi40MzItNTkuNzEyLTU5LjA3Mi01OS43MTItNTkuMDcyIDI2Ljc1Mi01OS4wNzIgNTkuNzEyIDI2LjQzMiA1OS43NzYgNTkuMDcyIDU5Ljc3NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01OCIgdW5pY29kZT0iJiM1OTAzMzsiIGQ9Ik05NjAgNDE4Ljg4YTEwNC40NDggMTA0LjQ0OCAwIDAgMS03OS4yMzIgMTAxLjI0OGwtOTUuODA4IDIyNi4yNEEzNC40MzIgMzQuNDMyIDAgMCAxIDc1My4yMTYgNzY4SDI3MC43ODRhMzQuNDMyIDM0LjQzMiAwIDAgMS0zMC4zMzYtMTkuNTJMMTQzLjIzMiA1MjAuODMyQTEwNC40NDggMTA0LjQ0OCAwIDAgMSA2NCA0MTguODh2LTI0NC4zNTJoNjguOTI4di02OS43NmMwLTM4LjU5MiAzMC44NDgtNjkuODg4IDY4LjkyOC02OS44ODhzNjguOTI4IDMxLjI5NiA2OC45MjggNjkuODI0djY5LjgyNGg0ODIuNDMydi02OS43NmMwLTM4LjU5MiAzMC44NDgtNjkuODg4IDY4LjkyOC02OS44ODhzNjguOTI4IDMxLjI5NiA2OC45MjggNjkuODI0djY5LjgyNEg5NjB6TTI5MS40NTYgNjk4LjI0aDQ0MS4wODhsNzIuMzItMTc0LjUyOEgyMTkuMTM2eiBtLTg5LjYtNDE4Ljg4YTY5LjM3NiA2OS4zNzYgMCAwIDAtNjguOTI4IDY5Ljc2YzAgMzguNTkyIDMwLjg0OCA2OS44MjQgNjguOTI4IDY5LjgyNHM2OC45MjgtMzEuMjMyIDY4LjkyOC02OS43NmMwLTM4LjU5Mi0zMC44NDgtNjkuODI0LTY4LjkyOC02OS44MjR6IG02MjAuMjg4IDBhNjkuMzc2IDY5LjM3NiAwIDAgMC02OC45MjggNjkuNzZjMCAzOC41OTIgMzAuODQ4IDY5LjgyNCA2OC45MjggNjkuODI0czY4LjkyOC0zMS4yMzIgNjguOTI4LTY5Ljc2YzAtMzguNTkyLTMwLjg0OC02OS44MjQtNjguOTI4LTY5LjgyNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01OSIgdW5pY29kZT0iJiM1OTAzNDsiIGQ9Ik0yNTYgODMyYTY0IDY0IDAgMCAxLTY0LTY0di01MTJhNjQgNjQgMCAwIDEgNjQtNjRoNTc2YTY0IDY0IDAgMCAxIDY0IDY0Vjc2OGE2NCA2NCAwIDAgMS02NCA2NHogbTE3Ni0zMmgyMjQuNjRhMTYgMTYgMCAxIDAgMC0zMkg0MzJhMTYgMTYgMCAxIDAgMCAzMnpNMjg4IDcwNEg1MTJ2LTI1NkgyODhhMzIgMzIgMCAwIDAtMzIgMzJ2MTkyYTMyIDMyIDAgMCAwIDMyIDMyek01NzYgNzA0aDIyNGEzMiAzMiAwIDAgMCAzMi0zMnYtMTkyYTMyIDMyIDAgMCAwLTMyLTMySDU3NnpNMzg0IDM4NGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDAgMCAwIDEyOHogbTMyMCAwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMCAwIDAgMTI4eiBtMjguNDgtMjU1LjYxNmEzMi4yNTYgMzIuMjU2IDAgMCAxLTI3LjItNDMuMjY0bDEwLjg4LTIxLjEySDM3MS44NGw4LjMyIDE3LjI4YTMyIDMyIDAgMCAxLTU4LjI0IDI2LjI0bC02NC0xMjhhMzEuMTY4IDMxLjE2OCAwIDAgMS0xLjkyLTExLjUyIDMyIDMyIDAgMCAxIDMyLTMyIDMxLjM2IDMxLjM2IDAgMCAxIDI3LjUyIDE2LjY0djMuMkgzMjBsMTkuODQgNDQuMTZoNDA4LjMybDE5Ljg0LTQ0LjE2di0zLjJhMzEuMzYgMzEuMzYgMCAwIDEgMjcuNTItMTYuNjQgMzIgMzIgMCAwIDEgMzIgMzIgMzEuMzYgMzEuMzYgMCAwIDEgMCAxNS4zNmwtNjQgMTI4YTMyIDMyIDAgMCAxLTMxLjA0IDE3LjAyNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJPdmFsIiB1bmljb2RlPSImIzU5MDM1OyIgZD0iTTUxMiAzODRtLTMyMCAwYTMyMCAzMjAgMCAxIDEgNjQwIDAgMzIwIDMyMCAwIDEgMS02NDAgMFoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJSZWN0YW5nbGUiIHVuaWNvZGU9IiYjNTkwMzY7IiBkPSJNMTkyIDcwNGg2NDB2LTY0MEgxOTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU3RhciIgdW5pY29kZT0iJiM1OTAzNzsiIGQ9Ik01MTIgMTYwbC0yNjMuMjk2LTEzOC40MzIgNTAuMjQgMjkzLjE4NC0yMTIuOTkyIDIwNy42OCAyOTQuNCA0Mi44MTZMNTEyIDgzMmwxMzEuNjQ4LTI2Ni43NTIgMjk0LjQtNDIuODE2LTIxMi45OTItMjA3LjY4IDUwLjI0LTI5My4xODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iVHJpYW5nbGUiIHVuaWNvZGU9IiYjNTkwMzg7IiBkPSJNNTEyIDcwNGwzODQtNjQwSDEyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyZXN0b3JlZGVmYXVsdCIgdW5pY29kZT0iJiM1OTA0MDsiIGQ9Ik04ODAuODY3NTU2IDMyNS40MDQ0NDRhMzcyLjUwODQ0NCAzNzIuNTA4NDQ0IDAgMCAwLTE5OC43MTI4ODktMTk2Ljc3ODY2NmMtNDYuMDgtMTkuMzQyMjIyLTk0LjcyLTI5LjA3MDIyMi0xNDUuNDY0ODg5LTI5LjA3MDIyMnY3MS43MzY4ODhjMTY1LjcxNzMzMyAwIDMwMC45NDIyMjIgMTMzLjY4ODg4OSAzMDAuOTQyMjIyIDI5OC4wNDA4ODlzLTEzNC44MjY2NjcgMjk4LjA0MDg4OS0zMDAuNzE0NjY3IDI5OC4wNDA4ODljLTE2NS44ODggMC0zMDAuODg1MzMzLTEzMy42ODg4ODktMzAwLjg4NTMzMy0yOTguMDQwODg5IDAtMzEuNDAyNjY3IDQuODM1NTU2LTYyLjAwODg4OSAxNC4zOTI4ODktOTEuMjQ5Nzc3bDY4LjI2NjY2NyAzNy40MzI4ODgtMi4xMDQ4ODktMTE1Ljk5NjQ0NC0yLjEwNDg4OS0xMTUuOTk2NDQ0LTEwMC4zNTIgNTkuNzkwMjIyTDExMy43Nzc3NzggMzAzLjIxNzc3OGw3Mi4yNDg4ODkgMzkuNTk0NjY2QTM2NC4yMDI2NjcgMzY0LjIwMjY2NyAwIDAgMCAxNjMuNjY5MzMzIDQ2OS4zMzMzMzNjMCA0OS44OTE1NTYgOS44OTg2NjcgOTguMzYwODg5IDI5LjM1NDY2NyAxNDMuOTI4ODg5QTM3Mi4yMjQgMzcyLjIyNCAwIDAgMCAzOTEuNjIzMTExIDgxMC4wOTc3NzggMzc0LjEwMTMzMyAzNzQuMTAxMzMzIDAgMCAwIDUzNi45MTczMzMgODM5LjExMTExMWEzNzQuMDQ0NDQ0IDM3NC4wNDQ0NDQgMCAwIDAgMjYzLjk2NDQ0NS0xMDguMzE2NDQ0IDM2OC4yOTg2NjcgMzY4LjI5ODY2NyAwIDAgMCA3OS45ODU3NzgtMTE3LjUzMjQ0NWMxOS41MTI4ODktNDUuNTY4IDI5LjM1NDY2Ny05NC4wMzczMzMgMjkuMzU0NjY2LTE0My45Mjg4ODlzLTkuODk4NjY3LTk4LjM2MDg4OS0yOS4zNTQ2NjYtMTQzLjkyODg4OXpNOTYuNzExMTExLTI1LjZoODMwLjU3Nzc3OGEzOS44MjIyMjIgMzkuODIyMjIyIDAgMCAwIDM5LjgyMjIyMi0zOS44MjIyMjJ2LTUuNjg4ODg5YTM5LjgyMjIyMiAzOS44MjIyMjIgMCAwIDAtMzkuODIyMjIyLTM5LjgyMjIyMkg5Ni43MTExMTFBMzkuODIyMjIyIDM5LjgyMjIyMiAwIDAgMCA1Ni44ODg4ODktNzEuMTExMTExdjUuNjg4ODg5YTM5LjgyMjIyMiAzOS44MjIyMjIgMCAwIDAgMzkuODIyMjIyIDM5LjgyMjIyMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ1cGxvYWRpbmciIHVuaWNvZGU9IiYjNTkwNDE7IiBkPSJNNzg0IDExNS4yYTQ4LjQ0OCA0OC40NDggMCAwIDAtNDggNDguODk2YzAgMjYuOTQ0IDIxLjUwNCA0OC44MzIgNDggNDguODMyIDc5LjU1MiAwIDE0NCA2NS42NjQgMTQ0IDE0Ni42MjRhMTQ3LjI2NCAxNDcuMjY0IDAgMCAxLTU4LjE3NiAxMTcuNTA0bC0wLjY0IDAuNTEyYTE0OC42NzIgMTQ4LjY3MiAwIDAgMS05LjYgNi41OTJsLTEuNDcyIDAuOTZhMTQ2LjgxNiAxNDYuODE2IDAgMCAxLTkuNDcyIDUuMzEybC0yLjY4OCAxLjI4YTE1MC43MiAxNTAuNzIgMCAwIDEtOC45NiA0LjA5NmwtNC4wMzIgMS40NzJhMTQ3LjAwOCAxNDcuMDA4IDAgMCAxLTguMzIgMi44OGMtMS44NTYgMC41NzYtMy43MTIgMC45Ni01LjYzMiAxLjQ3Mi0yLjQzMiAwLjY0LTQuODY0IDEuMjgtNy4yOTYgMS43OTItMi41NiAwLjUxMi01LjI0OCAwLjgzMi03LjkzNiAxLjIxNi0xLjkyIDAuMjU2LTMuNzc2IDAuNjQtNS42OTYgMC44MzJhMTQ0LjUxMiAxNDQuNTEyIDAgMCAxLTE0LjA4IDAuNzA0Yy0xLjQ3MiAwLTIuOTQ0LTAuMTkyLTQuNDgtMC4xOTJhMjcxLjkzNiAyNzEuOTM2IDAgMCAxLTUuNDQgMjQuNTc2Yy0wLjUxMiAxLjk4NC0xLjI4IDMuODQtMS44NTYgNS44MjRhMjc0LjA0OCAyNzQuMDQ4IDAgMCAxLTUuNzYgMTguMTEyYy0wLjY0IDEuNzkyLTEuNTM2IDMuNTItMi4xNzYgNS4zMTJhMjk0LjUyOCAyOTQuNTI4IDAgMCAxLTcuNjE2IDE3Ljc5MmMtMC42NCAxLjQwOC0xLjQwOCAyLjc1Mi0yLjExMiA0LjA5NmEyODQuMjI0IDI4NC4yMjQgMCAwIDEtOS42IDE3LjkyQzY5Ny41MzYgNjgwLjI1NiA2MTEuMTM2IDczNC4yNzIgNTEyIDczNC4yNzJzLTE4NS40NzItNTQuMDgtMjMyLjk2LTEzNC42NTZjLTMuNDU2LTUuODI0LTYuNTkyLTExLjg0LTkuNi0xNy45Mi0wLjY0LTEuMzQ0LTEuNDcyLTIuNjg4LTIuMTEyLTQuMDk2LTIuNzUyLTUuNzYtNS4yNDgtMTEuNzc2LTcuNjE2LTE3Ljc5Mi0wLjY0LTEuNzkyLTEuNDcyLTMuNTItMi4xMTItNS4zMTJhMjc0LjA0OCAyNzQuMDQ4IDAgMCAxLTUuODI0LTE4LjExMmwtMS44NTYtNS43NmEyNzEuNDI0IDI3MS40MjQgMCAwIDEtNS40NC0yNC42NGMtMS41MzYgMC0zLjAwOCAwLjE5Mi00LjQ4IDAuMTkyLTQuOCAwLTkuNDcyLTAuMjU2LTE0LjA4LTAuNzA0LTEuOTItMC4xOTItMy44NC0wLjU3Ni01Ljc2LTAuODMyLTIuNTYtMC4zODQtNS4yNDgtMC43MDQtNy44NzItMS4yOC0yLjQ5Ni0wLjQ0OC00Ljg2NC0xLjA4OC03LjI5Ni0xLjcyOC0xLjkyLTAuNTEyLTMuODQtMC44OTYtNS42OTYtMS40NzJhMTQ3LjM5MiAxNDcuMzkyIDAgMCAxLTguMzItMi44OGwtMy45NjgtMS40NzJjLTMuMDcyLTEuMjgtNi4wOC0yLjU2LTguOTYtNC4wMzJsLTIuNjg4LTEuMjhjLTMuMi0xLjY2NC02LjQtMy40NTYtOS40MDgtNS4zNzZsLTEuNTM2LTAuOTZhMTUyLjA2NCAxNTIuMDY0IDAgMCAxLTkuNi02LjU5MmwtMC42NC0wLjUxMkExNDcuMzI4IDE0Ny4zMjggMCAwIDEgOTYgMzU5LjU1MmMwLTgwLjk2IDY0LjQ0OC0xNDYuNTYgMTQ0LTE0Ni41NiAyNi40OTYgMCA0OC0yMS45NTIgNDgtNDguODk2YTQ4LjQ0OCA0OC40NDggMCAwIDAtNDgtNDguODk2QzEwNy40NTYgMTE1LjIgMCAyMjQuNjQgMCAzNTkuNTUyYzAgMTEwLjA4IDcxLjU1MiAyMDMuMTM2IDE2OS44NTYgMjMzLjcyOEMyMjMuMjMyIDczMi44IDM1NS45NjggODMyIDUxMiA4MzJzMjg4Ljc2OC05OS4yIDM0Mi4yMDgtMjM4LjcyQzk1Mi40NDggNTYyLjY4OCAxMDI0IDQ2OS42MzIgMTAyNCAzNTkuNTUyYzAtMTM0LjkxMi0xMDcuNDU2LTI0NC4zNTItMjQwLTI0NC4zNTJ6IG0tNDUxLjY0OCAxMTQuMTc2djAuMDY0YzAuMTI4IDAgMC4xMjggMC4wNjQgMC4xMjggMC4xMjhMNDc2LjM1MiAzOTIuMzJsMC4xMjgtMC4xMjhBNDcuMzYgNDcuMzYgMCAwIDAgNTEyIDQwOC40NDhjMTQuMTQ0IDAgMjYuNzUyLTYuNCAzNS41ODQtMTYuMzJsMC4wNjQgMC4xMjggMTQzLjg3Mi0xNjIuNjg4di0wLjA2NGwwLjEyOC0wLjEyOGM2LjcyLTcuNjE2IDExLjEzNi0xNy4yOCAxMi4xNi0yOC4wMzJ2LTAuMTI4YTQ4LjQ0OCA0OC40NDggMCAwIDAtNDcuODA4LTUzLjQ0aC0xLjUzNmwtMC45NiAwLjA2NC0xLjAyNCAwLjA2NC0xLjYgMC4xOTJoLTAuNTEybC0yLjExMiAwLjMyYTQ3LjYxNiA0Ny42MTYgMCAwIDAtMjcuOTA0IDE1LjU1MmwtNjAuMzUyIDY4LjIyNHYtMjQ3LjI5NkE0OC40NDggNDguNDQ4IDAgMCAwIDUxMi02NGE0OC40NDggNDguNDQ4IDAgMCAwLTQ4IDQ4Ljg5NnYyNDcuMjk2bC02MC4zNTItNjguMjI0YTQ3LjQyNCA0Ny40MjQgMCAwIDAtMjcuODQtMTUuNDg4Yy0wLjcwNC0wLjE5Mi0xLjQwOC0wLjI1Ni0yLjExMi0wLjMyYTEwLjYyNCAxMC42MjQgMCAwIDAtMC42NC0wLjA2NGwtMS41MzYtMC4xOTJIMzcwLjU2bC0wLjg5Ni0wLjA2NEgzNjhhNDcuODcyIDQ3Ljg3MiAwIDAgMC00Mi4yNCAyNS41MzYgNDkuMjggNDkuMjggMCAwIDAgNi41OTIgNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZXJyb3IiIHVuaWNvZGU9IiYjNTkwMzk7IiBkPSJNNTEyLTEyOEE1MTIgNTEyIDAgMSAwIDUxMiA4OTZhNTEyIDUxMiAwIDAgMCAwLTEwMjR6IG0wIDIyNy41ODRBNTYuOTE3MzMzIDU2LjkxNzMzMyAwIDEgMSA1MTIgMjEzLjMzMzMzM2E1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxIDAtMTEzLjc0OTMzM3ogbTAgNTY4LjgzMmE1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxLTU2LjkxNzMzMy01Ni44MzJ2LTI4NC41MDEzMzNhNTYuOTE3MzMzIDU2LjkxNzMzMyAwIDAgMSAxMTMuODM0NjY2IDBWNjExLjU4NEE1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxIDUxMiA2NjguNDE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Inpvb21pbiIgdW5pY29kZT0iJiM1OTA0MjsiIGQ9Ik01ODUuMTQyODU3IDQ1Ny4xNDI4NTdoMzY1LjcxNDI4NnYtMTQ2LjI4NTcxNEg1ODUuMTQyODU3di0zNjUuNzE0Mjg2SDQzOC44NTcxNDNWMzEwLjg1NzE0M0g3My4xNDI4NTdWNDU3LjE0Mjg1N2gzNjUuNzE0Mjg2VjgyMi44NTcxNDNoMTQ2LjI4NTcxNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ6b29tb3V0IiB1bmljb2RlPSImIzU5MDQzOyIgZD0iTTczLjE0Mjg1NyA0NTcuMTQyODU3aDg3Ny43MTQyODZ2LTE0Ni4yODU3MTRINzMuMTQyODU3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImZpcnN0IiB1bmljb2RlPSImIzU5MDQ0OyIgZD0iTTI4NC40NDQ0NDQgNjExLjU1NTU1Nmg1Ni44ODg4ODl2LTUxMkgyODQuNDQ0NDQ0eiBtNDI2LjQ5Ni01MTEuMzE3MzM0YTI5LjQxMTU1NiAyOS40MTE1NTYgMCAwIDAtMTguMjA0NDQ0IDYuNDI4NDQ1TDQxMC42MjQgMzMzLjQ4MjY2N2EyOS4xMjcxMTEgMjkuMTI3MTExIDAgMCAwIDAgNDUuMzQwNDQ0bDI4MC44MDM1NTYgMjI1LjY3ODIyMmEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwIDM2LjQwODg4OC00NS4zNDA0NDRsLTI1Mi41ODY2NjYtMjAyLjk3OTU1NiAyNTMuODM4MjIyLTIwNC4yMzExMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMC0xOC4yMDQ0NDQtNTEuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Im5leHQiIHVuaWNvZGU9IiYjNTkwNDU7IiBkPSJNMzcwLjQwMzU1NiAxMDAuOTIwODg4OTk5OTk5OTlhMjkuNDExNTU2IDI5LjQxMTU1NiAwIDAgMSAxOC4yMDQ0NDQgNi40Mjg0NDRsMjgyLjA1NTExMSAyMjYuODE2YTI5LjEyNzExMSAyOS4xMjcxMTEgMCAwIDEgMCA0NS4zNDA0NDVMMzg5Ljg1OTU1NiA2MDUuMTI3MTExYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDEtMzYuNDA4ODg5LTQ1LjI4MzU1NWwyNTIuNTg2NjY2LTIwMi45Nzk1NTYtMjUzLjgzODIyMi0yMDQuMjMxMTExYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDEgMTguMjA0NDQ1LTUxLjcxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYXN0IiB1bmljb2RlPSImIzU5MDQ2OyIgZD0iTTcwOS41MTgyMjIgNjExLjU1NTU1NmEyOC40NDQ0NDQgMjguNDQ0NDQ0IDAgMCAwIDI4LjQ0NDQ0NS0yOC40NDQ0NDV2LTQ1NS4xMTExMTFhMjguNDQ0NDQ0IDI4LjQ0NDQ0NCAwIDEgMC01Ni44ODg4ODkgMHY0NTUuMTExMTExYTI4LjQ0NDQ0NCAyOC40NDQ0NDQgMCAwIDAgMjguNDQ0NDQ0IDI4LjQ0NDQ0NXogbS0zOTUuOTQ2NjY2LTUxMS4zMTczMzRhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMC0xOC4yMDQ0NDUgNTEuNzEybDI1My44MzgyMjIgMjA0LjIzMTExMS0yNTIuNTg2NjY2IDIwMi45Nzk1NTZhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMCAzNi4zNTIgNDUuMzQwNDQ0bDI4MC44MDM1NTUtMjI1LjY3ODIyMmEyOS4wMTMzMzMgMjkuMDEzMzMzIDAgMCAwIDAtNDUuMzQwNDQ0bC0yODEuOTk4MjIyLTIyNi44MTZhMjkuNDExNTU2IDI5LjQxMTU1NiAwIDAgMC0xOC4yMDQ0NDQtNi40Mjg0NDV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icHJldiIgdW5pY29kZT0iJiM1OTA0NzsiIGQ9Ik02NTIuNDU4NjY3IDEwMC45MjA4ODg5OTk5OTk5OWEyOS40MTE1NTYgMjkuNDExNTU2IDAgMCAwLTE4LjIwNDQ0NSA2LjQyODQ0NEwzNTIuMTQyMjIyIDMzNC4xNjUzMzMwMDAwMDAwM2EyOS4xMjcxMTEgMjkuMTI3MTExIDAgMCAwIDAgNDUuMzQwNDQ1bDI4MC44MDM1NTYgMjI1LjYyMTMzM2EyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwIDM2LjQwODg4OS00NS4yODM1NTVsLTI1Mi41ODY2NjctMjAyLjk3OTU1NiAyNTMuODM4MjIyLTIwNC4yMzExMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMC0xOC4yMDQ0NDQtNTEuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InBvaS1sb2FkIiB1bmljb2RlPSImIzU5MDQ4OyIgZD0iTTIxMi4zMzM3MTQgNTY2Ljg1NzE0M2g0MzguMzQ1MTQzYzIxLjk0Mjg1NyAwIDM2LjU3MTQyOSAxNC42Mjg1NzEgMzYuNTcxNDI5IDM2LjU3MTQyOHMtMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjkgMzYuNTcxNDI5SDIxMi4zMzM3MTRjLTIxLjk0Mjg1NyAwLTM2LjU3MTQyOS0xNC42Mjg1NzEtMzYuNTcxNDI4LTM2LjU3MTQyOXMxNC42Mjg1NzEtMzYuNTcxNDI5IDM2LjU3MTQyOC0zNi41NzE0Mjh6TTY4Ny4yNTAyODYgMzg0YzAgMjEuOTQyODU3LTE0LjYyODU3MSAzNi41NzE0MjktMzYuNTcxNDI5IDM2LjU3MTQyOUgyMTIuMzMzNzE0Yy0yMS45NDI4NTcgMC0zNi41NzE0MjktMTQuNjI4NTcxLTM2LjU3MTQyOC0zNi41NzE0MjlzMTQuNjI4NTcxLTM2LjU3MTQyOSAzNi41NzE0MjgtMzYuNTcxNDI5aDQzOC4zNDUxNDNjMjEuOTQyODU3IDAgMzYuNTcxNDI5IDE0LjYyODU3MSAzNi41NzE0MjkgMzYuNTcxNDI5ek0yMTIuMzMzNzE0IDIwMS4xNDI4NTdjLTIxLjk0Mjg1NyAwLTM2LjU3MTQyOS0xNC42Mjg1NzEtMzYuNTcxNDI4LTM2LjU3MTQyOHMxNC42Mjg1NzEtMzYuNTcxNDI5IDM2LjU3MTQyOC0zNi41NzE0MjloMjU1LjcwNzQyOWMyMS45NDI4NTcgMCAzNi41NzE0MjkgMTQuNjI4NTcxIDM2LjU3MTQyOCAzNi41NzE0MjlzLTE0LjYyODU3MSAzNi41NzE0MjktMzYuNTcxNDI4IDM2LjU3MTQyOHpNMTAwOC42NCAxNTcuMjU3MTQzYy0xNC41NTU0MjkgMTQuNjI4NTcxLTM2LjQ5ODI4NiAxNC42Mjg1NzEtNTEuMDUzNzE0IDBsLTgwLjQ1NzE0My04MC40NTcxNDNWNzQ5LjcxNDI4NmMwIDgwLjQ1NzE0My02NS42ODIyODYgMTQ2LjI4NTcxNC0xNDYuMDY2Mjg2IDE0Ni4yODU3MTRIMTQ2LjU3ODI4NkM2Ni4xOTQyODYgODk2IDAuNDM4ODU3IDgzMC4xNzE0MjkgMC40Mzg4NTcgNzQ5LjcxNDI4NnYtNzMxLjQyODU3MmMwLTgwLjQ1NzE0MyA2NS44Mjg1NzEtMTQ2LjI4NTcxNCAxNDYuMTM5NDI5LTE0Ni4yODU3MTRoNTA0LjEwMDU3MWMyMS45NDI4NTcgMCAzNi41NzE0MjkgMTQuNjI4NTcxIDM2LjU3MTQyOSAzNi41NzE0MjlzLTE0LjYyODU3MSAzNi41NzE0MjktMzYuNTcxNDI5IDM2LjU3MTQyOEgxNDYuNTc4Mjg2Yy00My44ODU3MTQgMC03My4wNjk3MTQgMzYuNTcxNDI5LTczLjA2OTcxNSA3My4xNDI4NTdWNzQ5LjcxNDI4NmMwIDQzLjg4NTcxNCAzNi41NzE0MjkgNzMuMTQyODU3IDczLjA2OTcxNSA3My4xNDI4NTdoNTg0LjQ4NDU3MWM0My44ODU3MTQgMCA3My4wNjk3MTQtMjkuMjU3MTQzIDczLjA2OTcxNC03My4xNDI4NTd2LTY4MC4yMjg1NzJsLTgwLjM4NCA4MC40NTcxNDNjLTE0LjYyODU3MSAxNC42Mjg1NzEtMzYuNTcxNDI5IDE0LjYyODU3MS01MS4xMjY4NTcgMC0xNC42Mjg1NzEtMTQuNjI4NTcxLTE0LjYyODU3MS0zNi41NzE0MjkgMC01MS4ybDE0Ni4xMzk0MjktMTQ2LjI4NTcxNHM3LjMxNDI4Ni03LjMxNDI4NiAxNC42Mjg1NzEtNy4zMTQyODZoMjkuMjU3MTQzYzcuMjQxMTQzIDAgNy4yNDExNDMgNy4zMTQyODYgMTQuNTU1NDI5IDcuMzE0Mjg2bDE0Ni4xMzk0MjggMTQ2LjI4NTcxNGMtNy4zMTQyODYgMTQuNjI4NTcxLTcuMzE0Mjg2IDQzLjg4NTcxNC0xNC42Mjg1NzEgNTguNTE0Mjg2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InBvaS1zYXZlIiB1bmljb2RlPSImIzU5MDQ5OyIgZD0iTTg2Ny42OTM3MTQgODIyLjI3MkgyMjkuNDQ5MTQzYy04Ni4wMTYgMC0xNTUuNzk0Mjg2LTY5LjcwNTE0My0xNTUuNzk0Mjg2LTE1NS43OTQyODZ2LTYzOC42ODM0MjhjMC04Ni4wODkxNDMgNjkuNzc4Mjg2LTE1NS43OTQyODYgMTU1Ljc5NDI4Ni0xNTUuNzk0Mjg2aDYzOC4yNDQ1NzFjODYuMDE2IDAgMTU1Ljc5NDI4NiA2OS43MDUxNDMgMTU1Ljc5NDI4NiAxNTUuNzk0Mjg2VjY2Ni41NTA4NTdjMCA4Ni4wMTYtNjkuNzc4Mjg2IDE1NS43OTQyODYtMTU1Ljc5NDI4NiAxNTUuNzk0Mjg2eiBtLTU4NC44NTAyODUtNjguMDIyODU3aDUzMS40NTZ2LTIzNy40OTQ4NTdjMC0zMi4xMDk3MTQtMzMuMjA2ODU3LTU4LjIyMTcxNC03NC4wMjA1NzItNTguMjIxNzE1SDM1Ni44NjRjLTQwLjgxMzcxNCAwLTc0LjAyMDU3MSAyNi4xMTItNzQuMDIwNTcxIDU4LjIyMTcxNXogbTY3Mi41NDg1NzEtNzI1Ljk0Mjg1N2MwLTQ4LjQ5MzcxNC0zOS4yMDQ1NzEtODcuNjk4Mjg2LTg3Ljc3MTQyOS04Ny42OTgyODZIMjI5LjUyMjI4NmE4Ny42MjUxNDMgODcuNjI1MTQzIDAgMCAwLTg3LjY5ODI4NiA4Ny43NzE0MjlWNjY2LjQ3NzcxNGMwIDQzLjUyIDMxLjU5NzcxNCA3OS41MDYyODYgNzIuOTk2NTcxIDg2LjAxNnYtMjM2LjMyNDU3MWMwLTY5LjcwNTE0MyA2My43MDc0MjktMTI2LjMxNzcxNCAxNDIuMTE2NTcyLTEyNi4zMTc3MTRoMzgzLjQxNDg1N2M3OC40MDkxNDMgMCAxNDIuMTE2NTcxIDU2LjYxMjU3MSAxNDIuMTE2NTcxIDEyNi4zMTc3MTRWNzUzLjE1MmM0MS4zOTg4NTctNy4wOTQ4NTcgNzIuOTk2NTcxLTQzLjA4MTE0MyA3Mi45OTY1NzItODYuMDg5MTQzek03MDUuOTc0ODU3IDUwOS43MzI1NzFhMzMuNjQ1NzE0IDMzLjY0NTcxNCAwIDAgMSAzMy43MTg4NTcgMzMuNzE4ODU4VjY2MC41NTMxNDNhMzMuNjQ1NzE0IDMzLjY0NTcxNCAwIDAgMS0zMy43MTg4NTcgMzMuNzkyIDM0LjA4NDU3MSAzNC4wODQ1NzEgMCAwIDEtMzQuMzc3MTQzLTMzLjc5MnYtMTE3LjAyODU3MmEzNC43NDI4NTcgMzQuNzQyODU3IDAgMCAxIDM0LjM3NzE0My0zMy43OTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZm9sZCIgdW5pY29kZT0iJiM1OTA1MDsiIGQ9Ik01MTItMTI4QTUxMiA1MTIgMCAxIDEgNTEyIDg5NmE1MTIgNTEyIDAgMCAxIDAtMTAyNHpNMjczLjU3ODY2NyA0MjQuMjc3MzMzbDE5NS40MTMzMzMgMTU4LjI5MzMzNEE2Ny45MjUzMzMgNjcuOTI1MzMzIDAgMCAwIDUxMiA1OTYuOTA2NjY3YzE1LjUzMDY2NyAwIDMxLjE0NjY2Ny00LjY5MzMzMyA0My4wMDgtMTQuMzM2bDE5NS40MTMzMzMtMTU4LjI5MzMzNGMyMy40NjY2NjctMTkuMTE0NjY3IDIzLjQ2NjY2Ny01MC4wMDUzMzMgMC02OS4xMmE3MC41NzA2NjcgNzAuNTcwNjY3IDAgMCAwLTg1LjMzMzMzMyAwTDUxMiA0NzkuMjMyIDM1OC45MTIgMzU1LjE1NzMzM2E3MC42NTYgNzAuNjU2IDAgMCAwLTg1LjMzMzMzMyAwYy0yMy40NjY2NjcgMTkuMTE0NjY3LTIzLjQ2NjY2NyA1MC4wMDUzMzMgMCA2OS4xMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYWJlbC1kZWxldGUiIHVuaWNvZGU9IiYjNTkwNTE7IiBkPSJNODc0LjA2OTMzMyA4MTcuMTUySDY4OS4xNTJjMCAzNS42NjkzMzMtMjcuMDUwNjY3IDc4LjY3NzMzMy02MC41ODY2NjcgNzguNjc3MzMzSDQxNi45Mzg2NjdjLTMzLjQ1MDY2NyAwLTYwLjU4NjY2Ny00My4wMDgtNjAuNTg2NjY3LTc4LjY3NzMzM0gxNzEuNTJjLTQwLjg3NDY2NyAwLTg1Ljg0NTMzMy02LjIyOTMzMy04NS44NDUzMzMtNDguMDQyNjY3di02NC43NjhIOTM4LjY2NjY2N3Y2NC43NjhjMCA0MS44MTMzMzMtMjMuNjM3MzMzIDQ4LjA0MjY2Ny02NC41MTIgNDguMDQyNjY3ek0xNjEuMDI0IDYyOC42NTA2Njd2LTYxNi4zNjI2NjdjMC02Mi42MzQ2NjcgNjAuMDc0NjY3LTEzOS4wOTMzMzMgMTIxLjM0NC0xMzkuMDkzMzMzaDQ4MC43NjhjNjEuMjY5MzMzIDAgMTAxLjQ2MTMzMyA3Ni40NTg2NjcgMTAxLjQ2MTMzMyAxMzkuMDkzMzMzVjYyOC42NTA2Njd6IG0yMDIuMDY5MzMzLTYyOS4yNDhoLTc0LjA2OTMzM1Y1NDQuODUzMzMzaDc0LjA2OTMzM3ogbTE4NS4zNDQgMEg0NzQuNDUzMzMzVjU0NC44NTMzMzNoNzMuOTg0eiBtMTg1LjQyOTMzNCAwaC03NC4wNjkzMzRWNTQ0Ljg1MzMzM0g3MzMuODY2NjY3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InVwbG9hZCIgdW5pY29kZT0iJiM1OTA1MjsiIGQ9Ik05NTIuMDI3NDI5IDc2LjhjLTMyLjE4Mjg1NyAwLTU4LjI5NDg1NyAyNS4wMTQ4NTctNTguMjk0ODU4IDU1Ljg4MTE0MyAwIDMwLjc5MzE0MyAyNi4xMTIgNTUuODA4IDU4LjI5NDg1OCA1NS44MDggOTYuNTQ4NTcxIDAgMTc0LjgxMTQyOSA3NS4wNDQ1NzEgMTc0LjgxMTQyOCAxNjcuNTcwMjg2YTE2NC4xMzI1NzEgMTY0LjEzMjU3MSAwIDAgMS03MC41ODI4NTcgMTM0LjI5MDI4NWwtMC43MzE0MjkgMC41ODUxNDNhMTgxLjM5NDI4NiAxODEuMzk0Mjg2IDAgMCAxLTExLjcwMjg1NyA3LjUzMzcxNGwtMS45MDE3MTQgMS4wOTcxNDNhMTgxLjYxMzcxNCAxODEuNjEzNzE0IDAgMCAxLTExLjQxMDI4NiA2LjA3MDg1N2wtMy4yMTgyODUgMS40NjI4NThhMTg4Ljg1NDg1NyAxODguODU0ODU3IDAgMCAxLTEwLjk3MTQyOSA0LjY4MTE0MmwtNC44Mjc0MjkgMS42ODIyODZhMTg2LjIyMTcxNCAxODYuMjIxNzE0IDAgMCAxLTEwLjA5MzcxNCAzLjI5MTQyOWMtMi4yNjc0MjkgMC42NTgyODYtNC42MDggMS4wOTcxNDMtNi44NzU0MjggMS42ODIyODUtMi45MjU3MTQgMC43MzE0MjktNS44NTE0MjkgMS40NjI4NTctOC44NTAyODYgMi4wNDgtMy4yMTgyODYgMC41ODUxNDMtNi40MzY1NzEgMC45NTA4NTctOS42NTQ4NTcgMS4zODk3MTUtMi4yNjc0MjkgMC4yOTI1NzEtNC41MzQ4NTcgMC43MzE0MjktNi44NzU0MjkgMC45NTA4NTdhMTg2LjM2OCAxODYuMzY4IDAgMCAxLTE3LjExNTQyOCAwLjgwNDU3MWMtMS44Mjg1NzEgMC0zLjY1NzE0My0wLjIxOTQyOS01LjQxMjU3Mi0wLjIxOTQyOGEyOTUuMjA0NTcxIDI5NS4yMDQ1NzEgMCAwIDEtNi42NTYgMjguMDg2ODU3Yy0wLjY1ODI4NiAyLjI2NzQyOS0xLjQ2Mjg1NyA0LjM4ODU3MS0yLjE5NDI4NiA2LjY1Ni0yLjE5NDI4NiA3LjAyMTcxNC00LjM4ODU3MSAxMy44OTcxNDMtNy4wOTQ4NTcgMjAuNjk5NDI4LTAuODA0NTcxIDIuMDQ4LTEuODI4NTcxIDQuMDIyODU3LTIuNjMzMTQzIDYuMDcwODU4YTMyNi4yMTcxNDMgMzI2LjIxNzE0MyAwIDAgMS05LjIxNiAyMC4zMzM3MTRjLTAuNzMxNDI5IDEuNjA5MTQzLTEuNzU1NDI5IDMuMTQ1MTQzLTIuNTYgNC42ODExNDNhMzE4Ljk3NiAzMTguOTc2IDAgMCAxLTExLjYyOTcxNCAyMC40OGMtNTcuNjM2NTcxIDkyLjE2LTE2Mi42Njk3MTQgMTUzLjg5MjU3MS0yODIuOTE2NTcxIDE1My44OTI1NzEtMTIwLjMyIDAtMjI1LjI4LTYxLjgwNTcxNC0yODIuOTE2NTcyLTE1My44OTI1NzEtNC4xNjkxNDMtNi42NTYtNy45NzI1NzEtMTMuNTMxNDI5LTExLjcwMjg1Ny0yMC40OC0wLjczMTQyOS0xLjUzNi0xLjY4MjI4Ni0zLjA3Mi0yLjQ4Njg1Ny00LjY4MTE0M2EzMTYuNzA4NTcxIDMxNi43MDg1NzEgMCAwIDEtOS4yMTYtMjAuMzMzNzE0Yy0wLjgwNDU3MS0yLjA0OC0xLjgyODU3MS00LjAyMjg1Ny0yLjYzMzE0My02LjA3MDg1OGEzMDAuMTA1MTQzIDMwMC4xMDUxNDMgMCAwIDEtNy4wOTQ4NTctMjAuNjk5NDI4bC0yLjE5NDI4Ni02LjU4Mjg1N2EyOTQuNjE5NDI5IDI5NC42MTk0MjkgMCAwIDEtNi41ODI4NTctMjguMTZjLTEuOTAxNzE0IDAtMy42NTcxNDMgMC4yMTk0MjktNS40ODU3MTQgMC4yMTk0MjgtNS43NzgyODYgMC0xMS40ODM0MjktMC4yOTI1NzEtMTcuMTE1NDI5LTAuODA0NTcxLTIuMzQwNTcxLTAuMjE5NDI5LTQuNjA4LTAuNjU4Mjg2LTYuODc1NDI4LTAuOTUwODU3LTMuMjE4Mjg2LTAuNDM4ODU3LTYuNDM2NTcxLTAuODA0NTcxLTkuNjU0ODU3LTEuNDYyODU3LTIuOTI1NzE0LTAuNTEyLTUuODUxNDI5LTEuMjQzNDI5LTguNzc3MTQzLTEuOTc0ODU4LTIuMzQwNTcxLTAuNTg1MTQzLTQuNjgxMTQzLTEuMDI0LTYuOTQ4NTcyLTEuNjgyMjg1YTE4Ni42NjA1NzEgMTg2LjY2MDU3MSAwIDAgMS0xMC4wOTM3MTQtMy4yOTE0MjlsLTQuOTAwNTcxLTEuNjgyMjg2Yy0zLjY1NzE0My0xLjQ2Mjg1Ny03LjMxNDI4Ni0yLjkyNTcxNC0xMC44OTgyODYtNC42MDhsLTMuMjE4Mjg2LTEuNDYyODU3YTE3My44NjA1NzEgMTczLjg2MDU3MSAwIDAgMS0xMS40MTAyODYtNi4xNDRsLTEuOTAxNzE0LTEuMDk3MTQzYTE4NS41NjM0MjkgMTg1LjU2MzQyOSAwIDAgMS0xMS43MDI4NTctNy41MzM3MTRsLTAuNzMxNDI5LTAuNTg1MTQzYTE2NC4yMDU3MTQgMTY0LjIwNTcxNCAwIDAgMS03MC41ODI4NTctMTM0LjI5MDI4NWMwLTkyLjUyNTcxNCA3OC4yNjI4NTctMTY3LjQ5NzE0MyAxNzQuODExNDI5LTE2Ny40OTcxNDMgMzIuMTgyODU3IDAgNTguMjk0ODU3LTI1LjA4OCA1OC4yOTQ4NTctNTUuODgxMTQzIDAtMzAuODY2Mjg2LTI2LjExMi01NS44ODExNDMtNTguMjk0ODU3LTU1Ljg4MTE0M0MxMzAuNDg2ODU3IDc2LjggMCAyMDEuODc0Mjg2IDAgMzU2LjA1OTQyOWMwIDEyNS44MDU3MTQgODYuODIwNTcxIDIzMi4xNTU0MjkgMjA2LjI2Mjg1NyAyNjcuMTE3NzE0QzI3MC45OTQyODYgNzgyLjYyODU3MSA0MzIuMjc0Mjg2IDg5NiA2MjEuNzE0Mjg2IDg5NnMzNTAuNjQ2ODU3LTExMy4zNzE0MjkgNDE1LjUyNDU3MS0yNzIuODIyODU3QzExNTYuNjA4IDU4OC4yMTQ4NTcgMTI0My40Mjg1NzEgNDgxLjg2NTE0MyAxMjQzLjQyODU3MSAzNTYuMDU5NDI5YzAtMTU0LjE4NTE0My0xMzAuNDg2ODU3LTI3OS4yNTk0MjktMjkxLjQwMTE0Mi0yNzkuMjU5NDI5ek00MDMuNTI5MTQzIDIwNy4yODY4NTdsMC4wNzMxNDMgMC4wNzMxNDMgMC4xNDYyODUgMC4xNDYyODZMNTc4LjQxMzcxNCAzOTMuNTA4NTcxbDAuMTQ2Mjg2LTAuMTQ2Mjg1YTU5LjA5OTQyOSA1OS4wOTk0MjkgMCAwIDAgODYuMzA4NTcxIDBsMC4xNDYyODYgMC4xNDYyODUgMTc0LjY2NTE0My0xODUuOTI5MTQydi0wLjA3MzE0M2wwLjIxOTQyOS0wLjE0NjI4NmM4LjExODg1Ny04LjcwNCAxMy40NTgyODYtMTkuNzQ4NTcxIDE0LjYyODU3MS0zMi4wMzY1NzF2LTAuMTQ2Mjg2YTQ4LjQyMDU3MSA0OC40MjA1NzEgMCAwIDAgMC4zNjU3MTQtNS4xMmMwLTMwLjkzOTQyOS0yNi4xMTItNTUuOTU0Mjg2LTU4LjI5NDg1Ny01NS45NTQyODZoLTEuOTAxNzE0bC0xLjE3MDI4NiAwLjA3MzE0My0xLjI0MzQyOCAwLjA3MzE0My0xLjkwMTcxNSAwLjIxOTQyOGgtMC43MzE0MjhsLTIuNDg2ODU3IDAuMzY1NzE1YTU4LjgwNjg1NyA1OC44MDY4NTcgMCAwIDAtMzMuOTM4Mjg2IDE3Ljc3MzcxNEw2ODAuMDA5MTQzIDIxMC41MDUxNDN2LTI4Mi42MjRjMC0zMC44NjYyODYtMjYuMTEyLTU1Ljg4MTE0My01OC4yOTQ4NTctNTUuODgxMTQzLTMyLjE4Mjg1NyAwLTU4LjI5NDg1NyAyNS4wMTQ4NTctNTguMjk0ODU3IDU1Ljg4MTE0M1YyMTAuNTA1MTQzbC03My4yMTYtNzcuOTcwMjg2YTU4LjU4NzQyOSA1OC41ODc0MjkgMCAwIDAtMzMuODY1MTQzLTE3LjcwMDU3MWMtMC44Nzc3MTQtMC4yMTk0MjktMS42ODIyODYtMC4yOTI1NzEtMi41Ni0wLjM2NTcxNWExMy42Nzc3MTQgMTMuNjc3NzE0IDAgMCAwLTAuNzMxNDI5LTAuMDczMTQybC0xLjkwMTcxNC0wLjIxOTQyOWgtMS4yNDM0MjlsLTEuMDk3MTQzLTAuMDczMTQzaC0xLjk3NDg1N2E1OC42NjA1NzEgNTguNjYwNTcxIDAgMCAwLTUxLjIgMjkuMTg0IDUzLjY4Njg1NyA1My42ODY4NTcgMCAwIDAgNy44OTk0MjkgNjR6IiAgaG9yaXotYWR2LXg9IjEyNDMiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idW5mb2xkIiB1bmljb2RlPSImIzU5MDUzOyIgZD0iTTUxMiA4OTZhNTEyIDUxMiAwIDEgMCAwLTEwMjRBNTEyIDUxMiAwIDAgMCA1MTIgODk2ek0yNzMuNTc4NjY3IDM0My43MjI2NjdsMTk1LjQxMzMzMy0xNTguMjkzMzM0QTY3LjkyNTMzMyA2Ny45MjUzMzMgMCAwIDEgNTEyIDE3MS4wOTMzMzNhNjguMDEwNjY3IDY4LjAxMDY2NyAwIDAgMSA0My4wMDggMTQuMzM2bDE5NS40MTMzMzMgMTU4LjI5MzMzNGMyMy40NjY2NjcgMTkuMTE0NjY3IDIzLjQ2NjY2NyA1MC4wMDUzMzMgMCA2OS4xMmE3MC41NzA2NjcgNzAuNTcwNjY3IDAgMCAxLTg1LjMzMzMzMyAwTDUxMiAyODguNzY4IDM1OC45MTIgNDEyLjg0MjY2N2E3MC42NTYgNzAuNjU2IDAgMCAxLTg1LjMzMzMzMyAwYy0yMy40NjY2NjctMTkuMTE0NjY3LTIzLjQ2NjY2Ny01MC4wMDUzMzMgMC02OS4xMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJjbG9zZSIgdW5pY29kZT0iJiM1OTA1NDsiIGQ9Ik02NDEuMzY1MzMzIDM4NGwzNTUuNDEzMzM0LTM1NS4zMjhjMzYuMDEwNjY3LTM2LjAxMDY2NyAzNi40MzczMzMtOTMuODY2NjY3IDAuNDI2NjY2LTEyOS44NzczMzNhOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMC0xMjkuODc3MzMzIDAuNDI2NjY2TDUxMiAyNTQuNjM0NjY3bC0zNTUuMzI4LTM1NS40MTMzMzRjLTM2LjAxMDY2Ny0zNi4wMTA2NjctOTMuODY2NjY3LTM2LjQzNzMzMy0xMjkuODc3MzMzLTAuNDI2NjY2YTkxLjczMzMzMyA5MS43MzMzMzMgMCAwIDAgMC40MjY2NjYgMTI5Ljg3NzMzM0wzODIuNjM0NjY3IDM4NCAyNy4yMjEzMzMgNzM5LjMyOEE5MS42NDggOTEuNjQ4IDAgMCAwIDI2Ljc5NDY2NyA4NjkuMjA1MzMzYTkxLjczMzMzMyA5MS43MzMzMzMgMCAwIDAgMTI5Ljg3NzMzMy0wLjQyNjY2Nkw1MTIgNTEzLjM2NTMzMyA4NjcuMzI4IDg2OC43Nzg2NjdhOTEuNjQ4IDkxLjY0OCAwIDAgMCAxMjkuODc3MzMzIDAuNDI2NjY2IDkxLjczMzMzMyA5MS43MzMzMzMgMCAwIDAtMC40MjY2NjYtMTI5Ljg3NzMzM3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtYXJrIiB1bmljb2RlPSImIzU5MDU1OyIgZD0iTTI1NiAxOC42NTE0MjlhNTEuMzQ2Mjg2IDUxLjM0NjI4NiAwIDAgMC00NC4zOTc3MTQgMjUuMzgwNTcxTDcuNjggMzk0LjM4NjI4NmMtMTQuMTE2NTcxIDI0LjEzNzE0My01LjQ4NTcxNCA1NC44NTcxNDMgMTkuMDE3MTQzIDY4LjY4MTE0M3M1NS44ODExNDMgNS40MTI1NzEgNjkuOTI0NTcxLTE4LjcyNDU3MmwxNzAuNDk2LTI5My4xNTY1NzEgNjI4LjUxNjU3MiA2MTkuMTU0Mjg1YTUxLjkzMTQyOSA1MS45MzE0MjkgMCAwIDAgNzIuNDExNDI4IDAuMDczMTQzIDQ5LjczNzE0MyA0OS43MzcxNDMgMCAwIDAgMC4xNDYyODYtNzEuMTY4TDI5NC42MTk0MjkgMzUuODRsLTIuNDEzNzE1LTIuNDEzNzE0YTUxLjYzODg1NyA1MS42Mzg4NTcgMCAwIDAtMzYuMjA1NzE0LTE0LjYyODU3MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ0cmFmZmljIiB1bmljb2RlPSImIzU5MDU2OyIgZD0iTTUxMiA2OTEuMmMtODQuODM4NCAwLTE1My42LTQ5LjY2NC0xNTMuNi0xMTAuOTUwNHYtNDQzLjY5OTJDMzU4LjQgNzUuMjY0IDQyNy4xNjE2IDI1LjYgNTEyIDI1LjZzMTUzLjYgNDkuNjY0IDE1My42IDExMC45NTA0VjU4MC4yNDk2QzY2NS42IDY0MS41MzYgNTk2LjgzODQgNjkxLjIgNTEyIDY5MS4yeiBtMCAxMDIuNGMxNDEuMzYzMiAwIDI1Ni05Ny40MzM2IDI1Ni0yMTcuNnYtNDM1LjJjMC0xMjAuMTY2NC0xMTQuNjM2OC0yMTcuNi0yNTYtMjE3LjZzLTI1NiA5Ny40MzM2LTI1NiAyMTcuNnY0MzUuMkMyNTYgNjk2LjE2NjQgMzcwLjYzNjggNzkzLjYgNTEyIDc5My42ek01MTIgNTYzLjJtLTc2LjggMGE3Ni44IDc2LjggMCAxIDEgMTUzLjYgMCA3Ni44IDc2LjggMCAxIDEtMTUzLjYgMFpNNTEyIDM1OC40bS03Ni44IDBhNzYuOCA3Ni44IDAgMSAxIDE1My42IDAgNzYuOCA3Ni44IDAgMSAxLTE1My42IDBaTTUxMiAxNTMuNm0tNzYuOCAwYTc2LjggNzYuOCAwIDEgMSAxNTMuNiAwIDc2LjggNzYuOCAwIDEgMS0xNTMuNiAwWiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImZ1bGwtZmlndXJlIiB1bmljb2RlPSImIzU5MDU3OyIgZD0iTTI2MC42MDggNjQwQzIyOS44MzY4IDY0MCAyMDQuOCA2MTQuNTUzNiAyMDQuOCA1ODMuMTE2OHYtMzk4LjIzMzZDMjA0LjggMTUzLjQ0NjQgMjI5Ljc4NTYgMTI4IDI2MC42MDggMTI4aDUwMi43ODRjMzAuODIyNCAwIDU1LjgwOCAyNS40NDY0IDU1LjgwOCA1Ni44ODMyVjU4My4xNjhDODE5LjIgNjE0LjU1MzYgNzk0LjIxNDQgNjQwIDc2My4zOTIgNjQweiBtNS42MzIgMTAyLjRoNDkxLjUyQzg0OC4yMzA0IDc0Mi40IDkyMS42IDY2OC4zNjQ4IDkyMS42IDU3Ny4wMjR2LTM4Ni4wNDhjMC05MS4zNDA4LTczLjM2OTYtMTY1LjM3Ni0xNjMuODQtMTY1LjM3NkgyNjYuMjRDMTc1Ljc2OTYgMjUuNiAxMDIuNCA5OS42MzUyIDEwMi40IDE5MC45NzZWNTc3LjAyNEMxMDIuNCA2NjguMzEzNiAxNzUuNzY5NiA3NDIuNCAyNjYuMjQgNzQyLjR6TTMyMy44OTEyIDQxOC42NjI0YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljg0IDM1LjQzMDRWNTI1LjAwNDhhMzUuODQgMzUuODQgMCAwIDAgMzUuODQgMzUuNDMwNGw3MS42OC0wLjYxNDRjMTkuNjA5NiAwIDM1Ljc4ODgtMTUuMzYgMzUuNzg4OC0zNC44MTZzLTE2LjE3OTItMzUuNDMwNC0zNS44NC0zNS40MzA0aC0zNS44NHYtMzUuNDgxNmEzNS44NCAzNS44NCAwIDAgMC0zNS43ODg4LTM1LjQzMDR6IG03MS42OC0yMTIuNjg0OGgtNzEuNjhhMzUuODQgMzUuODQgMCAwIDAtMzUuODQgMzUuNDgxNlYzMTIuMzJhMzUuODQgMzUuODQgMCAwIDAgNzEuNjggMHYtMzUuNDMwNGgzNS44NGMxOS42MDk2IDAgMzUuNzg4OC0xNi4wMjU2IDM1Ljc4ODgtMzUuNDMwNHMtMTYuMTc5Mi0zNS40ODE2LTM1Ljg0LTM1LjQ4MTZ6IG0zMTAuMzc0NCAyMTIuNjg0OGEzNS44NCAzNS44NCAwIDAgMC0zNS44NCAzNS40MzA0djM1LjQ4MTZoLTM1Ljc4ODhjLTE5LjY2MDggMC0zNS44NCAxNS45NzQ0LTM1Ljg0IDM1LjQzMDRzMTYuMTc5MiAzNS40MzA0IDM1Ljg0IDM1LjQzMDRoNzEuNjhhMzUuODQgMzUuODQgMCAwIDAgMzUuNzg4OC0zNS40MzA0di03MC45MTJhMzUuODQgMzUuODQgMCAwIDAtMzUuODQtMzUuNDMwNHogbTAtMjEyLjY4NDhINjM0LjM2OGMtMTkuNjYwOCAwLTM1Ljg0IDE2LjAyNTYtMzUuODQgMzUuNDgxNnMxNi4xNzkyIDM1LjQzMDQgMzUuODQgMzUuNDMwNGgzNS44NFYzMTIuMzJhMzUuODQgMzUuODQgMCAwIDAgNzEuNjI4OCAwdi03MC44NjA4YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljg0LTM1LjQ4MTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibWVhc3VyZSIgdW5pY29kZT0iJiM1OTA1ODsiIGQ9Ik0xMjkuMTI2NCAyMDMuMDA4YTEwMi4yOTc2IDEwMi4yOTc2IDAgMCAwLTAuMjA0OCAxNDQuNTg4OGw0MzQuODQxNiA0MzQuODQxNmExMDEuOTkwNCAxMDEuOTkwNCAwIDAgMCAxNDQuNTg4OC0wLjIwNDhsMjE3LjI0MTYtMjE3LjI0MTZjMzkuOTg3Mi0zOS45MzYgNDAuMDM4NC0xMDQuNzU1MiAwLjIwNDgtMTQ0LjU4ODhMNDkxLjAwOC0xNC40Mzg0YTEwMS45OTA0IDEwMS45OTA0IDAgMCAwLTE0NC41ODg4IDAuMjA0OHogbTEwOC4yODggMzYuNTA1NmwxNDUuNDU5Mi0xNDUuNDU5MmE1MS4yNTEyIDUxLjI1MTIgMCAwIDEgNzIuMTkyIDAuNDA5NmwzNjEuODMwNCAzNjEuODMwNGE1MS4yNTEyIDUxLjI1MTIgMCAwIDEgMC40MDk2IDcyLjE5MmwtMTQ1LjQ1OTIgMTQ1LjQ1OTJhNTEuMjUxMiA1MS4yNTEyIDAgMCAxLTcyLjE5Mi0wLjQwOTZsLTM2MS44MzA0LTM2MS44MzA0YTUxLjI1MTIgNTEuMjUxMiAwIDAgMS0wLjQwOTYtNzIuMTkyek0yNDcuOTYxNiAzMjYuOTYzMmwzNi4xOTg0IDM2LjE5ODQgMTA4LjY0NjQtMTA4LjU5NTItMzYuMjQ5Ni0zNi4yNDk2ek0zMjAuMzU4NCAzOTkuMzZsMzYuMTk4NCAzNi4xOTg0IDE0NC44NDQ4LTE0NC43OTM2LTM2LjE5ODQtMzYuMTk4NHogbTcyLjQ0OCA3Mi4zOTY4bDM2LjE5ODQgMzYuMTk4NEw1MzcuNiAzOTkuMzZsLTM2LjE5ODQtMzYuMTk4NHpNNTM3LjYgNjE2LjYwMTZsMzYuMTk4NCAzNi4xOTg0IDEwOC41OTUyLTEwOC42NDY0LTM2LjE5ODQtMzYuMTk4NHpNNDY1LjIwMzIgNTQ0LjE1MzZsMzYuMTk4NCAzNi4yNDk2IDE0NC43OTM2LTE0NC44NDQ4LTM2LjE5ODQtMzYuMTk4NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJkaXNwbGF5LWxpc3QiIHVuaWNvZGU9IiYjNTkwNTk7IiBkPSJNMCA3OS4yNzQ2NjdoMjU2Vi00Mi42NjY2NjdIMHogbTM4NCAwaDI1NlYtNDIuNjY2NjY3aC0yNTZ6IG0zODQgMGgyNTZWLTQyLjY2NjY2N0g3Njh6TTAgMzIzLjA3MmgyNTZ2LTEyMS45NDEzMzNIMHogbTM4NCAwaDI1NnYtMTIxLjk0MTMzM2gtMjU2eiBtMzg0IDBoMjU2di0xMjEuOTQxMzMzSDc2OHpNNTEyIDY4OC42NEwwIDQ0NC45MjhWNTY2Ljg2OTMzM0w1MTIgODEwLjY2NjY2N3ogbTUxMi0yNDMuNzk3MzMzTDUxMiA2ODguNzI1MzMzVjgxMC42NjY2NjdsNTEyLTI0My43OTczMzR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iaGlkZS1saXN0IiB1bmljb2RlPSImIzU5MDYwOyIgZD0iTTAgNjg4LjcyNTMzM2gyNTZWODEwLjY2NjY2N0gweiBtMzg0IDBoMjU2VjgxMC42NjY2NjdoLTI1NnogbTM4NCAwaDI1NlY4MTAuNjY2NjY3SDc2OHpNMCA0NDQuOTI4aDI1NlY1NjYuODY5MzMzSDB6IG0zODQgMGgyNTZWNTY2Ljg2OTMzM2gtMjU2eiBtMzg0IDBoMjU2VjU2Ni44NjkzMzNINzY4ek01MTIgNzkuMzZMMCAzMjMuMDcydi0xMjEuOTQxMzMzTDUxMi00Mi42NjY2Njd6IG01MTIgMjQzLjc5NzMzM0w1MTIgNzkuMjc0NjY3Vi00Mi42NjY2NjdsNTEyIDI0My43OTczMzR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icmVuYW1lIiB1bmljb2RlPSImIzU5MDYxOyIgZD0iTTk2MCA2ODIuNjY2NjY3aC05OS41ODR2LTk5LjU4NGg0OS44MzQ2Njd2LTM5OC4xNjUzMzRoLTQ5LjgzNDY2N1Y4NS4zMzMzMzNoOTkuNTg0YTQ5Ljc0OTMzMyA0OS43NDkzMzMgMCAwIDEgNDkuNzQ5MzMzIDQ5Ljc0OTMzNFY2MzIuOTE3MzMzYTQ5Ljc0OTMzMyA0OS43NDkzMzMgMCAwIDEtNDkuNzQ5MzMzIDQ5Ljc0OTMzNHogbS04OTYtNTk3LjMzMzMzNGg0OTcuNzQ5MzMzVjE4NC45MTczMzNoLTQ0OFY1ODMuMDgyNjY3aDQ0OFY2ODIuNjY2NjY3SDY0YTQ5Ljc0OTMzMyA0OS43NDkzMzMgMCAwIDEtNDkuNzQ5MzMzLTQ5Ljc0OTMzNHYtNDk3LjgzNDY2NmMwLTI3LjQ3NzMzMyAyMi4xODY2NjctNDkuNzQ5MzMzIDQ5Ljc0OTMzMy00OS43NDkzMzR6TTIxMy4zMzMzMzMgNDgzLjU4NGgzNDguNDE2di0xOTkuMTY4SDIxMy4zMzMzMzN6TTc2MC45MTczMzMgNjgxLjQ3MmMwLjU5NzMzMyAxNi44MTA2NjcgMTAuOTIyNjY3IDEwMC42OTMzMzMgMTQ5LjMzMzMzNCAxMDAuNjkzMzMzVjg4MS44MzQ2NjdjLTk4LjkwMTMzMyAwLTE2MS4yOC0zMy4yOC0xOTguODI2NjY3LTc1LjE3ODY2N0M2NzQuMTMzMzMzIDg0OC4zODQgNjExLjU4NCA4ODEuNzQ5MzMzIDUxMiA4ODEuNzQ5MzMzdi05OS40OTg2NjZjMTM5LjM0OTMzMyAwIDE0OC44MjEzMzMtODMuNjI2NjY3IDE0OS4zMzMzMzMtOTkuNTg0di01OTcuMjQ4YzAtNC4wOTYtMS44NzczMzMtOTkuNjY5MzMzLTE0OS4zMzMzMzMtOTkuNjY5MzM0di05OS40OTg2NjZjOTkuNjY5MzMzIDAgMTYyLjEzMzMzMyAzMy40NTA2NjcgMTk5LjY4IDc1LjUyIDIuMzg5MzMzLTIuNzMwNjY3IDQuMzUyLTUuNTQ2NjY3IDcuMDgyNjY3LTguMjc3MzM0IDQ0LjQ1ODY2Ny00NC42MjkzMzMgMTA4Ljg4NTMzMy02Ny4yNDI2NjcgMTkxLjQ4OC02Ny4yNDI2NjZ2OTkuNDk4NjY2Yy0xMzkuNTIgMC0xNDguOTA2NjY3IDgzLjQ1Ni0xNDkuMzMzMzM0IDk5LjQ5ODY2N3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJjb3B5IiB1bmljb2RlPSImIzU5MDYyOyIgZD0iTTYzOS44NzIgNjM5LjY4SDE5Mi4zODRjLTM1LjIgMC02My44NzItMjguOC02My44NzItNjMuODcydi01NzUuMzZjMC0zNS4yIDI4LjgtNjQgNjMuODcyLTY0aDQ0Ny40ODhjMzUuMiAwIDYzLjkzNiAyOC44IDYzLjkzNiA2NHY1NzUuMzZjMCAzNS4wNzItMjguOCA2My44NzItNjMuOTM2IDYzLjg3MnogbTAtNjM5LjI5NkgxOTIuMzg0djU3NS4zNmg0NDcuNDg4di01NzUuMzZ6IG0xOTEuNzQ0IDgzMS4xMDRIMzg0LjEyOGMtMzUuMiAwLTYzLjkzNi0yOC44LTYzLjkzNi02My44NzJ2LTYzLjkzNmg2My45MzZ2NjMuOTM2aDQ0Ny40ODh2LTU3NS4zNmgtNjMuOTM2di02NGg2My45MzZjMzUuMiAwIDYzLjg3MiAyOC44IDYzLjg3MiA2NHY1NzUuMzZhNjQgNjQgMCAwIDEtNjMuODcyIDYzLjg3MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJxcS16b25lIiB1bmljb2RlPSImIzU5MDYzOyIgZD0iTTUxMiA4OTZDMjI5LjAxNzYgODk2IDAgNjY2Ljk4MjQgMCAzODRzMjI5LjAxNzYtNTEyIDUxMi01MTIgNTEyIDIyOS4wMTc2IDUxMiA1MTJTNzk0Ljk4MjQgODk2IDUxMiA4OTZ6IG0zNTQuMTUwNC00MTguODE2bC0xODMuNjU0NC0xNTUuNDk0NCA2LjI0NjQtMjQuNjc4NGMtMTI5LjUzNi0xLjIyODgtMjE1LjA5MTIgMTEuMTEwNC0yMTUuMDkxMiAxMS4xMTA0bDIxMy44NjI0IDE0OS4yOTkyYy0xNzMuNjE5MiAzNS43ODg4LTQwOC44ODMyLTYuMTQ0LTM5MC4wNDE2LTcuNDI0IDI2NS40NzItOC42NTI4IDI3My4wNDk2LTIyLjIyMDggMjczLjA0OTYtMjIuMjIwOEwzNTcuODg4IDI3OC41MjhjMjkzLjEyLTE4LjUzNDQgMzc0Ljg4NjQgMTkuNzEyIDM3NC44ODY0IDE5LjcxMnMtMjAuMTIxNi0xNi4wMjU2LTM4Ljk2MzItMjQuNjc4NGw0NC4wMzItMTgyLjU3OTJjMS4yMjg4LTMuNjg2NC0xLjI4LTguNjUyOC0zLjc4ODgtMTEuMTEwNC0yLjU2LTEuMjI4OC0zLjc4ODgtMi40NTc2LTYuMjk3Ni0yLjQ1NzZzLTMuNzg4OCAwLTYuMjk3NiAxLjIyODhsLTIwOC44NDQ4IDEyMi4xNjMyLTIwOC44NDQ4LTEyMi4xNjMyYTExLjYyMjQgMTEuNjIyNCAwIDAgMC0xMi41NDQgMCA5LjgzMDQgOS44MzA0IDAgMCAwLTMuNzg4OCAxMS4xMTA0bDU1LjM0NzIgMjMxLjkzNkwxNTcuODQ5NiA0NzcuMTg0Yy0zLjc4ODggMi40NTc2LTUuMDE3NiA3LjQyNC0zLjc4ODggMTEuMTEwNHM1LjA2ODggNy40MjQgMTAuMDg2NCA3LjQyNGwyNDIuNzkwNCAxOS43MTJMNTAyLjU3OTIgNzM2LjI1NmMxLjIyODggMy42ODY0IDYuMjk3NiA2LjE0NCAxMC4wMzUyIDYuMTQ0IDUuMDY4OCAwIDguODA2NC0yLjQ1NzYgMTAuMDg2NC02LjE0NGw5NC4zNjE2LTIxOC40MTkyIDI0Mi43OTA0LTE5LjcxMmM1LjAxNzYgMCA4LjgwNjQtMy42ODY0IDEwLjA4NjQtNy40MjQgMS4yMjg4LTMuNjg2NCAwLTExLjExMDQtMy43ODg4LTEzLjU2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzaW5hLXdlaWJvIiB1bmljb2RlPSImIzU5MDY0OyIgZD0iTTM5OS44NzIgMjgwLjA2NGMtMjIuODM1MiAwLTQzLjgyNzItMTguNzkwNC00NC4xODU2LTM5LjQ3NTItMC4zMDcyLTE3LjY2NCAxNC41NDA4LTMxLjEyOTYgMzQuNDU3Ni0zMS4xMjk2IDIzLjY1NDQgMCA0My41MiAxNy44MTc2IDQzLjYyMjQgMzkuMjE5MiAwLjIwNDggMTguMjc4NC0xNC4wOCAzMS4zODU2LTMzLjk0NTYgMzEuMzg1NnogbTU2LjcyOTYgMTUuNzE4NGMtNi43NTg0LTMuMzI4LTEzLjMxMi04LjE5Mi0xNy45NzEyLTE0LjEzMTItMS4wMjQtMS4yOCA1LjkzOTItOC44MDY0IDExLjU3MTItMTYuODk2IDcuMjE5MiA3LjkzNiAxMy43NzI4IDEyLjQ5MjggMTYuMTc5MiAxOC42ODggMS4wMjQgMi42MTEyLTguNjUyOCAxMi45NTM2LTkuNzI4IDEyLjMzOTJ6IG0xNDMuMzA4OCA4OS44MDQ4YTIyNS42ODk2IDIyNS42ODk2IDAgMCAxLTM0Ljk2OTYgMTcuNTEwNGMtNDAuNDQ4IDE2LjE3OTItODIuOTQ0IDIwLjk5Mi0xMjYuMTA1NiAxNy4yMDMyLTY1LjI4LTUuNjMyLTEyNS41NDI0LTI0Ljg4MzItMTcyLjQ0MTYtNzMuMzE4NC01NC4zNzQ0LTU2LjA2NC00Ny4wMDE2LTEyNy4wNzg0IDE2Ljk5ODQtMTcxLjU3MTIgNDMuMzE1Mi0zMC4xMDU2IDkyLjUxODQtNDAuNDQ4IDE0NC40ODY0LTM5LjE2OCA5LjQyMDggMCAxOC45NDQtMC43NjggMjguMjYyNCAwLjEwMjQgNTkuMTg3MiA1LjYzMiAxMTMuNjY0IDIzLjYwMzIgMTU4LjgyMjQgNjMuNjQxNiA2NS45OTY4IDU4LjM2OCA1OS4zOTIgMTM4LjgwMzItMTUuMDUyOCAxODUuNnogbS03My4yMTYtMTY0LjkxNTJjLTIyLjQ3NjgtMzQuMDQ4LTYyLjI1OTItNTQuNzMyOC0xMDUuNDcyLTU0LjkzNzYtNTQuNDI1Ni0wLjM1ODQtOTUuMjgzMiAzMC4yMDgtMTAyLjU1MzYgNzcuODI0YTc5LjIwNjQgNzkuMjA2NCAwIDAgMCAxLjA3NTIgMjkuOTUyYzEwLjk1NjggNDYuNjk0NCA0My4zMTUyIDcyLjc1NTIgODcuMjk2IDg0LjUzMTIgNDMuNDY4OCAxMS41MiA4My44NjU2IDMuOTkzNiAxMTUuNTA3Mi0zMC41MTUyIDI2LjExMi0yOC41Njk2IDI3LjE4NzItNzIuMTQwOCA0LjA5Ni0xMDYuODU0NHpNNTEyIDg5NkMyMjkuMjIyNCA4OTYgMCA2NjYuNzc3NiAwIDM4NHMyMjkuMjIyNC01MTIgNTEyLTUxMmMyODIuNzI2NCAwIDUxMiAyMjkuMjIyNCA1MTIgNTEyIDAgMjgyLjcyNjQtMjI5LjIyMjQgNTEyLTUxMiA1MTJ6IG0yNDQuMTIxNi02NjQuODgzMmMtNDMuNzI0OC02Ny4yNzY4LTExMC45NTA0LTEwMC42NTkyLTE4Ni4wMDk2LTExOS4wNC0zNi4zNTItOC45Ni03NC4yNC0xMS43MjQ4LTkzLjk1Mi0xNC43NDU2LTkzLjA4MTYgMi4zMDQtMTY1LjA2ODggMTYuMDc2OC0yMjkuOTkwNCA1Ni40MjI0LTgxLjgxNzYgNTAuODQxNi0xMDUuNjc2OCAxMjcuMDI3Mi02Mi44NzM2IDIxMy40NTI4IDQ1LjkyNjQgOTIuNjcyIDExNy40MDE2IDE2MS4yMjg4IDIxMS4yNTEyIDIwNS4zMTIgMTcuNDA4IDguMTQwOCAzNy4yMjI0IDEyLjggNTYuMzIgMTUuMTA0IDM5LjM3MjggNC45MTUyIDYyLjMxMDQtMTcuNDA4IDYxLjMzNzYtNTcuMDM2OC0wLjIwNDgtOC43MDQtMi4yMDE2LTE3LjIwMzItMi42NjI0LTI1Ljk1ODQtMC40MDk2LTcuNDI0IDAuMTUzNi0xNS4wNTI4IDAuMzA3Mi0yMi41MjggNy42OCAxLjI4IDE1LjM2IDIuMDQ4IDIyLjg4NjQgMy43Mzc2IDMwLjMxMDQgNi41MDI0IDYwLjMxMzYgMTcuMzA1NiA5MC44OCAxOC45NDQgNTMuMDk0NCAyLjgxNiA3Ni44LTI5LjI4NjQgNjAuNzIzMi03OS43MTg0LTYuOTYzMi0yMS40NTI4LTEuNzQwOC0yOC42NzIgMTguMjc4NC0zNS44NCA3NS40Njg4LTI3LjIzODQgOTcuMjI4OC05MC45MzEyIDUzLjUwNC0xNTguMTA1NnogbS0zOS41Nzc2IDI4Mi41NzI4Yy0xMi40OTI4IDE1Ljg3Mi00MC44MDY0IDE5LjUwNzItNDkuNzY2NCAxOS42MDk2YTIzLjk2MTYgMjMuOTYxNiAwIDAgMCAwLjE1MzYgNDcuOTc0NGgwLjIwNDhjNS44MzY4IDAgNTguMzY4LTEuNTM2IDg3LjA0LTM3LjkzOTIgMTEuNDE3Ni0xNC40Mzg0IDIzLjA5MTItNDAuMDg5NiAxMy44MjQtODAuMDI1NmEyNC4wMTI4IDI0LjAxMjggMCAxIDAtNDYuNjk0NCAxMC43NTJjNC4wOTYgMTcuNTEwNCAyLjQ1NzYgMzAuNDY0LTQuNzYxNiAzOS42Mjg4ek04NTcuNzAyNCA0MzUuMmEyNC4wNjQgMjQuMDY0IDAgMCAwLTI3LjQ0MzItMTkuOTY4IDIzLjk2MTYgMjMuOTYxNiAwIDAgMC0xOS45NjggMjcuNDQzMmM4LjkwODggNTYuNTc2LTAuMTUzNiAxMDAuNjA4LTI3LjAzMzYgMTMwLjcxMzYtNDYuNzk2OCA1Mi40Mjg4LTEzMi41NTY4IDQ5LjMwNTYtMTMzLjQyNzIgNDkuMzA1NmEyMy45NjE2IDIzLjk2MTYgMCAxIDAtMi4wNDggNDcuOTIzMmM0LjQ1NDQgMC4xNTM2IDEwOS40MTQ0IDMuODQgMTcxLjI2NC02NS4yOCAzNi44NjQtNDEuMzY5NiA0OS44Njg4LTk4LjYxMTIgMzguNjU2LTE3MC4xMzc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImNvbG9yLWNoYW5nZSIgdW5pY29kZT0iJiM1OTA2NTsiIGQ9Ik00OC43MTMxNDMgNDcxLjc3MTQyOWg5MjYuOTM5NDI4YTQ5LjAwNTcxNCA0OS4wMDU3MTQgMCAxIDEgMzAuMTM0ODU4IDg3LjI1OTQyOCA0OC44NTk0MjkgNDguODU5NDI5IDAgMCAxLTEwLjM4NjI4NiA5Ljg3NDI4NmwtMzQ2LjI1ODI4NiAyNDUuMDI4NTcxYTQ4LjIwMTE0MyA0OC4yMDExNDMgMCAwIDEtNDguNDIwNTcxIDQuMzg4NTcyIDQ5LjA3ODg1NyA0OS4wNzg4NTcgMCAwIDEtNy4zMTQyODYtODQuNDhsMjMyLjAwOTE0My0xNjQuMjA1NzE1SDQ4LjY0Yy0yNi43NzAyODYgMC00OC40OTM3MTQtMjEuOTQyODU3LTQ4LjQ5MzcxNC00OC45MzI1NzEgMC0yNy4wNjI4NTcgMjEuNzIzNDI5LTQ4LjkzMjU3MSA0OC41NjY4NTctNDguOTMyNTcxeiBtOTI2LjkzOTQyOC0xNzUuNTQyODU4SDQ4LjY0YTQ4LjI3NDI4NiA0OC4yNzQyODYgMCAwIDEtMzQuMzA0LTE0LjMzNiA0OS4xNTIgNDkuMTUyIDAgMCAxIDQuMjQyMjg2LTcyLjkyMzQyOGMyLjg1MjU3MS0zLjY1NzE0MyA2LjI5MDI4Ni03LjAyMTcxNCAxMC4yNC05Ljg3NDI4NmwzNDYuMzMxNDI4LTI0NS4wMjg1NzFhNDguMjAxMTQzIDQ4LjIwMTE0MyAwIDAgMSA2Ny41ODQgMTEuOTIyMjg1IDQ5LjIyNTE0MyA0OS4yMjUxNDMgMCAwIDEtMTEuODQ5MTQzIDY4LjE2OTE0M0wxOTguODc1NDI5IDE5OC4zNjM0MjloNzc2Ljc3NzE0MmMyNi43NzAyODYgMCA0OC40OTM3MTQgMjEuOTQyODU3IDQ4LjQ5MzcxNSA0OC45MzI1NzFhNDguNzEzMTQzIDQ4LjcxMzE0MyAwIDAgMS00OC40OTM3MTUgNDguOTMyNTcxeiIgIGhvcml6LWFkdi14PSIxMDU1IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImNyZWF0LWN1c3RvbS1tYXAiIHVuaWNvZGU9IiYjNTkwNjY7IiBkPSJNNzcwLjkyNTcxNC01NC43MTA4NTdIMjUzLjA3NDI4NmExNzkuOTMxNDI5IDE3OS45MzE0MjkgMCAwIDAtMTc5LjcxMiAxNzkuNzEyVjY0Mi45MjU3MTRhMTc5LjkzMTQyOSAxNzkuOTMxNDI5IDAgMCAwIDE3OS43MTIgMTc5LjcxMmgyNTEuMzkyYTUwLjE3NiA1MC4xNzYgMCAxIDAgMC0xMDAuNDI1MTQzSDI1My4wMDExNDNjLTQzLjczOTQyOSAwLTc5LjI4Njg1Ny0zNS41NDc0MjktNzkuMjg2ODU3LTc5LjI4Njg1N3YtNTE3Ljk5NzcxNGMwLTQzLjczOTQyOSAzNS41NDc0MjktNzkuMjg2ODU3IDc5LjI4Njg1Ny03OS4yODY4NTdoNTE3Ljk5NzcxNGM0My43Mzk0MjkgMCA3OS4yODY4NTcgMzUuNTQ3NDI5IDc5LjI4Njg1NyA3OS4yODY4NTdWMzg4LjE2OTE0M2E1MC4xNzYgNTAuMTc2IDAgMSAwIDEwMC40MjUxNDMgMHYtMjYzLjE2OGExNzkuOTMxNDI5IDE3OS45MzE0MjkgMCAwIDAtMTc5LjcxMi0xNzkuNzEyek05MDAuNTM0ODU3IDU1Mi4zNzQ4NTdINTYwLjU2Njg1N2E1MC4xNzYgNTAuMTc2IDAgMCAwIDAgMTAwLjM1MmgzMzkuOTY4YTUwLjI0OTE0MyA1MC4yNDkxNDMgMCAwIDAgMC0xMDAuMzUyek03MzAuNTUwODU3IDM4Mi4zOTA4NTdhNTAuMTc2IDUwLjE3NiAwIDAgMC01MC4xNzYgNTAuMTc2Vjc3Mi41MzQ4NTdhNTAuMTc2IDUwLjE3NiAwIDEgMCAxMDAuMzUyIDB2LTMzOS45NjhhNTAuMjQ5MTQzIDUwLjI0OTE0MyAwIDAgMC01MC4xNzYtNTAuMTc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImN1c3RvbS1tYXAiIHVuaWNvZGU9IiYjNTkwNjc7IiBkPSJNOTM2LjU1MDQgNzgzLjM2TDc1Mi41Mzc2IDgzMC43MmEyOC4wNTc2IDI4LjA1NzYgMCAwIDEtMTkuNzYzMi0yLjIyNzJsLTIxNS42Mjg4LTExMC4wOC0xOTguNCA5Mi4yODhhMjguMDU3NiAyOC4wNTc2IDAgMCAxLTIzLjA2NTYgMC4zMDcyTDgyLjE3NiA3MTguMTgyNGMtMTEuODUyOC01LjE0NTYtMTkuNjA5Ni0xNy45Mi0xOS42MDk2LTMyLjA1MTJ2LTY1My41MTY4YzAtMTEuMzY2NCA0Ljk5Mi0yMi4wMTYgMTMuNDE0NC0yOC40MTYgOC4zOTY4LTYuNCAxOS4wOTc2LTcuNzMxMiAyOC41Njk2LTMuNjM1MmwyMDEuOTMyOCA4Ny43ODI0IDE5OS4zNDcyLTkyLjc3NDRjMy43ODg4LTEuNzQwOCA3LjgzMzYtMi42MzY4IDExLjg3ODQtMi42MzY4IDQuMzc3NiAwIDguNzU1MiAxLjA0OTYgMTIuODUxMiAzLjEyMzJsMTUuOTc0NCA4LjE2NjQtMjcuMzQwOCA2MS42OTYtMi4wNDgtMS4wNDk2LTE5OC40IDkyLjI4OGEyOC4xNiAyOC4xNiAwIDAgMS0yMy4wNjU2IDAuMzMyOEwxMjQuMjExMiA4Mi45NDRWNjYyLjYwNDhsMTgyLjI3MiA3OS4yNTc2IDE5OS4zNDcyLTkyLjc0ODhjNy45MzYtMy43MTIgMTYuODk2LTMuNTMyOCAyNC43Mjk2IDAuNDYwOGwyMTguMzQyNCAxMTEuNDYyNCAxNDkuODg4LTM4LjU1MzZ2LTU4Mi45MTJsLTI5LjAzMDQgNy40NDk2LTE0LjY2ODgtMzMuMDc1MmMtMi4zMDQtNS43ODU2LTQuODY0LTExLjUyLTcuNjAzMi0xNy4wNzUybC0wLjQ2MDgtMS4xMDA4LTUuMzc2LTEyLjEwODggODEuMDQ5Ni0yMC44Mzg0YTI4LjQxNiAyOC40MTYgMCAwIDEgMjYuMTEyIDYuNjA0OGM3LjM3MjggNi41MDI0IDExLjY0OCAxNi40MDk2IDExLjY0OCAyNi45MzEyVjc0OS44MjRjMCAxNi4wMjU2LTkuOTA3MiAyOS45MDA4LTIzLjkxMDQgMzMuNTM2ek0yODcuODIwOCA2NTMuMjg2NHYtNDE0LjcyYzAtNy42MDMyIDguNTUwNC0xMy43NDcyIDE5LjA0NjQtMTMuNzQ3MnMxOS4wNDY0IDYuMTQ0IDE5LjA0NjQgMTMuNzQ3MnY0MTQuNzJjMCA3LjYwMzItOC41NTA0IDEzLjc3MjgtMTkuMDQ2NCAxMy43NzI4cy0xOS4wNDY0LTYuMTY5Ni0xOS4wNDY0LTEzLjc3Mjh6IG0yMTAuODQxNi05MS42MjI0di0yMDguNjkxMmMwLTcuNjAzMiA4LjU1MDQtMTMuNzcyOCAxOS4wNDY0LTEzLjc3MjhzMTkuMDQ2NCA2LjE0NCAxOS4wNDY0IDEzLjc3Mjh2MjA4LjY5MTJjMCA3LjYwMzItOC41NTA0IDEzLjc5ODQtMTkuMDQ2NCAxMy43OTg0cy0xOS4wNDY0LTYuMTk1Mi0xOS4wNDY0LTEzLjc5ODR6IG0yNzAuMDgtMTMwLjk2OTZWNjgyLjcwMDhjMCA3LjYwMzItOC41MjQ4IDEzLjc3MjgtMTkuMDQ2NCAxMy43NzI4LTEwLjU0NzIgMC0xOS4wNDY0LTYuMTY5Ni0xOS4wNDY0LTE2LjYxNDR2LTI1Mi4wMzJjMC00LjczNiA4LjQ5OTItMTAuOTMxMiAxOS4wNDY0LTEwLjkzMTIgMTAuNTIxNiAwIDE5LjA3MiA2LjE5NTIgMTkuMDcyIDEzLjc3Mjh6IG0tMTc4LjUwODgtNDkwLjkwNTZsODEuNDA4IDU5LjkwNC02My44OTc2IDQ4LjQzNTItMTcuNTEwNC0xMDguMzM5MnogbTIyNC4yMzA0IDI4NS40MTQ0bC02Ni40NTc2IDUyLjk2NjQtMTMyLjk0MDgtMjExLjQwNDggNjkuMTItNTUuNDQ5NiAxMzAuMjc4NCAyMTMuODg4eiBtMzMuNDg0OCA4Ni4zNDg4cy0xNy43OTIgMTUuMjU3Ni0zNy4xMiAyNS42NzY4Yy0xOS4zMDI0IDEwLjQxOTItMzAuMTMxMi02LjE0NC0zMC4xMzEyLTYuMTQ0bC0yMy41NTItMzguMDQxNiA2OS4xNzEyLTUzLjE0NTZzMjAuMTQ3MiAzMi44MTkyIDI2LjE4ODggNDMuODUyOGM2LjA0MTYgMTEuMDU5Mi00LjU1NjggMjcuODAxNi00LjU1NjggMjcuODAxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWdlbmQtZm9sZCIgdW5pY29kZT0iJiM1OTA2ODsiIGQ9Ik01MTIgNjc2LjU3MTQyOWE2MC42MzU0MjkgNjAuNjM1NDI5IDAgMCAxLTQzLjQ0Njg1Ny0xOC40MzJsLTM3Ny40MTcxNDMtMzg2LjE5NDI4NmE2My45MjY4NTcgNjMuOTI2ODU3IDAgMCAxIDAtODguOTQxNzE0IDYwLjQ4OTE0MyA2MC40ODkxNDMgMCAwIDEgODYuOTY2ODU3IDBMNTEyIDUyNC43MjY4NTdsMzMzLjg5NzE0My0zNDEuNzIzNDI4YTYwLjQ4OTE0MyA2MC40ODkxNDMgMCAwIDEgODYuOTY2ODU3IDAgNjMuOTI2ODU3IDYzLjkyNjg1NyAwIDAgMSAwIDg4Ljk0MTcxNGwtMzc3LjQxNzE0MyAzODYuMTk0Mjg2QTYwLjU2MjI4NiA2MC41NjIyODYgMCAwIDEgNTEyIDY3Ni41NzE0Mjl6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGVnZW5kLXVuZm9sZCIgdW5pY29kZT0iJiM1OTA2OTsiIGQ9Ik01MTIgOTEuNDI4NTcxYTYwLjYzNTQyOSA2MC42MzU0MjkgMCAwIDAtNDMuNDQ2ODU3IDE4LjQzMmwtMzc3LjQxNzE0MyAzODYuMTk0Mjg2YTYzLjkyNjg1NyA2My45MjY4NTcgMCAwIDAgMCA4OC45NDE3MTQgNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMCA4Ni45NjY4NTcgMEw1MTIgMjQzLjI3MzE0M2wzMzMuODk3MTQzIDM0MS43MjM0MjhhNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMCA4Ni45NjY4NTcgMCA2My45MjY4NTcgNjMuOTI2ODU3IDAgMCAwIDAtODguOTQxNzE0bC0zNzcuNDE3MTQzLTM4Ni4xOTQyODZBNjAuNTYyMjg2IDYwLjU2MjI4NiAwIDAgMCA1MTIgOTEuNDI4NTcxeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImxlZ2VuZC1iaWciIHVuaWNvZGU9IiYjNTkwNzA7IiBkPSJNMzA3LjIgNDg2LjRoMTAyLjRWNTg4LjhIMzA3LjJ6IG0wLTE1My42aDEwMi40VjQzNS4ySDMwNy4yeiBtMC0xNTMuNmgxMDIuNHYxMDIuNEgzMDcuMnogbTE1My42IDMwNy4yaDI1NlY1ODguOEg0NjAuOHogbTMwNy4yIDMwNy4ySDI1NmExNTMuNiAxNTMuNiAwIDAgMS0xNTMuNi0xNTMuNnYtNTEyYTE1My42IDE1My42IDAgMCAxIDE1My42LTE1My42aDUxMmExNTMuNiAxNTMuNiAwIDAgMSAxNTMuNiAxNTMuNlY2NDBhMTUzLjYgMTUzLjYgMCAwIDEtMTUzLjYgMTUzLjZ6IG01MS4yLTY2NS42YTUxLjIgNTEuMiAwIDAgMC01MS4yLTUxLjJIMjU2YTUxLjIgNTEuMiAwIDAgMC01MS4yIDUxLjJWNjQwYTUxLjIgNTEuMiAwIDAgMCA1MS4yIDUxLjJoNTEyYTUxLjIgNTEuMiAwIDAgMCA1MS4yLTUxLjJ6IG0tMzU4LjQgMjA0LjhoMjU2VjQzNS4ySDQ2MC44eiBtMC0xNTMuNmgyNTZ2MTAyLjRINDYwLjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYXR0cmlidXRlIiB1bmljb2RlPSImIzU5MDcxOyIgZD0iTTEwMjQgNTExLjM0MTcxNFY3MjQuNjI2Mjg2QzEwMjQgODAzLjEwODU3MSA5NTguNDY0IDg2Ni43NDI4NTcgODc3LjcxNDI4NiA4NjYuNzQyODU3SDE0Ni4yODU3MTRDNjUuNTM2IDg2Ni43NDI4NTcgMCA4MDMuMTA4NTcxIDAgNzI0LjYyNjI4NnYtNzEwLjUwOTcxNUMwLTY0LjM2NTcxNCA2NS41MzYtMTI4IDE0Ni4yODU3MTQtMTI4aDczMS40Mjg1NzJjODAuNzQ5NzE0IDAgMTQ2LjI4NTcxNCA2My42MzQyODYgMTQ2LjI4NTcxNCAxNDIuMTE2NTcxek05NC41NzM3MTQgNzc0Ljg3NTQyOWMxMy42Nzc3MTQgMTMuMzg1MTQzIDMyLjMyOTE0MyAyMC45MTg4NTcgNTEuNzg1MTQzIDIwLjg0NTcxNGg3MzEuNTAxNzE0YzE5LjQ1NiAwIDM4LjAzNDI4Ni03LjUzMzcxNCA1MS43MTItMjAuODQ1NzE0IDEzLjc1MDg1Ny0xMy4zODUxNDMgMjEuMzU3NzE0LTMxLjQ1MTQyOSAyMS4zNTc3MTUtNTAuMzIyMjg2di0xNDIuMTg5NzE0SDczLjA2OTcxNFY3MjQuNTUzMTQzYzAgMTguODcwODU3IDcuNjggMzcuMDEwMjg2IDIxLjUwNCA1MC4zMjIyODZ6IG0zMDcuNTY1NzE1LTUxMi4yMTk0Mjl2MjQ4LjY4NTcxNGgyMTkuNzIxMTQydi0yNDguNjg1NzE0eiBtMjE5LjcyMTE0Mi03MC45NDg1NzF2LTI0OC42ODU3MTVINDAyLjEzOTQyOXYyNDguNjg1NzE1eiBtLTI5Mi43OTA4NTcgNzAuOTQ4NTcxSDczLjE0Mjg1N3YyNDguNjg1NzE0aDI1NnogbS0yMzQuNDk2LTI5OC45MzQ4NTdhNjkuNDg1NzE0IDY5LjQ4NTcxNCAwIDAgMC0yMS41MDQgNTAuMTc2VjE5MS42MzQyODZoMjU2di0yNDguNjg1NzE1SDE0Ni4zNTg4NTdhNzMuODc0Mjg2IDczLjg3NDI4NiAwIDAgMC01MS43ODUxNDMgMjAuNzcyNTcyek05NTAuODU3MTQzIDEzLjg5NzE0M2MwLTE4Ljc5NzcxNC03LjY4LTM2Ljg2NC0yMS4zNTc3MTQtNTAuMTc2cy0zMi4zMjkxNDMtMjAuNzcyNTcxLTUxLjcxMi0yMC42OTk0MjlINjk0LjkzMDI4NnYyNDguNjg1NzE1SDk1MC44NTcxNDN6IG0wIDI0OC43NTg4NTdINjk0Ljg1NzE0M3YyNDguNjg1NzE0SDk1MC44NTcxNDN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGVnZW5kLXNtYWxsIiB1bmljb2RlPSImIzU5MDcyOyIgZD0iTTI3My4zNDY4NTEgMTg1LjU2NDI3OWMtMTkuMDE3MDYxIDAtMzguMTA3MjY1LTE5LjE2MzM0Ni0zOC4xMDcyNjUtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTA3MjY1LTM4LjM5OTgzNiAzOC4xMDcyNjUgMTkuMjM2NDg5IDM4LjEwNzI2NiAzOC4zOTk4MzZjMCAyNS41OTk4OS0xMi42NTM2NiAzOC4zOTk4MzUtMzguMTA3MjY2IDM4LjM5OTgzNXogbTAgNDczLjU5Nzk3Yy0xOS4wMTcwNjEgMC0zOC4xMDcyNjUtMTkuMTYzMzQ2LTM4LjEwNzI2NS0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xMDcyNjUtMzguMzk5ODM2IDM4LjEwNzI2NSAxOS4yMzY0ODkgMzguMTA3MjY2IDM4LjM5OTgzNi0xMi42NTM2NiAzOC4zOTk4MzUtMzguMTA3MjY2IDM4LjM5OTgzNXogbTAtMjM2Ljc2MjQxNGMtMTkuMDE3MDYxIDAtMzguMTA3MjY1LTE5LjIzNjQ4OS0zOC4xMDcyNjUtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTA3MjY1LTM4LjM5OTgzNSAzOC4xMDcyNjUgMTkuMTYzMzQ2IDM4LjEwNzI2NiAzOC4zOTk4MzUtMTIuNjUzNjYgMzguMzk5ODM1LTM4LjEwNzI2NiAzOC4zOTk4MzV6TTg1OC4xMjE0ODggODk1Ljk5NzgwNmgtNjk5LjI0MjcxN0ExNTcuOTE0NzUyIDE1Ny45MTQ3NTIgMCAwIDEgMC4wMTMxNjYgNzM1Ljk2MTkyVjI1LjYwMTUzNkMwLjAxMzE2Ni01Ny42MzQ2NzkgNjkuOTM3NDM3LTEyNy45OTc4MDYgMTU4Ljk1MTkxMy0xMjcuOTk3ODA2aDcwNS41MzI5NzZhMTU3LjkxNDc1MiAxNTcuOTE0NzUyIDAgMCAxIDE1OC45Mzg3NDggMTU5Ljk2Mjc0M1Y3MzUuOTYxOTJDMTAxNy4wNjAyMzYgODI1LjU2MTUzNiA5NDcuMTM1OTY0IDg5NS45OTc4MDYgODU4LjEyMTQ4OCA4OTUuOTk3ODA2eiBtODIuNjUxMDc0LTg2NC4wMzI4NjlhNzcuNTMxMDk2IDc3LjUzMTA5NiAwIDAgMC03Ni4yODc2NzMtNzYuNzk5NjcxSDE1OC45NTE5MTNjLTQ0LjU0MzgwOSAwLTc2LjI4NzY3MyAzOC4zOTk4MzUtNzYuMjg3NjczIDc2Ljc5OTY3MVY3MzYuMDM1MDYzYzAgNDQuNzYzMjM3IDM4LjEwNzI2NSA3Ni43OTk2NzEgNzYuMjg3NjczIDc2Ljc5OTY3MWg3MDUuNTMyOTc2YzQ0LjU0MzgwOSAwIDc2LjI4NzY3My0zOC4zOTk4MzUgNzYuMjg3NjczLTc2Ljc5OTY3MXogbS0xOTcuMDQ2MDEyIDYyNy4xOTczMTJINDMyLjI4NTU5OWMtMjUuNDUzNjA1IDAtMzguMTgwNDA4LTE5LjE2MzM0Ni0zOC4xODA0MDgtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTgwNDA4LTM4LjM5OTgzNmgzMTEuNDQwOTUxYzE5LjAxNzA2MSAwIDM4LjEwNzI2NSAxOS4yMzY0ODkgMzguMTA3MjY1IDM4LjM5OTgzNnMtMTkuMDE3MDYxIDM4LjM5OTgzNS0zOC4xMDcyNjUgMzguMzk5ODM1eiBtMC0yMzYuNzYyNDE0SDQzMi4yODU1OTljLTI1LjQ1MzYwNSAwLTM4LjE4MDQwOC0xOS4yMzY0ODktMzguMTgwNDA4LTM4LjM5OTgzNXMxOS4wMTcwNjEtMzguMzk5ODM1IDM4LjE4MDQwOC0zOC4zOTk4MzVoMzExLjQ0MDk1MWMxOS4wMTcwNjEgMCAzOC4xMDcyNjUgMTkuMTYzMzQ2IDM4LjEwNzI2NSAzOC4zOTk4MzVzLTE5LjAxNzA2MSAzOC4zOTk4MzUtMzguMTA3MjY1IDM4LjM5OTgzNXogbTAtMjM2LjgzNTU1Nkg0MzIuMjg1NTk5Yy0xOS4wOTAyMDQgMC0zOC4xODA0MDgtMTkuMTYzMzQ2LTM4LjE4MDQwOC0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xODA0MDgtMzguMzk5ODM2aDMxMS40NDA5NTFjMTkuMDE3MDYxIDAgMzguMTA3MjY1IDE5LjIzNjQ4OSAzOC4xMDcyNjUgMzguMzk5ODM2IDAgMjUuNTk5ODktMTkuMDE3MDYxIDM4LjM5OTgzNS0zOC4xMDcyNjUgMzguMzk5ODM1eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImNsb3NlLWxlZ2VuZCIgdW5pY29kZT0iJiM1OTA3MzsiIGQ9Ik02NDMuMTQ1MTQzIDU4Ni44OTgyODZMNTEyIDQ1NS42OCAzODAuODU0ODU3IDU4Ni44OTgyODZsLTcxLjY4LTcxLjc1MzE0M0w0NDAuMTczNzE0IDM4NCAzMDkuMTAxNzE0IDI1Mi44NTQ4NTdsNzEuNzUzMTQzLTcxLjY4TDUxMiAzMTIuMTczNzE0bDEzMS4xNDUxNDMtMTMxLjE0NTE0MyA3MS42OCA3MS43NTMxNDNMNTgzLjgyNjI4NiAzODRsMTMxLjE0NTE0MyAxMzEuMTQ1MTQzek01MTIgODkxLjE3MjU3MUE1MDcuMDk5NDI5IDUwNy4wOTk0MjkgMCAwIDEgNC43NTQyODYgMzg0IDUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSA1MTItMTIzLjI0NTcxNCA1MDcuMDk5NDI5IDUwNy4wOTk0MjkgMCAwIDEgMTAxOS4yNDU3MTQgMzg0IDUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSA1MTIgODkxLjI0NTcxNHogbTAtOTEyLjk2OTE0MkE0MDYuMzA4NTcxIDQwNi4zMDg1NzEgMCAwIDAgMTA2LjIwMzQyOSAzODQgNDA2LjMwODU3MSA0MDYuMzA4NTcxIDAgMCAwIDUxMiA3ODkuNzk2NTcxIDQwNi4zMDg1NzEgNDA2LjMwODU3MSAwIDAgMCA5MTcuNzk2NTcxIDM4NCA0MDYuMzA4NTcxIDQwNi4zMDg1NzEgMCAwIDAgNTEyLTIxLjc5NjU3MXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmb250LWNvbG9yIiB1bmljb2RlPSImIzU5MDc0OyIgZD0iTTQ5NS44NzIgODMyTDI0NC4yMjQgMTYwaDExOS42OGw1Mi4yMjQgMTU2LjhoMjU1Ljc0NGw1Ni4zMi0xNTYuOGgxMTkuNjhMNTk2LjI4OCA4MzJINDk1Ljg3MnpNNTQ0IDY4OS4xNTJsOTIuMTYtMjc4LjUyOEg0NDcuNzQ0TDU0NCA2ODkuMjE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImJvbGQiIHVuaWNvZGU9IiYjNTkwNzU7IiBkPSJNMzg0IDM5Ny44MjRoMjA4Ljg5NmMzMC43MiAwIDU2LjMyIDguNzA0IDc2LjggMjYuMTEyIDIwLjQ4IDE3LjQwOCAzMC43MiA0Mi40OTYgMzAuNzIgNzUuMjY0IDAgMzYuODY0LTkuMjE2IDYyLjc4NC0yNy42NDggNzcuODI0LTE4LjQzMiAxNS4wNC00NS4wNTYgMjIuNTI4LTc5Ljg3MiAyMi41MjhIMzg0di0yMDEuNzI4ek0yNTYgNzA0aDM1NS4zMjhjNjUuNTM2IDAgMTE4LjA4LTE1LjA0IDE1Ny42OTYtNDUuMDU2IDM5LjYxNi0zMC4wOCA1OS4zOTItNzUuNDU2IDU5LjM5Mi0xMzYuMTkyIDAtMzYuODY0LTkuMDI0LTY4LjQ4LTI3LjEzNi05NC43Mi0xOC4xMTItMjYuMjQtNDMuODQtNDYuNTkyLTc3LjMxMi02MC45Mjh2LTIuMDQ4YzQ1LjA1Ni05LjYgNzkuMTY4LTMwLjkxMiAxMDIuNC02NHMzNC44MTYtNzQuNTYgMzQuODE2LTEyNC40MTZjMC0yOC42NzItNS4xMi01NS40ODgtMTUuMzYtODAuMzg0LTEwLjI0LTI0Ljk2LTI2LjI0LTQ2LjQtNDguMTI4LTY0LjUxMi0yMS44MjQtMTguMTEyLTQ5Ljg1Ni0zMi40NDgtODMuOTY4LTQzLjAwOC0zNC4xMTItMTAuNTYtNzQuNzUyLTE1Ljg3Mi0xMjEuODU2LTE1Ljg3MkgyNTZWNzA0eiBtMTI4LTYyNi42ODhoMjI2LjMwNGMzOC45MTIgMCA2OS4xMiAxMC4wNDggOTAuNjI0IDMwLjIwOCAyMS41MDQgMjAuMTYgMzIuMjU2IDQ4LjY0IDMyLjI1NiA4NS41MDQgMCAzNi4xNi0xMC43NTIgNjQtMzIuMjU2IDgzLjQ1Ni0yMS41MDQgMTkuNDU2LTUxLjcxMiAyOS4xODQtOTAuNjI0IDI5LjE4NEgzODR2LTIyOC4zNTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iaXRhbGljcyIgdW5pY29kZT0iJiM1OTA3NjsiIGQ9Ik02MTYuNTEyIDU3NmwtNzkuMDQtNDQ4SDcwNHYtMTI4SDI1NnYxMjhoMTUxLjQ4OGw3OS4wNCA0NDhIMzIwVjcwNGg0NDh2LTEyOEg2MTYuNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImZvbnQiIHVuaWNvZGU9IiYjNTkwNzc7IiBkPSJNODc1LjI2NCAwaC0xMDYuNjg4YTIwLjYwOCAyMC42MDggMCAwIDAtMTkuMzI4IDEzLjU2OGwtNzcuNDQgMjA2LjIwOEg0MDQuNDhsLTcyLjgzMi0yMDUuNzZhMjAuNzM2IDIwLjczNiAwIDAgMC0xOS40NTYtMTQuMDE2SDIxMi43MzZhMjAuOCAyMC44IDAgMCAwLTE3LjE1MiA5LjIxNiAyMS42OTYgMjEuNjk2IDAgMCAwLTIuMTc2IDE5LjY0OEw0NjUuMjE2IDc1NC40MzJBMjAuNjcyIDIwLjY3MiAwIDAgMCA0ODQuNjA4IDc2OGgxMDAuOTI4YzguMzIgMCAxNi01LjE4NCAxOS4yLTEzLjE4NGwyODkuNzI4LTcyNS41MDRhMjEuNDQgMjEuNDQgMCAwIDAtMS45ODQtMTkuODQgMjAuNjcyIDIwLjY3MiAwIDAgMC0xNy4yMTYtOS40NzJ6TTQ0Ni44NDggMzQwLjQxNmgxODAuMjI0bC02My4zNiAxNzIuMjI0Yy0xMC41NiAyOC44LTE5Ljk2OCA1NS4yOTYtMjguMDk2IDc5LjM2LTYuMjcyLTIyLjUyOC0xMy40NC00NC45OTItMjEuNDQtNjcuMzI4bC02Ny4zMjgtMTg0LjMyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Imp1c3RpZnktYWxpZ24iIHVuaWNvZGU9IiYjNTkwNzg7IiBkPSJNMTI4IDM4NFY1MTJoNzY4di0xMjhIMTI4eiBtMCAxOTJWNzA0aDc2OHYtMTI4SDEyOHogbTAtNTc2djEyOGg3Njh2LTEyOEgxMjh6IG03NjggMzIwdi0xMjhIMTI4VjMyMGg3Njh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibWlkZGxlLWFsaWdubWVuIiB1bmljb2RlPSImIzU5MDc5OyIgZD0iTTI1NiAzODRWNTEyaDUxMnYtMTI4SDI1NnpNMTI4IDU3NlY3MDRoNzY4di0xMjhIMTI4eiBtMC01NzZ2MTI4aDc2OHYtMTI4SDEyOHogbTY0MCAzMjB2LTEyOEgyNTZWMzIwaDUxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmb250LXNpemUiIHVuaWNvZGU9IiYjNTkwODA7IiBkPSJNMjYxLjUwNCAyOTMuNjMybDEwMy42OCAzNDIuODQ4IDEwNC4wNjQtMzQyLjg0OEgyNjEuNTA0TTQ1OC42ODggNzY4aC0xNTguMDhMNjQgMGgxMDkuNjMybDU1LjkzNiAxODIuNzg0SDUwMy42OEw1NjAuNjQgMGgxMzcuMjhMNDU4LjY4OCA3NjhtMjQ4LjU3Ni01OTAuMDhsNjAuMTYgMTYzLjg0IDYwLjIyNC0xNjMuODRoLTEyMC4zODRtMTE0LjMwNCAyNDAuMTI4aC05MS41ODRsLTczLjYtMjAzLjQ1NiAzMS44NzItMTAyLjQ2NCAwLjUxMiAxLjQ3MmgxNTguNzg0bDMzLjAyNC0xMDUuNzkySDk2MGwtMTM4LjQzMiA0MTAuMjQiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzdHJpa2VvdXQiIHVuaWNvZGU9IiYjNTkwODE7IiBkPSJNMzMyLjQ4IDM4NEMyODUuNTA0IDQyNC4xOTIgMjU2IDQ4MC40NDggMjU2IDU0NCAyNTYgNjcwLjUyOCAzNzIuOTI4IDc2OCA1MTIgNzY4czI1Ni05Ny40NzIgMjU2LTIyNGgtMTI4QzY0MCA1OTQuMTc2IDU4NC45NiA2NDAgNTEyIDY0MGMtNzIuOTYgMC0xMjgtNDUuODI0LTEyOC05NlM0MzkuMDQgNDQ4IDUxMiA0NDhjNjkuMjQ4IDAgMTMyLjkyOC0yNC4xMjggMTc5LjUyLTY0SDgzMnYtNjRoLTg4LjMyYzE1LjU1Mi0yOC44NjQgMjQuMzItNjEuMzc2IDI0LjMyLTk2IDAtMTI2LjUyOC0xMTYuOTI4LTIyNC0yNTYtMjI0cy0yNTYgOTcuNDcyLTI1NiAyMjRoMTI4YzAtNTAuMTc2IDU1LjA0LTk2IDEyOC05NiA3Mi45NiAwIDEyOCA0NS44MjQgMTI4IDk2UzU4NC45NiAzMjAgNTEyIDMyMEgyNTZWMzg0aDc2LjQ4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InRleHQtbGF5ZXIiIHVuaWNvZGU9IiYjNTkwODI7IiBkPSJNNTc2IDY0MHYtNzY4SDQ0OFY2NDBINjRWODMyaDg5NnYtMTkySDU3NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyaWdodC1hbGlnbm1lbnQiIHVuaWNvZGU9IiYjNTkwODM7IiBkPSJNMzg0IDU3NlY3MDRoNTEydi0xMjhIMzg0eiBtMTI4LTE5MlY1MTJoMzg0di0xMjhINTEyeiBtLTM4NC0zODR2MTI4aDc2OHYtMTI4SDEyOHogbTc2OCAzMjB2LTEyOEgzODRWMzIwaDUxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWZ0LWFsaWdubWVudCIgdW5pY29kZT0iJiM1OTA4NDsiIGQ9Ik0xMjggNTc2VjcwNGg1MTJ2LTEyOEgxMjh6IG0wLTE5MlY1MTJoMzg0di0xMjhIMTI4eiBtMC0zODR2MTI4aDc2OHYtMTI4SDEyOHogbTUxMiAzMjB2LTEyOEgxMjhWMzIwaDUxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ0cmFuc3BhcmVudC1iYWNrZ3JvdSIgdW5pY29kZT0iJiM1OTA4NTsiIGQ9Ik0yMjAuOCA4MzJMNjQgNjc1LjJ2LTcxLjE2OEwyOTEuOTY4IDgzMkgyMjAuODY0eiBtMTkzLjM0NCAwTDY0IDQ4MS44NTZ2LTcxLjE2OEw0ODUuMzEyIDgzMkg0MTQuMDh6IG0xOTMuMjggMEw2NCAyODguNTEydi03MS4xMDRMNjc4LjU5MiA4MzJINjA3LjQ4OHogbTE5My4zNDQgMEw2NCA5NS4yMzJ2LTcxLjE2OEw4NzEuOTM2IDgzMmgtNzEuMTY4ek05NjAgNzk1LjM5MmE0NC44IDQ0LjggMCAwIDEtOS43OTItNy4yOTZMMTAwLjY3Mi02MS40NGMtMC44MzItMC43NjgtMS4yMTYtMS43MjgtMS45Mi0yLjU2aDcwLjQ2NEw5NjAgNzI2Ljc4NFY3OTUuMzkyeiBtMC0xOTAuNzg0TDI5MS4zOTItNjRoNzEuMTY4TDk2MCA1MzMuNDRWNjA0LjYwOHogbTAtMTkzLjI4TDQ4NC43MzYtNjRoNzEuMTA0TDk2MCAzNDAuMTZWNDExLjI2NHogbTAtMTkzLjM0NEw2NzguMDE2LTY0aDcxLjE2OEw5NjAgMTQ2LjgxNnY3MS4xNjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idW5kZXJsaW5lIiB1bmljb2RlPSImIzU5MDg2OyIgZD0iTTY0MCA3MDRoMTI4di0zNTguNGMwLTExOS4yOTYtOTIuMTYtMjE3LjYtMjA4LTIxNy42aC05NkMzNDguMTYgMTI4IDI1NiAyMjYuMzA0IDI1NiAzNDUuNlY3MDRoMTI4di0zNTguNGMwLTUwLjM2OCAzNi44LTg5LjYgODAtODkuNmg5NkM2MDMuMiAyNTYgNjQwIDI5NS4yMzIgNjQwIDM0NS42VjcwNHpNMjU2IDY0aDUxMnYtNjRIMjU2djY0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InF1ZXJ5IiB1bmljb2RlPSImIzU5MDg3OyIgZD0iTTUxMiA4OTQuOTc2QzIyOS4yMjk3MTQgODk0Ljk3NiAwIDY2Ni4xODUxNDMgMCAzODRjMC0yODIuMTg1MTQzIDIyOS4yMjk3MTQtNTEwLjk3NiA1MTItNTEwLjk3NlMxMDI0IDEwMS44MTQ4NTcgMTAyNCAzODRDMTAyNCA2NjYuMTg1MTQzIDc5NC43NzAyODYgODk0Ljk3NiA1MTIgODk0Ljk3NnogbTQ5LjczNzE0My04MDUuODE0ODU3YTI1LjYgMjUuNiAwIDAgMC0yNS42LTI1LjZINDU5LjMzNzE0M2EyNS42IDI1LjYgMCAwIDAtMjUuNiAyNS42VjE2NS44MTQ4NTdhMjUuNiAyNS42IDAgMCAwIDI1LjYgMjUuNTI2ODU3aDc2LjhhMjUuNiAyNS42IDAgMCAwIDI1LjYtMjUuNnYtNzYuNTgwNTcxeiBtMTI2LjgyOTcxNCAzNTEuNjcwODU3Yy0xMC4yNC0xNC42Mjg1NzEtMzMuNjQ1NzE0LTMzLjI4LTYyLjkwMjg1Ny01Ni4wMjc0MjlsLTMyLjQwMjI4Ni0yMi4zODE3MTRjLTE1LjcyNTcxNC0xMi4xNDE3MTQtMjkuNjk2LTI2LjMzMTQyOS0zNC44MTYtNDIuNTY5MTQzYTEzMC4xOTQyODYgMTMwLjE5NDI4NiAwIDAgMS0zLjk0OTcxNC0yNC40Mjk3MTRjLTAuNTEyLTQuOTczNzE0LTQuOTAwNTcxLTE1LjA2NzQyOS0xNS4yODY4NTctMTUuMDY3NDI5aC04My4zODI4NTdjLTEzLjQ1ODI4NiAwLTE1Ljg3MiAxMC42MDU3MTQtMTUuNjUyNTcyIDE1Ljc5ODg1OCAxLjQ2Mjg1NyAzMy45MzgyODYgNC42MDggNjQuMDczMTQzIDE4LjQzMiA4MC4zMTA4NTcgMjguMDg2ODU3IDMyLjg0MTE0MyA5MS45NDA1NzEgNzMuNzI4IDkxLjk0MDU3MiA3My43MjggOS43MjggNy4zMTQyODYgMTcuNTU0Mjg2IDE1LjI4Njg1NyAyMy41NTIgMjMuOTE3NzE0IDEwLjgyNTE0MyAxNC45MjExNDMgMTkuNzQ4NTcxIDMxLjIzMiAxOS43NDg1NzEgNDkuMTUyIDAgMjAuNDgtNS45OTc3MTQgMzkuMjc3NzE0LTE4LjA2NjI4NiA1Ni4xNzM3MTQtMTIuMDY4NTcxIDE2Ljg5Ni0zNC4wODQ1NzEgMjUuMzgwNTcxLTY2LjA0OCAyNS4zODA1NzItMzEuNDUxNDI5IDAtNTMuNjg2ODU3LTEwLjQ1OTQyOS02Ni44NTI1NzEtMzEuMjMyLTkuNzI4LTE1LjM2LTE1Ljc5ODg1Ny0yOS41NDk3MTQtMTguMjg1NzE0LTQ0LjkwOTcxNS0wLjk1MDg1Ny01LjQ4NTcxNC00LjM4ODU3MS0xNi45NjkxNDMtMTYuMDkxNDI5LTE2Ljk2OTE0MkgzMjcuMTY4Yy0xNy4yNjE3MTQgMC0yMS4wNjUxNDMgMTEuMTkwODU3LTIwLjYyNjI4NiAxNi42MDM0MjggNi4yOTAyODYgNjguMDIyODU3IDMyLjkxNDI4NiAxMTQuNDY4NTcxIDgwLjAxODI4NiAxNDQuMzEwODU3IDMxLjk2MzQyOSAyMC40OCA3MS4zODc0MjkgMzAuODY2Mjg2IDExOC4xMjU3MTQgMzAuODY2Mjg2IDYxLjM2Njg1NyAwIDExMi4zNDc0MjktMTQuNjI4NTcxIDE1Mi45NDE3MTUtNDMuODg1NzE0IDQwLjU5NDI4Ni0yOS4yNTcxNDMgNjAuOTI4LTcyLjQ4NDU3MSA2MC45MjgtMTI5LjkwMTcxNSAwLTM1LjEwODU3MS0xMi40MzQyODYtNjQuODA0NTcxLTI5Ljk4ODU3Mi04OC44Njg1NzF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCg0KDQogIDwvZm9udD4NCjwvZGVmcz48L3N2Zz4NCg==#supermapol-icons) format('svg'); /* iOS 4.1- */ } [class^="supermapol-icons-"], [class*=" supermapol-icons-"] { diff --git a/dist/mapboxgl/iclient-mapboxgl.js b/dist/mapboxgl/iclient-mapboxgl.js index 8e5b93c684..b1ca24a0f6 100644 --- a/dist/mapboxgl/iclient-mapboxgl.js +++ b/dist/mapboxgl/iclient-mapboxgl.js @@ -3,7 +3,7 @@ * iclient-mapboxgl * Copyright© 2000 - 2026 SuperMap Software Co.Ltd * license: Apache-2.0 - * version: v12.1.0-r + * version: v12.1.1-dev * */ /******/ (function() { // webpackBootstrap @@ -404,8 +404,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else // removed by dead control flow -{ var mod; } + } else { var mod; } })(this, function (exports, module) { 'use strict'; @@ -1962,8 +1961,7 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof return geo; }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else // removed by dead control flow -{} + } else {} }); /***/ }), @@ -9417,7 +9415,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ UTCTIME: 23, GENERALIZEDTIME: 24, BMPSTRING: 30 - }, n.maxDepth = 256, n.create = function (e, t, r, i, s) { + }, n.create = function (e, t, r, i, s) { if (a.util.isArray(i)) { for (var o = [], c = 0; c < i.length; ++c) void 0 !== i[c] && o.push(i[c]); i = o; @@ -9468,10 +9466,9 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ strict: t, parseAllBytes: !0, decodeBitStrings: !0 - }), "strict" in t || (t.strict = !0), "parseAllBytes" in t || (t.parseAllBytes = !0), "decodeBitStrings" in t || (t.decodeBitStrings = !0), "maxDepth" in t || (t.maxDepth = n.maxDepth), "string" == typeof e && (e = a.util.createBuffer(e)); + }), "strict" in t || (t.strict = !0), "parseAllBytes" in t || (t.parseAllBytes = !0), "decodeBitStrings" in t || (t.decodeBitStrings = !0), "string" == typeof e && (e = a.util.createBuffer(e)); var r = e.length(), s = function e(t, r, a, s) { - if (a >= s.maxDepth) throw new Error("ASN.1 parsing error: Max depth exceeded."); var o; i(t, r, 2); var c = t.getByte(); @@ -9571,7 +9568,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ o = a.util.createBuffer(); o.putByte(40 * parseInt(s[0], 10) + parseInt(s[1], 10)); for (var c = 2; c < s.length; ++c) { - if (t = !0, r = [], (n = parseInt(s[c], 10)) > 4294967295) throw new Error("OID value too large; max is 32-bits."); + t = !0, r = [], n = parseInt(s[c], 10); do { i = 127 & n, n >>>= 7, t || (i |= 128), r.push(i), t = !1; } while (n > 0); @@ -9583,10 +9580,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ "string" == typeof e && (e = a.util.createBuffer(e)); var r = e.getByte(); t = Math.floor(r / 40) + "." + r % 40; - for (var n = 0; e.length() > 0;) { - if (n > 70368744177663) throw new Error("OID value too large; max is 53-bits."); - n *= 128, 128 & (r = e.getByte()) ? n += 127 & r : (t += "." + (n + r), n = 0); - } + for (var n = 0; e.length() > 0;) n <<= 7, 128 & (r = e.getByte()) ? n += 127 & r : (t += "." + (n + r), n = 0); return t; }, n.utcTimeToDate = function (e) { var t = new Date(), @@ -9653,28 +9647,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ }, n.validate = function (e, t, r, i) { var s = !1; if (e.tagClass !== t.tagClass && void 0 !== t.tagClass || e.type !== t.type && void 0 !== t.type) i && (e.tagClass !== t.tagClass && i.push("[" + t.name + '] Expected tag class "' + t.tagClass + '", got "' + e.tagClass + '"'), e.type !== t.type && i.push("[" + t.name + '] Expected type "' + t.type + '", got "' + e.type + '"'));else if (e.constructed === t.constructed || void 0 === t.constructed) { - if (s = !0, t.value && a.util.isArray(t.value)) for (var o = 0, c = 0; s && c < t.value.length; ++c) { - var u = t.value[c]; - s = !!u.optional; - var l = e.value[o]; - if (l) { - if (void 0 !== u.tagClass && void 0 !== u.type && (l.tagClass !== u.tagClass || l.type !== u.type)) { - if (u.optional) { - s = !0; - continue; - } - s = !1, i && i.push("[" + t.name + "] Tag mismatch. Expected (" + u.tagClass + "," + u.type + "), got (" + l.tagClass + "," + l.type + ")"); - break; - } - if (n.validate(l, u, r, i)) ++o, s = !0;else { - if (!u.optional) { - s = !1; - break; - } - s = !0; - } - } else u.optional || (s = !1, i && i.push("[" + t.name + '] Missing required element. Expected tag class "' + u.tagClass + '", type "' + u.type + '"')); - } + if (s = !0, t.value && a.util.isArray(t.value)) for (var o = 0, c = 0; s && c < t.value.length; ++c) s = t.value[c].optional || !1, e.value[o] && ((s = n.validate(e.value[o], t.value[c], r, i)) ? ++o : t.value[c].optional && (s = !0)), !s && i && i.push("[" + t.name + '] Tag class "' + t.tagClass + '", type "' + t.type + '" expected value length "' + t.value.length + '", got "' + e.value.length + '"'); if (s && r) if (t.capture && (r[t.capture] = e.value), t.captureAsn1 && (r[t.captureAsn1] = e), t.captureBitStringContents && "bitStringContents" in e && (r[t.captureBitStringContents] = e.bitStringContents), t.captureBitStringValue && "bitStringContents" in e) if (e.bitStringContents.length < 2) r[t.captureBitStringValue] = "";else { if (0 !== e.bitStringContents.charCodeAt(0)) throw new Error("captureBitStringValue only supported for zero unused bits"); r[t.captureBitStringValue] = e.bitStringContents.slice(1); @@ -9943,7 +9916,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ function s(e, t) { n[e] = t; } - i("1.2.840.113549.1.1.1", "rsaEncryption"), i("1.2.840.113549.1.1.4", "md5WithRSAEncryption"), i("1.2.840.113549.1.1.5", "sha1WithRSAEncryption"), i("1.2.840.113549.1.1.7", "RSAES-OAEP"), i("1.2.840.113549.1.1.8", "mgf1"), i("1.2.840.113549.1.1.9", "pSpecified"), i("1.2.840.113549.1.1.10", "RSASSA-PSS"), i("1.2.840.113549.1.1.11", "sha256WithRSAEncryption"), i("1.2.840.113549.1.1.12", "sha384WithRSAEncryption"), i("1.2.840.113549.1.1.13", "sha512WithRSAEncryption"), i("1.3.101.112", "EdDSA25519"), i("1.2.840.10040.4.3", "dsa-with-sha1"), i("1.3.14.3.2.7", "desCBC"), i("1.3.14.3.2.26", "sha1"), i("1.3.14.3.2.29", "sha1WithRSASignature"), i("2.16.840.1.101.3.4.2.1", "sha256"), i("2.16.840.1.101.3.4.2.2", "sha384"), i("2.16.840.1.101.3.4.2.3", "sha512"), i("2.16.840.1.101.3.4.2.4", "sha224"), i("2.16.840.1.101.3.4.2.5", "sha512-224"), i("2.16.840.1.101.3.4.2.6", "sha512-256"), i("1.2.840.113549.2.2", "md2"), i("1.2.840.113549.2.5", "md5"), i("1.2.840.113549.1.7.1", "data"), i("1.2.840.113549.1.7.2", "signedData"), i("1.2.840.113549.1.7.3", "envelopedData"), i("1.2.840.113549.1.7.4", "signedAndEnvelopedData"), i("1.2.840.113549.1.7.5", "digestedData"), i("1.2.840.113549.1.7.6", "encryptedData"), i("1.2.840.113549.1.9.1", "emailAddress"), i("1.2.840.113549.1.9.2", "unstructuredName"), i("1.2.840.113549.1.9.3", "contentType"), i("1.2.840.113549.1.9.4", "messageDigest"), i("1.2.840.113549.1.9.5", "signingTime"), i("1.2.840.113549.1.9.6", "counterSignature"), i("1.2.840.113549.1.9.7", "challengePassword"), i("1.2.840.113549.1.9.8", "unstructuredAddress"), i("1.2.840.113549.1.9.14", "extensionRequest"), i("1.2.840.113549.1.9.20", "friendlyName"), i("1.2.840.113549.1.9.21", "localKeyId"), i("1.2.840.113549.1.9.22.1", "x509Certificate"), i("1.2.840.113549.1.12.10.1.1", "keyBag"), i("1.2.840.113549.1.12.10.1.2", "pkcs8ShroudedKeyBag"), i("1.2.840.113549.1.12.10.1.3", "certBag"), i("1.2.840.113549.1.12.10.1.4", "crlBag"), i("1.2.840.113549.1.12.10.1.5", "secretBag"), i("1.2.840.113549.1.12.10.1.6", "safeContentsBag"), i("1.2.840.113549.1.5.13", "pkcs5PBES2"), i("1.2.840.113549.1.5.12", "pkcs5PBKDF2"), i("1.2.840.113549.1.12.1.1", "pbeWithSHAAnd128BitRC4"), i("1.2.840.113549.1.12.1.2", "pbeWithSHAAnd40BitRC4"), i("1.2.840.113549.1.12.1.3", "pbeWithSHAAnd3-KeyTripleDES-CBC"), i("1.2.840.113549.1.12.1.4", "pbeWithSHAAnd2-KeyTripleDES-CBC"), i("1.2.840.113549.1.12.1.5", "pbeWithSHAAnd128BitRC2-CBC"), i("1.2.840.113549.1.12.1.6", "pbewithSHAAnd40BitRC2-CBC"), i("1.2.840.113549.2.7", "hmacWithSHA1"), i("1.2.840.113549.2.8", "hmacWithSHA224"), i("1.2.840.113549.2.9", "hmacWithSHA256"), i("1.2.840.113549.2.10", "hmacWithSHA384"), i("1.2.840.113549.2.11", "hmacWithSHA512"), i("1.2.840.113549.3.7", "des-EDE3-CBC"), i("2.16.840.1.101.3.4.1.2", "aes128-CBC"), i("2.16.840.1.101.3.4.1.22", "aes192-CBC"), i("2.16.840.1.101.3.4.1.42", "aes256-CBC"), i("2.5.4.3", "commonName"), i("2.5.4.4", "surname"), i("2.5.4.5", "serialNumber"), i("2.5.4.6", "countryName"), i("2.5.4.7", "localityName"), i("2.5.4.8", "stateOrProvinceName"), i("2.5.4.9", "streetAddress"), i("2.5.4.10", "organizationName"), i("2.5.4.11", "organizationalUnitName"), i("2.5.4.12", "title"), i("2.5.4.13", "description"), i("2.5.4.15", "businessCategory"), i("2.5.4.17", "postalCode"), i("2.5.4.42", "givenName"), i("2.5.4.65", "pseudonym"), i("1.3.6.1.4.1.311.60.2.1.2", "jurisdictionOfIncorporationStateOrProvinceName"), i("1.3.6.1.4.1.311.60.2.1.3", "jurisdictionOfIncorporationCountryName"), i("2.16.840.1.113730.1.1", "nsCertType"), i("2.16.840.1.113730.1.13", "nsComment"), s("2.5.29.1", "authorityKeyIdentifier"), s("2.5.29.2", "keyAttributes"), s("2.5.29.3", "certificatePolicies"), s("2.5.29.4", "keyUsageRestriction"), s("2.5.29.5", "policyMapping"), s("2.5.29.6", "subtreesConstraint"), s("2.5.29.7", "subjectAltName"), s("2.5.29.8", "issuerAltName"), s("2.5.29.9", "subjectDirectoryAttributes"), s("2.5.29.10", "basicConstraints"), s("2.5.29.11", "nameConstraints"), s("2.5.29.12", "policyConstraints"), s("2.5.29.13", "basicConstraints"), i("2.5.29.14", "subjectKeyIdentifier"), i("2.5.29.15", "keyUsage"), s("2.5.29.16", "privateKeyUsagePeriod"), i("2.5.29.17", "subjectAltName"), i("2.5.29.18", "issuerAltName"), i("2.5.29.19", "basicConstraints"), s("2.5.29.20", "cRLNumber"), s("2.5.29.21", "cRLReason"), s("2.5.29.22", "expirationDate"), s("2.5.29.23", "instructionCode"), s("2.5.29.24", "invalidityDate"), s("2.5.29.25", "cRLDistributionPoints"), s("2.5.29.26", "issuingDistributionPoint"), s("2.5.29.27", "deltaCRLIndicator"), s("2.5.29.28", "issuingDistributionPoint"), s("2.5.29.29", "certificateIssuer"), s("2.5.29.30", "nameConstraints"), i("2.5.29.31", "cRLDistributionPoints"), i("2.5.29.32", "certificatePolicies"), s("2.5.29.33", "policyMappings"), s("2.5.29.34", "policyConstraints"), i("2.5.29.35", "authorityKeyIdentifier"), s("2.5.29.36", "policyConstraints"), i("2.5.29.37", "extKeyUsage"), s("2.5.29.46", "freshestCRL"), s("2.5.29.54", "inhibitAnyPolicy"), i("1.3.6.1.4.1.11129.2.4.2", "timestampList"), i("1.3.6.1.5.5.7.1.1", "authorityInfoAccess"), i("1.3.6.1.5.5.7.3.1", "serverAuth"), i("1.3.6.1.5.5.7.3.2", "clientAuth"), i("1.3.6.1.5.5.7.3.3", "codeSigning"), i("1.3.6.1.5.5.7.3.4", "emailProtection"), i("1.3.6.1.5.5.7.3.8", "timeStamping"); + i("1.2.840.113549.1.1.1", "rsaEncryption"), i("1.2.840.113549.1.1.4", "md5WithRSAEncryption"), i("1.2.840.113549.1.1.5", "sha1WithRSAEncryption"), i("1.2.840.113549.1.1.7", "RSAES-OAEP"), i("1.2.840.113549.1.1.8", "mgf1"), i("1.2.840.113549.1.1.9", "pSpecified"), i("1.2.840.113549.1.1.10", "RSASSA-PSS"), i("1.2.840.113549.1.1.11", "sha256WithRSAEncryption"), i("1.2.840.113549.1.1.12", "sha384WithRSAEncryption"), i("1.2.840.113549.1.1.13", "sha512WithRSAEncryption"), i("1.3.101.112", "EdDSA25519"), i("1.2.840.10040.4.3", "dsa-with-sha1"), i("1.3.14.3.2.7", "desCBC"), i("1.3.14.3.2.26", "sha1"), i("1.3.14.3.2.29", "sha1WithRSASignature"), i("2.16.840.1.101.3.4.2.1", "sha256"), i("2.16.840.1.101.3.4.2.2", "sha384"), i("2.16.840.1.101.3.4.2.3", "sha512"), i("2.16.840.1.101.3.4.2.4", "sha224"), i("2.16.840.1.101.3.4.2.5", "sha512-224"), i("2.16.840.1.101.3.4.2.6", "sha512-256"), i("1.2.840.113549.2.2", "md2"), i("1.2.840.113549.2.5", "md5"), i("1.2.840.113549.1.7.1", "data"), i("1.2.840.113549.1.7.2", "signedData"), i("1.2.840.113549.1.7.3", "envelopedData"), i("1.2.840.113549.1.7.4", "signedAndEnvelopedData"), i("1.2.840.113549.1.7.5", "digestedData"), i("1.2.840.113549.1.7.6", "encryptedData"), i("1.2.840.113549.1.9.1", "emailAddress"), i("1.2.840.113549.1.9.2", "unstructuredName"), i("1.2.840.113549.1.9.3", "contentType"), i("1.2.840.113549.1.9.4", "messageDigest"), i("1.2.840.113549.1.9.5", "signingTime"), i("1.2.840.113549.1.9.6", "counterSignature"), i("1.2.840.113549.1.9.7", "challengePassword"), i("1.2.840.113549.1.9.8", "unstructuredAddress"), i("1.2.840.113549.1.9.14", "extensionRequest"), i("1.2.840.113549.1.9.20", "friendlyName"), i("1.2.840.113549.1.9.21", "localKeyId"), i("1.2.840.113549.1.9.22.1", "x509Certificate"), i("1.2.840.113549.1.12.10.1.1", "keyBag"), i("1.2.840.113549.1.12.10.1.2", "pkcs8ShroudedKeyBag"), i("1.2.840.113549.1.12.10.1.3", "certBag"), i("1.2.840.113549.1.12.10.1.4", "crlBag"), i("1.2.840.113549.1.12.10.1.5", "secretBag"), i("1.2.840.113549.1.12.10.1.6", "safeContentsBag"), i("1.2.840.113549.1.5.13", "pkcs5PBES2"), i("1.2.840.113549.1.5.12", "pkcs5PBKDF2"), i("1.2.840.113549.1.12.1.1", "pbeWithSHAAnd128BitRC4"), i("1.2.840.113549.1.12.1.2", "pbeWithSHAAnd40BitRC4"), i("1.2.840.113549.1.12.1.3", "pbeWithSHAAnd3-KeyTripleDES-CBC"), i("1.2.840.113549.1.12.1.4", "pbeWithSHAAnd2-KeyTripleDES-CBC"), i("1.2.840.113549.1.12.1.5", "pbeWithSHAAnd128BitRC2-CBC"), i("1.2.840.113549.1.12.1.6", "pbewithSHAAnd40BitRC2-CBC"), i("1.2.840.113549.2.7", "hmacWithSHA1"), i("1.2.840.113549.2.8", "hmacWithSHA224"), i("1.2.840.113549.2.9", "hmacWithSHA256"), i("1.2.840.113549.2.10", "hmacWithSHA384"), i("1.2.840.113549.2.11", "hmacWithSHA512"), i("1.2.840.113549.3.7", "des-EDE3-CBC"), i("2.16.840.1.101.3.4.1.2", "aes128-CBC"), i("2.16.840.1.101.3.4.1.22", "aes192-CBC"), i("2.16.840.1.101.3.4.1.42", "aes256-CBC"), i("2.5.4.3", "commonName"), i("2.5.4.4", "surname"), i("2.5.4.5", "serialNumber"), i("2.5.4.6", "countryName"), i("2.5.4.7", "localityName"), i("2.5.4.8", "stateOrProvinceName"), i("2.5.4.9", "streetAddress"), i("2.5.4.10", "organizationName"), i("2.5.4.11", "organizationalUnitName"), i("2.5.4.12", "title"), i("2.5.4.13", "description"), i("2.5.4.15", "businessCategory"), i("2.5.4.17", "postalCode"), i("2.5.4.42", "givenName"), i("1.3.6.1.4.1.311.60.2.1.2", "jurisdictionOfIncorporationStateOrProvinceName"), i("1.3.6.1.4.1.311.60.2.1.3", "jurisdictionOfIncorporationCountryName"), i("2.16.840.1.113730.1.1", "nsCertType"), i("2.16.840.1.113730.1.13", "nsComment"), s("2.5.29.1", "authorityKeyIdentifier"), s("2.5.29.2", "keyAttributes"), s("2.5.29.3", "certificatePolicies"), s("2.5.29.4", "keyUsageRestriction"), s("2.5.29.5", "policyMapping"), s("2.5.29.6", "subtreesConstraint"), s("2.5.29.7", "subjectAltName"), s("2.5.29.8", "issuerAltName"), s("2.5.29.9", "subjectDirectoryAttributes"), s("2.5.29.10", "basicConstraints"), s("2.5.29.11", "nameConstraints"), s("2.5.29.12", "policyConstraints"), s("2.5.29.13", "basicConstraints"), i("2.5.29.14", "subjectKeyIdentifier"), i("2.5.29.15", "keyUsage"), s("2.5.29.16", "privateKeyUsagePeriod"), i("2.5.29.17", "subjectAltName"), i("2.5.29.18", "issuerAltName"), i("2.5.29.19", "basicConstraints"), s("2.5.29.20", "cRLNumber"), s("2.5.29.21", "cRLReason"), s("2.5.29.22", "expirationDate"), s("2.5.29.23", "instructionCode"), s("2.5.29.24", "invalidityDate"), s("2.5.29.25", "cRLDistributionPoints"), s("2.5.29.26", "issuingDistributionPoint"), s("2.5.29.27", "deltaCRLIndicator"), s("2.5.29.28", "issuingDistributionPoint"), s("2.5.29.29", "certificateIssuer"), s("2.5.29.30", "nameConstraints"), i("2.5.29.31", "cRLDistributionPoints"), i("2.5.29.32", "certificatePolicies"), s("2.5.29.33", "policyMappings"), s("2.5.29.34", "policyConstraints"), i("2.5.29.35", "authorityKeyIdentifier"), s("2.5.29.36", "policyConstraints"), i("2.5.29.37", "extKeyUsage"), s("2.5.29.46", "freshestCRL"), s("2.5.29.54", "inhibitAnyPolicy"), i("1.3.6.1.4.1.11129.2.4.2", "timestampList"), i("1.3.6.1.5.5.7.1.1", "authorityInfoAccess"), i("1.3.6.1.5.5.7.3.1", "serverAuth"), i("1.3.6.1.5.5.7.3.2", "clientAuth"), i("1.3.6.1.5.5.7.3.3", "codeSigning"), i("1.3.6.1.5.5.7.3.4", "emailProtection"), i("1.3.6.1.5.5.7.3.8", "timeStamping"); }, function (e, t, r) { var a = r(0); r(1); @@ -10474,37 +10447,31 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ } return n.putByte(0), n.putBytes(e), n; } - function m(e, t, r, n, i) { - var s = Math.ceil(t.n.bitLength() / 8), - o = a.util.createBuffer(e), - c = o.getByte(), - u = o.getByte(); - if (0 !== c || r && 0 !== u && 1 !== u || !r && 2 !== u || r && 0 === u && void 0 === n) throw new Error("Encryption block is invalid."); - var l = 0; - if (0 === u) { - l = s - 3 - n; - for (var p = 0; p < l; ++p) if (0 !== o.getByte()) throw new Error("Encryption block is invalid."); - } else if (1 === u) { - for (l = 0; o.length() > 1;) { - if (255 !== o.getByte()) { - --o.read; - break; - } - ++l; + function m(e, t, r, n) { + var i = Math.ceil(t.n.bitLength() / 8), + s = a.util.createBuffer(e), + o = s.getByte(), + c = s.getByte(); + if (0 !== o || r && 0 !== c && 1 !== c || !r && 2 != c || r && 0 === c && void 0 === n) throw new Error("Encryption block is invalid."); + var u = 0; + if (0 === c) { + u = i - 3 - n; + for (var l = 0; l < u; ++l) if (0 !== s.getByte()) throw new Error("Encryption block is invalid."); + } else if (1 === c) for (u = 0; s.length() > 1;) { + if (255 !== s.getByte()) { + --s.read; + break; } - if (l < 8 && (!i || !i._skipPaddingChecks)) throw new Error("Encryption block is invalid."); - } else if (2 === u) { - for (l = 0; o.length() > 1;) { - if (0 === o.getByte()) { - --o.read; - break; - } - ++l; + ++u; + } else if (2 === c) for (u = 0; s.length() > 1;) { + if (0 === s.getByte()) { + --s.read; + break; } - if (l < 8 && (!i || !i._skipPaddingChecks)) throw new Error("Encryption block is invalid."); + ++u; } - if (0 !== o.getByte() || l !== s - 3 - o.length()) throw new Error("Encryption block is invalid."); - return o.getBytes(); + if (0 !== s.getByte() || u !== i - 3 - s.length()) throw new Error("Encryption block is invalid."); + return s.getBytes(); } function C(e, t, r) { "function" == typeof t && (r = t, t = {}); @@ -10740,26 +10707,25 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ }, verify: function verify(e, t, n, i) { "string" == typeof n ? n = n.toUpperCase() : void 0 === n && (n = "RSASSA-PKCS1-V1_5"), void 0 === i && (i = { - _parseAllDigestBytes: !0, - _skipPaddingChecks: !1 - }), "_parseAllDigestBytes" in i || (i._parseAllDigestBytes = !0), "_skipPaddingChecks" in i || (i._skipPaddingChecks = !1), "RSASSA-PKCS1-V1_5" === n ? n = { + _parseAllDigestBytes: !0 + }), "_parseAllDigestBytes" in i || (i._parseAllDigestBytes = !0), "RSASSA-PKCS1-V1_5" === n ? n = { verify: function verify(e, t) { - t = m(t, r, !0, void 0, i); + t = m(t, r, !0); var n = s.fromDer(t, { parseAllBytes: i._parseAllDigestBytes }), o = {}, c = []; - if (!s.validate(n, d, o, c) || 2 !== n.value.length) throw (u = new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.")).errors = c, u; + if (!s.validate(n, d, o, c)) throw (u = new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.")).errors = c, u; var u, l = s.derToOid(o.algorithmIdentifier); if (l !== a.oids.md2 && l !== a.oids.md5 && l !== a.oids.sha1 && l !== a.oids.sha224 && l !== a.oids.sha256 && l !== a.oids.sha384 && l !== a.oids.sha512 && l !== a.oids["sha512-224"] && l !== a.oids["sha512-256"]) throw (u = new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.")).oid = l, u; - if ((l === a.oids.md2 || l === a.oids.md5) && !("parameters" in o)) throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifier NULL parameters."); + if ((l === a.oids.md2 || l === a.oids.md5) && !("parameters" in o)) throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters."); return e === o.digest; } } : "NONE" !== n && "NULL" !== n && null !== n || (n = { verify: function verify(e, t) { - return e === (t = m(t, r, !0, void 0, i)); + return e === (t = m(t, r, !0)); } }); var o = c.rsa.decrypt(t, r, !0, !1); @@ -11141,7 +11107,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ }, B.prototype.sqrTo = function (e, t) { e.squareTo(t), this.reduce(t); }; - var b = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997], + var b = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509], N = (1 << 26) / b[b.length - 1]; i.prototype.chunkSize = function (e) { return Math.floor(Math.LN2 * this.DB / Math.log(e)); @@ -11359,7 +11325,6 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ } return a.revert(i); }, i.prototype.modInverse = function (e) { - if (0 == this.signum()) return i.ZERO; var t = e.isEven(); if (this.isEven() && t || 0 == e.signum()) return i.ZERO; for (var r = e.clone(), a = this.clone(), n = h(1), s = h(0), o = h(0), c = h(1); 0 != r.signum();) { @@ -11395,9 +11360,6 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ for (a = r.modInt(a); t < n;) if (a % b[t++] == 0) return !1; } return r.millerRabin(e); - }, i.prototype.square = function () { - var e = s(); - return this.squareTo(e), e; }; }, function (e, t, r) { var a = r(0); @@ -12552,10 +12514,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ if (null !== C && (C.keyCertSign && null !== m || (c = { message: "Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.", error: i.certificateError.bad_certificate - })), null === c && null === m && (c = { - message: "Certificate is missing basicConstraints extension and cannot be used as a CA.", - error: i.certificateError.bad_certificate - }), null !== c || null === m || m.cA || (c = { + })), null !== c || null === m || m.cA || (c = { message: "Certificate basicConstraints indicates the certificate is not a CA.", error: i.certificateError.bad_certificate }), null === c && null !== C && "pathLenConstraint" in m) u - 1 > m.pathLenConstraint && (c = { @@ -13535,15 +13494,15 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ w = u.handleHeartbeat, _ = []; _[u.ConnectionEnd.client] = [[A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [B, b, A, A, w], [A, b, N, A, w], [A, b, N, R, w], [A, b, N, A, w]], _[u.ConnectionEnd.server] = [[A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [A, b, N, A, w], [B, b, A, A, w], [A, b, N, A, w], [A, b, N, R, w], [A, b, N, A, w]]; - var k = u.handleHelloRequest, - L = u.handleServerHello, + var L = u.handleHelloRequest, + k = u.handleServerHello, U = u.handleCertificate, D = u.handleServerKeyExchange, P = u.handleCertificateRequest, V = u.handleServerHelloDone, O = u.handleFinished, K = []; - K[u.ConnectionEnd.client] = [[A, A, L, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [k, A, A, A, A, A, A, A, A, A, A, U, D, P, V, A, A, A, A, A, A], [k, A, A, A, A, A, A, A, A, A, A, A, D, P, V, A, A, A, A, A, A], [k, A, A, A, A, A, A, A, A, A, A, A, A, P, V, A, A, A, A, A, A], [k, A, A, A, A, A, A, A, A, A, A, A, A, A, V, A, A, A, A, A, A], [k, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [k, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, O], [k, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [k, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A]]; + K[u.ConnectionEnd.client] = [[A, A, k, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [L, A, A, A, A, A, A, A, A, A, A, U, D, P, V, A, A, A, A, A, A], [L, A, A, A, A, A, A, A, A, A, A, A, D, P, V, A, A, A, A, A, A], [L, A, A, A, A, A, A, A, A, A, A, A, A, P, V, A, A, A, A, A, A], [L, A, A, A, A, A, A, A, A, A, A, A, A, A, V, A, A, A, A, A, A], [L, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [L, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, O], [L, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A], [L, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A, A]]; var x = u.handleClientHello, M = u.handleClientKeyExchange, F = u.handleCertificateVerify; @@ -15049,7 +15008,6 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ capture: "macAlgorithm" }, { name: "PFX.macData.mac.digestAlgorithm.parameters", - optional: !0, tagClass: n.Class.UNIVERSAL, captureAsn1: "macAlgorithmParameters" }] @@ -15288,7 +15246,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ T = s.generateKey(r, E, 3, S, m, v), I = a.hmac.create(); if (I.start(v, T), I.update(g.value), I.getMac().getBytes() !== u.macDigest) throw new Error("PKCS#12 MAC could not be verified. Invalid password?"); - } else if (Array.isArray(e.value) && e.value.length > 2) throw new Error("Invalid PKCS#12. macData field present but MAC was not validated."); + } return function (e, t, r, a) { if ((t = n.fromDer(t, r)).tagClass !== n.Class.UNIVERSAL || t.type !== n.Type.SEQUENCE || !0 !== t.constructed) throw new Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo"); for (var s = 0; s < t.value.length; s++) { @@ -15357,8 +15315,8 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ w = o.count, _ = (e = s.generateKey(r, R, 3, w, 20), a.hmac.create()); _.start(N, e), _.update(n.toDer(b).getBytes()); - var k = _.getMac(); - B = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.sha1).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")]), n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, k.getBytes())]), n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, R.getBytes()), n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(w).getBytes())]); + var L = _.getMac(); + B = n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.sha1).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.NULL, !1, "")]), n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, L.getBytes())]), n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, R.getBytes()), n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(w).getBytes())]); } return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(3).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(i.oids.data).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, n.toDer(b).getBytes())])]), B]); }, s.generateKey = a.pbe.generatePkcs12Key; @@ -15708,11 +15666,11 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ c = null, u = null; function l(e, t, r) { - for (var a, n, i, s, o, u, l, p, f, h, d, y, g, v, m, C, E, S, T, I, A, B, b, N, R, w, _, k, L, U, D, P, V, O = r.length(); O >= 128;) { + for (var a, n, i, s, o, u, l, p, f, h, d, y, g, v, m, C, E, S, T, I, A, B, b, N, R, w, _, L, k, U, D, P, V, O = r.length(); O >= 128;) { for (_ = 0; _ < 16; ++_) t[_][0] = r.getInt32() >>> 0, t[_][1] = r.getInt32() >>> 0; - for (; _ < 80; ++_) a = (((k = (U = t[_ - 2])[0]) >>> 19 | (L = U[1]) << 13) ^ (L >>> 29 | k << 3) ^ k >>> 6) >>> 0, n = ((k << 13 | L >>> 19) ^ (L << 3 | k >>> 29) ^ (k << 26 | L >>> 6)) >>> 0, i = (((k = (P = t[_ - 15])[0]) >>> 1 | (L = P[1]) << 31) ^ (k >>> 8 | L << 24) ^ k >>> 7) >>> 0, s = ((k << 31 | L >>> 1) ^ (k << 24 | L >>> 8) ^ (k << 25 | L >>> 7)) >>> 0, D = t[_ - 7], V = t[_ - 16], L = n + D[1] + s + V[1], t[_][0] = a + D[0] + i + V[0] + (L / 4294967296 >>> 0) >>> 0, t[_][1] = L >>> 0; - for (d = e[0][0], y = e[0][1], g = e[1][0], v = e[1][1], m = e[2][0], C = e[2][1], E = e[3][0], S = e[3][1], T = e[4][0], I = e[4][1], A = e[5][0], B = e[5][1], b = e[6][0], N = e[6][1], R = e[7][0], w = e[7][1], _ = 0; _ < 80; ++_) l = ((T >>> 14 | I << 18) ^ (T >>> 18 | I << 14) ^ (I >>> 9 | T << 23)) >>> 0, p = (b ^ T & (A ^ b)) >>> 0, o = ((d >>> 28 | y << 4) ^ (y >>> 2 | d << 30) ^ (y >>> 7 | d << 25)) >>> 0, u = ((d << 4 | y >>> 28) ^ (y << 30 | d >>> 2) ^ (y << 25 | d >>> 7)) >>> 0, f = (d & g | m & (d ^ g)) >>> 0, h = (y & v | C & (y ^ v)) >>> 0, L = w + (((T << 18 | I >>> 14) ^ (T << 14 | I >>> 18) ^ (I << 23 | T >>> 9)) >>> 0) + ((N ^ I & (B ^ N)) >>> 0) + c[_][1] + t[_][1], a = R + l + p + c[_][0] + t[_][0] + (L / 4294967296 >>> 0) >>> 0, n = L >>> 0, i = o + f + ((L = u + h) / 4294967296 >>> 0) >>> 0, s = L >>> 0, R = b, w = N, b = A, N = B, A = T, B = I, T = E + a + ((L = S + n) / 4294967296 >>> 0) >>> 0, I = L >>> 0, E = m, S = C, m = g, C = v, g = d, v = y, d = a + i + ((L = n + s) / 4294967296 >>> 0) >>> 0, y = L >>> 0; - L = e[0][1] + y, e[0][0] = e[0][0] + d + (L / 4294967296 >>> 0) >>> 0, e[0][1] = L >>> 0, L = e[1][1] + v, e[1][0] = e[1][0] + g + (L / 4294967296 >>> 0) >>> 0, e[1][1] = L >>> 0, L = e[2][1] + C, e[2][0] = e[2][0] + m + (L / 4294967296 >>> 0) >>> 0, e[2][1] = L >>> 0, L = e[3][1] + S, e[3][0] = e[3][0] + E + (L / 4294967296 >>> 0) >>> 0, e[3][1] = L >>> 0, L = e[4][1] + I, e[4][0] = e[4][0] + T + (L / 4294967296 >>> 0) >>> 0, e[4][1] = L >>> 0, L = e[5][1] + B, e[5][0] = e[5][0] + A + (L / 4294967296 >>> 0) >>> 0, e[5][1] = L >>> 0, L = e[6][1] + N, e[6][0] = e[6][0] + b + (L / 4294967296 >>> 0) >>> 0, e[6][1] = L >>> 0, L = e[7][1] + w, e[7][0] = e[7][0] + R + (L / 4294967296 >>> 0) >>> 0, e[7][1] = L >>> 0, O -= 128; + for (; _ < 80; ++_) a = (((L = (U = t[_ - 2])[0]) >>> 19 | (k = U[1]) << 13) ^ (k >>> 29 | L << 3) ^ L >>> 6) >>> 0, n = ((L << 13 | k >>> 19) ^ (k << 3 | L >>> 29) ^ (L << 26 | k >>> 6)) >>> 0, i = (((L = (P = t[_ - 15])[0]) >>> 1 | (k = P[1]) << 31) ^ (L >>> 8 | k << 24) ^ L >>> 7) >>> 0, s = ((L << 31 | k >>> 1) ^ (L << 24 | k >>> 8) ^ (L << 25 | k >>> 7)) >>> 0, D = t[_ - 7], V = t[_ - 16], k = n + D[1] + s + V[1], t[_][0] = a + D[0] + i + V[0] + (k / 4294967296 >>> 0) >>> 0, t[_][1] = k >>> 0; + for (d = e[0][0], y = e[0][1], g = e[1][0], v = e[1][1], m = e[2][0], C = e[2][1], E = e[3][0], S = e[3][1], T = e[4][0], I = e[4][1], A = e[5][0], B = e[5][1], b = e[6][0], N = e[6][1], R = e[7][0], w = e[7][1], _ = 0; _ < 80; ++_) l = ((T >>> 14 | I << 18) ^ (T >>> 18 | I << 14) ^ (I >>> 9 | T << 23)) >>> 0, p = (b ^ T & (A ^ b)) >>> 0, o = ((d >>> 28 | y << 4) ^ (y >>> 2 | d << 30) ^ (y >>> 7 | d << 25)) >>> 0, u = ((d << 4 | y >>> 28) ^ (y << 30 | d >>> 2) ^ (y << 25 | d >>> 7)) >>> 0, f = (d & g | m & (d ^ g)) >>> 0, h = (y & v | C & (y ^ v)) >>> 0, k = w + (((T << 18 | I >>> 14) ^ (T << 14 | I >>> 18) ^ (I << 23 | T >>> 9)) >>> 0) + ((N ^ I & (B ^ N)) >>> 0) + c[_][1] + t[_][1], a = R + l + p + c[_][0] + t[_][0] + (k / 4294967296 >>> 0) >>> 0, n = k >>> 0, i = o + f + ((k = u + h) / 4294967296 >>> 0) >>> 0, s = k >>> 0, R = b, w = N, b = A, N = B, A = T, B = I, T = E + a + ((k = S + n) / 4294967296 >>> 0) >>> 0, I = k >>> 0, E = m, S = C, m = g, C = v, g = d, v = y, d = a + i + ((k = n + s) / 4294967296 >>> 0) >>> 0, y = k >>> 0; + k = e[0][1] + y, e[0][0] = e[0][0] + d + (k / 4294967296 >>> 0) >>> 0, e[0][1] = k >>> 0, k = e[1][1] + v, e[1][0] = e[1][0] + g + (k / 4294967296 >>> 0) >>> 0, e[1][1] = k >>> 0, k = e[2][1] + C, e[2][0] = e[2][0] + m + (k / 4294967296 >>> 0) >>> 0, e[2][1] = k >>> 0, k = e[3][1] + S, e[3][0] = e[3][0] + E + (k / 4294967296 >>> 0) >>> 0, e[3][1] = k >>> 0, k = e[4][1] + I, e[4][0] = e[4][0] + T + (k / 4294967296 >>> 0) >>> 0, e[4][1] = k >>> 0, k = e[5][1] + B, e[5][0] = e[5][0] + A + (k / 4294967296 >>> 0) >>> 0, e[5][1] = k >>> 0, k = e[6][1] + N, e[6][0] = e[6][0] + b + (k / 4294967296 >>> 0) >>> 0, e[6][1] = k >>> 0, k = e[7][1] + w, e[7][0] = e[7][0] + R + (k / 4294967296 >>> 0) >>> 0, e[7][1] = k >>> 0, O -= 128; } } }, function (e, t, r) { @@ -15907,7 +15865,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ var r, a = [P(), P(), P(), P()], n = E(t, 32); - for (n[0] &= 248, n[31] &= 127, n[31] |= 64, k(a, n), B(e, a), r = 0; r < 32; ++r) t[r + 32] = e[r]; + for (n[0] &= 248, n[31] &= 127, n[31] |= 64, L(a, n), B(e, a), r = 0; r < 32; ++r) t[r + 32] = e[r]; }(r, n), { publicKey: r, privateKey: n @@ -15974,7 +15932,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ for (n = 0; n < r; ++n) e[64 + n] = t[n]; for (n = 0; n < 32; ++n) e[32 + n] = c[32 + n]; var l = E(e.subarray(32), r + 32); - for (T(l), k(o, l), B(e, o), n = 32; n < 64; ++n) e[n] = a[n]; + for (T(l), L(o, l), B(e, o), n = 32; n < 64; ++n) e[n] = a[n]; var p = E(e, r + 64); for (T(p), n = 32; n < 64; ++n) s[n] = 0; for (n = 0; n < 32; ++n) s[n] = l[n]; @@ -16015,7 +15973,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ s = P(), o = P(), c = P(); - L(e[2], h), function (e, t) { + k(e[2], h), function (e, t) { var r; for (r = 0; r < 16; ++r) e[r] = t[2 * r] + (t[2 * r + 1] << 8); e[15] &= 32767; @@ -16030,18 +15988,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ w(e[0]) === t[31] >> 7 && O(e[0], f, e[0]); return x(e[3], e[0], e[1]), 0; }(o, a)) return -1; - if (!function (e, t) { - var r; - for (r = 31; r >= 0; --r) { - if (e[t + r] < m[r]) return !0; - if (e[t + r] > m[r]) return !1; - } - return !1; - }(t, 32)) return -1; for (n = 0; n < r; ++n) e[n] = t[n]; for (n = 0; n < 32; ++n) e[n + 32] = a[n]; var c = E(e, r); - if (T(c), _(s, o, c), k(o, t.subarray(32)), I(s, o), B(i, s), r -= 64, R(t, 0, i, 0)) { + if (T(c), _(s, o, c), L(o, t.subarray(32)), I(s, o), B(i, s), r -= 64, R(t, 0, i, 0)) { for (n = 0; n < r; ++n) e[n] = 0; return -1; } @@ -16139,13 +16089,13 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ } function _(e, t, r) { var a, n; - for (L(e[0], f), L(e[1], h), L(e[2], h), L(e[3], f), n = 255; n >= 0; --n) A(e, t, a = r[n / 8 | 0] >> (7 & n) & 1), I(t, e), I(e, e), A(e, t, a); + for (k(e[0], f), k(e[1], h), k(e[2], h), k(e[3], f), n = 255; n >= 0; --n) A(e, t, a = r[n / 8 | 0] >> (7 & n) & 1), I(t, e), I(e, e), A(e, t, a); } - function k(e, t) { + function L(e, t) { var r = [P(), P(), P(), P()]; - L(r[0], g), L(r[1], v), L(r[2], h), x(r[3], g, v), _(e, r, t); + k(r[0], g), k(r[1], v), k(r[2], h), x(r[3], g, v), _(e, r, t); } - function L(e, t) { + function k(e, t) { var r; for (r = 0; r < 16; r++) e[r] = 0 | t[r]; } @@ -16203,8 +16153,8 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ R = 0, w = 0, _ = 0, - k = 0, L = 0, + k = 0, U = 0, D = 0, P = 0, @@ -16216,15 +16166,15 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ F = r[5], j = r[6], G = r[7], - q = r[8], - H = r[9], + H = r[8], + q = r[9], Q = r[10], z = r[11], Y = r[12], X = r[13], W = r[14], Z = r[15]; - i += (a = t[0]) * V, s += a * O, o += a * K, c += a * x, u += a * M, l += a * F, p += a * j, f += a * G, h += a * q, d += a * H, y += a * Q, g += a * z, v += a * Y, m += a * X, C += a * W, E += a * Z, s += (a = t[1]) * V, o += a * O, c += a * K, u += a * x, l += a * M, p += a * F, f += a * j, h += a * G, d += a * q, y += a * H, g += a * Q, v += a * z, m += a * Y, C += a * X, E += a * W, S += a * Z, o += (a = t[2]) * V, c += a * O, u += a * K, l += a * x, p += a * M, f += a * F, h += a * j, d += a * G, y += a * q, g += a * H, v += a * Q, m += a * z, C += a * Y, E += a * X, S += a * W, T += a * Z, c += (a = t[3]) * V, u += a * O, l += a * K, p += a * x, f += a * M, h += a * F, d += a * j, y += a * G, g += a * q, v += a * H, m += a * Q, C += a * z, E += a * Y, S += a * X, T += a * W, I += a * Z, u += (a = t[4]) * V, l += a * O, p += a * K, f += a * x, h += a * M, d += a * F, y += a * j, g += a * G, v += a * q, m += a * H, C += a * Q, E += a * z, S += a * Y, T += a * X, I += a * W, A += a * Z, l += (a = t[5]) * V, p += a * O, f += a * K, h += a * x, d += a * M, y += a * F, g += a * j, v += a * G, m += a * q, C += a * H, E += a * Q, S += a * z, T += a * Y, I += a * X, A += a * W, B += a * Z, p += (a = t[6]) * V, f += a * O, h += a * K, d += a * x, y += a * M, g += a * F, v += a * j, m += a * G, C += a * q, E += a * H, S += a * Q, T += a * z, I += a * Y, A += a * X, B += a * W, b += a * Z, f += (a = t[7]) * V, h += a * O, d += a * K, y += a * x, g += a * M, v += a * F, m += a * j, C += a * G, E += a * q, S += a * H, T += a * Q, I += a * z, A += a * Y, B += a * X, b += a * W, N += a * Z, h += (a = t[8]) * V, d += a * O, y += a * K, g += a * x, v += a * M, m += a * F, C += a * j, E += a * G, S += a * q, T += a * H, I += a * Q, A += a * z, B += a * Y, b += a * X, N += a * W, R += a * Z, d += (a = t[9]) * V, y += a * O, g += a * K, v += a * x, m += a * M, C += a * F, E += a * j, S += a * G, T += a * q, I += a * H, A += a * Q, B += a * z, b += a * Y, N += a * X, R += a * W, w += a * Z, y += (a = t[10]) * V, g += a * O, v += a * K, m += a * x, C += a * M, E += a * F, S += a * j, T += a * G, I += a * q, A += a * H, B += a * Q, b += a * z, N += a * Y, R += a * X, w += a * W, _ += a * Z, g += (a = t[11]) * V, v += a * O, m += a * K, C += a * x, E += a * M, S += a * F, T += a * j, I += a * G, A += a * q, B += a * H, b += a * Q, N += a * z, R += a * Y, w += a * X, _ += a * W, k += a * Z, v += (a = t[12]) * V, m += a * O, C += a * K, E += a * x, S += a * M, T += a * F, I += a * j, A += a * G, B += a * q, b += a * H, N += a * Q, R += a * z, w += a * Y, _ += a * X, k += a * W, L += a * Z, m += (a = t[13]) * V, C += a * O, E += a * K, S += a * x, T += a * M, I += a * F, A += a * j, B += a * G, b += a * q, N += a * H, R += a * Q, w += a * z, _ += a * Y, k += a * X, L += a * W, U += a * Z, C += (a = t[14]) * V, E += a * O, S += a * K, T += a * x, I += a * M, A += a * F, B += a * j, b += a * G, N += a * q, R += a * H, w += a * Q, _ += a * z, k += a * Y, L += a * X, U += a * W, D += a * Z, E += (a = t[15]) * V, s += 38 * (T += a * K), o += 38 * (I += a * x), c += 38 * (A += a * M), u += 38 * (B += a * F), l += 38 * (b += a * j), p += 38 * (N += a * G), f += 38 * (R += a * q), h += 38 * (w += a * H), d += 38 * (_ += a * Q), y += 38 * (k += a * z), g += 38 * (L += a * Y), v += 38 * (U += a * X), m += 38 * (D += a * W), C += 38 * (P += a * Z), i = (a = (i += 38 * (S += a * O)) + (n = 1) + 65535) - 65536 * (n = Math.floor(a / 65536)), s = (a = s + n + 65535) - 65536 * (n = Math.floor(a / 65536)), o = (a = o + n + 65535) - 65536 * (n = Math.floor(a / 65536)), c = (a = c + n + 65535) - 65536 * (n = Math.floor(a / 65536)), u = (a = u + n + 65535) - 65536 * (n = Math.floor(a / 65536)), l = (a = l + n + 65535) - 65536 * (n = Math.floor(a / 65536)), p = (a = p + n + 65535) - 65536 * (n = Math.floor(a / 65536)), f = (a = f + n + 65535) - 65536 * (n = Math.floor(a / 65536)), h = (a = h + n + 65535) - 65536 * (n = Math.floor(a / 65536)), d = (a = d + n + 65535) - 65536 * (n = Math.floor(a / 65536)), y = (a = y + n + 65535) - 65536 * (n = Math.floor(a / 65536)), g = (a = g + n + 65535) - 65536 * (n = Math.floor(a / 65536)), v = (a = v + n + 65535) - 65536 * (n = Math.floor(a / 65536)), m = (a = m + n + 65535) - 65536 * (n = Math.floor(a / 65536)), C = (a = C + n + 65535) - 65536 * (n = Math.floor(a / 65536)), E = (a = E + n + 65535) - 65536 * (n = Math.floor(a / 65536)), i = (a = (i += n - 1 + 37 * (n - 1)) + (n = 1) + 65535) - 65536 * (n = Math.floor(a / 65536)), s = (a = s + n + 65535) - 65536 * (n = Math.floor(a / 65536)), o = (a = o + n + 65535) - 65536 * (n = Math.floor(a / 65536)), c = (a = c + n + 65535) - 65536 * (n = Math.floor(a / 65536)), u = (a = u + n + 65535) - 65536 * (n = Math.floor(a / 65536)), l = (a = l + n + 65535) - 65536 * (n = Math.floor(a / 65536)), p = (a = p + n + 65535) - 65536 * (n = Math.floor(a / 65536)), f = (a = f + n + 65535) - 65536 * (n = Math.floor(a / 65536)), h = (a = h + n + 65535) - 65536 * (n = Math.floor(a / 65536)), d = (a = d + n + 65535) - 65536 * (n = Math.floor(a / 65536)), y = (a = y + n + 65535) - 65536 * (n = Math.floor(a / 65536)), g = (a = g + n + 65535) - 65536 * (n = Math.floor(a / 65536)), v = (a = v + n + 65535) - 65536 * (n = Math.floor(a / 65536)), m = (a = m + n + 65535) - 65536 * (n = Math.floor(a / 65536)), C = (a = C + n + 65535) - 65536 * (n = Math.floor(a / 65536)), E = (a = E + n + 65535) - 65536 * (n = Math.floor(a / 65536)), i += n - 1 + 37 * (n - 1), e[0] = i, e[1] = s, e[2] = o, e[3] = c, e[4] = u, e[5] = l, e[6] = p, e[7] = f, e[8] = h, e[9] = d, e[10] = y, e[11] = g, e[12] = v, e[13] = m, e[14] = C, e[15] = E; + i += (a = t[0]) * V, s += a * O, o += a * K, c += a * x, u += a * M, l += a * F, p += a * j, f += a * G, h += a * H, d += a * q, y += a * Q, g += a * z, v += a * Y, m += a * X, C += a * W, E += a * Z, s += (a = t[1]) * V, o += a * O, c += a * K, u += a * x, l += a * M, p += a * F, f += a * j, h += a * G, d += a * H, y += a * q, g += a * Q, v += a * z, m += a * Y, C += a * X, E += a * W, S += a * Z, o += (a = t[2]) * V, c += a * O, u += a * K, l += a * x, p += a * M, f += a * F, h += a * j, d += a * G, y += a * H, g += a * q, v += a * Q, m += a * z, C += a * Y, E += a * X, S += a * W, T += a * Z, c += (a = t[3]) * V, u += a * O, l += a * K, p += a * x, f += a * M, h += a * F, d += a * j, y += a * G, g += a * H, v += a * q, m += a * Q, C += a * z, E += a * Y, S += a * X, T += a * W, I += a * Z, u += (a = t[4]) * V, l += a * O, p += a * K, f += a * x, h += a * M, d += a * F, y += a * j, g += a * G, v += a * H, m += a * q, C += a * Q, E += a * z, S += a * Y, T += a * X, I += a * W, A += a * Z, l += (a = t[5]) * V, p += a * O, f += a * K, h += a * x, d += a * M, y += a * F, g += a * j, v += a * G, m += a * H, C += a * q, E += a * Q, S += a * z, T += a * Y, I += a * X, A += a * W, B += a * Z, p += (a = t[6]) * V, f += a * O, h += a * K, d += a * x, y += a * M, g += a * F, v += a * j, m += a * G, C += a * H, E += a * q, S += a * Q, T += a * z, I += a * Y, A += a * X, B += a * W, b += a * Z, f += (a = t[7]) * V, h += a * O, d += a * K, y += a * x, g += a * M, v += a * F, m += a * j, C += a * G, E += a * H, S += a * q, T += a * Q, I += a * z, A += a * Y, B += a * X, b += a * W, N += a * Z, h += (a = t[8]) * V, d += a * O, y += a * K, g += a * x, v += a * M, m += a * F, C += a * j, E += a * G, S += a * H, T += a * q, I += a * Q, A += a * z, B += a * Y, b += a * X, N += a * W, R += a * Z, d += (a = t[9]) * V, y += a * O, g += a * K, v += a * x, m += a * M, C += a * F, E += a * j, S += a * G, T += a * H, I += a * q, A += a * Q, B += a * z, b += a * Y, N += a * X, R += a * W, w += a * Z, y += (a = t[10]) * V, g += a * O, v += a * K, m += a * x, C += a * M, E += a * F, S += a * j, T += a * G, I += a * H, A += a * q, B += a * Q, b += a * z, N += a * Y, R += a * X, w += a * W, _ += a * Z, g += (a = t[11]) * V, v += a * O, m += a * K, C += a * x, E += a * M, S += a * F, T += a * j, I += a * G, A += a * H, B += a * q, b += a * Q, N += a * z, R += a * Y, w += a * X, _ += a * W, L += a * Z, v += (a = t[12]) * V, m += a * O, C += a * K, E += a * x, S += a * M, T += a * F, I += a * j, A += a * G, B += a * H, b += a * q, N += a * Q, R += a * z, w += a * Y, _ += a * X, L += a * W, k += a * Z, m += (a = t[13]) * V, C += a * O, E += a * K, S += a * x, T += a * M, I += a * F, A += a * j, B += a * G, b += a * H, N += a * q, R += a * Q, w += a * z, _ += a * Y, L += a * X, k += a * W, U += a * Z, C += (a = t[14]) * V, E += a * O, S += a * K, T += a * x, I += a * M, A += a * F, B += a * j, b += a * G, N += a * H, R += a * q, w += a * Q, _ += a * z, L += a * Y, k += a * X, U += a * W, D += a * Z, E += (a = t[15]) * V, s += 38 * (T += a * K), o += 38 * (I += a * x), c += 38 * (A += a * M), u += 38 * (B += a * F), l += 38 * (b += a * j), p += 38 * (N += a * G), f += 38 * (R += a * H), h += 38 * (w += a * q), d += 38 * (_ += a * Q), y += 38 * (L += a * z), g += 38 * (k += a * Y), v += 38 * (U += a * X), m += 38 * (D += a * W), C += 38 * (P += a * Z), i = (a = (i += 38 * (S += a * O)) + (n = 1) + 65535) - 65536 * (n = Math.floor(a / 65536)), s = (a = s + n + 65535) - 65536 * (n = Math.floor(a / 65536)), o = (a = o + n + 65535) - 65536 * (n = Math.floor(a / 65536)), c = (a = c + n + 65535) - 65536 * (n = Math.floor(a / 65536)), u = (a = u + n + 65535) - 65536 * (n = Math.floor(a / 65536)), l = (a = l + n + 65535) - 65536 * (n = Math.floor(a / 65536)), p = (a = p + n + 65535) - 65536 * (n = Math.floor(a / 65536)), f = (a = f + n + 65535) - 65536 * (n = Math.floor(a / 65536)), h = (a = h + n + 65535) - 65536 * (n = Math.floor(a / 65536)), d = (a = d + n + 65535) - 65536 * (n = Math.floor(a / 65536)), y = (a = y + n + 65535) - 65536 * (n = Math.floor(a / 65536)), g = (a = g + n + 65535) - 65536 * (n = Math.floor(a / 65536)), v = (a = v + n + 65535) - 65536 * (n = Math.floor(a / 65536)), m = (a = m + n + 65535) - 65536 * (n = Math.floor(a / 65536)), C = (a = C + n + 65535) - 65536 * (n = Math.floor(a / 65536)), E = (a = E + n + 65535) - 65536 * (n = Math.floor(a / 65536)), i = (a = (i += n - 1 + 37 * (n - 1)) + (n = 1) + 65535) - 65536 * (n = Math.floor(a / 65536)), s = (a = s + n + 65535) - 65536 * (n = Math.floor(a / 65536)), o = (a = o + n + 65535) - 65536 * (n = Math.floor(a / 65536)), c = (a = c + n + 65535) - 65536 * (n = Math.floor(a / 65536)), u = (a = u + n + 65535) - 65536 * (n = Math.floor(a / 65536)), l = (a = l + n + 65535) - 65536 * (n = Math.floor(a / 65536)), p = (a = p + n + 65535) - 65536 * (n = Math.floor(a / 65536)), f = (a = f + n + 65535) - 65536 * (n = Math.floor(a / 65536)), h = (a = h + n + 65535) - 65536 * (n = Math.floor(a / 65536)), d = (a = d + n + 65535) - 65536 * (n = Math.floor(a / 65536)), y = (a = y + n + 65535) - 65536 * (n = Math.floor(a / 65536)), g = (a = g + n + 65535) - 65536 * (n = Math.floor(a / 65536)), v = (a = v + n + 65535) - 65536 * (n = Math.floor(a / 65536)), m = (a = m + n + 65535) - 65536 * (n = Math.floor(a / 65536)), C = (a = C + n + 65535) - 65536 * (n = Math.floor(a / 65536)), E = (a = E + n + 65535) - 65536 * (n = Math.floor(a / 65536)), i += n - 1 + 37 * (n - 1), e[0] = i, e[1] = s, e[2] = o, e[3] = c, e[4] = u, e[5] = l, e[6] = p, e[7] = f, e[8] = h, e[9] = d, e[10] = y, e[11] = g, e[12] = v, e[13] = m, e[14] = C, e[15] = E; } }, function (e, t, r) { var a = r(0); @@ -16712,8 +16662,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ }, toAsn1: function toAsn1() { return n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(e.type).getBytes()), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.INTEGER, !1, n.integerToDer(e.version).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SET, !0, o(e.recipients)), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, (t = e.encryptedContent, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(a.pki.oids.data).getBytes()), n.create(n.Class.UNIVERSAL, n.Type.SEQUENCE, !0, [n.create(n.Class.UNIVERSAL, n.Type.OID, !1, n.oidToDer(t.algorithm).getBytes()), t.parameter ? n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, t.parameter.getBytes()) : void 0]), n.create(n.Class.CONTEXT_SPECIFIC, 0, !0, [n.create(n.Class.UNIVERSAL, n.Type.OCTETSTRING, !1, t.content.getBytes())])]))])])]); - // removed by dead control flow - var t; + var t; }, findRecipient: function findRecipient(t) { for (var r = t.issuer.attributes, a = 0; a < e.recipients.length; ++a) { @@ -18135,8 +18084,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _type (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else // removed by dead control flow -{} + } else {} })(this, function (root) { 'use strict'; @@ -18316,8 +18264,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _type (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else // removed by dead control flow -{} + } else {} })(this, function (root) { 'use strict'; @@ -18567,8 +18514,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else // removed by dead control flow -{} + } else {} })(this, function (punycode, IPv6, SLD, root) { 'use strict'; @@ -21126,17 +21072,17 @@ var __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof /***/ }), -/***/ 2880: +/***/ 8099: /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) { "use strict"; // UNUSED EXPORTS: AddressMatchService, AggregationParameter, AggregationTypes, AlongLineDirection, AnalystAreaUnit, AnalystSizeUnit, AreaSolarRadiationParameters, ArrayStatistic, AttachmentsParameters, AttributesPopContainer, Bounds, BoundsType, Browser, BucketAggParameter, BucketAggType, BufferAnalystParameters, BufferDistance, BufferEndType, BufferRadiusUnit, BufferSetting, BuffersAnalystJobsParameter, BurstPipelineAnalystParameters, CartoCSS, CellSizeType, ChartQueryFilterParameter, ChartQueryParameters, ChartService, ChartSettingS100, ChartSettingS57, ChartType, ChartView, ChartViewModel, ChartWLTimeRangeParameter, ChartWaterDepthParameter, ChartWaterLevelParameter, CityTabsPage, ClientType, ClipAnalystMode, ClipParameter, ColorDictionary, ColorGradientType, ColorSpaceType, ColorsPickerUtil, ColourModeChart, CommonContainer, CommonServiceBase, CommonTheme, CommonUtil, ComponentsUtil, ComputeWeightMatrixParameters, ConnectedEdgesAnalystParameters, ConvexHullAnalystParameters, CreateDatasetParameters, Credential, DataFlowService, DataFormat, DataItemOrderBy, DataItemType, DataReturnMode, DataReturnOption, DatasetBufferAnalystParameters, DatasetInfo, DatasetMinDistanceAnalystParameters, DatasetOverlayAnalystParameters, DatasetService, DatasetSurfaceAnalystParameters, DatasetThiessenAnalystParameters, DatasourceConnectionInfo, DatasourceService, DeckglLayer, DensityKernelAnalystParameters, DirectionType, DisplayModeChart, DropDownBox, EditAttachmentsParameters, EditFeaturesParameters, EditType, ElasticSearch, EncryptRequest, EngineType, EntityType, Event, Events, Exponent, FGBLayer, FacilityAnalyst3DParameters, FacilityAnalystSinks3DParameters, FacilityAnalystSources3DParameters, FacilityAnalystStreamParameters, FacilityAnalystTracedown3DParameters, FacilityAnalystTraceup3DParameters, FacilityAnalystUpstream3DParameters, Feature, FeatureService, FeatureShapeFactory, FeatureTheme, FeatureThemeGraph, FeatureThemeRankSymbol, FeatureThemeVector, FeatureVector, FetchRequest, FieldParameters, FieldService, FieldStatisticsParameters, FieldsFilter, FileReaderUtil, FillGradientMode, FilterField, FilterParameter, FindClosestFacilitiesParameters, FindLocationParameters, FindMTSPPathsParameters, FindPathParameters, FindServiceAreasParameters, FindTSPPathsParameters, Format, GenerateSpatialDataParameters, GeoCodingParameter, GeoDecodingParameter, GeoFeature, GeoFeatureThemeLayer, GeoHashGridAggParameter, GeoJSONFormat, GeoRelationAnalystParameters, Geometry, Geometry3D, GeometryAnalysis, GeometryBufferAnalystParameters, GeometryCollection, GeometryCurve, GeometryGeoText, GeometryLineString, GeometryLinearRing, GeometryMinDistanceAnalystParameters, GeometryMultiLineString, GeometryMultiPoint, GeometryMultiPolygon, GeometryOverlayAnalystParameters, GeometryPoint, GeometryPolygon, GeometryRectangle, GeometrySurfaceAnalystParameters, GeometryThiessenAnalystParameters, GeometryType, GeoprocessingService, GetFeatureMode, GetFeaturesByBoundsParameters, GetFeaturesByBufferParameters, GetFeaturesByGeometryParameters, GetFeaturesByIDsParameters, GetFeaturesBySQLParameters, GetFeaturesParametersBase, GetFeaturesServiceBase, GetGridCellInfosParameters, GetLayersLegendInfoParameters, GraduatedMode, Graph, GraphAxesTextDisplayMode, GraphMap, GraphThemeLayer, Graphic, GraphicLayer, GraticuleLayer, Grid, GridCellInfosService, GridType, HeatMapLayer, HillshadeParameter, IManager, IManagerCreateNodeParam, IManagerServiceBase, IPortal, IPortalAddDataParam, IPortalAddResourceParam, IPortalDataConnectionInfoParam, IPortalDataMetaInfoParam, IPortalDataStoreInfoParam, IPortalQueryParam, IPortalQueryResult, IPortalRegisterServiceParam, IPortalResource, IPortalServiceBase, IPortalShareEntity, IPortalShareParam, IPortalUser, ImageCollectionService, ImageGFAspect, ImageGFHillShade, ImageGFOrtho, ImageGFSlope, ImageRenderingRule, ImageSearchParameter, ImageService, ImageStretchOption, IndexTabsPageContainer, InterpolationAlgorithmType, InterpolationAnalystParameters, InterpolationDensityAnalystParameters, InterpolationIDWAnalystParameters, InterpolationKrigingAnalystParameters, InterpolationRBFAnalystParameters, JSONFormat, JoinItem, JoinType, KernelDensityJobParameter, KeyServiceParameter, KnowledgeGraph, KnowledgeGraphService, L7Layer, Label, LabelBackShape, LabelImageCell, LabelMatrixCell, LabelMixedTextStyle, LabelOverLengthMode, LabelSymbolCell, LabelThemeCell, LabelThemeLayer, Lang, LayerInfoService, LayerStatus, LayerType, LinkItem, Logo, LonLat, MapExtend, MapService, MappingParameters, MapvDataSet, MapvLayer, MathExpressionAnalysisParameters, MeasureMode, MeasureParameters, MeasureService, MessageBox, MetricsAggParameter, MetricsAggType, NDVIParameter, NavTabsPage, NetworkAnalyst3DService, NetworkAnalystService, NetworkAnalystServiceBase, Online, OnlineData, OnlineQueryDatasParameter, OnlineServiceBase, OrderBy, OrderType, OutputSetting, OutputType, OverlapDisplayedOptions, OverlayAnalystParameters, OverlayGeoJobParameter, OverlayOperationType, PaginationContainer, PermissionType, Pixel, PixelFormat, PointWithMeasure, PopContainer, ProcessingService, ProcessingServiceBase, QueryByBoundsParameters, QueryByDistanceParameters, QueryByGeometryParameters, QueryBySQLParameters, QueryOption, QueryParameters, QueryService, Range, RangeMode, RangeTheme3DLayer, RangeThemeLayer, RankSymbol, RankSymbolThemeLayer, RasterFunctionParameter, RasterFunctionType, ResourceType, Route, RouteCalculateMeasureParameters, RouteLocatorParameters, SearchMode, SearchType, SecurityManager, Select, ServerColor, ServerFeature, ServerGeometry, ServerInfo, ServerStyle, ServerTextStyle, ServerTheme, ServerType, ServiceBase, ServiceStatus, SetDatasourceParameters, SetLayerInfoParameters, SetLayerStatusParameters, SetLayersInfoParameters, ShapeParameters, ShapeParametersCircle, ShapeParametersImage, ShapeParametersLabel, ShapeParametersLine, ShapeParametersPoint, ShapeParametersPolygon, ShapeParametersRectangle, ShapeParametersSector, SideType, SingleObjectQueryJobsParameter, Size, SmoothMethod, Sortby, SpatialAnalystBase, SpatialAnalystService, SpatialQueryMode, SpatialRelationType, StatisticAnalystMode, StatisticMode, StopQueryParameters, SummaryAttributesJobsParameter, SummaryMeshJobParameter, SummaryRegionJobParameter, SummaryType, SuperMap, SupplyCenter, SupplyCenterType, SurfaceAnalystMethod, SurfaceAnalystParameters, SurfaceAnalystParametersSetting, TemplateBase, TerrainAspectCalculationParameters, TerrainCurvatureCalculationParameters, TerrainCutFillCalculationParameters, TerrainSlopeCalculationParameters, TextAlignment, Theme3DLayer, ThemeDotDensity, ThemeFeature, ThemeGraduatedSymbol, ThemeGraduatedSymbolStyle, ThemeGraph, ThemeGraphAxes, ThemeGraphItem, ThemeGraphSize, ThemeGraphText, ThemeGraphTextFormat, ThemeGraphType, ThemeGridRange, ThemeGridRangeItem, ThemeGridUnique, ThemeGridUniqueItem, ThemeLabel, ThemeLabelAlongLine, ThemeLabelBackground, ThemeLabelItem, ThemeLabelText, ThemeLabelUniqueItem, ThemeLayer, ThemeMemoryData, ThemeOffset, ThemeParameters, ThemeRange, ThemeRangeItem, ThemeService, ThemeStyle, ThemeType, ThemeUnique, ThemeUniqueItem, ThiessenAnalystParameters, ThreeLayer, TimeControlBase, TimeFlowControl, TokenServiceParameter, TopologyValidatorJobsParameter, TopologyValidatorRule, TraceAnalystParameters, TrafficTransferAnalystService, TransferLine, TransferPathParameters, TransferPreference, TransferSolutionParameters, TransferTactic, Transform, TransportationAnalystParameter, TransportationAnalystResultSetting, TurnType, UGCLayer, UGCLayerType, UGCMapLayer, UGCSubLayer, Unique, UniqueTheme3DLayer, UniqueThemeLayer, Unit, UpdateDatasetParameters, UpdateEdgeWeightParameters, UpdateTurnNodeWeightParameters, Util, VariogramMode, Vector, VectorClipJobsParameter, VideoFeature, VideoLayer, VideoMap, WKTFormat, WebExportFormatType, WebMap, WebPrintingJobContent, WebPrintingJobCustomItems, WebPrintingJobExportOptions, WebPrintingJobImage, WebPrintingJobLayers, WebPrintingJobLayoutOptions, WebPrintingJobLegendOptions, WebPrintingJobLittleMapOptions, WebPrintingJobNorthArrowOptions, WebPrintingJobParameters, WebPrintingJobScaleBarOptions, WebPrintingJobService, WebScaleOrientationType, WebScaleType, WebScaleUnit, WebSymbol, conversionDegree, decrypt, decryptSources, getDefaultVectorTileStyle, getMeterPerMapUnit, getServiceKey, getWrapNum, initMap, isCORS, mapboxFilterToQueryFilter, setBackground, setCORS, setPaintProperty, setRequestHeaders, terrainAnalystSetting -;// external "mapboxgl" +;// CONCATENATED MODULE: external "mapboxgl" var external_mapboxgl_namespaceObject = mapboxgl; var external_mapboxgl_default = /*#__PURE__*/__webpack_require__.n(external_mapboxgl_namespaceObject); -;// ./src/mapboxgl/core/decryptSource.js +;// CONCATENATED MODULE: ./src/mapboxgl/core/decryptSource.js /** @@ -21192,7 +21138,7 @@ var fetch_ie8_fetch = __webpack_require__(1358); // EXTERNAL MODULE: ./node_modules/fetch-jsonp/build/fetch-jsonp.js var fetch_jsonp = __webpack_require__(3678); var fetch_jsonp_default = /*#__PURE__*/__webpack_require__.n(fetch_jsonp); -;// ./src/common/commontypes/CircularUtil.js +;// CONCATENATED MODULE: ./src/common/commontypes/CircularUtil.js var CircularUtil = { lastSeqID: 0, parentUtil: null, @@ -21240,7 +21186,7 @@ function _createUniqueID(prefix, util) { return prefix + util.lastSeqID; } -;// ./src/common/commontypes/BaseTypes.js +;// CONCATENATED MODULE: ./src/common/commontypes/BaseTypes.js function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -21673,7 +21619,7 @@ var ArrayExt = { return selected; } }; -;// ./src/common/commontypes/Geometry.js +;// CONCATENATED MODULE: ./src/common/commontypes/Geometry.js function Geometry_typeof(o) { "@babel/helpers - typeof"; return Geometry_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Geometry_typeof(o); } function Geometry_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Geometry_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Geometry_toPropertyKey(o.key), o); } } @@ -21694,7 +21640,7 @@ function Geometry_toPrimitive(t, r) { if ("object" != Geometry_typeof(t) || !t) * @classdesc 几何对象类,描述地理对象的几何图形。 * @usage */ -var Geometry = /*#__PURE__*/function () { +var Geometry_Geometry = /*#__PURE__*/function () { function Geometry() { Geometry_classCallCheck(this, Geometry); this.CLASS_NAME = "SuperMap.Geometry"; @@ -21865,7 +21811,7 @@ var Geometry = /*#__PURE__*/function () { // EXTERNAL MODULE: ./node_modules/urijs/src/URI.js var URI = __webpack_require__(7411); var URI_default = /*#__PURE__*/__webpack_require__.n(URI); -;// ./src/common/commontypes/Util.js +;// CONCATENATED MODULE: ./src/common/commontypes/Util.js function Util_typeof(o) { "@babel/helpers - typeof"; return Util_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Util_typeof(o); } /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 @@ -21999,7 +21945,7 @@ var DOTS_PER_INCH = 96; * ``` */ -var Util = { +var Util_Util = { /** * @memberOf CommonUtil * @description 对象拷贝赋值。 @@ -22322,7 +22268,7 @@ var Util = { */ toFloat: function toFloat(number, precision) { if (precision == null) { - precision = Util.DEFAULT_PRECISION; + precision = Util_Util.DEFAULT_PRECISION; } if (typeof number !== 'number') { number = parseFloat(number); @@ -22424,7 +22370,7 @@ var Util = { if (units == null) { units = 'degrees'; } - var normScale = Util.normalizeScale(scale); + var normScale = Util_Util.normalizeScale(scale); resolution = 1 / (normScale * INCHES_PER_UNIT[units] * DOTS_PER_INCH); } return resolution; @@ -22463,7 +22409,7 @@ var Util = { * @returns {boolean} 当前浏览器是否支持 HTML5 Canvas 。 */ supportCanvas: function supportCanvas() { - return Util.isSupportCanvas; + return Util_Util.isSupportCanvas; }, /** * @memberOf CommonUtil @@ -22479,7 +22425,7 @@ var Util = { if (index === -1) { return true; } - return Util.isSameDomain(url, document.location.toString()); + return Util_Util.isSameDomain(url, document.location.toString()); }, isSameDomain: function isSameDomain(url, otherUrl) { return new (URI_default())(url).normalize().origin() === new (URI_default())(otherUrl).normalize().origin(); @@ -22544,7 +22490,7 @@ var Util = { case Array: var arr = ''; for (var i = 0, len = objInn.length; i < len; i++) { - arr += Util.toJSON(objInn[i]); + arr += Util_Util.toJSON(objInn[i]); if (i !== objInn.length - 1) { arr += ','; } @@ -22565,7 +22511,7 @@ var Util = { if (objInn.length) { var _arr = []; for (var _i = 0, _len = objInn.length; _i < _len; _i++) { - _arr.push(Util.toJSON(objInn[_i])); + _arr.push(Util_Util.toJSON(objInn[_i])); } return '[' + _arr.join(',') + ']'; } @@ -22573,7 +22519,7 @@ var Util = { for (var attr in objInn) { //为解决Geometry类型头json时堆栈溢出的问题,attr == "parent"时不进行json转换 if (typeof objInn[attr] !== 'function' && attr !== 'CLASS_NAME' && attr !== 'parent') { - _arr2.push("'" + attr + "':" + Util.toJSON(objInn[attr])); + _arr2.push("'" + attr + "':" + Util_Util.toJSON(objInn[attr])); } } if (_arr2.length > 0) { @@ -22602,7 +22548,7 @@ var Util = { datumAxis = datumAxis || 6378137; coordUnit = coordUnit || ''; if (scale > 0 && dpi > 0) { - scale = Util.normalizeScale(scale); + scale = Util_Util.normalizeScale(scale); if (coordUnit.toLowerCase() === 'degree' || coordUnit.toLowerCase() === 'degrees' || coordUnit.toLowerCase() === 'dd') { //scale = Util.normalizeScale(scale); resolution = 0.0254 * ratio / dpi / scale / (Math.PI * 2 * datumAxis / 360) / ratio; @@ -22734,7 +22680,7 @@ var Util = { var _copy2 = {}; for (var attr in obj) { if (obj.hasOwnProperty(attr)) { - _copy2[attr] = Util.cloneObject(obj[attr]); + _copy2[attr] = Util_Util.cloneObject(obj[attr]); } } return _copy2; @@ -22762,7 +22708,7 @@ var Util = { k1 = b / ab; k2 = a / ab; if (k1 >= 0 && k2 <= 1 && k1 <= 1 && k2 >= 0) { - intersectValue = new Geometry.Point(a1.x + k1 * (a2.x - a1.x), a1.y + k1 * (a2.y - a1.y)); + intersectValue = new Geometry_Geometry.Point(a1.x + k1 * (a2.x - a1.x), a1.y + k1 * (a2.y - a1.y)); } else { intersectValue = 'No Intersection'; } @@ -22913,7 +22859,7 @@ INCHES_PER_UNIT['nmi'] = 1852 * INCHES_PER_UNIT.m; // Units from CS-Map var METERS_PER_INCH = 0.0254000508001016002; -Util.extend(INCHES_PER_UNIT, { +Util_Util.extend(INCHES_PER_UNIT, { Inch: INCHES_PER_UNIT.inches, Meter: 1.0 / METERS_PER_INCH, //EPSG:9001 @@ -23004,7 +22950,7 @@ Util.extend(INCHES_PER_UNIT, { }); //unit abbreviations supported by PROJ.4 -Util.extend(INCHES_PER_UNIT, { +Util_Util.extend(INCHES_PER_UNIT, { mm: INCHES_PER_UNIT['Meter'] / 1000.0, cm: INCHES_PER_UNIT['Meter'] / 100.0, dm: INCHES_PER_UNIT['Meter'] * 100.0, @@ -23065,9 +23011,9 @@ function canBeJsonified(str) { return false; } } -CircularUtil.setRelativeParentUtil(Util); +CircularUtil.setRelativeParentUtil(Util_Util); -;// ./src/common/util/FetchRequest.js +;// CONCATENATED MODULE: ./src/common/util/FetchRequest.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -23089,7 +23035,7 @@ var RequestJSONPPromise = { for (var key in values) { me.queryKeys.push(key); if (typeof values[key] !== 'string') { - values[key] = Util.toJSON(values[key]); + values[key] = Util_Util.toJSON(values[key]); } var tempValue = encodeURIComponent(values[key]); me.queryValues.push(tempValue); @@ -23430,7 +23376,7 @@ var FetchRequest = { * @returns {boolean} 是否允许跨域请求。 */ supportDirectRequest: function supportDirectRequest(url, options) { - if (Util.isInTheSameDomain(url)) { + if (Util_Util.isInTheSameDomain(url)) { return true; } if (options.crossOrigin != undefined) { @@ -23450,7 +23396,7 @@ var FetchRequest = { get: function get(url, params, options) { options = options || {}; var type = 'GET'; - url = Util.urlAppend(url, this._getParameterString(params || {})); + url = Util_Util.urlAppend(url, this._getParameterString(params || {})); url = this._processUrl(url, options); if (!this.supportDirectRequest(url, options)) { url = url.replace('.json', '.jsonp'); @@ -23477,7 +23423,7 @@ var FetchRequest = { "delete": function _delete(url, params, options) { options = options || {}; var type = 'DELETE'; - url = Util.urlAppend(url, this._getParameterString(params || {})); + url = Util_Util.urlAppend(url, this._getParameterString(params || {})); url = this._processUrl(url, options); if (!this.supportDirectRequest(url, options)) { url = url.replace('.json', '.jsonp'); @@ -23506,7 +23452,7 @@ var FetchRequest = { if (!this.supportDirectRequest(url, options)) { url = url.replace('.json', '.jsonp'); var config = { - url: Util.urlAppend(url, "_method=POST"), + url: Util_Util.urlAppend(url, "_method=POST"), data: params }; return RequestJSONPPromise.POST(config); @@ -23570,7 +23516,7 @@ var FetchRequest = { return url; } if (url.indexOf('.json') === -1 && !options.withoutFormatSuffix) { - url = Util.handleUrlSuffix(url); + url = Util_Util.handleUrlSuffix(url); } if (options && options.proxy) { if (typeof options.proxy === 'function') { @@ -23591,7 +23537,7 @@ var FetchRequest = { var customRequestHeadersGetter = getRequestHeaders(); var customRequestHeaders = customRequestHeadersGetter && customRequestHeadersGetter(url); if (customRequestHeaders) { - options.headers = Util.extend(options.headers, customRequestHeaders); + options.headers = Util_Util.extend(options.headers, customRequestHeaders); } if (options.timeout) { return this._timeout(options.timeout, FetchRequest_fetch(url, { @@ -23664,7 +23610,7 @@ var FetchRequest = { }; // EXTERNAL MODULE: ./node_modules/node-forge/dist/forge.min.js var forge_min = __webpack_require__(7915); -;// ./src/common/util/RequestcryptUtil.js +;// CONCATENATED MODULE: ./src/common/util/RequestcryptUtil.js // import pki from 'node-forge/lib/pki'; // import md from 'node-forge/lib/md'; // import cipher from 'node-forge/lib/cipher'; @@ -23791,10 +23737,9 @@ function randomString(length) { } return result; } -;// ./src/common/util/EncryptRequest.js +;// CONCATENATED MODULE: ./src/common/util/EncryptRequest.js function EncryptRequest_typeof(o) { "@babel/helpers - typeof"; return EncryptRequest_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, EncryptRequest_typeof(o); } -function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); } +function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == EncryptRequest_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(EncryptRequest_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } @@ -23846,42 +23791,42 @@ var EncryptRequest = /*#__PURE__*/function () { return EncryptRequest_createClass(EncryptRequest, [{ key: "request", value: (function () { - var _request = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(options) { - var config, tunnelUrl, _iterator, _step, pattern, regex, data, response, result, decryptResult, resultData, resData, _t; - return _regenerator().w(function (_context) { - while (1) switch (_context.p = _context.n) { + var _request = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options) { + var config, tunnelUrl, _iterator, _step, pattern, regex, data, response, result, decryptResult, resultData, resData; + return _regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: if (this.serverUrl) { - _context.n = 1; + _context.next = 2; break; } throw 'serverUrl can not be empty.'; - case 1: + case 2: config = Object.assign({ baseURL: '' }, options); - _context.n = 2; + _context.next = 5; return this._createTunnel(); - case 2: - tunnelUrl = _context.v; + case 5: + tunnelUrl = _context.sent; if (tunnelUrl) { - _context.n = 3; + _context.next = 8; break; } - return _context.a(2); - case 3: + return _context.abrupt("return"); + case 8: _iterator = _createForOfIteratorHelper(this.blockedUrlRegex[config.method.toUpperCase()]); - _context.p = 4; + _context.prev = 9; _iterator.s(); - case 5: + case 11: if ((_step = _iterator.n()).done) { - _context.n = 8; + _context.next = 24; break; } pattern = _step.value; regex = new RegExp(pattern); if (!regex.test(config.baseURL + config.url)) { - _context.n = 7; + _context.next = 22; break; } data = { @@ -23894,59 +23839,62 @@ var EncryptRequest = /*#__PURE__*/function () { config.method = 'post'; config.data = AESGCMEncrypt(this.encryptAESKey, this.encryptAESIV, JSON.stringify(data)); if (config.data) { - _context.n = 6; + _context.next = 20; break; } throw 'encrypt failed'; - case 6: + case 20: config.url = this.tunnelUrl; - return _context.a(3, 8); - case 7: - _context.n = 5; + return _context.abrupt("break", 24); + case 22: + _context.next = 11; break; - case 8: - _context.n = 10; + case 24: + _context.next = 29; break; - case 9: - _context.p = 9; - _t = _context.v; - _iterator.e(_t); - case 10: - _context.p = 10; + case 26: + _context.prev = 26; + _context.t0 = _context["catch"](9); + _iterator.e(_context.t0); + case 29: + _context.prev = 29; _iterator.f(); - return _context.f(10); - case 11: - _context.n = 12; + return _context.finish(29); + case 32: + _context.next = 34; return FetchRequest.commit(config.method, config.url, config.data, config.options); - case 12: - response = _context.v; + case 34: + response = _context.sent; if (!(config.url === this.tunnelUrl)) { - _context.n = 15; + _context.next = 46; break; } - _context.n = 13; + _context.next = 38; return response.text(); - case 13: - result = _context.v; + case 38: + result = _context.sent; decryptResult = AESGCMDecrypt(this.encryptAESKey, this.encryptAESIV, result); if (decryptResult) { - _context.n = 14; + _context.next = 43; break; } console.debug('解密请求响应失败'); - return _context.a(2); - case 14: + return _context.abrupt("return"); + case 43: resultData = JSON.parse(decryptResult); resData = Object.create({ json: function json() { return Promise.resolve(resultData.data); } }); - return _context.a(2, Object.assign(resData, resultData)); - case 15: - return _context.a(2, response); - } - }, _callee, this, [[4, 9, 10, 11]]); + return _context.abrupt("return", Object.assign(resData, resultData)); + case 46: + return _context.abrupt("return", response); + case 47: + case "end": + return _context.stop(); + } + }, _callee, this, [[9, 26, 29, 32]]); })); function request(_x) { return _request.apply(this, arguments); @@ -23962,20 +23910,20 @@ var EncryptRequest = /*#__PURE__*/function () { }, { key: "_getRSAPublicKey", value: (function () { - var _getRSAPublicKey2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() { - var response, publicKeyObj, aesKeyObj, aesCipherText, _t2; - return _regenerator().w(function (_context2) { - while (1) switch (_context2.p = _context2.n) { + var _getRSAPublicKey2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() { + var response, publicKeyObj, aesKeyObj, aesCipherText; + return _regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: - _context2.p = 0; - _context2.n = 1; + _context2.prev = 0; + _context2.next = 3; return FetchRequest.get(URI_default()(this.serverUrl).segment('services/security/tunnel/v1/publickey').toString()); - case 1: - response = _context2.v; - _context2.n = 2; + case 3: + response = _context2.sent; + _context2.next = 6; return response.json(); - case 2: - publicKeyObj = _context2.v; + case 6: + publicKeyObj = _context2.sent; // 生成AES密钥 aesKeyObj = { key: this.encryptAESKey, @@ -23984,15 +23932,16 @@ var EncryptRequest = /*#__PURE__*/function () { padding: 'NoPadding' }; // 将AES密钥使用RSA公钥加密 aesCipherText = RSAEncrypt(publicKeyObj.publicKey, aesKeyObj.key + aesKeyObj.iv); - return _context2.a(2, aesCipherText); - case 3: - _context2.p = 3; - _t2 = _context2.v; - console.debug('RSA公钥获取失败,错误详情:' + _t2); - case 4: - return _context2.a(2); + return _context2.abrupt("return", aesCipherText); + case 12: + _context2.prev = 12; + _context2.t0 = _context2["catch"](0); + console.debug('RSA公钥获取失败,错误详情:' + _context2.t0); + case 15: + case "end": + return _context2.stop(); } - }, _callee2, this, [[0, 3]]); + }, _callee2, this, [[0, 12]]); })); function _getRSAPublicKey() { return _getRSAPublicKey2.apply(this, arguments); @@ -24008,48 +23957,51 @@ var EncryptRequest = /*#__PURE__*/function () { }, { key: "_createTunnel", value: (function () { - var _createTunnel2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() { - var data, response, result, _t3; - return _regenerator().w(function (_context3) { - while (1) switch (_context3.p = _context3.n) { + var _createTunnel2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() { + var data, response, result; + return _regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: if (this.tunnelUrl) { - _context3.n = 7; + _context3.next = 19; break; } - _context3.p = 1; - _context3.n = 2; + _context3.prev = 1; + _context3.next = 4; return this._getRSAPublicKey(); - case 2: - data = _context3.v; + case 4: + data = _context3.sent; if (data) { - _context3.n = 3; + _context3.next = 7; break; } throw 'fetch RSA publicKey failed'; - case 3: - _context3.n = 4; + case 7: + _context3.next = 9; return FetchRequest.post(URI_default()(this.serverUrl).segment('services/security/tunnel/v1/tunnels').toString(), data); - case 4: - response = _context3.v; - _context3.n = 5; + case 9: + response = _context3.sent; + _context3.next = 12; return response.json(); - case 5: - result = _context3.v; + case 12: + result = _context3.sent; Object.assign(this, { tunnelUrl: result.tunnelUrl, blockedUrlRegex: Object.assign({}, this.blockedUrlRegex, result.blockedUrlRegex) }); - _context3.n = 7; + _context3.next = 19; break; - case 6: - _context3.p = 6; - _t3 = _context3.v; - console.debug('安全隧道创建失败,错误详情:' + _t3); - case 7: - return _context3.a(2, this.tunnelUrl); - } - }, _callee3, this, [[1, 6]]); + case 16: + _context3.prev = 16; + _context3.t0 = _context3["catch"](1); + console.debug('安全隧道创建失败,错误详情:' + _context3.t0); + case 19: + return _context3.abrupt("return", this.tunnelUrl); + case 20: + case "end": + return _context3.stop(); + } + }, _callee3, this, [[1, 16]]); })); function _createTunnel() { return _createTunnel2.apply(this, arguments); @@ -24085,72 +24037,73 @@ function getServiceKey(_x2) { return _getServiceKey.apply(this, arguments); } function _getServiceKey() { - _getServiceKey = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(serviceUrl) { - var workspaceServerUrl, servicesResponse, servicesResult, matchRestData, iserverHost, encryptRequest, svckeyUrl, svcReponse, serviceKey, _t4; - return _regenerator().w(function (_context4) { - while (1) switch (_context4.p = _context4.n) { + _getServiceKey = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(serviceUrl) { + var workspaceServerUrl, servicesResponse, servicesResult, matchRestData, iserverHost, encryptRequest, svckeyUrl, svcReponse, serviceKey; + return _regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: - _context4.p = 0; + _context4.prev = 0; workspaceServerUrl = (serviceUrl && serviceUrl.match(/.+(?=(\/restjsr\/v1\/vectortile\/|\/rest\/maps\/|\/rest\/data\/))/) || [])[0]; if (workspaceServerUrl) { - _context4.n = 1; + _context4.next = 4; break; } - return _context4.a(2); - case 1: - _context4.n = 2; + return _context4.abrupt("return"); + case 4: + _context4.next = 6; return FetchRequest.get(workspaceServerUrl); - case 2: - servicesResponse = _context4.v; - _context4.n = 3; + case 6: + servicesResponse = _context4.sent; + _context4.next = 9; return servicesResponse.json(); - case 3: - servicesResult = _context4.v; + case 9: + servicesResult = _context4.sent; matchRestData = (servicesResult || []).find(function (item) { return serviceUrl.includes(item.name) && item.serviceEncryptInfo; }); if (matchRestData) { - _context4.n = 4; + _context4.next = 13; break; } - return _context4.a(2); - case 4: + return _context4.abrupt("return"); + case 13: iserverHost = workspaceServerUrl.split('/services/')[0]; encryptRequest = new EncryptRequest(iserverHost); svckeyUrl = matchRestData && "".concat(iserverHost, "/services/security/svckeys/").concat(matchRestData.serviceEncryptInfo.encrptKeyID, ".json"); - _context4.n = 5; + _context4.next = 18; return encryptRequest.request({ method: 'get', url: svckeyUrl }); - case 5: - svcReponse = _context4.v; - _context4.n = 6; + case 18: + svcReponse = _context4.sent; + _context4.next = 21; return svcReponse.json(); - case 6: - serviceKey = _context4.v; + case 21: + serviceKey = _context4.sent; if (serviceKey) { - _context4.n = 7; + _context4.next = 24; break; } - return _context4.a(2); - case 7: - return _context4.a(2, { + return _context4.abrupt("return"); + case 24: + return _context4.abrupt("return", { serviceKey: serviceKey, algorithm: matchRestData.serviceEncryptInfo.encrptSpec.algorithm }); - case 8: - _context4.p = 8; - _t4 = _context4.v; - console.error(_t4); - case 9: - return _context4.a(2); - } - }, _callee4, null, [[0, 8]]); + case 27: + _context4.prev = 27; + _context4.t0 = _context4["catch"](0); + console.error(_context4.t0); + case 30: + case "end": + return _context4.stop(); + } + }, _callee4, null, [[0, 27]]); })); return _getServiceKey.apply(this, arguments); } -;// ./src/common/overlay/Base.js +;// CONCATENATED MODULE: ./src/common/overlay/Base.js function Base_typeof(o) { "@babel/helpers - typeof"; return Base_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Base_typeof(o); } function Base_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Base_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Base_toPropertyKey(o.key), o); } } @@ -24263,7 +24216,7 @@ var CustomOverlayLayer = /*#__PURE__*/function () { value: function querySourceFeatures() {} }]); }(); -;// ./src/common/util/MapExtend.js +;// CONCATENATED MODULE: ./src/common/util/MapExtend.js function MapExtend_typeof(o) { "@babel/helpers - typeof"; return MapExtend_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MapExtend_typeof(o); } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -24401,8 +24354,10 @@ function createMapExtendExtending(product) { } return this; } - this.style.setLayoutProperty(layerID, name, value); - this._update(true); + if (this.getLayer(layerID)) { + this.style.setLayoutProperty(layerID, name, value); + this._update(true); + } return this; } }, { @@ -24637,7 +24592,7 @@ function createMapExtendExtending(product) { }]); }(product.Map); } -;// ./src/mapboxgl/core/MapExtend.js +;// CONCATENATED MODULE: ./src/mapboxgl/core/MapExtend.js function core_MapExtend_typeof(o) { "@babel/helpers - typeof"; return core_MapExtend_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, core_MapExtend_typeof(o); } function core_MapExtend_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, core_MapExtend_toPropertyKey(o.key), o); } } function core_MapExtend_createClass(e, r, t) { return r && core_MapExtend_defineProperties(e.prototype, r), t && core_MapExtend_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -24651,8 +24606,7 @@ function MapExtend_isNativeReflectConstruct() { try { var t = !Boolean.prototype function MapExtend_getPrototypeOf(t) { return MapExtend_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MapExtend_getPrototypeOf(t); } function MapExtend_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && MapExtend_setPrototypeOf(t, e); } function MapExtend_setPrototypeOf(t, e) { return MapExtend_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, MapExtend_setPrototypeOf(t, e); } -function MapExtend_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return MapExtend_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (MapExtend_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, MapExtend_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, MapExtend_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), MapExtend_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", MapExtend_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), MapExtend_regeneratorDefine2(u), MapExtend_regeneratorDefine2(u, o, "Generator"), MapExtend_regeneratorDefine2(u, n, function () { return this; }), MapExtend_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (MapExtend_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function MapExtend_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } MapExtend_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { MapExtend_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, MapExtend_regeneratorDefine2(e, r, n, t); } +function MapExtend_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ MapExtend_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == core_MapExtend_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(core_MapExtend_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function MapExtend_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function MapExtend_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { MapExtend_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { MapExtend_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. @@ -24672,30 +24626,31 @@ var MapExtend = function () { if ((external_mapboxgl_default()).VectorTileSource && (external_mapboxgl_default()).VectorTileSource.prototype.beforeLoadBak === undefined) { (external_mapboxgl_default()).VectorTileSource.prototype.beforeLoadBak = (external_mapboxgl_default()).VectorTileSource.prototype.beforeLoad; (external_mapboxgl_default()).VectorTileSource.prototype.beforeLoad = /*#__PURE__*/function () { - var _ref = MapExtend_asyncToGenerator(/*#__PURE__*/MapExtend_regenerator().m(function _callee(id, options) { + var _ref = MapExtend_asyncToGenerator(/*#__PURE__*/MapExtend_regeneratorRuntime().mark(function _callee(id, options) { var url, res; - return MapExtend_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return MapExtend_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: url = options && options.tiles && options.tiles[0]; if (!(decryptSources.values.includes(id) && url)) { - _context.n = 2; + _context.next = 6; break; } - _context.n = 1; + _context.next = 4; return getServiceKey(url); - case 1: - res = _context.v; + case 4: + res = _context.sent; if (res) { this.decryptOptions = { key: res.serviceKey, algorithm: res.algorithm }; } - case 2: + case 6: this.beforeLoadBak(id, options); - case 3: - return _context.a(2); + case 7: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -24717,17 +24672,17 @@ var MapExtend = function () { (external_mapboxgl_default()).Map.prototype._inherit = true; } }(); -;// ./src/mapboxgl/core/Base.js +;// CONCATENATED MODULE: ./src/mapboxgl/core/Base.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/common/control/img/Logo.js +;// CONCATENATED MODULE: ./src/common/control/img/Logo.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ var LogoBase64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAF4AAAAdCAYAAAAjHtusAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDY3IDc5LjE1Nzc0NywgMjAxNS8wMy8zMC0yMzo0MDo0MiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDozYWZlOGIwMi01MWE3LTRiZjYtYWVkYS05MGQ2ZTQ4YjZiMmUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODg0NkFBQUE3RjEzMTFFNzhFRjJFQkY4RjcxQjc1NjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODg0NkFBQTk3RjEzMTFFNzhFRjJFQkY4RjcxQjc1NjIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4MWI3NzdhNC1lZmEyLTQ1MzUtOGQzNi03MmRjNDkyODMzN2UiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpjYTYzODVjMi1jNDQ1LTExN2EtYTc0ZC1lM2I5MzJlMGE4Y2QiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5q1HM0AAAF/ElEQVR42tSabYhUVRjHZ7W01C1uaCRW4F3oi9SXCUnwQ9gsGUFvOEtQH1bLu5VS9sbYh5KicjYt29qiGQwVg2xWWKgocob91AvC+CWsoJqB3qHMSdTMpZyeU/+Df07n3pk7997Z6cBv99z7nHvOvf/z/pxJNZvNVI/jCKXmv6EquAmVkxPSlvtp2GItr0/96fFQForChJAWDiVYTkMYMu4XBFcYjLOwWS3sNwmn8NGzZ0h4Flv/zwIdchAnh/slCGmmKUNIBzYPaXOUr0vPuEjD71JAPh7l61embzinhV3V8nnCGmGT8LwlzSL8/yUh4Tfjo9T/CgnCIYNKycA2Qq21AcHU/VHE80Idoo3Qs0W6p0UtUnkZvEMDeVcCyqxEafF7hL8Qf0oYsIj+lfC9cH1CwhchWAGCtZO+AooQOkdC1Km1VtCb63StW73uFSzgKFUkNwBbmZGGmqowhvg8ZNpH9oXChcIcYRdeNomgxLkaH+S1SGubAxyIpFv+Zp+0DYjrAS00j/dem2VGEl6FJ4Qa4quEu8j2hTCJ+GJhe4JjfQMf6JCYPPbysMPxBlp0BUKOogEF9Rg9/heNvNKYfM0KsZUZaYxX4STGrzJa+zbhPeFH2DcK10KItcI+pI0rVElwXl1ULaKnIJhDw0oRQpTQc1zcbwRU8ATy4DR6yMlTzwkqMziEWHvubJ4Nk4ZtHdnqwvwY17xq3Z4FjrG+z2Kdrdf2ZSGD+xlLPh6t1R0jP9fI22ZzKI92yvQl7EbmBxI4S7Y+vIAOL87QZqsc5uNnssxZIcfYjXT9snCR7jjobidp+FkxA2v+Cq1QervMDmp4P7Xs3YZtE9kOC3P/By6JGaETl8ElwueYTNTDq4UDsKnd7YfCNbT239LF1udS72xYJt1UWxNfN4IIP4bWuTpEja01JtMFZFsm/AHbtHBlDE6yasA4moYTrUbvdBTXHqUrAH4uSadbyzF+vbBM2IsNkS3MNa5305JxqfA02T4TnkX8XOH1mPw8ruVejpxbI9hZD2Cz1U7LdrrUvjP/WfZinNZhr6V27hP+FPZh9aLvLxVO4DllX0G2OcKnlO/DCblxaz6uXBtmi+8mBaP3/SP8IuEIiTRoPPQm2TaEmEyXo0JU+F0YiPFD0hhOsiE/vqeEVwyTgF8L51OilcIZ2I4Ll5NttvAJPfukUeB2sk0ZPSbKIUUJpCII7+DasWy08uhNNazT0wGHI7mAtB7KqMKm38HhDdAUibTVKGicbB8YAqrJ9DRsp43JdB4qUof1HQrPE6XTQWu3Ce/inVzjXhXpMiTwUYugNVQ+p80jrUsV5EH0POKeuXO9QjhFq5GryNYvfEMCDhsftYVsB9ETtG0V9ZjfhCURhbcJFpfwVZ9jvhxsLHwTYtp2svlWQw3vXL8UnqHVSIG8l8ex+tHhBXgjddgqHEZ8ufAA2aaEnYgrF/KrPXrEmMUqZ9THLW06xhoBaVueQpkug+ewOUphE3Qv2Q5gGamXYa+QbVq4O+DQ5FHyZqrjxNt7UHh9uuRa0F7HjCF8o9PCTOGnscM7g2u1Hl9C9oeEnxC/1ajZg8JLiM9Hj9GHJseMShwL2DO0G5yEWn3Zh1QUods5CPkIoqlwAZxhXMsb6HrcEPBxchhdJ6wj29vCW4hfLOzo8J3rltYX50nXQAATSf/K4DEaGlTLvplsk/QCpoD60EQ7gLYZc8H9wq+I3yncEOEcNhuz6HWf3XEiwU/4Y8YEqVp2P10rt+8REvBGw026i4aDcbL9jF8r8Blmf4fCOzhViiscskygXRdehf3CO4hfigmTBXyQrl8TFtD1IzQX3CbcQrY3hPcRv4z8OmHPXwchVNln2MmE7BX6VwIFi/he6uxvb6JM3m0fdqvx/ATidxg2JeC7VDErAw5NzGfvwRJVheEIQ8Mg/pdwIM+UOmi9Q8ivCsrIy0tF+wVbEcLrd3Pb2XisEb4Tdlhsi4WP4RBbaLGrHfC3PrvMIezy9rTpGm5lz9LOMG15xvFxD/j5gjzjjDbMOzk+9zzt3v5bgAEAibzFeFHVgYkAAAAASUVORK5CYII="; -;// ./src/mapboxgl/control/Logo.js +;// CONCATENATED MODULE: ./src/mapboxgl/control/Logo.js function Logo_typeof(o) { "@babel/helpers - typeof"; return Logo_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Logo_typeof(o); } function Logo_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Logo_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Logo_toPropertyKey(o.key), o); } } @@ -24843,12 +24798,12 @@ var Logo = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/control/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/control/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/common/commontypes/Size.js +;// CONCATENATED MODULE: ./src/common/commontypes/Size.js function Size_typeof(o) { "@babel/helpers - typeof"; return Size_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Size_typeof(o); } function Size_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Size_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Size_toPropertyKey(o.key), o); } } @@ -24955,7 +24910,7 @@ var Size = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/commontypes/Pixel.js +;// CONCATENATED MODULE: ./src/common/commontypes/Pixel.js function Pixel_typeof(o) { "@babel/helpers - typeof"; return Pixel_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Pixel_typeof(o); } function Pixel_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Pixel_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Pixel_toPropertyKey(o.key), o); } } @@ -25152,7 +25107,7 @@ Pixel.Mode = { /** 左下模式。 */ LeftBottom: 'leftbottom' }; -;// ./src/common/commontypes/LonLat.js +;// CONCATENATED MODULE: ./src/common/commontypes/LonLat.js function LonLat_typeof(o) { "@babel/helpers - typeof"; return LonLat_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LonLat_typeof(o); } function LonLat_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LonLat_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LonLat_toPropertyKey(o.key), o); } } @@ -25177,7 +25132,7 @@ function LonLat_toPrimitive(t, r) { if ("object" != LonLat_typeof(t) || !t) retu var LonLat = /*#__PURE__*/function () { function LonLat(lon, lat) { LonLat_classCallCheck(this, LonLat); - if (Util.isArray(lon)) { + if (Util_Util.isArray(lon)) { lat = lon[1]; lon = lon[0]; } @@ -25185,13 +25140,13 @@ var LonLat = /*#__PURE__*/function () { * @member {number} [LonLat.prototype.lon=0.0] * @description 地图的单位的 X 轴(横轴)坐标。 */ - this.lon = lon ? Util.toFloat(lon) : 0.0; + this.lon = lon ? Util_Util.toFloat(lon) : 0.0; /** * @member {number} [LonLat.prototype.lat=0.0] * @description 地图的单位的 Y 轴(纵轴)坐标。 */ - this.lat = lat ? Util.toFloat(lat) : 0.0; + this.lat = lat ? Util_Util.toFloat(lat) : 0.0; this.CLASS_NAME = "SuperMap.LonLat"; } @@ -25254,7 +25209,7 @@ var LonLat = /*#__PURE__*/function () { if (lon == null || lat == null) { throw new TypeError('LonLat.add cannot receive null values'); } - return new LonLat(this.lon + Util.toFloat(lon), this.lat + Util.toFloat(lat)); + return new LonLat(this.lon + Util_Util.toFloat(lon), this.lat + Util_Util.toFloat(lat)); } /** @@ -25350,14 +25305,14 @@ var LonLat = /*#__PURE__*/function () { }, { key: "fromArray", value: function fromArray(arr) { - var gotArr = Util.isArray(arr), + var gotArr = Util_Util.isArray(arr), lon = gotArr && arr[0], lat = gotArr && arr[1]; return new LonLat(lon, lat); } }]); }(); -;// ./src/common/commontypes/Bounds.js +;// CONCATENATED MODULE: ./src/common/commontypes/Bounds.js function Bounds_typeof(o) { "@babel/helpers - typeof"; return Bounds_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Bounds_typeof(o); } function Bounds_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Bounds_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Bounds_toPropertyKey(o.key), o); } } @@ -25391,7 +25346,7 @@ function Bounds_toPrimitive(t, r) { if ("object" != Bounds_typeof(t) || !t) retu var Bounds = /*#__PURE__*/function () { function Bounds(left, bottom, right, top) { Bounds_classCallCheck(this, Bounds); - if (Util.isArray(left)) { + if (Util_Util.isArray(left)) { top = left[3]; right = left[2]; bottom = left[1]; @@ -25401,25 +25356,25 @@ var Bounds = /*#__PURE__*/function () { * @member {number} Bounds.prototype.left * @description 最小的水平坐标系。 */ - this.left = left != null ? Util.toFloat(left) : this.left; + this.left = left != null ? Util_Util.toFloat(left) : this.left; /** * @member {number} Bounds.prototype.bottom * @description 最小的垂直坐标系。 */ - this.bottom = bottom != null ? Util.toFloat(bottom) : this.bottom; + this.bottom = bottom != null ? Util_Util.toFloat(bottom) : this.bottom; /** * @member {number} Bounds.prototype.right * @description 最大的水平坐标系。 */ - this.right = right != null ? Util.toFloat(right) : this.right; + this.right = right != null ? Util_Util.toFloat(right) : this.right; /** * @member {number} Bounds.prototype.top * @description 最大的垂直坐标系。 */ - this.top = top != null ? Util.toFloat(top) : this.top; + this.top = top != null ? Util_Util.toFloat(top) : this.top; /** * @member {LonLat} Bounds.prototype.centerLonLat @@ -26106,7 +26061,7 @@ var Bounds = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/commontypes/geometry/Point.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/Point.js function Point_typeof(o) { "@babel/helpers - typeof"; return Point_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Point_typeof(o); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || Point_unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -26123,7 +26078,7 @@ function Point_callSuper(t, o, e) { return o = Point_getPrototypeOf(o), Point_po function Point_possibleConstructorReturn(t, e) { if (e && ("object" == Point_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Point_assertThisInitialized(t); } function Point_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Point_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Point_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function _superPropGet(t, o, e, r) { var p = _get(Point_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function _superPropGet(t, e, o, r) { var p = _get(Point_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function _get() { return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = _superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, _get.apply(null, arguments); } function _superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Point_getPrototypeOf(t));); return t; } function Point_getPrototypeOf(t) { return Point_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Point_getPrototypeOf(t); } @@ -26228,7 +26183,7 @@ var Point = /*#__PURE__*/function (_Geometry) { } // catch any randomly tagged-on properties - Util.applyDefaults(obj, this); + Util_Util.applyDefaults(obj, this); return obj; } @@ -26320,8 +26275,8 @@ var Point = /*#__PURE__*/function (_Geometry) { return [this]; } }]); -}(Geometry); -;// ./src/common/commontypes/geometry/Collection.js +}(Geometry_Geometry); +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/Collection.js function Collection_typeof(o) { "@babel/helpers - typeof"; return Collection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Collection_typeof(o); } function Collection_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Collection_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Collection_toPropertyKey(o.key), o); } } @@ -26332,7 +26287,7 @@ function Collection_callSuper(t, o, e) { return o = Collection_getPrototypeOf(o) function Collection_possibleConstructorReturn(t, e) { if (e && ("object" == Collection_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Collection_assertThisInitialized(t); } function Collection_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Collection_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Collection_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Collection_superPropGet(t, o, e, r) { var p = Collection_get(Collection_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Collection_superPropGet(t, e, o, r) { var p = Collection_get(Collection_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Collection_get() { return Collection_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Collection_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Collection_get.apply(null, arguments); } function Collection_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Collection_getPrototypeOf(t));); return t; } function Collection_getPrototypeOf(t) { return Collection_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Collection_getPrototypeOf(t); } @@ -26413,7 +26368,7 @@ var Collection = /*#__PURE__*/function (_Geometry) { } // catch any randomly tagged-on properties - Util.applyDefaults(geometry, this); + Util_Util.applyDefaults(geometry, this); return geometry; } @@ -26465,7 +26420,7 @@ var Collection = /*#__PURE__*/function (_Geometry) { }, { key: "addComponents", value: function addComponents(components) { - if (!Util.isArray(components)) { + if (!Util_Util.isArray(components)) { components = [components]; } for (var i = 0, len = components.length; i < len; i++) { @@ -26485,7 +26440,7 @@ var Collection = /*#__PURE__*/function (_Geometry) { value: function addComponent(component, index) { var added = false; if (component) { - if (this.componentTypes == null || Util.indexOf(this.componentTypes, component.CLASS_NAME) > -1) { + if (this.componentTypes == null || Util_Util.indexOf(this.componentTypes, component.CLASS_NAME) > -1) { if (index != null && index < this.components.length) { var components1 = this.components.slice(0, index); var components2 = this.components.slice(index, this.components.length); @@ -26512,7 +26467,7 @@ var Collection = /*#__PURE__*/function (_Geometry) { key: "removeComponents", value: function removeComponents(components) { var removed = false; - if (!Util.isArray(components)) { + if (!Util_Util.isArray(components)) { components = [components]; } for (var i = components.length - 1; i >= 0; --i) { @@ -26530,7 +26485,7 @@ var Collection = /*#__PURE__*/function (_Geometry) { }, { key: "removeComponent", value: function removeComponent(component) { - Util.removeItem(this.components, component); + Util_Util.removeItem(this.components, component); // clearBounds() so that it gets recalculated on the next call // to this.getBounds(); @@ -26565,7 +26520,7 @@ var Collection = /*#__PURE__*/function (_Geometry) { var equivalent = true; if (!geometry || !geometry.CLASS_NAME || this.CLASS_NAME !== geometry.CLASS_NAME) { equivalent = false; - } else if (!Util.isArray(geometry.components) || geometry.components.length !== this.components.length) { + } else if (!Util_Util.isArray(geometry.components) || geometry.components.length !== this.components.length) { equivalent = false; } else { for (var i = 0, len = this.components.length; i < len; ++i) { @@ -26594,8 +26549,8 @@ var Collection = /*#__PURE__*/function (_Geometry) { return vertices; } }]); -}(Geometry); -;// ./src/common/commontypes/geometry/MultiPoint.js +}(Geometry_Geometry); +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/MultiPoint.js function MultiPoint_typeof(o) { "@babel/helpers - typeof"; return MultiPoint_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MultiPoint_typeof(o); } function MultiPoint_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MultiPoint_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MultiPoint_toPropertyKey(o.key), o); } } @@ -26669,7 +26624,7 @@ var MultiPoint = /*#__PURE__*/function (_Collection) { } }]); }(Collection); -;// ./src/common/commontypes/geometry/Curve.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/Curve.js function Curve_typeof(o) { "@babel/helpers - typeof"; return Curve_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Curve_typeof(o); } function Curve_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Curve_toPropertyKey(o.key), o); } } function Curve_createClass(e, r, t) { return r && Curve_defineProperties(e.prototype, r), t && Curve_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -26720,7 +26675,7 @@ var Curve = /*#__PURE__*/function (_MultiPoint) { Curve_inherits(Curve, _MultiPoint); return Curve_createClass(Curve); }(MultiPoint); -;// ./src/common/commontypes/geometry/LineString.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/LineString.js function LineString_typeof(o) { "@babel/helpers - typeof"; return LineString_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LineString_typeof(o); } function LineString_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LineString_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LineString_toPropertyKey(o.key), o); } } @@ -26731,7 +26686,7 @@ function LineString_callSuper(t, o, e) { return o = LineString_getPrototypeOf(o) function LineString_possibleConstructorReturn(t, e) { if (e && ("object" == LineString_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return LineString_assertThisInitialized(t); } function LineString_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function LineString_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (LineString_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function LineString_superPropGet(t, o, e, r) { var p = LineString_get(LineString_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function LineString_superPropGet(t, e, o, r) { var p = LineString_get(LineString_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function LineString_get() { return LineString_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = LineString_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, LineString_get.apply(null, arguments); } function LineString_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = LineString_getPrototypeOf(t));); return t; } function LineString_getPrototypeOf(t) { return LineString_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, LineString_getPrototypeOf(t); } @@ -27061,7 +27016,7 @@ var LineString = /*#__PURE__*/function (_Curve) { } }]); }(Curve); -;// ./src/common/commontypes/geometry/LinearRing.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/LinearRing.js function LinearRing_typeof(o) { "@babel/helpers - typeof"; return LinearRing_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LinearRing_typeof(o); } function LinearRing_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LinearRing_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LinearRing_toPropertyKey(o.key), o); } } @@ -27072,7 +27027,7 @@ function LinearRing_callSuper(t, o, e) { return o = LinearRing_getPrototypeOf(o) function LinearRing_possibleConstructorReturn(t, e) { if (e && ("object" == LinearRing_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return LinearRing_assertThisInitialized(t); } function LinearRing_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function LinearRing_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (LinearRing_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function LinearRing_superPropGet(t, o, e, r) { var p = LinearRing_get(LinearRing_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function LinearRing_superPropGet(t, e, o, r) { var p = LinearRing_get(LinearRing_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function LinearRing_get() { return LinearRing_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = LinearRing_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, LinearRing_get.apply(null, arguments); } function LinearRing_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = LinearRing_getPrototypeOf(t));); return t; } function LinearRing_getPrototypeOf(t) { return LinearRing_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, LinearRing_getPrototypeOf(t); } @@ -27102,7 +27057,7 @@ function LinearRing_setPrototypeOf(t, e) { return LinearRing_setPrototypeOf = Ob * var linearRing = new GeometryLinearRing(points); * @usage */ -var LinearRing = /*#__PURE__*/function (_LineString) { +var LinearRing_LinearRing = /*#__PURE__*/function (_LineString) { function LinearRing(points) { var _this; LinearRing_classCallCheck(this, LinearRing); @@ -27121,7 +27076,7 @@ var LinearRing = /*#__PURE__*/function (_LineString) { return LinearRing_createClass(LinearRing, [{ key: "addComponents", value: function addComponents(components) { - if (!Util.isArray(components)) { + if (!Util_Util.isArray(components)) { components = [components]; } var len = components.length; @@ -27220,7 +27175,7 @@ var LinearRing = /*#__PURE__*/function (_LineString) { } }]); }(LineString); -;// ./src/common/commontypes/geometry/Polygon.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/Polygon.js function Polygon_typeof(o) { "@babel/helpers - typeof"; return Polygon_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Polygon_typeof(o); } function Polygon_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Polygon_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Polygon_toPropertyKey(o.key), o); } } @@ -27260,7 +27215,7 @@ function Polygon_setPrototypeOf(t, e) { return Polygon_setPrototypeOf = Object.s * var region = new GeometryPolygon([linearRings]); * @usage */ -var Polygon = /*#__PURE__*/function (_Collection) { +var Polygon_Polygon = /*#__PURE__*/function (_Collection) { function Polygon(components) { var _this; Polygon_classCallCheck(this, Polygon); @@ -27296,7 +27251,7 @@ var Polygon = /*#__PURE__*/function (_Collection) { } }]); }(Collection); -;// ./src/common/commontypes/Feature.js +;// CONCATENATED MODULE: ./src/common/commontypes/Feature.js function Feature_typeof(o) { "@babel/helpers - typeof"; return Feature_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Feature_typeof(o); } function Feature_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Feature_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Feature_toPropertyKey(o.key), o); } } @@ -27318,7 +27273,7 @@ function Feature_toPrimitive(t, r) { if ("object" != Feature_typeof(t) || !t) re * @param {Object} data - 数据对象。 * @usage */ -var Feature = /*#__PURE__*/function () { +var Feature_Feature = /*#__PURE__*/function () { function Feature(layer, lonlat, data) { Feature_classCallCheck(this, Feature); this.CLASS_NAME = "SuperMap.Feature"; @@ -27333,7 +27288,7 @@ var Feature = /*#__PURE__*/function () { * @member {string} Feature.prototype.id * @description 要素 ID。 */ - this.id = Util.createUniqueID(this.CLASS_NAME + "_"); + this.id = Util_Util.createUniqueID(this.CLASS_NAME + "_"); /** * @member {LonLat} Feature.prototype.lonlat @@ -27362,7 +27317,7 @@ var Feature = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/commontypes/Vector.js +;// CONCATENATED MODULE: ./src/common/commontypes/Vector.js function Vector_typeof(o) { "@babel/helpers - typeof"; return Vector_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Vector_typeof(o); } function Vector_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Vector_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Vector_toPropertyKey(o.key), o); } } @@ -27373,7 +27328,7 @@ function Vector_callSuper(t, o, e) { return o = Vector_getPrototypeOf(o), Vector function Vector_possibleConstructorReturn(t, e) { if (e && ("object" == Vector_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Vector_assertThisInitialized(t); } function Vector_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Vector_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Vector_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Vector_superPropGet(t, o, e, r) { var p = Vector_get(Vector_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Vector_superPropGet(t, e, o, r) { var p = Vector_get(Vector_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Vector_get() { return Vector_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Vector_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Vector_get.apply(null, arguments); } function Vector_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Vector_getPrototypeOf(t));); return t; } function Vector_getPrototypeOf(t) { return Vector_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Vector_getPrototypeOf(t); } @@ -27440,7 +27395,7 @@ var Vector = /*#__PURE__*/function (_Feature) { */ _this.attributes = {}; if (attributes) { - _this.attributes = Util.extend(_this.attributes, attributes); + _this.attributes = Util_Util.extend(_this.attributes, attributes); } /** @@ -27616,7 +27571,7 @@ var Vector = /*#__PURE__*/function (_Feature) { } } }]); -}(Feature); +}(Feature_Feature); /** * * @typedef {Object} FeatureVector.style @@ -27691,7 +27646,7 @@ var Vector = /*#__PURE__*/function (_Feature) { * vectorLayer.addFeatures([pointFeature]); * } */ -;// ./src/common/format/Format.js +;// CONCATENATED MODULE: ./src/common/format/Format.js function Format_typeof(o) { "@babel/helpers - typeof"; return Format_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Format_typeof(o); } function Format_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Format_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Format_toPropertyKey(o.key), o); } } @@ -27727,7 +27682,7 @@ var Format = /*#__PURE__*/function () { * @description 保持最近读到的数据的引用(通过 data 属性)。 */ this.keepData = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.options = options; this.CLASS_NAME = "SuperMap.Format"; } @@ -27766,7 +27721,7 @@ var Format = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/format/JSON.js +;// CONCATENATED MODULE: ./src/common/format/JSON.js function JSON_typeof(o) { "@babel/helpers - typeof"; return JSON_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, JSON_typeof(o); } function JSON_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function JSON_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, JSON_toPropertyKey(o.key), o); } } @@ -28075,7 +28030,7 @@ var JSONFormat = /*#__PURE__*/function (_Format) { } }]); }(Format); -;// ./src/common/commontypes/geometry/MultiLineString.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/MultiLineString.js function MultiLineString_typeof(o) { "@babel/helpers - typeof"; return MultiLineString_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MultiLineString_typeof(o); } function MultiLineString_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MultiLineString_toPropertyKey(o.key), o); } } function MultiLineString_createClass(e, r, t) { return r && MultiLineString_defineProperties(e.prototype, r), t && MultiLineString_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -28130,7 +28085,7 @@ var MultiLineString = /*#__PURE__*/function (_Collection) { MultiLineString_inherits(MultiLineString, _Collection); return MultiLineString_createClass(MultiLineString); }(Collection); -;// ./src/common/commontypes/geometry/MultiPolygon.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/MultiPolygon.js function MultiPolygon_typeof(o) { "@babel/helpers - typeof"; return MultiPolygon_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MultiPolygon_typeof(o); } function MultiPolygon_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MultiPolygon_toPropertyKey(o.key), o); } } function MultiPolygon_createClass(e, r, t) { return r && MultiPolygon_defineProperties(e.prototype, r), t && MultiPolygon_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -28188,7 +28143,7 @@ var MultiPolygon = /*#__PURE__*/function (_Collection) { MultiPolygon_inherits(MultiPolygon, _Collection); return MultiPolygon_createClass(MultiPolygon); }(Collection); -;// ./src/common/iServer/ServerColor.js +;// CONCATENATED MODULE: ./src/common/iServer/ServerColor.js function ServerColor_typeof(o) { "@babel/helpers - typeof"; return ServerColor_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServerColor_typeof(o); } function ServerColor_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ServerColor_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServerColor_toPropertyKey(o.key), o); } } @@ -28278,7 +28233,7 @@ var ServerColor = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ServerStyle.js +;// CONCATENATED MODULE: ./src/common/iServer/ServerStyle.js function ServerStyle_typeof(o) { "@babel/helpers - typeof"; return ServerStyle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServerStyle_typeof(o); } function ServerStyle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ServerStyle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServerStyle_toPropertyKey(o.key), o); } } @@ -28414,7 +28369,7 @@ var ServerStyle = /*#__PURE__*/function () { */ this.markerSymbolID = -1; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ServerStyle"; } @@ -28462,7 +28417,7 @@ var ServerStyle = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var styleObj = {}; - styleObj = Util.copyAttributes(styleObj, this); + styleObj = Util_Util.copyAttributes(styleObj, this); //暂时先忽略serverColor往Json的转换 return styleObj; } @@ -28499,7 +28454,7 @@ var ServerStyle = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/PointWithMeasure.js +;// CONCATENATED MODULE: ./src/common/iServer/PointWithMeasure.js function PointWithMeasure_typeof(o) { "@babel/helpers - typeof"; return PointWithMeasure_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PointWithMeasure_typeof(o); } function PointWithMeasure_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function PointWithMeasure_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, PointWithMeasure_toPropertyKey(o.key), o); } } @@ -28543,7 +28498,7 @@ var PointWithMeasure = /*#__PURE__*/function (_Point) { */ _this.measure = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.PointWithMeasure"; return _this; @@ -28619,7 +28574,7 @@ var PointWithMeasure = /*#__PURE__*/function (_Point) { } }]); }(Point); -;// ./src/common/iServer/Route.js +;// CONCATENATED MODULE: ./src/common/iServer/Route.js function Route_typeof(o) { "@babel/helpers - typeof"; return Route_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Route_typeof(o); } function Route_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Route_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Route_toPropertyKey(o.key), o); } } @@ -28654,7 +28609,6 @@ function Route_setPrototypeOf(t, e) { return Route_setPrototypeOf = Object.setPr * @param {number} options.length - 路由对象的长度。单位与数据集的单位相同。 * @param {number} [options.maxM] - 最大线性度量值,即所有结点到起始点的量算距离中最大值。 * @param {number} [options.minM] - 最小线性度量值,即所有结点到起始点的量算距离中最小值。 - * @param {string} [options.type] - 数据类型,如:"LINEM"。 * @extends GeometryCollection * @usage */ @@ -28731,7 +28685,7 @@ var Route = /*#__PURE__*/function (_Collection) { * @member {string} Route.prototype.type * @description 服务端几何对象类型。 */ - _this.type = null; + _this.type = "LINEM"; /** * @member {Array.} [Route.prototype.componentTypes=LineString] @@ -28739,7 +28693,7 @@ var Route = /*#__PURE__*/function (_Collection) { */ _this.componentTypes = ["SuperMap.Geometry.LinearRing", "SuperMap.Geometry.LineString"]; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.Route"; _this.geometryType = "LINEM"; @@ -28845,7 +28799,7 @@ var Route = /*#__PURE__*/function (_Collection) { pointIndex += geoParts[i]; //判断线是否闭合,如果闭合,则返回LinearRing,否则返回LineString if (pointList[0].equals(pointList[geoParts[i] - 1])) { - lineList.push(new LinearRing(pointList)); + lineList.push(new LinearRing_LinearRing(pointList)); } else { lineList.push(new LineString(pointList)); } @@ -28867,7 +28821,7 @@ var Route = /*#__PURE__*/function (_Collection) { } }]); }(Collection); -;// ./src/common/REST.js +;// CONCATENATED MODULE: ./src/common/REST.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -28947,7 +28901,7 @@ var ServerType = { * const result = GeometryType.LINE; * ``` */ -var GeometryType = { +var REST_GeometryType = { /** 线几何对象。 */ LINE: "LINE", /** 路由对象。 */ @@ -30519,9 +30473,9 @@ var ChartType = { * ``` */ var ClipAnalystMode = { - /** 裁剪分析操作。 */ + /** 内部裁剪,保留落在裁剪区范围内的数据。 */ CLIP: "clip", - /** 求交分析操作。 */ + /** 外部裁剪,保留落在裁剪区范围外的数据。 */ INTERSECT: "intersect" }; @@ -31335,7 +31289,7 @@ var DisplayModeChart = { OTHER: "OTHER" }; -;// ./src/common/iServer/ServerGeometry.js +;// CONCATENATED MODULE: ./src/common/iServer/ServerGeometry.js function ServerGeometry_typeof(o) { "@babel/helpers - typeof"; return ServerGeometry_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServerGeometry_typeof(o); } function ServerGeometry_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ServerGeometry_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServerGeometry_toPropertyKey(o.key), o); } } @@ -31427,7 +31381,7 @@ var ServerGeometry = /*#__PURE__*/function () { */ this.prjCoordSys = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = 'SuperMap.ServerGeometry'; } @@ -31460,22 +31414,22 @@ var ServerGeometry = /*#__PURE__*/function () { var me = this, geoType = me.type; switch (geoType.toUpperCase()) { - case GeometryType.POINT: - case GeometryType.POINT3D: + case REST_GeometryType.POINT: + case REST_GeometryType.POINT3D: return me.toGeoPoint(); - case GeometryType.LINE: + case REST_GeometryType.LINE: return me.toGeoLine(); - case GeometryType.LINEM: + case REST_GeometryType.LINEM: return me.toGeoLinem(); - case GeometryType.REGION: + case REST_GeometryType.REGION: return me.toGeoRegion(); - case GeometryType.POINTEPS: + case REST_GeometryType.POINTEPS: return me.toGeoPoint(); - case GeometryType.LINEEPS: + case REST_GeometryType.LINEEPS: return me.toGeoLineEPS(); - case GeometryType.REGIONEPS: + case REST_GeometryType.REGIONEPS: return me.toGeoRegionEPS(); - case GeometryType.GEOCOMPOUND: + case REST_GeometryType.GEOCOMPOUND: return me.transformGeoCompound(); } } @@ -31542,7 +31496,7 @@ var ServerGeometry = /*#__PURE__*/function () { } //判断线是否闭合,如果闭合,则返回LinearRing,否则返回LineString if (pointList[0].equals(pointList[geoParts[0] - 1])) { - return new LinearRing(pointList); + return new LinearRing_LinearRing(pointList); } else { return new LineString(pointList); } @@ -31600,7 +31554,7 @@ var ServerGeometry = /*#__PURE__*/function () { //判断线是否闭合,如果闭合,则返回LinearRing,否则返回LineString if (pointList[0].equals(pointList[geoParts[0] - 1])) { lineEPS = LineString.createLineEPS(pointList); - return new LinearRing(lineEPS); + return new LinearRing_LinearRing(lineEPS); } else { lineEPS = LineString.createLineEPS(pointList); return new LineString(lineEPS); @@ -31665,7 +31619,7 @@ var ServerGeometry = /*#__PURE__*/function () { m = _geoPoints$i4.m; pointList.push(new Point([x, y, z, m])); } - polygonArray.push(new Polygon([new LinearRing(pointList)])); + polygonArray.push(new Polygon_Polygon([new LinearRing_LinearRing(pointList)])); return new MultiPolygon(polygonArray); } //处理复杂面 @@ -31685,7 +31639,7 @@ var ServerGeometry = /*#__PURE__*/function () { pointList.push(new Point([_x4, _y4, _z4, _m4])); } pointIndex += geoParts[_i2]; - var polygon = new Polygon([new LinearRing(pointList)]); + var polygon = new Polygon_Polygon([new LinearRing_LinearRing(pointList)]); pointList = []; polygonArrayTemp.push(polygon); if (geoTopo.length === 0) { @@ -31742,7 +31696,7 @@ var ServerGeometry = /*#__PURE__*/function () { polygonArray[polyLength - 1].components = polygonArray[polyLength - 1].components.concat(CCWArray); } else { for (var k = 0, length = CCWArray.length; k < length; k++) { - polygonArray.push(new Polygon(CCWArray)); + polygonArray.push(new Polygon_Polygon(CCWArray)); } } } @@ -31780,7 +31734,7 @@ var ServerGeometry = /*#__PURE__*/function () { pointList.push(new Point([x, y, z, m])); } lineEPS = LineString.createLineEPS(pointList); - polygonArray.push(new Polygon([new LinearRing(lineEPS)])); + polygonArray.push(new Polygon_Polygon([new LinearRing_LinearRing(lineEPS)])); return new MultiPolygon(polygonArray); } //处理复杂面 @@ -31801,7 +31755,7 @@ var ServerGeometry = /*#__PURE__*/function () { } pointIndex += geoParts[_i6]; lineEPS = LineString.createLineEPS(pointList); - var polygon = new Polygon([new LinearRing(lineEPS)]); + var polygon = new Polygon_Polygon([new LinearRing_LinearRing(lineEPS)]); pointList = []; polygonArrayTemp.push(polygon); if (geoTopo.length === 0) { @@ -31858,7 +31812,7 @@ var ServerGeometry = /*#__PURE__*/function () { polygonArray[polyLength - 1].components = polygonArray[polyLength - 1].components.concat(CCWArray); } else { for (var k = 0, length = CCWArray.length; k < length; k++) { - polygonArray.push(new Polygon(CCWArray)); + polygonArray.push(new Polygon_Polygon(CCWArray)); } } } @@ -31950,11 +31904,11 @@ var ServerGeometry = /*#__PURE__*/function () { } } //这里className不是多点就全部是算线 - type = className == 'SuperMap.Geometry.MultiPoint' ? GeometryType.POINT : GeometryType.LINE; + type = className == 'SuperMap.Geometry.MultiPoint' ? REST_GeometryType.POINT : REST_GeometryType.LINE; } else if (geometry instanceof MultiPolygon) { var _ilen = icomponents.length; - for (var _i0 = 0; _i0 < _ilen; _i0++) { - var polygon = icomponents[_i0], + for (var _i10 = 0; _i10 < _ilen; _i10++) { + var polygon = icomponents[_i10], linearRingOfPolygon = polygon.components, linearRingOfPolygonLen = linearRingOfPolygon.length; for (var _j3 = 0; _j3 < linearRingOfPolygonLen; _j3++) { @@ -31977,11 +31931,11 @@ var ServerGeometry = /*#__PURE__*/function () { points.push(new Point([_x7, _y7, _z7, _m7])); } } - type = GeometryType.REGION; - } else if (geometry instanceof Polygon) { + type = REST_GeometryType.REGION; + } else if (geometry instanceof Polygon_Polygon) { var _ilen2 = icomponents.length; - for (var _i1 = 0; _i1 < _ilen2; _i1++) { - var _vertices2 = icomponents[_i1].getVertices(); + for (var _i11 = 0; _i11 < _ilen2; _i11++) { + var _vertices2 = icomponents[_i11].getVertices(); var _partPointsCount2 = _vertices2.length + 1; parts.push(_partPointsCount2); for (var _j4 = 0; _j4 < _partPointsCount2 - 1; _j4++) { @@ -31999,29 +31953,29 @@ var ServerGeometry = /*#__PURE__*/function () { _m9 = _vertices2$.m; points.push(new Point([_x9, _y9, _z9, _m9])); } - type = GeometryType.REGION; + type = REST_GeometryType.REGION; } else { var _vertices3 = geometry.getVertices(); var geometryVerticesCount = _vertices3.length; for (var _j5 = 0; _j5 < geometryVerticesCount; _j5++) { var _vertices3$_j = _vertices3[_j5], - _x0 = _vertices3$_j.x, - _y0 = _vertices3$_j.y, - _z0 = _vertices3$_j.z, - _m0 = _vertices3$_j.m; - points.push(new Point([_x0, _y0, _z0, _m0])); + _x10 = _vertices3$_j.x, + _y10 = _vertices3$_j.y, + _z10 = _vertices3$_j.z, + _m10 = _vertices3$_j.m; + points.push(new Point([_x10, _y10, _z10, _m10])); } - if (geometry instanceof LinearRing) { + if (geometry instanceof LinearRing_LinearRing) { var _vertices3$ = _vertices3[0], - _x1 = _vertices3$.x, - _y1 = _vertices3$.y, - _z1 = _vertices3$.z, - _m1 = _vertices3$.m; - points.push(new Point([_x1, _y1, _z1, _m1])); + _x11 = _vertices3$.x, + _y11 = _vertices3$.y, + _z11 = _vertices3$.z, + _m11 = _vertices3$.m; + points.push(new Point([_x11, _y11, _z11, _m11])); geometryVerticesCount++; } parts.push(geometryVerticesCount); - type = geometry instanceof Point ? GeometryType.POINT : GeometryType.LINE; + type = geometry instanceof Point ? REST_GeometryType.POINT : REST_GeometryType.LINE; } return new ServerGeometry({ id: id, @@ -32081,7 +32035,7 @@ var ServerGeometry = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/format/GeoJSON.js +;// CONCATENATED MODULE: ./src/common/format/GeoJSON.js function GeoJSON_typeof(o) { "@babel/helpers - typeof"; return GeoJSON_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoJSON_typeof(o); } function GeoJSON_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoJSON_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoJSON_toPropertyKey(o.key), o); } } @@ -32092,7 +32046,7 @@ function GeoJSON_callSuper(t, o, e) { return o = GeoJSON_getPrototypeOf(o), GeoJ function GeoJSON_possibleConstructorReturn(t, e) { if (e && ("object" == GeoJSON_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeoJSON_assertThisInitialized(t); } function GeoJSON_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeoJSON_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeoJSON_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeoJSON_superPropGet(t, o, e, r) { var p = GeoJSON_get(GeoJSON_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeoJSON_superPropGet(t, e, o, r) { var p = GeoJSON_get(GeoJSON_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeoJSON_get() { return GeoJSON_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeoJSON_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeoJSON_get.apply(null, arguments); } function GeoJSON_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeoJSON_getPrototypeOf(t));); return t; } function GeoJSON_getPrototypeOf(t) { return GeoJSON_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeoJSON_getPrototypeOf(t); } @@ -32232,10 +32186,10 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { } catch (err) { throw err; } - r = new LinearRing(l.components); + r = new LinearRing_LinearRing(l.components); rings.push(r); } - return new Polygon(rings); + return new Polygon_Polygon(rings); }, /** * @function GeoJSONFormat.parseCoords.multipolygon @@ -32266,7 +32220,7 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { if (array.length != 2) { throw "GeoJSON box coordinates must have 2 elements"; } - return new Polygon([new LinearRing([new Point(array[0][0], array[0][1]), new Point(array[1][0], array[0][1]), new Point(array[1][0], array[1][1]), new Point(array[0][0], array[1][1]), new Point(array[0][0], array[0][1])])]); + return new Polygon_Polygon([new LinearRing_LinearRing([new Point(array[0][0], array[0][1]), new Point(array[1][0], array[0][1]), new Point(array[1][0], array[1][1]), new Point(array[0][0], array[1][1]), new Point(array[0][0], array[0][1])])]); } }; /** @@ -32587,7 +32541,7 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { value: function fromGeoJSON(json, type, filter) { var _this2 = this; var feature = this.read(json, type, filter); - if (!Util.isArray(feature)) { + if (!Util_Util.isArray(feature)) { return this._toiSevrerFeature(feature); } return feature.map(function (element) { @@ -32611,7 +32565,7 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { var geojson = { "type": null }; - if (Util.isArray(obj)) { + if (Util_Util.isArray(obj)) { geojson.type = "FeatureCollection"; var numFeatures = obj.length; geojson.features = new Array(numFeatures); @@ -32649,7 +32603,7 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { var valid = false; switch (type) { case "Geometry": - if (Util.indexOf(["Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "Box", "GeometryCollection"], obj.type) == -1) { + if (Util_Util.indexOf(["Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "Box", "GeometryCollection"], obj.type) == -1) { // unsupported geometry type //console.error("Unsupported geometry type: " + // obj.type); @@ -32726,7 +32680,7 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { } var geometry; if (obj.type == "GeometryCollection") { - if (!Util.isArray(obj.geometries)) { + if (!Util_Util.isArray(obj.geometries)) { throw "GeometryCollection must have geometries array: " + obj; } var numGeom = obj.geometries.length; @@ -32736,7 +32690,7 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { } geometry = new Collection(components); } else { - if (!Util.isArray(obj.coordinates)) { + if (!Util_Util.isArray(obj.coordinates)) { throw "Geometry must have coordinates array: " + obj; } if (!this.parseCoords[obj.type.toLowerCase()]) { @@ -32860,7 +32814,7 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { return null; } if (obj.type === 'FeatureCollection') { - return Util.isArray(obj.features) ? 'FeatureCollection' : null; + return Util_Util.isArray(obj.features) ? 'FeatureCollection' : null; } if (obj.type === 'Feature') { if (!obj.hasOwnProperty('geometry')) { @@ -32873,20 +32827,20 @@ var GeoJSON = /*#__PURE__*/function (_JSONFormat) { return null; } if (obj.type === 'GeometryCollection') { - return Util.isArray(obj.geometries) ? 'Geometry' : null; + return Util_Util.isArray(obj.geometries) ? 'Geometry' : null; } - return Util.isArray(obj.coordinates) ? 'Geometry' : null; + return Util_Util.isArray(obj.coordinates) ? 'Geometry' : null; } }]); }(JSONFormat); -;// ./src/common/util/BaseUtil.js +;// CONCATENATED MODULE: ./src/common/util/BaseUtil.js function isString(str) { return typeof str === 'string' && str.constructor === String; } function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; } -function isObject(obj) { +function BaseUtil_isObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'; } function isValidLatlng(coord) { @@ -32904,11 +32858,11 @@ function featureCoordValid(feature) { } } } -;// ./src/common/mapping/config/MunicipalCenter.json +;// CONCATENATED MODULE: ./src/common/mapping/config/MunicipalCenter.json var MunicipalCenter_namespaceObject = /*#__PURE__*/JSON.parse('[{"name":"克拉玛依市","coord":[85.01486759299489,45.406422237230046]},{"name":"昌吉回族自治州","coord":[88.7154624754753,44.26991024636568]},{"name":"石河子市","coord":[86.0208600035924,44.239045558096805]},{"name":"霍林郭勒市","coord":[114.73479243733115,44.16058374713977]},{"name":"本溪市","coord":[124.64357865201586,41.177197783134275]},{"name":"嘉峪关市","coord":[98.16891560537093,39.76279786284264]},{"name":"莱芜市","coord":[117.65723565456207,36.27916499211527]},{"name":"神农架林区","coord":[110.48296222218153,31.581260143666697]},{"name":"天门市","coord":[113.00615321481195,30.64105781887143]},{"name":"鄂州市","coord":[114.94764081970385,30.325634953844585]},{"name":"潜江市","coord":[112.70703817700621,30.349210666019893]},{"name":"仙桃市","coord":[113.34688900729822,30.315951161935402]},{"name":"萍乡市","coord":[113.88072263074415,27.47193090553213]},{"name":"台湾省","coord":[120.14338943402045,23.596002465926095]},{"name":"东莞市","coord":[113.89443658529342,22.897826158636448]},{"name":"中山市","coord":[113.37118387764659,22.501478858616522]},{"name":"珠海市","coord":[113.21799258934986,22.23782602992192]},{"name":"北海市","coord":[109.18248083043899,21.695773689750148]},{"name":"香港","coord":[114.20689279508653,22.36016760139811]},{"name":"舟山市","coord":[122.22514712841459,30.338633120695956]},{"name":"克孜勒苏柯尔克孜","coord":[74.62910472637343,39.59886016069875]},{"name":"喀什地区","coord":[77.19899922143753,37.85462871211595]},{"name":"阿克苏地区","coord":[81.43930290016381,41.067304799230456]},{"name":"和田地区","coord":[80.69780509160952,36.95287032287055]},{"name":"阿里地区","coord":[82.536487505389,32.69566569631762]},{"name":"日喀则地区","coord":[86.5996831353606,29.54861754814263]},{"name":"那曲地区","coord":[88.32523292667608,33.20600450932715]},{"name":"玉树藏族自治州","coord":[95.2107128446203,33.90320387919257]},{"name":"迪庆藏族自治州","coord":[99.42465312188943,28.052797714348895]},{"name":"怒江傈傈族自治州","coord":[98.85737910439825,26.98345757528851]},{"name":"大理白族自治州","coord":[99.93934374816013,25.684737357453045]},{"name":"德宏傣族景颇族自","coord":[98.13830877778075,24.593421919561205]},{"name":"保山市","coord":[99.19031013453166,24.979380341662]},{"name":"临沧市","coord":[99.62483778975081,24.058807858948214]},{"name":"普洱市","coord":[100.94440267992684,23.44121660743221]},{"name":"西双版纳傣族自治","coord":[100.86105801845994,21.882475641324206]},{"name":"拉萨市","coord":[91.3684790613129,30.14176592960237]},{"name":"山南地区","coord":[92.11665242621062,28.33000201578789]},{"name":"林芝地区","coord":[94.9307847458166,29.125110156601963]},{"name":"昌都地区","coord":[97.33912235873476,30.48520825551814]},{"name":"丽江市","coord":[100.65713436205135,26.96190318191959]},{"name":"攀枝花市","coord":[101.73355913301131,26.714486678752795]},{"name":"凉山彝族自治州","coord":[102.08678551422615,27.683020519860396]},{"name":"楚雄彝族自治州","coord":[101.68264761198458,25.369603845264024]},{"name":"红河哈尼族彝族自","coord":[102.95101719613119,23.624860095239875]},{"name":"文山壮族苗族自治","coord":[104.8708359910614,23.579587266862504]},{"name":"百色市","coord":[106.69546907589859,23.98220841166522]},{"name":"崇左市","coord":[107.3277087317123,22.49769755349952]},{"name":"防城港市","coord":[107.88939931155171,21.94550204069006]},{"name":"南宁市","coord":[108.67078983716917,23.12207641861882]},{"name":"钦州市","coord":[108.8532307305186,22.157690108421384]},{"name":"玉林市","coord":[110.26918466489103,22.391823643610415]},{"name":"湛江市","coord":[109.93033457863683,21.086751055633457]},{"name":"茂名市","coord":[110.80336192333934,22.069184739040775]},{"name":"阳江市","coord":[111.70471342186183,22.108751366417575]},{"name":"江门市","coord":[112.53715618649149,22.297368082806777]},{"name":"广州市","coord":[113.4949302208309,23.28359314707863]},{"name":"清远市","coord":[113.10957368131268,24.334444053233856]},{"name":"肇庆市","coord":[112.11117530204233,23.60241158796112]},{"name":"梧州市","coord":[111.01709510772797,23.518132876753846]},{"name":"贺州市","coord":[111.50423061842756,24.4095096817199]},{"name":"桂林市","coord":[110.44046163393094,25.353966673735407]},{"name":"柳州市","coord":[109.34854449214147,24.972408051485047]},{"name":"河池市","coord":[107.81191841865586,24.649291651298164]},{"name":"黔东南苗族侗族自","coord":[108.39952601614591,26.429286420465576]},{"name":"贵阳市","coord":[106.59784062851153,26.797907456479816]},{"name":"安顺市","coord":[105.76161265300635,25.988644902171018]},{"name":"黔西南布依族苗族","coord":[105.5954078788574,25.404850939549405]},{"name":"曲靖市","coord":[103.9164335632742,25.697243690315265]},{"name":"六盘水市","coord":[104.77723228072432,26.15402255629164]},{"name":"毕节地区","coord":[105.03867422931839,27.077913968069666]},{"name":"昭通市","coord":[104.29730513046874,27.62418247971078]},{"name":"宜宾市","coord":[104.76748901448207,28.553501804266475]},{"name":"乐山市","coord":[103.56027669102787,29.160754519210577]},{"name":"自贡市","coord":[104.63272827056402,29.273152614922402]},{"name":"内江市","coord":[104.82644562304716,29.61272653799929]},{"name":"遵义市","coord":[106.82413636302059,28.191847588570702]},{"name":"达州市","coord":[107.59704170009518,31.32138258839703]},{"name":"遂宁市","coord":[105.48979445433736,30.677687821242678]},{"name":"广安市","coord":[106.56708164098042,30.43500706741521]},{"name":"泸州市","coord":[105.42591761727707,28.50277238478137]},{"name":"资阳市","coord":[104.97995126874034,30.154251886139654]},{"name":"雅安市","coord":[102.69931299964517,29.892630706195035]},{"name":"眉山市","coord":[104.07052881858888,29.894202166560405]},{"name":"甘孜藏族自治州","coord":[100.50721042614238,30.975216556269658]},{"name":"果洛藏族自治州","coord":[99.30775565051923,34.03539865224808]},{"name":"海南藏族自治州","coord":[100.39969108016373,35.90048272566899]},{"name":"黄南藏族自治州","coord":[101.5360706381689,35.10286360841902]},{"name":"赣南藏族自治州","coord":[102.97083885806067,34.326752803339026]},{"name":"陇南市","coord":[105.24780098912132,33.57031117443431]},{"name":"天水市","coord":[105.53503634660417,34.62320421368087]},{"name":"定西市","coord":[104.58787768541339,35.08900966621695]},{"name":"临夏回族自治州","coord":[103.2612870434902,35.591577124455235]},{"name":"西宁市","coord":[101.57680657999033,36.84800271717157]},{"name":"海东地区","coord":[102.30909850729282,36.287400615025646]},{"name":"海北藏族自治州","coord":[100.27122484450717,37.892557516083826]},{"name":"金昌市","coord":[102.02244049169511,38.497330414886164]},{"name":"酒泉市","coord":[95.94486678270127,40.56891536586272]},{"name":"海西蒙古族藏族自","coord":[94.67143298050689,36.022725148503724]},{"name":"巴音郭楞蒙古自治","coord":[88.18116214759745,39.556478810319916]},{"name":"哈密地区","coord":[93.84302392518026,42.95015211178875]},{"name":"叶鲁番地区","coord":[89.82035217277885,42.399368632283505]},{"name":"乌鲁木齐市","coord":[88.00048109561487,43.549986370786]},{"name":"阿勒泰地区","coord":[88.11213933257655,47.05593413019629]},{"name":"博尔塔拉蒙古自治","coord":[82.26402238163408,44.671135542630864]},{"name":"伊犁哈萨克自治州","coord":[82.80778717477179,43.53783381365267]},{"name":"阿拉善盟","coord":[103.29923966842289,40.10955801781495]},{"name":"武威市","coord":[102.73362058791429,37.94211141321436]},{"name":"兰州市","coord":[103.73793563506032,36.27379827886003]},{"name":"中卫市","coord":[105.6943786030716,37.20654236148948]},{"name":"银川市","coord":[106.20022174140034,38.52103167597483]},{"name":"石嘴山市","coord":[106.41544011793628,38.84054137571417]},{"name":"乌海市","coord":[106.8984175998405,39.54616572239788]},{"name":"鄂尔多斯市","coord":[108.43285571424619,39.24036799350715]},{"name":"巴彦淖尔市","coord":[107.45840392808307,41.30159860424196]},{"name":"包头市","coord":[110.46472193224272,41.48017783644221]},{"name":"呼和浩特市","coord":[111.48365173603975,40.498363056149884]},{"name":"乌兰察布市","coord":[112.61568977597707,41.75789561273154]},{"name":"大同市","coord":[113.7107192749083,39.898956799744184]},{"name":"朔州市","coord":[112.65428748167508,39.681772914701924]},{"name":"忻州市","coord":[112.36127575589583,38.88990233614568]},{"name":"榆林市","coord":[109.68473112169593,38.19921027134876]},{"name":"延安市","coord":[109.52425222161318,36.406522726136814]},{"name":"庆阳市","coord":[107.73052193155061,36.183821532624464]},{"name":"固原市","coord":[106.20191575442442,36.11634909496382]},{"name":"白银市","coord":[104.68634478137065,36.51582865625868]},{"name":"宝鸡市","coord":[107.33534779230747,34.3387216485855]},{"name":"汉中市","coord":[107.03534754266246,33.00142998064871]},{"name":"广元市","coord":[105.92928137563939,32.21872447205537]},{"name":"巴中市","coord":[107.03422410306194,31.99874720836291]},{"name":"南充市","coord":[106.32964805032347,31.156657700184095]},{"name":"绵阳市","coord":[104.58949560201106,31.88628780630976]},{"name":"德阳市","coord":[104.41542984932845,31.110558133718676]},{"name":"成都市","coord":[103.8852290010473,30.777258040348634]},{"name":"阿坝藏族羌族自治","coord":[102.26209319552814,32.45725845387284]},{"name":"安康市","coord":[109.14236501848015,32.77467694678074]},{"name":"十堰市","coord":[110.39934083416314,32.376209039347906]},{"name":"襄阳市","coord":[111.97539147094662,31.93399822417465]},{"name":"宜昌市","coord":[111.22204852395754,30.772457669035354]},{"name":"恩施市","coord":[109.42158366502872,30.260366574390105]},{"name":"张家界市","coord":[110.59760006538717,29.330107409240718]},{"name":"吉首市","coord":[109.72176899848378,28.681903937242495]},{"name":"铜仁地区","coord":[108.54247523485463,28.11736237519646]},{"name":"重庆市","coord":[107.86007108564992,30.186253395053196]},{"name":"怀化市","coord":[109.94325166787243,27.43919084801186]},{"name":"益阳市","coord":[112.43060358108062,28.75127294553697]},{"name":"娄底市","coord":[111.41891416951897,27.696312460064604]},{"name":"常德市","coord":[111.72571610131646,29.27189463838195]},{"name":"荆州市","coord":[112.65896596965268,30.05161542755362]},{"name":"荆门市","coord":[112.6586855902184,31.01267124474617]},{"name":"岳阳市","coord":[113.2595036144316,29.106247116930163]},{"name":"长沙市","coord":[113.15415586456598,28.222934680488425]},{"name":"湘潭市","coord":[112.51092596317824,27.69881544105668]},{"name":"株州市","coord":[113.49665538546823,27.03993794610501]},{"name":"衡阳市","coord":[112.48849636578527,26.783613569970782]},{"name":"邵阳市","coord":[110.6723832117475,26.81652287086792]},{"name":"永州市","coord":[111.8565364154186,25.768488267811968]},{"name":"韶关市","coord":[113.53420325850979,24.69848878771937]},{"name":"惠州市","coord":[114.32029589634925,23.25504544231892]},{"name":"佛山市","coord":[112.95925897403649,23.10116677189257]},{"name":"云浮市","coord":[111.78042514904234,22.840400494105687]},{"name":"深圳市","coord":[114.13138648919008,22.649563063468342]},{"name":"汕尾市","coord":[115.57412892884373,23.06989642104901]},{"name":"河源市","coord":[114.89746229844398,23.97971937124767]},{"name":"揭阳市","coord":[116.04290004239446,23.304802704715357]},{"name":"汕头市","coord":[116.7008461897183,23.35898625947344]},{"name":"潮州市","coord":[116.75405548481658,23.854381508863064]},{"name":"梅州市","coord":[116.13719397345734,24.15633544812716]},{"name":"漳州市","coord":[117.38279760543345,24.41111215459575]},{"name":"厦门市","coord":[118.04275971554665,24.675908246507944]},{"name":"龙岩市","coord":[116.69341144552507,25.20284542644492]},{"name":"泉州市","coord":[118.12035864630246,25.22984144365049]},{"name":"莆田市","coord":[118.82439690138142,25.439653480972687]},{"name":"福州市","coord":[119.1608285845262,25.99117532466728]},{"name":"三明市","coord":[117.51188176216434,26.318292906961602]},{"name":"南平市","coord":[118.16153136678187,27.306303151805437]},{"name":"抚州市","coord":[116.3455359885574,27.487043655935366]},{"name":"鹰潭市","coord":[117.01082360702333,28.241253742969946]},{"name":"吉安市","coord":[114.91377151807418,26.957486660664525]},{"name":"赣州市","coord":[115.046455717572,25.81565075681663]},{"name":"郴州市","coord":[113.1544526703492,25.871927095452524]},{"name":"新余市","coord":[114.94161795877827,27.79044654578371]},{"name":"宜春市","coord":[115.04574494880995,28.306428044943356]},{"name":"南昌市","coord":[115.9963824234495,28.664803351584705]},{"name":"九江市","coord":[115.53225905704193,29.362905920276297]},{"name":"上饶市","coord":[117.8595355766598,28.765755150094634]},{"name":"景德镇市","coord":[117.25387030721845,29.33426823662448]},{"name":"黄山市","coord":[117.85476357809696,29.969632034273722]},{"name":"池州市","coord":[117.34517113140791,30.208089337922335]},{"name":"铜陵市","coord":[117.93160431300694,30.926442655001676]},{"name":"安庆市","coord":[116.54307680610799,30.524265461641296]},{"name":"黄石市","coord":[115.02354597728443,29.924060229331015]},{"name":"咸宁市","coord":[114.26967602231792,29.652174021136048]},{"name":"黄冈市","coord":[115.2859016705373,30.65856897065683]},{"name":"武汉市","coord":[114.34552076948799,30.68836237966767]},{"name":"随州市","coord":[113.3850627838818,31.87891659924412]},{"name":"信阳市","coord":[114.81374730587638,32.0309685135914]},{"name":"驻马店市","coord":[114.07756451509235,32.896720987266114]},{"name":"商洛市","coord":[109.82044421310393,33.77403373563189]},{"name":"西安市","coord":[109.11839808451401,34.225257215515896]},{"name":"渭南市","coord":[109.75732444226935,35.025913644359306]},{"name":"铜川市","coord":[108.98695328111377,35.19235092947735]},{"name":"咸阳市","coord":[108.36398776446165,34.84311348287181]},{"name":"三门峡市","coord":[110.80049688104964,34.31818709571671]},{"name":"运城市","coord":[111.1736679525165,35.19010372283576]},{"name":"洛阳市","coord":[111.87577573098216,34.33379926109848]},{"name":"平顶山市","coord":[112.80931281928427,33.759895800153096]},{"name":"漯河市","coord":[113.83505724178012,33.70034266174508]},{"name":"许昌市","coord":[113.78762484088509,34.051835688452435]},{"name":"郑州市","coord":[113.49619951867594,34.61181797865449]},{"name":"焦作市","coord":[113.13404280173008,35.134167097471625]},{"name":"晋城市","coord":[112.7495732073233,35.63186423091449]},{"name":"长治市","coord":[112.85900842873183,36.45872910742828]},{"name":"临汾市","coord":[111.49379787924448,36.22810800777857]},{"name":"太原市","coord":[112.15628804033796,37.91704444063036]},{"name":"吕梁市","coord":[111.31901105774872,37.712740463356496]},{"name":"晋中市","coord":[113.08199599739676,37.36532613794343]},{"name":"邯郸市","coord":[114.41824047234618,36.530119932543315]},{"name":"安阳市","coord":[113.88883283163116,35.7797611183252]},{"name":"鹤壁市","coord":[114.3654094911545,35.75770487428472]},{"name":"新乡市","coord":[113.9184107718167,35.348471214026716]},{"name":"开封市","coord":[114.52801677500626,34.61371216679872]},{"name":"周口市","coord":[114.88509782391864,33.69999759722657]},{"name":"阜阳市","coord":[115.44595951398213,32.98060371610532]},{"name":"淮南市","coord":[116.68941991880993,32.79972275772595]},{"name":"蚌埠市","coord":[117.38594715783302,33.106729536033896]},{"name":"淮北市","coord":[116.69651711889378,33.69527529383458]},{"name":"宿州市","coord":[117.30175405886838,33.943330421260015]},{"name":"亳州市","coord":[116.12410804185097,33.46769392946132]},{"name":"商丘市","coord":[115.59575176872548,34.28339840831147]},{"name":"菏泽市","coord":[115.53631974831816,35.197319393220624]},{"name":"濮阳市","coord":[115.3070485514902,35.775883510964334]},{"name":"聊城市","coord":[115.8870069012884,36.40529594548765]},{"name":"邢台市","coord":[114.74259008644859,37.251396750084155]},{"name":"石家庄市","coord":[114.56923838363613,38.13141710980106]},{"name":"阳泉市","coord":[113.39216149668508,38.09075470547468]},{"name":"保定市","coord":[115.261524468934,39.09118520781398]},{"name":"衡水市","coord":[115.8182936677897,37.715661598187154]},{"name":"德州市","coord":[116.4582273790399,37.19372347888644]},{"name":"沧州市","coord":[116.76192710911863,38.20240042039232]},{"name":"廊坊市","coord":[116.50410772133856,39.27896741763884]},{"name":"天津市","coord":[117.31988934444873,39.37154482470619]},{"name":"北京市","coord":[116.59734730757869,40.237112944270976]},{"name":"张家口市","coord":[115.1823606483226,40.83732566607167]},{"name":"唐山市","coord":[117.8693184261954,39.71862889477249]},{"name":"秦皇岛市","coord":[119.30467355367742,39.990574652162564]},{"name":"承德市","coord":[117.16275671911026,41.36623845548547]},{"name":"葫芦岛市","coord":[119.9342336210531,40.5628822626519]},{"name":"朝阳市","coord":[120.11853493535794,41.471852354885755]},{"name":"赤峰市","coord":[118.50943546234379,43.25452976059767]},{"name":"锦州市","coord":[121.5167549323861,41.45933087433065]},{"name":"营口市","coord":[122.58571915054674,40.42093503997384]},{"name":"丹东市","coord":[124.33549382902183,40.46369290272115]},{"name":"辽阳市","coord":[123.34064798039414,41.152331397771356]},{"name":"盘锦市","coord":[122.06718005354679,41.05573599862555]},{"name":"阜新市","coord":[121.93889757908204,42.27641773244204]},{"name":"鞍山市","coord":[122.78904432242356,40.77781183142038]},{"name":"沈阳市","coord":[122.99508899709724,42.1162195010079]},{"name":"铁岭市","coord":[124.23100515588399,42.72666083611828]},{"name":"扶顺市","coord":[124.46027188217573,41.82955407638859]},{"name":"通辽市","coord":[122.0729370657937,43.90889130864869]},{"name":"兴安盟","coord":[120.79456431092532,45.92003249442161]},{"name":"白城市","coord":[123.10619907715235,45.25475749267784]},{"name":"齐齐哈尔市","coord":[124.5462214659102,47.55395009317394]},{"name":"大兴安岭地区","coord":[124.50992855161529,52.18438447846694]},{"name":"黑河市","coord":[127.14721400335922,49.25080134026901]},{"name":"大庆市","coord":[124.40329830095243,46.401048760966745]},{"name":"绥化市","coord":[126.5214484055605,46.76992452194825]},{"name":"松原市","coord":[124.21244334807682,44.75779381338502]},{"name":"四平市","coord":[124.27839350328821,43.52139065090318]},{"name":"通化市","coord":[125.67392830706305,41.91771808663852]},{"name":"辽源市","coord":[125.33529527643432,42.758340204944986]},{"name":"吉林市","coord":[126.83350281902375,43.60730120049175]},{"name":"长春市","coord":[125.53597875970374,44.24624314701737]},{"name":"白山市","coord":[127.16780160322108,42.093893880305075]},{"name":"哈尔滨市","coord":[127.39125008786029,45.36200668820575]},{"name":"鹤岗市","coord":[130.4703811258197,47.66520688940109]},{"name":"伊春市","coord":[128.91240831703635,47.93833794565277]},{"name":"七台河市","coord":[131.2677920224311,45.945099776108584]},{"name":"鸡西市","coord":[132.38059153660274,45.722934218318535]},{"name":"双鸭山市","coord":[132.3184817002743,46.65813679030265]},{"name":"佳木斯市","coord":[132.26174446608726,47.17569713691394]},{"name":"呼伦贝尔市","coord":[122.3210739998419,50.18176996070858]},{"name":"孝感市","coord":[113.83749892135485,31.11757234692128]},{"name":"贵港市","coord":[110.07354588052804,23.380735604767374]},{"name":"黔南布依族苗族自","coord":[107.30931767543106,26.2976919432269]},{"name":"宁德市","coord":[119.52482556634342,27.013151692716413]},{"name":"温州市","coord":[120.30037042732202,27.8699145504001]},{"name":"台州市","coord":[120.88886782713843,28.670799172772313]},{"name":"丽水市","coord":[119.56796851966463,28.170268394477755]},{"name":"衢州市","coord":[118.79479802644406,28.865874397158763]},{"name":"金华市","coord":[119.99381920686633,29.093455548185744]},{"name":"绍兴市","coord":[120.46546691682343,29.69382513836818]},{"name":"宁波市","coord":[121.42142987830871,29.70001162878972]},{"name":"杭州市","coord":[119.4405685790891,29.87218307296989]},{"name":"宣城市","coord":[118.68748382914703,30.628143499626418]},{"name":"湖州市","coord":[119.98261306633574,30.7945175862809]},{"name":"嘉兴市","coord":[120.83889215988998,30.67538495499343]},{"name":"上海市","coord":[121.37534147322967,31.25628247908459]},{"name":"苏州市","coord":[120.6906182622391,31.381280695137775]},{"name":"无锡市","coord":[120.32182300914366,31.54113306724517]},{"name":"常州市","coord":[119.61953292830165,31.611878565375576]},{"name":"南京市","coord":[118.71890548838064,31.910863187910323]},{"name":"镇江市","coord":[119.42349332902813,31.97942313430778]},{"name":"合肥市","coord":[117.30651975617157,31.79407863049138]},{"name":"六安市","coord":[116.24668220575353,31.820846193819513]},{"name":"滁州市","coord":[117.88422385307969,32.51792621904418]},{"name":"泰州市","coord":[120.03124303305091,32.56503102346783]},{"name":"南通市","coord":[120.85599446760912,32.18496706099728]},{"name":"盐城市","coord":[120.01812490612667,33.54219948734023]},{"name":"淮安市","coord":[119.0749424205415,33.39203631772854]},{"name":"宿迁市","coord":[118.45404943216346,33.666258719120265]},{"name":"徐州市","coord":[117.77482249295966,34.30847766157078]},{"name":"济宁市","coord":[116.74147276546373,35.27488504351119]},{"name":"枣庄市","coord":[117.43359942491492,34.884162021736]},{"name":"连云港市","coord":[119.01553213785074,34.54316517587849]},{"name":"临沂市","coord":[118.31478835349617,35.28173079028279]},{"name":"日照市","coord":[119.14265350444272,35.54479073199592]},{"name":"青岛市","coord":[120.27779044405756,36.3464117375903]},{"name":"威海市","coord":[122.12963327195605,37.13879077904251]},{"name":"烟台市","coord":[120.7689567423966,37.19772002195597]},{"name":"潍坊市","coord":[119.02178548592039,36.49292234053931]},{"name":"淄博市","coord":[117.92936024367185,36.60871347163638]},{"name":"泰安市","coord":[116.93810893944303,36.0423330118612]},{"name":"济南市","coord":[117.34560282551296,36.769574973846304]},{"name":"东营市","coord":[118.4915054457184,37.52194690335787]},{"name":"滨州市","coord":[117.67610299757533,37.4439597758601]},{"name":"昆明市","coord":[102.93100245594789,25.481300763922075]},{"name":"玉溪市","coord":[102.23080854291823,24.156168324611663]},{"name":"塔城地区","coord":[83.60908162840168,45.3721852373893]},{"name":"张掖市","coord":[100.47710030600572,38.704239320458385]},{"name":"南阳市","coord":[112.1400670951149,33.03033276715801]},{"name":"扬州市","coord":[119.48949608990988,32.80956776339646]},{"name":"延边朝鲜族自治州","coord":[129.3577692895626,43.24968794080283]},{"name":"牡丹江市","coord":[129.87240796405672,44.7073040108322]},{"name":"澳门","coord":[113.56289691515346,22.14602596262204]},{"name":"吴忠市","coord":[106.76894508116403,37.72566765880316]},{"name":"来宾市","coord":[109.25592217010114,23.86346274681084]},{"name":"平凉市","coord":[107.0708132782897,35.30329631658711]},{"name":"马鞍山市","coord":[118.27245878467022,31.657727937739004]},{"name":"芜湖市","coord":[118.32992684415504,31.081688223101658]},{"name":"澄迈县","coord":[110.04198076060266,19.694955078668105]},{"name":"保亭黎族苗族自治","coord":[109.6055304964257,18.6101488675304]},{"name":"乐东黎族自治县","coord":[109.04051999525574,18.643137437909203]},{"name":"儋州市","coord":[109.3431358337404,19.550974957403195]},{"name":"定安县","coord":[110.38744429685676,19.47557074114284]},{"name":"屯昌县","coord":[110.00574767630334,19.367175093044388]},{"name":"白沙黎族自治县","coord":[109.36860737761768,19.214416393082217]},{"name":"琼中黎族苗族自治","coord":[109.86691465937548,19.073671135862682]},{"name":"东方市","coord":[108.86903802405428,19.017352815445214]},{"name":"昌江黎族自治县","coord":[108.9686431884767,19.182594167127824]},{"name":"海口市","coord":[110.420654296875,19.806565564640795]},{"name":"济源市","coord":[112.38051465474433,35.07958362422394]},{"name":"五指山市","coord":[109.53595187364496,18.832908264613966]},{"name":"大连市","coord":[121.96662235866603,39.444150542439914]},{"name":"文昌市三沙市","coord":[110.81828537536748,19.756501444162936]},{"name":"三亚市","coord":[109.38424600793707,18.39186315877128]},{"name":"万宁市","coord":[110.28485046979574,18.860240588635115]},{"name":"陵水黎族自治县","coord":[109.95577603229562,18.594712684620465]},{"name":"临高县","coord":[109.71915395436967,19.79420403032508]},{"name":"琼海市","coord":[110.41650700703043,19.22315873149372]}]'); -;// ./src/common/mapping/config/ProvinceCenter.json +;// CONCATENATED MODULE: ./src/common/mapping/config/ProvinceCenter.json var ProvinceCenter_namespaceObject = /*#__PURE__*/JSON.parse('[{"name":"黑龙江省","coord":[127.64559817675396,48.48668098449708]},{"name":"内蒙古自治区","coord":[118.34519572208615,45.370218276977525]},{"name":"新疆维吾尔自治区","coord":[87.13479065593184,41.75497055053711]},{"name":"吉林省","coord":[126.12985278813787,43.57983207702637]},{"name":"辽宁省","coord":[124.02494773936439,41.105743408203125]},{"name":"甘肃省","coord":[102.87785725633012,37.69582366943361]},{"name":"河北省","coord":[115.66327227481898,39.33383178710938]},{"name":"北京市","coord":[116.62199343603638,40.25053787231445]},{"name":"山西省","coord":[112.45180235808988,37.666561126708984]},{"name":"天津市","coord":[117.35711842642581,39.406789779663086]},{"name":"陕西省","coord":[109.56294003056632,35.64754199981689]},{"name":"宁夏回族自治区","coord":[105.96110877640074,37.3081169128418]},{"name":"青海省","coord":[96.07301048277901,35.44417190551758]},{"name":"山东省","coord":[118.03833752951093,36.29800605773925]},{"name":"西藏自治区","coord":[87.47361520439412,31.6703872680664]},{"name":"河南省","coord":[113.07832397097275,33.87751102447509]},{"name":"江苏省","coord":[119.93926538201052,32.945452690124505]},{"name":"安徽省","coord":[117.15146765881019,32.024482727050774]},{"name":"四川省","coord":[102.28998890142759,30.182161331176758]},{"name":"湖北省","coord":[112.87798261431585,31.157071113586426]},{"name":"重庆市","coord":[107.870126637831,30.188085556030266]},{"name":"上海市","coord":[121.42561166015514,31.276043891906745]},{"name":"浙江省","coord":[119.75337092707514,29.175934791564945]},{"name":"湖南省","coord":[111.52770282777405,27.38110256195069]},{"name":"江西省","coord":[115.51091280655628,27.283511161804206]},{"name":"云南省","coord":[101.27053825991308,25.19783210754396]},{"name":"贵州省","coord":[106.49672346773299,26.92267990112305]},{"name":"福建省","coord":[117.9976766946587,25.939599990844727]},{"name":"广西壮族自治区","coord":[108.98706831086302,23.891559600830078]},{"name":"台湾省","coord":[120.82468432537434,23.602651596069336]},{"name":"香港特别行政区","coord":[114.21036850371561,22.374858856201172]},{"name":"海南省","coord":[109.62792940960824,19.163116455078125]},{"name":"广东省","coord":[113.32127888266032,22.873867034912106]},{"name":"澳门特别行政区","coord":[113.56819996291901,22.160347992976]}]'); -;// ./src/common/mapping/utils/util.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/util.js function util_typeof(o) { "@babel/helpers - typeof"; return util_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, util_typeof(o); } function util_toConsumableArray(r) { return util_arrayWithoutHoles(r) || util_iterableToArray(r) || util_unsupportedIterableToArray(r) || util_nonIterableSpread(); } function util_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -33016,7 +32970,7 @@ function transformUrl(_ref) { * @param value 值,未知数据类型 * @returns {boolean} */ -function isNumber(value) { +function util_isNumber(value) { if (value === "") { return false; } @@ -33140,7 +33094,7 @@ function getMainLayerFromCatalog(layerParts, catalogId, layersOnMap) { return item.id === renderLayers[0]; }); } -;// ./src/mapboxgl/core/Util.js +;// CONCATENATED MODULE: ./src/mapboxgl/core/Util.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -33174,7 +33128,7 @@ function getMainLayerFromCatalog(layerParts, catalogId, layersOnMap) { * ``` */ -var Util_Util = { +var core_Util_Util = { /** * @function Util.toSuperMapGeometry * @description 将 GeoJSON 对象转为 SuperMap 几何图形。 @@ -33221,7 +33175,7 @@ var Util_Util = { var east = lnglatBounds.getEast(); var sourth = lnglatBounds.getSouth(); var north = lnglatBounds.getNorth(); - return new Polygon([new LinearRing([new Point(west, sourth), new Point(east, sourth), new Point(east, north), new Point(west, north)])]); + return new Polygon_Polygon([new LinearRing_LinearRing([new Point(west, sourth), new Point(east, sourth), new Point(east, north), new Point(west, north)])]); }, /** * @function Util.isArray @@ -33393,14 +33347,14 @@ var Util_Util = { return mapUrl; } }; -;// ./src/mapboxgl/core/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/core/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/common/commontypes/geometry/GeoText.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/GeoText.js function GeoText_typeof(o) { "@babel/helpers - typeof"; return GeoText_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoText_typeof(o); } function GeoText_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoText_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoText_toPropertyKey(o.key), o); } } @@ -33411,7 +33365,7 @@ function GeoText_callSuper(t, o, e) { return o = GeoText_getPrototypeOf(o), GeoT function GeoText_possibleConstructorReturn(t, e) { if (e && ("object" == GeoText_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeoText_assertThisInitialized(t); } function GeoText_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeoText_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeoText_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeoText_superPropGet(t, o, e, r) { var p = GeoText_get(GeoText_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeoText_superPropGet(t, e, o, r) { var p = GeoText_get(GeoText_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeoText_get() { return GeoText_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeoText_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeoText_get.apply(null, arguments); } function GeoText_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeoText_getPrototypeOf(t));); return t; } function GeoText_getPrototypeOf(t) { return GeoText_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeoText_getPrototypeOf(t); } @@ -33515,7 +33469,7 @@ var GeoText = /*#__PURE__*/function (_Geometry) { if (obj == null) { obj = new GeoText(this.x, this.y, this.text); } - Util.applyDefaults(obj, this); + Util_Util.applyDefaults(obj, this); return obj; } @@ -33542,7 +33496,7 @@ var GeoText = /*#__PURE__*/function (_Geometry) { key: "getLabelPxBoundsByLabel", value: function getLabelPxBoundsByLabel(locationPixel, labelWidth, labelHeight, style) { var labelPxBounds, left, bottom, top, right; - var locationPx = Util.cloneObject(locationPixel); + var locationPx = Util_Util.cloneObject(locationPixel); //计算文本行数 var theText = style.label || this.text; @@ -33613,7 +33567,7 @@ var GeoText = /*#__PURE__*/function (_Geometry) { value: function getLabelPxBoundsByText(locationPixel, style) { var labelPxBounds, left, bottom, top, right; var labelSize = this.getLabelPxSize(style); - var locationPx = Util.cloneObject(locationPixel); + var locationPx = Util_Util.cloneObject(locationPixel); //处理文字对齐 if (style.labelAlign && style.labelAlign !== "cm") { @@ -33707,7 +33661,7 @@ var GeoText = /*#__PURE__*/function (_Geometry) { } for (var i = 0; i < numRows; i++) { var textCharC = this.getTextCount(textRows[i]); - var labelWTmp = this.labelWTmp = Util.getTextBounds(style, textRows[i], this.element).textWidth + textCharC.textC * spacing + bgstrokeWidth; + var labelWTmp = this.labelWTmp = Util_Util.getTextBounds(style, textRows[i], this.element).textWidth + textCharC.textC * spacing + bgstrokeWidth; if (labelW < labelWTmp) { labelW = labelWTmp; } @@ -33747,8 +33701,8 @@ var GeoText = /*#__PURE__*/function (_Geometry) { return textCharCount; } }]); -}(Geometry); -;// ./src/common/overlay/feature/Theme.js +}(Geometry_Geometry); +;// CONCATENATED MODULE: ./src/common/overlay/feature/Theme.js function Theme_typeof(o) { "@babel/helpers - typeof"; return Theme_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Theme_typeof(o); } function Theme_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Theme_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Theme_toPropertyKey(o.key), o); } } @@ -33788,7 +33742,7 @@ var Theme = /*#__PURE__*/function () { * @member {string} FeatureTheme.prototype.id * @description 专题要素唯一标识。 */ - this.id = Util.createUniqueID(this.CLASS_NAME + "_"); + this.id = Util_Util.createUniqueID(this.CLASS_NAME + "_"); /** * @member {LonLat} FeatureTheme.prototype.lonlat @@ -33865,7 +33819,7 @@ var Theme = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/theme/ThemeFeature.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/theme/ThemeFeature.js function ThemeFeature_typeof(o) { "@babel/helpers - typeof"; return ThemeFeature_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeFeature_typeof(o); } function ThemeFeature_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeFeature_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeFeature_toPropertyKey(o.key), o); } } @@ -33904,7 +33858,7 @@ var ThemeFeature = /*#__PURE__*/function () { return ThemeFeature_createClass(ThemeFeature, [{ key: "toFeature", value: function toFeature() { - var geometry = Util_Util.toSuperMapGeometry(this.geometry); + var geometry = core_Util_Util.toSuperMapGeometry(this.geometry); var points = []; if (this.geometry instanceof (external_mapboxgl_default()).LngLat) { points = [this.geometry.lng, this.geometry.lat]; @@ -33920,7 +33874,7 @@ var ThemeFeature = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Util.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Util.js function levelRenderer_Util_typeof(o) { "@babel/helpers - typeof"; return levelRenderer_Util_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, levelRenderer_Util_typeof(o); } function Util_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Util_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Util_toPropertyKey(o.key), o); } } @@ -34203,7 +34157,7 @@ var levelRenderer_Util_Util = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Eventful.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Eventful.js function Eventful_typeof(o) { "@babel/helpers - typeof"; return Eventful_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Eventful_typeof(o); } function Eventful_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Eventful_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Eventful_toPropertyKey(o.key), o); } } @@ -34434,7 +34388,7 @@ var Eventful = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Vector.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Vector.js function levelRenderer_Vector_typeof(o) { "@babel/helpers - typeof"; return levelRenderer_Vector_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, levelRenderer_Vector_typeof(o); } function levelRenderer_Vector_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function levelRenderer_Vector_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, levelRenderer_Vector_toPropertyKey(o.key), o); } } @@ -34838,7 +34792,7 @@ var Vector_Vector = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Curve.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Curve.js function levelRenderer_Curve_typeof(o) { "@babel/helpers - typeof"; return levelRenderer_Curve_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, levelRenderer_Curve_typeof(o); } function levelRenderer_Curve_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function levelRenderer_Curve_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, levelRenderer_Curve_toPropertyKey(o.key), o); } } @@ -35379,7 +35333,7 @@ var Curve_Curve = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Area.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Area.js function Area_typeof(o) { "@babel/helpers - typeof"; return Area_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Area_typeof(o); } function Area_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Area_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Area_toPropertyKey(o.key), o); } } @@ -36385,7 +36339,7 @@ var Area = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Color.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Color.js function Color_typeof(o) { "@babel/helpers - typeof"; return Color_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Color_typeof(o); } function Color_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Color_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Color_toPropertyKey(o.key), o); } } @@ -37508,7 +37462,7 @@ var Color = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/ComputeBoundingBox.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/ComputeBoundingBox.js function ComputeBoundingBox_typeof(o) { "@babel/helpers - typeof"; return ComputeBoundingBox_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ComputeBoundingBox_typeof(o); } function ComputeBoundingBox_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ComputeBoundingBox_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ComputeBoundingBox_toPropertyKey(o.key), o); } } @@ -37700,7 +37654,7 @@ var ComputeBoundingBox = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Env.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Env.js function Env_typeof(o) { "@babel/helpers - typeof"; return Env_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Env_typeof(o); } function Env_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Env_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Env_toPropertyKey(o.key), o); } } @@ -37845,7 +37799,7 @@ var Env = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Event.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Event.js function Event_typeof(o) { "@babel/helpers - typeof"; return Event_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Event_typeof(o); } function Event_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Event_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Event_toPropertyKey(o.key), o); } } @@ -37916,7 +37870,7 @@ var Event = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Http.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Http.js function Http_typeof(o) { "@babel/helpers - typeof"; return Http_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Http_typeof(o); } function Http_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Http_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Http_toPropertyKey(o.key), o); } } @@ -37973,7 +37927,7 @@ var Http = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Config.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Config.js function Config_typeof(o) { "@babel/helpers - typeof"; return Config_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Config_typeof(o); } function Config_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Config_toPropertyKey(o.key), o); } } function Config_createClass(e, r, t) { return r && Config_defineProperties(e.prototype, r), t && Config_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -38050,7 +38004,7 @@ Config.catchBrushException = false; * @private */ Config.debugMode = 0; -;// ./src/common/overlay/levelRenderer/Log.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Log.js function Log_typeof(o) { "@babel/helpers - typeof"; return Log_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Log_typeof(o); } function Log_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Log_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Log_toPropertyKey(o.key), o); } } @@ -38102,7 +38056,7 @@ var Log = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Math.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Math.js function Math_typeof(o) { "@babel/helpers - typeof"; return Math_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Math_typeof(o); } function Math_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Math_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Math_toPropertyKey(o.key), o); } } @@ -38182,7 +38136,7 @@ var MathTool = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Matrix.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Matrix.js function Matrix_typeof(o) { "@babel/helpers - typeof"; return Matrix_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Matrix_typeof(o); } function Matrix_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Matrix_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Matrix_toPropertyKey(o.key), o); } } @@ -38402,7 +38356,7 @@ var Matrix = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/SUtil.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SUtil.js function SUtil_typeof(o) { "@babel/helpers - typeof"; return SUtil_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SUtil_typeof(o); } function SUtil_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SUtil_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SUtil_toPropertyKey(o.key), o); } } @@ -38424,7 +38378,7 @@ function SUtil_toPrimitive(t, r) { if ("object" != SUtil_typeof(t) || !t) return -var SUtil = /*#__PURE__*/function () { +var SUtil_SUtil = /*#__PURE__*/function () { function SUtil() { SUtil_classCallCheck(this, SUtil); } @@ -38614,19 +38568,19 @@ var SUtil = /*#__PURE__*/function () { }(); // 把所有工具对象放到全局静态变量上,以便直接调用工具方法, // 避免使用工具时频繁的创建工具对象带来的性能消耗。 -SUtil.Util_area = new Area(); -SUtil.Util_color = new Color(); -SUtil.Util_computeBoundingBox = new ComputeBoundingBox(); -SUtil.Util_curve = new Curve_Curve(); -SUtil.Util_env = new Env(); -SUtil.Util_event = new Event(); -SUtil.Util_http = new Http(); -SUtil.Util_log = new Log(); -SUtil.Util_math = new MathTool(); -SUtil.Util_matrix = new Matrix(); -SUtil.Util = new levelRenderer_Util_Util(); -SUtil.Util_vector = new Vector_Vector(); -;// ./src/common/overlay/levelRenderer/Transformable.js +SUtil_SUtil.Util_area = new Area(); +SUtil_SUtil.Util_color = new Color(); +SUtil_SUtil.Util_computeBoundingBox = new ComputeBoundingBox(); +SUtil_SUtil.Util_curve = new Curve_Curve(); +SUtil_SUtil.Util_env = new Env(); +SUtil_SUtil.Util_event = new Event(); +SUtil_SUtil.Util_http = new Http(); +SUtil_SUtil.Util_log = new Log(); +SUtil_SUtil.Util_math = new MathTool(); +SUtil_SUtil.Util_matrix = new Matrix(); +SUtil_SUtil.Util = new levelRenderer_Util_Util(); +SUtil_SUtil.Util_vector = new Vector_Vector(); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Transformable.js function Transformable_typeof(o) { "@babel/helpers - typeof"; return Transformable_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Transformable_typeof(o); } function Transformable_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Transformable_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Transformable_toPropertyKey(o.key), o); } } @@ -38682,18 +38636,18 @@ var Transformable = /*#__PURE__*/function () { * @description 设置图形的朝向。 */ this.lookAt = function () { - var v = SUtil.Util_vector.create(); + var v = SUtil_SUtil.Util_vector.create(); // {Array.|Float32Array} target return function (target) { if (!this.transform) { - this.transform = SUtil.Util_matrix.create(); + this.transform = SUtil_SUtil.Util_matrix.create(); } var m = this.transform; - SUtil.Util_vector.sub(v, target, this.position); + SUtil_SUtil.Util_vector.sub(v, target, this.position); if (isAroundZero(v[0]) && isAroundZero(v[1])) { return; } - SUtil.Util_vector.normalize(v, v); + SUtil_SUtil.Util_vector.normalize(v, v); // Y Axis // TODO Scale origin ? m[2] = v[0] * this.scale[1]; @@ -38758,21 +38712,21 @@ var Transformable = /*#__PURE__*/function () { return; } var origin = [0, 0]; - var m = this.transform || SUtil.Util_matrix.create(); - SUtil.Util_matrix.identity(m); + var m = this.transform || SUtil_SUtil.Util_matrix.create(); + SUtil_SUtil.Util_matrix.identity(m); if (this.needLocalTransform) { if (isNotAroundZero(this.scale[0]) || isNotAroundZero(this.scale[1])) { origin[0] = -this.scale[2] || 0; origin[1] = -this.scale[3] || 0; var haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); if (haveOrigin) { - SUtil.Util_matrix.translate(m, m, origin); + SUtil_SUtil.Util_matrix.translate(m, m, origin); } - SUtil.Util_matrix.scale(m, m, this.scale); + SUtil_SUtil.Util_matrix.scale(m, m, this.scale); if (haveOrigin) { origin[0] = -origin[0]; origin[1] = -origin[1]; - SUtil.Util_matrix.translate(m, m, origin); + SUtil_SUtil.Util_matrix.translate(m, m, origin); } } if (this.rotation instanceof Array) { @@ -38781,22 +38735,22 @@ var Transformable = /*#__PURE__*/function () { origin[1] = -this.rotation[2] || 0; var _haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); if (_haveOrigin) { - SUtil.Util_matrix.translate(m, m, origin); + SUtil_SUtil.Util_matrix.translate(m, m, origin); } - SUtil.Util_matrix.rotate(m, m, this.rotation[0]); + SUtil_SUtil.Util_matrix.rotate(m, m, this.rotation[0]); if (_haveOrigin) { origin[0] = -origin[0]; origin[1] = -origin[1]; - SUtil.Util_matrix.translate(m, m, origin); + SUtil_SUtil.Util_matrix.translate(m, m, origin); } } } else { if (+this.rotation !== 0) { - SUtil.Util_matrix.rotate(m, m, this.rotation); + SUtil_SUtil.Util_matrix.rotate(m, m, this.rotation); } } if (isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1])) { - SUtil.Util_matrix.translate(m, m, this.position); + SUtil_SUtil.Util_matrix.translate(m, m, this.position); } } @@ -38806,9 +38760,9 @@ var Transformable = /*#__PURE__*/function () { // 应用父节点变换 if (this.parent && this.parent.needTransform) { if (this.needLocalTransform) { - SUtil.Util_matrix.mul(this.transform, this.parent.transform, this.transform); + SUtil_SUtil.Util_matrix.mul(this.transform, this.parent.transform, this.transform); } else { - SUtil.Util_matrix.copy(this.transform, this.parent.transform); + SUtil_SUtil.Util_matrix.copy(this.transform, this.parent.transform); } } function isNotAroundZero(val) { @@ -38868,7 +38822,7 @@ var Transformable = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Group.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Group.js function Group_typeof(o) { "@babel/helpers - typeof"; return Group_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Group_typeof(o); } function Group_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Group_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Group_toPropertyKey(o.key), o); } } @@ -38879,7 +38833,7 @@ function Group_callSuper(t, o, e) { return o = Group_getPrototypeOf(o), Group_po function Group_possibleConstructorReturn(t, e) { if (e && ("object" == Group_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Group_assertThisInitialized(t); } function Group_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Group_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Group_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Group_superPropGet(t, o, e, r) { var p = Group_get(Group_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Group_superPropGet(t, e, o, r) { var p = Group_get(Group_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Group_get() { return Group_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Group_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Group_get.apply(null, arguments); } function Group_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Group_getPrototypeOf(t));); return t; } function Group_getPrototypeOf(t) { return Group_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Group_getPrototypeOf(t); } @@ -38966,8 +38920,8 @@ var Group = /*#__PURE__*/function (_mixin) { * @description 是否忽略该 Group 及其所有子节点。 */ _this.ignore = false; - Util.extend(_this, options); - _this.id = _this.id || Util.createUniqueID("smShapeGroup_"); + Util_Util.extend(_this, options); + _this.id = _this.id || Util_Util.createUniqueID("smShapeGroup_"); _this.CLASS_NAME = "SuperMap.LevelRenderer.Group"; return _this; } @@ -39049,7 +39003,7 @@ var Group = /*#__PURE__*/function (_mixin) { }, { key: "removeChild", value: function removeChild(child) { - var idx = Util.indexOf(this._children, child); + var idx = Util_Util.indexOf(this._children, child); this._children.splice(idx, 1); child.parent = null; if (this._storage) { @@ -39148,7 +39102,7 @@ var Group = /*#__PURE__*/function (_mixin) { } }]); }(mixinExt(Eventful, Transformable)); -;// ./src/common/overlay/levelRenderer/Storage.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Storage.js function Storage_typeof(o) { "@babel/helpers - typeof"; return Storage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Storage_typeof(o); } function Storage_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Storage_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Storage_toPropertyKey(o.key), o); } } @@ -39636,7 +39590,7 @@ var Storage = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/commontypes/geometry/Rectangle.js +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/Rectangle.js function Rectangle_typeof(o) { "@babel/helpers - typeof"; return Rectangle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Rectangle_typeof(o); } function Rectangle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Rectangle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Rectangle_toPropertyKey(o.key), o); } } @@ -39733,8 +39687,8 @@ var Rectangle = /*#__PURE__*/function (_Geometry) { return area; } }]); -}(Geometry); -;// ./src/common/commontypes/geometry/index.js +}(Geometry_Geometry); +;// CONCATENATED MODULE: ./src/common/commontypes/geometry/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -39760,7 +39714,7 @@ var Rectangle = /*#__PURE__*/function (_Geometry) { -;// ./src/common/commontypes/Credential.js +;// CONCATENATED MODULE: ./src/common/commontypes/Credential.js function Credential_typeof(o) { "@babel/helpers - typeof"; return Credential_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Credential_typeof(o); } function Credential_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Credential_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Credential_toPropertyKey(o.key), o); } } @@ -39865,7 +39819,7 @@ var Credential = /*#__PURE__*/function () { */ Credential.CREDENTIAL = null; -;// ./src/common/commontypes/Date.js +;// CONCATENATED MODULE: ./src/common/commontypes/Date.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -39951,7 +39905,7 @@ var DateExt = { return date; } }; -;// ./src/common/commontypes/Event.js +;// CONCATENATED MODULE: ./src/common/commontypes/Event.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -40127,7 +40081,7 @@ var Event_Event = { * @param {boolean} [useCapture=false] - 是否捕获。 */ observe: function observe(elementParam, name, observer, useCapture) { - var element = Util.getElement(elementParam); + var element = Util_Util.getElement(elementParam); useCapture = useCapture || false; if (name === 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.attachEvent)) { name = 'keydown'; @@ -40144,7 +40098,7 @@ var Event_Event = { if (element.id) { idPrefix = element.id + "_" + idPrefix; } - element._eventCacheID = Util.createUniqueID(idPrefix); + element._eventCacheID = Util_Util.createUniqueID(idPrefix); } var cacheID = element._eventCacheID; @@ -40181,7 +40135,7 @@ var Event_Event = { * @param {(HTMLElement|string)} elementParam - 待监听的 DOM 对象或者其 ID 标识。 */ stopObservingElement: function stopObservingElement(elementParam) { - var element = Util.getElement(elementParam); + var element = Util_Util.getElement(elementParam); var cacheID = element._eventCacheID; this._removeElementObservers(Event_Event.observers[cacheID]); }, @@ -40204,7 +40158,7 @@ var Event_Event = { */ stopObserving: function stopObserving(elementParam, name, observer, useCapture) { useCapture = useCapture || false; - var element = Util.getElement(elementParam); + var element = Util_Util.getElement(elementParam); var cacheID = element._eventCacheID; if (name === 'keypress') { if (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.detachEvent) { @@ -40261,7 +40215,7 @@ var Event_Event = { }; /* prevent memory leaks in IE */ Event_Event.observe(window, 'resize', Event_Event.unloadCache, false); -;// ./src/common/commontypes/Events.js +;// CONCATENATED MODULE: ./src/common/commontypes/Events.js function Events_typeof(o) { "@babel/helpers - typeof"; return Events_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Events_typeof(o); } function Events_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Events_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Events_toPropertyKey(o.key), o); } } @@ -40367,7 +40321,7 @@ var Events = /*#__PURE__*/function () { * @description 待移除的鼠标监听事件。 */ this.clearMouseListener = null; - Util.extend(this, options); + Util_Util.extend(this, options); if (eventTypes != null) { for (var i = 0, len = eventTypes.length; i < len; i++) { this.addEventType(eventTypes[i]); @@ -40502,7 +40456,7 @@ var Events = /*#__PURE__*/function () { if (type in Events && !this.extensions[type]) { this.extensions[type] = new Events[type](this); } - if (func != null && Util.indexOf(this.eventTypes, type) !== -1) { + if (func != null && Util_Util.indexOf(this.eventTypes, type) !== -1) { if (obj == null) { obj = this.object; } @@ -40724,21 +40678,21 @@ var Events = /*#__PURE__*/function () { this.element.hasScrollEvent = true; } if (!this.element.scrolls) { - var viewportElement = Util.getViewportElement(); + var viewportElement = Util_Util.getViewportElement(); this.element.scrolls = [viewportElement.scrollLeft, viewportElement.scrollTop]; } if (!this.element.lefttop) { this.element.lefttop = [document.documentElement.clientLeft || 0, document.documentElement.clientTop || 0]; } if (!this.element.offsets) { - this.element.offsets = Util.pagePosition(this.element); + this.element.offsets = Util_Util.pagePosition(this.element); } return new Pixel(evt.clientX + this.element.scrolls[0] - this.element.offsets[0] - this.element.lefttop[0], evt.clientY + this.element.scrolls[1] - this.element.offsets[1] - this.element.lefttop[1]); } }]); }(); Events.prototype.BROWSER_EVENTS = ["mouseover", "mouseout", "mousedown", "mouseup", "mousemove", "click", "dblclick", "rightclick", "dblrightclick", "resize", "focus", "blur", "touchstart", "touchmove", "touchend", "keydown", "MSPointerDown", "MSPointerUp", "pointerdown", "pointerup", "MSGestureStart", "MSGestureChange", "MSGestureEnd", "contextmenu"]; -;// ./src/common/commontypes/Geometry3D.js +;// CONCATENATED MODULE: ./src/common/commontypes/Geometry3D.js function Geometry3D_typeof(o) { "@babel/helpers - typeof"; return Geometry3D_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Geometry3D_typeof(o); } function Geometry3D_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Geometry3D_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Geometry3D_toPropertyKey(o.key), o); } } @@ -40813,7 +40767,7 @@ var Geometry3D = /*#__PURE__*/function (_ServerGeometry) { * @description 三维几何对象沿 Z 轴方向的缩放比例。 */ _this.scaleZ = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } @@ -40835,7 +40789,7 @@ var Geometry3D = /*#__PURE__*/function (_ServerGeometry) { } }]); }(ServerGeometry); -;// ./src/common/commontypes/index.js +;// CONCATENATED MODULE: ./src/common/commontypes/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -40868,7 +40822,7 @@ var Geometry3D = /*#__PURE__*/function (_ServerGeometry) { -;// ./src/common/overlay/levelRenderer/Shape.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Shape.js function Shape_typeof(o) { "@babel/helpers - typeof"; return Shape_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Shape_typeof(o); } function Shape_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Shape_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Shape_toPropertyKey(o.key), o); } } @@ -40879,7 +40833,7 @@ function Shape_callSuper(t, o, e) { return o = Shape_getPrototypeOf(o), Shape_po function Shape_possibleConstructorReturn(t, e) { if (e && ("object" == Shape_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Shape_assertThisInitialized(t); } function Shape_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Shape_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Shape_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Shape_superPropGet(t, o, e, r) { var p = Shape_get(Shape_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Shape_superPropGet(t, e, o, r) { var p = Shape_get(Shape_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Shape_get() { return Shape_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Shape_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Shape_get.apply(null, arguments); } function Shape_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Shape_getPrototypeOf(t));); return t; } function Shape_getPrototypeOf(t) { return Shape_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Shape_getPrototypeOf(t); } @@ -40903,7 +40857,7 @@ function Shape_setPrototypeOf(t, e) { return Shape_setPrototypeOf = Object.setPr * @extends LevelRenderer.Transformable * @param {Array} options - shape 的配置(options)项,可以是 shape 的自有属性,也可以是自定义的属性。 */ -var Shape = /*#__PURE__*/function (_mixin) { +var Shape_Shape = /*#__PURE__*/function (_mixin) { function Shape(options) { var _this; Shape_classCallCheck(this, Shape); @@ -41080,8 +41034,8 @@ var Shape = /*#__PURE__*/function (_mixin) { * */ _this.dataInfo = null; - Util.extend(_this, options); - _this.id = _this.id || Util.createUniqueID("smShape_"); + Util_Util.extend(_this, options); + _this.id = _this.id || Util_Util.createUniqueID("smShape_"); _this.CLASS_NAME = "SuperMap.LevelRenderer.Shape"; /** * @function LevelRenderer.Shape.prototype.getTansform @@ -41094,8 +41048,8 @@ var Shape = /*#__PURE__*/function (_mixin) { var originPos = [x, y]; // 对鼠标的坐标也做相同的变换 if (this.needTransform && this.transform) { - SUtil.Util_matrix.invert(invTransform, this.transform); - SUtil.Util_matrix.mulVector(originPos, invTransform, [x, y, 1]); + SUtil_SUtil.Util_matrix.invert(invTransform, this.transform); + SUtil_SUtil.Util_matrix.mulVector(originPos, invTransform, [x, y, 1]); if (x == originPos[0] && y == originPos[1]) { // 避免外部修改导致的 needTransform 不准确 this.updateNeedTransform(); @@ -41250,13 +41204,13 @@ var Shape = /*#__PURE__*/function (_mixin) { }, { key: "doClip", value: function doClip(ctx) { - var clipShapeInvTransform = SUtil.Util_matrix.create(); + var clipShapeInvTransform = SUtil_SUtil.Util_matrix.create(); if (this.__clipShapes) { for (var i = 0; i < this.__clipShapes.length; i++) { var clipShape = this.__clipShapes[i]; if (clipShape.needTransform) { var m = clipShape.transform; - SUtil.Util_matrix.invert(clipShapeInvTransform, m); + SUtil_SUtil.Util_matrix.invert(clipShapeInvTransform, m); ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); } ctx.beginPath(); @@ -41287,7 +41241,7 @@ var Shape = /*#__PURE__*/function (_mixin) { for (var k in style) { newStyle[k] = style[k]; } - var highlightColor = SUtil.Util_color.getHighlightColor(); + var highlightColor = SUtil_SUtil.Util_color.getHighlightColor(); // 根据highlightStyle扩展 if (style.brushType != 'stroke') { // 带填充则用高亮色加粗边线 @@ -41327,7 +41281,7 @@ var Shape = /*#__PURE__*/function (_mixin) { // SMIC-方法修改 - end } else { // 线型的则用原色加工高亮 - newStyle.strokeColor = highlightStyle.strokeColor || SUtil.Util_color.mix(style.strokeColor, SUtil.Util_color.toRGB(highlightColor)); + newStyle.strokeColor = highlightStyle.strokeColor || SUtil_SUtil.Util_color.mix(style.strokeColor, SUtil_SUtil.Util_color.toRGB(highlightColor)); } } @@ -41377,7 +41331,7 @@ var Shape = /*#__PURE__*/function (_mixin) { key: "buildPath", value: function buildPath(ctx, style) { // eslint-disable-line no-unused-vars - SUtil.Util_log('buildPath not implemented in ' + this.type); + SUtil_SUtil.Util_log('buildPath not implemented in ' + this.type); } /** @@ -41390,7 +41344,7 @@ var Shape = /*#__PURE__*/function (_mixin) { key: "getRect", value: function getRect(style) { // eslint-disable-line no-unused-vars - SUtil.Util_log('getRect not implemented in ' + this.type); + SUtil_SUtil.Util_log('getRect not implemented in ' + this.type); } /** @@ -41414,7 +41368,7 @@ var Shape = /*#__PURE__*/function (_mixin) { } if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { // 矩形内 - return SUtil.Util_area.isInside(this, this.style, x, y); + return SUtil_SUtil.Util_area.isInside(this, this.style, x, y); } return false; } @@ -41671,7 +41625,7 @@ var Shape = /*#__PURE__*/function (_mixin) { ctx.textBaseline = textBaseline; var rect = Shape._getTextRect(text, x, y, textFont, textAlign, textBaseline); text = (text + '').split('\n'); - var lineHeight = SUtil.Util_area.getTextHeight('ZH', textFont); + var lineHeight = SUtil_SUtil.Util_area.getTextHeight('ZH', textFont); switch (textBaseline) { case 'top': y = rect.y; @@ -41703,8 +41657,8 @@ var Shape = /*#__PURE__*/function (_mixin) { }, { key: "_getTextRect", value: function _getTextRect(text, x, y, textFont, textAlign, textBaseline) { - var width = SUtil.Util_area.getTextWidth(text, textFont); - var lineHeight = SUtil.Util_area.getTextHeight('ZH', textFont); + var width = SUtil_SUtil.Util_area.getTextWidth(text, textFont); + var lineHeight = SUtil_SUtil.Util_area.getTextHeight('ZH', textFont); text = (text + '').split('\n'); switch (textAlign) { case 'end': @@ -41733,7 +41687,7 @@ var Shape = /*#__PURE__*/function (_mixin) { } }]); }(mixinExt(Eventful, Transformable)); -;// ./src/common/overlay/levelRenderer/SmicImage.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicImage.js function SmicImage_typeof(o) { "@babel/helpers - typeof"; return SmicImage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicImage_typeof(o); } function SmicImage_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicImage_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicImage_toPropertyKey(o.key), o); } } @@ -41744,7 +41698,7 @@ function SmicImage_callSuper(t, o, e) { return o = SmicImage_getPrototypeOf(o), function SmicImage_possibleConstructorReturn(t, e) { if (e && ("object" == SmicImage_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicImage_assertThisInitialized(t); } function SmicImage_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicImage_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicImage_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicImage_superPropGet(t, o, e, r) { var p = SmicImage_get(SmicImage_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicImage_superPropGet(t, e, o, r) { var p = SmicImage_get(SmicImage_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicImage_get() { return SmicImage_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicImage_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicImage_get.apply(null, arguments); } function SmicImage_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicImage_getPrototypeOf(t));); return t; } function SmicImage_getPrototypeOf(t) { return SmicImage_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicImage_getPrototypeOf(t); } @@ -41948,10 +41902,10 @@ var SmicImage = /*#__PURE__*/function (_Shape) { this._imageCache = {}; } }]); -}(Shape); +}(Shape_Shape); SmicImage._needsRefresh = []; SmicImage._refreshTimeout = null; -;// ./src/common/overlay/levelRenderer/Painter.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Painter.js function Painter_typeof(o) { "@babel/helpers - typeof"; return Painter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Painter_typeof(o); } function Painter_callSuper(t, o, e) { return o = Painter_getPrototypeOf(o), Painter_possibleConstructorReturn(t, Painter_isNativeReflectConstruct() ? Reflect.construct(o, e || [], Painter_getPrototypeOf(t).constructor) : o.apply(t, e)); } function Painter_possibleConstructorReturn(t, e) { if (e && ("object" == Painter_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Painter_assertThisInitialized(t); } @@ -42062,7 +42016,7 @@ var Painter = /*#__PURE__*/function () { // 创建各层canvas // 背景 //this._bgDom = Painter.createDom('bg', 'div', this); - this._bgDom = Painter.createDom(Util.createUniqueID("SuperMap.Theme_background_"), 'div', this); + this._bgDom = Painter.createDom(Util_Util.createUniqueID("SuperMap.Theme_background_"), 'div', this); domRoot.appendChild(this._bgDom); this._bgDom.onselectstart = returnFalse; this._bgDom.style['-webkit-user-select'] = 'none'; @@ -42071,7 +42025,7 @@ var Painter = /*#__PURE__*/function () { // 高亮 //var hoverLayer = new PaintLayer('_hoverLayer_', this); - var hoverLayer = new PaintLayer(Util.createUniqueID("_highLightLayer_"), this); + var hoverLayer = new PaintLayer(Util_Util.createUniqueID("_highLightLayer_"), this); this._layers['hover'] = hoverLayer; domRoot.appendChild(hoverLayer.dom); hoverLayer.initContext(); @@ -42193,7 +42147,7 @@ var Painter = /*#__PURE__*/function () { // Set transform if (clipShape.needTransform) { var m = clipShape.transform; - SUtil.Util_matrix.invert(invTransform, m); + SUtil_SUtil.Util_matrix.invert(invTransform, m); ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); } ctx.beginPath(); @@ -42212,7 +42166,7 @@ var Painter = /*#__PURE__*/function () { try { shape.brush(ctx, false, this.updatePainter); } catch (error) { - SUtil.Util_log(error, 'brush error of ' + shape.type, shape); + SUtil_SUtil.Util_log(error, 'brush error of ' + shape.type, shape); } } else { shape.brush(ctx, false, this.updatePainter); @@ -42273,7 +42227,7 @@ var Painter = /*#__PURE__*/function () { // Create a new layer //currentLayer = new PaintLayer(zlevel, this); - currentLayer = new PaintLayer(Util.createUniqueID("_levelLayer_" + zlevel), this); + currentLayer = new PaintLayer(Util_Util.createUniqueID("_levelLayer_" + zlevel), this); var prevDom = prevLayer ? prevLayer.dom : this._bgDom; if (prevDom.nextSibling) { prevDom.parentNode.insertBefore(currentLayer.dom, prevDom.nextSibling); @@ -42541,7 +42495,7 @@ var Painter = /*#__PURE__*/function () { key: "toDataURL", value: function toDataURL(type, backgroundColor, args) { //var imageDom = Painter.createDom('image', 'canvas', this); - var imageDom = Painter.createDom(Util.createUniqueID("SuperMap.Theme.image_"), 'canvas', this); + var imageDom = Painter.createDom(Util_Util.createUniqueID("SuperMap.Theme.image_"), 'canvas', this); this._bgDom.appendChild(imageDom); var ctx = imageDom.getContext('2d'); Painter.devicePixelRatio != 1 && ctx.scale(Painter.devicePixelRatio, Painter.devicePixelRatio); @@ -42560,7 +42514,7 @@ var Painter = /*#__PURE__*/function () { try { shape.brush(ctx, false, self.updatePainter); } catch (error) { - SUtil.Util_log(error, 'brush error of ' + shape.type, shape); + SUtil_SUtil.Util_log(error, 'brush error of ' + shape.type, shape); } } else { shape.brush(ctx, false, self.updatePainter); @@ -42646,7 +42600,7 @@ var Painter = /*#__PURE__*/function () { try { shape.brush(ctx, true, this.updatePainter); } catch (error) { - SUtil.Util_log(error, 'hoverBrush error of ' + shape.type, shape); + SUtil_SUtil.Util_log(error, 'hoverBrush error of ' + shape.type, shape); } } else { shape.brush(ctx, true, this.updatePainter); @@ -42886,7 +42840,7 @@ var PaintLayer = /*#__PURE__*/function (_Transformable) { * @description Canvas 上下文。 */ _this.ctx = null; - _this.dom = Painter.createDom(Util.createUniqueID("SuperMap.Theme" + id), 'canvas', painter); + _this.dom = Painter.createDom(Util_Util.createUniqueID("SuperMap.Theme" + id), 'canvas', painter); _this.dom.onselectstart = returnFalse; // 避免页面选中的尴尬 _this.dom.style['-webkit-user-select'] = 'none'; _this.dom.style['user-select'] = 'none'; @@ -42947,7 +42901,7 @@ var PaintLayer = /*#__PURE__*/function (_Transformable) { }, { key: "createBackBuffer", value: function createBackBuffer() { - this.domBack = Painter.createDom(Util.createUniqueID("SuperMap.Theme.back-" + this.id), 'canvas', this.painter); + this.domBack = Painter.createDom(Util_Util.createUniqueID("SuperMap.Theme.back-" + this.id), 'canvas', this.painter); this.ctxBack = this.domBack.getContext('2d'); if (Painter.devicePixelRatio != 1) { this.ctxBack.scale(Painter.devicePixelRatio, Painter.devicePixelRatio); @@ -43019,7 +42973,7 @@ var PaintLayer = /*#__PURE__*/function (_Transformable) { } }]); }(Transformable); -;// ./src/common/overlay/levelRenderer/Handler.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Handler.js function Handler_typeof(o) { "@babel/helpers - typeof"; return Handler_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Handler_typeof(o); } function Handler_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Handler_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Handler_toPropertyKey(o.key), o); } } @@ -43236,8 +43190,8 @@ var Handler = /*#__PURE__*/function (_Eventful) { event = this._zrenderEventFixed(event); this._lastX = this._mouseX; this._lastY = this._mouseY; - this._mouseX = SUtil.Util_event.getX(event); - this._mouseY = SUtil.Util_event.getY(event); + this._mouseX = SUtil_SUtil.Util_event.getX(event); + this._mouseY = SUtil_SUtil.Util_event.getY(event); var dx = this._mouseX - this._lastX; var dy = this._mouseY - this._lastY; @@ -43413,7 +43367,7 @@ var Handler = /*#__PURE__*/function (_Eventful) { event = this._zrenderEventFixed(event, true); this._mousemoveHandler(event); if (this._isDragging) { - SUtil.Util_event.stop(event); // 阻止浏览器默认事件,重要 + SUtil_SUtil.Util_event.stop(event); // 阻止浏览器默认事件,重要 } }, /** @@ -43435,7 +43389,7 @@ var Handler = /*#__PURE__*/function (_Eventful) { if (now - this._lastClickMoment < Config.EVENT.touchClickDelay / 2) { this._dblclickHandler(event); if (this._lastHover && this._lastHover.clickable) { - SUtil.Util_event.stop(event); // 阻止浏览器默认事件,重要 + SUtil_SUtil.Util_event.stop(event); // 阻止浏览器默认事件,重要 } } this._lastClickMoment = now; @@ -43448,7 +43402,7 @@ var Handler = /*#__PURE__*/function (_Eventful) { // 初始化,事件绑定,支持的所有事件都由如下原生事件计算得来 if (window.addEventListener) { window.addEventListener('resize', _this._resizeHandler); - if (SUtil.Util_env.os.tablet || SUtil.Util_env.os.phone) { + if (SUtil_SUtil.Util_env.os.tablet || SUtil_SUtil.Util_env.os.phone) { // mobile支持 root.addEventListener('touchstart', _this._touchstartHandler); root.addEventListener('touchmove', _this._touchmoveHandler); @@ -43698,7 +43652,7 @@ var Handler = /*#__PURE__*/function (_Eventful) { var root = this.root; if (window.removeEventListener) { window.removeEventListener('resize', this._resizeHandler); - if (SUtil.Util_env.os.tablet || SUtil.Util_env.os.phone) { + if (SUtil_SUtil.Util_env.os.tablet || SUtil_SUtil.Util_env.os.phone) { // mobile支持 root.removeEventListener('touchstart', this._touchstartHandler); root.removeEventListener('touchmove', this._touchmoveHandler); @@ -43937,7 +43891,7 @@ var Handler = /*#__PURE__*/function (_Eventful) { }, { key: "_iterateAndFindHover", value: function _iterateAndFindHover() { - var invTransform = SUtil.Util_matrix.create(); + var invTransform = SUtil_SUtil.Util_matrix.create(); var list = this.storage.getShapeList(); var currentZLevel; var currentLayer; @@ -43949,8 +43903,8 @@ var Handler = /*#__PURE__*/function (_Eventful) { tmp[0] = this._mouseX; tmp[1] = this._mouseY; if (currentLayer.needTransform) { - SUtil.Util_matrix.invert(invTransform, currentLayer.transform); - SUtil.Util_vector.applyTransform(tmp, tmp, invTransform); + SUtil_SUtil.Util_matrix.invert(invTransform, currentLayer.transform); + SUtil_SUtil.Util_vector.applyTransform(tmp, tmp, invTransform); } } if (this._findHover(shape, tmp[0], tmp[1])) { @@ -44052,7 +44006,7 @@ var Handler = /*#__PURE__*/function (_Eventful) { // SMIC-方法扩展 - end }]); }(Eventful); -;// ./src/common/overlay/levelRenderer/Easing.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Easing.js function Easing_typeof(o) { "@babel/helpers - typeof"; return Easing_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Easing_typeof(o); } function Easing_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Easing_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Easing_toPropertyKey(o.key), o); } } @@ -44553,7 +44507,7 @@ var Easing = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Clip.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Clip.js function Clip_typeof(o) { "@babel/helpers - typeof"; return Clip_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Clip_typeof(o); } function Clip_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Clip_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Clip_toPropertyKey(o.key), o); } } @@ -44665,7 +44619,7 @@ var Clip = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Animation.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Animation.js function Animation_typeof(o) { "@babel/helpers - typeof"; return Animation_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Animation_typeof(o); } function Animation_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Animation_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Animation_toPropertyKey(o.key), o); } } @@ -44751,7 +44705,7 @@ var Animation = /*#__PURE__*/function (_Eventful) { * @description _time。 */ _this._time = 0; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.LevelRenderer.Animation"; return _this; } @@ -45154,7 +45108,7 @@ var Animator = /*#__PURE__*/function () { // Assume value is a color when it is a string var value = keyframes[_i5].value; if (typeof value == 'string') { - value = SUtil.Util_color.toArray(value); + value = SUtil_SUtil.Util_color.toArray(value); if (value.length === 0) { // Invalid color value[0] = value[1] = value[2] = 0; @@ -45310,7 +45264,7 @@ var Animator = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/levelRenderer/Render.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/Render.js function Render_typeof(o) { "@babel/helpers - typeof"; return Render_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Render_typeof(o); } function Render_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Render_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Render_toPropertyKey(o.key), o); } } @@ -45684,7 +45638,7 @@ var Render = /*#__PURE__*/function () { target = el; } if (!target) { - SUtil.Util_log('Property "' + path + '" is not existed in element ' + el.id); + SUtil_SUtil.Util_log('Property "' + path + '" is not existed in element ' + el.id); return; } var animatingElements = this.animatingElements; @@ -45707,7 +45661,7 @@ var Render = /*#__PURE__*/function () { } }); } else { - SUtil.Util_log('Element not existed'); + SUtil_SUtil.Util_log('Element not existed'); } } @@ -45771,7 +45725,7 @@ var Render = /*#__PURE__*/function () { }, { key: "shapeToImage", value: function shapeToImage(e, width, height) { - var id = Util.createUniqueID("SuperMap.LevelRenderer.ToImage_"); + var id = Util_Util.createUniqueID("SuperMap.LevelRenderer.ToImage_"); return this.painter.shapeToImage(id, e, width, height); } @@ -45926,7 +45880,7 @@ var Render = /*#__PURE__*/function () { // SMIC-方法扩展 - end }]); }(); -;// ./src/common/overlay/levelRenderer/LevelRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/LevelRenderer.js function LevelRenderer_typeof(o) { "@babel/helpers - typeof"; return LevelRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LevelRenderer_typeof(o); } function LevelRenderer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LevelRenderer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LevelRenderer_toPropertyKey(o.key), o); } } @@ -46002,7 +45956,7 @@ var LevelRenderer = /*#__PURE__*/function () { }, { key: "init", value: function init(dom) { - var zr = new Render(Util.createUniqueID("LRenderer_"), dom); + var zr = new Render(Util_Util.createUniqueID("LRenderer_"), dom); LevelRenderer._instances[zr.id] = zr; return zr; } @@ -46057,7 +46011,7 @@ var LevelRenderer = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ServerFeature.js +;// CONCATENATED MODULE: ./src/common/iServer/ServerFeature.js function ServerFeature_typeof(o) { "@babel/helpers - typeof"; return ServerFeature_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServerFeature_typeof(o); } function ServerFeature_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ServerFeature_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServerFeature_toPropertyKey(o.key), o); } } @@ -46103,7 +46057,7 @@ var ServerFeature = /*#__PURE__*/function () { */ this.geometry = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ServerFeature"; } @@ -46178,7 +46132,7 @@ var ServerFeature = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/theme/ThemeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/theme/ThemeLayer.js function ThemeLayer_typeof(o) { "@babel/helpers - typeof"; return ThemeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeLayer_typeof(o); } function ThemeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeLayer_toPropertyKey(o.key), o); } } @@ -46203,7 +46157,7 @@ function ThemeLayer_toPrimitive(t, r) { if ("object" != ThemeLayer_typeof(t) || /** * @class ThemeLayer * @category Visualization Theme - * @classdesc 专题图基类。地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。 + * @classdesc 专题图基类。地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。
* 在 SuperMap 中,专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。 * 调用建议:使用其子类实现该类。 * @modulecategory Overlay @@ -46232,7 +46186,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { * @member {string} [ThemeLayer.prototype.id] * @description 专题图图层 ID。 */ - this.id = options.id ? options.id : Util.createUniqueID("themeLayer_"); + this.id = options.id ? options.id : Util_Util.createUniqueID("themeLayer_"); /** * @member {number} [ThemeLayer.prototype.opacity=1] * @description 图层不透明度。 @@ -46368,7 +46322,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { /** * @function ThemeLayer.prototype.display - * @description 隐藏或者显示图层。(通过对 CSS 控制产生即时效果,重新渲染失效。) + * @description 隐藏或者显示图层。(通过对 CSS 控制产生即时效果,重新渲染失效) * @param {boolean} [display] - 是否显示图层。 */ }, { @@ -46388,7 +46342,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { if (opacity !== this.opacity) { this.opacity = opacity; var element = this.div; - Util.modifyDOMElement(element, null, null, null, null, null, null, opacity); + Util_Util.modifyDOMElement(element, null, null, null, null, null, null, opacity); if (this.map !== null) { /** * @event ThemeLayer#changelayer @@ -46407,7 +46361,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { /** * @function ThemeLayer.prototype.addFeatures * @param {ThemeFeature|ServerFeature|GeoJSONObject} features - 待添加要素。 - * @description 向专题图图层中添加数据 + * @description 向专题图图层中添加数据。 */ }, { key: "addFeatures", @@ -46419,7 +46373,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { * @param {(Array.|FeatureVector|Function)} features - 待删除要素的数组或用来过滤的回调函数。 * @description 删除专题图中的要素。 * 参数中的要素数组中的每一项,必须是已经添加到当前图层中的要素, - * 如果要删除的要素数组中的元素过多,推荐使用 removeAllFeatures删除所有要素后,再重新添加。这样效率会更高。 + * 如果要删除的要素数组中的元素过多,推荐使用 removeAllFeatures 删除所有要素后,再重新添加,效率将更高。 */ }, { key: "removeFeatures", @@ -46431,7 +46385,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { if (features === me.features) { return me.removeAllFeatures(); } - if (!Util.isArray(features) && !(typeof features === 'function')) { + if (!Util_Util.isArray(features) && !(typeof features === 'function')) { features = [features]; } var featuresFailRemoved = []; @@ -46445,7 +46399,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { me.features.splice(i--, 1); } } else { - var findex = Util.indexOf(features, feature); + var findex = Util_Util.indexOf(features, feature); if (findex === -1) { featuresFailRemoved.push(feature); } else { @@ -46663,7 +46617,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { }, { key: "toiClientFeature", value: function toiClientFeature(features) { - if (!Util.isArray(features)) { + if (!Util_Util.isArray(features)) { features = [features]; } var featuresTemp = []; @@ -46862,7 +46816,7 @@ var ThemeLayer_Theme = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/GraphThemeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/GraphThemeLayer.js function GraphThemeLayer_typeof(o) { "@babel/helpers - typeof"; return GraphThemeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GraphThemeLayer_typeof(o); } function GraphThemeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GraphThemeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GraphThemeLayer_toPropertyKey(o.key), o); } } @@ -46873,7 +46827,7 @@ function GraphThemeLayer_callSuper(t, o, e) { return o = GraphThemeLayer_getProt function GraphThemeLayer_possibleConstructorReturn(t, e) { if (e && ("object" == GraphThemeLayer_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GraphThemeLayer_assertThisInitialized(t); } function GraphThemeLayer_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GraphThemeLayer_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GraphThemeLayer_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GraphThemeLayer_superPropGet(t, o, e, r) { var p = GraphThemeLayer_get(GraphThemeLayer_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GraphThemeLayer_superPropGet(t, e, o, r) { var p = GraphThemeLayer_get(GraphThemeLayer_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GraphThemeLayer_get() { return GraphThemeLayer_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GraphThemeLayer_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GraphThemeLayer_get.apply(null, arguments); } function GraphThemeLayer_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GraphThemeLayer_getPrototypeOf(t));); return t; } function GraphThemeLayer_getPrototypeOf(t) { return GraphThemeLayer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GraphThemeLayer_getPrototypeOf(t); } @@ -47208,7 +47162,7 @@ var Graph = /*#__PURE__*/function (_Theme) { break; } for (var j = 0; j < quad2Len - 1; j++) { - var isLineIn = Util.lineIntersection(quadrilateral[_i2], quadrilateral[_i2 + 1], quadrilateral2[j], quadrilateral2[j + 1]); + var isLineIn = Util_Util.lineIntersection(quadrilateral[_i2], quadrilateral[_i2 + 1], quadrilateral2[j], quadrilateral2[j + 1]); if (isLineIn.CLASS_NAME === "SuperMap.Geometry.Point") { OverLap = true; break; @@ -47319,7 +47273,7 @@ var Graph = /*#__PURE__*/function (_Theme) { } }]); }(ThemeLayer_Theme); -;// ./src/common/overlay/feature/ShapeParameters.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/ShapeParameters.js function ShapeParameters_typeof(o) { "@babel/helpers - typeof"; return ShapeParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ShapeParameters_typeof(o); } function ShapeParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ShapeParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ShapeParameters_toPropertyKey(o.key), o); } } @@ -47424,7 +47378,7 @@ var ShapeParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/feature/Point.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Point.js function feature_Point_typeof(o) { "@babel/helpers - typeof"; return feature_Point_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, feature_Point_typeof(o); } function feature_Point_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function feature_Point_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, feature_Point_toPropertyKey(o.key), o); } } @@ -47435,7 +47389,7 @@ function feature_Point_callSuper(t, o, e) { return o = feature_Point_getPrototyp function feature_Point_possibleConstructorReturn(t, e) { if (e && ("object" == feature_Point_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return feature_Point_assertThisInitialized(t); } function feature_Point_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function feature_Point_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (feature_Point_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Point_superPropGet(t, o, e, r) { var p = Point_get(feature_Point_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Point_superPropGet(t, e, o, r) { var p = Point_get(feature_Point_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Point_get() { return Point_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Point_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Point_get.apply(null, arguments); } function Point_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = feature_Point_getPrototypeOf(t));); return t; } function feature_Point_getPrototypeOf(t) { return feature_Point_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, feature_Point_getPrototypeOf(t); } @@ -47499,7 +47453,7 @@ var Point_Point = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/feature/Line.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Line.js function Line_typeof(o) { "@babel/helpers - typeof"; return Line_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Line_typeof(o); } function Line_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Line_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Line_toPropertyKey(o.key), o); } } @@ -47510,7 +47464,7 @@ function Line_callSuper(t, o, e) { return o = Line_getPrototypeOf(o), Line_possi function Line_possibleConstructorReturn(t, e) { if (e && ("object" == Line_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Line_assertThisInitialized(t); } function Line_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Line_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Line_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Line_superPropGet(t, o, e, r) { var p = Line_get(Line_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Line_superPropGet(t, e, o, r) { var p = Line_get(Line_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Line_get() { return Line_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Line_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Line_get.apply(null, arguments); } function Line_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Line_getPrototypeOf(t));); return t; } function Line_getPrototypeOf(t) { return Line_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Line_getPrototypeOf(t); } @@ -47566,7 +47520,7 @@ var Line_Line = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/feature/Polygon.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Polygon.js function feature_Polygon_typeof(o) { "@babel/helpers - typeof"; return feature_Polygon_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, feature_Polygon_typeof(o); } function feature_Polygon_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function feature_Polygon_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, feature_Polygon_toPropertyKey(o.key), o); } } @@ -47577,7 +47531,7 @@ function feature_Polygon_callSuper(t, o, e) { return o = feature_Polygon_getProt function feature_Polygon_possibleConstructorReturn(t, e) { if (e && ("object" == feature_Polygon_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return feature_Polygon_assertThisInitialized(t); } function feature_Polygon_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function feature_Polygon_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (feature_Polygon_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Polygon_superPropGet(t, o, e, r) { var p = Polygon_get(feature_Polygon_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Polygon_superPropGet(t, e, o, r) { var p = Polygon_get(feature_Polygon_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Polygon_get() { return Polygon_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Polygon_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Polygon_get.apply(null, arguments); } function Polygon_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = feature_Polygon_getPrototypeOf(t));); return t; } function feature_Polygon_getPrototypeOf(t) { return feature_Polygon_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, feature_Polygon_getPrototypeOf(t); } @@ -47599,7 +47553,7 @@ function feature_Polygon_setPrototypeOf(t, e) { return feature_Polygon_setProtot * @usage */ -var Polygon_Polygon = /*#__PURE__*/function (_ShapeParameters) { +var feature_Polygon_Polygon = /*#__PURE__*/function (_ShapeParameters) { function Polygon(pointList) { var _this; feature_Polygon_classCallCheck(this, Polygon); @@ -47641,7 +47595,7 @@ var Polygon_Polygon = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/feature/Rectangle.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Rectangle.js function feature_Rectangle_typeof(o) { "@babel/helpers - typeof"; return feature_Rectangle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, feature_Rectangle_typeof(o); } function feature_Rectangle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function feature_Rectangle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, feature_Rectangle_toPropertyKey(o.key), o); } } @@ -47652,7 +47606,7 @@ function feature_Rectangle_callSuper(t, o, e) { return o = feature_Rectangle_get function feature_Rectangle_possibleConstructorReturn(t, e) { if (e && ("object" == feature_Rectangle_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return feature_Rectangle_assertThisInitialized(t); } function feature_Rectangle_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function feature_Rectangle_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (feature_Rectangle_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Rectangle_superPropGet(t, o, e, r) { var p = Rectangle_get(feature_Rectangle_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Rectangle_superPropGet(t, e, o, r) { var p = Rectangle_get(feature_Rectangle_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Rectangle_get() { return Rectangle_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Rectangle_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Rectangle_get.apply(null, arguments); } function Rectangle_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = feature_Rectangle_getPrototypeOf(t));); return t; } function feature_Rectangle_getPrototypeOf(t) { return feature_Rectangle_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, feature_Rectangle_getPrototypeOf(t); } @@ -47725,7 +47679,7 @@ var Rectangle_Rectangle = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/feature/Sector.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Sector.js function Sector_typeof(o) { "@babel/helpers - typeof"; return Sector_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Sector_typeof(o); } function Sector_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Sector_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Sector_toPropertyKey(o.key), o); } } @@ -47736,7 +47690,7 @@ function Sector_callSuper(t, o, e) { return o = Sector_getPrototypeOf(o), Sector function Sector_possibleConstructorReturn(t, e) { if (e && ("object" == Sector_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Sector_assertThisInitialized(t); } function Sector_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Sector_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Sector_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Sector_superPropGet(t, o, e, r) { var p = Sector_get(Sector_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Sector_superPropGet(t, e, o, r) { var p = Sector_get(Sector_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Sector_get() { return Sector_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Sector_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Sector_get.apply(null, arguments); } function Sector_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Sector_getPrototypeOf(t));); return t; } function Sector_getPrototypeOf(t) { return Sector_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Sector_getPrototypeOf(t); } @@ -47832,7 +47786,7 @@ var Sector = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/feature/Label.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Label.js function Label_typeof(o) { "@babel/helpers - typeof"; return Label_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Label_typeof(o); } function Label_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Label_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Label_toPropertyKey(o.key), o); } } @@ -47843,7 +47797,7 @@ function Label_callSuper(t, o, e) { return o = Label_getPrototypeOf(o), Label_po function Label_possibleConstructorReturn(t, e) { if (e && ("object" == Label_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Label_assertThisInitialized(t); } function Label_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Label_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Label_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Label_superPropGet(t, o, e, r) { var p = Label_get(Label_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Label_superPropGet(t, e, o, r) { var p = Label_get(Label_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Label_get() { return Label_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Label_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Label_get.apply(null, arguments); } function Label_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Label_getPrototypeOf(t));); return t; } function Label_getPrototypeOf(t) { return Label_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Label_getPrototypeOf(t); } @@ -47927,7 +47881,7 @@ var Label = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/feature/Image.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Image.js function Image_typeof(o) { "@babel/helpers - typeof"; return Image_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Image_typeof(o); } function Image_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Image_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Image_toPropertyKey(o.key), o); } } @@ -47938,7 +47892,7 @@ function Image_callSuper(t, o, e) { return o = Image_getPrototypeOf(o), Image_po function Image_possibleConstructorReturn(t, e) { if (e && ("object" == Image_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Image_assertThisInitialized(t); } function Image_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Image_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Image_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Image_superPropGet(t, o, e, r) { var p = Image_get(Image_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Image_superPropGet(t, e, o, r) { var p = Image_get(Image_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Image_get() { return Image_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Image_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Image_get.apply(null, arguments); } function Image_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Image_getPrototypeOf(t));); return t; } function Image_getPrototypeOf(t) { return Image_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Image_getPrototypeOf(t); } @@ -48050,7 +48004,7 @@ var Image_Image = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/feature/Circle.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/Circle.js function Circle_typeof(o) { "@babel/helpers - typeof"; return Circle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Circle_typeof(o); } function Circle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Circle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Circle_toPropertyKey(o.key), o); } } @@ -48061,7 +48015,7 @@ function Circle_callSuper(t, o, e) { return o = Circle_getPrototypeOf(o), Circle function Circle_possibleConstructorReturn(t, e) { if (e && ("object" == Circle_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Circle_assertThisInitialized(t); } function Circle_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Circle_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Circle_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Circle_superPropGet(t, o, e, r) { var p = Circle_get(Circle_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Circle_superPropGet(t, e, o, r) { var p = Circle_get(Circle_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Circle_get() { return Circle_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Circle_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Circle_get.apply(null, arguments); } function Circle_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Circle_getPrototypeOf(t));); return t; } function Circle_getPrototypeOf(t) { return Circle_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Circle_getPrototypeOf(t); } @@ -48126,7 +48080,7 @@ var Circle_Circle = /*#__PURE__*/function (_ShapeParameters) { } }]); }(ShapeParameters); -;// ./src/common/overlay/levelRenderer/SmicPoint.js +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicPoint.js function SmicPoint_typeof(o) { "@babel/helpers - typeof"; return SmicPoint_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicPoint_typeof(o); } function SmicPoint_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicPoint_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicPoint_toPropertyKey(o.key), o); } } @@ -48137,7 +48091,7 @@ function SmicPoint_callSuper(t, o, e) { return o = SmicPoint_getPrototypeOf(o), function SmicPoint_possibleConstructorReturn(t, e) { if (e && ("object" == SmicPoint_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicPoint_assertThisInitialized(t); } function SmicPoint_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicPoint_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicPoint_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicPoint_superPropGet(t, o, e, r) { var p = SmicPoint_get(SmicPoint_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicPoint_superPropGet(t, e, o, r) { var p = SmicPoint_get(SmicPoint_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicPoint_get() { return SmicPoint_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicPoint_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicPoint_get.apply(null, arguments); } function SmicPoint_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicPoint_getPrototypeOf(t));); return t; } function SmicPoint_getPrototypeOf(t) { return SmicPoint_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicPoint_getPrototypeOf(t); } @@ -48251,8 +48205,8 @@ var SmicPoint = /*#__PURE__*/function (_Shape) { return style.__rect; } }]); -}(Shape); -;// ./src/common/overlay/levelRenderer/SmicText.js +}(Shape_Shape); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicText.js function SmicText_typeof(o) { "@babel/helpers - typeof"; return SmicText_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicText_typeof(o); } function SmicText_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicText_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicText_toPropertyKey(o.key), o); } } @@ -48263,7 +48217,7 @@ function SmicText_callSuper(t, o, e) { return o = SmicText_getPrototypeOf(o), Sm function SmicText_possibleConstructorReturn(t, e) { if (e && ("object" == SmicText_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicText_assertThisInitialized(t); } function SmicText_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicText_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicText_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicText_superPropGet(t, o, e, r) { var p = SmicText_get(SmicText_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicText_superPropGet(t, e, o, r) { var p = SmicText_get(SmicText_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicText_get() { return SmicText_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicText_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicText_get.apply(null, arguments); } function SmicText_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicText_getPrototypeOf(t));); return t; } function SmicText_getPrototypeOf(t) { return SmicText_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicText_getPrototypeOf(t); } @@ -48356,7 +48310,7 @@ var SmicText = /*#__PURE__*/function (_Shape) { ctx.textAlign = style.textAlign || 'start'; ctx.textBaseline = style.textBaseline || 'middle'; var text = (style.text + '').split('\n'); - var lineHeight = SUtil.Util_area.getTextHeight('ZH', style.textFont); + var lineHeight = SUtil_SUtil.Util_area.getTextHeight('ZH', style.textFont); var rect = this.getRectNoRotation(style); // var x = style.x; var x = style.x + __OP[0]; @@ -48588,9 +48542,9 @@ var SmicText = /*#__PURE__*/function (_Shape) { this.refOriginalPosition = [0, 0]; } var __OP = this.refOriginalPosition; - var lineHeight = SUtil.Util_area.getTextHeight('ZH', style.textFont); - var width = SUtil.Util_area.getTextWidth(style.text, style.textFont); - var height = SUtil.Util_area.getTextHeight(style.text, style.textFont); + var lineHeight = SUtil_SUtil.Util_area.getTextHeight('ZH', style.textFont); + var width = SUtil_SUtil.Util_area.getTextWidth(style.text, style.textFont); + var height = SUtil_SUtil.Util_area.getTextHeight(style.text, style.textFont); //处理文字位置,注:文本的绘制是由此 rect 决定 var textX = style.x + __OP[0]; // 默认start == left @@ -48727,8 +48681,8 @@ var SmicText = /*#__PURE__*/function (_Shape) { return loc; } }]); -}(Shape); -;// ./src/common/overlay/levelRenderer/SmicCircle.js +}(Shape_Shape); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicCircle.js function SmicCircle_typeof(o) { "@babel/helpers - typeof"; return SmicCircle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicCircle_typeof(o); } function SmicCircle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicCircle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicCircle_toPropertyKey(o.key), o); } } @@ -48739,7 +48693,7 @@ function SmicCircle_callSuper(t, o, e) { return o = SmicCircle_getPrototypeOf(o) function SmicCircle_possibleConstructorReturn(t, e) { if (e && ("object" == SmicCircle_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicCircle_assertThisInitialized(t); } function SmicCircle_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicCircle_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicCircle_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicCircle_superPropGet(t, o, e, r) { var p = SmicCircle_get(SmicCircle_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicCircle_superPropGet(t, e, o, r) { var p = SmicCircle_get(SmicCircle_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicCircle_get() { return SmicCircle_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicCircle_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicCircle_get.apply(null, arguments); } function SmicCircle_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicCircle_getPrototypeOf(t));); return t; } function SmicCircle_getPrototypeOf(t) { return SmicCircle_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicCircle_getPrototypeOf(t); } @@ -48862,8 +48816,8 @@ var SmicCircle = /*#__PURE__*/function (_Shape) { return style.__rect; } }]); -}(Shape); -;// ./src/common/overlay/levelRenderer/SmicPolygon.js +}(Shape_Shape); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicPolygon.js function SmicPolygon_typeof(o) { "@babel/helpers - typeof"; return SmicPolygon_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicPolygon_typeof(o); } function SmicPolygon_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicPolygon_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicPolygon_toPropertyKey(o.key), o); } } @@ -48874,7 +48828,7 @@ function SmicPolygon_callSuper(t, o, e) { return o = SmicPolygon_getPrototypeOf( function SmicPolygon_possibleConstructorReturn(t, e) { if (e && ("object" == SmicPolygon_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicPolygon_assertThisInitialized(t); } function SmicPolygon_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicPolygon_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicPolygon_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicPolygon_superPropGet(t, o, e, r) { var p = SmicPolygon_get(SmicPolygon_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicPolygon_superPropGet(t, e, o, r) { var p = SmicPolygon_get(SmicPolygon_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicPolygon_get() { return SmicPolygon_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicPolygon_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicPolygon_get.apply(null, arguments); } function SmicPolygon_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicPolygon_getPrototypeOf(t));); return t; } function SmicPolygon_getPrototypeOf(t) { return SmicPolygon_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicPolygon_getPrototypeOf(t); } @@ -48999,7 +48953,7 @@ var SmicPolygon = /*#__PURE__*/function (_Shape) { this.drawText(ctx, style, this.style); //岛洞 - var hpStyle = Util.cloneObject(style); + var hpStyle = Util_Util.cloneObject(style); if (hpStyle.pointList) { if (this.holePolygonPointLists && this.holePolygonPointLists.length > 0) { var holePLS = this.holePolygonPointLists; @@ -49079,7 +49033,7 @@ var SmicPolygon = /*#__PURE__*/function (_Shape) { return; } if (style.smooth && style.smooth !== 'spline') { - var controlPoints = SUtil.SUtil_smoothBezier(pointList, style.smooth, true, style.smoothConstraint, __OP); + var controlPoints = SUtil_SUtil.SUtil_smoothBezier(pointList, style.smooth, true, style.smoothConstraint, __OP); ctx.moveTo(pointList[0][0] + __OP[0], pointList[0][1] + __OP[1]); var cp1; var cp2; @@ -49093,7 +49047,7 @@ var SmicPolygon = /*#__PURE__*/function (_Shape) { } } else { if (style.smooth === 'spline') { - pointList = SUtil.SUtil_smoothSpline(pointList, true, null, __OP); + pointList = SUtil_SUtil.SUtil_smoothSpline(pointList, true, null, __OP); } if (!style.lineType || style.lineType == 'solid') { // 默认为实线 @@ -49158,9 +49112,9 @@ var SmicPolygon = /*#__PURE__*/function (_Shape) { } ctx.moveTo(pointList[0][0] + __OP[0], pointList[0][1] + __OP[1]); for (var _i2 = 1; _i2 < pointList.length; _i2++) { - SUtil.SUtil_dashedLineTo(ctx, pointList[_i2 - 1][0] + __OP[0], pointList[_i2 - 1][1] + __OP[1], pointList[_i2][0] + __OP[0], pointList[_i2][1] + __OP[1], dashLength, [pattern1, pattern2]); + SUtil_SUtil.SUtil_dashedLineTo(ctx, pointList[_i2 - 1][0] + __OP[0], pointList[_i2 - 1][1] + __OP[1], pointList[_i2][0] + __OP[0], pointList[_i2][1] + __OP[1], dashLength, [pattern1, pattern2]); } - SUtil.SUtil_dashedLineTo(ctx, pointList[pointList.length - 1][0] + __OP[0], pointList[pointList.length - 1][1] + __OP[1], pointList[0][0] + __OP[0], pointList[0][1] + __OP[1], dashLength, [pattern1, pattern2]); + SUtil_SUtil.SUtil_dashedLineTo(ctx, pointList[pointList.length - 1][0] + __OP[0], pointList[pointList.length - 1][1] + __OP[1], pointList[0][0] + __OP[0], pointList[0][1] + __OP[1], dashLength, [pattern1, pattern2]); } else if (style.lineType === 'dashdot' || style.lineType === 'longdashdot') { var _dashLengthForStyle = style._dashLength || (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); style._dashLength = _dashLengthForStyle; @@ -49197,9 +49151,9 @@ var SmicPolygon = /*#__PURE__*/function (_Shape) { } ctx.moveTo(pointList[0][0] + __OP[0], pointList[0][1] + __OP[1]); for (var _i3 = 1; _i3 < pointList.length; _i3++) { - SUtil.SUtil_dashedLineTo(ctx, pointList[_i3 - 1][0] + __OP[0], pointList[_i3 - 1][1] + __OP[1], pointList[_i3][0] + __OP[0], pointList[_i3][1] + __OP[1], _dashLength, [_pattern, _pattern2, pattern3, pattern4]); + SUtil_SUtil.SUtil_dashedLineTo(ctx, pointList[_i3 - 1][0] + __OP[0], pointList[_i3 - 1][1] + __OP[1], pointList[_i3][0] + __OP[0], pointList[_i3][1] + __OP[1], _dashLength, [_pattern, _pattern2, pattern3, pattern4]); } - SUtil.SUtil_dashedLineTo(ctx, pointList[pointList.length - 1][0] + __OP[0], pointList[pointList.length - 1][1] + __OP[1], pointList[0][0] + __OP[0], pointList[0][1] + __OP[1], _dashLength, [_pattern, _pattern2, pattern3, pattern4]); + SUtil_SUtil.SUtil_dashedLineTo(ctx, pointList[pointList.length - 1][0] + __OP[0], pointList[pointList.length - 1][1] + __OP[1], pointList[0][0] + __OP[0], pointList[0][1] + __OP[1], _dashLength, [_pattern, _pattern2, pattern3, pattern4]); } } return; @@ -49262,8 +49216,8 @@ var SmicPolygon = /*#__PURE__*/function (_Shape) { return style.__rect; } }]); -}(Shape); -;// ./src/common/overlay/levelRenderer/SmicBrokenLine.js +}(Shape_Shape); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicBrokenLine.js function SmicBrokenLine_typeof(o) { "@babel/helpers - typeof"; return SmicBrokenLine_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicBrokenLine_typeof(o); } function SmicBrokenLine_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicBrokenLine_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicBrokenLine_toPropertyKey(o.key), o); } } @@ -49274,7 +49228,7 @@ function SmicBrokenLine_callSuper(t, o, e) { return o = SmicBrokenLine_getProtot function SmicBrokenLine_possibleConstructorReturn(t, e) { if (e && ("object" == SmicBrokenLine_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicBrokenLine_assertThisInitialized(t); } function SmicBrokenLine_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicBrokenLine_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicBrokenLine_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicBrokenLine_superPropGet(t, o, e, r) { var p = SmicBrokenLine_get(SmicBrokenLine_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicBrokenLine_superPropGet(t, e, o, r) { var p = SmicBrokenLine_get(SmicBrokenLine_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicBrokenLine_get() { return SmicBrokenLine_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicBrokenLine_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicBrokenLine_get.apply(null, arguments); } function SmicBrokenLine_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicBrokenLine_getPrototypeOf(t));); return t; } function SmicBrokenLine_getPrototypeOf(t) { return SmicBrokenLine_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicBrokenLine_getPrototypeOf(t); } @@ -49370,7 +49324,7 @@ var SmicBrokenLine = /*#__PURE__*/function (_Shape) { } var len = Math.min(style.pointList.length, Math.round(style.pointListLength || style.pointList.length)); if (style.smooth && style.smooth !== 'spline') { - var controlPoints = SUtil.SUtil_smoothBezier(pointList, style.smooth, false, style.smoothConstraint, __OP); + var controlPoints = SUtil_SUtil.SUtil_smoothBezier(pointList, style.smooth, false, style.smoothConstraint, __OP); ctx.moveTo(pointList[0][0] + __OP[0], pointList[0][1] + __OP[1]); var cp1; var cp2; @@ -49383,7 +49337,7 @@ var SmicBrokenLine = /*#__PURE__*/function (_Shape) { } } else { if (style.smooth === 'spline') { - pointList = SUtil.SUtil_smoothSpline(pointList, null, null, __OP); + pointList = SUtil_SUtil.SUtil_smoothSpline(pointList, null, null, __OP); len = pointList.length; } if (!style.lineType || style.lineType === 'solid') { @@ -49445,7 +49399,7 @@ var SmicBrokenLine = /*#__PURE__*/function (_Shape) { } ctx.moveTo(pointList[0][0] + __OP[0], pointList[0][1] + __OP[1]); for (var i = 1; i < len; i++) { - SUtil.SUtil_dashedLineTo(ctx, pointList[i - 1][0] + __OP[0], pointList[i - 1][1] + __OP[1], pointList[i][0] + __OP[0], pointList[i][1] + __OP[1], dashLength, [pattern1, pattern2]); + SUtil_SUtil.SUtil_dashedLineTo(ctx, pointList[i - 1][0] + __OP[0], pointList[i - 1][1] + __OP[1], pointList[i][0] + __OP[0], pointList[i][1] + __OP[1], dashLength, [pattern1, pattern2]); } } else if (style.lineType === 'dashdot' || style.lineType === 'longdashdot') { var _dashLength = style.lineWidth || 1; @@ -49482,7 +49436,7 @@ var SmicBrokenLine = /*#__PURE__*/function (_Shape) { _dashLength = (style.lineWidth || 1) * (style.lineType === 'dashed' ? 5 : 1); ctx.moveTo(pointList[0][0] + __OP[0], pointList[0][1] + __OP[1]); for (var _i3 = 1; _i3 < len; _i3++) { - SUtil.SUtil_dashedLineTo(ctx, pointList[_i3 - 1][0] + __OP[0], pointList[_i3 - 1][1] + __OP[1], pointList[_i3][0] + __OP[0], pointList[_i3][1] + __OP[1], _dashLength, [_pattern, _pattern2, pattern3, pattern4]); + SUtil_SUtil.SUtil_dashedLineTo(ctx, pointList[_i3 - 1][0] + __OP[0], pointList[_i3 - 1][1] + __OP[1], pointList[_i3][0] + __OP[0], pointList[_i3][1] + __OP[1], _dashLength, [_pattern, _pattern2, pattern3, pattern4]); } } } @@ -49506,8 +49460,8 @@ var SmicBrokenLine = /*#__PURE__*/function (_Shape) { return SmicPolygon.prototype.getRect.apply(this, [style, __OP]); } }]); -}(Shape); -;// ./src/common/overlay/levelRenderer/SmicRectangle.js +}(Shape_Shape); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicRectangle.js function SmicRectangle_typeof(o) { "@babel/helpers - typeof"; return SmicRectangle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicRectangle_typeof(o); } function SmicRectangle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicRectangle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicRectangle_toPropertyKey(o.key), o); } } @@ -49518,7 +49472,7 @@ function SmicRectangle_callSuper(t, o, e) { return o = SmicRectangle_getPrototyp function SmicRectangle_possibleConstructorReturn(t, e) { if (e && ("object" == SmicRectangle_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicRectangle_assertThisInitialized(t); } function SmicRectangle_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicRectangle_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicRectangle_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicRectangle_superPropGet(t, o, e, r) { var p = SmicRectangle_get(SmicRectangle_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicRectangle_superPropGet(t, e, o, r) { var p = SmicRectangle_get(SmicRectangle_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicRectangle_get() { return SmicRectangle_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicRectangle_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicRectangle_get.apply(null, arguments); } function SmicRectangle_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicRectangle_getPrototypeOf(t));); return t; } function SmicRectangle_getPrototypeOf(t) { return SmicRectangle_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicRectangle_getPrototypeOf(t); } @@ -49722,8 +49676,8 @@ var SmicRectangle = /*#__PURE__*/function (_Shape) { return style.__rect; } }]); -}(Shape); -;// ./src/common/overlay/levelRenderer/SmicSector.js +}(Shape_Shape); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicSector.js function SmicSector_typeof(o) { "@babel/helpers - typeof"; return SmicSector_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicSector_typeof(o); } function SmicSector_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicSector_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicSector_toPropertyKey(o.key), o); } } @@ -49734,7 +49688,7 @@ function SmicSector_callSuper(t, o, e) { return o = SmicSector_getPrototypeOf(o) function SmicSector_possibleConstructorReturn(t, e) { if (e && ("object" == SmicSector_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicSector_assertThisInitialized(t); } function SmicSector_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicSector_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicSector_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicSector_superPropGet(t, o, e, r) { var p = SmicSector_get(SmicSector_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicSector_superPropGet(t, e, o, r) { var p = SmicSector_get(SmicSector_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicSector_get() { return SmicSector_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicSector_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicSector_get.apply(null, arguments); } function SmicSector_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicSector_getPrototypeOf(t));); return t; } function SmicSector_getPrototypeOf(t) { return SmicSector_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicSector_getPrototypeOf(t); } @@ -49818,20 +49772,20 @@ var SmicSector = /*#__PURE__*/function (_Shape) { var startAngle = style.startAngle; // 起始角度[0,360) var endAngle = style.endAngle; // 结束角度(0,360] var clockWise = style.clockWise || false; - startAngle = SUtil.Util_math.degreeToRadian(startAngle); - endAngle = SUtil.Util_math.degreeToRadian(endAngle); + startAngle = SUtil_SUtil.Util_math.degreeToRadian(startAngle); + endAngle = SUtil_SUtil.Util_math.degreeToRadian(endAngle); if (!clockWise) { // 扇形默认是逆时针方向,Y轴向上 // 这个跟arc的标准不一样,为了兼容echarts startAngle = -startAngle; endAngle = -endAngle; } - var unitX = SUtil.Util_math.cos(startAngle); - var unitY = SUtil.Util_math.sin(startAngle); + var unitX = SUtil_SUtil.Util_math.cos(startAngle); + var unitY = SUtil_SUtil.Util_math.sin(startAngle); ctx.moveTo(unitX * r0 + x, unitY * r0 + y); ctx.lineTo(unitX * r + x, unitY * r + y); ctx.arc(x, y, r, startAngle, endAngle, !clockWise); - ctx.lineTo(SUtil.Util_math.cos(endAngle) * r0 + x, SUtil.Util_math.sin(endAngle) * r0 + y); + ctx.lineTo(SUtil_SUtil.Util_math.cos(endAngle) * r0 + x, SUtil_SUtil.Util_math.sin(endAngle) * r0 + y); if (r0 !== 0) { ctx.arc(x, y, r0, endAngle, startAngle, clockWise); } @@ -49857,30 +49811,30 @@ var SmicSector = /*#__PURE__*/function (_Shape) { this.refOriginalPosition = [0, 0]; } var __OP = this.refOriginalPosition; - var min0 = SUtil.Util_vector.create(); - var min1 = SUtil.Util_vector.create(); - var max0 = SUtil.Util_vector.create(); - var max1 = SUtil.Util_vector.create(); + var min0 = SUtil_SUtil.Util_vector.create(); + var min1 = SUtil_SUtil.Util_vector.create(); + var max0 = SUtil_SUtil.Util_vector.create(); + var max1 = SUtil_SUtil.Util_vector.create(); var x = style.x + __OP[0]; // 圆心x var y = style.y + __OP[1]; // 圆心y var r0 = style.r0 || 0; // 形内半径[0,r) var r = style.r; // 扇形外半径(0,r] - var startAngle = SUtil.Util_math.degreeToRadian(style.startAngle); - var endAngle = SUtil.Util_math.degreeToRadian(style.endAngle); + var startAngle = SUtil_SUtil.Util_math.degreeToRadian(style.startAngle); + var endAngle = SUtil_SUtil.Util_math.degreeToRadian(style.endAngle); var clockWise = style.clockWise; if (!clockWise) { startAngle = -startAngle; endAngle = -endAngle; } if (r0 > 1) { - SUtil.Util_computeBoundingBox.arc(x, y, r0, startAngle, endAngle, !clockWise, min0, max0); + SUtil_SUtil.Util_computeBoundingBox.arc(x, y, r0, startAngle, endAngle, !clockWise, min0, max0); } else { min0[0] = max0[0] = x; min0[1] = max0[1] = y; } - SUtil.Util_computeBoundingBox.arc(x, y, r, startAngle, endAngle, !clockWise, min1, max1); - SUtil.Util_vector.min(min0, min0, min1); - SUtil.Util_vector.max(max0, max0, max1); + SUtil_SUtil.Util_computeBoundingBox.arc(x, y, r, startAngle, endAngle, !clockWise, min1, max1); + SUtil_SUtil.Util_vector.min(min0, min0, min1); + SUtil_SUtil.Util_vector.max(max0, max0, max1); style.__rect = { x: min0[0], y: min0[1], @@ -49890,8 +49844,8 @@ var SmicSector = /*#__PURE__*/function (_Shape) { return style.__rect; } }]); -}(Shape); -;// ./src/common/overlay/feature/ShapeFactory.js +}(Shape_Shape); +;// CONCATENATED MODULE: ./src/common/overlay/feature/ShapeFactory.js function ShapeFactory_typeof(o) { "@babel/helpers - typeof"; return ShapeFactory_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ShapeFactory_typeof(o); } function ShapeFactory_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ShapeFactory_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ShapeFactory_toPropertyKey(o.key), o); } } @@ -49985,13 +49939,13 @@ var ShapeFactory = /*#__PURE__*/function () { style["x"] = sps.x; style["y"] = sps.y; style["r"] = sps.r; - style = Util.copyAttributesWithClip(style, sps.style, ['x', 'y']); + style = Util_Util.copyAttributesWithClip(style, sps.style, ['x', 'y']); //创建图形 var shape = new SmicPoint(); shape.style = ShapeFactory.transformStyle(style); shape.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(shape, sps, ['x', 'y', 'style', 'highlightStyle']); + Util_Util.copyAttributesWithClip(shape, sps, ['x', 'y', 'style', 'highlightStyle']); return shape; } else if (sps instanceof Line_Line) { // 线 @@ -50003,15 +49957,15 @@ var ShapeFactory = /*#__PURE__*/function () { // 设置style var _style = new Object(); _style["pointList"] = sps.pointList; - _style = Util.copyAttributesWithClip(_style, sps.style, ['pointList']); + _style = Util_Util.copyAttributesWithClip(_style, sps.style, ['pointList']); // 创建图形 var _shape = new SmicBrokenLine(); _shape.style = ShapeFactory.transformStyle(_style); _shape.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(_shape, sps, ['pointList', 'style', 'highlightStyle']); + Util_Util.copyAttributesWithClip(_shape, sps, ['pointList', 'style', 'highlightStyle']); return _shape; - } else if (sps instanceof Polygon_Polygon) { + } else if (sps instanceof feature_Polygon_Polygon) { // 面 //检查参数 pointList 是否存在 if (!sps.pointList) { @@ -50021,13 +49975,13 @@ var ShapeFactory = /*#__PURE__*/function () { //设置style var _style2 = new Object(); _style2["pointList"] = sps.pointList; - _style2 = Util.copyAttributesWithClip(_style2, sps.style, ['pointList']); + _style2 = Util_Util.copyAttributesWithClip(_style2, sps.style, ['pointList']); //创建图形 var _shape2 = new SmicPolygon(); _shape2.style = ShapeFactory.transformStyle(_style2); _shape2.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(_shape2, sps, ['pointList', 'style', "highlightStyle"]); + Util_Util.copyAttributesWithClip(_shape2, sps, ['pointList', 'style', "highlightStyle"]); return _shape2; } else if (sps instanceof Rectangle_Rectangle) { // 矩形 @@ -50042,13 +49996,13 @@ var ShapeFactory = /*#__PURE__*/function () { _style3["y"] = sps.y; _style3["width"] = sps.width; _style3["height"] = sps.height; - _style3 = Util.copyAttributesWithClip(_style3, sps.style, ['x', 'y', 'width', 'height']); + _style3 = Util_Util.copyAttributesWithClip(_style3, sps.style, ['x', 'y', 'width', 'height']); //创建图形 var _shape3 = new SmicRectangle(); _shape3.style = ShapeFactory.transformStyle(_style3); _shape3.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(_shape3, sps, ['x', 'y', 'width', 'height', 'style', 'highlightStyle']); + Util_Util.copyAttributesWithClip(_shape3, sps, ['x', 'y', 'width', 'height', 'style', 'highlightStyle']); return _shape3; } else if (sps instanceof Sector) { // 扇形 @@ -50065,13 +50019,13 @@ var ShapeFactory = /*#__PURE__*/function () { if (sps["clockWise"]) { _style4["clockWise"] = sps.clockWise; } - _style4 = Util.copyAttributesWithClip(_style4, sps.style, ['x', 'y', 'r', 'startAngle', 'endAngle', 'r0', 'endAngle']); + _style4 = Util_Util.copyAttributesWithClip(_style4, sps.style, ['x', 'y', 'r', 'startAngle', 'endAngle', 'r0', 'endAngle']); //创建图形 var _shape4 = new SmicSector(); _shape4.style = ShapeFactory.transformStyle(_style4); _shape4.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(_shape4, sps, ['x', 'y', 'r', 'startAngle', 'endAngle', 'r0', 'endAngle', 'style', 'highlightStyle']); + Util_Util.copyAttributesWithClip(_shape4, sps, ['x', 'y', 'r', 'startAngle', 'endAngle', 'r0', 'endAngle', 'style', 'highlightStyle']); return _shape4; } else if (sps instanceof Label) { // 标签 @@ -50080,13 +50034,13 @@ var ShapeFactory = /*#__PURE__*/function () { _style5["x"] = sps.x; _style5["y"] = sps.y; _style5["text"] = sps.text; - _style5 = Util.copyAttributesWithClip(_style5, sps.style, ['x', 'y', 'text']); + _style5 = Util_Util.copyAttributesWithClip(_style5, sps.style, ['x', 'y', 'text']); //创建图形 var _shape5 = new SmicText(); _shape5.style = ShapeFactory.transformStyle(_style5); _shape5.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(_shape5, sps, ['x', 'y', 'text', 'style', 'highlightStyle']); + Util_Util.copyAttributesWithClip(_shape5, sps, ['x', 'y', 'text', 'style', 'highlightStyle']); return _shape5; } else if (sps instanceof Image_Image) { // 图片 @@ -50115,13 +50069,13 @@ var ShapeFactory = /*#__PURE__*/function () { if (sps["sHeight"]) { _style6["sHeight"] = sps.sHeight; } - _style6 = Util.copyAttributesWithClip(_style6, sps.style, ['x', 'y', 'image', 'width', 'height', 'sx', 'sy', 'sWidth', 'sHeight']); + _style6 = Util_Util.copyAttributesWithClip(_style6, sps.style, ['x', 'y', 'image', 'width', 'height', 'sx', 'sy', 'sWidth', 'sHeight']); //创建图形 var _shape6 = new SmicImage(); _shape6.style = ShapeFactory.transformStyle(_style6); _shape6.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(_shape6, sps, ['x', 'y', 'image', 'width', 'height', 'style', 'highlightStyle']); + Util_Util.copyAttributesWithClip(_shape6, sps, ['x', 'y', 'image', 'width', 'height', 'style', 'highlightStyle']); return _shape6; } else if (sps instanceof Circle_Circle) { //圆形 用于符号专题图 @@ -50130,13 +50084,13 @@ var ShapeFactory = /*#__PURE__*/function () { _style7["x"] = sps.x; _style7["r"] = sps.r; _style7["y"] = sps.y; - _style7 = Util.copyAttributesWithClip(_style7, sps.style, ['x', 'y', 'r']); + _style7 = Util_Util.copyAttributesWithClip(_style7, sps.style, ['x', 'y', 'r']); //创建图形 var _shape7 = new SmicCircle(); _shape7.style = ShapeFactory.transformStyle(_style7); _shape7.highlightStyle = ShapeFactory.transformStyle(sps.highlightStyle); - Util.copyAttributesWithClip(_shape7, sps, ['x', 'y', 'r', 'style', 'highlightStyle', 'lineWidth', 'text', 'textPosition']); + Util_Util.copyAttributesWithClip(_shape7, sps, ['x', 'y', 'r', 'style', 'highlightStyle', 'lineWidth', 'text', 'textPosition']); return _shape7; } return null; @@ -50279,7 +50233,7 @@ var ShapeFactory = /*#__PURE__*/function () { // 设置用户 style if (sets.backgroundStyle) { - Util.copyAttributesWithClip(bgSP.style, sets.backgroundStyle); + Util_Util.copyAttributesWithClip(bgSP.style, sets.backgroundStyle); } // 设置背景框圆角参数 @@ -50388,7 +50342,7 @@ var ShapeFactory = /*#__PURE__*/function () { refLineSP.hoverable = false; // 用户style if (sets.xReferenceLineStyle) { - Util.copyAttributesWithClip(refLineSP.style, sets.xReferenceLineStyle); + Util_Util.copyAttributesWithClip(refLineSP.style, sets.xReferenceLineStyle); } // 生成参考线图形对象 refLines.push(shapeFactory.createShape(refLineSP)); @@ -50446,28 +50400,28 @@ var ShapeFactory = /*#__PURE__*/function () { var yArrowPois = [[dvb[0] - 4, dvb[3] - 5], [dvb[0], dvb[3] - 13], [dvb[0] + 4, dvb[3] - 5]]; //x轴箭头 - var xSP = new Polygon_Polygon(xArrowPois); + var xSP = new feature_Polygon_Polygon(xArrowPois); xSP.style = { fillColor: "#008acd" }; - Util.copyAttributesWithClip(xSP.style, sets.axisStyle); + Util_Util.copyAttributesWithClip(xSP.style, sets.axisStyle); arrows.push(shapeFactory.createShape(xSP)); //y轴箭头 - var ySP = new Polygon_Polygon(yArrowPois); + var ySP = new feature_Polygon_Polygon(yArrowPois); ySP.style = { fillColor: "#008acd" }; - Util.copyAttributesWithClip(ySP.style, sets.axisStyle); + Util_Util.copyAttributesWithClip(ySP.style, sets.axisStyle); arrows.push(shapeFactory.createShape(ySP)); // z轴箭头 坐标轴箭头是否要使用 if (sets.axis3DParameter && !isNaN(sets.axis3DParameter) && sets.axis3DParameter >= 15) { - var zSP = new Polygon_Polygon(zArrowPois); + var zSP = new feature_Polygon_Polygon(zArrowPois); zSP.style = { fillColor: "#008acd" }; - Util.copyAttributesWithClip(zSP.style, sets.axisStyle); + Util_Util.copyAttributesWithClip(zSP.style, sets.axisStyle); arrows.push(shapeFactory.createShape(zSP)); } } @@ -50485,7 +50439,7 @@ var ShapeFactory = /*#__PURE__*/function () { }; // 用户 style if (sets.axisStyle) { - Util.copyAttributesWithClip(axisSP.style, sets.axisStyle); + Util_Util.copyAttributesWithClip(axisSP.style, sets.axisStyle); } // 禁止事件 axisSP.clickable = false; @@ -50512,7 +50466,7 @@ var ShapeFactory = /*#__PURE__*/function () { }; // 用户 style if (sets.axisYLabelsStyle) { - Util.copyAttributesWithClip(labelYSP.style, sets.axisYLabelsStyle); + Util_Util.copyAttributesWithClip(labelYSP.style, sets.axisYLabelsStyle); } // 禁止事件 labelYSP.clickable = false; @@ -50531,7 +50485,7 @@ var ShapeFactory = /*#__PURE__*/function () { }; // 用户 style if (sets.axisYLabelsStyle) { - Util.copyAttributesWithClip(_labelYSP.style, sets.axisYLabelsStyle); + Util_Util.copyAttributesWithClip(_labelYSP.style, sets.axisYLabelsStyle); } // 禁止事件 _labelYSP.clickable = false; @@ -50569,7 +50523,7 @@ var ShapeFactory = /*#__PURE__*/function () { }; // 用户 style if (sets.axisXLabelsStyle) { - Util.copyAttributesWithClip(labelXSP.style, sets.axisXLabelsStyle); + Util_Util.copyAttributesWithClip(labelXSP.style, sets.axisXLabelsStyle); } // 禁止事件 labelXSP.clickable = false; @@ -50588,7 +50542,7 @@ var ShapeFactory = /*#__PURE__*/function () { }; // 用户 style if (sets.axisXLabelsStyle) { - Util.copyAttributesWithClip(_labelXSP.style, sets.axisXLabelsStyle); + Util_Util.copyAttributesWithClip(_labelXSP.style, sets.axisXLabelsStyle); } // 禁止事件 _labelXSP.clickable = false; @@ -50609,7 +50563,7 @@ var ShapeFactory = /*#__PURE__*/function () { }; // 用户 style if (sets.axisXLabelsStyle) { - Util.copyAttributesWithClip(_labelXSP2.style, sets.axisXLabelsStyle); + Util_Util.copyAttributesWithClip(_labelXSP2.style, sets.axisXLabelsStyle); } // 禁止事件 _labelXSP2.clickable = false; @@ -50684,13 +50638,13 @@ var ShapeFactory = /*#__PURE__*/function () { // 基础 style if (style) { - Util.copyAttributesWithClip(finalStyle, style); + Util_Util.copyAttributesWithClip(finalStyle, style); } // 按索引赋 style if (styleGroup && styleGroup.length && typeof index !== "undefined" && !isNaN(index) && index >= 0) { if (styleGroup[index]) { - Util.copyAttributesWithClip(finalStyle, styleGroup[index]); + Util_Util.copyAttributesWithClip(finalStyle, styleGroup[index]); } } @@ -50701,7 +50655,7 @@ var ShapeFactory = /*#__PURE__*/function () { var v = parseFloat(value); for (var i = 0; i < dscLen; i++) { if (dsc[i].start <= v && v < dsc[i].end) { - Util.copyAttributesWithClip(finalStyle, dsc[i].style); + Util_Util.copyAttributesWithClip(finalStyle, dsc[i].style); break; } } @@ -50710,7 +50664,7 @@ var ShapeFactory = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/overlay/ThemeVector.js +;// CONCATENATED MODULE: ./src/common/overlay/ThemeVector.js function ThemeVector_typeof(o) { "@babel/helpers - typeof"; return ThemeVector_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeVector_typeof(o); } function ThemeVector_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeVector_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeVector_toPropertyKey(o.key), o); } } @@ -50721,7 +50675,7 @@ function ThemeVector_callSuper(t, o, e) { return o = ThemeVector_getPrototypeOf( function ThemeVector_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeVector_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeVector_assertThisInitialized(t); } function ThemeVector_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeVector_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeVector_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeVector_superPropGet(t, o, e, r) { var p = ThemeVector_get(ThemeVector_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeVector_superPropGet(t, e, o, r) { var p = ThemeVector_get(ThemeVector_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeVector_get() { return ThemeVector_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeVector_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeVector_get.apply(null, arguments); } function ThemeVector_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeVector_getPrototypeOf(t));); return t; } function ThemeVector_getPrototypeOf(t) { return ThemeVector_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeVector_getPrototypeOf(t); } @@ -50778,7 +50732,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { if (!data.geometry) { return ThemeVector_possibleConstructorReturn(_this); } - if (!(data.geometry instanceof Geometry)) { + if (!(data.geometry instanceof Geometry_Geometry)) { return ThemeVector_possibleConstructorReturn(_this); } @@ -50832,10 +50786,10 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { _this.CLASS_NAME = "SuperMap.Feature.Theme.Vector"; _this.style = style ? style : {}; if (options) { - Util.copyAttributesWithClip(_this, options, ["shapeOptions", "dataBounds"]); + Util_Util.copyAttributesWithClip(_this, options, ["shapeOptions", "dataBounds"]); } if (shapeOptions) { - Util.copyAttributesWithClip(_this.shapeOptions, shapeOptions); + Util_Util.copyAttributesWithClip(_this.shapeOptions, shapeOptions); } //设置基础参数 dataBounds、lonlat、location @@ -50844,7 +50798,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { _this.location = _this.getLocalXY(_this.lonlat); //将地理要素转为专题要素 - if (geometry instanceof LinearRing) { + if (geometry instanceof LinearRing_LinearRing) { _this.lineToTF(geometry); } else if (geometry instanceof LineString) { _this.lineToTF(geometry); @@ -50856,7 +50810,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { _this.multiLineStringToTF(geometry); } else if (geometry instanceof MultiPolygon) { _this.multiPolygonToTF(geometry); - } else if (geometry instanceof Polygon) { + } else if (geometry instanceof Polygon_Polygon) { _this.polygonToTF(geometry); } else if (geometry instanceof Collection) { //独立几何体 @@ -50932,7 +50886,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //赋 style var style = new Object(); - style = Util.copyAttributesWithClip(style, this.style, ['pointList']); + style = Util_Util.copyAttributesWithClip(style, this.style, ['pointList']); style.pointList = pointList; //创建图形 @@ -50958,7 +50912,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //添加到渲染器前修改 shape 的一些属性,非特殊情况通常不允许这么做 if (this.shapeOptions) { - Util.copyAttributesWithClip(shape, this.shapeOptions); + Util_Util.copyAttributesWithClip(shape, this.shapeOptions); } this.shapes.push(shape); } @@ -51011,7 +50965,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //赋 style var style = new Object(); style.r = 6; //防止漏设此参数,默认 6 像素 - style = Util.copyAttributesWithClip(style, this.style); + style = Util_Util.copyAttributesWithClip(style, this.style); style.x = refLocal[0]; style.y = refLocal[1]; @@ -51038,7 +50992,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //修改一些 shape 可选属性,通常不需要这么做 if (this.shapeOptions) { - Util.copyAttributesWithClip(shape, this.shapeOptions); + Util_Util.copyAttributesWithClip(shape, this.shapeOptions); } this.shapes.push(shape); } @@ -51090,7 +51044,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //赋 style var style = new Object(); style.r = 6; //防止漏设此参数,默认 6 像素 - style = Util.copyAttributesWithClip(style, this.style); + style = Util_Util.copyAttributesWithClip(style, this.style); style.x = localLX[0] - location[0]; style.y = localLX[1] - location[1]; @@ -51117,7 +51071,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //修改一些 shape 可选属性,通常不需要这么做 if (this.shapeOptions) { - Util.copyAttributesWithClip(shape, this.shapeOptions); + Util_Util.copyAttributesWithClip(shape, this.shapeOptions); } this.shapes.push(shape); } @@ -51198,7 +51152,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //赋 style var style = {}; - style = Util.copyAttributesWithClip(style, this.style, ['pointList']); + style = Util_Util.copyAttributesWithClip(style, this.style, ['pointList']); style.pointList = pointList; //创建图形 @@ -51229,7 +51183,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //修改一些 shape 可选属性,通常不需要这么做 if (this.shapeOptions) { - Util.copyAttributesWithClip(shape, this.shapeOptions); + Util_Util.copyAttributesWithClip(shape, this.shapeOptions); } this.shapes.push(shape); } @@ -51255,7 +51209,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //赋 style var style = new Object(); style.r = 6; //防止漏设此参数,默认 6 像素 - style = Util.copyAttributesWithClip(style, this.style); + style = Util_Util.copyAttributesWithClip(style, this.style); style.x = localLX[0] - location[0]; // Rectangle 使用左下角定位, SmicRectangle 使用左上角定位,需要转换 style.y = localLX[1] - location[1] - 2 * geometry.width / res; @@ -51285,7 +51239,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //修改一些 shape 可选属性,通常不需要这么做 if (this.shapeOptions) { - Util.copyAttributesWithClip(shape, this.shapeOptions); + Util_Util.copyAttributesWithClip(shape, this.shapeOptions); } this.shapes.push(shape); } @@ -51306,7 +51260,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //赋 style var style = new Object(); style.r = 6; //防止漏设此参数,默认 6 像素 - style = Util.copyAttributesWithClip(style, this.style, ["x", "y", "text"]); + style = Util_Util.copyAttributesWithClip(style, this.style, ["x", "y", "text"]); style.x = localLX[0] - location[0]; style.y = localLX[1] - location[1]; style.text = geometry.text; @@ -51334,7 +51288,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { //修改一些 shape 可选属性,通常不需要这么做 if (this.shapeOptions) { - Util.copyAttributesWithClip(shape, this.shapeOptions); + Util_Util.copyAttributesWithClip(shape, this.shapeOptions); } this.shapes.push(shape); } @@ -51380,7 +51334,7 @@ var ThemeVector = /*#__PURE__*/function (_Theme) { } }]); }(Theme); -;// ./src/mapboxgl/overlay/theme/GeoFeatureThemeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/theme/GeoFeatureThemeLayer.js function GeoFeatureThemeLayer_typeof(o) { "@babel/helpers - typeof"; return GeoFeatureThemeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoFeatureThemeLayer_typeof(o); } function GeoFeatureThemeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoFeatureThemeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoFeatureThemeLayer_toPropertyKey(o.key), o); } } @@ -51477,7 +51431,7 @@ var GeoFeature = /*#__PURE__*/function (_Theme) { * 禁止对专题要素使用数据(feature)的 style。此属性可强制将数据 feature 的 style 中有效属性应用到专题要素上,且拥有比图层 style 和 styleGroups 更高的优先级,使专题要素的样式脱离专题图层的控制。可以通过此方式实现对特殊数据(feature) 对应专题要素赋予独立 style。 */ _this.isAllowFeatureStyle = false; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.cache = options.cache || {}; _this.cacheFields = options.cacheFields || []; _this.maxCacheCount = options.maxCacheCount || 0; @@ -51615,9 +51569,9 @@ var GeoFeature = /*#__PURE__*/function (_Theme) { }, { key: "createThematicFeature", value: function createThematicFeature(feature) { - var style = Util.copyAttributesWithClip(this.style); + var style = Util_Util.copyAttributesWithClip(this.style); if (feature.style && this.isAllowFeatureStyle === true) { - style = Util.copyAttributesWithClip(feature.style); + style = Util_Util.copyAttributesWithClip(feature.style); } //创建专题要素时的可选参数 var options = {}; @@ -51708,7 +51662,7 @@ var GeoFeature = /*#__PURE__*/function (_Theme) { } }]); }(ThemeLayer_Theme); -;// ./src/mapboxgl/overlay/LabelThemeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/LabelThemeLayer.js function LabelThemeLayer_typeof(o) { "@babel/helpers - typeof"; return LabelThemeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LabelThemeLayer_typeof(o); } function LabelThemeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LabelThemeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LabelThemeLayer_toPropertyKey(o.key), o); } } @@ -51719,7 +51673,7 @@ function LabelThemeLayer_callSuper(t, o, e) { return o = LabelThemeLayer_getProt function LabelThemeLayer_possibleConstructorReturn(t, e) { if (e && ("object" == LabelThemeLayer_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return LabelThemeLayer_assertThisInitialized(t); } function LabelThemeLayer_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function LabelThemeLayer_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (LabelThemeLayer_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function LabelThemeLayer_superPropGet(t, o, e, r) { var p = LabelThemeLayer_get(LabelThemeLayer_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function LabelThemeLayer_superPropGet(t, e, o, r) { var p = LabelThemeLayer_get(LabelThemeLayer_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function LabelThemeLayer_get() { return LabelThemeLayer_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = LabelThemeLayer_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, LabelThemeLayer_get.apply(null, arguments); } function LabelThemeLayer_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = LabelThemeLayer_getPrototypeOf(t));); return t; } function LabelThemeLayer_getPrototypeOf(t) { return LabelThemeLayer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, LabelThemeLayer_getPrototypeOf(t); } @@ -51794,7 +51748,7 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { * 此数组每个元素对象必须有两个属性:value : 与字段 themeField 相对应的属性值;style:专题要素 style。 */ _this.styleGroups = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.defaultStyle = { //默认文本样式 fontColor: "#000000", @@ -52051,8 +52005,8 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { var center = bounds.getCenterLonLat(); var label = new GeoText(center.lon, center.lat, fi.attributes[this.themeField]); label.calculateBounds(); - styTmp = Util.cloneObject(fi.style); - feaSty = Util.cloneObject(Util.copyAttributes(styTmp, styleTemp)); + styTmp = Util_Util.cloneObject(fi.style); + feaSty = Util_Util.cloneObject(Util_Util.copyAttributes(styTmp, styleTemp)); fea = new Vector(label, fi.attributes, feaSty); //赋予id fea.id = fi.id; @@ -52075,12 +52029,12 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { key: "getStyleByData", value: function getStyleByData(feat) { var feature = feat; - feature.style = Util.copyAttributes(feature.style, this.defaultStyle); + feature.style = Util_Util.copyAttributes(feature.style, this.defaultStyle); //将style赋给标签 if (this.style && this.style.fontSize && parseFloat(this.style.fontSize) < 12) { this.style.fontSize = "12px"; } - feature.style = Util.copyAttributes(feature.style, this.style); + feature.style = Util_Util.copyAttributes(feature.style, this.style); if (this.themeField && this.styleGroups && feature.attributes) { var Sf = this.themeField; var attributes = feature.attributes; @@ -52104,7 +52058,7 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { if (sty1 && sty1.fontSize && parseFloat(sty1.fontSize) < 12) { sty1.fontSize = "12px"; } - feature.style = Util.copyAttributes(feature.style, sty1); + feature.style = Util_Util.copyAttributes(feature.style, sty1); } } } @@ -52153,12 +52107,12 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { key: "setStyle", value: function setStyle(feat) { var feature = feat; - feature.style = Util.copyAttributes(feature.style, this.defaultStyle); + feature.style = Util_Util.copyAttributes(feature.style, this.defaultStyle); //将style赋给标签 if (this.style && this.style.fontSize && parseFloat(this.style.fontSize) < 12) { this.style.fontSize = "12px"; } - feature.style = Util.copyAttributes(feature.style, this.style); + feature.style = Util_Util.copyAttributes(feature.style, this.style); if (this.groupField && this.styleGroups && feature.attributes) { var Sf = this.groupField; var Attrs = feature.attributes; @@ -52183,7 +52137,7 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { if (sty1 && sty1.fontSize && parseFloat(sty1.fontSize) < 12) { sty1.fontSize = "12px"; } - feature.style = Util.copyAttributes(feature.style, sty1); + feature.style = Util_Util.copyAttributes(feature.style, sty1); } } } @@ -52293,7 +52247,7 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { var labB, left, bottom, top, right; var labelSize = feature.geometry.bsInfo; var style = feature.style; - var locationPx = Util.cloneObject(loc); + var locationPx = Util_Util.cloneObject(loc); //处理文字对齐 if (style.labelAlign && style.labelAlign !== "cm") { @@ -52389,7 +52343,7 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { "t": 0, "b": -1 }; - style = Util.extend({ + style = Util_Util.extend({ fontColor: "#000000", labelAlign: "cm" }, style); @@ -52564,7 +52518,7 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { aspectW = ""; for (var i = 0; i < bqLen - 1; i++) { for (var j = 0; j < quadLen - 1; j++) { - var isLineIn = Util.lineIntersection(bounddQuad[i], bounddQuad[i + 1], quadrilateral[j], quadrilateral[j + 1]); + var isLineIn = Util_Util.lineIntersection(bounddQuad[i], bounddQuad[i + 1], quadrilateral[j], quadrilateral[j + 1]); if (isLineIn.CLASS_NAME === "SuperMap.Geometry.Point") { //设置避让信息 setInfo(quadrilateral[j]); @@ -52665,7 +52619,7 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { break; } for (var j = 0; j < quad2Len - 1; j++) { - var isLineIn = Util.lineIntersection(quadrilateral[_i3], quadrilateral[_i3 + 1], quadrilateral2[j], quadrilateral2[j + 1]); + var isLineIn = Util_Util.lineIntersection(quadrilateral[_i3], quadrilateral[_i3 + 1], quadrilateral2[j], quadrilateral2[j + 1]); if (isLineIn.CLASS_NAME === "SuperMap.Geometry.Point") { OverLap = true; break; @@ -52693,9 +52647,9 @@ var LabelThemeLayer_Label = /*#__PURE__*/function (_GeoFeature) { } }]); }(GeoFeature); -;// external "function(){try{return mapv}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return mapv}catch(e){return {}}}()" var external_function_try_return_mapv_catch_e_return_namespaceObject = function(){try{return mapv}catch(e){return {}}}(); -;// ./src/common/overlay/mapv/MapvRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/mapv/MapvRenderer.js function MapvRenderer_typeof(o) { "@babel/helpers - typeof"; return MapvRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MapvRenderer_typeof(o); } function MapvRenderer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MapvRenderer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MapvRenderer_toPropertyKey(o.key), o); } } @@ -52706,7 +52660,7 @@ function MapvRenderer_callSuper(t, o, e) { return o = MapvRenderer_getPrototypeO function MapvRenderer_possibleConstructorReturn(t, e) { if (e && ("object" == MapvRenderer_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return MapvRenderer_assertThisInitialized(t); } function MapvRenderer_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function MapvRenderer_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (MapvRenderer_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function MapvRenderer_superPropGet(t, o, e, r) { var p = MapvRenderer_get(MapvRenderer_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function MapvRenderer_superPropGet(t, e, o, r) { var p = MapvRenderer_get(MapvRenderer_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function MapvRenderer_get() { return MapvRenderer_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = MapvRenderer_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, MapvRenderer_get.apply(null, arguments); } function MapvRenderer_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = MapvRenderer_getPrototypeOf(t));); return t; } function MapvRenderer_getPrototypeOf(t) { return MapvRenderer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MapvRenderer_getPrototypeOf(t); } @@ -53077,7 +53031,7 @@ var MapvRenderer = /*#__PURE__*/function (_BaseLayer) { } }]); }(BaseLayer); -;// ./src/common/util/MapCalculateUtil.js +;// CONCATENATED MODULE: ./src/common/util/MapCalculateUtil.js /** @@ -53262,18 +53216,19 @@ function conversionDegree(degrees) { function scalesToResolutions(scales, bounds, dpi, mapUnit) { var level = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 22; var baseScale = arguments.length > 5 ? arguments[5] : undefined; + var dpiValue = dpi === '' || dpi === null || dpi === undefined ? 96 : dpi; var resolutions = []; if (scales && scales.length > 0) { for (var i = 0; i < scales.length; i++) { - resolutions.push(scaleToResolution(scales[i], dpi, mapUnit)); + resolutions.push(scaleToResolution(scales[i], dpiValue, mapUnit)); } } else if (baseScale) { var maxReolution = Math.abs(bounds.left - bounds.right) / 256; - var baseRes = scaleToResolution(baseScale, dpi, mapUnit); + var baseRes = scaleToResolution(baseScale, dpiValue, mapUnit); var topRes = baseRes; for (var _i = 0; _i < level; _i++) { var temp = baseRes * Math.pow(2, _i); - if (Math.abs(temp, maxReolution) <= 1E-6 || temp > maxReolution) { + if (Math.abs(temp - maxReolution) <= 1E-6 || temp > maxReolution) { topRes = temp; break; } @@ -53411,7 +53366,7 @@ function getIntersection(extent1, extent2) { } return intersection; } -;// ./src/mapboxgl/overlay/MapvLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/MapvLayer.js function MapvLayer_typeof(o) { "@babel/helpers - typeof"; return MapvLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MapvLayer_typeof(o); } function MapvLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MapvLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MapvLayer_toPropertyKey(o.key), o); } } @@ -53454,7 +53409,7 @@ var MapvLayer = /*#__PURE__*/function () { delete dataSet['layerID']; this.mapVOptions = dataSet; } - this.id = this.mapVOptions.layerID ? this.mapVOptions.layerID : Util.createUniqueID('mapvLayer_'); + this.id = this.mapVOptions.layerID ? this.mapVOptions.layerID : Util_Util.createUniqueID('mapvLayer_'); this.type = 'custom'; this.visibility = true; this.renderingMode = '3d'; @@ -53729,7 +53684,7 @@ var MapvLayer = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/theme/Theme3DLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/theme/Theme3DLayer.js function Theme3DLayer_typeof(o) { "@babel/helpers - typeof"; return Theme3DLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Theme3DLayer_typeof(o); } function Theme3DLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Theme3DLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Theme3DLayer_toPropertyKey(o.key), o); } } @@ -54185,7 +54140,7 @@ var Theme3DLayer = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/RangeTheme3DLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/RangeTheme3DLayer.js function RangeTheme3DLayer_typeof(o) { "@babel/helpers - typeof"; return RangeTheme3DLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RangeTheme3DLayer_typeof(o); } function RangeTheme3DLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RangeTheme3DLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RangeTheme3DLayer_toPropertyKey(o.key), o); } } @@ -54361,7 +54316,7 @@ var RangeTheme3DLayer = /*#__PURE__*/function (_Theme3DLayer) { } }]); }(Theme3DLayer); -;// ./src/mapboxgl/overlay/RangeThemeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/RangeThemeLayer.js function RangeThemeLayer_typeof(o) { "@babel/helpers - typeof"; return RangeThemeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RangeThemeLayer_typeof(o); } function RangeThemeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RangeThemeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RangeThemeLayer_toPropertyKey(o.key), o); } } @@ -54458,7 +54413,7 @@ var Range = /*#__PURE__*/function (_GeoFeature) { value: function getStyleByData(fea) { var style = {}; var feature = fea; - style = Util.copyAttributesWithClip(style, this.style); + style = Util_Util.copyAttributesWithClip(style, this.style); if (this.themeField && this.styleGroups && this.styleGroups.length > 0 && feature.attributes) { var Sf = this.themeField; var Attrs = feature.attributes; @@ -54479,19 +54434,19 @@ var Range = /*#__PURE__*/function (_GeoFeature) { if (attr >= Gro[i].start && attr < Gro[i].end) { //feature.style = CommonUtil.copyAttributes(feature.style, this.defaultStyle); var sty1 = Gro[i].style; - style = Util.copyAttributesWithClip(style, sty1); + style = Util_Util.copyAttributesWithClip(style, sty1); } } } } if (feature.style && this.isAllowFeatureStyle === true) { - style = Util.copyAttributesWithClip(feature.style); + style = Util_Util.copyAttributesWithClip(feature.style); } return style; } }]); }(GeoFeature); -;// ./src/mapboxgl/overlay/RankSymbolThemeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/RankSymbolThemeLayer.js function RankSymbolThemeLayer_typeof(o) { "@babel/helpers - typeof"; return RankSymbolThemeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RankSymbolThemeLayer_typeof(o); } function RankSymbolThemeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RankSymbolThemeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RankSymbolThemeLayer_toPropertyKey(o.key), o); } } @@ -54585,7 +54540,7 @@ var RankSymbol = /*#__PURE__*/function (_Graph) { } }]); }(Graph); -;// ./src/mapboxgl/overlay/UniqueTheme3DLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/UniqueTheme3DLayer.js function UniqueTheme3DLayer_typeof(o) { "@babel/helpers - typeof"; return UniqueTheme3DLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UniqueTheme3DLayer_typeof(o); } function UniqueTheme3DLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UniqueTheme3DLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UniqueTheme3DLayer_toPropertyKey(o.key), o); } } @@ -54706,7 +54661,7 @@ var UniqueTheme3DLayer = /*#__PURE__*/function (_Theme3DLayer) { } }]); }(Theme3DLayer); -;// ./src/mapboxgl/overlay/UniqueThemeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/UniqueThemeLayer.js function UniqueThemeLayer_typeof(o) { "@babel/helpers - typeof"; return UniqueThemeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UniqueThemeLayer_typeof(o); } function UniqueThemeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UniqueThemeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UniqueThemeLayer_toPropertyKey(o.key), o); } } @@ -54804,7 +54759,7 @@ var Unique = /*#__PURE__*/function (_GeoFeature) { value: function getStyleByData(fea) { var style = {}; var feature = fea; - style = Util.copyAttributesWithClip(style, this.style); + style = Util_Util.copyAttributesWithClip(style, this.style); if (this.themeField && this.styleGroups && this.styleGroups.length > 0 && feature.attributes) { var tf = this.themeField; var Attrs = feature.attributes; @@ -54824,19 +54779,19 @@ var Unique = /*#__PURE__*/function (_GeoFeature) { if (attr.toString() === Gro[i].value.toString()) { //feature.style = CommonUtil.copyAttributes(feature.style, this.defaultStyle); var sty1 = Gro[i].style; - style = Util.copyAttributesWithClip(style, sty1); + style = Util_Util.copyAttributesWithClip(style, sty1); } } } } if (feature.style && this.isAllowFeatureStyle === true) { - style = Util.copyAttributesWithClip(feature.style); + style = Util_Util.copyAttributesWithClip(feature.style); } return style; } }]); }(GeoFeature); -;// ./src/common/overlay/graphic/GraphicLayerRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/graphic/GraphicLayerRenderer.js function GraphicLayerRenderer_typeof(o) { "@babel/helpers - typeof"; return GraphicLayerRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GraphicLayerRenderer_typeof(o); } function GraphicLayerRenderer_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function GraphicLayerRenderer_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? GraphicLayerRenderer_ownKeys(Object(t), !0).forEach(function (r) { GraphicLayerRenderer_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : GraphicLayerRenderer_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -54885,7 +54840,7 @@ var defaultProps = { var GraphicLayerRenderer = /*#__PURE__*/function () { function GraphicLayerRenderer(id, options, functions, mapOptions) { GraphicLayerRenderer_classCallCheck(this, GraphicLayerRenderer); - var opt = Util.assign(this, defaultProps, options); + var opt = Util_Util.assign(this, defaultProps, options); /** * @member {string} GraphicLayerRenderer.prototype.id * @description 高效率点图层 ID。 @@ -55011,7 +54966,7 @@ var GraphicLayerRenderer = /*#__PURE__*/function () { strokeWidth: this.strokeWidth, outline: this.outline }; - Util.assign(this, styleOpt, styleOptions); + Util_Util.assign(this, styleOpt, styleOptions); this.update(); } @@ -55025,7 +54980,7 @@ var GraphicLayerRenderer = /*#__PURE__*/function () { value: function setGraphics(graphics) { this.graphics = this.graphics || []; this.graphics.length = 0; - var sGraphics = !Util.isArray(graphics) ? [graphics] : [].concat(graphics); + var sGraphics = !Util_Util.isArray(graphics) ? [graphics] : [].concat(graphics); //this.layer.props.data不能被重新赋值,只能在原数组上进行操作 if (!this.layer.props.data) { this.layer.props.data = []; @@ -55046,7 +55001,7 @@ var GraphicLayerRenderer = /*#__PURE__*/function () { key: "addGraphics", value: function addGraphics(graphics) { this.graphics = this.graphics || []; - var sGraphics = !Util.isArray(graphics) ? [graphics] : [].concat(graphics); + var sGraphics = !Util_Util.isArray(graphics) ? [graphics] : [].concat(graphics); //this.layer.props.data不能被重新赋值,只能在原数组上进行操作 if (!this.layer.props.data) { this.layer.props.data = []; @@ -55130,7 +55085,7 @@ var GraphicLayerRenderer = /*#__PURE__*/function () { this.update(); return; } - if (!Util.isArray(graphics)) { + if (!Util_Util.isArray(graphics)) { graphics = [graphics]; } for (var i = graphics.length - 1; i >= 0; i--) { @@ -55138,7 +55093,7 @@ var GraphicLayerRenderer = /*#__PURE__*/function () { //如果我们传入的grapchic在graphics数组中没有的话,则不进行删除, //并将其放入未删除的数组中。 - var findex = Util.indexOf(this.graphics, graphic); + var findex = Util_Util.indexOf(this.graphics, graphic); if (findex === -1) { continue; } @@ -55309,7 +55264,7 @@ var GraphicLayerRenderer = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/GraphicLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/GraphicLayer.js function GraphicLayer_typeof(o) { "@babel/helpers - typeof"; return GraphicLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GraphicLayer_typeof(o); } function GraphicLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GraphicLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GraphicLayer_toPropertyKey(o.key), o); } } @@ -55352,7 +55307,7 @@ var GraphicLayer = /*#__PURE__*/function () { * @member {string} GraphicLayer.prototype.id * @description 高效率点图层 ID。 */ - this.id = id || Util.createUniqueID("graphicLayer_"); + this.id = id || Util_Util.createUniqueID("graphicLayer_"); this.type = 'custom'; this.renderingMode = '3d'; this.overlay = true; @@ -55593,9 +55548,9 @@ var GraphicLayer = /*#__PURE__*/function () { } }]); }(); -;// external "function(){try{return THREE}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return THREE}catch(e){return {}}}()" var external_function_try_return_THREE_catch_e_return_namespaceObject = function(){try{return THREE}catch(e){return {}}}(); -;// ./src/common/overlay/threejs/Transform.js +;// CONCATENATED MODULE: ./src/common/overlay/threejs/Transform.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -55731,7 +55686,7 @@ var Transform = { }; } }; -;// ./src/common/overlay/threejs/ThreeLayerRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/threejs/ThreeLayerRenderer.js function ThreeLayerRenderer_typeof(o) { "@babel/helpers - typeof"; return ThreeLayerRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThreeLayerRenderer_typeof(o); } function ThreeLayerRenderer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThreeLayerRenderer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThreeLayerRenderer_toPropertyKey(o.key), o); } } @@ -56240,7 +56195,7 @@ var ThreeLayerRenderer = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/ThreeLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/ThreeLayer.js function ThreeLayer_typeof(o) { "@babel/helpers - typeof"; return ThreeLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThreeLayer_typeof(o); } function ThreeLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThreeLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThreeLayer_toPropertyKey(o.key), o); } } @@ -56607,7 +56562,7 @@ var ThreeLayer = /*#__PURE__*/function (_mapboxgl$Evented) { } }]); }((external_mapboxgl_default()).Evented); -;// ./src/common/overlay/heatmap/HeatMapLayerRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/heatmap/HeatMapLayerRenderer.js function HeatMapLayerRenderer_typeof(o) { "@babel/helpers - typeof"; return HeatMapLayerRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, HeatMapLayerRenderer_typeof(o); } function HeatMapLayerRenderer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function HeatMapLayerRenderer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, HeatMapLayerRenderer_toPropertyKey(o.key), o); } } @@ -56786,7 +56741,7 @@ var HeatMapLayerRenderer = /*#__PURE__*/function () { value: function setOpacity(opacity) { if (opacity !== this.opacity) { this.opacity = opacity; - Util.modifyDOMElement(this.rootCanvas, null, null, null, null, null, null, opacity); + Util_Util.modifyDOMElement(this.rootCanvas, null, null, null, null, null, null, opacity); } } @@ -57014,7 +56969,7 @@ var HeatMapLayerRenderer = /*#__PURE__*/function () { this.canvasContext = this.rootCanvas.getContext('2d'); var devicePixelRatio = window.devicePixelRatio || 1; devicePixelRatio !== 1 && this.canvasContext && this.canvasContext.scale(devicePixelRatio, devicePixelRatio); - Util.modifyDOMElement(this.rootCanvas, null, { + Util_Util.modifyDOMElement(this.rootCanvas, null, { x: 0, y: 0 }, { @@ -57033,7 +56988,7 @@ var HeatMapLayerRenderer = /*#__PURE__*/function () { }, { key: "toiClientFeature", value: function toiClientFeature(features) { - if (!Util.isArray(features)) { + if (!Util_Util.isArray(features)) { features = [features]; } var featuresTemp = []; @@ -57069,7 +57024,7 @@ var HeatMapLayerRenderer = /*#__PURE__*/function () { if (features === this.features) { return this.removeAllFeatures(); } - if (!Util.isArray(features)) { + if (!Util_Util.isArray(features)) { features = [features]; } var heatPoint, @@ -57077,7 +57032,7 @@ var HeatMapLayerRenderer = /*#__PURE__*/function () { heatPointsFailedRemoved = []; for (var i = 0, len = features.length; i < len; i++) { heatPoint = features[i]; - index = Util.indexOf(this.features, heatPoint); + index = Util_Util.indexOf(this.features, heatPoint); //找不到视为删除失败 if (index === -1) { heatPointsFailedRemoved.push(heatPoint); @@ -57153,7 +57108,7 @@ var HeatMapLayerRenderer = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/HeatMapLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/HeatMapLayer.js function HeatMapLayer_typeof(o) { "@babel/helpers - typeof"; return HeatMapLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, HeatMapLayer_typeof(o); } function HeatMapLayer_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function HeatMapLayer_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? HeatMapLayer_ownKeys(Object(t), !0).forEach(function (r) { HeatMapLayer_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : HeatMapLayer_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -57221,7 +57176,7 @@ var HeatMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { * @member {string} HeatMapLayer.prototype.id * @description 热力图图层 ID。 */ - _this.id = _options.id ? _options.id : Util.createUniqueID("HeatMapLayer_"); + _this.id = _options.id ? _options.id : Util_Util.createUniqueID("HeatMapLayer_"); /** * @member {boolean} [HeatMapLayer.prototype.loadWhileAnimating=true] @@ -57485,7 +57440,7 @@ var HeatMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { } }]); }((external_mapboxgl_default()).Evented); -;// ./src/common/overlay/deckgl/DeckglLayerBase.js +;// CONCATENATED MODULE: ./src/common/overlay/deckgl/DeckglLayerBase.js function DeckglLayerBase_typeof(o) { "@babel/helpers - typeof"; return DeckglLayerBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DeckglLayerBase_typeof(o); } function DeckglLayerBase_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function DeckglLayerBase_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? DeckglLayerBase_ownKeys(Object(t), !0).forEach(function (r) { DeckglLayerBase_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : DeckglLayerBase_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -57581,7 +57536,7 @@ var DeckglLayerBase = /*#__PURE__*/function () { this.data = [].concat(options.data); this.props = options.props ? options.props : {}; this.callback = options.callback ? options.callback : {}; - this.id = options.layerId ? options.layerId : Util.createUniqueID('graphicLayer_' + this.layerTypeID + '_'); + this.id = options.layerId ? options.layerId : Util_Util.createUniqueID('graphicLayer_' + this.layerTypeID + '_'); } /** @@ -57615,7 +57570,7 @@ var DeckglLayerBase = /*#__PURE__*/function () { }, { key: "setStyle", value: function setStyle(styleOptions) { - Util.extend(this.props, styleOptions); + Util_Util.extend(this.props, styleOptions); this._createLayerByLayerTypeID(); this.update(); } @@ -57630,7 +57585,7 @@ var DeckglLayerBase = /*#__PURE__*/function () { value: function setData(data) { this.data = this.data || []; this.data.length = 0; - var dataTemp = !Util.isArray(data) ? [data] : [].concat(data); + var dataTemp = !Util_Util.isArray(data) ? [data] : [].concat(data); //this.layer.props.data不能被重新赋值,只能在原数组上进行操作 if (!this.layer.props.data) { this.layer.props.data = []; @@ -57652,7 +57607,7 @@ var DeckglLayerBase = /*#__PURE__*/function () { key: "addData", value: function addData(data) { this.data = this.data || []; - var dataTemp = !Util.isArray(data) ? [data] : [].concat(data); + var dataTemp = !Util_Util.isArray(data) ? [data] : [].concat(data); //this.layer.props.data不能被重新赋值,只能在原数组上进行操作 if (!this.layer.props.data) { this.layer.props.data = []; @@ -58005,7 +57960,7 @@ var DeckglLayerBase = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/DeckglLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/DeckglLayer.js function DeckglLayer_typeof(o) { "@babel/helpers - typeof"; return DeckglLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DeckglLayer_typeof(o); } function DeckglLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DeckglLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DeckglLayer_toPropertyKey(o.key), o); } } @@ -58195,7 +58150,7 @@ var DeckglLayer = /*#__PURE__*/function (_DeckglLayerBase) { } }]); }(DeckglLayerBase); -;// ./src/common/overlay/graticule/GraticuleLayerRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/graticule/GraticuleLayerRenderer.js function GraticuleLayerRenderer_typeof(o) { "@babel/helpers - typeof"; return GraticuleLayerRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GraticuleLayerRenderer_typeof(o); } function GraticuleLayerRenderer_toConsumableArray(r) { return GraticuleLayerRenderer_arrayWithoutHoles(r) || GraticuleLayerRenderer_iterableToArray(r) || GraticuleLayerRenderer_unsupportedIterableToArray(r) || GraticuleLayerRenderer_nonIterableSpread(); } function GraticuleLayerRenderer_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -59091,7 +59046,7 @@ var GraticuleLayerRenderer = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/GraticuleLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/GraticuleLayer.js function GraticuleLayer_typeof(o) { "@babel/helpers - typeof"; return GraticuleLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GraticuleLayer_typeof(o); } function GraticuleLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GraticuleLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GraticuleLayer_toPropertyKey(o.key), o); } } @@ -59192,7 +59147,7 @@ var GraticuleLayer_defaultOptions = { var GraticuleLayer = /*#__PURE__*/function () { function GraticuleLayer(options) { GraticuleLayer_classCallCheck(this, GraticuleLayer); - this.id = options && options.layerID ? options.layerID : Util.createUniqueID('graticuleLayer_'); + this.id = options && options.layerID ? options.layerID : Util_Util.createUniqueID('graticuleLayer_'); this.sourceId = this.id + '_line'; options = options || {}; options.strokeStyle = Object.assign({}, GraticuleLayer_defaultStrokeStyle, options.strokeStyle || {}); @@ -59468,7 +59423,7 @@ var GraticuleLayer = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/geometry-type.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/geometry-type.js var geometry_type_GeometryType; (function (GeometryType) { GeometryType[GeometryType["Unknown"] = 0] = "Unknown"; @@ -59490,23 +59445,23 @@ var geometry_type_GeometryType; GeometryType[GeometryType["TIN"] = 16] = "TIN"; GeometryType[GeometryType["Triangle"] = 17] = "Triangle"; })(geometry_type_GeometryType || (geometry_type_GeometryType = {})); -;// ./node_modules/flatbuffers/mjs/constants.js -var SIZEOF_SHORT = 2; -var SIZEOF_INT = 4; -var FILE_IDENTIFIER_LENGTH = 4; -var SIZE_PREFIX_LENGTH = 4; -;// ./node_modules/flatbuffers/mjs/utils.js +;// CONCATENATED MODULE: ./node_modules/flatbuffers/mjs/constants.js +var constants_SIZEOF_SHORT = 2; +var constants_SIZEOF_INT = 4; +var constants_FILE_IDENTIFIER_LENGTH = 4; +var constants_SIZE_PREFIX_LENGTH = 4; +;// CONCATENATED MODULE: ./node_modules/flatbuffers/mjs/utils.js var int32 = new Int32Array(2); var float32 = new Float32Array(int32.buffer); var float64 = new Float64Array(int32.buffer); var isLittleEndian = new Uint16Array(new Uint8Array([1, 0]).buffer)[0] === 1; -;// ./node_modules/flatbuffers/mjs/encoding.js +;// CONCATENATED MODULE: ./node_modules/flatbuffers/mjs/encoding.js var Encoding; (function (Encoding) { Encoding[Encoding["UTF8_BYTES"] = 1] = "UTF8_BYTES"; Encoding[Encoding["UTF16_STRING"] = 2] = "UTF16_STRING"; })(Encoding || (Encoding = {})); -;// ./node_modules/flatbuffers/mjs/byte-buffer.js +;// CONCATENATED MODULE: ./node_modules/flatbuffers/mjs/byte-buffer.js function byte_buffer_typeof(o) { "@babel/helpers - typeof"; return byte_buffer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, byte_buffer_typeof(o); } function byte_buffer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function byte_buffer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, byte_buffer_toPropertyKey(o.key), o); } } @@ -59516,7 +59471,7 @@ function byte_buffer_toPrimitive(t, r) { if ("object" != byte_buffer_typeof(t) | -var ByteBuffer = /*#__PURE__*/function () { +var byte_buffer_ByteBuffer = /*#__PURE__*/function () { /** * Create a new ByteBuffer with a given array of bytes (`Uint8Array`) */ @@ -59690,12 +59645,12 @@ var ByteBuffer = /*#__PURE__*/function () { }, { key: "getBufferIdentifier", value: function getBufferIdentifier() { - if (this.bytes_.length < this.position_ + SIZEOF_INT + FILE_IDENTIFIER_LENGTH) { + if (this.bytes_.length < this.position_ + constants_SIZEOF_INT + constants_FILE_IDENTIFIER_LENGTH) { throw new Error('FlatBuffers: ByteBuffer is too short to contain an identifier.'); } var result = ""; - for (var i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - result += String.fromCharCode(this.readInt8(this.position_ + SIZEOF_INT + i)); + for (var i = 0; i < constants_FILE_IDENTIFIER_LENGTH; i++) { + result += String.fromCharCode(this.readInt8(this.position_ + constants_SIZEOF_INT + i)); } return result; } @@ -59735,7 +59690,7 @@ var ByteBuffer = /*#__PURE__*/function () { value: function __string(offset, opt_encoding) { offset += this.readInt32(offset); var length = this.readInt32(offset); - offset += SIZEOF_INT; + offset += constants_SIZEOF_INT; var utf8bytes = this.bytes_.subarray(offset, offset + length); if (opt_encoding === Encoding.UTF8_BYTES) return utf8bytes;else return this.text_decoder_.decode(utf8bytes); } @@ -59768,7 +59723,7 @@ var ByteBuffer = /*#__PURE__*/function () { }, { key: "__vector", value: function __vector(offset) { - return offset + this.readInt32(offset) + SIZEOF_INT; // data starts after the length + return offset + this.readInt32(offset) + constants_SIZEOF_INT; // data starts after the length } /** * Get the length of a vector whose offset is stored at "offset" in this object. @@ -59781,11 +59736,11 @@ var ByteBuffer = /*#__PURE__*/function () { }, { key: "__has_identifier", value: function __has_identifier(ident) { - if (ident.length != FILE_IDENTIFIER_LENGTH) { - throw new Error('FlatBuffers: file identifier must be length ' + FILE_IDENTIFIER_LENGTH); + if (ident.length != constants_FILE_IDENTIFIER_LENGTH) { + throw new Error('FlatBuffers: file identifier must be length ' + constants_FILE_IDENTIFIER_LENGTH); } - for (var i = 0; i < FILE_IDENTIFIER_LENGTH; i++) { - if (ident.charCodeAt(i) != this.readInt8(this.position() + SIZEOF_INT + i)) { + for (var i = 0; i < constants_FILE_IDENTIFIER_LENGTH; i++) { + if (ident.charCodeAt(i) != this.readInt8(this.position() + constants_SIZEOF_INT + i)) { return false; } } @@ -59831,12 +59786,7 @@ var ByteBuffer = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/flatbuffers/mjs/builder.js -/* unused harmony import specifier */ var builder_ByteBuffer; -/* unused harmony import specifier */ var builder_SIZEOF_INT; -/* unused harmony import specifier */ var builder_SIZEOF_SHORT; -/* unused harmony import specifier */ var builder_SIZE_PREFIX_LENGTH; -/* unused harmony import specifier */ var builder_FILE_IDENTIFIER_LENGTH; +;// CONCATENATED MODULE: ./node_modules/flatbuffers/mjs/builder.js function builder_typeof(o) { "@babel/helpers - typeof"; return builder_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, builder_typeof(o); } function builder_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function builder_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, builder_toPropertyKey(o.key), o); } } @@ -59879,7 +59829,7 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct * @type {ByteBuffer} * @private */ - this.bb = builder_ByteBuffer.allocate(initial_size); + this.bb = ByteBuffer.allocate(initial_size); this.space = initial_size; } return builder_createClass(Builder, [{ @@ -60179,8 +60129,8 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct * @param offset The offset to add. */ function addOffset(offset) { - this.prep(builder_SIZEOF_INT, 0); // Ensure alignment is already done. - this.writeInt32(this.offset() - offset + builder_SIZEOF_INT); + this.prep(SIZEOF_INT, 0); // Ensure alignment is already done. + this.writeInt32(this.offset() - offset + SIZEOF_INT); } /** * Start encoding a new object in the buffer. Users will not usually need to @@ -60226,7 +60176,7 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct } var standard_fields = 2; // The fields below: this.addInt16(vtableloc - this.object_start); - var len = (trimmed_size + standard_fields) * builder_SIZEOF_SHORT; + var len = (trimmed_size + standard_fields) * SIZEOF_SHORT; this.addInt16(len); // Search for an existing vtable that matches the current one. var existing_vtable = 0; @@ -60234,7 +60184,7 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct outer_loop: for (i = 0; i < this.vtables.length; i++) { var vt2 = this.bb.capacity() - this.vtables[i]; if (len == this.bb.readInt16(vt2)) { - for (var j = builder_SIZEOF_SHORT; j < len; j += builder_SIZEOF_SHORT) { + for (var j = SIZEOF_SHORT; j < len; j += SIZEOF_SHORT) { if (this.bb.readInt16(vt1 + j) != this.bb.readInt16(vt2 + j)) { continue outer_loop; } @@ -60265,18 +60215,18 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct }, { key: "finish", value: function finish(root_table, opt_file_identifier, opt_size_prefix) { - var size_prefix = opt_size_prefix ? builder_SIZE_PREFIX_LENGTH : 0; + var size_prefix = opt_size_prefix ? SIZE_PREFIX_LENGTH : 0; if (opt_file_identifier) { var file_identifier = opt_file_identifier; - this.prep(this.minalign, builder_SIZEOF_INT + builder_FILE_IDENTIFIER_LENGTH + size_prefix); - if (file_identifier.length != builder_FILE_IDENTIFIER_LENGTH) { - throw new TypeError('FlatBuffers: file identifier must be length ' + builder_FILE_IDENTIFIER_LENGTH); + this.prep(this.minalign, SIZEOF_INT + FILE_IDENTIFIER_LENGTH + size_prefix); + if (file_identifier.length != FILE_IDENTIFIER_LENGTH) { + throw new TypeError('FlatBuffers: file identifier must be length ' + FILE_IDENTIFIER_LENGTH); } - for (var i = builder_FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) { + for (var i = FILE_IDENTIFIER_LENGTH - 1; i >= 0; i--) { this.writeInt8(file_identifier.charCodeAt(i)); } } - this.prep(this.minalign, builder_SIZEOF_INT + size_prefix); + this.prep(this.minalign, SIZEOF_INT + size_prefix); this.addOffset(root_table); if (size_prefix) { this.addInt32(this.bb.capacity() - this.space); @@ -60320,7 +60270,7 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct value: function startVector(elem_size, num_elems, alignment) { this.notNested(); this.vector_num_elems = num_elems; - this.prep(builder_SIZEOF_INT, elem_size * num_elems); + this.prep(SIZEOF_INT, elem_size * num_elems); this.prep(alignment, elem_size * num_elems); // Just in case alignment > int. } /** @@ -60438,14 +60388,14 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct throw new Error('FlatBuffers: cannot grow buffer beyond 2 gigabytes.'); } var new_buf_size = old_buf_size << 1; - var nbb = builder_ByteBuffer.allocate(new_buf_size); + var nbb = ByteBuffer.allocate(new_buf_size); nbb.setPosition(new_buf_size - old_buf_size); nbb.bytes().set(bb.bytes(), new_buf_size - old_buf_size); return nbb; } }]); }())); -;// ./node_modules/flatbuffers/mjs/flatbuffers.js +;// CONCATENATED MODULE: ./node_modules/flatbuffers/mjs/flatbuffers.js @@ -60454,7 +60404,7 @@ var Builder = /*#__PURE__*/(/* unused pure expression or super */ null && (funct -;// ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/geometry.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/geometry.js function geometry_typeof(o) { "@babel/helpers - typeof"; return geometry_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, geometry_typeof(o); } function geometry_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function geometry_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, geometry_toPropertyKey(o.key), o); } } @@ -60604,7 +60554,7 @@ var geometry_Geometry = /*#__PURE__*/function () { }, { key: "getSizePrefixedRootAsGeometry", value: function getSizePrefixedRootAsGeometry(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); + bb.setPosition(bb.position() + constants_SIZE_PREFIX_LENGTH); return (obj || new Geometry()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } }, { @@ -60772,9 +60722,7 @@ var geometry_Geometry = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/flatgeobuf/lib/mjs/generic/geometry.js -/* unused harmony import specifier */ var geometry_GeometryType; -/* unused harmony import specifier */ var generic_geometry_Geometry; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/generic/geometry.js function geometry_toConsumableArray(r) { return geometry_arrayWithoutHoles(r) || geometry_iterableToArray(r) || geometry_unsupportedIterableToArray(r) || geometry_nonIterableSpread(); } function geometry_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function geometry_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } @@ -60784,7 +60732,7 @@ function geometry_unsupportedIterableToArray(r, a) { if (r) { if ("string" == ty function geometry_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function buildGeometry(builder, parsedGeometry) { +function geometry_buildGeometry(builder, parsedGeometry) { var xy = parsedGeometry.xy, z = parsedGeometry.z, ends = parsedGeometry.ends, @@ -60792,27 +60740,27 @@ function buildGeometry(builder, parsedGeometry) { type = parsedGeometry.type; if (parts) { var partOffsets = parts.map(function (part) { - return buildGeometry(builder, part); + return geometry_buildGeometry(builder, part); }); - var partsOffset = generic_geometry_Geometry.createPartsVector(builder, partOffsets); - generic_geometry_Geometry.startGeometry(builder); - generic_geometry_Geometry.addParts(builder, partsOffset); - generic_geometry_Geometry.addType(builder, type); - return generic_geometry_Geometry.endGeometry(builder); + var partsOffset = Geometry.createPartsVector(builder, partOffsets); + Geometry.startGeometry(builder); + Geometry.addParts(builder, partsOffset); + Geometry.addType(builder, type); + return Geometry.endGeometry(builder); } - var xyOffset = generic_geometry_Geometry.createXyVector(builder, xy); + var xyOffset = Geometry.createXyVector(builder, xy); var zOffset; - if (z) zOffset = generic_geometry_Geometry.createZVector(builder, z); + if (z) zOffset = Geometry.createZVector(builder, z); var endsOffset; - if (ends) endsOffset = generic_geometry_Geometry.createEndsVector(builder, ends); - generic_geometry_Geometry.startGeometry(builder); - if (endsOffset) generic_geometry_Geometry.addEnds(builder, endsOffset); - generic_geometry_Geometry.addXy(builder, xyOffset); - if (zOffset) generic_geometry_Geometry.addZ(builder, zOffset); - generic_geometry_Geometry.addType(builder, type); - return generic_geometry_Geometry.endGeometry(builder); -} -function flat(a, xy, z) { + if (ends) endsOffset = Geometry.createEndsVector(builder, ends); + Geometry.startGeometry(builder); + if (endsOffset) Geometry.addEnds(builder, endsOffset); + Geometry.addXy(builder, xyOffset); + if (zOffset) Geometry.addZ(builder, zOffset); + Geometry.addType(builder, type); + return Geometry.endGeometry(builder); +} +function geometry_flat(a, xy, z) { if (a.length === 0) return; if (Array.isArray(a[0])) { var _iterator = geometry_createForOfIteratorHelper(a), @@ -60820,7 +60768,7 @@ function flat(a, xy, z) { try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var sa = _step.value; - flat(sa, xy, z); + geometry_flat(sa, xy, z); } } catch (err) { _iterator.e(err); @@ -60834,30 +60782,30 @@ function flat(a, xy, z) { } } } -function parseGeometry(geometry, headerGeomType) { +function geometry_parseGeometry(geometry, headerGeomType) { var xy; var ends; var parts; var type = headerGeomType; - if (type === geometry_GeometryType.Unknown) { - type = toGeometryType(geometry.getType()); + if (type === GeometryType.Unknown) { + type = geometry_toGeometryType(geometry.getType()); } - if (type === geometry_GeometryType.MultiLineString) { + if (type === GeometryType.MultiLineString) { if (geometry.getFlatCoordinates) xy = geometry.getFlatCoordinates(); var mlsEnds = geometry.getEnds(); if (mlsEnds.length > 1) ends = mlsEnds.map(function (e) { return e >> 1; }); - } else if (type === geometry_GeometryType.Polygon) { + } else if (type === GeometryType.Polygon) { if (geometry.getFlatCoordinates) xy = geometry.getFlatCoordinates(); var pEnds = geometry.getEnds(); if (pEnds.length > 1) ends = pEnds.map(function (e) { return e >> 1; }); - } else if (type === geometry_GeometryType.MultiPolygon) { + } else if (type === GeometryType.MultiPolygon) { var mp = geometry; parts = mp.getPolygons().map(function (p) { - return parseGeometry(p, geometry_GeometryType.Polygon); + return geometry_parseGeometry(p, GeometryType.Polygon); }); } else { if (geometry.getFlatCoordinates) xy = geometry.getFlatCoordinates(); @@ -60878,37 +60826,35 @@ function pairFlatCoordinates(xy, z) { } return newArray; } -function toGeometryType(name) { - if (!name) return geometry_GeometryType.Unknown; - var type = geometry_GeometryType[name]; +function geometry_toGeometryType(name) { + if (!name) return GeometryType.Unknown; + var type = GeometryType[name]; return type; } -;// ./node_modules/flatgeobuf/lib/mjs/geojson/geometry.js -/* unused harmony import specifier */ var geometry_toGeometryType; -/* unused harmony import specifier */ var geometry_flat; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/geojson/geometry.js -function geometry_parseGeometry(geometry) { +function geojson_geometry_parseGeometry(geometry) { var cs = geometry.coordinates; var xy = []; var z = []; var ends; var parts; - var type = geometry_toGeometryType(geometry.type); + var type = toGeometryType(geometry.type); var end = 0; switch (geometry.type) { case 'Point': - geometry_flat(cs, xy, z); + flat(cs, xy, z); break; case 'MultiPoint': case 'LineString': - geometry_flat(cs, xy, z); + flat(cs, xy, z); break; case 'MultiLineString': case 'Polygon': { var css = cs; - geometry_flat(css, xy, z); + flat(css, xy, z); if (css.length > 1) ends = css.map(function (c) { return end += c.length; }); @@ -60923,7 +60869,7 @@ function geometry_parseGeometry(geometry) { coordinates: coordinates }; }); - parts = geometries.map(geometry_parseGeometry); + parts = geometries.map(geojson_geometry_parseGeometry); break; } } @@ -60935,12 +60881,12 @@ function geometry_parseGeometry(geometry) { parts: parts }; } -function parseGC(geometry) { - var type = geometry_toGeometryType(geometry.type); +function geometry_parseGC(geometry) { + var type = toGeometryType(geometry.type); var parts = []; for (var i = 0; i < geometry.geometries.length; i++) { var g = geometry.geometries[i]; - if (g.type === 'GeometryCollection') parts.push(parseGC(g));else parts.push(geometry_parseGeometry(g)); + if (g.type === 'GeometryCollection') parts.push(geometry_parseGC(g));else parts.push(geojson_geometry_parseGeometry(g)); } return { type: type, @@ -61015,8 +60961,8 @@ function fromGeometry(geometry, headerType) { coordinates: coordinates }; } -;// ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/column-type.js -var ColumnType; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/column-type.js +var column_type_ColumnType; (function (ColumnType) { ColumnType[ColumnType["Byte"] = 0] = "Byte"; ColumnType[ColumnType["UByte"] = 1] = "UByte"; @@ -61033,8 +60979,8 @@ var ColumnType; ColumnType[ColumnType["Json"] = 12] = "Json"; ColumnType[ColumnType["DateTime"] = 13] = "DateTime"; ColumnType[ColumnType["Binary"] = 14] = "Binary"; -})(ColumnType || (ColumnType = {})); -;// ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/column.js +})(column_type_ColumnType || (column_type_ColumnType = {})); +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/column.js function column_typeof(o) { "@babel/helpers - typeof"; return column_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, column_typeof(o); } function column_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function column_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, column_toPropertyKey(o.key), o); } } @@ -61043,7 +60989,7 @@ function column_toPropertyKey(t) { var i = column_toPrimitive(t, "string"); retu function column_toPrimitive(t, r) { if ("object" != column_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != column_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var Column = /*#__PURE__*/function () { +var column_Column = /*#__PURE__*/function () { function Column() { column_classCallCheck(this, Column); this.bb = null; @@ -61066,7 +61012,7 @@ var Column = /*#__PURE__*/function () { key: "type", value: function type() { var offset = this.bb.__offset(this.bb_pos, 6); - return offset ? this.bb.readUint8(this.bb_pos + offset) : ColumnType.Byte; + return offset ? this.bb.readUint8(this.bb_pos + offset) : column_type_ColumnType.Byte; } }, { key: "title", @@ -61130,7 +61076,7 @@ var Column = /*#__PURE__*/function () { }, { key: "getSizePrefixedRootAsColumn", value: function getSizePrefixedRootAsColumn(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); + bb.setPosition(bb.position() + constants_SIZE_PREFIX_LENGTH); return (obj || new Column()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } }, { @@ -61146,7 +61092,7 @@ var Column = /*#__PURE__*/function () { }, { key: "addType", value: function addType(builder, type) { - builder.addFieldInt8(1, type, ColumnType.Byte); + builder.addFieldInt8(1, type, column_type_ColumnType.Byte); } }, { key: "addTitle", @@ -61219,7 +61165,7 @@ var Column = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/feature.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/feature.js function feature_typeof(o) { "@babel/helpers - typeof"; return feature_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, feature_typeof(o); } function feature_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function feature_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, feature_toPropertyKey(o.key), o); } } @@ -61270,7 +61216,7 @@ var feature_Feature = /*#__PURE__*/function () { key: "columns", value: function columns(index, obj) { var offset = this.bb.__offset(this.bb_pos, 8); - return offset ? (obj || new Column()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + return offset ? (obj || new column_Column()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; } }, { key: "columnsLength", @@ -61286,7 +61232,7 @@ var feature_Feature = /*#__PURE__*/function () { }, { key: "getSizePrefixedRootAsFeature", value: function getSizePrefixedRootAsFeature(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); + bb.setPosition(bb.position() + constants_SIZE_PREFIX_LENGTH); return (obj || new Feature()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } }, { @@ -61364,11 +61310,7 @@ var feature_Feature = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/flatgeobuf/lib/mjs/generic/feature.js -/* unused harmony import specifier */ var flatbuffers; -/* unused harmony import specifier */ var feature_ColumnType; -/* unused harmony import specifier */ var generic_feature_Feature; -/* unused harmony import specifier */ var feature_buildGeometry; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/generic/feature.js @@ -61382,7 +61324,7 @@ function fromFeature(feature, header, createGeometry, createFeature) { var properties = parseProperties(feature, columns); return createFeature(simpleGeometry, properties); } -function buildFeature(geometry, properties, header) { +function feature_buildFeature(geometry, properties, header) { var columns = header.columns; var builder = new flatbuffers.Builder(); var offset = 0; @@ -61406,48 +61348,48 @@ function buildFeature(geometry, properties, header) { view.setUint16(offset, i, true); offset += 2; switch (column.type) { - case feature_ColumnType.Bool: + case ColumnType.Bool: prep(1); view.setUint8(offset, value); offset += 1; break; - case feature_ColumnType.Short: + case ColumnType.Short: prep(2); view.setInt16(offset, value, true); offset += 2; break; - case feature_ColumnType.UShort: + case ColumnType.UShort: prep(2); view.setUint16(offset, value, true); offset += 2; break; - case feature_ColumnType.Int: + case ColumnType.Int: prep(4); view.setInt32(offset, value, true); offset += 4; break; - case feature_ColumnType.UInt: + case ColumnType.UInt: prep(4); view.setUint32(offset, value, true); offset += 4; break; - case feature_ColumnType.Long: + case ColumnType.Long: prep(8); view.setBigInt64(offset, BigInt(value), true); offset += 8; break; - case feature_ColumnType.Float: + case ColumnType.Float: prep(4); view.setFloat32(offset, value, true); offset += 4; break; - case feature_ColumnType.Double: + case ColumnType.Double: prep(8); view.setFloat64(offset, value, true); offset += 8; break; - case feature_ColumnType.DateTime: - case feature_ColumnType.String: + case ColumnType.DateTime: + case ColumnType.String: { var str = textEncoder.encode(value); prep(4); @@ -61458,7 +61400,7 @@ function buildFeature(geometry, properties, header) { offset += str.length; break; } - case feature_ColumnType.Json: + case ColumnType.Json: { var _str = textEncoder.encode(JSON.stringify(value)); prep(4); @@ -61475,12 +61417,12 @@ function buildFeature(geometry, properties, header) { } } var propertiesOffset = null; - if (offset > 0) propertiesOffset = generic_feature_Feature.createPropertiesVector(builder, bytes.slice(0, offset)); - var geometryOffset = feature_buildGeometry(builder, geometry); - generic_feature_Feature.startFeature(builder); - generic_feature_Feature.addGeometry(builder, geometryOffset); - if (propertiesOffset) generic_feature_Feature.addProperties(builder, propertiesOffset); - var featureOffset = generic_feature_Feature.endFeature(builder); + if (offset > 0) propertiesOffset = Feature.createPropertiesVector(builder, bytes.slice(0, offset)); + var geometryOffset = buildGeometry(builder, geometry); + Feature.startFeature(builder); + Feature.addGeometry(builder, geometryOffset); + if (propertiesOffset) Feature.addProperties(builder, propertiesOffset); + var featureOffset = Feature.endFeature(builder); builder.finishSizePrefixed(featureOffset); return builder.asUint8Array(); } @@ -61498,74 +61440,74 @@ function parseProperties(feature, columns) { var column = columns[i]; var name = column.name; switch (column.type) { - case ColumnType.Bool: + case column_type_ColumnType.Bool: { properties[name] = !!view.getUint8(offset); offset += 1; break; } - case ColumnType.Byte: + case column_type_ColumnType.Byte: { properties[name] = view.getInt8(offset); offset += 1; break; } - case ColumnType.UByte: + case column_type_ColumnType.UByte: { properties[name] = view.getUint8(offset); offset += 1; break; } - case ColumnType.Short: + case column_type_ColumnType.Short: { properties[name] = view.getInt16(offset, true); offset += 2; break; } - case ColumnType.UShort: + case column_type_ColumnType.UShort: { properties[name] = view.getUint16(offset, true); offset += 2; break; } - case ColumnType.Int: + case column_type_ColumnType.Int: { properties[name] = view.getInt32(offset, true); offset += 4; break; } - case ColumnType.UInt: + case column_type_ColumnType.UInt: { properties[name] = view.getUint32(offset, true); offset += 4; break; } - case ColumnType.Long: + case column_type_ColumnType.Long: { properties[name] = Number(view.getBigInt64(offset, true)); offset += 8; break; } - case ColumnType.ULong: + case column_type_ColumnType.ULong: { properties[name] = Number(view.getBigUint64(offset, true)); offset += 8; break; } - case ColumnType.Float: + case column_type_ColumnType.Float: { properties[name] = view.getFloat32(offset, true); offset += 4; break; } - case ColumnType.Double: + case column_type_ColumnType.Double: { properties[name] = view.getFloat64(offset, true); offset += 8; break; } - case ColumnType.DateTime: - case ColumnType.String: + case column_type_ColumnType.DateTime: + case column_type_ColumnType.String: { var _length = view.getUint32(offset, true); offset += 4; @@ -61573,7 +61515,7 @@ function parseProperties(feature, columns) { offset += _length; break; } - case ColumnType.Json: + case column_type_ColumnType.Json: { var _length2 = view.getUint32(offset, true); offset += 4; @@ -61588,7 +61530,7 @@ function parseProperties(feature, columns) { } return properties; } -;// ./node_modules/flatgeobuf/lib/mjs/geojson/feature.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/geojson/feature.js function feature_fromFeature(feature, header) { @@ -61601,14 +61543,13 @@ function feature_fromFeature(feature, header) { }; return geoJsonfeature; } -;// ./node_modules/slice-source/empty.js +;// CONCATENATED MODULE: ./node_modules/slice-source/empty.js /* harmony default export */ var empty = (new Uint8Array(0)); -;// ./node_modules/slice-source/cancel.js -__webpack_require__.dn(slice_source_cancel); +;// CONCATENATED MODULE: ./node_modules/slice-source/cancel.js /* harmony default export */ function slice_source_cancel() { return this._source.cancel(); } -;// ./node_modules/slice-source/concat.js +;// CONCATENATED MODULE: ./node_modules/slice-source/concat.js function concat(a, b) { if (!a.length) return b; if (!b.length) return a; @@ -61617,8 +61558,7 @@ function concat(a, b) { c.set(b, a.length); return c; } -;// ./node_modules/slice-source/read.js -__webpack_require__.dn(read); +;// CONCATENATED MODULE: ./node_modules/slice-source/read.js /* harmony default export */ function read() { @@ -61639,8 +61579,7 @@ __webpack_require__.dn(read); }; }); } -;// ./node_modules/slice-source/slice.js -__webpack_require__.dn(slice); +;// CONCATENATED MODULE: ./node_modules/slice-source/slice.js /* harmony default export */ function slice(length) { if ((length |= 0) < 0) throw new Error("invalid length"); @@ -61680,7 +61619,7 @@ __webpack_require__.dn(slice); }); }(); } -;// ./node_modules/slice-source/index.js +;// CONCATENATED MODULE: ./node_modules/slice-source/index.js @@ -61696,7 +61635,7 @@ function SliceSource(source) { SliceSource.prototype.read = read; SliceSource.prototype.slice = slice; SliceSource.prototype.cancel = slice_source_cancel; -;// ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/crs.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/crs.js function crs_typeof(o) { "@babel/helpers - typeof"; return crs_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, crs_typeof(o); } function crs_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function crs_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, crs_toPropertyKey(o.key), o); } } @@ -61704,7 +61643,7 @@ function crs_createClass(e, r, t) { return r && crs_defineProperties(e.prototype function crs_toPropertyKey(t) { var i = crs_toPrimitive(t, "string"); return "symbol" == crs_typeof(i) ? i : i + ""; } function crs_toPrimitive(t, r) { if ("object" != crs_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != crs_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -var Crs = /*#__PURE__*/function () { +var crs_Crs = /*#__PURE__*/function () { function Crs() { crs_classCallCheck(this, Crs); this.bb = null; @@ -61761,7 +61700,7 @@ var Crs = /*#__PURE__*/function () { }, { key: "getSizePrefixedRootAsCrs", value: function getSizePrefixedRootAsCrs(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); + bb.setPosition(bb.position() + constants_SIZE_PREFIX_LENGTH); return (obj || new Crs()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } }, { @@ -61819,7 +61758,7 @@ var Crs = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/header.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/flat-geobuf/header.js function header_typeof(o) { "@babel/helpers - typeof"; return header_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, header_typeof(o); } function header_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function header_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, header_toPropertyKey(o.key), o); } } @@ -61830,7 +61769,7 @@ function header_toPrimitive(t, r) { if ("object" != header_typeof(t) || !t) retu -var Header = /*#__PURE__*/function () { +var header_Header = /*#__PURE__*/function () { function Header() { header_classCallCheck(this, Header); this.bb = null; @@ -61901,7 +61840,7 @@ var Header = /*#__PURE__*/function () { key: "columns", value: function columns(index, obj) { var offset = this.bb.__offset(this.bb_pos, 18); - return offset ? (obj || new Column()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; + return offset ? (obj || new column_Column()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null; } }, { key: "columnsLength", @@ -61925,7 +61864,7 @@ var Header = /*#__PURE__*/function () { key: "crs", value: function crs(obj) { var offset = this.bb.__offset(this.bb_pos, 24); - return offset ? (obj || new Crs()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; + return offset ? (obj || new crs_Crs()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null; } }, { key: "title", @@ -61953,7 +61892,7 @@ var Header = /*#__PURE__*/function () { }, { key: "getSizePrefixedRootAsHeader", value: function getSizePrefixedRootAsHeader(bb, obj) { - bb.setPosition(bb.position() + SIZE_PREFIX_LENGTH); + bb.setPosition(bb.position() + constants_SIZE_PREFIX_LENGTH); return (obj || new Header()).__init(bb.readInt32(bb.position()) + bb.position(), bb); } }, { @@ -62077,10 +62016,10 @@ var Header = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/flatgeobuf/lib/mjs/header-meta.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/header-meta.js function fromByteBuffer(bb) { - var header = Header.getRootAsHeader(bb); + var header = header_Header.getRootAsHeader(bb); var featuresCount = header.featuresCount(); var indexNodeSize = header.indexNodeSize(); var columns = []; @@ -62123,7 +62062,7 @@ function fromByteBuffer(bb) { }; return headerMeta; } -;// ./node_modules/@repeaterjs/repeater/repeater.js +;// CONCATENATED MODULE: ./node_modules/@repeaterjs/repeater/repeater.js /// /*! ***************************************************************************** Copyright (c) Microsoft Corporation. @@ -63252,7 +63191,7 @@ function latest(contenders) { }); } -;// ./node_modules/flatgeobuf/lib/mjs/config.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/config.js function config_typeof(o) { "@babel/helpers - typeof"; return config_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, config_typeof(o); } function config_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function config_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, config_toPropertyKey(o.key), o); } } @@ -63281,7 +63220,7 @@ var config_Config = /*#__PURE__*/function () { }(); config_Config.global = new config_Config(); /* harmony default export */ var config = (config_Config); -;// ./node_modules/flatgeobuf/lib/mjs/logger.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/logger.js function logger_typeof(o) { "@babel/helpers - typeof"; return logger_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, logger_typeof(o); } function logger_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function logger_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, logger_toPropertyKey(o.key), o); } } @@ -63371,11 +63310,9 @@ var Logger = /*#__PURE__*/function () { }(); Logger.logLevel = LogLevel.Warn; /* harmony default export */ var logger = (Logger); -;// ./node_modules/flatgeobuf/lib/mjs/packedrtree.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/packedrtree.js function packedrtree_typeof(o) { "@babel/helpers - typeof"; return packedrtree_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, packedrtree_typeof(o); } -function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(packedrtree_typeof(e) + " is not iterable"); } -function packedrtree_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return packedrtree_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (packedrtree_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, packedrtree_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, packedrtree_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), packedrtree_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", packedrtree_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), packedrtree_regeneratorDefine2(u), packedrtree_regeneratorDefine2(u, o, "Generator"), packedrtree_regeneratorDefine2(u, n, function () { return this; }), packedrtree_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (packedrtree_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function packedrtree_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } packedrtree_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { packedrtree_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, packedrtree_regeneratorDefine2(e, r, n, t); } +function packedrtree_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ packedrtree_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == packedrtree_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(packedrtree_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function packedrtree_slicedToArray(r, e) { return packedrtree_arrayWithHoles(r) || packedrtree_iterableToArrayLimit(r, e) || packedrtree_unsupportedIterableToArray(r, e) || packedrtree_nonIterableRest(); } function packedrtree_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function packedrtree_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return packedrtree_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? packedrtree_arrayLikeToArray(r, a) : void 0; } } @@ -63389,7 +63326,7 @@ function packedrtree_toPropertyKey(t) { var i = packedrtree_toPrimitive(t, "stri function packedrtree_toPrimitive(t, r) { if ("object" != packedrtree_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != packedrtree_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); } function _wrapAsyncGenerator(e) { return function () { return new AsyncGenerator(e.apply(this, arguments)); }; } -function AsyncGenerator(e) { var t, n; function resume(t, n) { try { var r = e[t](n), o = r.value, u = o instanceof _OverloadYield; Promise.resolve(u ? o.v : o).then(function (n) { if (u) { var i = "return" === t && o.k ? t : "next"; if (!o.k || n.done) return resume(i, n); n = e[i](n).value; } settle(!!r.done, n); }, function (e) { resume("throw", e); }); } catch (e) { settle(2, e); } } function settle(e, r) { 2 === e ? t.reject(r) : t.resolve({ value: r, done: e }), (t = t.next) ? resume(t.key, t.arg) : n = null; } this._invoke = function (e, r) { return new Promise(function (o, u) { var i = { key: e, arg: r, resolve: o, reject: u, next: null }; n ? n = n.next = i : (t = n = i, resume(e, r)); }); }, "function" != typeof e["return"] && (this["return"] = void 0); } +function AsyncGenerator(e) { var r, t; function resume(r, t) { try { var n = e[r](t), o = n.value, u = o instanceof _OverloadYield; Promise.resolve(u ? o.v : o).then(function (t) { if (u) { var i = "return" === r ? "return" : "next"; if (!o.k || t.done) return resume(i, t); t = e[i](t).value; } settle(n.done ? "return" : "normal", t); }, function (e) { resume("throw", e); }); } catch (e) { settle("throw", e); } } function settle(e, n) { switch (e) { case "return": r.resolve({ value: n, done: !0 }); break; case "throw": r.reject(n); break; default: r.resolve({ value: n, done: !1 }); } (r = r.next) ? resume(r.key, r.arg) : t = null; } this._invoke = function (e, n) { return new Promise(function (o, u) { var i = { key: e, arg: n, resolve: o, reject: u, next: null }; t ? t = t.next = i : (r = t = i, resume(e, n)); }); }, "function" != typeof e["return"] && (this["return"] = void 0); } AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; }, AsyncGenerator.prototype.next = function (e) { return this._invoke("next", e); }, AsyncGenerator.prototype["throw"] = function (e) { return this._invoke("throw", e); }, AsyncGenerator.prototype["return"] = function (e) { return this._invoke("return", e); }; function _OverloadYield(e, d) { this.v = e, this.k = d; } @@ -63433,10 +63370,10 @@ function streamSearch(_x, _x2, _x3, _x4) { return _streamSearch.apply(this, arguments); } function _streamSearch() { - _streamSearch = _wrapAsyncGenerator(/*#__PURE__*/packedrtree_regenerator().m(function _callee(numItems, nodeSize, rect, readNode) { + _streamSearch = _wrapAsyncGenerator(/*#__PURE__*/packedrtree_regeneratorRuntime().mark(function _callee(numItems, nodeSize, rect, readNode) { var NodeRange, minX, minY, maxX, maxY, levelBounds, firstLeafNodeIdx, rootNodeRange, queue, _loop; - return packedrtree_regenerator().w(function (_context3) { - while (1) switch (_context3.n) { + return packedrtree_regeneratorRuntime().wrap(function _callee$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: NodeRange = /*#__PURE__*/function () { function NodeRange(nodes, level) { @@ -63483,10 +63420,10 @@ function _streamSearch() { }(); queue = [rootNodeRange]; logger.debug("starting stream search with queue: ".concat(queue, ", numItems: ").concat(numItems, ", nodeSize: ").concat(nodeSize, ", levelBounds: ").concat(levelBounds)); - _loop = /*#__PURE__*/packedrtree_regenerator().m(function _loop() { + _loop = /*#__PURE__*/packedrtree_regeneratorRuntime().mark(function _loop() { var nodeRange, nodeRangeStartIdx, isLeafNode, nodeRangeEndIdx, numNodesInRange, buffer, dataView, _loop2, _ret, nodeIdx; - return packedrtree_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + return packedrtree_regeneratorRuntime().wrap(function _loop$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: nodeRange = queue.shift(); logger.debug("popped node: ".concat(nodeRange, ", queueLength: ").concat(queue.length)); @@ -63503,45 +63440,45 @@ function _streamSearch() { } }(); numNodesInRange = nodeRangeEndIdx - nodeRangeStartIdx; - _context2.n = 1; + _context2.next = 8; return _awaitAsyncGenerator(readNode(nodeRangeStartIdx * NODE_ITEM_BYTE_LEN, numNodesInRange * NODE_ITEM_BYTE_LEN)); - case 1: - buffer = _context2.v; + case 8: + buffer = _context2.sent; dataView = new DataView(buffer); - _loop2 = /*#__PURE__*/packedrtree_regenerator().m(function _loop2(nodeIdx) { + _loop2 = /*#__PURE__*/packedrtree_regeneratorRuntime().mark(function _loop2(nodeIdx) { var nodeIdxInDataView, dataViewByteStart, offset, featureByteOffset, featureLength, featureIdx, firstChildNodeIdx, extraRequestThresholdNodes, nearestNodeRange, newNodeRange; - return packedrtree_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return packedrtree_regeneratorRuntime().wrap(function _loop2$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: nodeIdxInDataView = nodeIdx - nodeRangeStartIdx; dataViewByteStart = nodeIdxInDataView * NODE_ITEM_BYTE_LEN; if (!(maxX < dataView.getFloat64(dataViewByteStart + 0, true))) { - _context.n = 1; + _context.next = 4; break; } - return _context.a(2, 0); - case 1: + return _context.abrupt("return", 0); + case 4: if (!(maxY < dataView.getFloat64(dataViewByteStart + 8, true))) { - _context.n = 2; + _context.next = 6; break; } - return _context.a(2, 0); - case 2: + return _context.abrupt("return", 0); + case 6: if (!(minX > dataView.getFloat64(dataViewByteStart + 16, true))) { - _context.n = 3; + _context.next = 8; break; } - return _context.a(2, 0); - case 3: + return _context.abrupt("return", 0); + case 8: if (!(minY > dataView.getFloat64(dataViewByteStart + 24, true))) { - _context.n = 4; + _context.next = 10; break; } - return _context.a(2, 0); - case 4: + return _context.abrupt("return", 0); + case 10: offset = dataView.getBigUint64(dataViewByteStart + 32, true); if (!isLeafNode) { - _context.n = 6; + _context.next = 18; break; } featureByteOffset = offset; @@ -63555,22 +63492,22 @@ function _streamSearch() { } }(); featureIdx = nodeIdx - firstLeafNodeIdx; - _context.n = 5; + _context.next = 17; return [Number(featureByteOffset), featureIdx, Number(featureLength)]; - case 5: - return _context.a(2, 0); - case 6: + case 17: + return _context.abrupt("return", 0); + case 18: firstChildNodeIdx = offset; extraRequestThresholdNodes = config.global.extraRequestThreshold() / NODE_ITEM_BYTE_LEN; nearestNodeRange = queue[queue.length - 1]; if (!(nearestNodeRange !== undefined && nearestNodeRange.level() == nodeRange.level() - 1 && firstChildNodeIdx < nearestNodeRange.endNodeIdx() + extraRequestThresholdNodes)) { - _context.n = 7; + _context.next = 25; break; } logger.debug("Merging \"nodeRange\" request into existing range: ".concat(nearestNodeRange, ", newEndNodeIdx: ").concat(nearestNodeRange.endNodeIdx(), " -> ").concat(firstChildNodeIdx)); nearestNodeRange.extendEndNodeIdx(Number(firstChildNodeIdx)); - return _context.a(2, 0); - case 7: + return _context.abrupt("return", 0); + case 25: newNodeRange = function () { var level = nodeRange.level() - 1; var range = [Number(firstChildNodeIdx), Number(firstChildNodeIdx) + 1]; @@ -63582,65 +63519,66 @@ function _streamSearch() { logger.info("Pushing new level for ".concat(newNodeRange, " onto queue with nearestNodeRange: ").concat(nearestNodeRange, " since there's not already a range for this level.")); } queue.push(newNodeRange); - case 8: - return _context.a(2); + case 28: + case "end": + return _context.stop(); } }, _loop2); }); nodeIdx = nodeRangeStartIdx; - case 2: + case 12: if (!(nodeIdx < nodeRangeEndIdx)) { - _context2.n = 5; + _context2.next = 20; break; } - return _context2.d(_regeneratorValues(_loop2(nodeIdx)), 3); - case 3: - _ret = _context2.v; + return _context2.delegateYield(_loop2(nodeIdx), "t0", 14); + case 14: + _ret = _context2.t0; if (!(_ret === 0)) { - _context2.n = 4; + _context2.next = 17; break; } - return _context2.a(3, 4); - case 4: + return _context2.abrupt("continue", 17); + case 17: nodeIdx++; - _context2.n = 2; + _context2.next = 12; break; - case 5: - return _context2.a(2); + case 20: + case "end": + return _context2.stop(); } }, _loop); }); - case 1: + case 9: if (!(queue.length != 0)) { - _context3.n = 3; + _context3.next = 13; break; } - return _context3.d(_regeneratorValues(_loop()), 2); - case 2: - _context3.n = 1; + return _context3.delegateYield(_loop(), "t0", 11); + case 11: + _context3.next = 9; break; - case 3: - return _context3.a(2); + case 13: + case "end": + return _context3.stop(); } }, _callee); })); return _streamSearch.apply(this, arguments); } -;// ./node_modules/flatgeobuf/lib/mjs/constants.js -var magicbytes = new Uint8Array([0x66, 0x67, 0x62, 0x03, 0x66, 0x67, 0x62, 0x00]); +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/constants.js +var constants_magicbytes = new Uint8Array([0x66, 0x67, 0x62, 0x03, 0x66, 0x67, 0x62, 0x00]); var SIZE_PREFIX_LEN = 4; -;// ./node_modules/flatgeobuf/lib/mjs/http-reader.js +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/http-reader.js function http_reader_typeof(o) { "@babel/helpers - typeof"; return http_reader_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, http_reader_typeof(o); } function http_reader_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = http_reader_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function http_reader_regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(http_reader_typeof(e) + " is not iterable"); } function http_reader_slicedToArray(r, e) { return http_reader_arrayWithHoles(r) || http_reader_iterableToArrayLimit(r, e) || http_reader_unsupportedIterableToArray(r, e) || http_reader_nonIterableRest(); } function http_reader_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function http_reader_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return http_reader_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? http_reader_arrayLikeToArray(r, a) : void 0; } } function http_reader_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function http_reader_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function http_reader_arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function http_reader_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return http_reader_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (http_reader_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, http_reader_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, http_reader_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), http_reader_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", http_reader_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), http_reader_regeneratorDefine2(u), http_reader_regeneratorDefine2(u, o, "Generator"), http_reader_regeneratorDefine2(u, n, function () { return this; }), http_reader_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (http_reader_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function http_reader_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } http_reader_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { http_reader_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, http_reader_regeneratorDefine2(e, r, n, t); } +function http_reader_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ http_reader_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == http_reader_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(http_reader_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function http_reader_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function http_reader_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { http_reader_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { http_reader_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function http_reader_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -63649,7 +63587,7 @@ function http_reader_createClass(e, r, t) { return r && http_reader_defineProper function http_reader_toPropertyKey(t) { var i = http_reader_toPrimitive(t, "string"); return "symbol" == http_reader_typeof(i) ? i : i + ""; } function http_reader_toPrimitive(t, r) { if ("object" != http_reader_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != http_reader_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function http_reader_wrapAsyncGenerator(e) { return function () { return new http_reader_AsyncGenerator(e.apply(this, arguments)); }; } -function http_reader_AsyncGenerator(e) { var t, n; function resume(t, n) { try { var r = e[t](n), o = r.value, u = o instanceof http_reader_OverloadYield; Promise.resolve(u ? o.v : o).then(function (n) { if (u) { var i = "return" === t && o.k ? t : "next"; if (!o.k || n.done) return resume(i, n); n = e[i](n).value; } settle(!!r.done, n); }, function (e) { resume("throw", e); }); } catch (e) { settle(2, e); } } function settle(e, r) { 2 === e ? t.reject(r) : t.resolve({ value: r, done: e }), (t = t.next) ? resume(t.key, t.arg) : n = null; } this._invoke = function (e, r) { return new Promise(function (o, u) { var i = { key: e, arg: r, resolve: o, reject: u, next: null }; n ? n = n.next = i : (t = n = i, resume(e, r)); }); }, "function" != typeof e["return"] && (this["return"] = void 0); } +function http_reader_AsyncGenerator(e) { var r, t; function resume(r, t) { try { var n = e[r](t), o = n.value, u = o instanceof http_reader_OverloadYield; Promise.resolve(u ? o.v : o).then(function (t) { if (u) { var i = "return" === r ? "return" : "next"; if (!o.k || t.done) return resume(i, t); t = e[i](t).value; } settle(n.done ? "return" : "normal", t); }, function (e) { resume("throw", e); }); } catch (e) { settle("throw", e); } } function settle(e, n) { switch (e) { case "return": r.resolve({ value: n, done: !0 }); break; case "throw": r.reject(n); break; default: r.resolve({ value: n, done: !1 }); } (r = r.next) ? resume(r.key, r.arg) : t = null; } this._invoke = function (e, n) { return new Promise(function (o, u) { var i = { key: e, arg: n, resolve: o, reject: u, next: null }; t ? t = t.next = i : (r = t = i, resume(e, n)); }); }, "function" != typeof e["return"] && (this["return"] = void 0); } http_reader_AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; }, http_reader_AsyncGenerator.prototype.next = function (e) { return this._invoke("next", e); }, http_reader_AsyncGenerator.prototype["throw"] = function (e) { return this._invoke("throw", e); }, http_reader_AsyncGenerator.prototype["return"] = function (e) { return this._invoke("return", e); }; function http_reader_awaitAsyncGenerator(e) { return new http_reader_OverloadYield(e, 0); } function _asyncGeneratorDelegate(t) { var e = {}, n = !1; function pump(e, r) { return n = !0, r = new Promise(function (n) { n(t[e](r)); }), { done: !1, value: new http_reader_OverloadYield(r, 1) }; } return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function () { return this; }, e.next = function (t) { return n ? (n = !1, t) : pump("next", t); }, "function" == typeof t["throw"] && (e["throw"] = function (t) { if (n) throw n = !1, t; return pump("throw", t); }), "function" == typeof t["return"] && (e["return"] = function (t) { return n ? (n = !1, t) : pump("return", t); }), e; } @@ -63677,21 +63615,24 @@ var HttpReader = /*#__PURE__*/function () { key: "selectBbox", value: function selectBbox(rect) { var _this = this; - return http_reader_wrapAsyncGenerator(/*#__PURE__*/http_reader_regenerator().m(function _callee2() { - var lengthBeforeTree, bufferedClient, readNode, batches, currentBatch, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, searchResult, _searchResult, featureOffset, _searchResult2, featureLength, prevFeature, gap, promises, _t; - return http_reader_regenerator().w(function (_context2) { - while (1) switch (_context2.p = _context2.n) { + return http_reader_wrapAsyncGenerator(/*#__PURE__*/http_reader_regeneratorRuntime().mark(function _callee2() { + var lengthBeforeTree, bufferedClient, readNode, batches, currentBatch, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, searchResult, _searchResult, featureOffset, _searchResult2, featureLength, prevFeature, gap, promises; + return http_reader_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: lengthBeforeTree = _this.lengthBeforeTree(); bufferedClient = _this.headerClient; readNode = /*#__PURE__*/function () { - var _ref = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regenerator().m(function _callee(offsetIntoTree, size) { + var _ref = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regeneratorRuntime().mark(function _callee(offsetIntoTree, size) { var minReqLength; - return http_reader_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return http_reader_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: minReqLength = 0; - return _context.a(2, bufferedClient.getRange(lengthBeforeTree + offsetIntoTree, size, minReqLength, 'index')); + return _context.abrupt("return", bufferedClient.getRange(lengthBeforeTree + offsetIntoTree, size, minReqLength, 'index')); + case 2: + case "end": + return _context.stop(); } }, _callee); })); @@ -63703,14 +63644,14 @@ var HttpReader = /*#__PURE__*/function () { currentBatch = []; _iteratorAbruptCompletion = false; _didIteratorError = false; - _context2.p = 1; + _context2.prev = 7; _iterator = _asyncIterator(streamSearch(_this.header.featuresCount, _this.header.indexNodeSize, rect, readNode)); - case 2: - _context2.n = 3; + case 9: + _context2.next = 11; return http_reader_awaitAsyncGenerator(_iterator.next()); - case 3: - if (!(_iteratorAbruptCompletion = !(_step = _context2.v).done)) { - _context2.n = 6; + case 11: + if (!(_iteratorAbruptCompletion = !(_step = _context2.sent).done)) { + _context2.next = 26; break; } searchResult = _step.value; @@ -63721,12 +63662,12 @@ var HttpReader = /*#__PURE__*/function () { featureLength = 4; } if (!(currentBatch.length == 0)) { - _context2.n = 4; + _context2.next = 19; break; } currentBatch.push([featureOffset, featureLength]); - return _context2.a(3, 5); - case 4: + return _context2.abrupt("continue", 23); + case 19: prevFeature = currentBatch[currentBatch.length - 1]; gap = featureOffset - (prevFeature[0] + prevFeature[1]); if (gap > config.global.extraRequestThreshold()) { @@ -63735,39 +63676,39 @@ var HttpReader = /*#__PURE__*/function () { currentBatch = []; } currentBatch.push([featureOffset, featureLength]); - case 5: + case 23: _iteratorAbruptCompletion = false; - _context2.n = 2; + _context2.next = 9; break; - case 6: - _context2.n = 8; + case 26: + _context2.next = 32; break; - case 7: - _context2.p = 7; - _t = _context2.v; + case 28: + _context2.prev = 28; + _context2.t0 = _context2["catch"](7); _didIteratorError = true; - _iteratorError = _t; - case 8: - _context2.p = 8; - _context2.p = 9; + _iteratorError = _context2.t0; + case 32: + _context2.prev = 32; + _context2.prev = 33; if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) { - _context2.n = 10; + _context2.next = 37; break; } - _context2.n = 10; + _context2.next = 37; return http_reader_awaitAsyncGenerator(_iterator["return"]()); - case 10: - _context2.p = 10; + case 37: + _context2.prev = 37; if (!_didIteratorError) { - _context2.n = 11; + _context2.next = 40; break; } throw _iteratorError; - case 11: - return _context2.f(10); - case 12: - return _context2.f(8); - case 13: + case 40: + return _context2.finish(37); + case 41: + return _context2.finish(32); + case 42: _this.headerClient.logUsage('header+index'); if (currentBatch.length > 0) { batches.push(currentBatch); @@ -63775,17 +63716,18 @@ var HttpReader = /*#__PURE__*/function () { promises = batches.flatMap(function (batch) { return _this.readFeatureBatch(batch, _this.nocache); }); - return _context2.d(http_reader_regeneratorValues(_asyncGeneratorDelegate(_asyncIterator(Repeater.merge(promises)), http_reader_awaitAsyncGenerator)), 14); - case 14: - return _context2.a(2); + return _context2.delegateYield(_asyncGeneratorDelegate(_asyncIterator(Repeater.merge(promises)), http_reader_awaitAsyncGenerator), "t1", 46); + case 46: + case "end": + return _context2.stop(); } - }, _callee2, null, [[9,, 10, 12], [1, 7, 8, 13]]); + }, _callee2, null, [[7, 28, 32, 42], [33,, 37, 41]]); }))(); } }, { key: "lengthBeforeTree", value: function lengthBeforeTree() { - return magicbytes.length + SIZE_PREFIX_LEN + this.headerLength; + return constants_magicbytes.length + SIZE_PREFIX_LEN + this.headerLength; } }, { key: "lengthBeforeFeatures", @@ -63801,10 +63743,10 @@ var HttpReader = /*#__PURE__*/function () { key: "readFeatureBatch", value: function readFeatureBatch(batch, nocache) { var _this2 = this; - return http_reader_wrapAsyncGenerator(/*#__PURE__*/http_reader_regenerator().m(function _callee3() { - var _batch$, firstFeatureOffset, _batch, lastFeatureOffset, lastFeatureLength, batchStart, batchEnd, batchSize, featureClient, minFeatureReqLength, _iterator2, _step2, _step2$value, featureOffset, _t2; - return http_reader_regenerator().w(function (_context3) { - while (1) switch (_context3.p = _context3.n) { + return http_reader_wrapAsyncGenerator(/*#__PURE__*/http_reader_regeneratorRuntime().mark(function _callee3() { + var _batch$, firstFeatureOffset, _batch, lastFeatureOffset, lastFeatureLength, batchStart, batchEnd, batchSize, featureClient, minFeatureReqLength, _iterator2, _step2, _step2$value, featureOffset; + return http_reader_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: _batch$ = http_reader_slicedToArray(batch[0], 1), firstFeatureOffset = _batch$[0]; _batch = http_reader_slicedToArray(batch[batch.length - 1], 2), lastFeatureOffset = _batch[0], lastFeatureLength = _batch[1]; @@ -63814,67 +63756,71 @@ var HttpReader = /*#__PURE__*/function () { featureClient = _this2.buildFeatureClient(nocache); minFeatureReqLength = batchSize; _iterator2 = http_reader_createForOfIteratorHelper(batch); - _context3.p = 1; + _context3.prev = 8; _iterator2.s(); - case 2: + case 10: if ((_step2 = _iterator2.n()).done) { - _context3.n = 6; + _context3.next = 19; break; } _step2$value = http_reader_slicedToArray(_step2.value, 1), featureOffset = _step2$value[0]; - _context3.n = 3; + _context3.next = 14; return http_reader_awaitAsyncGenerator(_this2.readFeature(featureClient, featureOffset, minFeatureReqLength)); - case 3: - _context3.n = 4; - return _context3.v; - case 4: + case 14: + _context3.next = 16; + return _context3.sent; + case 16: minFeatureReqLength = 0; - case 5: - _context3.n = 2; + case 17: + _context3.next = 10; break; - case 6: - _context3.n = 8; + case 19: + _context3.next = 24; break; - case 7: - _context3.p = 7; - _t2 = _context3.v; - _iterator2.e(_t2); - case 8: - _context3.p = 8; + case 21: + _context3.prev = 21; + _context3.t0 = _context3["catch"](8); + _iterator2.e(_context3.t0); + case 24: + _context3.prev = 24; _iterator2.f(); - return _context3.f(8); - case 9: + return _context3.finish(24); + case 27: featureClient.logUsage('feature'); - case 10: - return _context3.a(2); + case 28: + case "end": + return _context3.stop(); } - }, _callee3, null, [[1, 7, 8, 9]]); + }, _callee3, null, [[8, 21, 24, 27]]); }))(); } }, { key: "readFeature", value: function () { - var _readFeature = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regenerator().m(function _callee4(featureClient, featureOffset, minFeatureReqLength) { + var _readFeature = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regeneratorRuntime().mark(function _callee4(featureClient, featureOffset, minFeatureReqLength) { var offset, featureLength, _bytes, byteBuffer, bytes, bytesAligned, bb; - return http_reader_regenerator().w(function (_context4) { - while (1) switch (_context4.n) { + return http_reader_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: offset = featureOffset + this.lengthBeforeFeatures(); - _context4.n = 1; + _context4.next = 3; return featureClient.getRange(offset, 4, minFeatureReqLength, 'feature length'); - case 1: - _bytes = _context4.v; + case 3: + _bytes = _context4.sent; featureLength = new DataView(_bytes).getUint32(0, true); - _context4.n = 2; + _context4.next = 7; return featureClient.getRange(offset + 4, featureLength, minFeatureReqLength, 'feature data'); - case 2: - byteBuffer = _context4.v; + case 7: + byteBuffer = _context4.sent; bytes = new Uint8Array(byteBuffer); bytesAligned = new Uint8Array(featureLength + SIZE_PREFIX_LEN); bytesAligned.set(bytes, SIZE_PREFIX_LEN); - bb = new ByteBuffer(bytesAligned); + bb = new byte_buffer_ByteBuffer(bytesAligned); bb.setPosition(SIZE_PREFIX_LEN); - return _context4.a(2, feature_Feature.getRootAsFeature(bb)); + return _context4.abrupt("return", feature_Feature.getRootAsFeature(bb)); + case 14: + case "end": + return _context4.stop(); } }, _callee4, this); })); @@ -63886,10 +63832,10 @@ var HttpReader = /*#__PURE__*/function () { }], [{ key: "open", value: function () { - var _open = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regenerator().m(function _callee5(url, nocache) { - var assumedHeaderLength, headerClient, assumedIndexLength, minReqLength, _bytes2, headerLength, _bytes3, HEADER_MAX_BUFFER_SIZE, bytes, bb, header, indexLength, _t3, _t4; - return http_reader_regenerator().w(function (_context5) { - while (1) switch (_context5.n) { + var _open = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regeneratorRuntime().mark(function _callee5(url, nocache) { + var assumedHeaderLength, headerClient, assumedIndexLength, minReqLength, _bytes2, headerLength, _bytes3, HEADER_MAX_BUFFER_SIZE, bytes, bb, header, indexLength; + return http_reader_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { case 0: assumedHeaderLength = 2024; headerClient = new BufferedHttpRangeClient(url, nocache); @@ -63906,44 +63852,47 @@ var HttpReader = /*#__PURE__*/function () { }(); minReqLength = assumedHeaderLength + assumedIndexLength; logger.debug("fetching header. minReqLength: ".concat(minReqLength, " (assumedHeaderLength: ").concat(assumedHeaderLength, ", assumedIndexLength: ").concat(assumedIndexLength, ")")); - _t3 = Uint8Array; - _context5.n = 1; + _context5.t0 = Uint8Array; + _context5.next = 8; return headerClient.getRange(0, 8, minReqLength, 'header'); - case 1: - _t4 = _context5.v; - _bytes2 = new _t3(_t4); + case 8: + _context5.t1 = _context5.sent; + _bytes2 = new _context5.t0(_context5.t1); if (_bytes2.subarray(0, 3).every(function (v, i) { - return magicbytes[i] === v; + return constants_magicbytes[i] === v; })) { - _context5.n = 2; + _context5.next = 13; break; } - logger.error("bytes: ".concat(_bytes2, " != ").concat(magicbytes)); + logger.error("bytes: ".concat(_bytes2, " != ").concat(constants_magicbytes)); throw new Error('Not a FlatGeobuf file'); - case 2: + case 13: logger.debug('magic bytes look good'); - _context5.n = 3; + _context5.next = 16; return headerClient.getRange(8, 4, minReqLength, 'header'); - case 3: - _bytes3 = _context5.v; + case 16: + _bytes3 = _context5.sent; headerLength = new DataView(_bytes3).getUint32(0, true); HEADER_MAX_BUFFER_SIZE = 1048576 * 10; if (!(headerLength > HEADER_MAX_BUFFER_SIZE || headerLength < 8)) { - _context5.n = 4; + _context5.next = 21; break; } throw new Error('Invalid header size'); - case 4: + case 21: logger.debug("headerLength: ".concat(headerLength)); - _context5.n = 5; + _context5.next = 24; return headerClient.getRange(12, headerLength, minReqLength, 'header'); - case 5: - bytes = _context5.v; - bb = new ByteBuffer(new Uint8Array(bytes)); + case 24: + bytes = _context5.sent; + bb = new byte_buffer_ByteBuffer(new Uint8Array(bytes)); header = fromByteBuffer(bb); indexLength = calcTreeSize(header.featuresCount, header.indexNodeSize); logger.debug('completed: opening http reader'); - return _context5.a(2, new HttpReader(headerClient, header, headerLength, indexLength, nocache)); + return _context5.abrupt("return", new HttpReader(headerClient, header, headerLength, indexLength, nocache)); + case 30: + case "end": + return _context5.stop(); } }, _callee5); })); @@ -63972,33 +63921,36 @@ var BufferedHttpRangeClient = /*#__PURE__*/function () { return http_reader_createClass(BufferedHttpRangeClient, [{ key: "getRange", value: function () { - var _getRange = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regenerator().m(function _callee6(start, length, minReqLength, purpose) { + var _getRange = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regeneratorRuntime().mark(function _callee6(start, length, minReqLength, purpose) { var start_i, end_i, lengthToFetch; - return http_reader_regenerator().w(function (_context6) { - while (1) switch (_context6.n) { + return http_reader_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { case 0: this.bytesEverUsed += length; start_i = start - this.head; end_i = start_i + length; if (!(start_i >= 0 && end_i <= this.buffer.byteLength)) { - _context6.n = 1; + _context6.next = 5; break; } - return _context6.a(2, this.buffer.slice(start_i, end_i)); - case 1: + return _context6.abrupt("return", this.buffer.slice(start_i, end_i)); + case 5: lengthToFetch = Math.max(length, minReqLength); this.bytesEverFetched += lengthToFetch; logger.debug("requesting for new Range: ".concat(start, "-").concat(start + lengthToFetch - 1)); - _context6.n = 2; + _context6.next = 10; return this.httpClient.getRange(start, lengthToFetch, purpose); - case 2: - this.buffer = _context6.v; + case 10: + this.buffer = _context6.sent; this.head = start; - return _context6.a(2, this.buffer.slice(0, length)); + return _context6.abrupt("return", this.buffer.slice(0, length)); + case 13: + case "end": + return _context6.stop(); } }, _callee6, this); })); - function getRange(_x8, _x9, _x0, _x1) { + function getRange(_x8, _x9, _x10, _x11) { return _getRange.apply(this, arguments); } return getRange; @@ -64025,10 +63977,10 @@ var HttpRangeClient = /*#__PURE__*/function () { return http_reader_createClass(HttpRangeClient, [{ key: "getRange", value: function () { - var _getRange2 = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regenerator().m(function _callee7(begin, length, purpose) { + var _getRange2 = http_reader_asyncToGenerator(/*#__PURE__*/http_reader_regeneratorRuntime().mark(function _callee7(begin, length, purpose) { var range, headers, response; - return http_reader_regenerator().w(function (_context7) { - while (1) switch (_context7.n) { + return http_reader_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { case 0: this.requestsEverMade += 1; this.bytesEverRequested += length; @@ -64038,26 +63990,27 @@ var HttpRangeClient = /*#__PURE__*/function () { Range: range }; if (this.nocache) headers['Cache-Control'] = 'no-cache, no-store'; - _context7.n = 1; + _context7.next = 8; return fetch(this.url, { headers: headers }); - case 1: - response = _context7.v; - return _context7.a(2, response.arrayBuffer()); + case 8: + response = _context7.sent; + return _context7.abrupt("return", response.arrayBuffer()); + case 10: + case "end": + return _context7.stop(); } }, _callee7, this); })); - function getRange(_x10, _x11, _x12) { + function getRange(_x12, _x13, _x14) { return _getRange2.apply(this, arguments); } return getRange; }() }]); }(); -;// ./node_modules/flatgeobuf/lib/mjs/generic/header.js -/* unused harmony import specifier */ var header_GeometryType; -/* unused harmony import specifier */ var header_toGeometryType; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/generic/header.js function header_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = header_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function header_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return header_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? header_arrayLikeToArray(r, a) : void 0; } } function header_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } @@ -64065,26 +64018,26 @@ function header_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.l function featureGeomType(feature) { if (feature.getGeometry) { - return header_toGeometryType(feature.getGeometry().getType()); + return toGeometryType(feature.getGeometry().getType()); } else { - return header_toGeometryType(feature.geometry.type); + return toGeometryType(feature.geometry.type); } } -function inferGeometryType(features) { +function header_inferGeometryType(features) { var geometryType = undefined; var _iterator = header_createForOfIteratorHelper(features), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var f = _step.value; - if (geometryType === header_GeometryType.Unknown) { + if (geometryType === GeometryType.Unknown) { break; } var gtype = featureGeomType(f); if (geometryType === undefined) { geometryType = gtype; } else if (geometryType !== gtype) { - geometryType = header_GeometryType.Unknown; + geometryType = GeometryType.Unknown; } } } catch (err) { @@ -64097,19 +64050,9 @@ function inferGeometryType(features) { } return geometryType; } -;// ./node_modules/flatgeobuf/lib/mjs/generic/featurecollection.js -/* unused harmony import specifier */ var featurecollection_flatbuffers; -/* unused harmony import specifier */ var featurecollection_Header; -/* unused harmony import specifier */ var featurecollection_Column; -/* unused harmony import specifier */ var featurecollection_ColumnType; -/* unused harmony import specifier */ var featurecollection_buildFeature; -/* unused harmony import specifier */ var featurecollection_parseGeometry; -/* unused harmony import specifier */ var featurecollection_magicbytes; -/* unused harmony import specifier */ var featurecollection_inferGeometryType; -/* unused harmony import specifier */ var featurecollection_Crs; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/generic/featurecollection.js function featurecollection_typeof(o) { "@babel/helpers - typeof"; return featurecollection_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, featurecollection_typeof(o); } -function featurecollection_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return featurecollection_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (featurecollection_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, featurecollection_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, featurecollection_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), featurecollection_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", featurecollection_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), featurecollection_regeneratorDefine2(u), featurecollection_regeneratorDefine2(u, o, "Generator"), featurecollection_regeneratorDefine2(u, n, function () { return this; }), featurecollection_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (featurecollection_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function featurecollection_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } featurecollection_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { featurecollection_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, featurecollection_regeneratorDefine2(e, r, n, t); } +function featurecollection_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ featurecollection_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == featurecollection_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(featurecollection_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function featurecollection_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function featurecollection_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { featurecollection_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { featurecollection_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function featurecollection_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = featurecollection_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } @@ -64119,7 +64062,7 @@ function featurecollection_asyncIterator(r) { var n, t, o, e = 2; for ("undefine function featurecollection_AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return featurecollection_AsyncFromSyncIterator = function AsyncFromSyncIterator(r) { this.s = r, this.n = r.next; }, featurecollection_AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, "return": function _return(r) { var n = this.s["return"]; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, "throw": function _throw(r) { var n = this.s["return"]; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new featurecollection_AsyncFromSyncIterator(r); } function featurecollection_awaitAsyncGenerator(e) { return new featurecollection_OverloadYield(e, 0); } function featurecollection_wrapAsyncGenerator(e) { return function () { return new featurecollection_AsyncGenerator(e.apply(this, arguments)); }; } -function featurecollection_AsyncGenerator(e) { var t, n; function resume(t, n) { try { var r = e[t](n), o = r.value, u = o instanceof featurecollection_OverloadYield; Promise.resolve(u ? o.v : o).then(function (n) { if (u) { var i = "return" === t && o.k ? t : "next"; if (!o.k || n.done) return resume(i, n); n = e[i](n).value; } settle(!!r.done, n); }, function (e) { resume("throw", e); }); } catch (e) { settle(2, e); } } function settle(e, r) { 2 === e ? t.reject(r) : t.resolve({ value: r, done: e }), (t = t.next) ? resume(t.key, t.arg) : n = null; } this._invoke = function (e, r) { return new Promise(function (o, u) { var i = { key: e, arg: r, resolve: o, reject: u, next: null }; n ? n = n.next = i : (t = n = i, resume(e, r)); }); }, "function" != typeof e["return"] && (this["return"] = void 0); } +function featurecollection_AsyncGenerator(e) { var r, t; function resume(r, t) { try { var n = e[r](t), o = n.value, u = o instanceof featurecollection_OverloadYield; Promise.resolve(u ? o.v : o).then(function (t) { if (u) { var i = "return" === r ? "return" : "next"; if (!o.k || t.done) return resume(i, t); t = e[i](t).value; } settle(n.done ? "return" : "normal", t); }, function (e) { resume("throw", e); }); } catch (e) { settle("throw", e); } } function settle(e, n) { switch (e) { case "return": r.resolve({ value: n, done: !0 }); break; case "throw": r.reject(n); break; default: r.resolve({ value: n, done: !1 }); } (r = r.next) ? resume(r.key, r.arg) : t = null; } this._invoke = function (e, n) { return new Promise(function (o, u) { var i = { key: e, arg: n, resolve: o, reject: u, next: null }; t ? t = t.next = i : (r = t = i, resume(e, n)); }); }, "function" != typeof e["return"] && (this["return"] = void 0); } featurecollection_AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; }, featurecollection_AsyncGenerator.prototype.next = function (e) { return this._invoke("next", e); }, featurecollection_AsyncGenerator.prototype["throw"] = function (e) { return this._invoke("throw", e); }, featurecollection_AsyncGenerator.prototype["return"] = function (e) { return this._invoke("return", e); }; function featurecollection_OverloadYield(e, d) { this.v = e, this.k = d; } @@ -64139,20 +64082,20 @@ function featurecollection_OverloadYield(e, d) { this.v = e, this.k = d; } function serialize(features) { var headerMeta = introspectHeaderMeta(features); - var header = buildHeader(headerMeta); + var header = featurecollection_buildHeader(headerMeta); var featureBuffers = features.map(function (f) { if (!f.getGeometry) throw new Error('Missing getGeometry implementation'); if (!f.getProperties) throw new Error('Missing getProperties implementation'); - return featurecollection_buildFeature(featurecollection_parseGeometry(f.getGeometry(), headerMeta.geometryType), f.getProperties(), headerMeta); + return buildFeature(parseGeometry(f.getGeometry(), headerMeta.geometryType), f.getProperties(), headerMeta); }); var featuresLength = featureBuffers.map(function (f) { return f.length; }).reduce(function (a, b) { return a + b; }); - var uint8 = new Uint8Array(featurecollection_magicbytes.length + header.length + featuresLength); - uint8.set(header, featurecollection_magicbytes.length); - var offset = featurecollection_magicbytes.length + header.length; + var uint8 = new Uint8Array(magicbytes.length + header.length + featuresLength); + uint8.set(header, magicbytes.length); + var offset = magicbytes.length + header.length; var _iterator2 = featurecollection_createForOfIteratorHelper(featureBuffers), _step2; try { @@ -64166,19 +64109,19 @@ function serialize(features) { } finally { _iterator2.f(); } - uint8.set(featurecollection_magicbytes); + uint8.set(magicbytes); return uint8; } function deserialize(bytes, fromFeature, headerMetaFn) { if (!bytes.subarray(0, 3).every(function (v, i) { - return magicbytes[i] === v; + return constants_magicbytes[i] === v; })) throw new Error('Not a FlatGeobuf file'); - var bb = new ByteBuffer(bytes); - var headerLength = bb.readUint32(magicbytes.length); - bb.setPosition(magicbytes.length + SIZE_PREFIX_LEN); + var bb = new byte_buffer_ByteBuffer(bytes); + var headerLength = bb.readUint32(constants_magicbytes.length); + bb.setPosition(constants_magicbytes.length + SIZE_PREFIX_LEN); var headerMeta = fromByteBuffer(bb); if (headerMetaFn) headerMetaFn(headerMeta); - var offset = magicbytes.length + SIZE_PREFIX_LEN + headerLength; + var offset = constants_magicbytes.length + SIZE_PREFIX_LEN + headerLength; var indexNodeSize = headerMeta.indexNodeSize, featuresCount = headerMeta.featuresCount; if (indexNodeSize > 0) offset += calcTreeSize(featuresCount, indexNodeSize); @@ -64196,21 +64139,24 @@ function deserializeStream(_x, _x2, _x3) { return _deserializeStream.apply(this, arguments); } function _deserializeStream() { - _deserializeStream = featurecollection_wrapAsyncGenerator(/*#__PURE__*/featurecollection_regenerator().m(function _callee2(stream, fromFeature, headerMetaFn) { - var reader, read, bytes, bb, headerLength, headerMeta, indexNodeSize, featuresCount, treeSize, feature, _t, _t2, _t3, _t4, _t5, _t6; - return featurecollection_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + _deserializeStream = featurecollection_wrapAsyncGenerator(/*#__PURE__*/featurecollection_regeneratorRuntime().mark(function _callee2(stream, fromFeature, headerMetaFn) { + var reader, read, bytes, bb, headerLength, headerMeta, indexNodeSize, featuresCount, treeSize, feature; + return featurecollection_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: reader = slice_source_slice(stream); read = /*#__PURE__*/function () { - var _ref = featurecollection_asyncToGenerator(/*#__PURE__*/featurecollection_regenerator().m(function _callee(size) { - return featurecollection_regenerator().w(function (_context) { - while (1) switch (_context.n) { + var _ref = featurecollection_asyncToGenerator(/*#__PURE__*/featurecollection_regeneratorRuntime().mark(function _callee(size) { + return featurecollection_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - _context.n = 1; + _context.next = 2; return reader.slice(size); - case 1: - return _context.a(2, _context.v); + case 2: + return _context.abrupt("return", _context.sent); + case 3: + case "end": + return _context.stop(); } }, _callee); })); @@ -64218,60 +64164,61 @@ function _deserializeStream() { return _ref.apply(this, arguments); }; }(); - _t = Uint8Array; - _context2.n = 1; + _context2.t0 = Uint8Array; + _context2.next = 5; return featurecollection_awaitAsyncGenerator(read(8, 'magic bytes')); - case 1: - _t2 = _context2.v; - bytes = new _t(_t2); + case 5: + _context2.t1 = _context2.sent; + bytes = new _context2.t0(_context2.t1); if (bytes.subarray(0, 3).every(function (v, i) { - return magicbytes[i] === v; + return constants_magicbytes[i] === v; })) { - _context2.n = 2; + _context2.next = 9; break; } throw new Error('Not a FlatGeobuf file'); - case 2: - _t3 = Uint8Array; - _context2.n = 3; + case 9: + _context2.t2 = Uint8Array; + _context2.next = 12; return featurecollection_awaitAsyncGenerator(read(4, 'header length')); - case 3: - _t4 = _context2.v; - bytes = new _t3(_t4); - bb = new ByteBuffer(bytes); + case 12: + _context2.t3 = _context2.sent; + bytes = new _context2.t2(_context2.t3); + bb = new byte_buffer_ByteBuffer(bytes); headerLength = bb.readUint32(0); - _t5 = Uint8Array; - _context2.n = 4; + _context2.t4 = Uint8Array; + _context2.next = 19; return featurecollection_awaitAsyncGenerator(read(headerLength, 'header data')); - case 4: - _t6 = _context2.v; - bytes = new _t5(_t6); - bb = new ByteBuffer(bytes); + case 19: + _context2.t5 = _context2.sent; + bytes = new _context2.t4(_context2.t5); + bb = new byte_buffer_ByteBuffer(bytes); headerMeta = fromByteBuffer(bb); if (headerMetaFn) headerMetaFn(headerMeta); indexNodeSize = headerMeta.indexNodeSize, featuresCount = headerMeta.featuresCount; if (!(indexNodeSize > 0)) { - _context2.n = 5; + _context2.next = 29; break; } treeSize = calcTreeSize(featuresCount, indexNodeSize); - _context2.n = 5; + _context2.next = 29; return featurecollection_awaitAsyncGenerator(read(treeSize, 'entire index, w/o rect')); - case 5: - _context2.n = 6; + case 29: + _context2.next = 31; return featurecollection_awaitAsyncGenerator(readFeature(read, headerMeta, fromFeature)); - case 6: - if (!(feature = _context2.v)) { - _context2.n = 8; + case 31: + if (!(feature = _context2.sent)) { + _context2.next = 36; break; } - _context2.n = 7; + _context2.next = 34; return feature; - case 7: - _context2.n = 5; + case 34: + _context2.next = 29; break; - case 8: - return _context2.a(2); + case 36: + case "end": + return _context2.stop(); } }, _callee2); })); @@ -64283,107 +64230,111 @@ function deserializeFiltered(_x4, _x5, _x6, _x7) { function _deserializeFiltered() { _deserializeFiltered = featurecollection_wrapAsyncGenerator(function (url, rect, fromFeature, headerMetaFn) { var nocache = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - return /*#__PURE__*/featurecollection_regenerator().m(function _callee3() { - var reader, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, feature, _t7; - return featurecollection_regenerator().w(function (_context3) { - while (1) switch (_context3.p = _context3.n) { + return /*#__PURE__*/featurecollection_regeneratorRuntime().mark(function _callee3() { + var reader, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, feature; + return featurecollection_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: - _context3.n = 1; + _context3.next = 2; return featurecollection_awaitAsyncGenerator(HttpReader.open(url, nocache)); - case 1: - reader = _context3.v; + case 2: + reader = _context3.sent; logger.debug('opened reader'); if (headerMetaFn) headerMetaFn(reader.header); _iteratorAbruptCompletion = false; _didIteratorError = false; - _context3.p = 2; + _context3.prev = 7; _iterator = featurecollection_asyncIterator(reader.selectBbox(rect)); - case 3: - _context3.n = 4; + case 9: + _context3.next = 11; return featurecollection_awaitAsyncGenerator(_iterator.next()); - case 4: - if (!(_iteratorAbruptCompletion = !(_step = _context3.v).done)) { - _context3.n = 6; + case 11: + if (!(_iteratorAbruptCompletion = !(_step = _context3.sent).done)) { + _context3.next = 18; break; } feature = _step.value; - _context3.n = 5; + _context3.next = 15; return fromFeature(feature, reader.header); - case 5: + case 15: _iteratorAbruptCompletion = false; - _context3.n = 3; + _context3.next = 9; break; - case 6: - _context3.n = 8; + case 18: + _context3.next = 24; break; - case 7: - _context3.p = 7; - _t7 = _context3.v; + case 20: + _context3.prev = 20; + _context3.t0 = _context3["catch"](7); _didIteratorError = true; - _iteratorError = _t7; - case 8: - _context3.p = 8; - _context3.p = 9; + _iteratorError = _context3.t0; + case 24: + _context3.prev = 24; + _context3.prev = 25; if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) { - _context3.n = 10; + _context3.next = 29; break; } - _context3.n = 10; + _context3.next = 29; return featurecollection_awaitAsyncGenerator(_iterator["return"]()); - case 10: - _context3.p = 10; + case 29: + _context3.prev = 29; if (!_didIteratorError) { - _context3.n = 11; + _context3.next = 32; break; } throw _iteratorError; - case 11: - return _context3.f(10); - case 12: - return _context3.f(8); - case 13: - return _context3.a(2); - } - }, _callee3, null, [[9,, 10, 12], [2, 7, 8, 13]]); + case 32: + return _context3.finish(29); + case 33: + return _context3.finish(24); + case 34: + case "end": + return _context3.stop(); + } + }, _callee3, null, [[7, 20, 24, 34], [25,, 29, 33]]); })(); }); return _deserializeFiltered.apply(this, arguments); } -function readFeature(_x9, _x0, _x1) { +function readFeature(_x9, _x10, _x11) { return _readFeature.apply(this, arguments); } function _readFeature() { - _readFeature = featurecollection_asyncToGenerator(/*#__PURE__*/featurecollection_regenerator().m(function _callee4(read, headerMeta, fromFeature) { - var bytes, bb, featureLength, bytesAligned, feature, _t8, _t9, _t0, _t1; - return featurecollection_regenerator().w(function (_context4) { - while (1) switch (_context4.n) { + _readFeature = featurecollection_asyncToGenerator(/*#__PURE__*/featurecollection_regeneratorRuntime().mark(function _callee4(read, headerMeta, fromFeature) { + var bytes, bb, featureLength, bytesAligned, feature; + return featurecollection_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: - _t8 = Uint8Array; - _context4.n = 1; + _context4.t0 = Uint8Array; + _context4.next = 3; return read(4, 'feature length'); - case 1: - _t9 = _context4.v; - bytes = new _t8(_t9); + case 3: + _context4.t1 = _context4.sent; + bytes = new _context4.t0(_context4.t1); if (!(bytes.byteLength === 0)) { - _context4.n = 2; + _context4.next = 7; break; } - return _context4.a(2); - case 2: - bb = new ByteBuffer(bytes); + return _context4.abrupt("return"); + case 7: + bb = new byte_buffer_ByteBuffer(bytes); featureLength = bb.readUint32(0); - _t0 = Uint8Array; - _context4.n = 3; + _context4.t2 = Uint8Array; + _context4.next = 12; return read(featureLength, 'feature data'); - case 3: - _t1 = _context4.v; - bytes = new _t0(_t1); + case 12: + _context4.t3 = _context4.sent; + bytes = new _context4.t2(_context4.t3); bytesAligned = new Uint8Array(featureLength + 4); bytesAligned.set(bytes, 4); - bb = new ByteBuffer(bytesAligned); + bb = new byte_buffer_ByteBuffer(bytesAligned); bb.setPosition(SIZE_PREFIX_LEN); feature = feature_Feature.getRootAsFeature(bb); - return _context4.a(2, fromFeature(feature, headerMeta)); + return _context4.abrupt("return", fromFeature(feature, headerMeta)); + case 20: + case "end": + return _context4.stop(); } }, _callee4); })); @@ -64391,42 +64342,42 @@ function _readFeature() { } function buildColumn(builder, column) { var nameOffset = builder.createString(column.name); - featurecollection_Column.startColumn(builder); - featurecollection_Column.addName(builder, nameOffset); - featurecollection_Column.addType(builder, column.type); - return featurecollection_Column.endColumn(builder); + Column.startColumn(builder); + Column.addName(builder, nameOffset); + Column.addType(builder, column.type); + return Column.endColumn(builder); } -function buildHeader(header) { +function featurecollection_buildHeader(header) { var crsCode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - var builder = new featurecollection_flatbuffers.Builder(); + var builder = new flatbuffers.Builder(); var columnOffsets = null; - if (header.columns) columnOffsets = featurecollection_Header.createColumnsVector(builder, header.columns.map(function (c) { + if (header.columns) columnOffsets = Header.createColumnsVector(builder, header.columns.map(function (c) { return buildColumn(builder, c); })); var nameOffset = builder.createString('L1'); var crsOffset; if (crsCode) { - featurecollection_Crs.startCrs(builder); - featurecollection_Crs.addCode(builder, crsCode); - crsOffset = featurecollection_Crs.endCrs(builder); - } - featurecollection_Header.startHeader(builder); - if (crsOffset) featurecollection_Header.addCrs(builder, crsOffset); - featurecollection_Header.addFeaturesCount(builder, BigInt(header.featuresCount)); - featurecollection_Header.addGeometryType(builder, header.geometryType); - featurecollection_Header.addIndexNodeSize(builder, 0); - if (columnOffsets) featurecollection_Header.addColumns(builder, columnOffsets); - featurecollection_Header.addName(builder, nameOffset); - var offset = featurecollection_Header.endHeader(builder); + Crs.startCrs(builder); + Crs.addCode(builder, crsCode); + crsOffset = Crs.endCrs(builder); + } + Header.startHeader(builder); + if (crsOffset) Header.addCrs(builder, crsOffset); + Header.addFeaturesCount(builder, BigInt(header.featuresCount)); + Header.addGeometryType(builder, header.geometryType); + Header.addIndexNodeSize(builder, 0); + if (columnOffsets) Header.addColumns(builder, columnOffsets); + Header.addName(builder, nameOffset); + var offset = Header.endHeader(builder); builder.finishSizePrefixed(offset); return builder.asUint8Array(); } function valueToType(value) { - if (typeof value === 'boolean') return featurecollection_ColumnType.Bool;else if (typeof value === 'number') { - if (value % 1 === 0) return featurecollection_ColumnType.Int;else return featurecollection_ColumnType.Double; - } else if (typeof value === 'string') return featurecollection_ColumnType.String;else if (value === null) return featurecollection_ColumnType.String;else if (featurecollection_typeof(value) === 'object') return featurecollection_ColumnType.Json;else throw new Error("Unknown type (value '".concat(value, "')")); + if (typeof value === 'boolean') return ColumnType.Bool;else if (typeof value === 'number') { + if (value % 1 === 0) return ColumnType.Int;else return ColumnType.Double; + } else if (typeof value === 'string') return ColumnType.String;else if (value === null) return ColumnType.String;else if (featurecollection_typeof(value) === 'object') return ColumnType.Json;else throw new Error("Unknown type (value '".concat(value, "')")); } -function mapColumn(properties, k) { +function featurecollection_mapColumn(properties, k) { return { name: k, type: valueToType(properties[k]), @@ -64447,9 +64398,9 @@ function introspectHeaderMeta(features) { if (properties) columns = Object.keys(properties).filter(function (key) { return key !== 'geometry'; }).map(function (k) { - return mapColumn(properties, k); + return featurecollection_mapColumn(properties, k); }); - var geometryType = featurecollection_inferGeometryType(features); + var geometryType = inferGeometryType(features); var headerMeta = { geometryType: geometryType, columns: columns, @@ -64463,14 +64414,7 @@ function introspectHeaderMeta(features) { }; return headerMeta; } -;// ./node_modules/flatgeobuf/lib/mjs/geojson/featurecollection.js -/* unused harmony import specifier */ var featurecollection_parseGC; -/* unused harmony import specifier */ var geojson_featurecollection_parseGeometry; -/* unused harmony import specifier */ var featurecollection_buildHeader; -/* unused harmony import specifier */ var featurecollection_mapColumn; -/* unused harmony import specifier */ var geojson_featurecollection_buildFeature; -/* unused harmony import specifier */ var geojson_featurecollection_magicbytes; -/* unused harmony import specifier */ var geojson_featurecollection_inferGeometryType; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/geojson/featurecollection.js function geojson_featurecollection_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = geojson_featurecollection_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function geojson_featurecollection_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return geojson_featurecollection_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? geojson_featurecollection_arrayLikeToArray(r, a) : void 0; } } function geojson_featurecollection_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } @@ -64483,18 +64427,18 @@ function geojson_featurecollection_arrayLikeToArray(r, a) { (null == a || a > r. function featurecollection_serialize(featurecollection) { var crsCode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; var headerMeta = featurecollection_introspectHeaderMeta(featurecollection); - var header = featurecollection_buildHeader(headerMeta, crsCode); + var header = buildHeader(headerMeta, crsCode); var features = featurecollection.features.map(function (f) { - return geojson_featurecollection_buildFeature(f.geometry.type === 'GeometryCollection' ? featurecollection_parseGC(f.geometry) : geojson_featurecollection_parseGeometry(f.geometry), f.properties, headerMeta); + return buildFeature(f.geometry.type === 'GeometryCollection' ? parseGC(f.geometry) : parseGeometry(f.geometry), f.properties, headerMeta); }); var featuresLength = features.map(function (f) { return f.length; }).reduce(function (a, b) { return a + b; }); - var uint8 = new Uint8Array(geojson_featurecollection_magicbytes.length + header.length + featuresLength); - uint8.set(header, geojson_featurecollection_magicbytes.length); - var offset = geojson_featurecollection_magicbytes.length + header.length; + var uint8 = new Uint8Array(magicbytes.length + header.length + featuresLength); + uint8.set(header, magicbytes.length); + var offset = magicbytes.length + header.length; var _iterator = geojson_featurecollection_createForOfIteratorHelper(features), _step; try { @@ -64508,7 +64452,7 @@ function featurecollection_serialize(featurecollection) { } finally { _iterator.f(); } - uint8.set(geojson_featurecollection_magicbytes); + uint8.set(magicbytes); return uint8; } function featurecollection_deserialize(bytes, headerMetaFn) { @@ -64530,9 +64474,9 @@ function featurecollection_introspectHeaderMeta(featurecollection) { var properties = feature.properties; var columns = null; if (properties) columns = Object.keys(properties).map(function (k) { - return featurecollection_mapColumn(properties, k); + return mapColumn(properties, k); }); - var geometryType = geojson_featurecollection_inferGeometryType(featurecollection.features); + var geometryType = inferGeometryType(featurecollection.features); var headerMeta = { geometryType: geometryType, columns: columns, @@ -64546,8 +64490,7 @@ function featurecollection_introspectHeaderMeta(featurecollection) { }; return headerMeta; } -;// ./node_modules/flatgeobuf/lib/mjs/geojson.js -/* unused harmony import specifier */ var fcSerialize; +;// CONCATENATED MODULE: ./node_modules/flatgeobuf/lib/mjs/geojson.js function geojson_serialize(geojson) { var crsCode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; @@ -64561,10 +64504,9 @@ function geojson_deserialize(input, rect, headerMetaFn) { // EXTERNAL MODULE: ./node_modules/rbush/index.js var rbush = __webpack_require__(833); var rbush_default = /*#__PURE__*/__webpack_require__.n(rbush); -;// ./src/common/overlay/fgb/FGBLayerRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/fgb/FGBLayerRenderer.js function FGBLayerRenderer_typeof(o) { "@babel/helpers - typeof"; return FGBLayerRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FGBLayerRenderer_typeof(o); } -function FGBLayerRenderer_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return FGBLayerRenderer_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (FGBLayerRenderer_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, FGBLayerRenderer_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, FGBLayerRenderer_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), FGBLayerRenderer_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", FGBLayerRenderer_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), FGBLayerRenderer_regeneratorDefine2(u), FGBLayerRenderer_regeneratorDefine2(u, o, "Generator"), FGBLayerRenderer_regeneratorDefine2(u, n, function () { return this; }), FGBLayerRenderer_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (FGBLayerRenderer_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function FGBLayerRenderer_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } FGBLayerRenderer_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { FGBLayerRenderer_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, FGBLayerRenderer_regeneratorDefine2(e, r, n, t); } +function FGBLayerRenderer_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ FGBLayerRenderer_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == FGBLayerRenderer_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(FGBLayerRenderer_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function FGBLayerRenderer_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function FGBLayerRenderer_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { FGBLayerRenderer_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { FGBLayerRenderer_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function FGBLayerRenderer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -64614,7 +64556,7 @@ var FGBLayerRenderer = /*#__PURE__*/function () { function FGBLayerRenderer() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; FGBLayerRenderer_classCallCheck(this, FGBLayerRenderer); - this.id = options.layerID ? options.layerID : Util.createUniqueID('FGBLayer_'); + this.id = options.layerID ? options.layerID : Util_Util.createUniqueID('FGBLayer_'); this.layerId = this.id + 'outer'; this.sourceId = this.layerId; this.options = options; @@ -64634,10 +64576,10 @@ var FGBLayerRenderer = /*#__PURE__*/function () { }, { key: "iterateFeatures", value: function () { - var _iterateFeatures = FGBLayerRenderer_asyncToGenerator(/*#__PURE__*/FGBLayerRenderer_regenerator().m(function _callee(iterator) { - var features, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, feature, _t; - return FGBLayerRenderer_regenerator().w(function (_context) { - while (1) switch (_context.p = _context.n) { + var _iterateFeatures = FGBLayerRenderer_asyncToGenerator(/*#__PURE__*/FGBLayerRenderer_regeneratorRuntime().mark(function _callee(iterator) { + var features, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, feature; + return FGBLayerRenderer_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: features = { type: 'FeatureCollection', @@ -64645,14 +64587,14 @@ var FGBLayerRenderer = /*#__PURE__*/function () { }; _iteratorAbruptCompletion = false; _didIteratorError = false; - _context.p = 1; + _context.prev = 3; _iterator = FGBLayerRenderer_asyncIterator(iterator); - case 2: - _context.n = 3; + case 5: + _context.next = 7; return _iterator.next(); - case 3: - if (!(_iteratorAbruptCompletion = !(_step = _context.v).done)) { - _context.n = 5; + case 7: + if (!(_iteratorAbruptCompletion = !(_step = _context.sent).done)) { + _context.next = 15; break; } feature = _step.value; @@ -64663,42 +64605,45 @@ var FGBLayerRenderer = /*#__PURE__*/function () { this.layerType = GEOMETRY_TYPE_MAP[feature.geometry.type]; } features.features.push(feature); - case 4: + case 12: _iteratorAbruptCompletion = false; - _context.n = 2; + _context.next = 5; break; - case 5: - _context.n = 7; + case 15: + _context.next = 21; break; - case 6: - _context.p = 6; - _t = _context.v; + case 17: + _context.prev = 17; + _context.t0 = _context["catch"](3); _didIteratorError = true; - _iteratorError = _t; - case 7: - _context.p = 7; - _context.p = 8; + _iteratorError = _context.t0; + case 21: + _context.prev = 21; + _context.prev = 22; if (!(_iteratorAbruptCompletion && _iterator["return"] != null)) { - _context.n = 9; + _context.next = 26; break; } - _context.n = 9; + _context.next = 26; return _iterator["return"](); - case 9: - _context.p = 9; + case 26: + _context.prev = 26; if (!_didIteratorError) { - _context.n = 10; + _context.next = 29; break; } throw _iteratorError; - case 10: - return _context.f(9); - case 11: - return _context.f(7); - case 12: - return _context.a(2, features); - } - }, _callee, this, [[8,, 9, 11], [1, 6, 7, 12]]); + case 29: + return _context.finish(26); + case 30: + return _context.finish(21); + case 31: + return _context.abrupt("return", features); + case 32: + case "end": + return _context.stop(); + } + }, _callee, this, [[3, 17, 21, 31], [22,, 26, 30]]); })); function iterateFeatures(_x) { return _iterateFeatures.apply(this, arguments); @@ -64708,11 +64653,11 @@ var FGBLayerRenderer = /*#__PURE__*/function () { }, { key: "_loadData", value: function () { - var _loadData2 = FGBLayerRenderer_asyncToGenerator(/*#__PURE__*/FGBLayerRenderer_regenerator().m(function _callee2(bounds) { + var _loadData2 = FGBLayerRenderer_asyncToGenerator(/*#__PURE__*/FGBLayerRenderer_regeneratorRuntime().mark(function _callee2(bounds) { var _this = this; var fgbStream, rect; - return FGBLayerRenderer_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + return FGBLayerRenderer_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: rect = { minX: bounds[0], @@ -64721,27 +64666,30 @@ var FGBLayerRenderer = /*#__PURE__*/function () { maxY: bounds[3] }; if (bounds.length) { - _context2.n = 2; + _context2.next = 7; break; } - _context2.n = 1; + _context2.next = 4; return this._getStream(this.url); - case 1: - fgbStream = _context2.v; - _context2.n = 3; + case 4: + fgbStream = _context2.sent; + _context2.next = 9; break; - case 2: + case 7: rect.value = { extent: bounds.slice() }; this.loadedExtentsRtree_.insert(rect); - case 3: - _context2.n = 4; + case 9: + _context2.next = 11; return geojson_deserialize(fgbStream && fgbStream.body || this.url, rect, function (headerMeta) { _this.layerType = GEOMETRY_TYPE_MAP[headerMeta.geometryType]; }); - case 4: - return _context2.a(2, _context2.v); + case 11: + return _context2.abrupt("return", _context2.sent); + case 12: + case "end": + return _context2.stop(); } }, _callee2, this); })); @@ -64753,18 +64701,21 @@ var FGBLayerRenderer = /*#__PURE__*/function () { }, { key: "_getStream", value: function () { - var _getStream2 = FGBLayerRenderer_asyncToGenerator(/*#__PURE__*/FGBLayerRenderer_regenerator().m(function _callee3(url) { - return FGBLayerRenderer_regenerator().w(function (_context3) { - while (1) switch (_context3.n) { + var _getStream2 = FGBLayerRenderer_asyncToGenerator(/*#__PURE__*/FGBLayerRenderer_regeneratorRuntime().mark(function _callee3(url) { + return FGBLayerRenderer_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: - _context3.n = 1; + _context3.next = 2; return FetchRequest.get(url, {}, { withoutFormatSuffix: true }).then(function (response) { return response; }); - case 1: - return _context3.a(2, _context3.v); + case 2: + return _context3.abrupt("return", _context3.sent); + case 3: + case "end": + return _context3.stop(); } }, _callee3); })); @@ -64811,10 +64762,9 @@ var FGBLayerRenderer = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/FGBLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/FGBLayer.js function FGBLayer_typeof(o) { "@babel/helpers - typeof"; return FGBLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FGBLayer_typeof(o); } -function FGBLayer_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return FGBLayer_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (FGBLayer_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, FGBLayer_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, FGBLayer_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), FGBLayer_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", FGBLayer_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), FGBLayer_regeneratorDefine2(u), FGBLayer_regeneratorDefine2(u, o, "Generator"), FGBLayer_regeneratorDefine2(u, n, function () { return this; }), FGBLayer_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (FGBLayer_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function FGBLayer_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } FGBLayer_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { FGBLayer_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, FGBLayer_regeneratorDefine2(e, r, n, t); } +function FGBLayer_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ FGBLayer_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == FGBLayer_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(FGBLayer_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function FGBLayer_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function FGBLayer_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { FGBLayer_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { FGBLayer_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function FGBLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -64886,7 +64836,7 @@ var FGBLayer = /*#__PURE__*/function () { function FGBLayer() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; FGBLayer_classCallCheck(this, FGBLayer); - this.id = options.layerID ? options.layerID : Util.createUniqueID('FGBLayer_'); + this.id = options.layerID ? options.layerID : Util_Util.createUniqueID('FGBLayer_'); this.layerId = this.id + 'outer'; this._sourceId = this.layerId; this.options = options; @@ -64989,19 +64939,19 @@ var FGBLayer = /*#__PURE__*/function () { }, { key: "_handleFeatures", value: function () { - var _handleFeatures2 = FGBLayer_asyncToGenerator(/*#__PURE__*/FGBLayer_regenerator().m(function _callee(bounds) { + var _handleFeatures2 = FGBLayer_asyncToGenerator(/*#__PURE__*/FGBLayer_regeneratorRuntime().mark(function _callee(bounds) { var iter, features, layer; - return FGBLayer_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return FGBLayer_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - _context.n = 1; + _context.next = 2; return this.renderer._loadData(bounds); - case 1: - iter = _context.v; - _context.n = 2; - return this.renderer.iterateFeatures(iter); case 2: - features = _context.v; + iter = _context.sent; + _context.next = 5; + return this.renderer.iterateFeatures(iter); + case 5: + features = _context.sent; if (!this.map.getSource(this._sourceId)) { this.map.addSource(this._sourceId, { type: 'geojson', @@ -65021,8 +64971,9 @@ var FGBLayer = /*#__PURE__*/function () { }); this.map.addLayer(layer); } - case 3: - return _context.a(2); + case 8: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -65034,11 +64985,11 @@ var FGBLayer = /*#__PURE__*/function () { }, { key: "_updateFeatures", value: function () { - var _updateFeatures2 = FGBLayer_asyncToGenerator(/*#__PURE__*/FGBLayer_regenerator().m(function _callee2() { + var _updateFeatures2 = FGBLayer_asyncToGenerator(/*#__PURE__*/FGBLayer_regeneratorRuntime().mark(function _callee2() { var _this = this; var bounds, extentToLoad, alreadyLoaded, iter, features; - return FGBLayer_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + return FGBLayer_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: bounds = this.map.getBounds().toArray(); extentToLoad = [bounds[0][0], bounds[0][1], bounds[1][0], bounds[1][1]]; @@ -65046,20 +64997,21 @@ var FGBLayer = /*#__PURE__*/function () { return _this.renderer._containsExtent(object.extent, extentToLoad); }); if (alreadyLoaded) { - _context2.n = 3; + _context2.next = 11; break; } - _context2.n = 1; + _context2.next = 6; return this.renderer._loadData(extentToLoad); - case 1: - iter = _context2.v; - _context2.n = 2; + case 6: + iter = _context2.sent; + _context2.next = 9; return this.renderer.iterateFeatures(iter); - case 2: - features = _context2.v; + case 9: + features = _context2.sent; this.map.getSource(this._sourceId).setData(features); - case 3: - return _context2.a(2); + case 11: + case "end": + return _context2.stop(); } }, _callee2, this); })); @@ -65070,14 +65022,14 @@ var FGBLayer = /*#__PURE__*/function () { }() }]); }(); -;// external "function(){try{return videojs}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return videojs}catch(e){return {}}}()" var external_function_try_return_videojs_catch_e_return_namespaceObject = function(){try{return videojs}catch(e){return {}}}(); var external_function_try_return_videojs_catch_e_return_default = /*#__PURE__*/__webpack_require__.n(external_function_try_return_videojs_catch_e_return_namespaceObject); -;// external "function(){try{return flvjs}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return flvjs}catch(e){return {}}}()" var external_function_try_return_flvjs_catch_e_return_namespaceObject = function(){try{return flvjs}catch(e){return {}}}(); -;// external "function(){try{return;}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return;}catch(e){return {}}}()" var external_function_try_return_catch_e_return_namespaceObject = function(){try{return;}catch(e){return {}}}(); -;// ./src/common/overlay/video/VideoLayerRenderer.js +;// CONCATENATED MODULE: ./src/common/overlay/video/VideoLayerRenderer.js function VideoLayerRenderer_typeof(o) { "@babel/helpers - typeof"; return VideoLayerRenderer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VideoLayerRenderer_typeof(o); } function VideoLayerRenderer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function VideoLayerRenderer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, VideoLayerRenderer_toPropertyKey(o.key), o); } } @@ -65203,9 +65155,9 @@ var VideoLayerRenderer = /*#__PURE__*/function () { } }]); }(); -;// external "function(){try{return turf}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return turf}catch(e){return {}}}()" var external_function_try_return_turf_catch_e_return_namespaceObject = function(){try{return turf}catch(e){return {}}}(); -;// ./src/mapboxgl/mapping/CoordTransfer.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/CoordTransfer.js function CoordTransfer_typeof(o) { "@babel/helpers - typeof"; return CoordTransfer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CoordTransfer_typeof(o); } function CoordTransfer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function CoordTransfer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, CoordTransfer_toPropertyKey(o.key), o); } } @@ -65283,6 +65235,15 @@ var CoordTransfer = /*#__PURE__*/function () { if (!this.cv) { return; } + if (this.rotationMatrix) { + this.rotationMatrix["delete"](); + } + if (this.translationMatrix) { + this.translationMatrix["delete"](); + } + if (this.k) { + this.k["delete"](); + } this.rotationMatrix = this.toRotationMatrix(pitch, roll, yaw); this.translationMatrix = this.toTranslationMatrix(x, y, z); this.k = this.toCameraMatrix(fx, fy, centerX, centerY); @@ -65310,9 +65271,15 @@ var CoordTransfer = /*#__PURE__*/function () { var ry = this.cv.matFromArray(3, 3, this.cv.CV_64FC1, [Math.cos(y), 0, -Math.sin(y), 0, 1, 0, Math.sin(y), 0, Math.cos(y)]); var rz = this.cv.matFromArray(3, 3, this.cv.CV_64FC1, [Math.cos(z), Math.sin(z), 0, -Math.sin(z), Math.cos(z), 0, 0, 0, 1]); var tempResult = new this.cv.Mat(3, 3, this.cv.CV_64FC1); - this.cv.gemm(rx, ry, 1, new this.cv.Mat(), 0, tempResult); - this.cv.gemm(tempResult, rz, 1, new this.cv.Mat(), 0, tempResult); + var zeroMat = new this.cv.Mat(); + this.cv.gemm(rx, ry, 1, zeroMat, 0, tempResult); + this.cv.gemm(tempResult, rz, 1, zeroMat, 0, tempResult); this.cv.Rodrigues(tempResult, rotationMatrix); + rx["delete"](); + ry["delete"](); + rz["delete"](); + tempResult["delete"](); + zeroMat["delete"](); return rotationMatrix; } @@ -65333,8 +65300,12 @@ var CoordTransfer = /*#__PURE__*/function () { var translationMatrix = new this.cv.Mat(); var tvecs = this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [-x, -y, -z]); var rotationMatrix = new this.cv.Mat(3, 3, this.cv.CV_64FC1); + var zeroMat = new this.cv.Mat(); this.cv.Rodrigues(this.rotationMatrix, rotationMatrix); - this.cv.gemm(rotationMatrix, tvecs, 1.0, new this.cv.Mat(), 0, translationMatrix); + this.cv.gemm(rotationMatrix, tvecs, 1.0, zeroMat, 0, translationMatrix); + tvecs["delete"](); + rotationMatrix["delete"](); + zeroMat["delete"](); return translationMatrix; } @@ -65362,13 +65333,21 @@ var CoordTransfer = /*#__PURE__*/function () { key: "toVideoCoordinate", value: function toVideoCoordinate(coord) { if (!this.cv || !this.cv.Mat) { - return []; + return { + data64F: [] + }; } var emptyMat = new this.cv.Mat(); var point3 = this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [coord[0], coord[1], 0]); var point2 = new this.cv.Mat(2, 1, this.cv.CV_64FC1); this.cv.projectPoints(point3, this.rotationMatrix, this.translationMatrix, this.k, emptyMat, point2); - return point2; + var data64F = point2.data64F.length ? [point2.data64F[0], point2.data64F[1]] : []; + emptyMat["delete"](); + point3["delete"](); + point2["delete"](); + return { + data64F: data64F + }; } /** * @function CoordTransfer.prototype.toSpatialCoordinate @@ -65382,28 +65361,38 @@ var CoordTransfer = /*#__PURE__*/function () { if (!this.cv || !this.cv.Mat) { return []; } - var uvPoint = new this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [videoPoint[0], videoPoint[1], 1.0]); + var uvPoint = this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [videoPoint[0], videoPoint[1], 1.0]); var rotationMatrix = new this.cv.Mat(3, 3, this.cv.CV_64FC1); this.cv.Rodrigues(this.rotationMatrix, rotationMatrix); + var zeroMat = new this.cv.Mat(); var tempMat = new this.cv.Mat(); - this.cv.gemm(rotationMatrix.inv(3), this.k.inv(3), 1, new this.cv.Mat(), 0, tempMat); - this.cv.gemm(tempMat, uvPoint, 1, new this.cv.Mat(), 0, tempMat); + this.cv.gemm(rotationMatrix.inv(3), this.k.inv(3), 1, zeroMat, 0, tempMat); + this.cv.gemm(tempMat, uvPoint, 1, zeroMat, 0, tempMat); var tempMat2 = new this.cv.Mat(); - this.cv.gemm(rotationMatrix.inv(3), this.translationMatrix, 1, new this.cv.Mat(), 0, tempMat2); + this.cv.gemm(rotationMatrix.inv(3), this.translationMatrix, 1, zeroMat, 0, tempMat2); var zConst = 0; var s = zConst + tempMat2.data64F[2]; s /= tempMat.data64F[2]; var result = new this.cv.Mat(); - this.cv.gemm(this.k.inv(3), uvPoint, 1, new this.cv.Mat(), 0, result); - this.cv.multiply(result, new this.cv.matFromArray(4, 1, this.cv.CV_64FC1, [s, 0, 0, 0]), result); + var scaleMat = this.cv.matFromArray(4, 1, this.cv.CV_64FC1, [s, 0, 0, 0]); + this.cv.gemm(this.k.inv(3), uvPoint, 1, zeroMat, 0, result); + this.cv.multiply(result, scaleMat, result); this.cv.subtract(result, this.translationMatrix, result); - this.cv.gemm(rotationMatrix.inv(3), result, 1, new this.cv.Mat(), 0, result); - return result.data64F; + this.cv.gemm(rotationMatrix.inv(3), result, 1, zeroMat, 0, result); + var data64F = [result.data64F[0], result.data64F[1], result.data64F[2]]; + uvPoint["delete"](); + rotationMatrix["delete"](); + zeroMat["delete"](); + tempMat["delete"](); + tempMat2["delete"](); + scaleMat["delete"](); + result["delete"](); + return data64F; } }]); }(); -;// ./src/mapboxgl/mapping/utils/VideoMapUtil.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/utils/VideoMapUtil.js function VideoMapUtil_typeof(o) { "@babel/helpers - typeof"; return VideoMapUtil_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VideoMapUtil_typeof(o); } function VideoMapUtil_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function VideoMapUtil_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? VideoMapUtil_ownKeys(Object(t), !0).forEach(function (r) { VideoMapUtil_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : VideoMapUtil_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -65447,37 +65436,98 @@ var fovYToFy = function fovYToFy(fovY, videoHeight) { var FastRangeSearcher = /*#__PURE__*/function () { function FastRangeSearcher(sortedArray) { VideoMapUtil_classCallCheck(this, FastRangeSearcher); + this.raw = sortedArray.slice(); this.data = sortedArray.map(function (n) { return Math.round(n * 1000); }); } + + /** + * 查找 target 落入的区间 [data[index], data[index+1]],并返回插值比例。 + * @param {number} target - 目标时间(秒)。 + * @returns {{index: number, ratio: number}|null} index 为前一个关键帧索引,ratio 为 [0,1] 插值比例。 + */ return VideoMapUtil_createClass(FastRangeSearcher, [{ + key: "findRange", + value: function findRange(target) { + if (!this.data.length) { + return null; + } + var targetInt = Math.round(target * 1000); + + // target 早于首个关键帧,取首帧 + if (targetInt <= this.data[0]) { + return { + index: 0, + ratio: 0 + }; + } + // target 晚于末个关键帧,取末帧 + var last = this.data.length - 1; + if (targetInt >= this.data[last]) { + return { + index: last, + ratio: 0 + }; + } + + // 二分查找 target 所在区间 + var lo = 0; + var hi = last; + while (lo <= hi) { + var mid = lo + hi >> 1; + if (this.data[mid] <= targetInt && this.data[mid + 1] > targetInt) { + var span = this.data[mid + 1] - this.data[mid]; + var ratio = span > 0 ? (targetInt - this.data[mid]) / span : 0; + return { + index: mid, + ratio: ratio + }; + } + if (this.data[mid] < targetInt) { + lo = mid + 1; + } else { + hi = mid - 1; + } + } + return { + index: lo, + ratio: 0 + }; + } + + /** + * 查找不小于 target 的最近关键帧,返回其时间值(秒)。 + * @param {number} target - 目标时间(秒)。 + * @returns {{value: number}|null} value 为命中的关键帧时间值(秒)。 + */ + }, { key: "findNearest", value: function findNearest(target) { + if (!this.data.length) { + return null; + } var targetInt = Math.round(target * 1000); - var minVal = targetInt; - var maxVal = targetInt + 3000; - var closestIndex = -1; - var minDiff = Infinity; - for (var i = 0; i < this.data.length; i++) { - var current = this.data[i]; - if (current > maxVal) { - break; - } - if (current >= minVal) { - var diff = current - targetInt; - if (diff < minDiff) { - minDiff = diff; - closestIndex = i; - } + // 二分查找第一个 >= target 的索引 + var lo = 0; + var hi = this.data.length - 1; + var result = -1; + while (lo <= hi) { + var mid = lo + hi >> 1; + if (this.data[mid] >= targetInt) { + result = mid; + hi = mid - 1; + } else { + lo = mid + 1; } } - if (closestIndex !== -1) { - return { - value: +(this.data[closestIndex] / 1000).toFixed(3) - }; + // target 晚于末帧,取末帧 + if (result === -1) { + result = this.data.length - 1; } - return null; + return { + value: this.raw[result] + }; } }]); }(); @@ -65541,13 +65591,22 @@ function smartTimeProcessor(interval, data) { time: +(t / 1000).toFixed(3) }, res)); } else { - if (current.time === t) { - result.push(formatPoint(current)); - dataPtr++; - } else if (next.time === t) { - result.push(formatPoint(next)); + // 降采样:在每个目标时间点 t 选取最近的关键帧,并去重。 + // 旧实现要求 current.time/next.time 与 t 严格相等才入队, + // 当原始时间步长(如33/34ms交替)与目标间隔(如330ms)不对齐时会丢掉几乎所有帧, + // 导致 timeParams 仅剩零散几帧、画面长时间不更新。 + while (dataPtr < processed.length - 1 && processed[dataPtr + 1].time <= t) { dataPtr++; } + var cur = processed[dataPtr]; + var nxt = processed[dataPtr + 1]; + var candidate = cur; + if (nxt && Math.abs(nxt.time - t) < Math.abs(cur.time - t)) { + candidate = nxt; + } + if (result.length === 0 || result[result.length - 1].time !== formatPoint(candidate).time) { + result.push(formatPoint(candidate)); + } } }; for (var t = startMs; t <= endMs; t += targetInterval) { @@ -65560,8 +65619,7 @@ function formatPoint(point) { time: +(point.time / 1000).toFixed(3) }); } -;// ./node_modules/proj4/lib/global.js -__webpack_require__.dn(global); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/global.js /* harmony default export */ function global(defs) { defs('EPSG:4326', '+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees'); defs('EPSG:4269', '+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees'); @@ -65579,7 +65637,7 @@ __webpack_require__.dn(global); defs['EPSG:102113'] = defs['EPSG:3857']; } -;// ./node_modules/proj4/lib/constants/values.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/constants/values.js var PJD_3PARAM = 1; var PJD_7PARAM = 2; var PJD_GRIDSHIFT = 3; @@ -65610,7 +65668,7 @@ var TWO_PI = Math.PI * 2; // floating point error) from changing their sign. var SPI = 3.14159265359; -;// ./node_modules/proj4/lib/constants/PrimeMeridian.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/constants/PrimeMeridian.js var PrimeMeridian_exports = {}; @@ -65628,7 +65686,7 @@ PrimeMeridian_exports.stockholm = 18.058277777778; // "18d3'29.8\"E", PrimeMeridian_exports.athens = 23.7163375; // "23d42'58.815\"E", PrimeMeridian_exports.oslo = 10.722916666667; // "10d43'22.5\"E" -;// ./node_modules/proj4/lib/constants/units.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/constants/units.js /* harmony default export */ var units = ({ mm: { to_meter: 0.001 }, cm: { to_meter: 0.01 }, @@ -65652,7 +65710,7 @@ PrimeMeridian_exports.oslo = 10.722916666667; // "10d43'22.5\"E" 'us-yd': { to_meter: 0.914401828803658 } }); -;// ./node_modules/proj4/lib/match.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/match.js var ignoredChar = /[\s_\-\/\(\)]/g; function match(obj, key) { if (obj[key]) { @@ -65671,8 +65729,7 @@ function match(obj, key) { } } -;// ./node_modules/proj4/lib/projString.js -__webpack_require__.dn(projString); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projString.js @@ -65815,18 +65872,18 @@ __webpack_require__.dn(projString); return self; } -;// ./node_modules/wkt-parser/PROJJSONBuilderBase.js -function PROJJSONBuilderBase_typeof(o) { "@babel/helpers - typeof"; return PROJJSONBuilderBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PROJJSONBuilderBase_typeof(o); } -function PROJJSONBuilderBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function PROJJSONBuilderBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, PROJJSONBuilderBase_toPropertyKey(o.key), o); } } -function PROJJSONBuilderBase_createClass(e, r, t) { return r && PROJJSONBuilderBase_defineProperties(e.prototype, r), t && PROJJSONBuilderBase_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function PROJJSONBuilderBase_toPropertyKey(t) { var i = PROJJSONBuilderBase_toPrimitive(t, "string"); return "symbol" == PROJJSONBuilderBase_typeof(i) ? i : i + ""; } -function PROJJSONBuilderBase_toPrimitive(t, r) { if ("object" != PROJJSONBuilderBase_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PROJJSONBuilderBase_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +;// CONCATENATED MODULE: ./node_modules/wkt-parser/PROJJSONBuilder.js +function PROJJSONBuilder_typeof(o) { "@babel/helpers - typeof"; return PROJJSONBuilder_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PROJJSONBuilder_typeof(o); } +function PROJJSONBuilder_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function PROJJSONBuilder_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, PROJJSONBuilder_toPropertyKey(o.key), o); } } +function PROJJSONBuilder_createClass(e, r, t) { return r && PROJJSONBuilder_defineProperties(e.prototype, r), t && PROJJSONBuilder_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function PROJJSONBuilder_toPropertyKey(t) { var i = PROJJSONBuilder_toPrimitive(t, "string"); return "symbol" == PROJJSONBuilder_typeof(i) ? i : i + ""; } +function PROJJSONBuilder_toPrimitive(t, r) { if ("object" != PROJJSONBuilder_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PROJJSONBuilder_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var PROJJSONBuilderBase = /*#__PURE__*/function () { function PROJJSONBuilderBase() { - PROJJSONBuilderBase_classCallCheck(this, PROJJSONBuilderBase); + PROJJSONBuilder_classCallCheck(this, PROJJSONBuilderBase); } - return PROJJSONBuilderBase_createClass(PROJJSONBuilderBase, null, [{ + return PROJJSONBuilder_createClass(PROJJSONBuilderBase, null, [{ key: "getId", value: function getId(node) { var idNode = node.find(function (child) { @@ -65935,7 +65992,7 @@ var PROJJSONBuilderBase = /*#__PURE__*/function () { }); if (csNode) { result.coordinate_system = { - type: csNode[1], + subtype: csNode[1], axis: this.extractAxes(node) }; } @@ -65975,8 +66032,11 @@ var PROJJSONBuilderBase = /*#__PURE__*/function () { }; } } + var geogCsNode = node.find(function (child) { + return Array.isArray(child) && child[0] === 'CS'; + }); result.coordinate_system = { - type: 'ellipsoidal', + subtype: geogCsNode ? geogCsNode[1] : 'ellipsoidal', axis: this.extractAxes(node) }; result.id = this.getId(node); @@ -66167,150 +66227,9 @@ var PROJJSONBuilderBase = /*#__PURE__*/function () { } }]); }(); -/* harmony default export */ var wkt_parser_PROJJSONBuilderBase = (PROJJSONBuilderBase); -;// ./node_modules/wkt-parser/PROJJSONBuilder2015.js -function PROJJSONBuilder2015_typeof(o) { "@babel/helpers - typeof"; return PROJJSONBuilder2015_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PROJJSONBuilder2015_typeof(o); } -function PROJJSONBuilder2015_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function PROJJSONBuilder2015_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, PROJJSONBuilder2015_toPropertyKey(o.key), o); } } -function PROJJSONBuilder2015_createClass(e, r, t) { return r && PROJJSONBuilder2015_defineProperties(e.prototype, r), t && PROJJSONBuilder2015_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function PROJJSONBuilder2015_toPropertyKey(t) { var i = PROJJSONBuilder2015_toPrimitive(t, "string"); return "symbol" == PROJJSONBuilder2015_typeof(i) ? i : i + ""; } -function PROJJSONBuilder2015_toPrimitive(t, r) { if ("object" != PROJJSONBuilder2015_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PROJJSONBuilder2015_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function PROJJSONBuilder2015_callSuper(t, o, e) { return o = PROJJSONBuilder2015_getPrototypeOf(o), PROJJSONBuilder2015_possibleConstructorReturn(t, PROJJSONBuilder2015_isNativeReflectConstruct() ? Reflect.construct(o, e || [], PROJJSONBuilder2015_getPrototypeOf(t).constructor) : o.apply(t, e)); } -function PROJJSONBuilder2015_possibleConstructorReturn(t, e) { if (e && ("object" == PROJJSONBuilder2015_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return PROJJSONBuilder2015_assertThisInitialized(t); } -function PROJJSONBuilder2015_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function PROJJSONBuilder2015_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (PROJJSONBuilder2015_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function PROJJSONBuilder2015_superPropGet(t, o, e, r) { var p = PROJJSONBuilder2015_get(PROJJSONBuilder2015_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } -function PROJJSONBuilder2015_get() { return PROJJSONBuilder2015_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = PROJJSONBuilder2015_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, PROJJSONBuilder2015_get.apply(null, arguments); } -function PROJJSONBuilder2015_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = PROJJSONBuilder2015_getPrototypeOf(t));); return t; } -function PROJJSONBuilder2015_getPrototypeOf(t) { return PROJJSONBuilder2015_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, PROJJSONBuilder2015_getPrototypeOf(t); } -function PROJJSONBuilder2015_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && PROJJSONBuilder2015_setPrototypeOf(t, e); } -function PROJJSONBuilder2015_setPrototypeOf(t, e) { return PROJJSONBuilder2015_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, PROJJSONBuilder2015_setPrototypeOf(t, e); } - -var PROJJSONBuilder2015 = /*#__PURE__*/function (_PROJJSONBuilderBase) { - function PROJJSONBuilder2015() { - PROJJSONBuilder2015_classCallCheck(this, PROJJSONBuilder2015); - return PROJJSONBuilder2015_callSuper(this, PROJJSONBuilder2015, arguments); - } - PROJJSONBuilder2015_inherits(PROJJSONBuilder2015, _PROJJSONBuilderBase); - return PROJJSONBuilder2015_createClass(PROJJSONBuilder2015, null, [{ - key: "convert", - value: function convert(node) { - var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - PROJJSONBuilder2015_superPropGet(PROJJSONBuilder2015, "convert", this, 2)([node, result]); - - // Skip `CS` and `USAGE` nodes for WKT2-2015 - if (result.coordinate_system && result.coordinate_system.subtype === 'Cartesian') { - delete result.coordinate_system; - } - if (result.usage) { - delete result.usage; - } - return result; - } - }]); -}(wkt_parser_PROJJSONBuilderBase); -/* harmony default export */ var wkt_parser_PROJJSONBuilder2015 = (PROJJSONBuilder2015); -;// ./node_modules/wkt-parser/PROJJSONBuilder2019.js -function PROJJSONBuilder2019_typeof(o) { "@babel/helpers - typeof"; return PROJJSONBuilder2019_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PROJJSONBuilder2019_typeof(o); } -function PROJJSONBuilder2019_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } -function PROJJSONBuilder2019_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, PROJJSONBuilder2019_toPropertyKey(o.key), o); } } -function PROJJSONBuilder2019_createClass(e, r, t) { return r && PROJJSONBuilder2019_defineProperties(e.prototype, r), t && PROJJSONBuilder2019_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } -function PROJJSONBuilder2019_toPropertyKey(t) { var i = PROJJSONBuilder2019_toPrimitive(t, "string"); return "symbol" == PROJJSONBuilder2019_typeof(i) ? i : i + ""; } -function PROJJSONBuilder2019_toPrimitive(t, r) { if ("object" != PROJJSONBuilder2019_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != PROJJSONBuilder2019_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function PROJJSONBuilder2019_callSuper(t, o, e) { return o = PROJJSONBuilder2019_getPrototypeOf(o), PROJJSONBuilder2019_possibleConstructorReturn(t, PROJJSONBuilder2019_isNativeReflectConstruct() ? Reflect.construct(o, e || [], PROJJSONBuilder2019_getPrototypeOf(t).constructor) : o.apply(t, e)); } -function PROJJSONBuilder2019_possibleConstructorReturn(t, e) { if (e && ("object" == PROJJSONBuilder2019_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return PROJJSONBuilder2019_assertThisInitialized(t); } -function PROJJSONBuilder2019_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } -function PROJJSONBuilder2019_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (PROJJSONBuilder2019_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function PROJJSONBuilder2019_superPropGet(t, o, e, r) { var p = PROJJSONBuilder2019_get(PROJJSONBuilder2019_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } -function PROJJSONBuilder2019_get() { return PROJJSONBuilder2019_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = PROJJSONBuilder2019_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, PROJJSONBuilder2019_get.apply(null, arguments); } -function PROJJSONBuilder2019_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = PROJJSONBuilder2019_getPrototypeOf(t));); return t; } -function PROJJSONBuilder2019_getPrototypeOf(t) { return PROJJSONBuilder2019_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, PROJJSONBuilder2019_getPrototypeOf(t); } -function PROJJSONBuilder2019_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && PROJJSONBuilder2019_setPrototypeOf(t, e); } -function PROJJSONBuilder2019_setPrototypeOf(t, e) { return PROJJSONBuilder2019_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, PROJJSONBuilder2019_setPrototypeOf(t, e); } - -var PROJJSONBuilder2019 = /*#__PURE__*/function (_PROJJSONBuilderBase) { - function PROJJSONBuilder2019() { - PROJJSONBuilder2019_classCallCheck(this, PROJJSONBuilder2019); - return PROJJSONBuilder2019_callSuper(this, PROJJSONBuilder2019, arguments); - } - PROJJSONBuilder2019_inherits(PROJJSONBuilder2019, _PROJJSONBuilderBase); - return PROJJSONBuilder2019_createClass(PROJJSONBuilder2019, null, [{ - key: "convert", - value: function convert(node) { - var result = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - PROJJSONBuilder2019_superPropGet(PROJJSONBuilder2019, "convert", this, 2)([node, result]); - - // Handle `CS` node for WKT2-2019 - var csNode = node.find(function (child) { - return Array.isArray(child) && child[0] === 'CS'; - }); - if (csNode) { - result.coordinate_system = { - subtype: csNode[1], - axis: this.extractAxes(node) - }; - } - - // Handle `USAGE` node for WKT2-2019 - var usageNode = node.find(function (child) { - return Array.isArray(child) && child[0] === 'USAGE'; - }); - if (usageNode) { - var scope = usageNode.find(function (child) { - return Array.isArray(child) && child[0] === 'SCOPE'; - }); - var area = usageNode.find(function (child) { - return Array.isArray(child) && child[0] === 'AREA'; - }); - var bbox = usageNode.find(function (child) { - return Array.isArray(child) && child[0] === 'BBOX'; - }); - result.usage = {}; - if (scope) { - result.usage.scope = scope[1]; - } - if (area) { - result.usage.area = area[1]; - } - if (bbox) { - result.usage.bbox = bbox.slice(1); - } - } - return result; - } - }]); -}(wkt_parser_PROJJSONBuilderBase); -/* harmony default export */ var wkt_parser_PROJJSONBuilder2019 = (PROJJSONBuilder2019); -;// ./node_modules/wkt-parser/buildPROJJSON.js - - - -/** - * Detects the WKT2 version based on the structure of the WKT. - * @param {Array} root The root WKT array node. - * @returns {string} The detected version ("2015" or "2019"). - */ -function detectWKT2Version(root) { - // Check for WKT2-2019-specific nodes - if (root.find(function (child) { - return Array.isArray(child) && child[0] === 'USAGE'; - })) { - return '2019'; // `USAGE` is specific to WKT2-2019 - } - - // Check for WKT2-2015-specific nodes - if (root.find(function (child) { - return Array.isArray(child) && child[0] === 'CS'; - })) { - return '2015'; // `CS` is valid in both, but default to 2015 unless `USAGE` is present - } - if (root[0] === 'BOUNDCRS' || root[0] === 'PROJCRS' || root[0] === 'GEOGCRS') { - return '2015'; // These are valid in both, but default to 2015 - } +/* harmony default export */ var PROJJSONBuilder = (PROJJSONBuilderBase); +;// CONCATENATED MODULE: ./node_modules/wkt-parser/buildPROJJSON.js - // Default to WKT2-2015 if no specific indicators are found - return '2015'; -} /** * Builds a PROJJSON object from a WKT array structure. @@ -66318,11 +66237,9 @@ function detectWKT2Version(root) { * @returns {Object} The PROJJSON object. */ function buildPROJJSON(root) { - var version = detectWKT2Version(root); - var builder = version === '2019' ? wkt_parser_PROJJSONBuilder2019 : wkt_parser_PROJJSONBuilder2015; - return builder.convert(root); + return PROJJSONBuilder.convert(root); } -;// ./node_modules/wkt-parser/detectWKTVersion.js +;// CONCATENATED MODULE: ./node_modules/wkt-parser/detectWKTVersion.js /** * Detects whether the WKT string is WKT1 or WKT2. * @param {string} wkt The WKT string. @@ -66345,7 +66262,7 @@ function detectWKTVersion(wkt) { // Default to WKT1 if no specific indicators are found return 'WKT1'; } -;// ./node_modules/wkt-parser/parser.js +;// CONCATENATED MODULE: ./node_modules/wkt-parser/parser.js /* harmony default export */ var parser = (parseString); var NEUTRAL = 1; var KEYWORD = 2; @@ -66512,7 +66429,7 @@ function parseString(txt) { var parser = new Parser(txt); return parser.output(); } -;// ./node_modules/wkt-parser/process.js +;// CONCATENATED MODULE: ./node_modules/wkt-parser/process.js function mapit(obj, key, value) { if (Array.isArray(key)) { value.unshift(key); @@ -66627,7 +66544,7 @@ function sExpr(v, obj) { return mapit(obj, key, v); } } -;// ./node_modules/wkt-parser/util.js +;// CONCATENATED MODULE: ./node_modules/wkt-parser/util.js var util_D2R = 0.01745329251994329577; function d2r(input) { return input * util_D2R; @@ -66648,7 +66565,7 @@ function applyProjectionDefaults(wkt) { delete wkt.lat1; } } -;// ./node_modules/wkt-parser/transformPROJJSON.js +;// CONCATENATED MODULE: ./node_modules/wkt-parser/transformPROJJSON.js function transformPROJJSON_typeof(o) { "@babel/helpers - typeof"; return transformPROJJSON_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, transformPROJJSON_typeof(o); } @@ -66921,8 +66838,7 @@ function transformPROJJSON(projjson) { applyProjectionDefaults(result); return result; } -;// ./node_modules/wkt-parser/index.js -__webpack_require__.dn(wkt_parser); +;// CONCATENATED MODULE: ./node_modules/wkt-parser/index.js function wkt_parser_typeof(o) { "@babel/helpers - typeof"; return wkt_parser_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, wkt_parser_typeof(o); } @@ -67098,7 +67014,7 @@ function setPropertiesFromWkt(wkt) { cleanWKT(obj); return obj[type]; } -;// ./node_modules/proj4/lib/defs.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/defs.js @@ -67145,7 +67061,7 @@ function defs(name) { global(defs); /* harmony default export */ var lib_defs = (defs); -;// ./node_modules/proj4/lib/parseCode.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/parseCode.js @@ -67208,8 +67124,7 @@ function parse(code) { /* harmony default export */ var parseCode = (parse); -;// ./node_modules/proj4/lib/extend.js -__webpack_require__.dn(extend); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/extend.js /* harmony default export */ function extend(destination, source) { destination = destination || {}; var value, property; @@ -67225,21 +67140,18 @@ __webpack_require__.dn(extend); return destination; } -;// ./node_modules/proj4/lib/common/msfnz.js -__webpack_require__.dn(msfnz); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/msfnz.js /* harmony default export */ function msfnz(eccent, sinphi, cosphi) { var con = eccent * sinphi; return cosphi / (Math.sqrt(1 - con * con)); } -;// ./node_modules/proj4/lib/common/sign.js -__webpack_require__.dn(sign); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/sign.js /* harmony default export */ function sign(x) { return x < 0 ? -1 : 1; } -;// ./node_modules/proj4/lib/common/adjust_lon.js -__webpack_require__.dn(adjust_lon); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/adjust_lon.js @@ -67247,8 +67159,7 @@ __webpack_require__.dn(adjust_lon); return (Math.abs(x) <= SPI) ? x : (x - (sign(x) * TWO_PI)); } -;// ./node_modules/proj4/lib/common/tsfnz.js -__webpack_require__.dn(tsfnz); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/tsfnz.js /* harmony default export */ function tsfnz(eccent, phi, sinphi) { @@ -67258,8 +67169,7 @@ __webpack_require__.dn(tsfnz); return (Math.tan(0.5 * (HALF_PI - phi)) / con); } -;// ./node_modules/proj4/lib/common/phi2z.js -__webpack_require__.dn(phi2z); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/phi2z.js /* harmony default export */ function phi2z(eccent, ts) { @@ -67278,7 +67188,7 @@ __webpack_require__.dn(phi2z); return -9999; } -;// ./node_modules/proj4/lib/projections/merc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/merc.js @@ -67373,7 +67283,7 @@ var names = ['Mercator', 'Popular Visualisation Pseudo Mercator', 'Mercator_1SP' names: names }); -;// ./node_modules/proj4/lib/projections/longlat.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/longlat.js function longlat_init() { // no-op for longlat } @@ -67391,7 +67301,7 @@ var longlat_names = ['longlat', 'identity']; names: longlat_names }); -;// ./node_modules/proj4/lib/projections.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections.js var projs = [merc, longlat]; @@ -67440,7 +67350,7 @@ function start() { get: get }); -;// ./node_modules/proj4/lib/constants/Ellipsoid.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/constants/Ellipsoid.js var ellipsoids = { MERIT: { a: 6378137, @@ -67667,7 +67577,7 @@ var ellipsoids = { /* harmony default export */ var Ellipsoid = (ellipsoids); -;// ./node_modules/proj4/lib/deriveConstants.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/deriveConstants.js @@ -67719,7 +67629,7 @@ function sphere(a, b, rf, ellps, sphere) { }; } -;// ./node_modules/proj4/lib/constants/Datum.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/constants/Datum.js var datums = { wgs84: { towgs84: '0,0,0', @@ -69002,7 +68912,7 @@ for (var key in datums) { /* harmony default export */ var Datum = (datums); -;// ./node_modules/proj4/lib/datum.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/datum.js function datum_datum(datumCode, datum_params, a, b, es, ep2, nadgrids) { @@ -69043,7 +68953,7 @@ function datum_datum(datumCode, datum_params, a, b, es, ep2, nadgrids) { /* harmony default export */ var lib_datum = (datum_datum); -;// ./node_modules/proj4/lib/nadgrid.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/nadgrid.js /** * Resources for details of NTv2 file formats: * - https://web.archive.org/web/20140127204822if_/http://www.mgs.gov.on.ca:80/stdprodconsume/groups/content/@mgs/@iandit/documents/resourcelist/stel02_047447.pdf @@ -69267,7 +69177,7 @@ function readGridNodes(view, offset, gridHeader, isLittleEndian, includeErrorFie return gridShiftRecords; } -;// ./node_modules/proj4/lib/Proj.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/Proj.js @@ -69342,7 +69252,7 @@ Proj_Projection.projections = projections; Proj_Projection.projections.start(); /* harmony default export */ var Proj = (Proj_Projection); -;// ./node_modules/proj4/lib/datumUtils.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/datumUtils.js function compareDatums(source, dest) { @@ -69584,8 +69494,7 @@ function geocentricFromWgs84(p, datum_type, datum_params) { } // cs_geocentric_from_wgs84() } -;// ./node_modules/proj4/lib/datum_transform.js -__webpack_require__.dn(datum_transform); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/datum_transform.js @@ -69775,8 +69684,7 @@ function nadInterpolate(pin, ct) { return val; } -;// ./node_modules/proj4/lib/adjust_axis.js -__webpack_require__.dn(adjust_axis); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/adjust_axis.js /* harmony default export */ function adjust_axis(crs, denorm, point) { var xin = point.x, yin = point.y, @@ -69836,8 +69744,7 @@ __webpack_require__.dn(adjust_axis); return out; } -;// ./node_modules/proj4/lib/common/toPoint.js -__webpack_require__.dn(toPoint); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/toPoint.js /* harmony default export */ function toPoint(array) { var out = { x: array[0], @@ -69852,8 +69759,7 @@ __webpack_require__.dn(toPoint); return out; } -;// ./node_modules/proj4/lib/checkSanity.js -__webpack_require__.dn(checkSanity); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/checkSanity.js /* harmony default export */ function checkSanity(point) { checkCoord(point.x); checkCoord(point.y); @@ -69870,7 +69776,7 @@ function checkCoord(num) { } } -;// ./node_modules/proj4/lib/transform.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/transform.js @@ -69978,7 +69884,7 @@ function transform(source, dest, point, enforceAxis) { return point; } -;// ./node_modules/proj4/lib/core.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/core.js var wgs84 = Proj('WGS84'); @@ -70066,7 +69972,7 @@ function proj4(fromProj, toProj, coord) { } /* harmony default export */ var core = (proj4); -;// ./node_modules/mgrs/mgrs.js +;// CONCATENATED MODULE: ./node_modules/mgrs/mgrs.js /** * UTM zones are grouped, and assigned to one of a group of 6 * sets. @@ -70739,7 +70645,7 @@ function getMinNorthing(zoneLetter) { throw "Invalid zone letter: " + zoneLetter; } } -;// ./node_modules/proj4/lib/Point.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/Point.js function lib_Point_Point(x, y, z) { @@ -70775,8 +70681,7 @@ lib_Point_Point.prototype.toMGRS = function (accuracy) { }; /* harmony default export */ var lib_Point = (lib_Point_Point); -;// ./node_modules/proj4/lib/common/pj_enfn.js -__webpack_require__.dn(pj_enfn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/pj_enfn.js var C00 = 1; var C02 = 0.25; var C04 = 0.046875; @@ -70802,16 +70707,14 @@ var C88 = 0.3076171875; return en; } -;// ./node_modules/proj4/lib/common/pj_mlfn.js -__webpack_require__.dn(pj_mlfn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/pj_mlfn.js /* harmony default export */ function pj_mlfn(phi, sphi, cphi, en) { cphi *= sphi; sphi *= sphi; return (en[0] * phi - cphi * (en[1] + sphi * (en[2] + sphi * (en[3] + sphi * en[4])))); } -;// ./node_modules/proj4/lib/common/pj_inv_mlfn.js -__webpack_require__.dn(pj_inv_mlfn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/pj_inv_mlfn.js @@ -70835,7 +70738,7 @@ var MAX_ITER = 20; return phi; } -;// ./node_modules/proj4/lib/projections/tmerc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/tmerc.js // Heavily based on this tmerc projection implementation // https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/tmerc.js @@ -71003,16 +70906,14 @@ var tmerc_names = ['Fast_Transverse_Mercator', 'Fast Transverse Mercator']; names: tmerc_names }); -;// ./node_modules/proj4/lib/common/sinh.js -__webpack_require__.dn(sinh); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/sinh.js /* harmony default export */ function sinh(x) { var r = Math.exp(x); r = (r - 1 / r) / 2; return r; } -;// ./node_modules/proj4/lib/common/hypot.js -__webpack_require__.dn(hypot); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/hypot.js /* harmony default export */ function hypot(x, y) { x = Math.abs(x); y = Math.abs(y); @@ -71022,8 +70923,7 @@ __webpack_require__.dn(hypot); return a * Math.sqrt(1 + Math.pow(b, 2)); } -;// ./node_modules/proj4/lib/common/log1py.js -__webpack_require__.dn(log1py); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/log1py.js /* harmony default export */ function log1py(x) { var y = 1 + x; var z = y - 1; @@ -71031,8 +70931,7 @@ __webpack_require__.dn(log1py); return z === 0 ? x : x * Math.log(y) / z; } -;// ./node_modules/proj4/lib/common/asinhy.js -__webpack_require__.dn(asinhy); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/asinhy.js @@ -71043,8 +70942,7 @@ __webpack_require__.dn(asinhy); return x < 0 ? -y : y; } -;// ./node_modules/proj4/lib/common/gatg.js -__webpack_require__.dn(gatg); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/gatg.js /* harmony default export */ function gatg(pp, B) { var cos_2B = 2 * Math.cos(2 * B); var i = pp.length - 1; @@ -71061,8 +70959,7 @@ __webpack_require__.dn(gatg); return (B + h * Math.sin(2 * B)); } -;// ./node_modules/proj4/lib/common/clens.js -__webpack_require__.dn(clens); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/clens.js /* harmony default export */ function clens(pp, arg_r) { var r = 2 * Math.cos(arg_r); var i = pp.length - 1; @@ -71079,16 +70976,14 @@ __webpack_require__.dn(clens); return Math.sin(arg_r) * hr; } -;// ./node_modules/proj4/lib/common/cosh.js -__webpack_require__.dn(cosh); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/cosh.js /* harmony default export */ function cosh(x) { var r = Math.exp(x); r = (r + 1 / r) / 2; return r; } -;// ./node_modules/proj4/lib/common/clens_cmplx.js -__webpack_require__.dn(clens_cmplx); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/clens_cmplx.js @@ -71122,7 +71017,7 @@ __webpack_require__.dn(clens_cmplx); return [r * hr - i * hi, r * hi + i * hr]; } -;// ./node_modules/proj4/lib/projections/etmerc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/etmerc.js // Heavily based on this etmerc projection implementation // https://github.com/mbloch/mapshaper-proj/blob/master/src/projections/etmerc.js @@ -71294,8 +71189,7 @@ var etmerc_names = ['Extended_Transverse_Mercator', 'Extended Transverse Mercato names: etmerc_names }); -;// ./node_modules/proj4/lib/common/adjust_zone.js -__webpack_require__.dn(adjust_zone); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/adjust_zone.js /* harmony default export */ function adjust_zone(zone, lon) { @@ -71311,7 +71205,7 @@ __webpack_require__.dn(adjust_zone); return zone; } -;// ./node_modules/proj4/lib/projections/utm.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/utm.js var dependsOn = 'etmerc'; @@ -71340,13 +71234,12 @@ var utm_names = ['Universal Transverse Mercator System', 'utm']; dependsOn: dependsOn }); -;// ./node_modules/proj4/lib/common/srat.js -__webpack_require__.dn(srat); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/srat.js /* harmony default export */ function srat(esinp, exp) { return (Math.pow((1 - esinp) / (1 + esinp), exp)); } -;// ./node_modules/proj4/lib/projections/gauss.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/gauss.js var gauss_MAX_ITER = 20; @@ -71400,7 +71293,7 @@ var gauss_names = ['gauss']; names: gauss_names }); -;// ./node_modules/proj4/lib/projections/sterea.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/sterea.js @@ -71466,7 +71359,7 @@ var sterea_names = ['Stereographic_North_Pole', 'Oblique_Stereographic', 'sterea names: sterea_names }); -;// ./node_modules/proj4/lib/projections/stere.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/stere.js @@ -71639,7 +71532,7 @@ var stere_names = ['stere', 'Stereographic_South_Pole', 'Polar_Stereographic_var ssfn_: ssfn_ }); -;// ./node_modules/proj4/lib/projections/somerc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/somerc.js /* references: Formules et constantes pour le Calcul pour la @@ -71727,7 +71620,7 @@ var somerc_names = ['somerc']; names: somerc_names }); -;// ./node_modules/proj4/lib/projections/omerc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/omerc.js @@ -71968,7 +71861,7 @@ var omerc_names = ['Hotine_Oblique_Mercator', 'Hotine Oblique Mercator', 'Hotine names: omerc_names }); -;// ./node_modules/proj4/lib/projections/lcc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/lcc.js @@ -72115,7 +72008,7 @@ var lcc_names = [ names: lcc_names }); -;// ./node_modules/proj4/lib/projections/krovak.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/krovak.js function krovak_init() { @@ -72223,45 +72116,38 @@ var krovak_names = ['Krovak', 'krovak']; names: krovak_names }); -;// ./node_modules/proj4/lib/common/mlfn.js -__webpack_require__.dn(mlfn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/mlfn.js /* harmony default export */ function mlfn(e0, e1, e2, e3, phi) { return (e0 * phi - e1 * Math.sin(2 * phi) + e2 * Math.sin(4 * phi) - e3 * Math.sin(6 * phi)); } -;// ./node_modules/proj4/lib/common/e0fn.js -__webpack_require__.dn(e0fn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/e0fn.js /* harmony default export */ function e0fn(x) { return (1 - 0.25 * x * (1 + x / 16 * (3 + 1.25 * x))); } -;// ./node_modules/proj4/lib/common/e1fn.js -__webpack_require__.dn(e1fn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/e1fn.js /* harmony default export */ function e1fn(x) { return (0.375 * x * (1 + 0.25 * x * (1 + 0.46875 * x))); } -;// ./node_modules/proj4/lib/common/e2fn.js -__webpack_require__.dn(e2fn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/e2fn.js /* harmony default export */ function e2fn(x) { return (0.05859375 * x * x * (1 + 0.75 * x)); } -;// ./node_modules/proj4/lib/common/e3fn.js -__webpack_require__.dn(e3fn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/e3fn.js /* harmony default export */ function e3fn(x) { return (x * x * x * (35 / 3072)); } -;// ./node_modules/proj4/lib/common/gN.js -__webpack_require__.dn(gN); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/gN.js /* harmony default export */ function gN(a, e, sinphi) { var temp = e * sinphi; return a / Math.sqrt(1 - temp * temp); } -;// ./node_modules/proj4/lib/common/adjust_lat.js -__webpack_require__.dn(adjust_lat); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/adjust_lat.js @@ -72269,8 +72155,7 @@ __webpack_require__.dn(adjust_lat); return (Math.abs(x) < HALF_PI) ? x : (x - (sign(x) * Math.PI)); } -;// ./node_modules/proj4/lib/common/imlfn.js -__webpack_require__.dn(imlfn); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/imlfn.js /* harmony default export */ function imlfn(ml, e0, e1, e2, e3) { var phi; var dphi; @@ -72288,7 +72173,7 @@ __webpack_require__.dn(imlfn); return NaN; } -;// ./node_modules/proj4/lib/projections/cass.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/cass.js @@ -72391,8 +72276,7 @@ var cass_names = ['Cassini', 'Cassini_Soldner', 'cass']; names: cass_names }); -;// ./node_modules/proj4/lib/common/qsfnz.js -__webpack_require__.dn(qsfnz); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/qsfnz.js /* harmony default export */ function qsfnz(eccent, sinphi) { var con; if (eccent > 1.0e-7) { @@ -72403,7 +72287,7 @@ __webpack_require__.dn(qsfnz); } } -;// ./node_modules/proj4/lib/projections/laea.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/laea.js @@ -72691,8 +72575,7 @@ var laea_names = ['Lambert Azimuthal Equal Area', 'Lambert_Azimuthal_Equal_Area' OBLIQ: OBLIQ }); -;// ./node_modules/proj4/lib/common/asinz.js -__webpack_require__.dn(asinz); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/asinz.js /* harmony default export */ function asinz(x) { if (Math.abs(x) > 1) { x = (x > 1) ? 1 : -1; @@ -72700,7 +72583,7 @@ __webpack_require__.dn(asinz); return Math.asin(x); } -;// ./node_modules/proj4/lib/projections/aea.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/aea.js @@ -72826,7 +72709,7 @@ var aea_names = ['Albers_Conic_Equal_Area', 'Albers_Equal_Area', 'Albers', 'aea' phi1z: phi1z }); -;// ./node_modules/proj4/lib/projections/gnom.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/gnom.js @@ -72927,8 +72810,7 @@ var gnom_names = ['gnom']; names: gnom_names }); -;// ./node_modules/proj4/lib/common/iqsfnz.js -__webpack_require__.dn(iqsfnz); +;// CONCATENATED MODULE: ./node_modules/proj4/lib/common/iqsfnz.js /* harmony default export */ function iqsfnz(eccent, q) { @@ -72961,7 +72843,7 @@ __webpack_require__.dn(iqsfnz); return NaN; } -;// ./node_modules/proj4/lib/projections/cea.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/cea.js @@ -73031,7 +72913,7 @@ var cea_names = ['cea']; names: cea_names }); -;// ./node_modules/proj4/lib/projections/eqc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/eqc.js @@ -73078,7 +72960,7 @@ var eqc_names = ['Equirectangular', 'Equidistant_Cylindrical', 'Equidistant_Cyli names: eqc_names }); -;// ./node_modules/proj4/lib/projections/poly.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/poly.js @@ -73207,7 +73089,7 @@ var poly_names = ['Polyconic', 'American_Polyconic', 'poly']; names: poly_names }); -;// ./node_modules/proj4/lib/projections/nzmg.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/nzmg.js /* @@ -73435,7 +73317,7 @@ var nzmg_names = ['New_Zealand_Map_Grid', 'nzmg']; names: nzmg_names }); -;// ./node_modules/proj4/lib/projections/mill.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/mill.js /* @@ -73488,7 +73370,7 @@ var mill_names = ['Miller_Cylindrical', 'mill']; names: mill_names }); -;// ./node_modules/proj4/lib/projections/sinu.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/sinu.js @@ -73594,7 +73476,7 @@ var sinu_names = ['Sinusoidal', 'sinu']; names: sinu_names }); -;// ./node_modules/proj4/lib/projections/moll.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/moll.js function moll_init() {} @@ -73678,7 +73560,7 @@ var moll_names = ['Mollweide', 'moll']; names: moll_names }); -;// ./node_modules/proj4/lib/projections/eqdc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/eqdc.js @@ -73791,7 +73673,7 @@ var eqdc_names = ['Equidistant_Conic', 'eqdc']; names: eqdc_names }); -;// ./node_modules/proj4/lib/projections/vandg.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/vandg.js @@ -73918,7 +73800,7 @@ var vandg_names = ['Van_der_Grinten_I', 'VanDerGrinten', 'Van_der_Grinten', 'van // EXTERNAL MODULE: ./node_modules/geographiclib-geodesic/geographiclib-geodesic.min.js var geographiclib_geodesic_min = __webpack_require__(8461); -;// ./node_modules/proj4/lib/projections/aeqd.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/aeqd.js @@ -74093,7 +73975,7 @@ var aeqd_names = ['Azimuthal_Equidistant', 'aeqd']; names: aeqd_names }); -;// ./node_modules/proj4/lib/projections/ortho.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/ortho.js @@ -74185,7 +74067,7 @@ var ortho_names = ['ortho']; names: ortho_names }); -;// ./node_modules/proj4/lib/projections/qsc.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/qsc.js // QSC projection rewritten from the original PROJ4 // https://github.com/OSGeo/proj.4/blob/master/src/PJ_qsc.c @@ -74553,7 +74435,7 @@ var qsc_names = ['Quadrilateralized Spherical Cube', 'Quadrilateralized_Spherica names: qsc_names }); -;// ./node_modules/proj4/lib/projections/robin.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/robin.js // Robinson projection // Based on https://github.com/OSGeo/proj.4/blob/master/src/PJ_robin.c // Polynomial coeficients from http://article.gmane.org/gmane.comp.gis.proj-4.devel/6039 @@ -74716,7 +74598,7 @@ var robin_names = ['Robinson', 'robin']; names: robin_names }); -;// ./node_modules/proj4/lib/projections/geocent.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/geocent.js function geocent_init() { @@ -74741,7 +74623,7 @@ var geocent_names = ['Geocentric', 'geocentric', 'geocent', 'Geocent']; names: geocent_names }); -;// ./node_modules/proj4/lib/projections/tpers.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/tpers.js var mode = { N_POLE: 0, S_POLE: 1, @@ -74911,7 +74793,7 @@ var tpers_names = ['Tilted_Perspective', 'tpers']; names: tpers_names }); -;// ./node_modules/proj4/lib/projections/geos.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/geos.js function geos_init() { @@ -75071,7 +74953,7 @@ var geos_names = ['Geostationary Satellite View', 'Geostationary_Satellite', 'ge names: geos_names }); -;// ./node_modules/proj4/lib/projections/eqearth.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/eqearth.js /** * Copyright 2018 Bernie Jenny, Monash University, Melbourne, Australia. * @@ -75166,7 +75048,7 @@ var eqearth_names = ['eqearth', 'Equal Earth', 'Equal_Earth']; names: eqearth_names }); -;// ./node_modules/proj4/lib/projections/bonne.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/projections/bonne.js @@ -75279,8 +75161,7 @@ var bonne_names = ['bonne', 'Bonne (Werner lat_1=90)']; names: bonne_names }); -;// ./node_modules/proj4/projs.js -__webpack_require__.dn(proj4_projs); +;// CONCATENATED MODULE: ./node_modules/proj4/projs.js @@ -75346,7 +75227,7 @@ __webpack_require__.dn(proj4_projs); proj4.Proj.projections.add(bonne); } -;// ./node_modules/proj4/lib/index.js +;// CONCATENATED MODULE: ./node_modules/proj4/lib/index.js @@ -75370,7 +75251,7 @@ core.version = '__VERSION__'; proj4_projs(core); /* harmony default export */ var lib = (core); -;// ./src/mapboxgl/overlay/VideoLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/VideoLayer.js function VideoLayer_typeof(o) { "@babel/helpers - typeof"; return VideoLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VideoLayer_typeof(o); } function VideoLayer_toConsumableArray(r) { return VideoLayer_arrayWithoutHoles(r) || VideoLayer_iterableToArray(r) || VideoLayer_unsupportedIterableToArray(r) || VideoLayer_nonIterableSpread(); } function VideoLayer_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -75482,7 +75363,7 @@ var VideoLayer = /*#__PURE__*/function (_mapboxgl$Evented) { if (!_this.videoParameters) { throw new Error('videoParameters must be set!'); } - _this.id = _options.id ? _options.id : Util.createUniqueID("VideoLayer_"); + _this.id = _options.id ? _options.id : Util_Util.createUniqueID("VideoLayer_"); _this.layerId = _this.id + '_outer'; _this.type = 'custom'; _this.renderingMode = '3d'; @@ -75528,6 +75409,7 @@ var VideoLayer = /*#__PURE__*/function (_mapboxgl$Evented) { _this2._initParameters(_this2.videoParameters[0]).then(function (coordTransfer) { _this2.coordTransfer = coordTransfer; _this2.timeParams = {}; + var baseRatio; _this2.videoParameters.forEach(function (dataItem) { var pitch = dataItem.pitch, roll = dataItem.roll, @@ -75601,16 +75483,24 @@ var VideoLayer = /*#__PURE__*/function (_mapboxgl$Evented) { var tl = map.project([result[0], result[1]]); var size = [Math.abs(br.x - tl.x), Math.abs(br.y - tl.y)]; var ratio = size[0] / size[1]; + if (baseRatio === undefined) { + baseRatio = ratio; + } _this2.timeParams[time].ratio = ratio; - _this2.timeParams[time].dsize = new _this2.cv.Size(realHeight * ratio, realHeight); + // 输出帧尺寸必须全程恒定:video source 的 WebGL 纹理按首帧尺寸创建, + // 后续帧尺寸一旦变化,texSubImage2D 会静默失败,表现为视频消失/后半段画面不更新。 + // realHeight 恒定(视频高或裁剪区高),仅宽度随 ratio 变化, + // 这里统一为基准时刻宽度,并在下方把目标点横向缩放对齐,显示几何保持等价。 + _this2.timeParams[time].dsize = new _this2.cv.Size(realHeight * baseRatio, realHeight); var realX = realHeight * ratio; var realY = realHeight; var ratioX = realX / size[0]; var ratioY = realY / size[1]; var realRatio = Math.min(ratioX, ratioY); pointCoords = _this2._getPixelBbox(pointCoords, result, _this2.timeParams[time].allContained); - pointCoords = pointCoords.map(function (item) { - return item * realRatio; + var scaleX = baseRatio / ratio; + pointCoords = pointCoords.map(function (item, index) { + return (index % 2 === 0 ? item * scaleX : item) * realRatio; }); originBounds = _this2._getPixelBbox(originBounds); _this2.timeParams[time].originBounds = originBounds.map(function (item) { @@ -75687,10 +75577,27 @@ var VideoLayer = /*#__PURE__*/function (_mapboxgl$Evented) { that.dsize = that.timeParams[that.beginIndex].dsize; var dstTri = that.timeParams[that.beginIndex].dstTri; var canvas = document.createElement('canvas'); + // 裁剪遮罩只依赖基准参数(originBounds / dsize 均恒定),创建一次即可。 + // 原实现每帧新建 clipMat/dst1 且从不 delete,WASM 内存只增不减, + // 最终 OpenCV 分配失败,表现为画面不再更新。 var _this$_updateMask = this._updateMask(canvas, that.timeParams[that.beginIndex].realHeight, that.timeParams[that.beginIndex].ratio), clipMat = _this$_updateMask.clipMat, dst1 = _this$_updateMask.dst1; var count = 0; + var lastGoodFrame = null; + // 输出帧尺寸已恒定,复用同一 ImageData,避免每帧分配约 30MB(4K) 大数组带来的 GC 停顿 + var outFrame = null; + // 单应矩阵只在时间参数切换(dstTri 变化)时改变,缓存复用: + // 省掉每帧一次 findHomography 的 WASM 调用及其内部临时 Mat 分配 + var cachedM = null; + var cachedDstTri = null; + // 自适应跳帧状态:4K 帧透视变换耗时(约 30~80ms)可能超过视频帧间隔(33ms), + // 处理不过来时逐帧硬算会堆积阻塞主线程,表现为画面与位置一起卡。 + // 记录每帧处理耗时,处理不过来时复用上一帧,等视频时间推进足够再处理新帧, + // 把"卡死式掉帧"变成"均匀降帧"。 + var FRAME_INTERVAL = 1 / 30; + var lastProcessCost = 0; + var lastProcessTime = -1; var videoEle = this.video.tech().el(); var current = 0; if (this.videoParameters.length > 1 && videoEle && videoEle.requestVideoFrameCallback) { @@ -75700,49 +75607,139 @@ var VideoLayer = /*#__PURE__*/function (_mapboxgl$Evented) { }; videoEle.requestVideoFrameCallback(_updateCanvas); } + // setCoordinates 会销毁并重建 source 的 WebGL 顶点缓冲,并触发 source 元数据事件。 + // 原实现用 setTimeout(0),执行时机可能落在渲染中途,与渲染管线形成竞态, + // 报 enableAttributes undefined,视频闪现。这里改为 rAF(帧间隙执行)+ 50ms 节流 + // (位置更新 20Hz 足够平滑)+ 变化阈值,把调用频率和时机收敛到安全范围。 + var coordRafId = 0; + var pendingResult = null; + var lastCoordTime = 0; + var lastAppliedResult = null; + var _applyCoords = function applyCoords() { + coordRafId = 0; + var r = pendingResult; + if (!r) { + return; + } + var now = performance.now(); + if (now - lastCoordTime < 50) { + // 距上次更新不足 50ms,下一帧再试(不丢弃,保证最终位置收敛) + coordRafId = requestAnimationFrame(_applyCoords); + return; + } + pendingResult = null; + if (!that.map || !that.map.getSource(that.layerId)) { + return; + } + lastCoordTime = now; + lastAppliedResult = r; + that.map.getSource(that.layerId).setCoordinates([[r[0], r[3]], [r[2], r[3]], [r[2], r[1]], [r[0], r[1]]]); + }; + var scheduleSetCoordinates = function scheduleSetCoordinates(r) { + // 变化小于约 1cm 时不更新,避免元数据事件风暴 + if (lastAppliedResult && !pendingResult && Math.abs(r[0] - lastAppliedResult[0]) < 1e-7 && Math.abs(r[1] - lastAppliedResult[1]) < 1e-7 && Math.abs(r[2] - lastAppliedResult[2]) < 1e-7 && Math.abs(r[3] - lastAppliedResult[3]) < 1e-7) { + return; + } + pendingResult = r; + if (!coordRafId) { + coordRafId = requestAnimationFrame(_applyCoords); + } + }; map.addSource(this.layerId, { type: 'video', urls: [url], drawImageCallback: function drawImageCallback(frame) { - if (that.videoParameters.length > 1) { - var time = current || that.video.currentTime(); - var res = that.finder.findNearest(time); - if (res) { - count = res.value; + var src = null; + var dst = null; + var M = null; + try { + var curData = null; + if (that.videoParameters.length > 1) { + var time = current || that.video.currentTime(); + var res = that.finder.findNearest(time); + if (res) { + count = res.value; + } + if (count) { + curData = that.timeParams[count]; + count = 0; + if (curData) { + that.dsize = curData.dsize; + dstTri = curData.dstTri; + result = curData.result; + scheduleSetCoordinates(result); + } + } + } + // 自适应跳帧:位置跟随(上方的 scheduleSetCoordinates)照常执行,仅跳过重量级帧处理。 + // 处理耗时超过帧间隔说明算不过来,视频时间推进不足一次处理耗时时直接复用上一帧; + // 上限 0.1s,保证画面最多降到 10fps,不会卡死。 + // 注意 elapsed 必须非负:循环播放/拖拽进度条时视频时间会回退, + // 负值若参与比较会导致跳帧条件恒成立,画面永久停在缓存帧。 + var videoTime = current || that.video.currentTime(); + var elapsed = videoTime - lastProcessTime; + if (lastGoodFrame && lastProcessTime >= 0 && lastProcessCost > FRAME_INTERVAL && elapsed >= 0 && elapsed < Math.min(lastProcessCost, 0.1)) { + return lastGoodFrame; } - if (count) { - var curData = that.timeParams[count]; - count = 0; - if (curData) { - that.dsize = curData.dsize; - dstTri = curData.dstTri; - result = curData.result; - setTimeout(function () { - that.map.getSource(that.layerId).setCoordinates([[result[0], result[3]], [result[2], result[3]], [result[2], result[1]], [result[0], result[1]]]); - }, 0); + var processStart = performance.now(); + src = that.cv.matFromImageData(frame); + dst = new that.cv.Mat(); + if (!cachedM || cachedDstTri !== dstTri) { + if (cachedM) { + cachedM["delete"](); + cachedM = null; + } + var newM = that.cv.findHomography(srcTri, dstTri); + if (newM && newM.rows && newM.cols) { + cachedM = newM; + cachedDstTri = dstTri; + } else { + if (newM) { + newM["delete"](); + } + throw new Error('findHomography failed'); } } - } - var src = that.cv.matFromImageData(frame); - var dst = new that.cv.Mat(); - var M = that.cv.findHomography(srcTri, dstTri); - that.cv.warpPerspective(src, dst, M, that.dsize); - var newFrame; - if (that.timeParams[count].allContained) { - newFrame = new ImageData(new Uint8ClampedArray(dst.data), dst.cols, dst.rows); - } else { - if (that.videoParameters.length > 1) { - var _res = that._updateMask(canvas, that.timeParams[that.beginIndex].realHeight, that.timeParams[that.beginIndex].ratio); - clipMat = _res.clipMat; - dst1 = _res.dst1; + M = cachedM; + that.cv.warpPerspective(src, dst, M, that.dsize); + var outMat = dst; + if (!that.timeParams[count].allContained) { + dst.copyTo(dst1, clipMat); + outMat = dst1; + } + if (!outFrame || outFrame.width !== outMat.cols || outFrame.height !== outMat.rows) { + outFrame = new ImageData(outMat.cols, outMat.rows); + } + outFrame.data.set(outMat.data); + src["delete"](); + dst["delete"](); + // 注意:M 是缓存的单应矩阵(cachedM),不能在此 delete, + // 仅时间参数切换时由缓存替换逻辑释放旧矩阵 + lastProcessCost = (performance.now() - processStart) / 1000; + lastProcessTime = videoTime; + lastGoodFrame = outFrame; + return outFrame; + } catch (err) { + // 单帧处理失败不拖垮渲染循环:返回上一成功帧,视频不停更不消失 + if (src) { + src["delete"](); + } + if (dst) { + dst["delete"](); + } + // M 指向缓存对象 cachedM,不能 delete + var nowErr = Date.now(); + if (!that._lastErrorLogAt || nowErr - that._lastErrorLogAt > 1000) { + that._lastErrorLogAt = nowErr; + // eslint-disable-next-line no-console + console.error('[VideoLayer] process frame error:', err); + } + if (lastGoodFrame) { + return lastGoodFrame; } - dst.copyTo(dst1, clipMat); - newFrame = new ImageData(new Uint8ClampedArray(dst1.data), dst1.cols, dst1.rows); + // 首帧即失败时返回与输出同尺寸的空白帧(尺寸必须恒定,否则上传静默失败) + return new ImageData(Math.max(1, Math.round(that.dsize.width)), Math.max(1, Math.round(that.dsize.height))); } - src["delete"](); - dst["delete"](); - M["delete"](); - return newFrame; }, coordinates: [[result[0], result[3]], [result[2], result[3]], [result[2], result[1]], [result[0], result[1]]] }); @@ -75816,7 +75813,7 @@ var VideoLayer = /*#__PURE__*/function (_mapboxgl$Evented) { } }]); }((external_mapboxgl_default()).Evented); -;// ./src/mapboxgl/services/ServiceBase.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/ServiceBase.js function ServiceBase_typeof(o) { "@babel/helpers - typeof"; return ServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServiceBase_typeof(o); } function ServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServiceBase_toPropertyKey(o.key), o); } } function ServiceBase_createClass(e, r, t) { return r && ServiceBase_defineProperties(e.prototype, r), t && ServiceBase_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -75840,7 +75837,7 @@ function ServiceBase_setPrototypeOf(t, e) { return ServiceBase_setPrototypeOf = * @class ServiceBase * @category iServer Core * @classdesc mapboxgl.supermap 服务基类。 - * @param {string} url - 服务地址。 + * @param {string} url - 服务地址。具体地址类型由子类决定。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -75872,7 +75869,7 @@ var ServiceBase = /*#__PURE__*/function (_mapboxgl$Evented) { ServiceBase_inherits(ServiceBase, _mapboxgl$Evented); return ServiceBase_createClass(ServiceBase); }((external_mapboxgl_default()).Evented); -;// ./src/common/security/SecurityManager.js +;// CONCATENATED MODULE: ./src/common/security/SecurityManager.js function SecurityManager_typeof(o) { "@babel/helpers - typeof"; return SecurityManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SecurityManager_typeof(o); } function SecurityManager_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SecurityManager_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SecurityManager_toPropertyKey(o.key), o); } } @@ -75931,7 +75928,7 @@ var SecurityManager = /*#__PURE__*/function () { key: "registerServers", value: function registerServers(serverInfos) { this.servers = this.servers || {}; - if (!Util.isArray(serverInfos)) { + if (!Util_Util.isArray(serverInfos)) { serverInfos = [serverInfos]; } for (var i = 0; i < serverInfos.length; i++) { @@ -75970,7 +75967,7 @@ var SecurityManager = /*#__PURE__*/function () { if (!ids || ids.length < 1 || !key) { return; } - ids = Util.isArray(ids) ? ids : [ids]; + ids = Util_Util.isArray(ids) ? ids : [ids]; for (var i = 0; i < ids.length; i++) { var id = this._getUrlRestString(ids[0]) || ids[0]; this.keys[id] = key; @@ -76033,7 +76030,7 @@ var SecurityManager = /*#__PURE__*/function () { }, { key: "loginiServer", value: function loginiServer(url, username, password, rememberme) { - url = Util.urlPathAppend(url, 'services/security/login'); + url = Util_Util.urlPathAppend(url, 'services/security/login'); var loginInfo = { username: username && username.toString(), password: password && password.toString(), @@ -76059,7 +76056,7 @@ var SecurityManager = /*#__PURE__*/function () { }, { key: "logoutiServer", value: function logoutiServer(url) { - url = Util.urlPathAppend(url, 'services/security/logout'); + url = Util_Util.urlPathAppend(url, 'services/security/logout'); var requestOptions = { headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' @@ -76097,7 +76094,7 @@ var SecurityManager = /*#__PURE__*/function () { }, { key: "loginiPortal", value: function loginiPortal(url, username, password) { - url = Util.urlPathAppend(url, 'web/login'); + url = Util_Util.urlPathAppend(url, 'web/login'); var loginInfo = { username: username && username.toString(), password: password && password.toString() @@ -76123,7 +76120,7 @@ var SecurityManager = /*#__PURE__*/function () { }, { key: "logoutiPortal", value: function logoutiPortal(url) { - url = Util.urlPathAppend(url, 'services/security/logout'); + url = Util_Util.urlPathAppend(url, 'services/security/logout'); var requestOptions = { headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' @@ -76152,7 +76149,7 @@ var SecurityManager = /*#__PURE__*/function () { }, { key: "loginManager", value: function loginManager(url, loginInfoParams) { - var requestUrl = Util.urlPathAppend(url, '/security/tokens'); + var requestUrl = Util_Util.urlPathAppend(url, '/security/tokens'); var params = loginInfoParams || {}; var loginInfo = { username: params.userName && params.userName.toString(), @@ -76240,7 +76237,7 @@ var SecurityManager = /*#__PURE__*/function () { credential = value ? new Credential(value, 'key') : null; } if (credential) { - newUrl = Util.urlAppend(newUrl, credential.getUrlParameters()); + newUrl = Util_Util.urlAppend(newUrl, credential.getUrlParameters()); } return newUrl; } @@ -76311,7 +76308,7 @@ SecurityManager.INNER_WINDOW_WIDTH = 600; SecurityManager.INNER_WINDOW_HEIGHT = 600; SecurityManager.SSO = 'https://sso.supermap.com'; SecurityManager.ONLINE = 'https://www.supermapol.com'; -;// ./src/common/iServer/CommonServiceBase.js +;// CONCATENATED MODULE: ./src/common/iServer/CommonServiceBase.js function CommonServiceBase_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function CommonServiceBase_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? CommonServiceBase_ownKeys(Object(t), !0).forEach(function (r) { CommonServiceBase_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : CommonServiceBase_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function CommonServiceBase_defineProperty(e, r, t) { return (r = CommonServiceBase_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } @@ -76361,7 +76358,7 @@ var CommonServiceBase = /*#__PURE__*/function () { this.POLLING_TIMES = 3; this.isInTheSameDomain = null; this.withCredentials = null; - if (Util.isArray(url)) { + if (Util_Util.isArray(url)) { me.urls = url; me.length = url.length; me.totalTimes = me.length; @@ -76375,15 +76372,15 @@ var CommonServiceBase = /*#__PURE__*/function () { me.totalTimes = 1; me.url = url; } - if (Util.isArray(url) && !me.isServiceSupportPolling()) { + if (Util_Util.isArray(url) && !me.isServiceSupportPolling()) { me.url = url[0]; me.totalTimes = 1; } options = options || {}; this.crossOrigin = options.crossOrigin; this.headers = options.headers; - Util.extend(this, options); - me.isInTheSameDomain = Util.isInTheSameDomain(me.url); + Util_Util.extend(this, options); + me.isInTheSameDomain = Util_Util.isInTheSameDomain(me.url); me.events = new Events(me, null, me.EVENT_TYPES, true); if (me.eventListeners instanceof Object) { me.events.on(me.eventListeners); @@ -76399,7 +76396,7 @@ var CommonServiceBase = /*#__PURE__*/function () { key: "destroy", value: function destroy() { var me = this; - if (Util.isArray(me.urls)) { + if (Util_Util.isArray(me.urls)) { me.urls = null; me.index = null; me.length = null; @@ -76450,7 +76447,7 @@ var CommonServiceBase = /*#__PURE__*/function () { var me = this; options.url = options.url || me.url; if (this._returnContent(options) && !options.url.includes('returnContent=true')) { - options.url = Util.urlAppend(options.url, 'returnContent=true'); + options.url = Util_Util.urlAppend(options.url, 'returnContent=true'); } options.proxy = options.proxy || me.proxy; options.withCredentials = options.withCredentials != undefined ? options.withCredentials : me.withCredentials; @@ -76487,7 +76484,7 @@ var CommonServiceBase = /*#__PURE__*/function () { me.url = me.urls[me.index]; url = url.replace(re, re.exec(me.url)[0]); options.url = url; - options.isInTheSameDomain = Util.isInTheSameDomain(url); + options.isInTheSameDomain = Util_Util.isInTheSameDomain(url); return me._commit(options); } @@ -76541,7 +76538,7 @@ var CommonServiceBase = /*#__PURE__*/function () { }, { key: "transformResult", value: function transformResult(result, options) { - result = Util.transformResult(result); + result = Util_Util.transformResult(result); return { result: result, options: options @@ -76559,7 +76556,7 @@ var CommonServiceBase = /*#__PURE__*/function () { }, { key: "transformErrorResult", value: function transformErrorResult(result, options) { - result = Util.transformResult(result); + result = Util_Util.transformResult(result); var error = result.error || result; return { error: error, @@ -76628,11 +76625,11 @@ var CommonServiceBase = /*#__PURE__*/function () { var _this = this; if (options.method === 'POST' || options.method === 'PUT' || options.method === 'PATCH') { if (options.params) { - options.url = Util.urlAppend(options.url, Util.getParameterString(options.params || {})); + options.url = Util_Util.urlAppend(options.url, Util_Util.getParameterString(options.params || {})); } if (CommonServiceBase_typeof(options.data) === 'object' && !(options.data instanceof FormData)) { try { - options.params = Util.toJSON(options.data); + options.params = Util_Util.toJSON(options.data); } catch (e) { console.log('不是json对象'); } @@ -76727,10 +76724,9 @@ var CommonServiceBase = /*#__PURE__*/function () { * @param {Object} serviceResult.type 事件类型。 * @param {Object} serviceResult.options 请求参数。 */ -;// ./src/common/iServer/KnowledgeGraphService.js +;// CONCATENATED MODULE: ./src/common/iServer/KnowledgeGraphService.js function KnowledgeGraphService_typeof(o) { "@babel/helpers - typeof"; return KnowledgeGraphService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, KnowledgeGraphService_typeof(o); } -function KnowledgeGraphService_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return KnowledgeGraphService_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (KnowledgeGraphService_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, KnowledgeGraphService_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, KnowledgeGraphService_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), KnowledgeGraphService_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", KnowledgeGraphService_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), KnowledgeGraphService_regeneratorDefine2(u), KnowledgeGraphService_regeneratorDefine2(u, o, "Generator"), KnowledgeGraphService_regeneratorDefine2(u, n, function () { return this; }), KnowledgeGraphService_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (KnowledgeGraphService_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function KnowledgeGraphService_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } KnowledgeGraphService_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { KnowledgeGraphService_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, KnowledgeGraphService_regeneratorDefine2(e, r, n, t); } +function KnowledgeGraphService_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ KnowledgeGraphService_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == KnowledgeGraphService_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(KnowledgeGraphService_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function KnowledgeGraphService_toConsumableArray(r) { return KnowledgeGraphService_arrayWithoutHoles(r) || KnowledgeGraphService_iterableToArray(r) || KnowledgeGraphService_unsupportedIterableToArray(r) || KnowledgeGraphService_nonIterableSpread(); } function KnowledgeGraphService_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function KnowledgeGraphService_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return KnowledgeGraphService_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? KnowledgeGraphService_arrayLikeToArray(r, a) : void 0; } } @@ -76748,7 +76744,7 @@ function KnowledgeGraphService_callSuper(t, o, e) { return o = KnowledgeGraphSer function KnowledgeGraphService_possibleConstructorReturn(t, e) { if (e && ("object" == KnowledgeGraphService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return KnowledgeGraphService_assertThisInitialized(t); } function KnowledgeGraphService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function KnowledgeGraphService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (KnowledgeGraphService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function KnowledgeGraphService_superPropGet(t, o, e, r) { var p = KnowledgeGraphService_get(KnowledgeGraphService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function KnowledgeGraphService_superPropGet(t, e, o, r) { var p = KnowledgeGraphService_get(KnowledgeGraphService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function KnowledgeGraphService_get() { return KnowledgeGraphService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = KnowledgeGraphService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, KnowledgeGraphService_get.apply(null, arguments); } function KnowledgeGraphService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = KnowledgeGraphService_getPrototypeOf(t));); return t; } function KnowledgeGraphService_getPrototypeOf(t) { return KnowledgeGraphService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, KnowledgeGraphService_getPrototypeOf(t); } @@ -76824,7 +76820,7 @@ var KnowledgeGraphService_KnowledgeGraphService = /*#__PURE__*/function (_Common key: "query", value: function query(params, callback) { var paramKey = 'cypherQuery'; - var url = Util.urlAppend(this.url + '/query.json', "".concat(paramKey, "=").concat(encodeURI(params))); + var url = Util_Util.urlAppend(this.url + '/query.json', "".concat(paramKey, "=").concat(encodeURI(params))); this.processAsync({ url: url, method: 'GET', @@ -76896,22 +76892,22 @@ var KnowledgeGraphService_KnowledgeGraphService = /*#__PURE__*/function (_Common }, { key: "getGraphMapData", value: (function () { - var _getGraphMapData2 = KnowledgeGraphService_asyncToGenerator(/*#__PURE__*/KnowledgeGraphService_regenerator().m(function _callee(graphMapName) { + var _getGraphMapData2 = KnowledgeGraphService_asyncToGenerator(/*#__PURE__*/KnowledgeGraphService_regeneratorRuntime().mark(function _callee(graphMapName) { var data, graphMap, query, queries, expandQueries, _queries, j, cypherQuery, res; - return KnowledgeGraphService_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return KnowledgeGraphService_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: data = []; - _context.n = 1; + _context.next = 3; return this._getGraphMapData(graphMapName); - case 1: - graphMap = _context.v; + case 3: + graphMap = _context.sent; if (graphMap) { - _context.n = 2; + _context.next = 6; break; } - return _context.a(2); - case 2: + return _context.abrupt("return"); + case 6: query = graphMap.dataContent.queries && graphMap.dataContent.queries.query || []; queries = []; if (typeof query === 'string') { @@ -76924,26 +76920,29 @@ var KnowledgeGraphService_KnowledgeGraphService = /*#__PURE__*/function (_Common (_queries = queries).push.apply(_queries, KnowledgeGraphService_toConsumableArray(expandQueries)); } j = 0; - case 3: + case 12: if (!(j < queries.length)) { - _context.n = 6; + _context.next = 21; break; } cypherQuery = queries[j]; - _context.n = 4; + _context.next = 16; return this._queryDataBySql(cypherQuery); - case 4: - res = _context.v; + case 16: + res = _context.sent; data = data.concat([], res); - case 5: + case 18: j++; - _context.n = 3; + _context.next = 12; break; - case 6: - return _context.a(2, { + case 21: + return _context.abrupt("return", { data: data, graphMap: graphMap }); + case 22: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -77116,10 +77115,9 @@ var KnowledgeGraphService_KnowledgeGraphService = /*#__PURE__*/function (_Common } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/KnowledgeGraphService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/KnowledgeGraphService.js function services_KnowledgeGraphService_typeof(o) { "@babel/helpers - typeof"; return services_KnowledgeGraphService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_KnowledgeGraphService_typeof(o); } -function services_KnowledgeGraphService_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return services_KnowledgeGraphService_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (services_KnowledgeGraphService_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, services_KnowledgeGraphService_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, services_KnowledgeGraphService_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), services_KnowledgeGraphService_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", services_KnowledgeGraphService_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), services_KnowledgeGraphService_regeneratorDefine2(u), services_KnowledgeGraphService_regeneratorDefine2(u, o, "Generator"), services_KnowledgeGraphService_regeneratorDefine2(u, n, function () { return this; }), services_KnowledgeGraphService_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (services_KnowledgeGraphService_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function services_KnowledgeGraphService_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } services_KnowledgeGraphService_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { services_KnowledgeGraphService_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, services_KnowledgeGraphService_regeneratorDefine2(e, r, n, t); } +function services_KnowledgeGraphService_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ services_KnowledgeGraphService_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == services_KnowledgeGraphService_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(services_KnowledgeGraphService_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function services_KnowledgeGraphService_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function services_KnowledgeGraphService_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { services_KnowledgeGraphService_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { services_KnowledgeGraphService_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function services_KnowledgeGraphService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -77153,7 +77151,7 @@ function services_KnowledgeGraphService_setPrototypeOf(t, e) { return services_K * //doSomething * }) * @extends {ServiceBase} - * @param {string} url - 服务地址。 + * @param {string} url - 知识图谱服务地址,如 http://{ip}:{port}/iserver/services/knowledgeGraph-test/restjsr/graph 。 * @param {Object} options -参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -77242,16 +77240,19 @@ var KnowledgeGraphService = /*#__PURE__*/function (_ServiceBase) { }, { key: "getGraphMapData", value: (function () { - var _getGraphMapData = services_KnowledgeGraphService_asyncToGenerator(/*#__PURE__*/services_KnowledgeGraphService_regenerator().m(function _callee(graphMapName) { + var _getGraphMapData = services_KnowledgeGraphService_asyncToGenerator(/*#__PURE__*/services_KnowledgeGraphService_regeneratorRuntime().mark(function _callee(graphMapName) { var res; - return services_KnowledgeGraphService_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return services_KnowledgeGraphService_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - _context.n = 1; + _context.next = 2; return this._knowledgeGraphService.getGraphMapData(graphMapName); - case 1: - res = _context.v; - return _context.a(2, res); + case 2: + res = _context.sent; + return _context.abrupt("return", res); + case 4: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -77265,7 +77266,7 @@ var KnowledgeGraphService = /*#__PURE__*/function (_ServiceBase) { // EXTERNAL MODULE: ./node_modules/lodash.uniqby/index.js var lodash_uniqby = __webpack_require__(44); var lodash_uniqby_default = /*#__PURE__*/__webpack_require__.n(lodash_uniqby); -;// ./src/common/overlay/knowledge-graph/format.js +;// CONCATENATED MODULE: ./src/common/overlay/knowledge-graph/format.js function format_typeof(o) { "@babel/helpers - typeof"; return format_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, format_typeof(o); } function format_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function format_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? format_ownKeys(Object(t), !0).forEach(function (r) { format_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : format_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -77523,7 +77524,7 @@ function transformExpandCollapseHiddenData(graphMap) { hidden: hidden && JSON.parse(hidden) }; } -;// external "function(){try{return G6}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return G6}catch(e){return {}}}()" var external_function_try_return_G6_catch_e_return_namespaceObject = function(){try{return G6}catch(e){return {}}}(); var external_function_try_return_G6_catch_e_return_default = /*#__PURE__*/__webpack_require__.n(external_function_try_return_G6_catch_e_return_namespaceObject); // EXTERNAL MODULE: ./node_modules/insert-css/index.js @@ -77532,7 +77533,7 @@ var insert_css_default = /*#__PURE__*/__webpack_require__.n(insert_css); // EXTERNAL MODULE: ./node_modules/lodash.throttle/index.js var lodash_throttle = __webpack_require__(8676); var lodash_throttle_default = /*#__PURE__*/__webpack_require__.n(lodash_throttle); -;// ./src/common/overlay/knowledge-graph/G6Render.js +;// CONCATENATED MODULE: ./src/common/overlay/knowledge-graph/G6Render.js function G6Render_typeof(o) { "@babel/helpers - typeof"; return G6Render_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, G6Render_typeof(o); } function G6Render_toConsumableArray(r) { return G6Render_arrayWithoutHoles(r) || G6Render_iterableToArray(r) || G6Render_unsupportedIterableToArray(r) || G6Render_nonIterableSpread(); } function G6Render_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -78663,7 +78664,7 @@ function refreshDragedNodePosition(e) { // EXTERNAL MODULE: ./node_modules/lodash.clonedeep/index.js var lodash_clonedeep = __webpack_require__(5611); var lodash_clonedeep_default = /*#__PURE__*/__webpack_require__.n(lodash_clonedeep); -;// ./src/common/overlay/KnowledgeGraph.js +;// CONCATENATED MODULE: ./src/common/overlay/KnowledgeGraph.js function KnowledgeGraph_typeof(o) { "@babel/helpers - typeof"; return KnowledgeGraph_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, KnowledgeGraph_typeof(o); } function KnowledgeGraph_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function KnowledgeGraph_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, KnowledgeGraph_toPropertyKey(o.key), o); } } @@ -79825,13 +79826,12 @@ function fittingStr(label, maxWidth, fontSize) { return label; } } -;// ./src/mapboxgl/overlay/GraphMap.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/GraphMap.js function GraphMap_typeof(o) { "@babel/helpers - typeof"; return GraphMap_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GraphMap_typeof(o); } function GraphMap_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function GraphMap_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? GraphMap_ownKeys(Object(t), !0).forEach(function (r) { GraphMap_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : GraphMap_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function GraphMap_defineProperty(e, r, t) { return (r = GraphMap_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function GraphMap_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return GraphMap_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (GraphMap_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, GraphMap_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, GraphMap_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), GraphMap_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", GraphMap_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), GraphMap_regeneratorDefine2(u), GraphMap_regeneratorDefine2(u, o, "Generator"), GraphMap_regeneratorDefine2(u, n, function () { return this; }), GraphMap_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (GraphMap_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function GraphMap_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } GraphMap_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { GraphMap_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, GraphMap_regeneratorDefine2(e, r, n, t); } +function GraphMap_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ GraphMap_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == GraphMap_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(GraphMap_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function GraphMap_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function GraphMap_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { GraphMap_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { GraphMap_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function GraphMap_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -79913,17 +79913,17 @@ var GraphMap = /*#__PURE__*/function (_mapboxgl$Evented) { return GraphMap_createClass(GraphMap, [{ key: "createGraphMap", value: (function () { - var _createGraphMap = GraphMap_asyncToGenerator(/*#__PURE__*/GraphMap_regenerator().m(function _callee(graphMapName, options) { + var _createGraphMap = GraphMap_asyncToGenerator(/*#__PURE__*/GraphMap_regeneratorRuntime().mark(function _callee(graphMapName, options) { var _this2 = this; var res, result; - return GraphMap_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return GraphMap_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: this.knowledgeGraphService = this.createKnowledgeGraphService(this.url, options); - _context.n = 1; + _context.next = 3; return this.knowledgeGraphService.getGraphMapData(graphMapName); - case 1: - res = _context.v; + case 3: + res = _context.sent; result = KnowledgeGraph.dataFromGraphMap(res.data, res.graphMap); this.graph = new KnowledgeGraph(options && options.config); this.graph.on('afterlayout', function () { @@ -79935,8 +79935,9 @@ var GraphMap = /*#__PURE__*/function (_mapboxgl$Evented) { }); this.graph.setData(result); this.graph.handleNodeStatus(transformExpandCollapseHiddenData(res.graphMap)); - case 2: - return _context.a(2); + case 9: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -80032,7 +80033,7 @@ var GraphMap = /*#__PURE__*/function (_mapboxgl$Evented) { } }]); }((external_mapboxgl_default()).Evented); -;// ./src/common/overlay/l7/L7LayerBase.js +;// CONCATENATED MODULE: ./src/common/overlay/l7/L7LayerBase.js function L7LayerBase_typeof(o) { "@babel/helpers - typeof"; return L7LayerBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, L7LayerBase_typeof(o); } function L7LayerBase_toConsumableArray(r) { return L7LayerBase_arrayWithoutHoles(r) || L7LayerBase_iterableToArray(r) || L7LayerBase_unsupportedIterableToArray(r) || L7LayerBase_nonIterableSpread(); } function L7LayerBase_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -80078,7 +80079,7 @@ var L7LayerBase = /*#__PURE__*/function (_CustomOverlayLayer) { _ref$options = _ref.options, options = _ref$options === void 0 ? {} : _ref$options; L7LayerBase_classCallCheck(this, L7LayerBase); - var id = options.layerID ? options.layerID : Util.createUniqueID('l7_layer_'); + var id = options.layerID ? options.layerID : Util_Util.createUniqueID('l7_layer_'); var events = ['inited', 'add', 'remove', 'legend:color', 'legend:size', 'click', 'dblclick', 'mousemove', 'mouseover', 'mouseout', 'mouseup', 'mousedown', 'mouseenter', 'mouseleave', 'contextmenu', 'dblclick', 'unclick', 'unmousemove', 'unmouseup', 'unmousedown', 'uncontextmenu', 'unpick', 'touchstart', 'touchend']; _this2 = L7LayerBase_callSuper(this, L7LayerBase, [{ type: type, @@ -80469,7 +80470,7 @@ var L7LayerBase = /*#__PURE__*/function (_CustomOverlayLayer) { } }]); }(CustomOverlayLayer); -;// ./src/common/overlay/l7/util.js +;// CONCATENATED MODULE: ./src/common/overlay/l7/util.js function getL7Scene(L7Scene, L7Map, map) { if (!map) { return null; @@ -80482,13 +80483,9 @@ function getL7Scene(L7Scene, L7Map, map) { }) }); } -;// external "function(){try{return L7}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return L7}catch(e){return {}}}()" var external_function_try_return_L7_catch_e_return_namespaceObject = function(){try{return L7}catch(e){return {}}}(); -;// ./node_modules/@turf/meta/dist/esm/index.js -/* unused harmony import specifier */ var feature; -/* unused harmony import specifier */ var lineString; -/* unused harmony import specifier */ var esm_isObject; -/* unused harmony import specifier */ var point; +;// CONCATENATED MODULE: ./node_modules/@turf/meta/dist/esm/index.js // index.ts function coordEach(geojson, callback, excludeWrapCoord) { @@ -80851,7 +80848,7 @@ function lineReduce(geojson, callback, initialValue) { } function findSegment(geojson, options) { options = options || {}; - if (!esm_isObject(options)) throw new Error("options is invalid"); + if (!isObject(options)) throw new Error("options is invalid"); var featureIndex = options.featureIndex || 0; var multiFeatureIndex = options.multiFeatureIndex || 0; var geometryIndex = options.geometryIndex || 0; @@ -80923,7 +80920,7 @@ function findSegment(geojson, options) { } function findPoint(geojson, options) { options = options || {}; - if (!esm_isObject(options)) throw new Error("options is invalid"); + if (!isObject(options)) throw new Error("options is invalid"); var featureIndex = options.featureIndex || 0; var multiFeatureIndex = options.multiFeatureIndex || 0; var geometryIndex = options.geometryIndex || 0; @@ -80980,7 +80977,7 @@ function findPoint(geojson, options) { throw new Error("geojson is invalid"); } -;// ./node_modules/@turf/bbox/dist/esm/index.js +;// CONCATENATED MODULE: ./node_modules/@turf/center/node_modules/@turf/bbox/dist/esm/index.js // index.ts function bbox(geojson) { @@ -81007,7 +81004,7 @@ function bbox(geojson) { } var index_default = (/* unused pure expression or super */ null && (bbox)); -;// ./node_modules/@turf/helpers/dist/esm/index.js +;// CONCATENATED MODULE: ./node_modules/@turf/center/node_modules/@turf/helpers/dist/esm/index.js function esm_typeof(o) { "@babel/helpers - typeof"; return esm_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, esm_typeof(o); } function esm_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = esm_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function esm_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return esm_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? esm_arrayLikeToArray(r, a) : void 0; } } @@ -81017,37 +81014,59 @@ var earthRadius = 63710088e-1; var factors = { centimeters: earthRadius * 100, centimetres: earthRadius * 100, + cm: earthRadius * 100, degrees: 360 / (2 * Math.PI), + deg: 360 / (2 * Math.PI), feet: earthRadius * 3.28084, + ft: earthRadius * 3.28084, inches: earthRadius * 39.37, + "in": earthRadius * 39.37, kilometers: earthRadius / 1e3, kilometres: earthRadius / 1e3, + km: earthRadius / 1e3, meters: earthRadius, metres: earthRadius, + m: earthRadius, miles: earthRadius / 1609.344, + mi: earthRadius / 1609.344, millimeters: earthRadius * 1e3, millimetres: earthRadius * 1e3, + mm: earthRadius * 1e3, nauticalmiles: earthRadius / 1852, + nmi: earthRadius / 1852, radians: 1, - yards: earthRadius * 1.0936 + rad: 1, + yards: earthRadius * 1.0936, + yd: earthRadius * 1.0936 }; -var areaFactors = (/* unused pure expression or super */ null && ({ +var areaFactors = { acres: 247105e-9, + ac: 247105e-9, centimeters: 1e4, centimetres: 1e4, + cm: 1e4, feet: 10.763910417, + ft: 10.763910417, hectares: 1e-4, + ha: 1e-4, inches: 1550.003100006, + "in": 1550.003100006, kilometers: 1e-6, kilometres: 1e-6, + km: 1e-6, meters: 1, metres: 1, + m: 1, miles: 386e-9, + mi: 386e-9, nauticalmiles: 29155334959812285e-23, + nmi: 29155334959812285e-23, millimeters: 1e6, millimetres: 1e6, - yards: 1.195990046 -})); + mm: 1e6, + yards: 1.195990046, + yd: 1.195990046 +}; function esm_feature(geom, properties) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var feat = { @@ -81285,9 +81304,19 @@ function convertArea(area) { function esm_isNumber(num) { return !isNaN(num) && num !== null && !Array.isArray(num); } -function dist_esm_isObject(input) { +function esm_isObject(input) { return input !== null && esm_typeof(input) === "object" && !Array.isArray(input); } +function removeBbox(geojson) { + delete geojson.bbox; + if (geojson.type === "Feature") { + if (geojson.geometry) removeBbox(geojson.geometry); + } else if (geojson.type === "FeatureCollection") { + geojson.features.forEach(removeBbox); + } else if (geojson.type === "GeometryCollection") { + geojson.geometries.forEach(removeBbox); + } +} function validateBBox(bbox) { if (!bbox) { throw new Error("bbox is required"); @@ -81313,7 +81342,7 @@ function validateId(id) { } } -;// ./node_modules/@turf/center/dist/esm/index.js +;// CONCATENATED MODULE: ./node_modules/@turf/center/dist/esm/index.js // index.ts @@ -81326,9 +81355,9 @@ function center(geojson) { } var esm_index_default = center; -;// external "function(){try{return G2}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return G2}catch(e){return {}}}()" var external_function_try_return_G2_catch_e_return_namespaceObject = function(){try{return G2}catch(e){return {}}}(); -;// ./src/common/mapping/utils/Color.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/Color.js /* COPYRIGHT 2012 SUPERMAP * 本程序只能在有效的授权许可下使用。 * 未经许可,不得以任何手段擅自使用或传播。*/ @@ -81883,7 +81912,7 @@ Color_Color.initialize(); // EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js var lodash_debounce = __webpack_require__(1855); var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce); -;// ./src/common/mapping/utils/epsg-define.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/epsg-define.js @@ -81962,19 +81991,17 @@ function getEpsgCodeInfo(epsgCode, iPortalUrl) { return undefined; }); } -;// ./src/common/mapping/utils/L7LayerUtil.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/L7LayerUtil.js function L7LayerUtil_typeof(o) { "@babel/helpers - typeof"; return L7LayerUtil_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, L7LayerUtil_typeof(o); } -function L7LayerUtil_regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(L7LayerUtil_typeof(e) + " is not iterable"); } -function L7LayerUtil_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return L7LayerUtil_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (L7LayerUtil_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, L7LayerUtil_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, L7LayerUtil_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), L7LayerUtil_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", L7LayerUtil_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), L7LayerUtil_regeneratorDefine2(u), L7LayerUtil_regeneratorDefine2(u, o, "Generator"), L7LayerUtil_regeneratorDefine2(u, n, function () { return this; }), L7LayerUtil_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (L7LayerUtil_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function L7LayerUtil_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } L7LayerUtil_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { L7LayerUtil_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, L7LayerUtil_regeneratorDefine2(e, r, n, t); } +function L7LayerUtil_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ L7LayerUtil_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == L7LayerUtil_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(L7LayerUtil_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function L7LayerUtil_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = L7LayerUtil_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } +function L7LayerUtil_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function L7LayerUtil_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { L7LayerUtil_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { L7LayerUtil_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function L7LayerUtil_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function L7LayerUtil_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? L7LayerUtil_ownKeys(Object(t), !0).forEach(function (r) { L7LayerUtil_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : L7LayerUtil_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function L7LayerUtil_defineProperty(e, r, t) { return (r = L7LayerUtil_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function L7LayerUtil_toPropertyKey(t) { var i = L7LayerUtil_toPrimitive(t, "string"); return "symbol" == L7LayerUtil_typeof(i) ? i : i + ""; } function L7LayerUtil_toPrimitive(t, r) { if ("object" != L7LayerUtil_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != L7LayerUtil_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -function L7LayerUtil_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } -function L7LayerUtil_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { L7LayerUtil_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { L7LayerUtil_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function L7LayerUtil_toConsumableArray(r) { return L7LayerUtil_arrayWithoutHoles(r) || L7LayerUtil_iterableToArray(r) || L7LayerUtil_unsupportedIterableToArray(r) || L7LayerUtil_nonIterableSpread(); } function L7LayerUtil_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function L7LayerUtil_arrayWithoutHoles(r) { if (Array.isArray(r)) return L7LayerUtil_arrayLikeToArray(r); } @@ -82153,7 +82180,7 @@ function getL7Filter(filter, featureFilter) { } var _filter = _toArray(filter), condition = _filter[0], - expressions = L7LayerUtil_arrayLikeToArray(_filter).slice(1); + expressions = _filter.slice(1); var newExpressions = expressions.filter(function (exp) { var _exp = L7LayerUtil_slicedToArray(exp, 2), f = _exp[1]; @@ -82188,7 +82215,8 @@ function L7LayerUtil(config) { spec = config.spec, L7Layer = config.L7Layer, L7 = config.L7, - proj4 = config.proj4; + proj4 = config.proj4, + webMapService = config.webMapService; /** * @param {string} url @@ -82212,7 +82240,9 @@ function L7LayerUtil(config) { */ function getRestDataFields(datasetUrl, credential, options) { var url = addCredentialToUrl("".concat(datasetUrl, "/fields.json?returnAll=true"), credential); - return FetchRequest.get(url, null, options).then(function (res) { + return FetchRequest.get(url, null, L7LayerUtil_objectSpread(L7LayerUtil_objectSpread({}, options), {}, { + withCredentials: webMapService.handleUrlWithCredentials(url) + })).then(function (res) { return res.json(); }).then(function (result) { return result.map(function (item) { @@ -82244,7 +82274,9 @@ function L7LayerUtil(config) { */ function getRestDataDomains(datasetUrl, credential, options) { var url = addCredentialToUrl("".concat(datasetUrl, "/domain.json"), credential); - return FetchRequest.get(url, null, options).then(function (result) { + return FetchRequest.get(url, null, L7LayerUtil_objectSpread(L7LayerUtil_objectSpread({}, options), {}, { + withCredentials: webMapService.handleUrlWithCredentials(url) + })).then(function (result) { return result.json(); }); } @@ -82275,15 +82307,15 @@ function L7LayerUtil(config) { * @param options */ function _requestRestDataFieldsInfo() { - _requestRestDataFieldsInfo = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee2(datasetUrl, credential, options) { + _requestRestDataFieldsInfo = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee2(datasetUrl, credential, options) { var _yield$Promise$all, _yield$Promise$all2, fields, domains; - return L7LayerUtil_regenerator().w(function (_context3) { - while (1) switch (_context3.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee2$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: - _context3.n = 1; + _context3.next = 2; return Promise.all([getRestDataFields(datasetUrl, credential, options), getRestDataDomains(datasetUrl, credential, options)]); - case 1: - _yield$Promise$all = _context3.v; + case 2: + _yield$Promise$all = _context3.sent; _yield$Promise$all2 = L7LayerUtil_slicedToArray(_yield$Promise$all, 2); fields = _yield$Promise$all2[0]; domains = _yield$Promise$all2[1]; @@ -82302,13 +82334,16 @@ function L7LayerUtil(config) { type: type, infos: type === 'RANGE' ? rangeInfos.map(function (rangeInfo) { return pickAttrs(rangeInfo, ['max', 'min', 'type']); - }) : codeInfos.map(function (_ref10) { - var value = _ref10.value; + }) : codeInfos.map(function (_ref12) { + var value = _ref12.value; return value; }) }; }); - return _context3.a(2, sortRestdataField(fields)); + return _context3.abrupt("return", sortRestdataField(fields)); + case 8: + case "end": + return _context3.stop(); } }, _callee2); })); @@ -82324,16 +82359,16 @@ function L7LayerUtil(config) { * @param fields */ function _getRestDataFieldInfo() { - _getRestDataFieldInfo = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee3(datasetUrl, credential, options) { + _getRestDataFieldInfo = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee3(datasetUrl, credential, options) { var fieldsInfos; - return L7LayerUtil_regenerator().w(function (_context4) { - while (1) switch (_context4.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee3$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: - _context4.n = 1; + _context4.next = 2; return requestRestDataFieldsInfo(datasetUrl, credential, options); - case 1: - fieldsInfos = _context4.v; - return _context4.a(2, { + case 2: + fieldsInfos = _context4.sent; + return _context4.abrupt("return", { fieldNames: fieldsInfos.map(function (el) { return el.name; }), @@ -82341,6 +82376,9 @@ function L7LayerUtil(config) { return el.type; }) }); + case 4: + case "end": + return _context4.stop(); } }, _callee3); })); @@ -82457,10 +82495,10 @@ function L7LayerUtil(config) { * @param option */ function _getRestDataGeojsonByWebMap() { - _getRestDataGeojsonByWebMap = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee4(data, options) { + _getRestDataGeojsonByWebMap = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee4(data, options) { var url, dataSourceName, datasetName, credential, SQLParams, datasetUrl, nextOptions, _yield$getRestDataFie, fieldNames, fieldTypes, nextUrl, attrDataInfo, featuresRes; - return L7LayerUtil_regenerator().w(function (_context5) { - while (1) switch (_context5.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee4$(_context5) { + while (1) switch (_context5.prev = _context5.next) { case 0: url = data.url, dataSourceName = data.dataSourceName, datasetName = data.datasetName, credential = data.credential; SQLParams = { @@ -82473,32 +82511,39 @@ function L7LayerUtil(config) { }; datasetUrl = "".concat(url.split('featureResults')[0], "datasources/").concat(dataSourceName, "/datasets/").concat(datasetName); nextOptions = handleWithRequestOptions(datasetUrl, options); - _context5.n = 1; + _context5.next = 6; return getRestDataFieldInfo(datasetUrl, credential, nextOptions); - case 1: - _yield$getRestDataFie = _context5.v; + case 6: + _yield$getRestDataFie = _context5.sent; fieldNames = _yield$getRestDataFie.fieldNames; fieldTypes = _yield$getRestDataFie.fieldTypes; nextUrl = addCredentialToUrl(url, credential); - _context5.n = 2; - return FetchRequest.post(nextUrl, JSON.stringify(SQLParams), nextOptions); - case 2: - attrDataInfo = _context5.v; - _context5.n = 3; + _context5.next = 12; + return FetchRequest.post(nextUrl, JSON.stringify(SQLParams), L7LayerUtil_objectSpread(L7LayerUtil_objectSpread({}, nextOptions), {}, { + withCredentials: webMapService.handleUrlWithCredentials(nextUrl) + })); + case 12: + attrDataInfo = _context5.sent; + _context5.next = 15; return attrDataInfo.json(); - case 3: - featuresRes = _context5.v; - return _context5.a(2, { + case 15: + featuresRes = _context5.sent; + return _context5.abrupt("return", { type: 'FeatureCollection', features: transformFeaturesNameAndType((featuresRes || {}).features || [], fieldNames, fieldTypes) }); + case 17: + case "end": + return _context5.stop(); } }, _callee4); })); return _getRestDataGeojsonByWebMap.apply(this, arguments); } function getStructDataItemJson(href, option) { - return FetchRequest.get(href, null, option).then(function (res) { + return FetchRequest.get(href, null, L7LayerUtil_objectSpread(L7LayerUtil_objectSpread({}, option), {}, { + withCredentials: webMapService.handleUrlWithCredentials(href) + })).then(function (res) { return res.json(); }).then(function (data) { if (data.succeed === false) { @@ -82513,7 +82558,7 @@ function L7LayerUtil(config) { * @param href * @param options */ - function getStructDataItem(_x9, _x0) { + function getStructDataItem(_x9, _x10) { return _getStructDataItem.apply(this, arguments); } /** @@ -82522,38 +82567,40 @@ function L7LayerUtil(config) { * @param options */ function _getStructDataItem() { - _getStructDataItem = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee5(href, options) { - var data, _ref11, features, _ref11$links, links, nextInfo, _t3; - return L7LayerUtil_regenerator().w(function (_context6) { - while (1) switch (_context6.n) { + _getStructDataItem = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee5(href, options) { + var data, _ref13, features, _ref13$links, links, nextInfo; + return L7LayerUtil_regeneratorRuntime().wrap(function _callee5$(_context6) { + while (1) switch (_context6.prev = _context6.next) { case 0: - _context6.n = 1; + _context6.next = 2; return getStructDataItemJson(href, options); - case 1: - data = _context6.v; - _ref11 = data || {}, features = _ref11.features, _ref11$links = _ref11.links, links = _ref11$links === void 0 ? [] : _ref11$links; + case 2: + data = _context6.sent; + _ref13 = data || {}, features = _ref13.features, _ref13$links = _ref13.links, links = _ref13$links === void 0 ? [] : _ref13$links; nextInfo = links.find(function (l) { return l.rel === 'next'; }); if (!nextInfo) { - _context6.n = 3; + _context6.next = 13; break; } - _t3 = features; - _context6.n = 2; + _context6.t0 = features; + _context6.next = 9; return getStructDataItem(nextInfo.href, options); - case 2: - return _context6.a(2, _t3.concat.call(_t3, _context6.v)); - case 3: - return _context6.a(2, features); - case 4: - return _context6.a(2); + case 9: + _context6.t1 = _context6.sent; + return _context6.abrupt("return", _context6.t0.concat.call(_context6.t0, _context6.t1)); + case 13: + return _context6.abrupt("return", features); + case 14: + case "end": + return _context6.stop(); } }, _callee5); })); return _getStructDataItem.apply(this, arguments); } - function getStructDataGeojson(_x1, _x10) { + function getStructDataGeojson(_x11, _x12) { return _getStructDataGeojson.apply(this, arguments); } /** @@ -82563,20 +82610,23 @@ function L7LayerUtil(config) { * @param coordinates 坐标点 */ function _getStructDataGeojson() { - _getStructDataGeojson = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee6(datasetId, options) { + _getStructDataGeojson = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee6(datasetId, options) { var href, allFeature; - return L7LayerUtil_regenerator().w(function (_context7) { - while (1) switch (_context7.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee6$(_context7) { + while (1) switch (_context7.prev = _context7.next) { case 0: href = "".concat(options.server, "web/datas/").concat(datasetId, "/structureddata/ogc-features/collections/all/items.json?limit=10000&offset=0"); - _context7.n = 1; + _context7.next = 3; return getStructDataItem(href, options); - case 1: - allFeature = _context7.v; - return _context7.a(2, { + case 3: + allFeature = _context7.sent; + return _context7.abrupt("return", { type: 'FeatureCollection', features: allFeature }); + case 5: + case "end": + return _context7.stop(); } }, _callee6); })); @@ -82685,46 +82735,52 @@ function L7LayerUtil(config) { * @param data * @param options */ - function getStructuredDataGeojsonByWebMap(_x11, _x12) { + function getStructuredDataGeojsonByWebMap(_x13, _x14) { return _getStructuredDataGeojsonByWebMap.apply(this, arguments); } function _getStructuredDataGeojsonByWebMap() { - _getStructuredDataGeojsonByWebMap = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee7(data, options) { - var allFeature, resultRes, result, projection, epsgWKT, newFeatures; - return L7LayerUtil_regenerator().w(function (_context8) { - while (1) switch (_context8.n) { + _getStructuredDataGeojsonByWebMap = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee7(data, options) { + var allFeature, url, resultRes, result, projection, epsgWKT, newFeatures; + return L7LayerUtil_regeneratorRuntime().wrap(function _callee7$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: - _context8.n = 1; + _context8.next = 2; return getStructDataGeojson(data.dataId, options); - case 1: - allFeature = _context8.v; - _context8.n = 2; - return FetchRequest.get("".concat(options.server, "web/datas/").concat(data.dataId, "/structureddata.json"), null, options); case 2: - resultRes = _context8.v; - _context8.n = 3; + allFeature = _context8.sent; + url = "".concat(options.server, "web/datas/").concat(data.dataId, "/structureddata.json"); + _context8.next = 6; + return FetchRequest.get(url, null, L7LayerUtil_objectSpread(L7LayerUtil_objectSpread({}, options), {}, { + withCredentials: webMapService.handleUrlWithCredentials(url) + })); + case 6: + resultRes = _context8.sent; + _context8.next = 9; return resultRes.json(); - case 3: - result = _context8.v; + case 9: + result = _context8.sent; projection = "EPSG:".concat(result.epsgCode); if (!(projection !== 'EPSG:4326')) { - _context8.n = 6; + _context8.next = 19; break; } if (getProjection(projection, proj4)) { - _context8.n = 5; + _context8.next = 17; break; } - _context8.n = 4; + _context8.next = 15; return getEpsgCodeInfo(projection, options.server); - case 4: - epsgWKT = _context8.v; + case 15: + epsgWKT = _context8.sent; registerProjection(projection, epsgWKT, proj4); - case 5: + case 17: newFeatures = transformGeometryCoordinates(allFeature.features, projection); newFeatures && (allFeature.features = newFeatures); - case 6: - return _context8.a(2, allFeature); + case 19: + return _context8.abrupt("return", allFeature); + case 20: + case "end": + return _context8.stop(); } }, _callee7); })); @@ -82765,7 +82821,7 @@ function L7LayerUtil(config) { * @param sourceLayer * @param options */ - function geoJSONSourceToL7Source(_x13, _x14, _x15) { + function geoJSONSourceToL7Source(_x15, _x16, _x17) { return _geoJSONSourceToL7Source.apply(this, arguments); } /** @@ -82774,44 +82830,47 @@ function L7LayerUtil(config) { * @returns {Object} L7 mvt source */ function _geoJSONSourceToL7Source() { - _geoJSONSourceToL7Source = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee8(source, sourceLayer, options) { - var data, od, cluster, rules, parser, transforms, _t4, _t5, _t6, _t7; - return L7LayerUtil_regenerator().w(function (_context9) { - while (1) switch (_context9.n) { + _geoJSONSourceToL7Source = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee8(source, sourceLayer, options) { + var data, od, cluster, rules, parser, transforms; + return L7LayerUtil_regeneratorRuntime().wrap(function _callee8$(_context9) { + while (1) switch (_context9.prev = _context9.next) { case 0: data = source.data, od = source.od, cluster = source.cluster; if (!(data && data.type === 'FeatureCollection')) { - _context9.n = 1; + _context9.next = 3; break; } - return _context9.a(2, { + return _context9.abrupt("return", { data: data }); - case 1: + case 3: rules = { 'supermap-rest-data': getRestDataGeojsonByWebMap, 'supermap-structured-data': getStructuredDataGeojsonByWebMap }; parser = od && webmapODToParser(source); transforms = cluster && webmapClusterToTransform(source); - _t4 = rules[data.type]; - if (!_t4) { - _context9.n = 3; + _context9.t0 = rules[data.type]; + if (!_context9.t0) { + _context9.next = 11; break; } - _context9.n = 2; + _context9.next = 10; return rules[data.type](source.data, options); - case 2: - _t4 = _context9.v; - case 3: - _t5 = _t4; - _t6 = parser; - _t7 = transforms; - return _context9.a(2, { - data: _t5, - parser: _t6, - transforms: _t7 + case 10: + _context9.t0 = _context9.sent; + case 11: + _context9.t1 = _context9.t0; + _context9.t2 = parser; + _context9.t3 = transforms; + return _context9.abrupt("return", { + data: _context9.t1, + parser: _context9.t2, + transforms: _context9.t3 }); + case 15: + case "end": + return _context9.stop(); } }, _callee8); })); @@ -82984,9 +83043,9 @@ function L7LayerUtil(config) { var value = newValueArgs[0]; newValueArgs.unshift(); var result = attr && attr.values ? attr.values(value) : value; - return multiple && isNumber(result) ? result * multiple : result; + return multiple && util_isNumber(result) ? result * multiple : result; } - return multiple && isNumber(attr.values) ? attr.values * multiple : attr.values; + return multiple && util_isNumber(attr.values) ? attr.values * multiple : attr.values; }); } @@ -83634,7 +83693,7 @@ function L7LayerUtil(config) { style: style }); } - function restoreL7Layers(_x16) { + function restoreL7Layers(_x18) { return _restoreL7Layers.apply(this, arguments); } /** @@ -83642,64 +83701,67 @@ function L7LayerUtil(config) { * @param map */ function _restoreL7Layers() { - _restoreL7Layers = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee9(_ref7) { - var layers, sources, map, options, result, _iterator2, _step2, currentLayer, originSource, rules, source, selectedType, _t8, _t9; - return L7LayerUtil_regenerator().w(function (_context0) { - while (1) switch (_context0.p = _context0.n) { + _restoreL7Layers = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee9(_ref7) { + var layers, sources, map, options, result, _iterator2, _step2, currentLayer, originSource, rules, source, selectedType; + return L7LayerUtil_regeneratorRuntime().wrap(function _callee9$(_context10) { + while (1) switch (_context10.prev = _context10.next) { case 0: layers = _ref7.layers, sources = _ref7.sources, map = _ref7.map, options = _ref7.options; result = []; _iterator2 = L7LayerUtil_createForOfIteratorHelper(layers); - _context0.p = 1; + _context10.prev = 3; _iterator2.s(); - case 2: + case 5: if ((_step2 = _iterator2.n()).done) { - _context0.n = 7; + _context10.next = 23; break; } currentLayer = _step2.value; - _context0.p = 3; + _context10.prev = 7; originSource = sources[currentLayer.source]; rules = L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty(L7LayerUtil_defineProperty({}, SelectStyleTypes.animatePoint, transformCircleLayerToSceneLayer), SelectStyleTypes.radarPoint, transformWebmapRadarLayerToSceneLayer), SelectStyleTypes.od, transformWebmapODLayerToSceneLayer), SelectStyleTypes.column, transfromPointExtrusionLayerToSceneLayer), SelectStyleTypes.line, transformWebmapLineLayerToSceneLayer), SelectStyleTypes.bar, transformWebmapChartLineLayerToSceneLayer), SelectStyleTypes.pie, transformWebmapChartPieLayerToSceneLayer), SelectStyleTypes.heatGrid, transformWebmapHeatLayerToSceneLayer), SelectStyleTypes.heat3DGrid, transformWebmapHeatExtrusionLayerToSceneLayer), SelectStyleTypes.heat3D, transformWebmapHeatExtrusionBasicLayerToSceneLayer); - _context0.n = 4; + _context10.next = 12; return WebMapSourceToL7Source(originSource, currentLayer['source-layer'], options); - case 4: - source = _context0.v; + case 12: + source = _context10.sent; selectedType = getSelectType(currentLayer); result.push(rules[selectedType] && rules[selectedType](currentLayer, source, map) || transformWebmapTextLayerToSceneLayer(currentLayer, source, (currentLayer || {}).visible, map)); - _context0.n = 6; + _context10.next = 21; break; - case 5: - _context0.p = 5; - _t8 = _context0.v; - console.error(_t8); + case 17: + _context10.prev = 17; + _context10.t0 = _context10["catch"](7); + console.error(_context10.t0); options.emitterEvent('layercreatefailed', { - error: _t8, + error: _context10.t0, map: map, layer: currentLayer }); - case 6: - _context0.n = 2; + case 21: + _context10.next = 5; break; - case 7: - _context0.n = 9; + case 23: + _context10.next = 28; break; - case 8: - _context0.p = 8; - _t9 = _context0.v; - _iterator2.e(_t9); - case 9: - _context0.p = 9; + case 25: + _context10.prev = 25; + _context10.t1 = _context10["catch"](3); + _iterator2.e(_context10.t1); + case 28: + _context10.prev = 28; _iterator2.f(); - return _context0.f(9); - case 10: - return _context0.a(2, result); - } - }, _callee9, null, [[3, 5], [1, 8, 9, 10]]); + return _context10.finish(28); + case 31: + return _context10.abrupt("return", result); + case 32: + case "end": + return _context10.stop(); + } + }, _callee9, null, [[3, 25, 28, 31], [7, 17]]); })); return _restoreL7Layers.apply(this, arguments); } - function getScene(_x17) { + function getScene(_x19) { return _getScene.apply(this, arguments); } /** @@ -83708,17 +83770,20 @@ function L7LayerUtil(config) { * @param image image */ function _getScene() { - _getScene = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee0(map) { - return L7LayerUtil_regenerator().w(function (_context1) { - while (1) switch (_context1.n) { + _getScene = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee10(map) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee10$(_context11) { + while (1) switch (_context11.prev = _context11.next) { case 0: - return _context1.a(2, new Promise(function (resolve) { + return _context11.abrupt("return", new Promise(function (resolve) { map.getL7Scene().then(function (s) { resolve(s); }); })); + case 1: + case "end": + return _context11.stop(); } - }, _callee0); + }, _callee10); })); return _getScene.apply(this, arguments); } @@ -83756,19 +83821,19 @@ function L7LayerUtil(config) { a: a }; } - function getChangedImageUrl(_x18, _x19) { + function getChangedImageUrl(_x20, _x21) { return _getChangedImageUrl.apply(this, arguments); } function _getChangedImageUrl() { - _getChangedImageUrl = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee1(url, iconStyle) { + _getChangedImageUrl = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee11(url, iconStyle) { var img, color, rotate, canvas, ctx, imageData, data, _string2RGBAData, r, g, b, a, i; - return L7LayerUtil_regenerator().w(function (_context10) { - while (1) switch (_context10.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee11$(_context12) { + while (1) switch (_context12.prev = _context12.next) { case 0: - _context10.n = 1; + _context12.next = 2; return loadImage(url); - case 1: - img = _context10.v; + case 2: + img = _context12.sent; color = iconStyle.color, rotate = iconStyle.rotate; canvas = document.createElement('canvas'); ctx = canvas.getContext('2d'); @@ -83789,9 +83854,12 @@ function L7LayerUtil(config) { } ctx.putImageData(imageData, 0, 0); } - return _context10.a(2, canvas.toDataURL()); + return _context12.abrupt("return", canvas.toDataURL()); + case 13: + case "end": + return _context12.stop(); } - }, _callee1); + }, _callee11); })); return _getChangedImageUrl.apply(this, arguments); } @@ -83807,26 +83875,29 @@ function L7LayerUtil(config) { img.src = url; }); } - function processImage(_x20, _x21) { + function processImage(_x22, _x23) { return _processImage.apply(this, arguments); } function _processImage() { - _processImage = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee10(url, iconStyle) { + _processImage = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee12(url, iconStyle) { var changeedUrl, modifiedImg; - return L7LayerUtil_regenerator().w(function (_context11) { - while (1) switch (_context11.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee12$(_context13) { + while (1) switch (_context13.prev = _context13.next) { case 0: - _context11.n = 1; + _context13.next = 2; return getChangedImageUrl(url, iconStyle); - case 1: - changeedUrl = _context11.v; - _context11.n = 2; - return loadImage(changeedUrl); case 2: - modifiedImg = _context11.v; - return _context11.a(2, modifiedImg); + changeedUrl = _context13.sent; + _context13.next = 5; + return loadImage(changeedUrl); + case 5: + modifiedImg = _context13.sent; + return _context13.abrupt("return", modifiedImg); + case 7: + case "end": + return _context13.stop(); } - }, _callee10); + }, _callee12); })); return _processImage.apply(this, arguments); } @@ -83906,7 +83977,7 @@ function L7LayerUtil(config) { request.send(null); }); } - function changeSpriteIconToImgData(_x22, _x23, _x24) { + function changeSpriteIconToImgData(_x24, _x25, _x26) { return _changeSpriteIconToImgData.apply(this, arguments); } /** @@ -83916,28 +83987,31 @@ function L7LayerUtil(config) { * @param scene */ function _changeSpriteIconToImgData() { - _changeSpriteIconToImgData = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee11(spriteUrl, iconJsonInfo, options) { + _changeSpriteIconToImgData = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee13(spriteUrl, iconJsonInfo, options) { var spriteImage; - return L7LayerUtil_regenerator().w(function (_context12) { - while (1) switch (_context12.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee13$(_context14) { + while (1) switch (_context14.prev = _context14.next) { case 0: - _context12.n = 1; + _context14.next = 2; return getSpriteImage(spriteUrl, options); - case 1: - spriteImage = _context12.v; + case 2: + spriteImage = _context14.sent; if (spriteImage) { - _context12.n = 2; + _context14.next = 5; break; } - return _context12.a(2); - case 2: - return _context12.a(2, getPartImageDataFromImage(iconJsonInfo, spriteImage)); + return _context14.abrupt("return"); + case 5: + return _context14.abrupt("return", getPartImageDataFromImage(iconJsonInfo, spriteImage)); + case 6: + case "end": + return _context14.stop(); } - }, _callee11); + }, _callee13); })); return _changeSpriteIconToImgData.apply(this, arguments); } - function addTextures(_x25) { + function addTextures(_x27) { return _addTextures.apply(this, arguments); } /** @@ -83946,64 +84020,65 @@ function L7LayerUtil(config) { * @param filter */ function _addTextures() { - _addTextures = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee12(_ref8) { + _addTextures = L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee14(_ref8) { var layers, sprite, spriteJson, scene, options, timestamp, index, l, texture, iconInfo, image, style, color, rotate, modifiedImg, newImageId; - return L7LayerUtil_regenerator().w(function (_context13) { - while (1) switch (_context13.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _callee14$(_context15) { + while (1) switch (_context15.prev = _context15.next) { case 0: layers = _ref8.layers, sprite = _ref8.sprite, spriteJson = _ref8.spriteJson, scene = _ref8.scene, options = _ref8.options; timestamp = +new Date(); index = 0; - case 1: + case 3: if (!(index < layers.length)) { - _context13.n = 6; + _context15.next = 26; break; } l = layers[index]; texture = (l.texture || {}).values; iconInfo = spriteJson[texture]; if (!iconInfo) { - _context13.n = 5; + _context15.next = 23; break; } - _context13.n = 2; + _context15.next = 10; return changeSpriteIconToImgData(sprite, L7LayerUtil_objectSpread(L7LayerUtil_objectSpread({}, iconInfo), {}, { id: texture }), options); - case 2: - image = _context13.v; + case 10: + image = _context15.sent; style = l.style || {}; color = style.textureColor, rotate = style.textureRotate; if (!(color || rotate)) { - _context13.n = 4; + _context15.next = 22; break; } - _context13.n = 3; + _context15.next = 16; return processImage(imgDataToBlob(image), { color: color, rotate: rotate }); - case 3: - modifiedImg = _context13.v; + case 16: + modifiedImg = _context15.sent; newImageId = "".concat(texture, "_").concat(timestamp, "_").concat(index); Object.assign(l.texture || {}, { values: newImageId }); scene.addImage(newImageId, modifiedImg); - _context13.n = 5; + _context15.next = 23; break; - case 4: + case 22: if (!scene.hasImage(texture)) { scene.addImage(texture, imgDataToBlob(image)); } - case 5: + case 23: index++; - _context13.n = 1; + _context15.next = 3; break; - case 6: - return _context13.a(2); + case 26: + case "end": + return _context15.stop(); } - }, _callee12); + }, _callee14); })); return _addTextures.apply(this, arguments); } @@ -84087,9 +84162,9 @@ function L7LayerUtil(config) { centerPoint = ((esm_index_default(feature) || {}).geometry || {}).coordinates; } var _ref9 = centerPoint || [], - _ref0 = L7LayerUtil_slicedToArray(_ref9, 2), - lng = _ref0[0], - lat = _ref0[1]; + _ref10 = L7LayerUtil_slicedToArray(_ref9, 2), + lng = _ref10[0], + lat = _ref10[1]; return { lng: lng, lat: lat @@ -84370,16 +84445,16 @@ function L7LayerUtil(config) { return layer; } return { - addL7Layers: function addL7Layers(_ref1) { - return L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regenerator().m(function _callee() { - var map, webMapInfo, l7Layers, spriteDatas, options, layers, sources, sprite, formateL7Layers, scene, _iterator, _step, _loop, _t, _t2; - return L7LayerUtil_regenerator().w(function (_context2) { - while (1) switch (_context2.p = _context2.n) { + addL7Layers: function addL7Layers(_ref11) { + return L7LayerUtil_asyncToGenerator(/*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _callee() { + var map, webMapInfo, l7Layers, spriteDatas, options, layers, sources, sprite, formateL7Layers, scene, _iterator, _step, _loop; + return L7LayerUtil_regeneratorRuntime().wrap(function _callee$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: - map = _ref1.map, webMapInfo = _ref1.webMapInfo, l7Layers = _ref1.l7Layers, spriteDatas = _ref1.spriteDatas, options = _ref1.options; + map = _ref11.map, webMapInfo = _ref11.webMapInfo, l7Layers = _ref11.l7Layers, spriteDatas = _ref11.spriteDatas, options = _ref11.options; // 添加L7图层 layers = webMapInfo.layers, sources = webMapInfo.sources, sprite = webMapInfo.sprite; - _context2.n = 1; + _context2.next = 4; return restoreL7Layers({ layers: l7Layers, sources: sources, @@ -84388,18 +84463,18 @@ function L7LayerUtil(config) { withoutFormatSuffix: true }, options) }); - case 1: - formateL7Layers = _context2.v; - _context2.n = 2; + case 4: + formateL7Layers = _context2.sent; + _context2.next = 7; return getScene(map); - case 2: - scene = _context2.v; + case 7: + scene = _context2.sent; if (!(Object.keys(spriteDatas).length > 0)) { - _context2.n = 6; + _context2.next = 18; break; } - _context2.p = 3; - _context2.n = 4; + _context2.prev = 9; + _context2.next = 12; return addTextures({ layers: formateL7Layers.filter(function (l) { return !!l.texture; @@ -84409,24 +84484,24 @@ function L7LayerUtil(config) { scene: scene, options: options }); - case 4: - _context2.n = 6; + case 12: + _context2.next = 18; break; - case 5: - _context2.p = 5; - _t = _context2.v; - console.error(_t); + case 14: + _context2.prev = 14; + _context2.t0 = _context2["catch"](9); + console.error(_context2.t0); options.emitterEvent('layercreatefailed', { - error: _t, + error: _context2.t0, map: map }); - case 6: + case 18: _iterator = L7LayerUtil_createForOfIteratorHelper(formateL7Layers); - _context2.p = 7; - _loop = /*#__PURE__*/L7LayerUtil_regenerator().m(function _loop() { + _context2.prev = 19; + _loop = /*#__PURE__*/L7LayerUtil_regeneratorRuntime().mark(function _loop() { var l, layerIndex, beforeLayer, actionLayer, layer; - return L7LayerUtil_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return L7LayerUtil_regeneratorRuntime().wrap(function _loop$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: l = _step.value; layerIndex = layers.findIndex(function (wLayer) { @@ -84445,36 +84520,38 @@ function L7LayerUtil(config) { map.addLayer(layer, beforeLayer && beforeLayer.id); } } - case 1: - return _context.a(2); + case 4: + case "end": + return _context.stop(); } }, _loop); }); _iterator.s(); - case 8: + case 22: if ((_step = _iterator.n()).done) { - _context2.n = 10; + _context2.next = 26; break; } - return _context2.d(L7LayerUtil_regeneratorValues(_loop()), 9); - case 9: - _context2.n = 8; + return _context2.delegateYield(_loop(), "t1", 24); + case 24: + _context2.next = 22; break; - case 10: - _context2.n = 12; + case 26: + _context2.next = 31; break; - case 11: - _context2.p = 11; - _t2 = _context2.v; - _iterator.e(_t2); - case 12: - _context2.p = 12; + case 28: + _context2.prev = 28; + _context2.t2 = _context2["catch"](19); + _iterator.e(_context2.t2); + case 31: + _context2.prev = 31; _iterator.f(); - return _context2.f(12); - case 13: - return _context2.a(2); + return _context2.finish(31); + case 34: + case "end": + return _context2.stop(); } - }, _callee, null, [[7, 11, 12, 13], [3, 5]]); + }, _callee, null, [[9, 14], [19, 28, 31, 34]]); }))(); }, isL7Layer: isL7Layer, @@ -84510,8 +84587,8 @@ function getFilterFields(filter) { } return result; } -;// ./node_modules/@mapbox/mapbox-gl-style-spec/dist/index.es.js -var _excluded=(/* unused pure expression or super */ null && (["data"]));function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=r.length?{done:!0}:{done:!1,value:r[_n++]};},e:function e(r){throw r;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var o,a=!0,u=!1;return{s:function s(){t=t.call(r);},n:function n(){var r=t.next();return a=r.done,r;},e:function e(r){u=!0,o=r;},f:function f(){try{a||null==t["return"]||t["return"]();}finally{if(u)throw o;}}};}function index_es_unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return index_es_arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?index_es_arrayLikeToArray(r,a):void 0;}}function index_es_arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e`.",required:true};var index_es_config={"*":{type:"*",doc:"Value of the imported style's configuration option."}};var schema={"*":{type:"option",doc:"Specification of a configuration option."}};var index_es_option={"default":{type:"*",doc:"Default configuration value for this option.","property-type":"data-constant",expression:{interpolated:false},required:true},type:{type:"enum",doc:"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.",values:{string:{doc:"The result will be coerced to a string."},number:{doc:"The result will be coerced to a number."},"boolean":{doc:"The result will be coerced to a boolean."},color:{doc:"The result will be coerced to a color."}}},array:{type:"boolean",doc:"If true, this option is returned as an array"},minValue:{type:"number",doc:"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},maxValue:{type:"number",doc:"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},stepValue:{type:"number",doc:"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},values:{type:"array",value:"*",doc:"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."}};var models={"*":{type:"model",doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}};var properties=["properties_light_directional","properties_light_ambient","properties_light_flat"];var properties_light_directional={direction:{type:"array","default":[210,30],minimum:[0,0],maximum:[360,90],length:2,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom"]},doc:"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).",example:[90,40],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"cast-shadows":{type:"boolean","default":false,doc:"Enable/Disable shadow casting for this light",transition:false,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-quality":{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,expression:{interpolated:false,parameters:["zoom"]},transition:false,doc:"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},experimental:true},"shadow-intensity":{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},doc:"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.",transition:true,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-draw-before-layer":{type:"string","property-type":"data-constant",doc:"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},experimental:true}};var properties_light_ambient={color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}};var properties_light_flat={anchor:{type:"enum","default":"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant",transition:false,expression:{interpolated:false,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},position:{type:"array","default":[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}};var iconsets={"*":{type:"iconset",doc:"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}};var iconset=["iconset_sprite","iconset_source"];var iconset_sprite={type:{required:true,type:"enum",values:{sprite:{doc:"A sprite icon set."}},doc:"The type of the icon set."},url:{required:true,type:"string",doc:"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",example:"mapbox://sprites/mapbox/bright"}};var iconset_source={type:{required:true,type:"enum",values:{source:{doc:"A source icon set."}},doc:"The type of the icon set."},source:{required:true,type:"string",doc:"Name of a source of `raster-array` type to be used for the icon set."}};var sources={"*":{type:"source",doc:"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}};var source=["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"];var source_vector={type:{required:true,type:"enum",values:{vector:{doc:"A vector tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},"default":"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_raster={type:{required:true,type:"enum",values:{raster:{doc:"A raster tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number","default":512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},"default":"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_raster_dem={type:{required:true,type:"enum",values:{"raster-dem":{doc:"A RGB-encoded raster DEM source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number","default":512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},encoding:{type:"enum",values:{terrarium:{doc:"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},mapbox:{doc:"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},"default":"mapbox",doc:"The encoding used by this source. Mapbox Terrain RGB is used by default"},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_raster_array={experimental:true,type:{required:true,type:"enum",values:{"raster-array":{doc:"A raster array source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number","default":512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},rasterLayers:{type:"*",doc:"Contains the description of the raster data layers and the bands contained within the tiles."},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_geojson={type:{required:true,type:"enum",values:{geojson:{doc:"A GeoJSON data source."}},doc:"The data type of the GeoJSON source."},data:{type:"*",doc:"A URL to a GeoJSON file, or inline GeoJSON."},maxzoom:{type:"number","default":18,doc:"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},minzoom:{type:"number","default":0,doc:"Minimum zoom level at which to create vector tiles"},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},buffer:{type:"number","default":128,maximum:512,minimum:0,doc:"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},filter:{type:"*",doc:"An expression for filtering features prior to processing them for rendering."},tolerance:{type:"number","default":0.375,doc:"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},cluster:{type:"boolean","default":false,doc:"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n * `cluster` Is `true` if the point is a cluster \n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\n * `point_count` Number of original points grouped into this cluster\n * `point_count_abbreviated` An abbreviated point count"},clusterRadius:{type:"number","default":50,minimum:0,doc:"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},clusterMaxZoom:{type:"number",doc:"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},clusterMinPoints:{type:"number",doc:"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},clusterProperties:{type:"*",doc:"An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\"property_name\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\"+\"` or `\"max\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{\"sum\": [\"+\", [\"get\", \"scalerank\"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\"accumulated\"]` value, e.g.:\n`{\"sum\": [[\"+\", [\"accumulated\"], [\"get\", \"sum\"]], [\"get\", \"scalerank\"]]}`"},lineMetrics:{type:"boolean","default":false,doc:"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},generateId:{type:"boolean","default":false,doc:"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},dynamic:{type:"boolean","default":false,doc:"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{js:"3.4.0"}}}};var source_video={type:{required:true,type:"enum",values:{video:{doc:"A video data source."}},doc:"The data type of the video source."},urls:{required:true,type:"array",value:"string",doc:"URLs to video content in order of preferred format."},coordinates:{required:true,doc:"Corners of video specified in longitude, latitude pairs.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}};var source_image={type:{required:true,type:"enum",values:{image:{doc:"An image data source."}},doc:"The data type of the image source."},url:{required:false,type:"string",doc:"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},coordinates:{required:true,doc:"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}};var modelNodeOverride={orientation:{type:"array",value:"number",length:3,"default":[0,0,0],period:360,units:"degrees",doc:"Override the orientation of the model node in euler angles [x, y, z]."}};var modelNodeOverrides={"*":{type:"modelNodeOverride",doc:"An object defining model node properties to override. Object key is the node name as defined in the model."}};var modelMaterialOverride={"model-color":{type:"color",doc:"Override the tint color of the material."},"model-color-mix-intensity":{type:"number",doc:"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors."},"model-opacity":{type:"number",doc:"Override the opacity of the material."},"model-emissive-strength":{type:"number",units:"intensity",doc:"Override strength of the emission of material."}};var modelMaterialOverrides={"*":{type:"modelMaterialOverride",doc:"An object defining material properties to override. Object key is the material name as defined in the model."}};var modelSourceModel={uri:{type:"string",required:true,doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},position:{type:"array",value:"number",length:2,required:false,"default":[0,0],minimum:[-180,-90],maximum:[180,90],doc:"Position of the model in longitude and latitude [lng, lat]."},orientation:{type:"array",value:"number",length:3,required:false,"default":[0,0,0],period:360,units:"degrees",doc:"Orientation of the model in euler angles [x, y, z]."},nodeOverrides:{type:"modelNodeOverrides",required:false,doc:"A collection of node overrides."},materialOverrides:{type:"modelMaterialOverrides",required:false,doc:"A collection of material overrides."},nodeOverrideNames:{type:"array",value:"string",doc:"An array of one or more model node names whose transform will be overridden from model layer paint properties.",required:false},materialOverrideNames:{type:"array",value:"string",doc:"An array of one or more model material names whose properties will be overridden from model layer paint properties.",required:false},featureProperties:{type:"*",doc:"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.",required:false}};var modelSourceModels={"*":{type:"modelSourceModel",doc:"A 3D model and its properties."}};var source_model={type:{required:true,type:"enum",values:{model:{doc:"A collection of 3D models"},"batched-model":{doc:"A collection of 3D models with anchor data"}},doc:"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},maxzoom:{type:"number","default":18,doc:"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which batched-model tiles are available"},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},models:{type:"modelSourceModels",doc:"Defines properties of 3D models in collection. Requires `model` source type."}};var index_es_layer={id:{type:"string",doc:"Unique layer name.",required:true},type:{type:"enum",values:{fill:{doc:"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},line:{doc:"A stroked line.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},symbol:{doc:"An icon or a text label.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},circle:{doc:"A filled circle.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},heatmap:{doc:"A heatmap.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"fill-extrusion":{doc:"An extruded (3D) polygon.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},building:{doc:"A procedural 3D building.","sdk-support":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"private":true},raster:{doc:"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},"raster-particle":{experimental:true,doc:"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},hillshade:{doc:"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}}},model:{doc:"A 3D model","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},background:{doc:"The background color or pattern of the map.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},sky:{doc:"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},slot:{doc:"Marks the position of a slot.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},clip:{doc:"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}}}},doc:"Rendering type of this layer.",required:true},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."},source:{type:"string",doc:"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{type:"string",doc:"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},slot:{type:"string",doc:"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},minzoom:{type:"number",minimum:0,maximum:24,doc:"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},maxzoom:{type:"number",minimum:0,maximum:24,doc:"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},filter:{type:"filter",doc:"An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `[\"feature-state\", ...]` expression is not supported in filter expressions. The `[\"pitch\"]` and `[\"distance-from-center\"]` expressions are supported only for filter expressions on the symbol layer."},layout:{type:"layout",doc:"Layout properties for the layer."},paint:{type:"paint",doc:"Default paint properties for this layer."},appearances:{type:"array",value:"appearance","supported-layer-types":["symbol"],experimental:true,doc:"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with 'Works with appearances' are supported."}};var appearance={condition:{type:"boolean",doc:"A boolean expression that determines when this appearance should be applied.",expression:{interpolated:true,parameters:["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},name:{type:"string",doc:"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},properties:{type:"*",doc:"Style properties to apply when the condition is met."}};var layout=["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"];var layout_background={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_sky={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_model={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"model-id":{type:"string","default":"",doc:"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:false,requires:[{source:["geojson","vector"]}]},"model-allow-density-reduction":{type:"boolean","default":true,transition:false,experimental:true,doc:"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},"property-type":"data-constant"}};var layout_clip={"clip-layer-types":{type:"array",value:"enum",values:{model:{doc:"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},symbol:{doc:"If present the clip layer would remove all symbol layers below it."}},"default":[],doc:"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:false},"property-type":"data-constant"},"clip-layer-scope":{type:"array",value:"string","default":[],doc:"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{js:"3.6.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:false},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},expression:{interpolated:false},"property-type":"data-constant"}};var layout_fill={"fill-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"fill-elevation-reference":{type:"enum",doc:"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-base":{doc:"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as 'hatched areas' that should exist only on top of road polygons."}},"default":"none",experimental:true,"private":true,transition:false,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{type:"boolean",doc:"Determines whether bridge guard rails are added for elevated roads.","default":"true",transition:false,experimental:true,"private":true,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"}};var layout_circle={"circle-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"},"data-driven styling":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{type:"enum",doc:"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none",experimental:true,transition:false,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:false},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_heatmap={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_building={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false},"property-type":"constant"},"building-facade":{type:"boolean","default":false,doc:"Whether to render facade details on the buildings.","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},"property-type":"data-driven"},"building-facade-floors":{type:"number",minimum:1,maximum:200,"default":3,doc:"Number of floors created when building-facade is enabled.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},requires:["building-facade"]},"building-facade-unit-width":{type:"number",minimum:1,maximum:20,"default":3.1,doc:"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},requires:["building-facade"]},"building-facade-window":{type:"array",length:2,value:"number",minimum:0.1,maximum:1,"default":[0.9,0.9],doc:"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},requires:["building-facade"]},"building-roof-shape":{type:"enum",values:{flat:{doc:"Use flat roof for the procedurally generated buildings."},hipped:{doc:"Use hipped roof for the procedurally generated buildings."},gabled:{doc:"Use gabled roof for the procedurally generated buildings."},parapet:{doc:"Use parapet roof for the procedurally generated buildings."},mansard:{doc:"Use mansard roof for the procedurally generated buildings."},skillion:{doc:"Use skillion roof for the procedurally generated buildings."},pyramidal:{doc:"Use pyramidal roof for the procedurally generated buildings."}},"default":"flat",doc:"Roof type to use for the procedural buildings.","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},"property-type":"data-driven"},"building-height":{type:"number","default":0,minimum:0,units:"meters",doc:"The height of the procedural buildings.",transition:true,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false},"property-type":"data-driven"},"building-base":{type:"number","default":0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.",transition:true,requires:["building-height"],"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven",type:"number","private":true,units:"meters","default":0,minimum:0,doc:"The extent of the flood light effect on the walls of the buildings in meters.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven",type:"number","private":true,units:"meters","default":0,doc:"The extent of the flood light effect on the ground beneath the buildings in meters.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven",type:"boolean","private":true,units:"meters","default":false,doc:"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.",transition:true,requires:["building-roof-shape"],expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}};var layout_line={"line-cap":{type:"enum",values:{butt:{doc:"A cap with a squared-off end which is drawn to the exact endpoint of the line."},round:{doc:"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},square:{doc:"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."}},"default":"butt",doc:"The display of line endings.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-join":{type:"enum",values:{bevel:{doc:"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."},round:{doc:"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},miter:{doc:"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},none:{doc:"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can't be used with data-driven styling."}},"default":"miter",doc:"The display of lines when joining.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"`none` value":{js:"3.4.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number","default":2,doc:"Used to automatically convert miter joins to bevel joins for sharp angles.",requires:[{"line-join":"miter"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number","default":1.05,doc:"Used to automatically convert round joins to miter joins for shallow angles.",requires:[{"line-join":"round"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{type:"number",doc:"Vertical offset from ground, in meters. Not supported for globe projection at the moment.","default":0,requires:["line-elevation-reference"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false,parameters:["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{type:"enum",doc:"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},sea:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none",transition:false,"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false},"property-type":"data-constant"},"line-cross-slope":{type:"number",experimental:true,doc:"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\n * Vertical lines don't support line caps \n * `line-join: round` is not supported with this property",requires:["line-z-offset"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false},"property-type":"constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"line-width-unit":{type:"enum",doc:"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.",values:{pixels:{doc:"Width is rendered in pixels."},meters:{doc:"Width is rendered in meters."}},"default":"pixels",experimental:true,"private":true,transition:false,"sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{type:"number","default":0,minimum:0,maximum:1,doc:"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"},"data-driven styling":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:true,parameters:["zoom","feature","line-progress"]},requires:["line-z-offset"],transition:true,"property-type":"data-driven"}};var layout_symbol={"symbol-placement":{type:"enum",values:{point:{doc:"The label is placed at the point where the geometry is located."},line:{doc:"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{doc:"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},"default":"point",doc:"Label placement relative to its geometry.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`line-center` value":{js:"0.47.0",android:"6.4.0",ios:"4.3.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number","default":250,minimum:1,units:"pixels",doc:"Distance between two symbol anchors.",requires:[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean","default":false,doc:"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"},"data-driven styling":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{doc:"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},source:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},"default":"auto",doc:"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{js:"0.49.0",android:"6.6.0",ios:"4.5.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{type:"boolean","default":false,doc:"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},requires:[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{type:"enum",doc:"Selects the base of symbol-elevation.",values:{sea:{doc:"Elevate symbols relative to the sea level."},ground:{doc:"Elevate symbols relative to the ground's height below them."},"hd-road-markup":{doc:"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},"default":"ground",experimental:true,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},requires:[{"symbol-z-elevate":true}],expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean","default":false,doc:"If true, the icon will be visible even if it collides with other previously drawn symbols.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean","default":false,doc:"If true, other symbols can be visible even if they collide with the icon.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean","default":false,doc:"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},viewport:{doc:"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of icons.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number","default":1,minimum:0,units:"factor of the original icon size",doc:"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.",appearance:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{type:"array",value:"number",length:2,"default":[0.8,2],doc:"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]",minimum:[0.1,0.1],maximum:[10,10],experimental:true,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{type:"enum",values:{none:{doc:"The icon is displayed at its intrinsic aspect ratio."},width:{doc:"The icon is scaled in the x-dimension to fit the width of the text."},height:{doc:"The icon is scaled in the y-dimension to fit the height of the text."},both:{doc:"The icon is scaled in both x- and y-dimensions."}},"default":"none",doc:"Scales the icon to fit around the associated text.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"stretchable icons":{js:"1.6.0",android:"9.2.0",ios:"5.8.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{type:"array",value:"number",length:4,"default":[0,0,0,0],units:"pixels",doc:"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-image":{type:"resolvedImage",doc:"Name of image in sprite to use for drawing an image background.",tokens:true,appearance:true,"use-theme":true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number","default":0,period:360,units:"degrees",doc:"Rotates the icon clockwise.",appearance:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number","default":2,minimum:0,units:"pixels",doc:"Size of the additional area around the icon bounding box used for detecting symbol collisions.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean","default":false,doc:"If true, the icon may be flipped to prevent it from being rendered upside-down.",requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,"default":[0,0],doc:"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.",appearance:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{doc:"The center of the icon is placed closest to the anchor."},left:{doc:"The left side of the icon is placed closest to the anchor."},right:{doc:"The right side of the icon is placed closest to the anchor."},top:{doc:"The top of the icon is placed closest to the anchor."},bottom:{doc:"The bottom of the icon is placed closest to the anchor."},"top-left":{doc:"The top left corner of the icon is placed closest to the anchor."},"top-right":{doc:"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the icon is placed closest to the anchor."}},"default":"center",doc:"Part of the icon placed closest to the anchor.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{doc:"The icon is aligned to the plane of the map."},viewport:{doc:"The icon is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `icon-rotation-alignment`."}},"default":"auto",doc:"Orientation of icon when map is pitched.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{doc:"The text is aligned to the plane of the map."},viewport:{doc:"The text is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `text-rotation-alignment`."}},"default":"auto",doc:"Orientation of text when map is pitched.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},viewport:{doc:"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted","default":"",tokens:true,doc:"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string","default":["Open Sans Regular","Arial Unicode MS Regular"],doc:"Font stack to use for displaying text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number","default":16,minimum:0,units:"pixels",doc:"Font size.",requires:["text-field"],appearance:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{type:"array",value:"number",length:2,"default":[0.8,2],doc:"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]",minimum:[0.1,0.1],maximum:[10,10],experimental:true,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"text-max-width":{type:"number","default":10,minimum:0,units:"ems",doc:"The maximum line width for text wrapping.",requires:["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number","default":1.2,units:"ems",doc:"Text leading value for multi-line text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0",android:"10.0.0",ios:"10.0.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{type:"number","default":0,units:"ems",doc:"Text tracking amount.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{doc:"The text is aligned towards the anchor position."},left:{doc:"The text is aligned to the left."},center:{doc:"The text is centered."},right:{doc:"The text is aligned to the right."}},"default":"center",doc:"Text justification options.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"},auto:{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems","default":0,doc:"Radial offset of text, in the direction of the symbol's anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"},"data-driven styling":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},requires:["text-field"],"property-type":"data-driven",expression:{interpolated:true,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},requires:["text-field",{"symbol-placement":["point"]}],doc:"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},"default":"center",doc:"Part of the text placed closest to the anchor.",requires:["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number","default":45,units:"degrees",doc:"Maximum angle change between adjacent characters.",requires:["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{doc:"If a text's language supports horizontal writing mode, symbols would be laid out horizontally."},vertical:{doc:"If a text's language supports vertical writing mode, symbols would be laid out vertically."}},doc:"The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either ['horizontal', 'vertical'] or ['vertical', 'horizontal'], the order doesn't affect the placement.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"1.3.0",android:"8.3.0",ios:"5.3.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number","default":0,period:360,units:"degrees",doc:"Rotates the text clockwise.",requires:["text-field"],appearance:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number","default":2,minimum:0,units:"pixels",doc:"Size of the additional area around the text bounding box used for detecting symbol collisions.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean","default":true,doc:"If true, the text may be flipped vertically to prevent it from being rendered upside-down.",requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{doc:"The text is not altered."},uppercase:{doc:"Forces all letters to be displayed in uppercase."},lowercase:{doc:"Forces all letters to be displayed in lowercase."}},"default":"none",doc:"Specifies how to capitalize text, similar to the CSS `text-transform` property.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",doc:"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.",value:"number",units:"ems",length:2,"default":[0,0],requires:["text-field",{"!":"text-radial-offset"}],appearance:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean","default":false,doc:"If true, the text will be visible even if it collides with other previously drawn symbols.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean","default":false,doc:"If true, other symbols can be visible even if they collide with the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean","default":false,doc:"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.",requires:["text-field","icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_raster={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_hillshade={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var filter={type:"array",value:"*",doc:"A filter selects specific features from a layer."};var filter_symbol={type:"boolean",doc:"Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature","pitch","distance-from-center"]}};var filter_fill={type:"boolean",doc:"Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_hillshade={type:"boolean",doc:"Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_raster={type:"boolean",doc:"Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_clip={type:"boolean",doc:"Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_model={type:"boolean",doc:"Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_line={type:"boolean",doc:"Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_circle={type:"boolean",doc:"Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_building={type:"boolean",doc:"Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_heatmap={type:"boolean",doc:"Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_operator={type:"enum",values:{"==":{doc:"`[\"==\", key, value]` equality: `feature[key] = value`"},"!=":{doc:"`[\"!=\", key, value]` inequality: `feature[key] ≠ value`"},">":{doc:"`[\">\", key, value]` greater than: `feature[key] > value`"},">=":{doc:"`[\">=\", key, value]` greater than or equal: `feature[key] ≥ value`"},"<":{doc:"`[\"<\", key, value]` less than: `feature[key] < value`"},"<=":{doc:"`[\"<=\", key, value]` less than or equal: `feature[key] ≤ value`"},"in":{doc:"`[\"in\", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`"},"!in":{doc:"`[\"!in\", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`"},all:{doc:"`[\"all\", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`"},any:{doc:"`[\"any\", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`"},none:{doc:"`[\"none\", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`"},has:{doc:"`[\"has\", key]` `feature[key]` exists"},"!has":{doc:"`[\"!has\", key]` `feature[key]` does not exist"}},doc:"The filter operator."};var geometry_type={type:"enum",values:{Point:{doc:"Filter to point geometries."},LineString:{doc:"Filter to line geometries."},Polygon:{doc:"Filter to polygon geometries."}},doc:"The geometry type for the filter to select."};var function_stop={type:"array",minimum:0,maximum:24,value:["number","color"],length:2,doc:"Zoom level and value pair."};var expression$1={type:"array",value:"*",minimum:1,doc:"An expression defines a function that can be used for data-driven style properties or feature filters."};var expression_name={doc:"",type:"enum",values:{"let":{doc:"Binds expressions to named variables, which can then be referenced in the result expression using [\"var\", \"variable_name\"].",group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"var":{doc:"References variable bound using \"let\".",group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},config:{doc:"Retrieves the configuration value for the given option. Returns null if the requested option is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},literal:{doc:"Provides a literal array or object value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},array:{doc:"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},at:{doc:"Retrieves an item from an array.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"at-interpolated":{doc:"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.11.0",android:"11.12.0",ios:"11.12.0"}}},"in":{doc:"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).",group:"Lookup","sdk-support":{"basic functionality":{js:"1.6.0",android:"9.1.0",ios:"5.8.0"}}},"index-of":{doc:"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},slice:{doc:"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},split:{doc:"Returns an array of substrings from a string, split by a delimiter parameter.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.14.0",android:"11.14.0",ios:"11.14.0"}}},"case":{doc:"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},match:{doc:"Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `[\"get\", \"building_type\"]`). Each label must be unique, and must be either:\n - a single literal value; or\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `[\"c\", \"b\"]`).\n\nThe input matches if any of the values in the array matches using strict equality, similar to the `\"in\"` operator.\nIf the input type does not match the type of the labels, the result will be the fallback value.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},coalesce:{doc:"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`'image'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},step:{doc:"Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},interpolate:{doc:"Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\n\nInterpolation types:\n- `[\"linear\"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\n- `[\"exponential\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n- `[\"cubic-bezier\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},"interpolate-hcl":{doc:"Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},"interpolate-lab":{doc:"Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},ln2:{doc:"Returns mathematical constant ln(2).",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pi:{doc:"Returns the mathematical constant pi.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},e:{doc:"Returns the mathematical constant e.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"typeof":{doc:"Returns a string describing the type of the given value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},string:{doc:"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},number:{doc:"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"boolean":{doc:"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},object:{doc:"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},collator:{doc:"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.",group:"Types","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},format:{doc:"Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`'image'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\n- `\"text-font\"`: Overrides the font stack specified by the root layout property.\n- `\"text-color\"`: Overrides the color specified by the root paint property.\n- `\"font-scale\"`: Applies a scaling factor on `text-size` as specified by the root layout property.",group:"Types","sdk-support":{"basic functionality":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-font":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"font-scale":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-color":{js:"1.3.0",android:"7.3.0",ios:"4.10.0"},image:{js:"1.6.0",android:"8.6.0",ios:"5.7.0"}}},image:{doc:"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`'format'`](#types-format) expression.\n\nA [`'coalesce'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `'image'` argument.\n\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\n\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `'image'` expression.",group:"Types","sdk-support":{"basic functionality":{js:"1.4.0",android:"8.6.0",ios:"5.7.0"}}},"number-format":{doc:"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.",group:"Types","sdk-support":{"basic functionality":{js:"0.54.0",android:"8.4.0",ios:"5.4.0"}}},"to-string":{doc:"Converts the input value to a string. If the input is `null`, the result is `\"\"`. If the input is a [`boolean`](#types-boolean), the result is `\"true\"` or `\"false\"`. If the input is a number, it is converted to a string as specified by the [\"NumberToString\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `\"rgba(r,g,b,a)\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`'image'`](#types-image) expression, `'to-string'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-number":{doc:"Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the [\"ToNumber Applied to the String Type\" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-boolean":{doc:"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-rgba":{doc:"Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-hsla":{doc:"Returns a four-element array containing the input color's Hue, Saturation, Luminance and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}}},"to-color":{doc:"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgb:{doc:"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgba:{doc:"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},hsl:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},hsla:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},get:{doc:"Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},has:{doc:"Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},length:{doc:"Returns the length of an array or string.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},properties:{doc:"Returns the feature properties object. Note that in some cases, it may be more efficient to use `[\"get\", \"property_name\"]` directly.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"feature-state":{doc:"Retrieves a property value from the current feature's state. Returns `null` if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.46.0",android:"10.0.0",ios:"10.0.0"}}},"geometry-type":{doc:"Returns the feature's geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},worldview:{doc:"Returns the current worldview being used.",group:"Lookup",experimental:true,"sdk-support":{"basic functionality":{js:"3.13.0",android:"11.13.0",ios:"11.13.0"}}},id:{doc:"Returns the feature's id, if it has one.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},zoom:{doc:"Returns the current zoom level. Note that in style layout and paint properties, [\"zoom\"] may only appear as the input to a top-level \"step\" or \"interpolate\" expression.",group:"Camera","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pitch:{doc:"Returns the current pitch in degrees. `[\"pitch\"]` may only be used in the `filter` expression for a `symbol` layer.",group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"distance-from-center":{doc:"Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `[\"distance-from-center\"]` may only be used in the `filter` expression for a `symbol` layer.",group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"measure-light":{doc:"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"heatmap-density":{doc:"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.",group:"Heatmap","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"line-progress":{doc:"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.6.0"}}},"sky-radial-progress":{doc:"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.",group:"sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},accumulated:{doc:"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.53.0",android:"8.4.0",ios:"5.5.0"}}},"+":{doc:"Returns the sum of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"*":{doc:"Returns the product of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"-":{doc:"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"/":{doc:"Returns the result of floating point division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"%":{doc:"Returns the remainder after integer division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"^":{doc:"Returns the result of raising the first input to the power specified by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sqrt:{doc:"Returns the square root of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},log10:{doc:"Returns the base-ten logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},ln:{doc:"Returns the natural logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},log2:{doc:"Returns the base-two logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sin:{doc:"Returns the sine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},cos:{doc:"Returns the cosine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},tan:{doc:"Returns the tangent of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},asin:{doc:"Returns the arcsine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},acos:{doc:"Returns the arccosine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},atan:{doc:"Returns the arctangent of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},min:{doc:"Returns the minimum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},max:{doc:"Returns the maximum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},round:{doc:"Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `[\"round\", -1.5]` evaluates to -2.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},abs:{doc:"Returns the absolute value of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},ceil:{doc:"Returns the smallest integer that is greater than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},floor:{doc:"Returns the largest integer that is less than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},distance:{doc:"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"9.2.0",ios:"5.9.0"}}},"==":{doc:"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"!=":{doc:"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">":{doc:"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<":{doc:"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">=":{doc:"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<=":{doc:"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},all:{doc:"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},any:{doc:"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"!":{doc:"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},within:{doc:"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",group:"Decision","sdk-support":{"basic functionality":{js:"1.9.0",android:"9.1.0",ios:"5.8.0"}}},"is-supported-script":{doc:"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.6.0",ios:"4.1.0"}}},upcase:{doc:"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},downcase:{doc:"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},concat:{doc:"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"resolved-locale":{doc:"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"raster-value":{doc:"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.",group:"Raster Colorization","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-particle-speed":{doc:"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.",group:"Raster Particle Animation","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"is-active-floor":{doc:"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.",group:"Indoor",experimental:true,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},random:{doc:"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}};var fog={range:{type:"array","default":[0.5,10],minimum:-20,maximum:20,length:2,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",example:[0.5,10],"sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"high-color":{type:"color","property-type":"data-constant","default":"#245cdf",expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"space-color":{type:"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"horizon-blend":{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"star-intensity":{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"vertical-range":{type:"array","default":[0,0],minimum:0,length:2,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}};var snow={density:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.85],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Snow particles color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.3],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant","default":"#ffffff",experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant","default":0.4,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array","default":[0,50],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:true,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"Main snow particles direction. Azimuth and polar angles",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"flake-size":{type:"number","property-type":"data-constant","default":0.71,minimum:0,maximum:5,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}};var rain={density:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.5],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",0.3,"#a8adbc"],experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,0.88,1,0.7],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,1],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#001736",0.3,"#464646"],experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant","default":0.57,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array","default":[0,80],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:true,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"Main rain particles direction. Azimuth and polar angles.",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"droplet-size":{type:"array","default":[2.6,18.2],minimum:0,maximum:50,length:2,value:"number","property-type":"data-constant",transition:true,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"Rain droplet size. x - normal to direction, y - along direction",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"distortion-strength":{type:"number","property-type":"data-constant","default":0.7,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}};var camera={"camera-projection":{doc:"Camera projection describes how 3D world geometry get projected into 2D screen",type:"enum",values:{perspective:{doc:"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},orthographic:{doc:"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"default":"perspective","property-type":"data-constant"}};var colorTheme={data:{type:"string",doc:"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.",transition:false,"property-type":"data-constant",expression:{interpolated:false}}};var indoor_source={sourceId:{type:"string",doc:"Source ID of a source to be used to retrieve indoor data.",experimental:true,"private":true,transition:false,"property-type":"data-constant"},sourceLayers:{type:"array",value:"string",doc:"An array of source layers to be used to retrieve indoor data.",experimental:true,"private":true,transition:false,"property-type":"data-constant"}};var indoor={"*":{type:"indoor_source","private":true,experimental:true,doc:"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}};var light={anchor:{type:"enum","default":"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant",transition:false,expression:{interpolated:false,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},position:{type:"array","default":[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}}};var index_es_projection={name:{type:"enum",values:{albers:{doc:"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},equalEarth:{doc:"An Equal Earth projection."},equirectangular:{doc:"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},lambertConformalConic:{doc:"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},mercator:{doc:"The Mercator projection is the default projection."},naturalEarth:{doc:"A Natural Earth projection."},winkelTripel:{doc:"A Winkel Tripel projection."},globe:{doc:"A globe projection."}},"default":"mercator",doc:"The name of the projection to be used for rendering the map.",required:true,"sdk-support":{"basic functionality":{js:"2.6.0",ios:"10.5.0",android:"10.5.0"}}},center:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-180,-90],maximum:[180,90],transition:false,doc:"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].",example:[-96,37.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}},parallels:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-90,-90],maximum:[90,90],transition:false,doc:"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).",example:[29.5,45.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}}};var terrain={source:{type:"string",doc:"Name of a source of `raster_dem` type to be used for terrain elevation.",required:true,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},exaggeration:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1000,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.",requires:["source"],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}}};var paint=["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"];var paint_fill={"fill-antialias":{type:"boolean","default":true,doc:"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.",transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{type:"color","default":"#000000",doc:"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":true,transition:true,requires:[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",doc:"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":true,transition:true,requires:[{"!":"fill-pattern"},{"fill-antialias":true}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{doc:"The fill is translated relative to the map."},viewport:{doc:"The fill is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-translate`.","default":"map",requires:["fill-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{type:"number",doc:"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.","default":0,minimum:0,transition:true,experimental:true,"sdk-support":{"basic functionality":{js:"3.7.0"},"data-driven styling":{js:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{type:"color","default":"rgba(241, 236, 225, 255)",doc:"The color of bridge guard rail.",experimental:true,"private":true,"use-theme":true,transition:true,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{type:"color","default":"rgba(241, 236, 225, 255)",doc:"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":true,transition:true,experimental:true,"private":true,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"}};var paint_building={"building-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:true,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number","default":0,minimum:0,maximum:1,"private":true,expression:{interpolated:false,parameters:[]},transition:true,doc:"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant",type:"number","default":0,minimum:0,maximum:1,"private":true,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number","private":true,"default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number","private":true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.",transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant",type:"number","private":true,"default":1,minimum:0,doc:"A global multiplier that can be used to scale base and height of the procedural buildings.",transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-cast-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow casting for this layer",transition:false,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-color":{type:"color","default":"rgba(193, 154, 127, 1)",doc:"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).","private":true,"use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{type:"number","default":0,minimum:0,maximum:5,units:"intensity",doc:"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{type:"number","default":0.35,minimum:0,maximum:1,doc:"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.","private":true,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["measure-light","zoom"]}},"building-cutoff-fade-range":{type:"number","private":true,"default":0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:false,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{type:"array","private":true,experimental:true,value:"number","property-type":"data-constant",transition:false,expression:{interpolated:true,parameters:["zoom"]},length:3,"default":[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant",type:"color","private":true,"default":"#ffffff",doc:"The color of the flood light effect on the walls of the buildings.",requires:["lights"],"use-theme":true,transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant",type:"number","private":true,"default":0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number","private":true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}};var paint_line={"line-opacity":{type:"number",doc:"The opacity at which the line will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{type:"color",doc:"The color with which the line will be drawn.","default":"#000000","use-theme":true,transition:true,requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.23.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{doc:"The line is translated relative to the map."},viewport:{doc:"The line is translated relative to the viewport."}},doc:"Controls the frame of reference for `line-translate`.","default":"map",requires:["line-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number","default":1,minimum:0,transition:true,units:"pixels",doc:"Stroke thickness.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{type:"number","default":0,minimum:0,doc:"Draws a line casing outside of a line's actual path. Value indicates the width of the inner gap.",transition:true,units:"pixels","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{type:"number","default":0,doc:"The line's offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.",transition:true,units:"pixels","sdk-support":{"basic functionality":{js:"0.12.1",android:"3.0.0",ios:"3.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",doc:"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won't render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.",minimum:0,transition:false,units:"line widths",requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{type:"color",doc:"A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature's total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `\"lineMetrics\": true`.",example:["interpolate",["linear"],["line-progress"],0,"blue",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"use-theme":true,transition:false,requires:[{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:true}}],"sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.4.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{type:"array",value:"number",doc:"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].",length:2,"default":[0,0],minimum:[0,0],maximum:[1,1],transition:false,requires:[{source:"geojson",has:{lineMetrics:true}}],"sdk-support":{"basic functionality":{js:"2.9.0",android:"10.5.0",ios:"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{type:"array",value:"number",doc:"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.",experimental:true,length:2,"default":[0,0],minimum:[0,0],maximum:[1,1],transition:false,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:true}}],expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{type:"color",doc:"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.",experimental:true,"default":"transparent","use-theme":true,transition:true,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:true}}],"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.17.0",android:"11.17.0",ios:"11.17.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{type:"number","private":true,doc:"The width of the line border. A value of zero means no border.","default":0,minimum:0,transition:true,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{type:"color","private":true,doc:"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.","default":"rgba(0, 0, 0, 0)","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{type:"number","default":0,minimum:0,maximum:1,doc:"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:true,parameters:["zoom"]},transition:true,"property-type":"data-constant"},"line-blend-mode":{type:"enum",values:{"default":{doc:"Normal non-blended rendering mode."},multiply:{doc:"Line features are composited using multiply blending."},additive:{doc:"Line features are composited using additive density accumulation with tone mapping."}},doc:"Controls the blend mode used for rendering line features.","default":"default",experimental:true,"private":true,"sdk-support":{"basic functionality":{js:"3.21.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"line-blend-additive-clamp":{type:"number","default":0,minimum:0,doc:"Controls the brightness of lines in additive blend mode. When set to 0 (the default), brightness is adjusted automatically based on the density of lines visible on screen. Increase this value if the lines appear too bright, or decrease it if they appear too faint.",experimental:true,"private":true,"sdk-support":{"basic functionality":{js:"3.21.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"}};var paint_circle={"circle-radius":{type:"number","default":5,minimum:0,transition:true,units:"pixels",doc:"Circle radius.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{type:"color","default":"#000000",doc:"The fill color of the circle.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{type:"number","default":0,doc:"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.",transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{type:"number",doc:"The opacity at which the circle will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{doc:"The circle is translated relative to the map."},viewport:{doc:"The circle is translated relative to the viewport."}},doc:"Controls the frame of reference for `circle-translate`.","default":"map",requires:["circle-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{doc:"Circles are scaled according to their apparent distance to the camera."},viewport:{doc:"Circles are not scaled."}},"default":"map",doc:"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{doc:"The circle is aligned to the plane of the map."},viewport:{doc:"The circle is aligned to the plane of the viewport."}},"default":"viewport",doc:"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"The width of the circle's stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color","default":"#000000",doc:"The stroke color of the circle.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",doc:"The opacity of the circle's stroke.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"}};var paint_heatmap={"heatmap-radius":{type:"number","default":30,minimum:1,transition:true,units:"pixels",doc:"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{type:"number","default":1,minimum:0,transition:false,doc:"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number","default":1,minimum:0,transition:true,doc:"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],doc:"Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `[\"heatmap-density\"]` as input.","use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",doc:"The global opacity at which the heatmap layer will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"}};var paint_symbol={"icon-opacity":{doc:"The opacity at which the icon will be drawn.",type:"number","default":1,minimum:0,maximum:1,transition:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-occlusion-opacity":{doc:"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",type:"number",minimum:0,maximum:1,"default":0,transition:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-emissive-strength":{type:"number","default":1,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature-state"]},appearance:true,"property-type":"data-driven"},"text-emissive-strength":{type:"number","default":1,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature-state"]},appearance:true,"property-type":"data-driven"},"icon-color":{type:"color","default":"#000000","use-theme":true,transition:true,doc:"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-halo-color":{type:"color","default":"rgba(0, 0, 0, 0)","use-theme":true,transition:true,doc:"The color of the icon's halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-halo-width":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Distance of halo to the icon outline.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-halo-blur":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Fade out the halo towards the outside.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,appearance:true,units:"pixels",doc:"Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{doc:"Icons are translated relative to the map."},viewport:{doc:"Icons are translated relative to the viewport."}},doc:"Controls the frame of reference for `icon-translate`.","default":"map",requires:["icon-image","icon-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},doc:"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{type:"number",doc:"The opacity at which the text will be drawn.","default":1,minimum:0,maximum:1,transition:true,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-occlusion-opacity":{type:"number",doc:"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",minimum:0,maximum:1,"default":0,transition:true,requires:["text-field"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-color":{type:"color",doc:"The color with which the text will be drawn.","default":"#000000","use-theme":true,transition:true,overridable:true,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-halo-color":{type:"color","default":"rgba(0, 0, 0, 0)","use-theme":true,transition:true,doc:"The color of the text's halo, which helps it stand out from backgrounds.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-halo-width":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-halo-blur":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"The halo's fadeout distance towards the outside.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,appearance:true,units:"pixels",doc:"Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{doc:"The text is translated relative to the map."},viewport:{doc:"The text is translated relative to the viewport."}},doc:"Controls the frame of reference for `text-translate`.","default":"map",requires:["text-field","text-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{type:"number","default":0,minimum:-1,maximum:1,transition:false,doc:"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:false},"property-type":"data-constant"},"icon-color-contrast":{type:"number","default":0,minimum:-1,maximum:1,transition:false,doc:"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false},"property-type":"data-constant"},"icon-color-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the minimum brightness.","default":0,minimum:0,maximum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false},"property-type":"data-constant"},"icon-color-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the maximum brightness.","default":1,minimum:0,maximum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false},"property-type":"data-constant"},"symbol-z-offset":{type:"number",doc:"Specifies an uniform elevation from the ground, in meters.","default":0,minimum:0,transition:true,experimental:true,appearance:true,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},requires:[{"symbol-z-elevate":true}],expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"}};var paint_raster={"raster-opacity":{type:"number",doc:"The opacity at which the image will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-color":{type:"color",doc:"Defines a color map by which to colorize a raster layer, parameterized by the `[\"raster-value\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.","use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{type:"array","default":[0.2126,0.7152,0.0722,0],length:4,value:"number","property-type":"data-constant",transition:true,requires:["raster-color"],expression:{interpolated:true,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.",example:[0.2126,0.7152,0.0722,0],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-color-range":{type:"array",length:2,value:"number","property-type":"data-constant",transition:true,requires:["raster-color"],expression:{interpolated:true,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source's stated data range is used.",example:[0.5,10],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-hue-rotate":{type:"number","default":0,period:360,transition:true,units:"degrees",doc:"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the minimum brightness.","default":0,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the maximum brightness.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",doc:"Increase or reduce the saturation of the image.","default":0,minimum:-1,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",doc:"Increase or reduce the contrast of the image.","default":0,minimum:-1,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",doc:"The resampling/interpolation method to use for overscaling, also known as texture magnification filter",values:{linear:{doc:"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},nearest:{doc:"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},"default":"linear","sdk-support":{"basic functionality":{js:"0.47.0",android:"6.3.0",ios:"4.2.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number","default":300,minimum:0,transition:false,units:"milliseconds",doc:"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{type:"string",required:false,experimental:true,"property-type":"data-constant",transition:false,requires:[{source:"raster-array"}],doc:"Displayed band of raster array source layer. Defaults to the first band if not set.",example:"band-name","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}}},"raster-elevation":{type:"number",doc:"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.","default":0,minimum:0,transition:true,experimental:true,"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.2.0",ios:"11.2.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{type:"enum",doc:"Selects the base of raster-elevation.",values:{sea:{doc:"Use this mode to elevate raster layers relative to the sea level."},ground:{doc:"Use this mode to elevate raster layers relative to the ground's height below them."}},"default":"sea",transition:false,experimental:true,"sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:false},"property-type":"data-constant"}};var paint_hillshade={"hillshade-illumination-direction":{type:"number","default":335,minimum:0,maximum:359,doc:"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.",transition:false,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{doc:"The hillshade illumination is relative to the north direction."},viewport:{doc:"The hillshade illumination is relative to the top of the viewport."}},"default":"viewport",doc:"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",doc:"Intensity of the hillshade","default":0.5,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color","default":"#000000",doc:"The shading color of areas that face away from the light source.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color","default":"#FFFFFF",doc:"The shading color of areas that faces towards the light source.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color","default":"#000000",doc:"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"}};var paint_background={"background-pitch-alignment":{type:"enum",values:{map:{doc:"The background is aligned to the plane of the map."},viewport:{doc:"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},"default":"map",doc:"Orientation of background layer.","sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:false,parameters:[]},experimental:true,"property-type":"data-constant"},"background-color":{type:"color","default":"#000000",doc:"The color with which the background will be drawn.","use-theme":true,transition:true,requires:[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"background-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity at which the background will be drawn.",transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"}};var paint_sky={"sky-type":{type:"enum",values:{gradient:{doc:"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},atmosphere:{doc:"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},"default":"atmosphere",doc:"The type of the sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{type:"array",value:"number",length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:false,doc:"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},requires:[{"sky-type":"atmosphere"}],expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{type:"number",requires:[{"sky-type":"atmosphere"}],"default":10,minimum:0,maximum:100,transition:false,doc:"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{type:"array",requires:[{"sky-type":"gradient"}],value:"number","default":[0,0],length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:false,doc:"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{type:"number",requires:[{"sky-type":"gradient"}],"default":90,minimum:0,maximum:180,transition:false,doc:"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient":{type:"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],doc:"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":true,transition:false,requires:[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{type:"color","default":"white",doc:"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":true,transition:false,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{type:"color","default":"white",doc:"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":true,transition:false,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire sky layer.",transition:true,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"}};var paint_model={"model-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.",transition:true,expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},"property-type":"data-driven"},"model-rotation":{type:"array",value:"number",length:3,"default":[0,0,0],period:360,units:"degrees","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true,doc:"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{type:"array",value:"number",length:3,"default":[1,1,1],doc:"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-translation":{type:"array",value:"number",length:3,"default":[0,0,0],"property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true,doc:"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{type:"color","default":"#ffffff",doc:"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"use-theme":true,transition:true},"model-color-mix-intensity":{type:"number","property-type":"data-driven","default":0,minimum:0,maximum:1,doc:"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-type":{type:"enum",values:{"common-3d":{doc:"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{doc:"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"default":"common-3d",doc:"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow casting for this layer",transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow receiving for this layer",transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{type:"number","default":1,minimum:0,maximum:1,doc:"Intensity of the ambient occlusion if present in the 3D model.",expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant",transition:true},"model-emissive-strength":{type:"number","property-type":"data-driven","default":0,minimum:0,maximum:5,units:"intensity",doc:"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-roughness":{type:"number","default":1,minimum:0,maximum:1,doc:"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-height-based-emissive-strength-multiplier":{type:"array","default":[1,1,1,1,0],length:5,value:"number",doc:"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-cutoff-fade-range":{type:"number","default":0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:false,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{type:"array","private":true,value:"number","property-type":"data-constant",transition:false,expression:{interpolated:true,parameters:["zoom"]},length:3,"default":[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.5.0"}}},"model-elevation-reference":{type:"enum",doc:"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.",values:{sea:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"ground",transition:false,expression:{interpolated:false},"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.17.0",android:"11.10.0",ios:"11.10.0"}}},"model-ignore-line-cutout":{type:"boolean",doc:"When set to true, the layer is not going to be affected by the line cutout effect.","default":false,transition:false,expression:{interpolated:false},"property-type":"data-constant",experimental:true,"private":true,"sdk-support":{"basic functionality":{android:"11.21.0",ios:"11.21.0"}}}};var transition={duration:{type:"number","default":300,minimum:0,units:"milliseconds",doc:"Time allotted for transitions to complete."},delay:{type:"number","default":0,minimum:0,units:"milliseconds",doc:"Length of time before a transition begins."}};var promoteId={"*":{type:"*",doc:"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}};var $doc={transition:{type:"transition",doc:"Controls how a property transitions to a new value. Overrides the style's root `transition` for this property."},"use-theme":{type:"enum",doc:"Controls whether the associated color property is affected by the global color theme. When set to \"none\", the color theme is ignored for this property. When set to \"default\", the color theme is applied.",values:{"default":{doc:"The color theme is applied to this property (default behavior)."},none:{doc:"The color theme is ignored for this property."}},"default":"default"}};var v8={$version:$version,$root:$root,featuresets:featuresets,featureset:featureset,selector:selector,selectorProperty:selectorProperty,model:model,"import":{id:{type:"string",doc:"Unique import name.",required:true},url:{type:"string",doc:"The URL of the style.",required:true},config:{type:"config",doc:"Configuration values for the imported style's options."},data:{type:"$root",doc:"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{type:"colorTheme",optional:true,doc:"If specified, it overrides the color-theme of the imported style."}},config:index_es_config,schema:schema,option:index_es_option,models:models,"light-3d":{id:{type:"string",doc:"Unique light name.",required:true},properties:{type:"properties",doc:"Properties of the light."},type:{type:"enum",doc:"Type of the light to be added",values:{ambient:{doc:"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},directional:{doc:"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},flat:{doc:"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}}},properties:properties,properties_light_directional:properties_light_directional,properties_light_ambient:properties_light_ambient,properties_light_flat:properties_light_flat,iconsets:iconsets,iconset:iconset,iconset_sprite:iconset_sprite,iconset_source:iconset_source,sources:sources,source:source,source_vector:source_vector,source_raster:source_raster,source_raster_dem:source_raster_dem,source_raster_array:source_raster_array,source_geojson:source_geojson,source_video:source_video,source_image:source_image,modelNodeOverride:modelNodeOverride,modelNodeOverrides:modelNodeOverrides,modelMaterialOverride:modelMaterialOverride,modelMaterialOverrides:modelMaterialOverrides,modelSourceModel:modelSourceModel,modelSourceModels:modelSourceModels,source_model:source_model,layer:index_es_layer,appearance:appearance,layout:layout,layout_background:layout_background,layout_sky:layout_sky,layout_model:layout_model,layout_clip:layout_clip,layout_fill:layout_fill,layout_circle:layout_circle,layout_heatmap:layout_heatmap,"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"fill-extrusion-edge-radius":{type:"number",experimental:true,"default":0,minimum:0,maximum:1,doc:"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"source-max-zoom":{type:"number",minimum:0,maximum:24,"private":true,experimental:true,doc:"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}},"property-type":"constant"}},layout_building:layout_building,layout_line:layout_line,layout_symbol:layout_symbol,layout_raster:layout_raster,"layout_raster-particle":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"expressions support":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:false},"property-type":"constant"}},layout_hillshade:layout_hillshade,filter:filter,filter_symbol:filter_symbol,filter_fill:filter_fill,filter_hillshade:filter_hillshade,filter_raster:filter_raster,"filter_raster-particle":{type:"boolean",doc:"Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}},filter_clip:filter_clip,filter_model:filter_model,filter_line:filter_line,filter_circle:filter_circle,"filter_fill-extrusion":{type:"boolean",doc:"Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}},filter_building:filter_building,filter_heatmap:filter_heatmap,filter_operator:filter_operator,geometry_type:geometry_type,"function":{expression:{type:"expression",doc:"An expression."},stops:{type:"array",doc:"An array of stops.",value:"function_stop"},base:{type:"number","default":1,minimum:0,doc:"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},property:{type:"string",doc:"The name of a feature property to use as the function input.","default":"$zoom"},type:{type:"enum",values:{identity:{doc:"Return the input value as the output value."},exponential:{doc:"Generate an output by interpolating between stops just less than and just greater than the function input."},interval:{doc:"Return the output value of the stop just less than the function input."},categorical:{doc:"Return the output value of the stop equal to the function input."}},doc:"The interpolation strategy to use in function evaluation.","default":"exponential"},colorSpace:{type:"enum",values:{rgb:{doc:"Use the RGB color space to interpolate color values"},lab:{doc:"Use the LAB color space to interpolate color values."},hcl:{doc:"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},doc:"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.","default":"rgb"},"default":{type:"*",required:false,doc:"A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n* In categorical functions, when the feature value does not match any of the stop domain values.\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\nIf no default is provided, the style property's default is used in these circumstances."}},function_stop:function_stop,expression:expression$1,expression_name:expression_name,fog:fog,snow:snow,rain:rain,camera:camera,colorTheme:colorTheme,indoor_source:indoor_source,indoor:indoor,light:light,projection:index_es_projection,terrain:terrain,paint:paint,paint_fill:paint_fill,"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:true,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color","default":"#000000",doc:"The base color of the extruded fill. The extrusion's surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":true,transition:true,requires:[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{doc:"The fill extrusion is translated relative to the map."},viewport:{doc:"The fill extrusion is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-extrusion-translate`.","default":"map",requires:["fill-extrusion-translate"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{type:"number","default":0,minimum:0,units:"meters",doc:"The height with which to extrude this layer.",transition:true,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number","default":0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.",transition:true,requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{type:"enum",experimental:true,values:{terrain:{doc:"The fill extrusion height follows terrain slope."},flat:{doc:"The fill extrusion height is flat over terrain."}},doc:"Controls the behavior of fill extrusion height over terrain","default":"flat",requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{type:"enum",experimental:true,values:{terrain:{doc:"The fill extrusion base follows terrain slope."},flat:{doc:"The fill extrusion base is flat over terrain."}},doc:"Controls the behavior of fill extrusion base over terrain","default":"terrain",requires:["fill-extrusion-base"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{type:"boolean","default":true,doc:"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.",transition:false,"sdk-support":{"basic functionality":{js:"0.50.0",android:"7.0.0",ios:"4.7.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant",type:"number","default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.",requires:["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant",type:"number",experimental:true,"default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.",requires:["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number",experimental:true,"default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant",type:"color",experimental:true,"default":"#ffffff",doc:"The color of the flood light effect on the walls of the extruded buildings.",requires:["lights"],"use-theme":true,transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant",type:"number",experimental:true,"default":0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven",type:"number",experimental:true,units:"meters","default":0,minimum:0,doc:"The extent of the flood light effect on the walls of the extruded buildings in meters.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven",type:"number",experimental:true,units:"meters","default":0,doc:"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant",type:"number",experimental:true,"default":1,minimum:0,doc:"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.",transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant",type:"boolean","default":true,experimental:true,doc:"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.",requires:["fill-extrusion-edge-radius"],transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.10.0",ios:"10.10.0"}},expression:{interpolated:false,parameters:["zoom"]}},"fill-extrusion-cutoff-fade-range":{type:"number","default":0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:false,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{type:"array","private":true,experimental:true,value:"number","property-type":"data-constant",transition:false,expression:{interpolated:true,parameters:["zoom"]},length:3,"default":[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"fill-extrusion-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{type:"number","default":0,minimum:0,transition:true,experimental:true,units:"meters",doc:"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow casting for this layer",transition:false,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"}},paint_building:paint_building,paint_line:paint_line,paint_circle:paint_circle,paint_heatmap:paint_heatmap,paint_symbol:paint_symbol,paint_raster:paint_raster,"paint_raster-particle":{"raster-particle-array-band":{type:"string",required:false,"property-type":"data-constant",transition:false,doc:"Displayed band of raster array source layer",example:"\"1713348000\"","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"raster-particle-count":{type:"number",doc:"Defines the amount of particles per tile.","default":512,minimum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{type:"color",doc:"Defines a color map by which to colorize a raster particle layer, parameterized by the `[\"raster-particle-speed\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.","use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{type:"number",doc:"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.","default":1,minimum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{type:"number",doc:"Defines a coefficient for the speed of particles’ motion.","default":0.2,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{type:"number",doc:"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.","default":0.98,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{type:"number",doc:"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).","default":0.8,minimum:0,maximum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{type:"number",doc:"Defines an uniform elevation from sea level, in meters.","default":0,minimum:0,transition:true,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:paint_hillshade,paint_background:paint_background,paint_sky:paint_sky,paint_model:paint_model,transition:transition,"property-type":{"data-driven":{type:"property-type",doc:"Property is interpolable and can be represented using a property expression."},"color-ramp":{type:"property-type",doc:"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{type:"property-type",doc:"Property is interpolable but cannot be represented using a property expression."},constant:{type:"property-type",doc:"Property is constant across all zoom levels and property values."}},promoteId:promoteId,$doc:$doc};// Note: This regex matches even invalid JSON strings, but since we’re +;// CONCATENATED MODULE: ./node_modules/@mapbox/mapbox-gl-style-spec/dist/index.es.js +var _excluded=["data"];function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r=r.length?{done:!0}:{done:!1,value:r[_n++]};},e:function e(r){throw r;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var o,a=!0,u=!1;return{s:function s(){t=t.call(r);},n:function n(){var r=t.next();return a=r.done,r;},e:function e(r){u=!0,o=r;},f:function f(){try{a||null==t["return"]||t["return"]();}finally{if(u)throw o;}}};}function index_es_unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return index_es_arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?index_es_arrayLikeToArray(r,a):void 0;}}function index_es_arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e`.",required:true};var index_es_config={"*":{type:"*",doc:"Value of the imported style's configuration option."}};var schema={"*":{type:"option",doc:"Specification of a configuration option."}};var index_es_option={"default":{type:"*",doc:"Default configuration value for this option.","property-type":"data-constant",expression:{interpolated:false},required:true},type:{type:"enum",doc:"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.",values:{string:{doc:"The result will be coerced to a string."},number:{doc:"The result will be coerced to a number."},"boolean":{doc:"The result will be coerced to a boolean."},color:{doc:"The result will be coerced to a color."}}},array:{type:"boolean",doc:"If true, this option is returned as an array"},minValue:{type:"number",doc:"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},maxValue:{type:"number",doc:"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},stepValue:{type:"number",doc:"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},values:{type:"array",value:"*",doc:"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."}};var models={"*":{type:"model",doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}};var properties=["properties_light_directional","properties_light_ambient","properties_light_flat"];var properties_light_directional={direction:{type:"array","default":[210,30],minimum:[0,0],maximum:[360,90],length:2,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom"]},doc:"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).",example:[90,40],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"cast-shadows":{type:"boolean","default":false,doc:"Enable/Disable shadow casting for this light",transition:false,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-quality":{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,expression:{interpolated:false,parameters:["zoom"]},transition:false,doc:"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},experimental:true},"shadow-intensity":{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},doc:"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.",transition:true,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-draw-before-layer":{type:"string","property-type":"data-constant",doc:"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},experimental:true}};var properties_light_ambient={color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}};var properties_light_flat={anchor:{type:"enum","default":"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant",transition:false,expression:{interpolated:false,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},position:{type:"array","default":[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}};var iconsets={"*":{type:"iconset",doc:"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}};var iconset=["iconset_sprite","iconset_source"];var iconset_sprite={type:{required:true,type:"enum",values:{sprite:{doc:"A sprite icon set."}},doc:"The type of the icon set."},url:{required:true,type:"string",doc:"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",example:"mapbox://sprites/mapbox/bright"}};var iconset_source={type:{required:true,type:"enum",values:{source:{doc:"A source icon set."}},doc:"The type of the icon set."},source:{required:true,type:"string",doc:"Name of a source of `raster-array` type to be used for the icon set."}};var sources={"*":{type:"source",doc:"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}};var source=["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"];var source_vector={type:{required:true,type:"enum",values:{vector:{doc:"A vector tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},"default":"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_raster={type:{required:true,type:"enum",values:{raster:{doc:"A raster tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number","default":512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},"default":"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_raster_dem={type:{required:true,type:"enum",values:{"raster-dem":{doc:"A RGB-encoded raster DEM source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number","default":512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},encoding:{type:"enum",values:{terrarium:{doc:"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},mapbox:{doc:"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},"default":"mapbox",doc:"The encoding used by this source. Mapbox Terrain RGB is used by default"},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_raster_array={experimental:true,type:{required:true,type:"enum",values:{"raster-array":{doc:"A raster array source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,"default":[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number","default":22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number","default":512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},rasterLayers:{type:"*",doc:"Contains the description of the raster data layers and the bands contained within the tiles."},"volatile":{type:"boolean","default":false,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}};var source_geojson={type:{required:true,type:"enum",values:{geojson:{doc:"A GeoJSON data source."}},doc:"The data type of the GeoJSON source."},data:{type:"*",doc:"A URL to a GeoJSON file, or inline GeoJSON."},maxzoom:{type:"number","default":18,doc:"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},minzoom:{type:"number","default":0,doc:"Minimum zoom level at which to create vector tiles"},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},buffer:{type:"number","default":128,maximum:512,minimum:0,doc:"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},filter:{type:"*",doc:"An expression for filtering features prior to processing them for rendering."},tolerance:{type:"number","default":0.375,doc:"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},cluster:{type:"boolean","default":false,doc:"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n * `cluster` Is `true` if the point is a cluster \n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\n * `point_count` Number of original points grouped into this cluster\n * `point_count_abbreviated` An abbreviated point count"},clusterRadius:{type:"number","default":50,minimum:0,doc:"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},clusterMaxZoom:{type:"number",doc:"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},clusterMinPoints:{type:"number",doc:"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},clusterProperties:{type:"*",doc:"An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\"property_name\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\"+\"` or `\"max\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{\"sum\": [\"+\", [\"get\", \"scalerank\"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\"accumulated\"]` value, e.g.:\n`{\"sum\": [[\"+\", [\"accumulated\"], [\"get\", \"sum\"]], [\"get\", \"scalerank\"]]}`"},lineMetrics:{type:"boolean","default":false,doc:"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},generateId:{type:"boolean","default":false,doc:"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},dynamic:{type:"boolean","default":false,doc:"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{js:"3.4.0"}}}};var source_video={type:{required:true,type:"enum",values:{video:{doc:"A video data source."}},doc:"The data type of the video source."},urls:{required:true,type:"array",value:"string",doc:"URLs to video content in order of preferred format."},coordinates:{required:true,doc:"Corners of video specified in longitude, latitude pairs.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}};var source_image={type:{required:true,type:"enum",values:{image:{doc:"An image data source."}},doc:"The data type of the image source."},url:{required:false,type:"string",doc:"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},coordinates:{required:true,doc:"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}};var modelNodeOverride={orientation:{type:"array",value:"number",length:3,"default":[0,0,0],period:360,units:"degrees",doc:"Override the orientation of the model node in euler angles [x, y, z]."}};var modelNodeOverrides={"*":{type:"modelNodeOverride",doc:"An object defining model node properties to override. Object key is the node name as defined in the model."}};var modelMaterialOverride={"model-color":{type:"color",doc:"Override the tint color of the material."},"model-color-mix-intensity":{type:"number",doc:"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors."},"model-opacity":{type:"number",doc:"Override the opacity of the material."},"model-emissive-strength":{type:"number",units:"intensity",doc:"Override strength of the emission of material."}};var modelMaterialOverrides={"*":{type:"modelMaterialOverride",doc:"An object defining material properties to override. Object key is the material name as defined in the model."}};var modelSourceModel={uri:{type:"string",required:true,doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},position:{type:"array",value:"number",length:2,required:false,"default":[0,0],minimum:[-180,-90],maximum:[180,90],doc:"Position of the model in longitude and latitude [lng, lat]."},orientation:{type:"array",value:"number",length:3,required:false,"default":[0,0,0],period:360,units:"degrees",doc:"Orientation of the model in euler angles [x, y, z]."},nodeOverrides:{type:"modelNodeOverrides",required:false,doc:"A collection of node overrides."},materialOverrides:{type:"modelMaterialOverrides",required:false,doc:"A collection of material overrides."},nodeOverrideNames:{type:"array",value:"string",doc:"An array of one or more model node names whose transform will be overridden from model layer paint properties.",required:false},materialOverrideNames:{type:"array",value:"string",doc:"An array of one or more model material names whose properties will be overridden from model layer paint properties.",required:false},featureProperties:{type:"*",doc:"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.",required:false}};var modelSourceModels={"*":{type:"modelSourceModel",doc:"A 3D model and its properties."}};var source_model={type:{required:true,type:"enum",values:{model:{doc:"A collection of 3D models"},"batched-model":{doc:"A collection of 3D models with anchor data"}},doc:"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},maxzoom:{type:"number","default":18,doc:"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},minzoom:{type:"number","default":0,doc:"Minimum zoom level for which batched-model tiles are available"},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},models:{type:"modelSourceModels",doc:"Defines properties of 3D models in collection. Requires `model` source type."}};var index_es_layer={id:{type:"string",doc:"Unique layer name.",required:true},type:{type:"enum",values:{fill:{doc:"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},line:{doc:"A stroked line.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},symbol:{doc:"An icon or a text label.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},circle:{doc:"A filled circle.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},heatmap:{doc:"A heatmap.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"fill-extrusion":{doc:"An extruded (3D) polygon.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},building:{doc:"A procedural 3D building.","sdk-support":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"private":true},raster:{doc:"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},"raster-particle":{experimental:true,doc:"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},hillshade:{doc:"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}}},model:{doc:"A 3D model","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},background:{doc:"The background color or pattern of the map.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},sky:{doc:"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},slot:{doc:"Marks the position of a slot.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},clip:{doc:"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}}}},doc:"Rendering type of this layer.",required:true},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."},source:{type:"string",doc:"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{type:"string",doc:"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},slot:{type:"string",doc:"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},minzoom:{type:"number",minimum:0,maximum:24,doc:"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},maxzoom:{type:"number",minimum:0,maximum:24,doc:"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},filter:{type:"filter",doc:"An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `[\"feature-state\", ...]` expression is not supported in filter expressions. The `[\"pitch\"]` and `[\"distance-from-center\"]` expressions are supported only for filter expressions on the symbol layer."},layout:{type:"layout",doc:"Layout properties for the layer."},paint:{type:"paint",doc:"Default paint properties for this layer."},appearances:{type:"array",value:"appearance","supported-layer-types":["symbol"],experimental:true,doc:"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with 'Works with appearances' are supported."}};var appearance={condition:{type:"boolean",doc:"A boolean expression that determines when this appearance should be applied.",expression:{interpolated:true,parameters:["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},name:{type:"string",doc:"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},properties:{type:"*",doc:"Style properties to apply when the condition is met."}};var layout=["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"];var layout_background={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_sky={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_model={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"model-id":{type:"string","default":"",doc:"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:false,requires:[{source:["geojson","vector"]}]},"model-allow-density-reduction":{type:"boolean","default":true,transition:false,experimental:true,doc:"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},"property-type":"data-constant"}};var layout_clip={"clip-layer-types":{type:"array",value:"enum",values:{model:{doc:"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},symbol:{doc:"If present the clip layer would remove all symbol layers below it."}},"default":[],doc:"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:false},"property-type":"data-constant"},"clip-layer-scope":{type:"array",value:"string","default":[],doc:"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{js:"3.6.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:false},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},expression:{interpolated:false},"property-type":"data-constant"}};var layout_fill={"fill-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"fill-elevation-reference":{type:"enum",doc:"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-base":{doc:"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as 'hatched areas' that should exist only on top of road polygons."}},"default":"none",experimental:true,"private":true,transition:false,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{type:"boolean",doc:"Determines whether bridge guard rails are added for elevated roads.","default":"true",transition:false,experimental:true,"private":true,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"}};var layout_circle={"circle-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"},"data-driven styling":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{type:"enum",doc:"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none",experimental:true,transition:false,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:false},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_heatmap={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_building={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false},"property-type":"constant"},"building-facade":{type:"boolean","default":false,doc:"Whether to render facade details on the buildings.","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},"property-type":"data-driven"},"building-facade-floors":{type:"number",minimum:1,maximum:200,"default":3,doc:"Number of floors created when building-facade is enabled.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},requires:["building-facade"]},"building-facade-unit-width":{type:"number",minimum:1,maximum:20,"default":3.1,doc:"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},requires:["building-facade"]},"building-facade-window":{type:"array",length:2,value:"number",minimum:0.1,maximum:1,"default":[0.9,0.9],doc:"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},requires:["building-facade"]},"building-roof-shape":{type:"enum",values:{flat:{doc:"Use flat roof for the procedurally generated buildings."},hipped:{doc:"Use hipped roof for the procedurally generated buildings."},gabled:{doc:"Use gabled roof for the procedurally generated buildings."},parapet:{doc:"Use parapet roof for the procedurally generated buildings."},mansard:{doc:"Use mansard roof for the procedurally generated buildings."},skillion:{doc:"Use skillion roof for the procedurally generated buildings."},pyramidal:{doc:"Use pyramidal roof for the procedurally generated buildings."}},"default":"flat",doc:"Roof type to use for the procedural buildings.","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false,parameters:["feature"]},"property-type":"data-driven"},"building-height":{type:"number","default":0,minimum:0,units:"meters",doc:"The height of the procedural buildings.",transition:true,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false},"property-type":"data-driven"},"building-base":{type:"number","default":0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.",transition:true,requires:["building-height"],"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:false},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven",type:"number","private":true,units:"meters","default":0,minimum:0,doc:"The extent of the flood light effect on the walls of the buildings in meters.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven",type:"number","private":true,units:"meters","default":0,doc:"The extent of the flood light effect on the ground beneath the buildings in meters.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven",type:"boolean","private":true,units:"meters","default":false,doc:"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.",transition:true,requires:["building-roof-shape"],expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}};var layout_line={"line-cap":{type:"enum",values:{butt:{doc:"A cap with a squared-off end which is drawn to the exact endpoint of the line."},round:{doc:"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},square:{doc:"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."}},"default":"butt",doc:"The display of line endings.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-join":{type:"enum",values:{bevel:{doc:"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."},round:{doc:"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},miter:{doc:"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},none:{doc:"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can't be used with data-driven styling."}},"default":"miter",doc:"The display of lines when joining.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"`none` value":{js:"3.4.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number","default":2,doc:"Used to automatically convert miter joins to bevel joins for sharp angles.",requires:[{"line-join":"miter"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number","default":1.05,doc:"Used to automatically convert round joins to miter joins for shallow angles.",requires:[{"line-join":"round"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{type:"number",doc:"Vertical offset from ground, in meters. Not supported for globe projection at the moment.","default":0,requires:["line-elevation-reference"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false,parameters:["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{type:"enum",doc:"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},sea:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none",transition:false,"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false},"property-type":"data-constant"},"line-cross-slope":{type:"number",experimental:true,doc:"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\n * Vertical lines don't support line caps \n * `line-join: round` is not supported with this property",requires:["line-z-offset"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false},"property-type":"constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"line-width-unit":{type:"enum",doc:"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.",values:{pixels:{doc:"Width is rendered in pixels."},meters:{doc:"Width is rendered in meters."}},"default":"pixels",experimental:true,"private":true,transition:false,"sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{type:"number","default":0,minimum:0,maximum:1,doc:"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"},"data-driven styling":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:true,parameters:["zoom","feature","line-progress"]},requires:["line-z-offset"],transition:true,"property-type":"data-driven"}};var layout_symbol={"symbol-placement":{type:"enum",values:{point:{doc:"The label is placed at the point where the geometry is located."},line:{doc:"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{doc:"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},"default":"point",doc:"Label placement relative to its geometry.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`line-center` value":{js:"0.47.0",android:"6.4.0",ios:"4.3.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number","default":250,minimum:1,units:"pixels",doc:"Distance between two symbol anchors.",requires:[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean","default":false,doc:"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"},"data-driven styling":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{doc:"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},source:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},"default":"auto",doc:"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{js:"0.49.0",android:"6.6.0",ios:"4.5.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{type:"boolean","default":false,doc:"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},requires:[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{type:"enum",doc:"Selects the base of symbol-elevation.",values:{sea:{doc:"Elevate symbols relative to the sea level."},ground:{doc:"Elevate symbols relative to the ground's height below them."},"hd-road-markup":{doc:"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},"default":"ground",experimental:true,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},requires:[{"symbol-z-elevate":true}],expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean","default":false,doc:"If true, the icon will be visible even if it collides with other previously drawn symbols.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean","default":false,doc:"If true, other symbols can be visible even if they collide with the icon.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean","default":false,doc:"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},viewport:{doc:"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of icons.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number","default":1,minimum:0,units:"factor of the original icon size",doc:"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.",appearance:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{type:"array",value:"number",length:2,"default":[0.8,2],doc:"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]",minimum:[0.1,0.1],maximum:[10,10],experimental:true,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{type:"enum",values:{none:{doc:"The icon is displayed at its intrinsic aspect ratio."},width:{doc:"The icon is scaled in the x-dimension to fit the width of the text."},height:{doc:"The icon is scaled in the y-dimension to fit the height of the text."},both:{doc:"The icon is scaled in both x- and y-dimensions."}},"default":"none",doc:"Scales the icon to fit around the associated text.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"stretchable icons":{js:"1.6.0",android:"9.2.0",ios:"5.8.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{type:"array",value:"number",length:4,"default":[0,0,0,0],units:"pixels",doc:"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-image":{type:"resolvedImage",doc:"Name of image in sprite to use for drawing an image background.",tokens:true,appearance:true,"use-theme":true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number","default":0,period:360,units:"degrees",doc:"Rotates the icon clockwise.",appearance:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number","default":2,minimum:0,units:"pixels",doc:"Size of the additional area around the icon bounding box used for detecting symbol collisions.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean","default":false,doc:"If true, the icon may be flipped to prevent it from being rendered upside-down.",requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,"default":[0,0],doc:"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.",appearance:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{doc:"The center of the icon is placed closest to the anchor."},left:{doc:"The left side of the icon is placed closest to the anchor."},right:{doc:"The right side of the icon is placed closest to the anchor."},top:{doc:"The top of the icon is placed closest to the anchor."},bottom:{doc:"The bottom of the icon is placed closest to the anchor."},"top-left":{doc:"The top left corner of the icon is placed closest to the anchor."},"top-right":{doc:"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the icon is placed closest to the anchor."}},"default":"center",doc:"Part of the icon placed closest to the anchor.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{doc:"The icon is aligned to the plane of the map."},viewport:{doc:"The icon is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `icon-rotation-alignment`."}},"default":"auto",doc:"Orientation of icon when map is pitched.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{doc:"The text is aligned to the plane of the map."},viewport:{doc:"The text is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `text-rotation-alignment`."}},"default":"auto",doc:"Orientation of text when map is pitched.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},viewport:{doc:"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted","default":"",tokens:true,doc:"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string","default":["Open Sans Regular","Arial Unicode MS Regular"],doc:"Font stack to use for displaying text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number","default":16,minimum:0,units:"pixels",doc:"Font size.",requires:["text-field"],appearance:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{type:"array",value:"number",length:2,"default":[0.8,2],doc:"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]",minimum:[0.1,0.1],maximum:[10,10],experimental:true,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"text-max-width":{type:"number","default":10,minimum:0,units:"ems",doc:"The maximum line width for text wrapping.",requires:["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number","default":1.2,units:"ems",doc:"Text leading value for multi-line text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0",android:"10.0.0",ios:"10.0.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{type:"number","default":0,units:"ems",doc:"Text tracking amount.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{doc:"The text is aligned towards the anchor position."},left:{doc:"The text is aligned to the left."},center:{doc:"The text is centered."},right:{doc:"The text is aligned to the right."}},"default":"center",doc:"Text justification options.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"},auto:{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems","default":0,doc:"Radial offset of text, in the direction of the symbol's anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"},"data-driven styling":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},requires:["text-field"],"property-type":"data-driven",expression:{interpolated:true,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},requires:["text-field",{"symbol-placement":["point"]}],doc:"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},"default":"center",doc:"Part of the text placed closest to the anchor.",requires:["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number","default":45,units:"degrees",doc:"Maximum angle change between adjacent characters.",requires:["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{doc:"If a text's language supports horizontal writing mode, symbols would be laid out horizontally."},vertical:{doc:"If a text's language supports vertical writing mode, symbols would be laid out vertically."}},doc:"The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either ['horizontal', 'vertical'] or ['vertical', 'horizontal'], the order doesn't affect the placement.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"1.3.0",android:"8.3.0",ios:"5.3.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number","default":0,period:360,units:"degrees",doc:"Rotates the text clockwise.",requires:["text-field"],appearance:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number","default":2,minimum:0,units:"pixels",doc:"Size of the additional area around the text bounding box used for detecting symbol collisions.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean","default":true,doc:"If true, the text may be flipped vertically to prevent it from being rendered upside-down.",requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{doc:"The text is not altered."},uppercase:{doc:"Forces all letters to be displayed in uppercase."},lowercase:{doc:"Forces all letters to be displayed in lowercase."}},"default":"none",doc:"Specifies how to capitalize text, similar to the CSS `text-transform` property.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",doc:"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.",value:"number",units:"ems",length:2,"default":[0,0],requires:["text-field",{"!":"text-radial-offset"}],appearance:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean","default":false,doc:"If true, the text will be visible even if it collides with other previously drawn symbols.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean","default":false,doc:"If true, other symbols can be visible even if they collide with the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean","default":false,doc:"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.",requires:["text-field","icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_raster={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var layout_hillshade={visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"}};var filter={type:"array",value:"*",doc:"A filter selects specific features from a layer."};var filter_symbol={type:"boolean",doc:"Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature","pitch","distance-from-center"]}};var filter_fill={type:"boolean",doc:"Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_hillshade={type:"boolean",doc:"Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_raster={type:"boolean",doc:"Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_clip={type:"boolean",doc:"Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_model={type:"boolean",doc:"Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_line={type:"boolean",doc:"Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_circle={type:"boolean",doc:"Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_building={type:"boolean",doc:"Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_heatmap={type:"boolean",doc:"Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}};var filter_operator={type:"enum",values:{"==":{doc:"`[\"==\", key, value]` equality: `feature[key] = value`"},"!=":{doc:"`[\"!=\", key, value]` inequality: `feature[key] ≠ value`"},">":{doc:"`[\">\", key, value]` greater than: `feature[key] > value`"},">=":{doc:"`[\">=\", key, value]` greater than or equal: `feature[key] ≥ value`"},"<":{doc:"`[\"<\", key, value]` less than: `feature[key] < value`"},"<=":{doc:"`[\"<=\", key, value]` less than or equal: `feature[key] ≤ value`"},"in":{doc:"`[\"in\", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`"},"!in":{doc:"`[\"!in\", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`"},all:{doc:"`[\"all\", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`"},any:{doc:"`[\"any\", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`"},none:{doc:"`[\"none\", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`"},has:{doc:"`[\"has\", key]` `feature[key]` exists"},"!has":{doc:"`[\"!has\", key]` `feature[key]` does not exist"}},doc:"The filter operator."};var geometry_type={type:"enum",values:{Point:{doc:"Filter to point geometries."},LineString:{doc:"Filter to line geometries."},Polygon:{doc:"Filter to polygon geometries."}},doc:"The geometry type for the filter to select."};var function_stop={type:"array",minimum:0,maximum:24,value:["number","color"],length:2,doc:"Zoom level and value pair."};var expression$1={type:"array",value:"*",minimum:1,doc:"An expression defines a function that can be used for data-driven style properties or feature filters."};var expression_name={doc:"",type:"enum",values:{"let":{doc:"Binds expressions to named variables, which can then be referenced in the result expression using [\"var\", \"variable_name\"].",group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"var":{doc:"References variable bound using \"let\".",group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},config:{doc:"Retrieves the configuration value for the given option. Returns null if the requested option is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},literal:{doc:"Provides a literal array or object value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},array:{doc:"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},at:{doc:"Retrieves an item from an array.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"at-interpolated":{doc:"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.11.0",android:"11.12.0",ios:"11.12.0"}}},"in":{doc:"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).",group:"Lookup","sdk-support":{"basic functionality":{js:"1.6.0",android:"9.1.0",ios:"5.8.0"}}},"index-of":{doc:"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},slice:{doc:"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},split:{doc:"Returns an array of substrings from a string, split by a delimiter parameter.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.14.0",android:"11.14.0",ios:"11.14.0"}}},"case":{doc:"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},match:{doc:"Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `[\"get\", \"building_type\"]`). Each label must be unique, and must be either:\n - a single literal value; or\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `[\"c\", \"b\"]`).\n\nThe input matches if any of the values in the array matches using strict equality, similar to the `\"in\"` operator.\nIf the input type does not match the type of the labels, the result will be the fallback value.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},coalesce:{doc:"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`'image'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},step:{doc:"Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},interpolate:{doc:"Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). The `input` may be any numeric expression (e.g., `[\"get\", \"population\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\n\nInterpolation types:\n- `[\"linear\"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\n- `[\"exponential\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n- `[\"cubic-bezier\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},"interpolate-hcl":{doc:"Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},"interpolate-lab":{doc:"Produces continuous, smooth results by interpolating between pairs of input and output values (\"stops\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.",group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},ln2:{doc:"Returns mathematical constant ln(2).",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pi:{doc:"Returns the mathematical constant pi.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},e:{doc:"Returns the mathematical constant e.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"typeof":{doc:"Returns a string describing the type of the given value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},string:{doc:"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},number:{doc:"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"boolean":{doc:"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},object:{doc:"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},collator:{doc:"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.",group:"Types","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},format:{doc:"Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`'image'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\n- `\"text-font\"`: Overrides the font stack specified by the root layout property.\n- `\"text-color\"`: Overrides the color specified by the root paint property.\n- `\"font-scale\"`: Applies a scaling factor on `text-size` as specified by the root layout property.",group:"Types","sdk-support":{"basic functionality":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-font":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"font-scale":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-color":{js:"1.3.0",android:"7.3.0",ios:"4.10.0"},image:{js:"1.6.0",android:"8.6.0",ios:"5.7.0"}}},image:{doc:"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`'format'`](#types-format) expression.\n\nA [`'coalesce'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `'image'` argument.\n\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\n\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `'image'` expression.",group:"Types","sdk-support":{"basic functionality":{js:"1.4.0",android:"8.6.0",ios:"5.7.0"}}},"number-format":{doc:"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.",group:"Types","sdk-support":{"basic functionality":{js:"0.54.0",android:"8.4.0",ios:"5.4.0"}}},"to-string":{doc:"Converts the input value to a string. If the input is `null`, the result is `\"\"`. If the input is a [`boolean`](#types-boolean), the result is `\"true\"` or `\"false\"`. If the input is a number, it is converted to a string as specified by the [\"NumberToString\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `\"rgba(r,g,b,a)\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`'image'`](#types-image) expression, `'to-string'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-number":{doc:"Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the [\"ToNumber Applied to the String Type\" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-boolean":{doc:"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-rgba":{doc:"Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-hsla":{doc:"Returns a four-element array containing the input color's Hue, Saturation, Luminance and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}}},"to-color":{doc:"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgb:{doc:"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgba:{doc:"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},hsl:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},hsla:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},get:{doc:"Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},has:{doc:"Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},length:{doc:"Returns the length of an array or string.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},properties:{doc:"Returns the feature properties object. Note that in some cases, it may be more efficient to use `[\"get\", \"property_name\"]` directly.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"feature-state":{doc:"Retrieves a property value from the current feature's state. Returns `null` if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.46.0",android:"10.0.0",ios:"10.0.0"}}},"geometry-type":{doc:"Returns the feature's geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},worldview:{doc:"Returns the current worldview being used.",group:"Lookup",experimental:true,"sdk-support":{"basic functionality":{js:"3.13.0",android:"11.13.0",ios:"11.13.0"}}},id:{doc:"Returns the feature's id, if it has one.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},zoom:{doc:"Returns the current zoom level. Note that in style layout and paint properties, [\"zoom\"] may only appear as the input to a top-level \"step\" or \"interpolate\" expression.",group:"Camera","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pitch:{doc:"Returns the current pitch in degrees. `[\"pitch\"]` may only be used in the `filter` expression for a `symbol` layer.",group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"distance-from-center":{doc:"Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `[\"distance-from-center\"]` may only be used in the `filter` expression for a `symbol` layer.",group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"measure-light":{doc:"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"heatmap-density":{doc:"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.",group:"Heatmap","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"line-progress":{doc:"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.6.0"}}},"sky-radial-progress":{doc:"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.",group:"sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},accumulated:{doc:"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.53.0",android:"8.4.0",ios:"5.5.0"}}},"+":{doc:"Returns the sum of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"*":{doc:"Returns the product of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"-":{doc:"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"/":{doc:"Returns the result of floating point division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"%":{doc:"Returns the remainder after integer division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"^":{doc:"Returns the result of raising the first input to the power specified by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sqrt:{doc:"Returns the square root of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},log10:{doc:"Returns the base-ten logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},ln:{doc:"Returns the natural logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},log2:{doc:"Returns the base-two logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sin:{doc:"Returns the sine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},cos:{doc:"Returns the cosine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},tan:{doc:"Returns the tangent of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},asin:{doc:"Returns the arcsine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},acos:{doc:"Returns the arccosine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},atan:{doc:"Returns the arctangent of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},min:{doc:"Returns the minimum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},max:{doc:"Returns the maximum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},round:{doc:"Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `[\"round\", -1.5]` evaluates to -2.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},abs:{doc:"Returns the absolute value of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},ceil:{doc:"Returns the smallest integer that is greater than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},floor:{doc:"Returns the largest integer that is less than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},distance:{doc:"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"9.2.0",ios:"5.9.0"}}},"==":{doc:"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"!=":{doc:"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">":{doc:"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<":{doc:"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">=":{doc:"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<=":{doc:"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},all:{doc:"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},any:{doc:"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"!":{doc:"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},within:{doc:"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",group:"Decision","sdk-support":{"basic functionality":{js:"1.9.0",android:"9.1.0",ios:"5.8.0"}}},"is-supported-script":{doc:"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.6.0",ios:"4.1.0"}}},upcase:{doc:"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},downcase:{doc:"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},concat:{doc:"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"resolved-locale":{doc:"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"raster-value":{doc:"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.",group:"Raster Colorization","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-particle-speed":{doc:"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.",group:"Raster Particle Animation","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"is-active-floor":{doc:"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.",group:"Indoor",experimental:true,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},random:{doc:"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}};var fog={range:{type:"array","default":[0.5,10],minimum:-20,maximum:20,length:2,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",example:[0.5,10],"sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"high-color":{type:"color","property-type":"data-constant","default":"#245cdf",expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"space-color":{type:"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"horizon-blend":{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"star-intensity":{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"vertical-range":{type:"array","default":[0,0],minimum:0,length:2,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}};var snow={density:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.85],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Snow particles color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.3],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant","default":"#ffffff",experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant","default":0.4,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array","default":[0,50],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:true,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"Main snow particles direction. Azimuth and polar angles",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"flake-size":{type:"number","property-type":"data-constant","default":0.71,minimum:0,maximum:5,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}};var rain={density:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.5],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",0.3,"#a8adbc"],experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,0.88,1,0.7],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,1],minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#001736",0.3,"#464646"],experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},"use-theme":true,transition:true,doc:"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant","default":0.57,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array","default":[0,80],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:true,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"Main rain particles direction. Azimuth and polar angles.",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"droplet-size":{type:"array","default":[2.6,18.2],minimum:0,maximum:50,length:2,value:"number","property-type":"data-constant",transition:true,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},doc:"Rain droplet size. x - normal to direction, y - along direction",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"distortion-strength":{type:"number","property-type":"data-constant","default":0.7,minimum:0,maximum:1,experimental:true,expression:{interpolated:true,parameters:["zoom","measure-light"],relaxZoomRestriction:true},transition:true,doc:"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}};var camera={"camera-projection":{doc:"Camera projection describes how 3D world geometry get projected into 2D screen",type:"enum",values:{perspective:{doc:"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},orthographic:{doc:"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"default":"perspective","property-type":"data-constant"}};var colorTheme={data:{type:"string",doc:"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.",transition:false,"property-type":"data-constant",expression:{interpolated:false}}};var indoor_source={sourceId:{type:"string",doc:"Source ID of a source to be used to retrieve indoor data.",experimental:true,"private":true,transition:false,"property-type":"data-constant"},sourceLayers:{type:"array",value:"string",doc:"An array of source layers to be used to retrieve indoor data.",experimental:true,"private":true,transition:false,"property-type":"data-constant"}};var indoor={"*":{type:"indoor_source","private":true,experimental:true,doc:"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}};var light={anchor:{type:"enum","default":"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant",transition:false,expression:{interpolated:false,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},position:{type:"array","default":[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:true,expression:{interpolated:true,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},color:{type:"color","property-type":"data-constant","default":"#ffffff",expression:{interpolated:true,parameters:["zoom"]},"use-theme":true,transition:true,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},intensity:{type:"number","property-type":"data-constant","default":0.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}}};var index_es_projection={name:{type:"enum",values:{albers:{doc:"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},equalEarth:{doc:"An Equal Earth projection."},equirectangular:{doc:"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},lambertConformalConic:{doc:"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},mercator:{doc:"The Mercator projection is the default projection."},naturalEarth:{doc:"A Natural Earth projection."},winkelTripel:{doc:"A Winkel Tripel projection."},globe:{doc:"A globe projection."}},"default":"mercator",doc:"The name of the projection to be used for rendering the map.",required:true,"sdk-support":{"basic functionality":{js:"2.6.0",ios:"10.5.0",android:"10.5.0"}}},center:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-180,-90],maximum:[180,90],transition:false,doc:"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].",example:[-96,37.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}},parallels:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-90,-90],maximum:[90,90],transition:false,doc:"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).",example:[29.5,45.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}}};var terrain={source:{type:"string",doc:"Name of a source of `raster_dem` type to be used for terrain elevation.",required:true,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},exaggeration:{type:"number","property-type":"data-constant","default":1,minimum:0,maximum:1000,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.",requires:["source"],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}}};var paint=["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"];var paint_fill={"fill-antialias":{type:"boolean","default":true,doc:"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.",transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{type:"color","default":"#000000",doc:"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":true,transition:true,requires:[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",doc:"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":true,transition:true,requires:[{"!":"fill-pattern"},{"fill-antialias":true}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{doc:"The fill is translated relative to the map."},viewport:{doc:"The fill is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-translate`.","default":"map",requires:["fill-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{type:"number",doc:"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.","default":0,minimum:0,transition:true,experimental:true,"sdk-support":{"basic functionality":{js:"3.7.0"},"data-driven styling":{js:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{type:"color","default":"rgba(241, 236, 225, 255)",doc:"The color of bridge guard rail.",experimental:true,"private":true,"use-theme":true,transition:true,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{type:"color","default":"rgba(241, 236, 225, 255)",doc:"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":true,transition:true,experimental:true,"private":true,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"}};var paint_building={"building-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:true,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number","default":0,minimum:0,maximum:1,"private":true,expression:{interpolated:false,parameters:[]},transition:true,doc:"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant",type:"number","default":0,minimum:0,maximum:1,"private":true,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number","private":true,"default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number","private":true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.",transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant",type:"number","private":true,"default":1,minimum:0,doc:"A global multiplier that can be used to scale base and height of the procedural buildings.",transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-cast-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow casting for this layer",transition:false,"private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-color":{type:"color","default":"rgba(193, 154, 127, 1)",doc:"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).","private":true,"use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{type:"number","default":0,minimum:0,maximum:5,units:"intensity",doc:"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).","private":true,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{type:"number","default":0.35,minimum:0,maximum:1,doc:"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.","private":true,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:true,parameters:["measure-light","zoom"]}},"building-cutoff-fade-range":{type:"number","private":true,"default":0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:false,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{type:"array","private":true,experimental:true,value:"number","property-type":"data-constant",transition:false,expression:{interpolated:true,parameters:["zoom"]},length:3,"default":[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant",type:"color","private":true,"default":"#ffffff",doc:"The color of the flood light effect on the walls of the buildings.",requires:["lights"],"use-theme":true,transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant",type:"number","private":true,"default":0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number","private":true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}};var paint_line={"line-opacity":{type:"number",doc:"The opacity at which the line will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{type:"color",doc:"The color with which the line will be drawn.","default":"#000000","use-theme":true,transition:true,requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.23.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{doc:"The line is translated relative to the map."},viewport:{doc:"The line is translated relative to the viewport."}},doc:"Controls the frame of reference for `line-translate`.","default":"map",requires:["line-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number","default":1,minimum:0,transition:true,units:"pixels",doc:"Stroke thickness.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{type:"number","default":0,minimum:0,doc:"Draws a line casing outside of a line's actual path. Value indicates the width of the inner gap.",transition:true,units:"pixels","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{type:"number","default":0,doc:"The line's offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.",transition:true,units:"pixels","sdk-support":{"basic functionality":{js:"0.12.1",android:"3.0.0",ios:"3.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",doc:"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won't render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.",minimum:0,transition:false,units:"line widths",requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{type:"color",doc:"A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature's total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `\"lineMetrics\": true`.",example:["interpolate",["linear"],["line-progress"],0,"blue",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"use-theme":true,transition:false,requires:[{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:true}}],"sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.4.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{type:"array",value:"number",doc:"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].",length:2,"default":[0,0],minimum:[0,0],maximum:[1,1],transition:false,requires:[{source:"geojson",has:{lineMetrics:true}}],"sdk-support":{"basic functionality":{js:"2.9.0",android:"10.5.0",ios:"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{type:"array",value:"number",doc:"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.",experimental:true,length:2,"default":[0,0],minimum:[0,0],maximum:[1,1],transition:false,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:true}}],expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{type:"color",doc:"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.",experimental:true,"default":"transparent","use-theme":true,transition:true,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:true}}],"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.17.0",android:"11.17.0",ios:"11.17.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{type:"number","private":true,doc:"The width of the line border. A value of zero means no border.","default":0,minimum:0,transition:true,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{type:"color","private":true,doc:"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.","default":"rgba(0, 0, 0, 0)","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{type:"number","default":0,minimum:0,maximum:1,doc:"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:true,parameters:["zoom"]},transition:true,"property-type":"data-constant"},"line-blend-mode":{type:"enum",values:{"default":{doc:"Normal non-blended rendering mode."},multiply:{doc:"Line features are composited using multiply blending."},additive:{doc:"Line features are composited using additive density accumulation with tone mapping."}},doc:"Controls the blend mode used for rendering line features.","default":"default",experimental:true,"private":true,"sdk-support":{"basic functionality":{js:"3.21.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"}};var paint_circle={"circle-radius":{type:"number","default":5,minimum:0,transition:true,units:"pixels",doc:"Circle radius.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{type:"color","default":"#000000",doc:"The fill color of the circle.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{type:"number","default":0,doc:"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.",transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{type:"number",doc:"The opacity at which the circle will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{doc:"The circle is translated relative to the map."},viewport:{doc:"The circle is translated relative to the viewport."}},doc:"Controls the frame of reference for `circle-translate`.","default":"map",requires:["circle-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{doc:"Circles are scaled according to their apparent distance to the camera."},viewport:{doc:"Circles are not scaled."}},"default":"map",doc:"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{doc:"The circle is aligned to the plane of the map."},viewport:{doc:"The circle is aligned to the plane of the viewport."}},"default":"viewport",doc:"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"The width of the circle's stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color","default":"#000000",doc:"The stroke color of the circle.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",doc:"The opacity of the circle's stroke.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"}};var paint_heatmap={"heatmap-radius":{type:"number","default":30,minimum:1,transition:true,units:"pixels",doc:"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{type:"number","default":1,minimum:0,transition:false,doc:"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number","default":1,minimum:0,transition:true,doc:"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],doc:"Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `[\"heatmap-density\"]` as input.","use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",doc:"The global opacity at which the heatmap layer will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"}};var paint_symbol={"icon-opacity":{doc:"The opacity at which the icon will be drawn.",type:"number","default":1,minimum:0,maximum:1,transition:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-occlusion-opacity":{doc:"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",type:"number",minimum:0,maximum:1,"default":0,transition:true,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-emissive-strength":{type:"number","default":1,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature-state"]},appearance:true,"property-type":"data-driven"},"text-emissive-strength":{type:"number","default":1,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature-state"]},appearance:true,"property-type":"data-driven"},"icon-color":{type:"color","default":"#000000","use-theme":true,transition:true,doc:"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-halo-color":{type:"color","default":"rgba(0, 0, 0, 0)","use-theme":true,transition:true,doc:"The color of the icon's halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-halo-width":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Distance of halo to the icon outline.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-halo-blur":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Fade out the halo towards the outside.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,appearance:true,units:"pixels",doc:"Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{doc:"Icons are translated relative to the map."},viewport:{doc:"Icons are translated relative to the viewport."}},doc:"Controls the frame of reference for `icon-translate`.","default":"map",requires:["icon-image","icon-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},doc:"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{type:"number",doc:"The opacity at which the text will be drawn.","default":1,minimum:0,maximum:1,transition:true,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-occlusion-opacity":{type:"number",doc:"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",minimum:0,maximum:1,"default":0,transition:true,requires:["text-field"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-color":{type:"color",doc:"The color with which the text will be drawn.","default":"#000000","use-theme":true,transition:true,overridable:true,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-halo-color":{type:"color","default":"rgba(0, 0, 0, 0)","use-theme":true,transition:true,doc:"The color of the text's halo, which helps it stand out from backgrounds.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-halo-width":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-halo-blur":{type:"number","default":0,minimum:0,transition:true,units:"pixels",doc:"The halo's fadeout distance towards the outside.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},appearance:true,"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,appearance:true,units:"pixels",doc:"Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{doc:"The text is translated relative to the map."},viewport:{doc:"The text is translated relative to the viewport."}},doc:"Controls the frame of reference for `text-translate`.","default":"map",requires:["text-field","text-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{type:"number","default":0,minimum:-1,maximum:1,transition:false,doc:"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:false},"property-type":"data-constant"},"icon-color-contrast":{type:"number","default":0,minimum:-1,maximum:1,transition:false,doc:"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false},"property-type":"data-constant"},"icon-color-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the minimum brightness.","default":0,minimum:0,maximum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false},"property-type":"data-constant"},"icon-color-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the maximum brightness.","default":1,minimum:0,maximum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:false},"property-type":"data-constant"},"symbol-z-offset":{type:"number",doc:"Specifies an uniform elevation from the ground, in meters.","default":0,minimum:0,transition:true,experimental:true,appearance:true,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},requires:[{"symbol-z-elevate":true}],expression:{interpolated:true,parameters:["zoom","feature"]},"property-type":"data-driven"}};var paint_raster={"raster-opacity":{type:"number",doc:"The opacity at which the image will be drawn.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-color":{type:"color",doc:"Defines a color map by which to colorize a raster layer, parameterized by the `[\"raster-value\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.","use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{type:"array","default":[0.2126,0.7152,0.0722,0],length:4,value:"number","property-type":"data-constant",transition:true,requires:["raster-color"],expression:{interpolated:true,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.",example:[0.2126,0.7152,0.0722,0],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-color-range":{type:"array",length:2,value:"number","property-type":"data-constant",transition:true,requires:["raster-color"],expression:{interpolated:true,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source's stated data range is used.",example:[0.5,10],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-hue-rotate":{type:"number","default":0,period:360,transition:true,units:"degrees",doc:"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the minimum brightness.","default":0,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the maximum brightness.","default":1,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",doc:"Increase or reduce the saturation of the image.","default":0,minimum:-1,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",doc:"Increase or reduce the contrast of the image.","default":0,minimum:-1,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",doc:"The resampling/interpolation method to use for overscaling, also known as texture magnification filter",values:{linear:{doc:"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},nearest:{doc:"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},"default":"linear","sdk-support":{"basic functionality":{js:"0.47.0",android:"6.3.0",ios:"4.2.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number","default":300,minimum:0,transition:false,units:"milliseconds",doc:"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{type:"string",required:false,experimental:true,"property-type":"data-constant",transition:false,requires:[{source:"raster-array"}],doc:"Displayed band of raster array source layer. Defaults to the first band if not set.",example:"band-name","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}}},"raster-elevation":{type:"number",doc:"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.","default":0,minimum:0,transition:true,experimental:true,"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.2.0",ios:"11.2.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{type:"enum",doc:"Selects the base of raster-elevation.",values:{sea:{doc:"Use this mode to elevate raster layers relative to the sea level."},ground:{doc:"Use this mode to elevate raster layers relative to the ground's height below them."}},"default":"sea",transition:false,experimental:true,"sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:false},"property-type":"data-constant"}};var paint_hillshade={"hillshade-illumination-direction":{type:"number","default":335,minimum:0,maximum:359,doc:"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.",transition:false,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{doc:"The hillshade illumination is relative to the north direction."},viewport:{doc:"The hillshade illumination is relative to the top of the viewport."}},"default":"viewport",doc:"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",doc:"Intensity of the hillshade","default":0.5,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color","default":"#000000",doc:"The shading color of areas that face away from the light source.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color","default":"#FFFFFF",doc:"The shading color of areas that faces towards the light source.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color","default":"#000000",doc:"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":true,transition:true,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"}};var paint_background={"background-pitch-alignment":{type:"enum",values:{map:{doc:"The background is aligned to the plane of the map."},viewport:{doc:"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},"default":"map",doc:"Orientation of background layer.","sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:false,parameters:[]},experimental:true,"property-type":"data-constant"},"background-color":{type:"color","default":"#000000",doc:"The color with which the background will be drawn.","use-theme":true,transition:true,requires:[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"background-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity at which the background will be drawn.",transition:true,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:true,parameters:["zoom","measure-light"]},"property-type":"data-constant"}};var paint_sky={"sky-type":{type:"enum",values:{gradient:{doc:"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},atmosphere:{doc:"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},"default":"atmosphere",doc:"The type of the sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{type:"array",value:"number",length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:false,doc:"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},requires:[{"sky-type":"atmosphere"}],expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{type:"number",requires:[{"sky-type":"atmosphere"}],"default":10,minimum:0,maximum:100,transition:false,doc:"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{type:"array",requires:[{"sky-type":"gradient"}],value:"number","default":[0,0],length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:false,doc:"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{type:"number",requires:[{"sky-type":"gradient"}],"default":90,minimum:0,maximum:180,transition:false,doc:"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient":{type:"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],doc:"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":true,transition:false,requires:[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{type:"color","default":"white",doc:"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":true,transition:false,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{type:"color","default":"white",doc:"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":true,transition:false,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire sky layer.",transition:true,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"}};var paint_model={"model-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.",transition:true,expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},"property-type":"data-driven"},"model-rotation":{type:"array",value:"number",length:3,"default":[0,0,0],period:360,units:"degrees","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true,doc:"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{type:"array",value:"number",length:3,"default":[1,1,1],doc:"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-translation":{type:"array",value:"number",length:3,"default":[0,0,0],"property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true,doc:"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{type:"color","default":"#ffffff",doc:"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"use-theme":true,transition:true},"model-color-mix-intensity":{type:"number","property-type":"data-driven","default":0,minimum:0,maximum:1,doc:"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-type":{type:"enum",values:{"common-3d":{doc:"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{doc:"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"default":"common-3d",doc:"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow casting for this layer",transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow receiving for this layer",transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{type:"number","default":1,minimum:0,maximum:1,doc:"Intensity of the ambient occlusion if present in the 3D model.",expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant",transition:true},"model-emissive-strength":{type:"number","property-type":"data-driven","default":0,minimum:0,maximum:5,units:"intensity",doc:"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-roughness":{type:"number","default":1,minimum:0,maximum:1,doc:"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-height-based-emissive-strength-multiplier":{type:"array","default":[1,1,1,1,0],length:5,value:"number",doc:"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven",expression:{interpolated:true,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:true},"model-cutoff-fade-range":{type:"number","default":0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:false,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{type:"array","private":true,value:"number","property-type":"data-constant",transition:false,expression:{interpolated:true,parameters:["zoom"]},length:3,"default":[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.5.0"}}},"model-elevation-reference":{type:"enum",doc:"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.",values:{sea:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"ground",transition:false,expression:{interpolated:false},"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.17.0",android:"11.10.0",ios:"11.10.0"}}},"model-ignore-line-cutout":{type:"boolean",doc:"When set to true, the layer is not going to be affected by the line cutout effect.","default":false,transition:false,expression:{interpolated:false},"property-type":"data-constant",experimental:true,"private":true,"sdk-support":{"basic functionality":{android:"11.21.0",ios:"11.21.0"}}}};var transition={duration:{type:"number","default":300,minimum:0,units:"milliseconds",doc:"Time allotted for transitions to complete."},delay:{type:"number","default":0,minimum:0,units:"milliseconds",doc:"Length of time before a transition begins."}};var promoteId={"*":{type:"*",doc:"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}};var $doc={transition:{type:"transition",doc:"Controls how a property transitions to a new value. Overrides the style's root `transition` for this property."},"use-theme":{type:"enum",doc:"Controls whether the associated color property is affected by the global color theme. When set to \"none\", the color theme is ignored for this property. When set to \"default\", the color theme is applied.",values:{"default":{doc:"The color theme is applied to this property (default behavior)."},none:{doc:"The color theme is ignored for this property."}},"default":"default"}};var v8={$version:$version,$root:$root,featuresets:featuresets,featureset:featureset,selector:selector,selectorProperty:selectorProperty,model:model,"import":{id:{type:"string",doc:"Unique import name.",required:true},url:{type:"string",doc:"The URL of the style.",required:true},config:{type:"config",doc:"Configuration values for the imported style's options."},data:{type:"$root",doc:"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{type:"colorTheme",optional:true,doc:"If specified, it overrides the color-theme of the imported style."}},config:index_es_config,schema:schema,option:index_es_option,models:models,"light-3d":{id:{type:"string",doc:"Unique light name.",required:true},properties:{type:"properties",doc:"Properties of the light."},type:{type:"enum",doc:"Type of the light to be added",values:{ambient:{doc:"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},directional:{doc:"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},flat:{doc:"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}}},properties:properties,properties_light_directional:properties_light_directional,properties_light_ambient:properties_light_ambient,properties_light_flat:properties_light_flat,iconsets:iconsets,iconset:iconset,iconset_sprite:iconset_sprite,iconset_source:iconset_source,sources:sources,source:source,source_vector:source_vector,source_raster:source_raster,source_raster_dem:source_raster_dem,source_raster_array:source_raster_array,source_geojson:source_geojson,source_video:source_video,source_image:source_image,modelNodeOverride:modelNodeOverride,modelNodeOverrides:modelNodeOverrides,modelMaterialOverride:modelMaterialOverride,modelMaterialOverrides:modelMaterialOverrides,modelSourceModel:modelSourceModel,modelSourceModels:modelSourceModels,source_model:source_model,layer:index_es_layer,appearance:appearance,layout:layout,layout_background:layout_background,layout_sky:layout_sky,layout_model:layout_model,layout_clip:layout_clip,layout_fill:layout_fill,layout_circle:layout_circle,layout_heatmap:layout_heatmap,"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"fill-extrusion-edge-radius":{type:"number",experimental:true,"default":0,minimum:0,maximum:1,doc:"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:false},"property-type":"constant"},"source-max-zoom":{type:"number",minimum:0,maximum:24,"private":true,experimental:true,doc:"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}},"property-type":"constant"}},layout_building:layout_building,layout_line:layout_line,layout_symbol:layout_symbol,layout_raster:layout_raster,"layout_raster-particle":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},"default":"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"expressions support":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:false},"property-type":"constant"}},layout_hillshade:layout_hillshade,filter:filter,filter_symbol:filter_symbol,filter_fill:filter_fill,filter_hillshade:filter_hillshade,filter_raster:filter_raster,"filter_raster-particle":{type:"boolean",doc:"Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}},filter_clip:filter_clip,filter_model:filter_model,filter_line:filter_line,filter_circle:filter_circle,"filter_fill-extrusion":{type:"boolean",doc:"Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.","default":false,transition:false,"property-type":"data-driven",expression:{interpolated:false,parameters:["zoom","feature"]}},filter_building:filter_building,filter_heatmap:filter_heatmap,filter_operator:filter_operator,geometry_type:geometry_type,"function":{expression:{type:"expression",doc:"An expression."},stops:{type:"array",doc:"An array of stops.",value:"function_stop"},base:{type:"number","default":1,minimum:0,doc:"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},property:{type:"string",doc:"The name of a feature property to use as the function input.","default":"$zoom"},type:{type:"enum",values:{identity:{doc:"Return the input value as the output value."},exponential:{doc:"Generate an output by interpolating between stops just less than and just greater than the function input."},interval:{doc:"Return the output value of the stop just less than the function input."},categorical:{doc:"Return the output value of the stop equal to the function input."}},doc:"The interpolation strategy to use in function evaluation.","default":"exponential"},colorSpace:{type:"enum",values:{rgb:{doc:"Use the RGB color space to interpolate color values"},lab:{doc:"Use the LAB color space to interpolate color values."},hcl:{doc:"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},doc:"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.","default":"rgb"},"default":{type:"*",required:false,doc:"A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n* In categorical functions, when the feature value does not match any of the stop domain values.\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\nIf no default is provided, the style property's default is used in these circumstances."}},function_stop:function_stop,expression:expression$1,expression_name:expression_name,fog:fog,snow:snow,rain:rain,camera:camera,colorTheme:colorTheme,indoor_source:indoor_source,indoor:indoor,light:light,projection:index_es_projection,terrain:terrain,paint:paint,paint_fill:paint_fill,"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number","default":1,minimum:0,maximum:1,doc:"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:true,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color","default":"#000000",doc:"The base color of the extruded fill. The extrusion's surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":true,transition:true,requires:[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,"default":[0,0],transition:true,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{doc:"The fill extrusion is translated relative to the map."},viewport:{doc:"The fill extrusion is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-extrusion-translate`.","default":"map",requires:["fill-extrusion-translate"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:false,doc:"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:false,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{type:"number","property-type":"data-constant","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{type:"number","default":0,minimum:0,units:"meters",doc:"The height with which to extrude this layer.",transition:true,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number","default":0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.",transition:true,requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{type:"enum",experimental:true,values:{terrain:{doc:"The fill extrusion height follows terrain slope."},flat:{doc:"The fill extrusion height is flat over terrain."}},doc:"Controls the behavior of fill extrusion height over terrain","default":"flat",requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{type:"enum",experimental:true,values:{terrain:{doc:"The fill extrusion base follows terrain slope."},flat:{doc:"The fill extrusion base is flat over terrain."}},doc:"Controls the behavior of fill extrusion base over terrain","default":"terrain",requires:["fill-extrusion-base"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{type:"boolean","default":true,doc:"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.",transition:false,"sdk-support":{"basic functionality":{js:"0.50.0",android:"7.0.0",ios:"4.7.0"}},expression:{interpolated:false,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number","default":0,minimum:0,maximum:1,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant",type:"number","default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.",requires:["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant",type:"number",experimental:true,"default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.",requires:["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number",experimental:true,"default":3,minimum:0,expression:{interpolated:true,parameters:["zoom"]},transition:true,doc:"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant",type:"color",experimental:true,"default":"#ffffff",doc:"The color of the flood light effect on the walls of the extruded buildings.",requires:["lights"],"use-theme":true,transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant",type:"number",experimental:true,"default":0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven",type:"number",experimental:true,units:"meters","default":0,minimum:0,doc:"The extent of the flood light effect on the walls of the extruded buildings in meters.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven",type:"number",experimental:true,units:"meters","default":0,doc:"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:true,"default":0.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant",type:"number",experimental:true,"default":1,minimum:0,doc:"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.",transition:true,expression:{interpolated:true,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant",type:"boolean","default":true,experimental:true,doc:"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.",requires:["fill-extrusion-edge-radius"],transition:false,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.10.0",ios:"10.10.0"}},expression:{interpolated:false,parameters:["zoom"]}},"fill-extrusion-cutoff-fade-range":{type:"number","default":0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:false,expression:{interpolated:false},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{type:"array","private":true,experimental:true,value:"number","property-type":"data-constant",transition:false,expression:{interpolated:true,parameters:["zoom"]},length:3,"default":[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"fill-extrusion-emissive-strength":{type:"number","default":0,minimum:0,transition:true,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:true,parameters:["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{type:"number","default":0,minimum:0,transition:true,experimental:true,units:"meters",doc:"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:true,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{type:"boolean","default":true,doc:"Enable/Disable shadow casting for this layer",transition:false,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"}},paint_building:paint_building,paint_line:paint_line,paint_circle:paint_circle,paint_heatmap:paint_heatmap,paint_symbol:paint_symbol,paint_raster:paint_raster,"paint_raster-particle":{"raster-particle-array-band":{type:"string",required:false,"property-type":"data-constant",transition:false,doc:"Displayed band of raster array source layer",example:"\"1713348000\"","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"raster-particle-count":{type:"number",doc:"Defines the amount of particles per tile.","default":512,minimum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{type:"color",doc:"Defines a color map by which to colorize a raster particle layer, parameterized by the `[\"raster-particle-speed\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.","use-theme":true,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"data-driven styling":{}},expression:{interpolated:true,parameters:["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{type:"number",doc:"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.","default":1,minimum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{type:"number",doc:"Defines a coefficient for the speed of particles’ motion.","default":0.2,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{type:"number",doc:"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.","default":0.98,minimum:0,maximum:1,transition:true,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{type:"number",doc:"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).","default":0.8,minimum:0,maximum:1,transition:false,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{type:"number",doc:"Defines an uniform elevation from sea level, in meters.","default":0,minimum:0,transition:true,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:true,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:paint_hillshade,paint_background:paint_background,paint_sky:paint_sky,paint_model:paint_model,transition:transition,"property-type":{"data-driven":{type:"property-type",doc:"Property is interpolable and can be represented using a property expression."},"color-ramp":{type:"property-type",doc:"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{type:"property-type",doc:"Property is interpolable but cannot be represented using a property expression."},constant:{type:"property-type",doc:"Property is constant across all zoom levels and property values."}},promoteId:promoteId,$doc:$doc};// Note: This regex matches even invalid JSON strings, but since we’re // working on the output of `JSON.stringify` we know that only valid strings // are present (unless the user supplied a weird `options.indent` but in // that case we don’t care since the output would be invalid anyway). @@ -84556,7 +84633,7 @@ case'rgb':if(params.length!==3)return null;return[parse_css_int(params[0]),parse case'hsl':if(params.length!==3)return null;var h=(parseFloat(params[0])%360+360)%360/360;// 0 .. 1 // NOTE(deanm): According to the CSS spec s/l should only be // percentages, but we don't bother and let float or percentage. -var s=parse_css_float(params[1]);var l=parse_css_float(params[2]);var m2=l<=0.5?l*(s+1):l+s-l*s;var m1=l*2-m2;return[clamp_css_byte(css_hue_to_rgb(m1,m2,h+1/3)*255),clamp_css_byte(css_hue_to_rgb(m1,m2,h)*255),clamp_css_byte(css_hue_to_rgb(m1,m2,h-1/3)*255),alpha];default:return null;}}return null;}try{csscolorparser.parseCSSColor=parseCSSColor;}catch(e){}return csscolorparser;}var csscolorparserExports=requireCsscolorparser();function number(a,b,t){return a*(1-t)+b*t;}var index_es_Color=/*#__PURE__*/function(){function Color(r,g,b){var a=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;index_es_classCallCheck(this,Color);this.r=r;this.g=g;this.b=b;this.a=a;}/** +var s=parse_css_float(params[1]);var l=parse_css_float(params[2]);var m2=l<=0.5?l*(s+1):l+s-l*s;var m1=l*2-m2;return[clamp_css_byte(css_hue_to_rgb(m1,m2,h+1/3)*255),clamp_css_byte(css_hue_to_rgb(m1,m2,h)*255),clamp_css_byte(css_hue_to_rgb(m1,m2,h-1/3)*255),alpha];default:return null;}}return null;}try{csscolorparser.parseCSSColor=parseCSSColor;}catch(e){}return csscolorparser;}var csscolorparserExports=requireCsscolorparser();function number(a,b,t){return a*(1-t)+b*t;}function color(from,to,t){return new index_es_Color(number(from.r,to.r,t),number(from.g,to.g,t),number(from.b,to.b,t),number(from.a,to.a,t));}function array(from,to,t){return from.map(function(d,i){return number(d,to[i],t);});}var interpolate$1=/*#__PURE__*/Object.freeze({__proto__:null,array:array,color:color,number:number});var index_es_Color=/*#__PURE__*/function(){function Color(r,g,b){var a=arguments.length>3&&arguments[3]!==undefined?arguments[3]:1;index_es_classCallCheck(this,Color);this.r=r;this.g=g;this.b=b;this.a=a;}/** * Parses valid CSS color strings and returns a `Color` instance. * @returns A `Color` instance, or `undefined` if the input is not a valid color string. */return index_es_createClass(Color,[{key:"toString",value:/** @@ -84568,7 +84645,7 @@ var s=parse_css_float(params[1]);var l=parse_css_float(params[2]);var m2=l<=0.5? * purple.toString; // = "rgba(128,0,128,1)" * var translucentGreen = new Color.parse('rgba(26, 207, 26, .73)'); * translucentGreen.toString(); // = "rgba(26,207,26,0.73)" - */function toString(){var r=this.r,g=this.g,b=this.b,a=this.a;return"rgba(".concat(Math.round(r*255),",").concat(Math.round(g*255),",").concat(Math.round(b*255),",").concat(a,")");}},{key:"toNonPremultipliedRenderColor",value:function toNonPremultipliedRenderColor(lut){var r=this.r,g=this.g,b=this.b,a=this.a;return new NonPremultipliedRenderColor(lut,r,g,b,a);}},{key:"toPremultipliedRenderColor",value:function toPremultipliedRenderColor(lut){var r=this.r,g=this.g,b=this.b,a=this.a;return new PremultipliedRenderColor(lut,r*a,g*a,b*a,a);}},{key:"clone",value:function clone(){return new Color(this.r,this.g,this.b,this.a);}}],[{key:"parse",value:function parse(input){if(!input){return void 0;}if(input instanceof Color){return input;}if(typeof input!=='string'){return void 0;}var rgba=csscolorparserExports.parseCSSColor(input);if(!rgba){return void 0;}return new Color(rgba[0]/255,rgba[1]/255,rgba[2]/255,rgba[3]);}}]);}();var RenderColor=/*#__PURE__*/function(){function RenderColor(lut,r,g,b,a){var premultiplied=arguments.length>5&&arguments[5]!==undefined?arguments[5]:false;index_es_classCallCheck(this,RenderColor);this.premultiplied=false;this.premultiplied=premultiplied;if(!lut){this.r=r;this.g=g;this.b=b;this.a=a;}else{var N=lut.image.height;var N2=N*N;if(this.premultiplied){r=a===0?0:r/a*(N-1);g=a===0?0:g/a*(N-1);b=a===0?0:b/a*(N-1);}else{r=r*(N-1);g=g*(N-1);b=b*(N-1);}r=Math.max(0,Math.min(N-1,r));g=Math.max(0,Math.min(N-1,g));b=Math.max(0,Math.min(N-1,b));var r0=Math.floor(r);var g0=Math.floor(g);var b0=Math.floor(b);var r1=Math.ceil(r);var g1=Math.ceil(g);var b1=Math.ceil(b);var rw=r-r0;var gw=g-g0;var bw=b-b0;var data=lut.image.data;var i0=(r0+g0*N2+b0*N)*4;var i1=(r0+g0*N2+b1*N)*4;var i2=(r0+g1*N2+b0*N)*4;var i3=(r0+g1*N2+b1*N)*4;var i4=(r1+g0*N2+b0*N)*4;var i5=(r1+g0*N2+b1*N)*4;var i6=(r1+g1*N2+b0*N)*4;var i7=(r1+g1*N2+b1*N)*4;this.r=number(number(number(data[i0],data[i1],bw),number(data[i2],data[i3],bw),gw),number(number(data[i4],data[i5],bw),number(data[i6],data[i7],bw),gw),rw)/255*(this.premultiplied?a:1);this.g=number(number(number(data[i0+1],data[i1+1],bw),number(data[i2+1],data[i3+1],bw),gw),number(number(data[i4+1],data[i5+1],bw),number(data[i6+1],data[i7+1],bw),gw),rw)/255*(this.premultiplied?a:1);this.b=number(number(number(data[i0+2],data[i1+2],bw),number(data[i2+2],data[i3+2],bw),gw),number(number(data[i4+2],data[i5+2],bw),number(data[i6+2],data[i7+2],bw),gw),rw)/255*(this.premultiplied?a:1);this.a=a;}}/** + */function toString(){var _ref=[this.r,this.g,this.b,this.a],r=_ref[0],g=_ref[1],b=_ref[2],a=_ref[3];return"rgba(".concat(Math.round(r*255),",").concat(Math.round(g*255),",").concat(Math.round(b*255),",").concat(a,")");}},{key:"toNonPremultipliedRenderColor",value:function toNonPremultipliedRenderColor(lut){var r=this.r,g=this.g,b=this.b,a=this.a;return new NonPremultipliedRenderColor(lut,r,g,b,a);}},{key:"toPremultipliedRenderColor",value:function toPremultipliedRenderColor(lut){var r=this.r,g=this.g,b=this.b,a=this.a;return new PremultipliedRenderColor(lut,r*a,g*a,b*a,a);}},{key:"clone",value:function clone(){return new Color(this.r,this.g,this.b,this.a);}}],[{key:"parse",value:function parse(input){if(!input){return void 0;}if(input instanceof Color){return input;}if(typeof input!=='string'){return void 0;}var rgba=csscolorparserExports.parseCSSColor(input);if(!rgba){return void 0;}return new Color(rgba[0]/255,rgba[1]/255,rgba[2]/255,rgba[3]);}}]);}();var RenderColor=/*#__PURE__*/function(){function RenderColor(lut,r,g,b,a){var premultiplied=arguments.length>5&&arguments[5]!==undefined?arguments[5]:false;index_es_classCallCheck(this,RenderColor);this.premultiplied=false;this.premultiplied=premultiplied;if(!lut){this.r=r;this.g=g;this.b=b;this.a=a;}else{var N=lut.image.height;var N2=N*N;if(this.premultiplied){r=a===0?0:r/a*(N-1);g=a===0?0:g/a*(N-1);b=a===0?0:b/a*(N-1);}else{r=r*(N-1);g=g*(N-1);b=b*(N-1);}r=Math.max(0,Math.min(N-1,r));g=Math.max(0,Math.min(N-1,g));b=Math.max(0,Math.min(N-1,b));var r0=Math.floor(r);var g0=Math.floor(g);var b0=Math.floor(b);var r1=Math.ceil(r);var g1=Math.ceil(g);var b1=Math.ceil(b);var rw=r-r0;var gw=g-g0;var bw=b-b0;var data=lut.image.data;var i0=(r0+g0*N2+b0*N)*4;var i1=(r0+g0*N2+b1*N)*4;var i2=(r0+g1*N2+b0*N)*4;var i3=(r0+g1*N2+b1*N)*4;var i4=(r1+g0*N2+b0*N)*4;var i5=(r1+g0*N2+b1*N)*4;var i6=(r1+g1*N2+b0*N)*4;var i7=(r1+g1*N2+b1*N)*4;this.r=number(number(number(data[i0],data[i1],bw),number(data[i2],data[i3],bw),gw),number(number(data[i4],data[i5],bw),number(data[i6],data[i7],bw),gw),rw)/255*(this.premultiplied?a:1);this.g=number(number(number(data[i0+1],data[i1+1],bw),number(data[i2+1],data[i3+1],bw),gw),number(number(data[i4+1],data[i5+1],bw),number(data[i6+1],data[i7+1],bw),gw),rw)/255*(this.premultiplied?a:1);this.b=number(number(number(data[i0+2],data[i1+2],bw),number(data[i2+2],data[i3+2],bw),gw),number(number(data[i4+2],data[i5+2],bw),number(data[i6+2],data[i7+2],bw),gw),rw)/255*(this.premultiplied?a:1);this.a=a;}}/** * Returns an RGBA array of values representing the color. * @returns An array of RGBA color values in the range [0, 255]. */return index_es_createClass(RenderColor,[{key:"toArray",value:function toArray(){var r=this.r,g=this.g,b=this.b,a=this.a;return[r*255,g*255,b*255,a];}/** @@ -84588,14 +84665,14 @@ var s=parse_css_float(params[1]);var l=parse_css_float(params[2]);var m2=l<=0.5? * The color is defined by sRGB primaries, but the sRGB transfer function * is reversed to obtain linear energy. * @returns An array of RGBA color values in the range [0, 1]. - */},{key:"toArray01Linear",value:function toArray01Linear(){var r=this.r,g=this.g,b=this.b,a=this.a;return[Math.pow(r,2.2),Math.pow(g,2.2),Math.pow(b,2.2),a];}}]);}();var NonPremultipliedRenderColor=/*#__PURE__*/function(_RenderColor){function NonPremultipliedRenderColor(lut,r,g,b,a){index_es_classCallCheck(this,NonPremultipliedRenderColor);return index_es_callSuper(this,NonPremultipliedRenderColor,[lut,r,g,b,a,false]);}index_es_inherits(NonPremultipliedRenderColor,_RenderColor);return index_es_createClass(NonPremultipliedRenderColor);}(RenderColor);var PremultipliedRenderColor=/*#__PURE__*/function(_RenderColor2){function PremultipliedRenderColor(lut,r,g,b,a){index_es_classCallCheck(this,PremultipliedRenderColor);return index_es_callSuper(this,PremultipliedRenderColor,[lut,r,g,b,a,true]);}index_es_inherits(PremultipliedRenderColor,_RenderColor2);return index_es_createClass(PremultipliedRenderColor);}(RenderColor);index_es_Color.black=new index_es_Color(0,0,0,1);index_es_Color.white=new index_es_Color(1,1,1,1);index_es_Color.transparent=new index_es_Color(0,0,0,0);index_es_Color.red=new index_es_Color(1,0,0,1);index_es_Color.blue=new index_es_Color(0,0,1,1);var Collator=/*#__PURE__*/function(){function Collator(caseSensitive,diacriticSensitive,locale){index_es_classCallCheck(this,Collator);if(caseSensitive)this.sensitivity=diacriticSensitive?'variant':'case';else this.sensitivity=diacriticSensitive?'accent':'base';this.locale=locale;this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:'search'});}return index_es_createClass(Collator,[{key:"compare",value:function compare(lhs,rhs){return this.collator.compare(lhs,rhs);}},{key:"resolvedLocale",value:function resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale;}}]);}();var FormattedSection=/*#__PURE__*/index_es_createClass(function FormattedSection(text,image,scale,fontStack,textColor){index_es_classCallCheck(this,FormattedSection);this.text=text.normalize?text.normalize():text;this.image=image;this.scale=scale;this.fontStack=fontStack;this.textColor=textColor;});var Formatted=/*#__PURE__*/function(){function Formatted(sections){index_es_classCallCheck(this,Formatted);this.sections=sections;}return index_es_createClass(Formatted,[{key:"isEmpty",value:function isEmpty(){if(this.sections.length===0)return true;return!this.sections.some(function(section){if(section.text.length!==0)return true;if(!section.image)return false;return section.image.hasPrimary();});}},{key:"toString",value:function toString(){if(this.sections.length===0)return'';return this.sections.map(function(section){return section.text;}).join('');}},{key:"serialize",value:function serialize(){var serialized=['format'];var _iterator3=index_es_createForOfIteratorHelper(this.sections),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var section=_step3.value;if(section.image){var primaryId=section.image.getPrimary().id.toString();serialized.push(['image',primaryId]);continue;}serialized.push(section.text);var options={};if(section.fontStack){options['text-font']=['literal',section.fontStack.split(',')];}if(section.scale){options['font-scale']=section.scale;}if(section.textColor){options['text-color']=['rgba'].concat(section.textColor.toNonPremultipliedRenderColor(null).toArray());}serialized.push(options);}}catch(err){_iterator3.e(err);}finally{_iterator3.f();}return serialized;}}],[{key:"fromString",value:function fromString(unformatted){return new Formatted([new FormattedSection(unformatted,null,null,null,null)]);}},{key:"factory",value:function factory(text){if(text instanceof Formatted){return text;}else{return Formatted.fromString(text);}}}]);}();var separator='\x1F';var ImageId=/*#__PURE__*/function(){function ImageId(id){index_es_classCallCheck(this,ImageId);if(typeof id==='string'){this.name=id;}else{this.name=id.name;this.iconsetId=id.iconsetId;}}return index_es_createClass(ImageId,[{key:"toString",value:function toString(){return ImageId.toString(this);}},{key:"serialize",value:function serialize(){return{name:this.name,iconsetId:this.iconsetId};}}],[{key:"from",value:function from(id){return new ImageId(id);}},{key:"toString",value:function toString(id){return id.iconsetId?"".concat(id.name).concat(separator).concat(id.iconsetId):id.name;}},{key:"parse",value:function parse(str){var _str$split=str.split(separator),_str$split2=index_es_slicedToArray(_str$split,2),name=_str$split2[0],iconsetId=_str$split2[1];return new ImageId({name:name,iconsetId:iconsetId});}},{key:"isEqual",value:function isEqual(a,b){return a.name===b.name&&a.iconsetId===b.iconsetId;}}]);}();var ImageVariant=/*#__PURE__*/function(){function ImageVariant(id){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};index_es_classCallCheck(this,ImageVariant);this.id=ImageId.from(id);this.params=options.params;this.sx=options.sx||1;this.sy=options.sy||1;}return index_es_createClass(ImageVariant,[{key:"toString",value:function toString(){return JSON.stringify(this);}},{key:"scaleSelf",value:function scaleSelf(factor){var yFactor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:factor;this.sx*=factor;this.sy*=yFactor;return this;}}],[{key:"parse",value:function parse(str){var id;var params;var sx;var sy;try{var _ref=JSON.parse(str)||{};id=_ref.id;params=_ref.params;sx=_ref.sx;sy=_ref.sy;}catch(e){return null;}if(!id)return null;return new ImageVariant(id,{params:params,sx:sx,sy:sy});}}]);}();var ResolvedImage=/*#__PURE__*/function(){function ResolvedImage(primaryId,primaryOptions,secondaryId,secondaryOptions){var available=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;index_es_classCallCheck(this,ResolvedImage);this.primaryId=ImageId.from(primaryId);this.primaryOptions=primaryOptions;if(secondaryId)this.secondaryId=ImageId.from(secondaryId);this.secondaryOptions=secondaryOptions;this.available=available;}return index_es_createClass(ResolvedImage,[{key:"toString",value:function toString(){if(this.primaryId&&this.secondaryId){var primaryName=this.primaryId.name;var secondaryName=this.secondaryId.name;return"[".concat(primaryName,",").concat(secondaryName,"]");}return this.primaryId.name;}},{key:"hasPrimary",value:function hasPrimary(){return!!this.primaryId;}},{key:"getPrimary",value:function getPrimary(){return new ImageVariant(this.primaryId,this.primaryOptions);}},{key:"hasSecondary",value:function hasSecondary(){return!!this.secondaryId;}},{key:"getSecondary",value:function getSecondary(){if(!this.secondaryId){return null;}return new ImageVariant(this.secondaryId,this.secondaryOptions);}}],[{key:"from",value:function from(image){return typeof image==='string'?ResolvedImage.build({name:image}):image;}},{key:"build",value:function build(primaryId,secondaryId,primaryOptions,secondaryOptions){if(!primaryId||index_es_typeof(primaryId)==='object'&&!('name'in primaryId))return null;return new ResolvedImage(primaryId,primaryOptions,secondaryId,secondaryOptions);}}]);}();function validateRGBA(r,g,b,a){if(!(typeof r==='number'&&r>=0&&r<=255&&typeof g==='number'&&g>=0&&g<=255&&typeof b==='number'&&b>=0&&b<=255)){var value=typeof a==='number'?[r,g,b,a]:[r,g,b];return"Invalid rgba value [".concat(value.join(', '),"]: 'r', 'g', and 'b' must be between 0 and 255.");}if(!(typeof a==='undefined'||typeof a==='number'&&a>=0&&a<=1)){return"Invalid rgba value [".concat([r,g,b,a].join(', '),"]: 'a' must be between 0 and 1.");}return null;}function validateHSLA(h,s,l,a){if(!(typeof h==='number'&&h>=0&&h<=360)){var value=typeof a==='number'?[h,s,l,a]:[h,s,l];return"Invalid hsla value [".concat(value.join(', '),"]: 'h' must be between 0 and 360.");}if(!(typeof s==='number'&&s>=0&&s<=100&&typeof l==='number'&&l>=0&&l<=100)){var _value=typeof a==='number'?[h,s,l,a]:[h,s,l];return"Invalid hsla value [".concat(_value.join(', '),"]: 's', and 'l' must be between 0 and 100.");}if(!(typeof a==='undefined'||typeof a==='number'&&a>=0&&a<=1)){return"Invalid hsla value [".concat([h,s,l,a].join(', '),"]: 'a' must be between 0 and 1.");}return null;}function isValue(mixed){if(mixed===null){return true;}else if(typeof mixed==='string'){return true;}else if(typeof mixed==='boolean'){return true;}else if(typeof mixed==='number'){return true;}else if(mixed instanceof index_es_Color){return true;}else if(mixed instanceof Collator){return true;}else if(mixed instanceof Formatted){return true;}else if(mixed instanceof ResolvedImage){return true;}else if(Array.isArray(mixed)){var _iterator4=index_es_createForOfIteratorHelper(mixed),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var item=_step4.value;if(!isValue(item)){return false;}}}catch(err){_iterator4.e(err);}finally{_iterator4.f();}return true;}else if(index_es_typeof(mixed)==='object'){for(var key in mixed){if(!isValue(mixed[key])){return false;}}return true;}else{return false;}}function typeOf(value){if(value===null){return NullType;}else if(typeof value==='string'){return StringType;}else if(typeof value==='boolean'){return BooleanType;}else if(typeof value==='number'){return NumberType;}else if(value instanceof index_es_Color){return ColorType;}else if(value instanceof Collator){return CollatorType;}else if(value instanceof Formatted){return FormattedType;}else if(value instanceof ResolvedImage){return ResolvedImageType;}else if(Array.isArray(value)){var length=value.length;var itemType;var _iterator5=index_es_createForOfIteratorHelper(value),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var item=_step5.value;var t=typeOf(item);if(!itemType){itemType=t;}else if(itemType===t){continue;}else{itemType=ValueType;break;}}}catch(err){_iterator5.e(err);}finally{_iterator5.f();}return array$1(itemType||ValueType,length);}else{return ObjectType;}}function index_es_toString(value){var type=index_es_typeof(value);if(value===null){return'';}else if(type==='string'||type==='number'||type==='boolean'){return String(value);}else if(value instanceof Formatted||value instanceof ResolvedImage||value instanceof index_es_Color){return value.toString();}else{return JSON.stringify(value);}}var Literal=/*#__PURE__*/function(){function Literal(type,value){index_es_classCallCheck(this,Literal);this.type=type;this.value=value;}return index_es_createClass(Literal,[{key:"evaluate",value:function evaluate(){return this.value;}},{key:"eachChild",value:function eachChild(){}},{key:"outputDefined",value:function outputDefined(){return true;}},{key:"serialize",value:function serialize(){if(this.type.kind==='array'||this.type.kind==='object'){return['literal',this.value];}else if(this.value instanceof index_es_Color){return['rgba'].concat(this.value.toNonPremultipliedRenderColor(null).toArray());}else if(this.value instanceof Formatted){return this.value.serialize();}else{return this.value;}}}],[{key:"parse",value:function parse(args,context){if(args.length!==2)return context.error("'literal' expression requires exactly one argument, but found ".concat(args.length-1," instead."));if(!isValue(args[1]))return context.error("invalid value");var value=args[1];var type=typeOf(value);var expected=context.expectedType;if(type.kind==='array'&&type.N===0&&expected&&expected.kind==='array'&&(typeof expected.N!=='number'||expected.N===0)){type=expected;}return new Literal(type,value);}}]);}();var RuntimeError=/*#__PURE__*/function(){function RuntimeError(message){index_es_classCallCheck(this,RuntimeError);this.name='ExpressionEvaluationError';this.message=message;}return index_es_createClass(RuntimeError,[{key:"toJSON",value:function toJSON(){return this.message;}}]);}();var types$1={string:StringType,number:NumberType,"boolean":BooleanType,object:ObjectType};var Assertion=/*#__PURE__*/function(){function Assertion(type,args){index_es_classCallCheck(this,Assertion);this.type=type;this.args=args;}return index_es_createClass(Assertion,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any + */},{key:"toArray01Linear",value:function toArray01Linear(){var r=this.r,g=this.g,b=this.b,a=this.a;return[Math.pow(r,2.2),Math.pow(g,2.2),Math.pow(b,2.2),a];}}]);}();var NonPremultipliedRenderColor=/*#__PURE__*/function(_RenderColor){function NonPremultipliedRenderColor(lut,r,g,b,a){index_es_classCallCheck(this,NonPremultipliedRenderColor);return index_es_callSuper(this,NonPremultipliedRenderColor,[lut,r,g,b,a,false]);}index_es_inherits(NonPremultipliedRenderColor,_RenderColor);return index_es_createClass(NonPremultipliedRenderColor);}(RenderColor);var PremultipliedRenderColor=/*#__PURE__*/function(_RenderColor2){function PremultipliedRenderColor(lut,r,g,b,a){index_es_classCallCheck(this,PremultipliedRenderColor);return index_es_callSuper(this,PremultipliedRenderColor,[lut,r,g,b,a,true]);}index_es_inherits(PremultipliedRenderColor,_RenderColor2);return index_es_createClass(PremultipliedRenderColor);}(RenderColor);index_es_Color.black=new index_es_Color(0,0,0,1);index_es_Color.white=new index_es_Color(1,1,1,1);index_es_Color.transparent=new index_es_Color(0,0,0,0);index_es_Color.red=new index_es_Color(1,0,0,1);index_es_Color.blue=new index_es_Color(0,0,1,1);var Collator=/*#__PURE__*/function(){function Collator(caseSensitive,diacriticSensitive,locale){index_es_classCallCheck(this,Collator);if(caseSensitive)this.sensitivity=diacriticSensitive?'variant':'case';else this.sensitivity=diacriticSensitive?'accent':'base';this.locale=locale;this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:'search'});}return index_es_createClass(Collator,[{key:"compare",value:function compare(lhs,rhs){return this.collator.compare(lhs,rhs);}},{key:"resolvedLocale",value:function resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale;}}]);}();var FormattedSection=/*#__PURE__*/index_es_createClass(function FormattedSection(text,image,scale,fontStack,textColor){index_es_classCallCheck(this,FormattedSection);this.text=text.normalize?text.normalize():text;this.image=image;this.scale=scale;this.fontStack=fontStack;this.textColor=textColor;});var Formatted=/*#__PURE__*/function(){function Formatted(sections){index_es_classCallCheck(this,Formatted);this.sections=sections;}return index_es_createClass(Formatted,[{key:"isEmpty",value:function isEmpty(){if(this.sections.length===0)return true;return!this.sections.some(function(section){if(section.text.length!==0)return true;if(!section.image)return false;return section.image.hasPrimary();});}},{key:"toString",value:function toString(){if(this.sections.length===0)return'';return this.sections.map(function(section){return section.text;}).join('');}},{key:"serialize",value:function serialize(){var serialized=['format'];var _iterator3=index_es_createForOfIteratorHelper(this.sections),_step3;try{for(_iterator3.s();!(_step3=_iterator3.n()).done;){var section=_step3.value;if(section.image){var primaryId=section.image.getPrimary().id.toString();serialized.push(['image',primaryId]);continue;}serialized.push(section.text);var options={};if(section.fontStack){options['text-font']=['literal',section.fontStack.split(',')];}if(section.scale){options['font-scale']=section.scale;}if(section.textColor){options['text-color']=['rgba'].concat(section.textColor.toNonPremultipliedRenderColor(null).toArray());}serialized.push(options);}}catch(err){_iterator3.e(err);}finally{_iterator3.f();}return serialized;}}],[{key:"fromString",value:function fromString(unformatted){return new Formatted([new FormattedSection(unformatted,null,null,null,null)]);}},{key:"factory",value:function factory(text){if(text instanceof Formatted){return text;}else{return Formatted.fromString(text);}}}]);}();var separator='\x1F';var ImageId=/*#__PURE__*/function(){function ImageId(id){index_es_classCallCheck(this,ImageId);if(typeof id==='string'){this.name=id;}else{this.name=id.name;this.iconsetId=id.iconsetId;}}return index_es_createClass(ImageId,[{key:"toString",value:function toString(){return ImageId.toString(this);}},{key:"serialize",value:function serialize(){return{name:this.name,iconsetId:this.iconsetId};}}],[{key:"from",value:function from(id){return new ImageId(id);}},{key:"toString",value:function toString(id){return id.iconsetId?"".concat(id.name).concat(separator).concat(id.iconsetId):id.name;}},{key:"parse",value:function parse(str){var _str$split=str.split(separator),_str$split2=index_es_slicedToArray(_str$split,2),name=_str$split2[0],iconsetId=_str$split2[1];return new ImageId({name:name,iconsetId:iconsetId});}},{key:"isEqual",value:function isEqual(a,b){return a.name===b.name&&a.iconsetId===b.iconsetId;}}]);}();var ImageVariant=/*#__PURE__*/function(){function ImageVariant(id){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};index_es_classCallCheck(this,ImageVariant);this.id=ImageId.from(id);this.params=options.params;this.sx=options.sx||1;this.sy=options.sy||1;}return index_es_createClass(ImageVariant,[{key:"toString",value:function toString(){return JSON.stringify(this);}},{key:"scaleSelf",value:function scaleSelf(factor){var yFactor=arguments.length>1&&arguments[1]!==undefined?arguments[1]:factor;this.sx*=factor;this.sy*=yFactor;return this;}}],[{key:"parse",value:function parse(str){var id,params,sx,sy;try{var _ref2=JSON.parse(str)||{};id=_ref2.id;params=_ref2.params;sx=_ref2.sx;sy=_ref2.sy;}catch(e){return null;}if(!id)return null;return new ImageVariant(id,{params:params,sx:sx,sy:sy});}}]);}();var ResolvedImage=/*#__PURE__*/function(){function ResolvedImage(primaryId,primaryOptions,secondaryId,secondaryOptions){var available=arguments.length>4&&arguments[4]!==undefined?arguments[4]:false;index_es_classCallCheck(this,ResolvedImage);this.primaryId=ImageId.from(primaryId);this.primaryOptions=primaryOptions;if(secondaryId)this.secondaryId=ImageId.from(secondaryId);this.secondaryOptions=secondaryOptions;this.available=available;}return index_es_createClass(ResolvedImage,[{key:"toString",value:function toString(){if(this.primaryId&&this.secondaryId){var primaryName=this.primaryId.name;var secondaryName=this.secondaryId.name;return"[".concat(primaryName,",").concat(secondaryName,"]");}return this.primaryId.name;}},{key:"hasPrimary",value:function hasPrimary(){return!!this.primaryId;}},{key:"getPrimary",value:function getPrimary(){return new ImageVariant(this.primaryId,this.primaryOptions);}},{key:"hasSecondary",value:function hasSecondary(){return!!this.secondaryId;}},{key:"getSecondary",value:function getSecondary(){if(!this.secondaryId){return null;}return new ImageVariant(this.secondaryId,this.secondaryOptions);}}],[{key:"from",value:function from(image){return typeof image==='string'?ResolvedImage.build({name:image}):image;}},{key:"build",value:function build(primaryId,secondaryId,primaryOptions,secondaryOptions){if(!primaryId||index_es_typeof(primaryId)==='object'&&!('name'in primaryId))return null;return new ResolvedImage(primaryId,primaryOptions,secondaryId,secondaryOptions);}}]);}();function validateRGBA(r,g,b,a){if(!(typeof r==='number'&&r>=0&&r<=255&&typeof g==='number'&&g>=0&&g<=255&&typeof b==='number'&&b>=0&&b<=255)){var value=typeof a==='number'?[r,g,b,a]:[r,g,b];return"Invalid rgba value [".concat(value.join(', '),"]: 'r', 'g', and 'b' must be between 0 and 255.");}if(!(typeof a==='undefined'||typeof a==='number'&&a>=0&&a<=1)){return"Invalid rgba value [".concat([r,g,b,a].join(', '),"]: 'a' must be between 0 and 1.");}return null;}function validateHSLA(h,s,l,a){if(!(typeof h==='number'&&h>=0&&h<=360)){var value=typeof a==='number'?[h,s,l,a]:[h,s,l];return"Invalid hsla value [".concat(value.join(', '),"]: 'h' must be between 0 and 360.");}if(!(typeof s==='number'&&s>=0&&s<=100&&typeof l==='number'&&l>=0&&l<=100)){var _value=typeof a==='number'?[h,s,l,a]:[h,s,l];return"Invalid hsla value [".concat(_value.join(', '),"]: 's', and 'l' must be between 0 and 100.");}if(!(typeof a==='undefined'||typeof a==='number'&&a>=0&&a<=1)){return"Invalid hsla value [".concat([h,s,l,a].join(', '),"]: 'a' must be between 0 and 1.");}return null;}function isValue(mixed){if(mixed===null){return true;}else if(typeof mixed==='string'){return true;}else if(typeof mixed==='boolean'){return true;}else if(typeof mixed==='number'){return true;}else if(mixed instanceof index_es_Color){return true;}else if(mixed instanceof Collator){return true;}else if(mixed instanceof Formatted){return true;}else if(mixed instanceof ResolvedImage){return true;}else if(Array.isArray(mixed)){var _iterator4=index_es_createForOfIteratorHelper(mixed),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var item=_step4.value;if(!isValue(item)){return false;}}}catch(err){_iterator4.e(err);}finally{_iterator4.f();}return true;}else if(index_es_typeof(mixed)==='object'){for(var key in mixed){if(!isValue(mixed[key])){return false;}}return true;}else{return false;}}function typeOf(value){if(value===null){return NullType;}else if(typeof value==='string'){return StringType;}else if(typeof value==='boolean'){return BooleanType;}else if(typeof value==='number'){return NumberType;}else if(value instanceof index_es_Color){return ColorType;}else if(value instanceof Collator){return CollatorType;}else if(value instanceof Formatted){return FormattedType;}else if(value instanceof ResolvedImage){return ResolvedImageType;}else if(Array.isArray(value)){var length=value.length;var itemType;var _iterator5=index_es_createForOfIteratorHelper(value),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var item=_step5.value;var t=typeOf(item);if(!itemType){itemType=t;}else if(itemType===t){continue;}else{itemType=ValueType;break;}}}catch(err){_iterator5.e(err);}finally{_iterator5.f();}return array$1(itemType||ValueType,length);}else{return ObjectType;}}function index_es_toString(value){var type=index_es_typeof(value);if(value===null){return'';}else if(type==='string'||type==='number'||type==='boolean'){return String(value);}else if(value instanceof Formatted||value instanceof ResolvedImage||value instanceof index_es_Color){return value.toString();}else{return JSON.stringify(value);}}var Literal=/*#__PURE__*/function(){function Literal(type,value){index_es_classCallCheck(this,Literal);this.type=type;this.value=value;}return index_es_createClass(Literal,[{key:"evaluate",value:function evaluate(){return this.value;}},{key:"eachChild",value:function eachChild(){}},{key:"outputDefined",value:function outputDefined(){return true;}},{key:"serialize",value:function serialize(){if(this.type.kind==='array'||this.type.kind==='object'){return['literal',this.value];}else if(this.value instanceof index_es_Color){return['rgba'].concat(this.value.toNonPremultipliedRenderColor(null).toArray());}else if(this.value instanceof Formatted){return this.value.serialize();}else{return this.value;}}}],[{key:"parse",value:function parse(args,context){if(args.length!==2)return context.error("'literal' expression requires exactly one argument, but found ".concat(args.length-1," instead."));if(!isValue(args[1]))return context.error("invalid value");var value=args[1];var type=typeOf(value);var expected=context.expectedType;if(type.kind==='array'&&type.N===0&&expected&&expected.kind==='array'&&(typeof expected.N!=='number'||expected.N===0)){type=expected;}return new Literal(type,value);}}]);}();var RuntimeError=/*#__PURE__*/function(){function RuntimeError(message){index_es_classCallCheck(this,RuntimeError);this.name='ExpressionEvaluationError';this.message=message;}return index_es_createClass(RuntimeError,[{key:"toJSON",value:function toJSON(){return this.message;}}]);}();var types$1={string:StringType,number:NumberType,"boolean":BooleanType,object:ObjectType};var Assertion=/*#__PURE__*/function(){function Assertion(type,args){index_es_classCallCheck(this,Assertion);this.type=type;this.args=args;}return index_es_createClass(Assertion,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any function evaluate(ctx){for(var i=0;i1){serialized.push(N);}}}return serialized.concat(this.args.map(function(arg){return arg.serialize();}));}}],[{key:"parse",value:function parse(args,context){if(args.length<2)return context.error("Expected at least one argument.");var i=1;var type;var name=args[0];if(name==='array'){var itemType;if(args.length>2){var type2=args[1];if(typeof type2!=='string'||!(type2 in types$1)||type2==='object')return context.error('The item type argument of "array" must be one of string, number, boolean',1);itemType=types$1[type2];i++;}else{itemType=ValueType;}var N;if(args.length>3){if(args[2]!==null&&(typeof args[2]!=='number'||args[2]<0||args[2]!==Math.floor(args[2]))){return context.error('The length argument to "array" must be a positive integer literal',2);}N=args[2];i++;}type=array$1(itemType,N);}else{type=types$1[name];}var parsed=[];for(;i0?result:void 0;}},{key:"serialize",value:function serialize(){var serialized=['image',this.namePrimary.serialize()];if(this.paramsPrimary||this.iconsetIdPrimary){var options=this.serializeOptions(this.paramsPrimary,this.iconsetIdPrimary);if(options)serialized.push(options);}if(this.nameSecondary){serialized.push(this.nameSecondary.serialize());if(this.paramsSecondary||this.iconsetIdSecondary){var _options=this.serializeOptions(this.paramsSecondary,this.iconsetIdSecondary);if(_options)serialized.push(_options);}}return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<2){return context.error("Expected two or more arguments.");}var nextArgId=1;var imageExpression=[];function tryParseImage(){if(nextArgId4){_error2="Invalid rbga value ".concat(JSON.stringify(input),": expected an array containing either three or four numeric values.");}else{_error2=validateRGBA(input[0],input[1],input[2],input[3]);}if(!_error2){return new index_es_Color(input[0]/255,input[1]/255,input[2]/255,input[3]);}}}}catch(err){_iterator8.e(err);}finally{_iterator8.f();}throw new RuntimeError(_error2||"Could not parse color from value '".concat(typeof input==='string'?input:String(JSON.stringify(input)),"'"));}else if(this.type.kind==='number'){var value=null;var _iterator9=index_es_createForOfIteratorHelper(this.args),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var _arg=_step9.value;value=_arg.evaluate(ctx);if(value===null)return 0;var num=Number(value);if(isNaN(num))continue;return num;}}catch(err){_iterator9.e(err);}finally{_iterator9.f();}throw new RuntimeError("Could not convert ".concat(JSON.stringify(value)," to number."));}else if(this.type.kind==='formatted'){return Formatted.fromString(index_es_toString(this.args[0].evaluate(ctx)));}else if(this.type.kind==='resolvedImage'){return ResolvedImage.build(index_es_toString(this.args[0].evaluate(ctx)));}else if(this.type.kind==='array'){return this.args.map(function(arg){return arg.evaluate(ctx);});}else{return index_es_toString(this.args[0].evaluate(ctx));}}},{key:"eachChild",value:function eachChild(fn){this.args.forEach(fn);}},{key:"outputDefined",value:function outputDefined(){return this.args.every(function(arg){return arg.outputDefined();});}},{key:"serialize",value:function serialize(){if(this.type.kind==='formatted'){return new FormatExpression([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();}if(this.type.kind==='resolvedImage'){return new ImageExpression(this.args[0]).serialize();}var serialized=this.type.kind==='array'?[]:["to-".concat(this.type.kind)];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<2)return context.error("Expected at least one argument.");var name=args[0];var parsed=[];var type=NullType;if(name==='to-array'){if(!Array.isArray(args[1])){return null;}var arrayLength=args[1].length;if(context.expectedType){if(context.expectedType.kind==='array'){type=array$1(context.expectedType.itemType,arrayLength);}else{return context.error("Expected ".concat(context.expectedType.kind," but found array."));}}else if(arrayLength>0&&isValue(args[1][0])){var value=args[1][0];type=array$1(typeOf(value),arrayLength);}else{return null;}for(var i=0;i0?result:void 0;}},{key:"serialize",value:function serialize(){var serialized=['image',this.namePrimary.serialize()];if(this.paramsPrimary||this.iconsetIdPrimary){var options=this.serializeOptions(this.paramsPrimary,this.iconsetIdPrimary);if(options)serialized.push(options);}if(this.nameSecondary){serialized.push(this.nameSecondary.serialize());if(this.paramsSecondary||this.iconsetIdSecondary){var _options=this.serializeOptions(this.paramsSecondary,this.iconsetIdSecondary);if(_options)serialized.push(_options);}}return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<2){return context.error("Expected two or more arguments.");}var nextArgId=1;var imageExpression=[];function tryParseImage(){if(nextArgId4){_error2="Invalid rbga value ".concat(JSON.stringify(input),": expected an array containing either three or four numeric values.");}else{_error2=validateRGBA(input[0],input[1],input[2],input[3]);}if(!_error2){return new index_es_Color(input[0]/255,input[1]/255,input[2]/255,input[3]);}}}}catch(err){_iterator8.e(err);}finally{_iterator8.f();}throw new RuntimeError(_error2||"Could not parse color from value '".concat(typeof input==='string'?input:String(JSON.stringify(input)),"'"));}else if(this.type.kind==='number'){var value=null;var _iterator9=index_es_createForOfIteratorHelper(this.args),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var _arg=_step9.value;value=_arg.evaluate(ctx);if(value===null)return 0;var num=Number(value);if(isNaN(num))continue;return num;}}catch(err){_iterator9.e(err);}finally{_iterator9.f();}throw new RuntimeError("Could not convert ".concat(JSON.stringify(value)," to number."));}else if(this.type.kind==='formatted'){return Formatted.fromString(index_es_toString(this.args[0].evaluate(ctx)));}else if(this.type.kind==='resolvedImage'){return ResolvedImage.build(index_es_toString(this.args[0].evaluate(ctx)));}else if(this.type.kind==='array'){return this.args.map(function(arg){return arg.evaluate(ctx);});}else{return index_es_toString(this.args[0].evaluate(ctx));}}},{key:"eachChild",value:function eachChild(fn){this.args.forEach(fn);}},{key:"outputDefined",value:function outputDefined(){return this.args.every(function(arg){return arg.outputDefined();});}},{key:"serialize",value:function serialize(){if(this.type.kind==='formatted'){return new FormatExpression([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();}if(this.type.kind==='resolvedImage'){return new ImageExpression(this.args[0]).serialize();}var serialized=this.type.kind==='array'?[]:["to-".concat(this.type.kind)];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<2)return context.error("Expected at least one argument.");var name=args[0];var parsed=[];var type=NullType;if(name==='to-array'){if(!Array.isArray(args[1])){return null;}var arrayLength=args[1].length;if(context.expectedType){if(context.expectedType.kind==='array'){type=array$1(context.expectedType.itemType,arrayLength);}else{return context.error("Expected ".concat(context.expectedType.kind," but found array."));}}else if(arrayLength>0&&isValue(args[1][0])){var value=args[1][0];type=array$1(typeOf(value),arrayLength);}else{return null;}for(var i=0;i=bbox2[2])return false;if(bbox1[1]<=bbox2[1])return false;if(bbox1[3]>=bbox2[3])return false;return true;}function onBoundary(p,p1,p2){var x1=p[0]-p1[0];var y1=p[1]-p1[1];var x2=p[0]-p2[0];var y2=p[1]-p2[1];return x1*y2-x2*y1===0&&x1*x2<=0&&y1*y2<=0;}function rayIntersect(p,p1,p2){return p1[1]>p[1]!==p2[1]>p[1]&&p[0]<(p2[0]-p1[0])*(p[1]-p1[1])/(p2[1]-p1[1])+p1[0];}function pointWithinPolygon(point,rings){var trueOnBoundary=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var inside=false;for(var i=0,len=rings.length;i0&&det2<0||det1<0&&det2>0)return true;return false;}function segmentIntersectSegment(a,b,c,d){var vectorP=[b[0]-a[0],b[1]-a[1]];var vectorQ=[d[0]-c[0],d[1]-c[1]];if(perp(vectorQ,vectorP)===0)return false;if(twoSided(a,b,c,d)&&twoSided(c,d,a,b))return true;return false;}var EXTENT$1=8192;function mercatorXfromLng(lng){return(180+lng)/360;}function mercatorYfromLat(lat){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+lat*Math.PI/360)))/360;}function getTileCoordinates(p,canonical){var x=mercatorXfromLng(p[0]);var y=mercatorYfromLat(p[1]);var tilesAtZoom=Math.pow(2,canonical.z);return[Math.round(x*tilesAtZoom*EXTENT$1),Math.round(y*tilesAtZoom*EXTENT$1)];}function pointWithinPolygons(point,polygons){for(var i=0;ipolyBBox[2]){var halfWorldSize=worldSize*0.5;var shift=p[0]-polyBBox[0]>halfWorldSize?-worldSize:polyBBox[0]-p[0]>halfWorldSize?worldSize:0;if(shift===0){shift=p[0]-polyBBox[2]>halfWorldSize?-worldSize:polyBBox[2]-p[0]>halfWorldSize?worldSize:0;}p[0]+=shift;}updateBBox(bbox,p);}function resetBBox(bbox){bbox[0]=bbox[1]=Infinity;bbox[2]=bbox[3]=-Infinity;}function getTilePoints(geometry,pointBBox,polyBBox,canonical){var worldSize=Math.pow(2,canonical.z)*EXTENT$1;var shifts=[canonical.x*EXTENT$1,canonical.y*EXTENT$1];var tilePoints=[];if(!geometry)return tilePoints;var _iterator10=index_es_createForOfIteratorHelper(geometry),_step10;try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var points=_step10.value;var _iterator11=index_es_createForOfIteratorHelper(points),_step11;try{for(_iterator11.s();!(_step11=_iterator11.n()).done;){var point=_step11.value;var p=[point.x+shifts[0],point.y+shifts[1]];updatePoint(p,pointBBox,polyBBox,worldSize);tilePoints.push(p);}}catch(err){_iterator11.e(err);}finally{_iterator11.f();}}}catch(err){_iterator10.e(err);}finally{_iterator10.f();}return tilePoints;}function getTileLines(geometry,lineBBox,polyBBox,canonical){var worldSize=Math.pow(2,canonical.z)*EXTENT$1;var shifts=[canonical.x*EXTENT$1,canonical.y*EXTENT$1];var tileLines=[];if(!geometry)return tileLines;var _iterator12=index_es_createForOfIteratorHelper(geometry),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var _line=_step12.value;var tileLine=[];var _iterator15=index_es_createForOfIteratorHelper(_line),_step15;try{for(_iterator15.s();!(_step15=_iterator15.n()).done;){var point=_step15.value;var _p=[point.x+shifts[0],point.y+shifts[1]];updateBBox(lineBBox,_p);tileLine.push(_p);}}catch(err){_iterator15.e(err);}finally{_iterator15.f();}tileLines.push(tileLine);}}catch(err){_iterator12.e(err);}finally{_iterator12.f();}if(lineBBox[2]-lineBBox[0]<=worldSize/2){resetBBox(lineBBox);var _iterator13=index_es_createForOfIteratorHelper(tileLines),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var line=_step13.value;var _iterator14=index_es_createForOfIteratorHelper(line),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var p=_step14.value;updatePoint(p,lineBBox,polyBBox,worldSize);}}catch(err){_iterator14.e(err);}finally{_iterator14.f();}}}catch(err){_iterator13.e(err);}finally{_iterator13.f();}}return tileLines;}function pointsWithinPolygons(ctx,polygonGeometry){var pointBBox=[Infinity,Infinity,-Infinity,-Infinity];var polyBBox=[Infinity,Infinity,-Infinity,-Infinity];var canonical=ctx.canonicalID();if(!canonical){return false;}if(polygonGeometry.type==='Polygon'){var tilePolygon=getTilePolygon(polygonGeometry.coordinates,polyBBox,canonical);var tilePoints=getTilePoints(ctx.geometry(),pointBBox,polyBBox,canonical);if(!boxWithinBox(pointBBox,polyBBox))return false;var _iterator16=index_es_createForOfIteratorHelper(tilePoints),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var point=_step16.value;if(!pointWithinPolygon(point,tilePolygon))return false;}}catch(err){_iterator16.e(err);}finally{_iterator16.f();}}if(polygonGeometry.type==='MultiPolygon'){var tilePolygons=getTilePolygons(polygonGeometry.coordinates,polyBBox,canonical);var _tilePoints=getTilePoints(ctx.geometry(),pointBBox,polyBBox,canonical);if(!boxWithinBox(pointBBox,polyBBox))return false;var _iterator17=index_es_createForOfIteratorHelper(_tilePoints),_step17;try{for(_iterator17.s();!(_step17=_iterator17.n()).done;){var _point=_step17.value;if(!pointWithinPolygons(_point,tilePolygons))return false;}}catch(err){_iterator17.e(err);}finally{_iterator17.f();}}return true;}function linesWithinPolygons(ctx,polygonGeometry){var lineBBox=[Infinity,Infinity,-Infinity,-Infinity];var polyBBox=[Infinity,Infinity,-Infinity,-Infinity];var canonical=ctx.canonicalID();if(!canonical){return false;}if(polygonGeometry.type==='Polygon'){var tilePolygon=getTilePolygon(polygonGeometry.coordinates,polyBBox,canonical);var tileLines=getTileLines(ctx.geometry(),lineBBox,polyBBox,canonical);if(!boxWithinBox(lineBBox,polyBBox))return false;var _iterator18=index_es_createForOfIteratorHelper(tileLines),_step18;try{for(_iterator18.s();!(_step18=_iterator18.n()).done;){var line=_step18.value;if(!lineStringWithinPolygon(line,tilePolygon))return false;}}catch(err){_iterator18.e(err);}finally{_iterator18.f();}}if(polygonGeometry.type==='MultiPolygon'){var tilePolygons=getTilePolygons(polygonGeometry.coordinates,polyBBox,canonical);var _tileLines=getTileLines(ctx.geometry(),lineBBox,polyBBox,canonical);if(!boxWithinBox(lineBBox,polyBBox))return false;var _iterator19=index_es_createForOfIteratorHelper(_tileLines),_step19;try{for(_iterator19.s();!(_step19=_iterator19.n()).done;){var _line2=_step19.value;if(!lineStringWithinPolygons(_line2,tilePolygons))return false;}}catch(err){_iterator19.e(err);}finally{_iterator19.f();}}return true;}var Within=/*#__PURE__*/function(){function Within(geojson,geometries){index_es_classCallCheck(this,Within);this.type=BooleanType;this.geojson=geojson;this.geometries=geometries;}return index_es_createClass(Within,[{key:"evaluate",value:function evaluate(ctx){if(ctx.geometry()!=null&&ctx.canonicalID()!=null){if(ctx.geometryType()==='Point'){return pointsWithinPolygons(ctx,this.geometries);}else if(ctx.geometryType()==='LineString'){return linesWithinPolygons(ctx,this.geometries);}}return false;}},{key:"eachChild",value:function eachChild(){}},{key:"outputDefined",value:function outputDefined(){return true;}},{key:"serialize",value:function serialize(){return['within',this.geojson];}}],[{key:"parse",value:function parse(args,context){if(args.length!==2)return context.error("'within' expression requires exactly one argument, but found ".concat(args.length-1," instead."));if(isValue(args[1])){var geojson=args[1];if(geojson.type==='FeatureCollection'){for(var i=0;i=bbox2[2])return false;if(bbox1[1]<=bbox2[1])return false;if(bbox1[3]>=bbox2[3])return false;return true;}function onBoundary(p,p1,p2){var x1=p[0]-p1[0];var y1=p[1]-p1[1];var x2=p[0]-p2[0];var y2=p[1]-p2[1];return x1*y2-x2*y1===0&&x1*x2<=0&&y1*y2<=0;}function rayIntersect(p,p1,p2){return p1[1]>p[1]!==p2[1]>p[1]&&p[0]<(p2[0]-p1[0])*(p[1]-p1[1])/(p2[1]-p1[1])+p1[0];}function pointWithinPolygon(point,rings){var trueOnBoundary=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var inside=false;for(var i=0,len=rings.length;i0&&det2<0||det1<0&&det2>0)return true;return false;}function segmentIntersectSegment(a,b,c,d){var vectorP=[b[0]-a[0],b[1]-a[1]];var vectorQ=[d[0]-c[0],d[1]-c[1]];if(perp(vectorQ,vectorP)===0)return false;if(twoSided(a,b,c,d)&&twoSided(c,d,a,b))return true;return false;}var EXTENT$1=8192;function mercatorXfromLng(lng){return(180+lng)/360;}function mercatorYfromLat(lat){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+lat*Math.PI/360)))/360;}function getTileCoordinates(p,canonical){var x=mercatorXfromLng(p[0]);var y=mercatorYfromLat(p[1]);var tilesAtZoom=Math.pow(2,canonical.z);return[Math.round(x*tilesAtZoom*EXTENT$1),Math.round(y*tilesAtZoom*EXTENT$1)];}function pointWithinPolygons(point,polygons){for(var i=0;ipolyBBox[2]){var halfWorldSize=worldSize*0.5;var shift=p[0]-polyBBox[0]>halfWorldSize?-worldSize:polyBBox[0]-p[0]>halfWorldSize?worldSize:0;if(shift===0){shift=p[0]-polyBBox[2]>halfWorldSize?-worldSize:polyBBox[2]-p[0]>halfWorldSize?worldSize:0;}p[0]+=shift;}updateBBox(bbox,p);}function resetBBox(bbox){bbox[0]=bbox[1]=Infinity;bbox[2]=bbox[3]=-Infinity;}function getTilePoints(geometry,pointBBox,polyBBox,canonical){var worldSize=Math.pow(2,canonical.z)*EXTENT$1;var shifts=[canonical.x*EXTENT$1,canonical.y*EXTENT$1];var tilePoints=[];if(!geometry)return tilePoints;var _iterator12=index_es_createForOfIteratorHelper(geometry),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var points=_step12.value;var _iterator13=index_es_createForOfIteratorHelper(points),_step13;try{for(_iterator13.s();!(_step13=_iterator13.n()).done;){var point=_step13.value;var p=[point.x+shifts[0],point.y+shifts[1]];updatePoint(p,pointBBox,polyBBox,worldSize);tilePoints.push(p);}}catch(err){_iterator13.e(err);}finally{_iterator13.f();}}}catch(err){_iterator12.e(err);}finally{_iterator12.f();}return tilePoints;}function getTileLines(geometry,lineBBox,polyBBox,canonical){var worldSize=Math.pow(2,canonical.z)*EXTENT$1;var shifts=[canonical.x*EXTENT$1,canonical.y*EXTENT$1];var tileLines=[];if(!geometry)return tileLines;var _iterator14=index_es_createForOfIteratorHelper(geometry),_step14;try{for(_iterator14.s();!(_step14=_iterator14.n()).done;){var _line=_step14.value;var tileLine=[];var _iterator17=index_es_createForOfIteratorHelper(_line),_step17;try{for(_iterator17.s();!(_step17=_iterator17.n()).done;){var point=_step17.value;var _p=[point.x+shifts[0],point.y+shifts[1]];updateBBox(lineBBox,_p);tileLine.push(_p);}}catch(err){_iterator17.e(err);}finally{_iterator17.f();}tileLines.push(tileLine);}}catch(err){_iterator14.e(err);}finally{_iterator14.f();}if(lineBBox[2]-lineBBox[0]<=worldSize/2){resetBBox(lineBBox);var _iterator15=index_es_createForOfIteratorHelper(tileLines),_step15;try{for(_iterator15.s();!(_step15=_iterator15.n()).done;){var line=_step15.value;var _iterator16=index_es_createForOfIteratorHelper(line),_step16;try{for(_iterator16.s();!(_step16=_iterator16.n()).done;){var p=_step16.value;updatePoint(p,lineBBox,polyBBox,worldSize);}}catch(err){_iterator16.e(err);}finally{_iterator16.f();}}}catch(err){_iterator15.e(err);}finally{_iterator15.f();}}return tileLines;}function pointsWithinPolygons(ctx,polygonGeometry){var pointBBox=[Infinity,Infinity,-Infinity,-Infinity];var polyBBox=[Infinity,Infinity,-Infinity,-Infinity];var canonical=ctx.canonicalID();if(!canonical){return false;}if(polygonGeometry.type==='Polygon'){var tilePolygon=getTilePolygon(polygonGeometry.coordinates,polyBBox,canonical);var tilePoints=getTilePoints(ctx.geometry(),pointBBox,polyBBox,canonical);if(!boxWithinBox(pointBBox,polyBBox))return false;var _iterator18=index_es_createForOfIteratorHelper(tilePoints),_step18;try{for(_iterator18.s();!(_step18=_iterator18.n()).done;){var point=_step18.value;if(!pointWithinPolygon(point,tilePolygon))return false;}}catch(err){_iterator18.e(err);}finally{_iterator18.f();}}if(polygonGeometry.type==='MultiPolygon'){var tilePolygons=getTilePolygons(polygonGeometry.coordinates,polyBBox,canonical);var _tilePoints=getTilePoints(ctx.geometry(),pointBBox,polyBBox,canonical);if(!boxWithinBox(pointBBox,polyBBox))return false;var _iterator19=index_es_createForOfIteratorHelper(_tilePoints),_step19;try{for(_iterator19.s();!(_step19=_iterator19.n()).done;){var _point=_step19.value;if(!pointWithinPolygons(_point,tilePolygons))return false;}}catch(err){_iterator19.e(err);}finally{_iterator19.f();}}return true;}function linesWithinPolygons(ctx,polygonGeometry){var lineBBox=[Infinity,Infinity,-Infinity,-Infinity];var polyBBox=[Infinity,Infinity,-Infinity,-Infinity];var canonical=ctx.canonicalID();if(!canonical){return false;}if(polygonGeometry.type==='Polygon'){var tilePolygon=getTilePolygon(polygonGeometry.coordinates,polyBBox,canonical);var tileLines=getTileLines(ctx.geometry(),lineBBox,polyBBox,canonical);if(!boxWithinBox(lineBBox,polyBBox))return false;var _iterator20=index_es_createForOfIteratorHelper(tileLines),_step20;try{for(_iterator20.s();!(_step20=_iterator20.n()).done;){var line=_step20.value;if(!lineStringWithinPolygon(line,tilePolygon))return false;}}catch(err){_iterator20.e(err);}finally{_iterator20.f();}}if(polygonGeometry.type==='MultiPolygon'){var tilePolygons=getTilePolygons(polygonGeometry.coordinates,polyBBox,canonical);var _tileLines=getTileLines(ctx.geometry(),lineBBox,polyBBox,canonical);if(!boxWithinBox(lineBBox,polyBBox))return false;var _iterator21=index_es_createForOfIteratorHelper(_tileLines),_step21;try{for(_iterator21.s();!(_step21=_iterator21.n()).done;){var _line2=_step21.value;if(!lineStringWithinPolygons(_line2,tilePolygons))return false;}}catch(err){_iterator21.e(err);}finally{_iterator21.f();}}return true;}var Within=/*#__PURE__*/function(){function Within(geojson,geometries){index_es_classCallCheck(this,Within);this.type=BooleanType;this.geojson=geojson;this.geometries=geometries;}return index_es_createClass(Within,[{key:"evaluate",value:function evaluate(ctx){if(ctx.geometry()!=null&&ctx.canonicalID()!=null){if(ctx.geometryType()==='Point'){return pointsWithinPolygons(ctx,this.geometries);}else if(ctx.geometryType()==='LineString'){return linesWithinPolygons(ctx,this.geometries);}}return false;}},{key:"eachChild",value:function eachChild(){}},{key:"outputDefined",value:function outputDefined(){return true;}},{key:"serialize",value:function serialize(){return['within',this.geojson];}}],[{key:"parse",value:function parse(args,context){if(args.length!==2)return context.error("'within' expression requires exactly one argument, but found ".concat(args.length-1," instead."));if(isValue(args[1])){var geojson=args[1];if(geojson.type==='FeatureCollection'){for(var i=0;idist)return interpolate$1(p0,p1,(dist-(sum-d))/d);}return line[line.length-1];}/** + */},{key:"along",value:function along(line,dist){var sum=0;if(dist<=0)return line[0];for(var i=0;idist)return interpolate(p0,p1,(dist-(sum-d))/d);}return line[line.length-1];}/** * Returns the distance from a point `p` to a line segment `a` to `b`. * * @pointToSegmentDistance @@ -84848,7 +84925,7 @@ this.ky=m*w*w2*(1-E2);// based on meridonal radius of curvature * @example * const line2 = ruler.lineSliceAlong(10, 20, line1); * //=line2 - */},{key:"lineSliceAlong",value:function lineSliceAlong(start,stop,line){var sum=0;var slice=[];for(var i=0;istart&&slice.length===0){slice.push(interpolate$1(p0,p1,(start-(sum-d))/d));}if(sum>=stop){slice.push(interpolate$1(p0,p1,(stop-(sum-d))/d));return slice;}if(sum>start)slice.push(p1);}return slice;}/** + */},{key:"lineSliceAlong",value:function lineSliceAlong(start,stop,line){var sum=0;var slice=[];for(var i=0;istart&&slice.length===0){slice.push(interpolate(p0,p1,(start-(sum-d))/d));}if(sum>=stop){slice.push(interpolate(p0,p1,(stop-(sum-d))/d));return slice;}if(sum>start)slice.push(p1);}return slice;}/** * Given a point, returns a bounding box object ([w, s, e, n]) created from the given point buffered by a given distance. * * @param {[number, number]} p point [longitude, latitude] @@ -84900,21 +84977,21 @@ return index_es_wrap(p[0]-bbox[0])>=0&&index_es_wrap(p[0]-bbox[2])<=0&&p[1]>=bbo * @param {[number, number]} b * @param {number} t * @returns {[number, number]} - */function interpolate$1(a,b,t){var dx=index_es_wrap(b[0]-a[0]);var dy=b[1]-a[1];return[a[0]+dx*t,a[1]+dy*t];}/** + */function interpolate(a,b,t){var dx=index_es_wrap(b[0]-a[0]);var dy=b[1]-a[1];return[a[0]+dx*t,a[1]+dy*t];}/** * normalize a degree value into [-180..180] range * @param {number} deg */function index_es_wrap(deg){while(deg<-180)deg+=360;while(deg>180)deg-=360;return deg;}var TinyQueue=/*#__PURE__*/function(){function TinyQueue(){var data=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var compare=arguments.length>1&&arguments[1]!==undefined?arguments[1]:function(a,b){return ab?1:0;};index_es_classCallCheck(this,TinyQueue);this.data=data;this.length=this.data.length;this.compare=compare;if(this.length>0){for(var i=(this.length>>1)-1;i>=0;i--)this._down(i);}}return index_es_createClass(TinyQueue,[{key:"push",value:function push(item){this.data.push(item);this._up(this.length++);}},{key:"pop",value:function pop(){if(this.length===0)return undefined;var top=this.data[0];var bottom=this.data.pop();if(--this.length>0){this.data[0]=bottom;this._down(0);}return top;}},{key:"peek",value:function peek(){return this.data[0];}},{key:"_up",value:function _up(pos){var data=this.data,compare=this.compare;var item=data[pos];while(pos>0){var parent=pos-1>>1;var current=data[parent];if(compare(item,current)>=0)break;data[pos]=current;pos=parent;}data[pos]=item;}},{key:"_down",value:function _down(pos){var data=this.data,compare=this.compare;var halfLength=this.length>>1;var item=data[pos];while(pos=0)break;data[pos]=data[bestChild];pos=bestChild;}data[pos]=item;}}]);}();var EXTENT=8192;function compareMax(a,b){return b.dist-a.dist;}var MIN_POINT_SIZE=100;var MIN_LINE_POINT_SIZE=50;function isDefaultBBOX(bbox){var defualtBBox=[Infinity,Infinity,-Infinity,-Infinity];if(defualtBBox.length!==bbox.length){return false;}for(var i=0;i=range[0]&&range[1]range[1])return[null,null];var size=getRangeSize(range);if(isLine){if(size===2){return[range,null];}var size1=Math.floor(size/2);var range1=[range[0],range[0]+size1];var range2=[range[0]+size1,range[1]];return[range1,range2];}else{if(size===1){return[range,null];}var _size=Math.floor(size/2)-1;var _range=[range[0],range[0]+_size];var _range2=[range[0]+_size+1,range[1]];return[_range,_range2];}}function getBBox(pointSets,range){var bbox=[Infinity,Infinity,-Infinity,-Infinity];if(!isRangeSafe(range,pointSets.length))return bbox;for(var i=range[0];i<=range[1];++i){updateBBox(bbox,pointSets[i]);}return bbox;}function getPolygonBBox(polygon){var bbox=[Infinity,Infinity,-Infinity,-Infinity];for(var i=0;ibbox2[2]){dx=bbox1[0]-bbox2[2];}if(bbox1[1]>bbox2[3]){dy=bbox1[1]-bbox2[3];}if(bbox1[3]2&&arguments[2]!==undefined?arguments[2]:EXTENT;var tilesAtZoom=Math.pow(2,canonical.z);var x=(coord.x/extent+canonical.x)/tilesAtZoom;var y=(coord.y/extent+canonical.y)/tilesAtZoom;return[lngFromMercatorX(x),latFromMercatorY(y)];}function getLngLatPoints(coordinates,canonical){var coords=[];for(var i=0;i3&&arguments[3]!==undefined?arguments[3]:Infinity;var bbox1=getPolygonBBox(polygon1);var bbox2=getPolygonBBox(polygon2);if(currentMiniDist!==Infinity&&bboxToBBoxDistance(bbox1,bbox2,ruler)>=currentMiniDist){return currentMiniDist;}if(boxWithinBox(bbox1,bbox2)){if(polygonIntersect(polygon1,polygon2))return 0;}else if(polygonIntersect(polygon2,polygon1)){return 0;}var dist=currentMiniDist;var _iterator23=index_es_createForOfIteratorHelper(polygon1),_step23;try{for(_iterator23.s();!(_step23=_iterator23.n()).done;){var ring1=_step23.value;for(var i=0,len1=ring1.length,l=len1-1;i4&&arguments[4]!==undefined?arguments[4]:Infinity;var miniDist=Math.min(ruler.distance(pointSets[0],polygon[0][0]),currentMiniDist);if(miniDist===0)return miniDist;var initialDistPair={dist:0,range1:[0,pointSets.length-1],range2:[0,0]};var distQueue=new TinyQueue([initialDistPair],compareMax);var setThreshold=isLine?MIN_LINE_POINT_SIZE:MIN_POINT_SIZE;var polyBBox=getPolygonBBox(polygon);while(distQueue.length){var distPair=distQueue.pop();if(distPair.dist>=miniDist)continue;var range=distPair.range1;if(getRangeSize(range)<=setThreshold){if(!isRangeSafe(range,pointSets.length))return NaN;if(isLine){var tempDist=lineToPolygonDistance(pointSets,range,polygon,ruler);if((miniDist=Math.min(miniDist,tempDist))===0)return miniDist;}else{for(var i=range[0];i<=range[1];++i){var _tempDist=pointToPolygonDistance(pointSets[i],polygon,ruler);if((miniDist=Math.min(miniDist,_tempDist))===0)return miniDist;}}}else{var newRanges=splitRange(range,isLine);if(newRanges[0]!==null){var _tempDist2=bboxToBBoxDistance(getBBox(pointSets,newRanges[0]),polyBBox,ruler);if(_tempDist25&&arguments[5]!==undefined?arguments[5]:Infinity;var miniDist=Math.min(currentMiniDist,ruler.distance(pointSet1[0],pointSet2[0]));if(miniDist===0)return miniDist;var initialDistPair={dist:0,range1:[0,pointSet1.length-1],range2:[0,pointSet2.length-1]};var distQueue=new TinyQueue([initialDistPair],compareMax);var set1Threshold=isLine1?MIN_LINE_POINT_SIZE:MIN_POINT_SIZE;var set2Threshold=isLine2?MIN_LINE_POINT_SIZE:MIN_POINT_SIZE;while(distQueue.length){var distPair=distQueue.pop();if(distPair.dist>=miniDist)continue;var rangeA=distPair.range1;var rangeB=distPair.range2;if(getRangeSize(rangeA)<=set1Threshold&&getRangeSize(rangeB)<=set2Threshold){if(!isRangeSafe(rangeA,pointSet1.length)||!isRangeSafe(rangeB,pointSet2.length)){return NaN;}if(isLine1&&isLine2){miniDist=Math.min(miniDist,lineToLineDistance(pointSet1,rangeA,pointSet2,rangeB,ruler));}else if(!isLine1&&!isLine2){miniDist=Math.min(miniDist,pointsToPointsDistance(pointSet1,rangeA,pointSet2,rangeB,ruler));}else if(isLine1&&!isLine2){miniDist=Math.min(miniDist,pointsToLineDistance(pointSet2,rangeB,pointSet1,rangeA,ruler));}else if(!isLine1&&isLine2){miniDist=Math.min(miniDist,pointsToLineDistance(pointSet1,rangeA,pointSet2,rangeB,ruler));}if(miniDist===0)return miniDist;}else{var newRangesA=splitRange(rangeA,isLine1);var newRangesB=splitRange(rangeB,isLine2);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[0],newRangesB[0]);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[0],newRangesB[1]);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[1],newRangesB[0]);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[1],newRangesB[1]);}}return miniDist;}function pointSetToLinesDistance(pointSet,isLine,lines,ruler){var currentMiniDist=arguments.length>4&&arguments[4]!==undefined?arguments[4]:Infinity;var dist=currentMiniDist;var bbox1=getBBox(pointSet,[0,pointSet.length-1]);var _iterator25=index_es_createForOfIteratorHelper(lines),_step25;try{for(_iterator25.s();!(_step25=_iterator25.n()).done;){var line=_step25.value;if(dist!==Infinity&&bboxToBBoxDistance(bbox1,getBBox(line,[0,line.length-1]),ruler)>=dist)continue;dist=Math.min(dist,pointSetsDistance(pointSet,isLine,line,true,ruler,dist));if(dist===0)return dist;}}catch(err){_iterator25.e(err);}finally{_iterator25.f();}return dist;}function pointSetToPolygonsDistance(points,isLine,polygons,ruler){var currentMiniDist=arguments.length>4&&arguments[4]!==undefined?arguments[4]:Infinity;var dist=currentMiniDist;var bbox1=getBBox(points,[0,points.length-1]);var _iterator26=index_es_createForOfIteratorHelper(polygons),_step26;try{for(_iterator26.s();!(_step26=_iterator26.n()).done;){var polygon=_step26.value;if(dist!==Infinity&&bboxToBBoxDistance(bbox1,getPolygonBBox(polygon),ruler)>=dist)continue;var tempDist=pointSetToPolygonDistance(points,isLine,polygon,ruler,dist);if(isNaN(tempDist))return tempDist;if((dist=Math.min(dist,tempDist))===0)return dist;}}catch(err){_iterator26.e(err);}finally{_iterator26.f();}return dist;}function polygonsToPolygonsDistance(polygons1,polygons2,ruler){var dist=Infinity;var _iterator27=index_es_createForOfIteratorHelper(polygons1),_step27;try{for(_iterator27.s();!(_step27=_iterator27.n()).done;){var polygon1=_step27.value;var _iterator28=index_es_createForOfIteratorHelper(polygons2),_step28;try{for(_iterator28.s();!(_step28=_iterator28.n()).done;){var polygon2=_step28.value;var tempDist=polygonToPolygonDistance(polygon1,polygon2,ruler,dist);if(isNaN(tempDist))return tempDist;if((dist=Math.min(dist,tempDist))===0)return dist;}}catch(err){_iterator28.e(err);}finally{_iterator28.f();}}}catch(err){_iterator27.e(err);}finally{_iterator27.f();}return dist;}function pointsToGeometryDistance(originGeometry,canonical,geometry){var lngLatPoints=[];var _iterator29=index_es_createForOfIteratorHelper(originGeometry),_step29;try{for(_iterator29.s();!(_step29=_iterator29.n()).done;){var points=_step29.value;var _iterator30=index_es_createForOfIteratorHelper(points),_step30;try{for(_iterator30.s();!(_step30=_iterator30.n()).done;){var point=_step30.value;lngLatPoints.push(getLngLatPoint(point,canonical));}}catch(err){_iterator30.e(err);}finally{_iterator30.f();}}}catch(err){_iterator29.e(err);}finally{_iterator29.f();}var ruler=new CheapRuler(lngLatPoints[0][1],'meters');if(geometry.type==='Point'||geometry.type==='MultiPoint'||geometry.type==='LineString'){return pointSetsDistance(lngLatPoints,false,geometry.type==='Point'?[geometry.coordinates]:geometry.coordinates,geometry.type==='LineString',ruler);}if(geometry.type==='MultiLineString'){return pointSetToLinesDistance(lngLatPoints,false,geometry.coordinates,ruler);}if(geometry.type==='Polygon'||geometry.type==='MultiPolygon'){return pointSetToPolygonsDistance(lngLatPoints,false,geometry.type==='Polygon'?[geometry.coordinates]:geometry.coordinates,ruler);}return null;}function linesToGeometryDistance(originGeometry,canonical,geometry){var lngLatLines=[];var _iterator31=index_es_createForOfIteratorHelper(originGeometry),_step31;try{for(_iterator31.s();!(_step31=_iterator31.n()).done;){var line=_step31.value;var lngLatLine=[];var _iterator32=index_es_createForOfIteratorHelper(line),_step32;try{for(_iterator32.s();!(_step32=_iterator32.n()).done;){var point=_step32.value;lngLatLine.push(getLngLatPoint(point,canonical));}}catch(err){_iterator32.e(err);}finally{_iterator32.f();}lngLatLines.push(lngLatLine);}}catch(err){_iterator31.e(err);}finally{_iterator31.f();}var ruler=new CheapRuler(lngLatLines[0][0][1],'meters');if(geometry.type==='Point'||geometry.type==='MultiPoint'||geometry.type==='LineString'){return pointSetToLinesDistance(geometry.type==='Point'?[geometry.coordinates]:geometry.coordinates,geometry.type==='LineString',lngLatLines,ruler);}if(geometry.type==='MultiLineString'){var dist=Infinity;for(var i=0;i=0)break;data[pos]=data[bestChild];pos=bestChild;}data[pos]=item;}}]);}();var EXTENT=8192;function compareMax(a,b){return b.dist-a.dist;}var MIN_POINT_SIZE=100;var MIN_LINE_POINT_SIZE=50;function isDefaultBBOX(bbox){var defualtBBox=[Infinity,Infinity,-Infinity,-Infinity];if(defualtBBox.length!==bbox.length){return false;}for(var i=0;i=range[0]&&range[1]range[1])return[null,null];var size=getRangeSize(range);if(isLine){if(size===2){return[range,null];}var size1=Math.floor(size/2);var range1=[range[0],range[0]+size1];var range2=[range[0]+size1,range[1]];return[range1,range2];}else{if(size===1){return[range,null];}var _size=Math.floor(size/2)-1;var _range=[range[0],range[0]+_size];var _range2=[range[0]+_size+1,range[1]];return[_range,_range2];}}function getBBox(pointSets,range){var bbox=[Infinity,Infinity,-Infinity,-Infinity];if(!isRangeSafe(range,pointSets.length))return bbox;for(var i=range[0];i<=range[1];++i){updateBBox(bbox,pointSets[i]);}return bbox;}function getPolygonBBox(polygon){var bbox=[Infinity,Infinity,-Infinity,-Infinity];for(var i=0;ibbox2[2]){dx=bbox1[0]-bbox2[2];}if(bbox1[1]>bbox2[3]){dy=bbox1[1]-bbox2[3];}if(bbox1[3]2&&arguments[2]!==undefined?arguments[2]:EXTENT;var tilesAtZoom=Math.pow(2,canonical.z);var x=(coord.x/extent+canonical.x)/tilesAtZoom;var y=(coord.y/extent+canonical.y)/tilesAtZoom;return[lngFromMercatorX(x),latFromMercatorY(y)];}function getLngLatPoints(coordinates,canonical){var coords=[];for(var i=0;i3&&arguments[3]!==undefined?arguments[3]:Infinity;var bbox1=getPolygonBBox(polygon1);var bbox2=getPolygonBBox(polygon2);if(currentMiniDist!==Infinity&&bboxToBBoxDistance(bbox1,bbox2,ruler)>=currentMiniDist){return currentMiniDist;}if(boxWithinBox(bbox1,bbox2)){if(polygonIntersect(polygon1,polygon2))return 0;}else if(polygonIntersect(polygon2,polygon1)){return 0;}var dist=currentMiniDist;var _iterator25=index_es_createForOfIteratorHelper(polygon1),_step25;try{for(_iterator25.s();!(_step25=_iterator25.n()).done;){var ring1=_step25.value;for(var i=0,len1=ring1.length,l=len1-1;i4&&arguments[4]!==undefined?arguments[4]:Infinity;var miniDist=Math.min(ruler.distance(pointSets[0],polygon[0][0]),currentMiniDist);if(miniDist===0)return miniDist;var initialDistPair={dist:0,range1:[0,pointSets.length-1],range2:[0,0]};var distQueue=new TinyQueue([initialDistPair],compareMax);var setThreshold=isLine?MIN_LINE_POINT_SIZE:MIN_POINT_SIZE;var polyBBox=getPolygonBBox(polygon);while(distQueue.length){var distPair=distQueue.pop();if(distPair.dist>=miniDist)continue;var range=distPair.range1;if(getRangeSize(range)<=setThreshold){if(!isRangeSafe(range,pointSets.length))return NaN;if(isLine){var tempDist=lineToPolygonDistance(pointSets,range,polygon,ruler);if((miniDist=Math.min(miniDist,tempDist))===0)return miniDist;}else{for(var i=range[0];i<=range[1];++i){var _tempDist=pointToPolygonDistance(pointSets[i],polygon,ruler);if((miniDist=Math.min(miniDist,_tempDist))===0)return miniDist;}}}else{var newRanges=splitRange(range,isLine);if(newRanges[0]!==null){var _tempDist2=bboxToBBoxDistance(getBBox(pointSets,newRanges[0]),polyBBox,ruler);if(_tempDist25&&arguments[5]!==undefined?arguments[5]:Infinity;var miniDist=Math.min(currentMiniDist,ruler.distance(pointSet1[0],pointSet2[0]));if(miniDist===0)return miniDist;var initialDistPair={dist:0,range1:[0,pointSet1.length-1],range2:[0,pointSet2.length-1]};var distQueue=new TinyQueue([initialDistPair],compareMax);var set1Threshold=isLine1?MIN_LINE_POINT_SIZE:MIN_POINT_SIZE;var set2Threshold=isLine2?MIN_LINE_POINT_SIZE:MIN_POINT_SIZE;while(distQueue.length){var distPair=distQueue.pop();if(distPair.dist>=miniDist)continue;var rangeA=distPair.range1;var rangeB=distPair.range2;if(getRangeSize(rangeA)<=set1Threshold&&getRangeSize(rangeB)<=set2Threshold){if(!isRangeSafe(rangeA,pointSet1.length)||!isRangeSafe(rangeB,pointSet2.length)){return NaN;}if(isLine1&&isLine2){miniDist=Math.min(miniDist,lineToLineDistance(pointSet1,rangeA,pointSet2,rangeB,ruler));}else if(!isLine1&&!isLine2){miniDist=Math.min(miniDist,pointsToPointsDistance(pointSet1,rangeA,pointSet2,rangeB,ruler));}else if(isLine1&&!isLine2){miniDist=Math.min(miniDist,pointsToLineDistance(pointSet2,rangeB,pointSet1,rangeA,ruler));}else if(!isLine1&&isLine2){miniDist=Math.min(miniDist,pointsToLineDistance(pointSet1,rangeA,pointSet2,rangeB,ruler));}if(miniDist===0)return miniDist;}else{var newRangesA=splitRange(rangeA,isLine1);var newRangesB=splitRange(rangeB,isLine2);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[0],newRangesB[0]);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[0],newRangesB[1]);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[1],newRangesB[0]);updateQueue(distQueue,miniDist,ruler,pointSet1,pointSet2,newRangesA[1],newRangesB[1]);}}return miniDist;}function pointSetToLinesDistance(pointSet,isLine,lines,ruler){var currentMiniDist=arguments.length>4&&arguments[4]!==undefined?arguments[4]:Infinity;var dist=currentMiniDist;var bbox1=getBBox(pointSet,[0,pointSet.length-1]);var _iterator27=index_es_createForOfIteratorHelper(lines),_step27;try{for(_iterator27.s();!(_step27=_iterator27.n()).done;){var line=_step27.value;if(dist!==Infinity&&bboxToBBoxDistance(bbox1,getBBox(line,[0,line.length-1]),ruler)>=dist)continue;dist=Math.min(dist,pointSetsDistance(pointSet,isLine,line,true,ruler,dist));if(dist===0)return dist;}}catch(err){_iterator27.e(err);}finally{_iterator27.f();}return dist;}function pointSetToPolygonsDistance(points,isLine,polygons,ruler){var currentMiniDist=arguments.length>4&&arguments[4]!==undefined?arguments[4]:Infinity;var dist=currentMiniDist;var bbox1=getBBox(points,[0,points.length-1]);var _iterator28=index_es_createForOfIteratorHelper(polygons),_step28;try{for(_iterator28.s();!(_step28=_iterator28.n()).done;){var polygon=_step28.value;if(dist!==Infinity&&bboxToBBoxDistance(bbox1,getPolygonBBox(polygon),ruler)>=dist)continue;var tempDist=pointSetToPolygonDistance(points,isLine,polygon,ruler,dist);if(isNaN(tempDist))return tempDist;if((dist=Math.min(dist,tempDist))===0)return dist;}}catch(err){_iterator28.e(err);}finally{_iterator28.f();}return dist;}function polygonsToPolygonsDistance(polygons1,polygons2,ruler){var dist=Infinity;var _iterator29=index_es_createForOfIteratorHelper(polygons1),_step29;try{for(_iterator29.s();!(_step29=_iterator29.n()).done;){var polygon1=_step29.value;var _iterator30=index_es_createForOfIteratorHelper(polygons2),_step30;try{for(_iterator30.s();!(_step30=_iterator30.n()).done;){var polygon2=_step30.value;var tempDist=polygonToPolygonDistance(polygon1,polygon2,ruler,dist);if(isNaN(tempDist))return tempDist;if((dist=Math.min(dist,tempDist))===0)return dist;}}catch(err){_iterator30.e(err);}finally{_iterator30.f();}}}catch(err){_iterator29.e(err);}finally{_iterator29.f();}return dist;}function pointsToGeometryDistance(originGeometry,canonical,geometry){var lngLatPoints=[];var _iterator31=index_es_createForOfIteratorHelper(originGeometry),_step31;try{for(_iterator31.s();!(_step31=_iterator31.n()).done;){var points=_step31.value;var _iterator32=index_es_createForOfIteratorHelper(points),_step32;try{for(_iterator32.s();!(_step32=_iterator32.n()).done;){var point=_step32.value;lngLatPoints.push(getLngLatPoint(point,canonical));}}catch(err){_iterator32.e(err);}finally{_iterator32.f();}}}catch(err){_iterator31.e(err);}finally{_iterator31.f();}var ruler=new CheapRuler(lngLatPoints[0][1],'meters');if(geometry.type==='Point'||geometry.type==='MultiPoint'||geometry.type==='LineString'){return pointSetsDistance(lngLatPoints,false,geometry.type==='Point'?[geometry.coordinates]:geometry.coordinates,geometry.type==='LineString',ruler);}if(geometry.type==='MultiLineString'){return pointSetToLinesDistance(lngLatPoints,false,geometry.coordinates,ruler);}if(geometry.type==='Polygon'||geometry.type==='MultiPolygon'){return pointSetToPolygonsDistance(lngLatPoints,false,geometry.type==='Polygon'?[geometry.coordinates]:geometry.coordinates,ruler);}return null;}function linesToGeometryDistance(originGeometry,canonical,geometry){var lngLatLines=[];var _iterator33=index_es_createForOfIteratorHelper(originGeometry),_step33;try{for(_iterator33.s();!(_step33=_iterator33.n()).done;){var line=_step33.value;var lngLatLine=[];var _iterator34=index_es_createForOfIteratorHelper(line),_step34;try{for(_iterator34.s();!(_step34=_iterator34.n()).done;){var point=_step34.value;lngLatLine.push(getLngLatPoint(point,canonical));}}catch(err){_iterator34.e(err);}finally{_iterator34.f();}lngLatLines.push(lngLatLine);}}catch(err){_iterator33.e(err);}finally{_iterator33.f();}var ruler=new CheapRuler(lngLatLines[0][0][1],'meters');if(geometry.type==='Point'||geometry.type==='MultiPoint'||geometry.type==='LineString'){return pointSetToLinesDistance(geometry.type==='Point'?[geometry.coordinates]:geometry.coordinates,geometry.type==='LineString',lngLatLines,ruler);}if(geometry.type==='MultiLineString'){var dist=Infinity;for(var i=0;i=0){return false;}var result=true;e.eachChild(function(arg){if(result&&!isGlobalPropertyConstant(arg,properties)){result=false;}});return result;}var FQIDSeparator='\x1F';function makeConfigFQID(id,ownScope,contextScope){return[id,ownScope,contextScope].filter(Boolean).join(FQIDSeparator);}function coerceValue(type,value){switch(type){// eslint-disable-next-line @typescript-eslint/no-unsafe-argument case'string':return index_es_toString(value);case'number':return+value;case'boolean':return!!value;// eslint-disable-next-line @typescript-eslint/no-unsafe-argument case'color':return index_es_Color.parse(value);case'formatted':{return Formatted.fromString(index_es_toString(value));}case'resolvedImage':{return ResolvedImage.build(index_es_toString(value));}}return value;}function clampToAllowedNumber(value,min,max,step){if(step!==void 0){value=step*Math.round(value/step);}if(min!==void 0&&valuemax){value=max;}return value;}var index_es_Config=/*#__PURE__*/function(){function Config(type,key,scope){var featureConstant=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;index_es_classCallCheck(this,Config);this.type=type;this.key=key;this.scope=scope;this.featureConstant=featureConstant;}return index_es_createClass(Config,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any function evaluate(ctx){var fqid=makeConfigFQID(this.key,this.scope,ctx.scope);var config=ctx.getConfig(fqid);if(!config)return null;var type=config.type,value=config.value,values=config.values,minValue=config.minValue,maxValue=config.maxValue,stepValue=config.stepValue;var defaultValue=config["default"].evaluate(ctx);var result=defaultValue;if(value){var originalScope=ctx.scope;ctx.scope=(originalScope||'').split(FQIDSeparator).slice(1).join(FQIDSeparator);result=value.evaluate(ctx);ctx.scope=originalScope;}if(type){result=coerceValue(type,result);}if(result!==void 0&&(minValue!==void 0||maxValue!==void 0||stepValue!==void 0)){if(typeof result==='number'){result=clampToAllowedNumber(result,minValue,maxValue,stepValue);}else if(Array.isArray(result)){result=result.map(function(item){return typeof item==='number'?clampToAllowedNumber(item,minValue,maxValue,stepValue):item;});}}if(value!==void 0&&result!==void 0&&values&&!values.includes(result)){result=defaultValue;if(type){result=coerceValue(type,result);}}if(type&&type!==this.type||result!==void 0&&!typeEquals(typeOf(result),this.type)){result=coerceValue(this.type.kind,result);}return result;}},{key:"eachChild",value:function eachChild(){}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){var res=['config',this.key];if(this.scope){res.concat(this.scope);}return res;}}],[{key:"parse",value:function parse(args,context){var type=context.expectedType;if(type===null||type===void 0){type=ValueType;}if(args.length<2||args.length>3){return context.error("Invalid number of arguments for 'config' expression.");}var configKey=context.parse(args[1],1);if(!(configKey instanceof Literal)){return context.error("Key name of 'config' expression must be a string literal.");}var featureConstant=true;var configScopeValue;var configKeyValue=index_es_toString(configKey.value);if(args.length>=3){var configScope=context.parse(args[2],2);if(!(configScope instanceof Literal)){return context.error("Scope of 'config' expression must be a string literal.");}configScopeValue=index_es_toString(configScope.value);}if(context.options){var fqid=makeConfigFQID(configKeyValue,configScopeValue,context._scope);var _config=context.options.get(fqid);if(_config){featureConstant=isFeatureConstant(_config.value||_config["default"]);}}return new Config(type,configKeyValue,configScopeValue,featureConstant);}}]);}();var Var=/*#__PURE__*/function(){function Var(name,boundExpression){index_es_classCallCheck(this,Var);this.type=boundExpression.type;this.name=name;this.boundExpression=boundExpression;}return index_es_createClass(Var,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any -function evaluate(ctx){return this.boundExpression.evaluate(ctx);}},{key:"eachChild",value:function eachChild(){}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){return['var',this.name];}}],[{key:"parse",value:function parse(args,context){if(args.length!==2||typeof args[1]!=='string')return context.error("'var' expression requires exactly one string literal argument.");var name=args[1];if(!context.scope.has(name)){return context.error("Unknown variable \"".concat(name,"\". Make sure \"").concat(name,"\" has been bound in an enclosing \"let\" expression before using it."),1);}return new Var(name,context.scope.get(name));}}]);}();var ParsingContext=/*#__PURE__*/function(){function ParsingContext(registry){var path=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var expectedType=arguments.length>2?arguments[2]:undefined;var scope=arguments.length>3&&arguments[3]!==undefined?arguments[3]:new Scope();var errors=arguments.length>4&&arguments[4]!==undefined?arguments[4]:[];var _scope=arguments.length>5?arguments[5]:undefined;var options=arguments.length>6?arguments[6]:undefined;var iconImageUseTheme=arguments.length>7?arguments[7]:undefined;index_es_classCallCheck(this,ParsingContext);this.registry=registry;this.path=path;this.scope=scope;this.errors=errors;this.expectedType=expectedType;this._scope=_scope;this.options=options;this.iconImageUseTheme=iconImageUseTheme;}return index_es_createClass(ParsingContext,[{key:"key",get:function get(){if(this._key===void 0){var path=this.path;var key='';for(var i=0;i1&&arguments[1]!==undefined?arguments[1]:[];var expectedType=arguments.length>2?arguments[2]:undefined;var scope=arguments.length>3&&arguments[3]!==undefined?arguments[3]:new Scope();var errors=arguments.length>4&&arguments[4]!==undefined?arguments[4]:[];var _scope=arguments.length>5?arguments[5]:undefined;var options=arguments.length>6?arguments[6]:undefined;var iconImageUseTheme=arguments.length>7?arguments[7]:undefined;index_es_classCallCheck(this,ParsingContext);this.registry=registry;this.path=path;this.key=path.map(function(part){if(typeof part==='string'){return"['".concat(part,"']");}return"[".concat(part,"]");}).join('');this.scope=scope;this.errors=errors;this.expectedType=expectedType;this._scope=_scope;this.options=options;this.iconImageUseTheme=iconImageUseTheme;}/** * @param expr the JSON expression to parse * @param index the optional argument index if this expression is an argument of a parent expression that's being parsed * @param options * @param options.omitTypeAnnotations set true to omit inferred type annotations. Caller beware: with this option set, the parsed expression's type will NOT satisfy `expectedType` if it would normally be wrapped in an inferred annotation. * @private - */},{key:"parse",value:function parse(expr,index,expectedType,bindings){var options=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};if(index||expectedType){return this.concat(index,null,expectedType,bindings)._parse(expr,options);}return this._parse(expr,options);}/** + */return index_es_createClass(ParsingContext,[{key:"parse",value:function parse(expr,index,expectedType,bindings){var options=arguments.length>4&&arguments[4]!==undefined?arguments[4]:{};if(index||expectedType){return this.concat(index,null,expectedType,bindings)._parse(expr,options);}return this._parse(expr,options);}/** * @param expr the JSON expression to parse * @param index the optional argument index if parent object being is an argument of another expression * @param key key of parent object being parsed @@ -84937,18 +85014,18 @@ function evaluate(ctx){return this.boundExpression.evaluate(ctx);}},{key:"eachCh */},{key:"error",value:function error(_error3){for(var _len=arguments.length,keys=new Array(_len>1?_len-1:0),_key4=1;_key4<_len;_key4++){keys[_key4-1]=arguments[_key4];}var key="".concat(this.key).concat(keys.map(function(k){return"[".concat(k,"]");}).join(''));this.errors.push(new ParsingError$1(key,_error3));}/** * Returns null if `t` is a subtype of `expected`; otherwise returns an * error message and also pushes it to `this.errors`. - */},{key:"checkSubtype",value:function checkSubtype(expected,t,index){var error=_checkSubtype(expected,t);if(error)this.error.apply(this,[error].concat(index_es_toConsumableArray(typeof index==='number'?[index]:[])));return error;}}]);}();function isConstant(expression){if(expression instanceof Var){return isConstant(expression.boundExpression);}else if(expression instanceof CompoundExpression&&expression.name==='error'){return false;}else if(expression instanceof CollatorExpression){return false;}else if(expression instanceof Within){return false;}else if(expression instanceof Distance){return false;}else if(expression instanceof index_es_Config){return false;}var isTypeAnnotation=expression instanceof Coercion||expression instanceof Assertion;var childrenConstant=true;expression.eachChild(function(child){if(isTypeAnnotation){childrenConstant=childrenConstant&&isConstant(child);}else{childrenConstant=childrenConstant&&child instanceof Literal;}});if(!childrenConstant){return false;}return isFeatureConstant(expression)&&isGlobalPropertyConstant(expression,['zoom','heatmap-density','worldview','line-progress','raster-value','sky-radial-progress','accumulated','is-supported-script','pitch','distance-from-center','measure-light','raster-particle-speed','is-active-floor']);}function findStopLessThanOrEqualTo(stops,input){var lastIndex=stops.length-1;var lowerIndex=0;var upperIndex=lastIndex;var currentIndex=0;var currentValue;var nextValue;while(lowerIndex<=upperIndex){currentIndex=Math.floor((lowerIndex+upperIndex)/2);currentValue=stops[currentIndex];nextValue=stops[currentIndex+1];if(currentValue<=input){if(currentIndex===lastIndex||inputinput){upperIndex=currentIndex-1;}else{throw new RuntimeError('Input is not a number.');}}return 0;}var Step=/*#__PURE__*/function(){function Step(type,input,stops){index_es_classCallCheck(this,Step);this.type=type;this.input=input;this.labels=[];this.outputs=[];var _iterator34=index_es_createForOfIteratorHelper(stops),_step34;try{for(_iterator34.s();!(_step34=_iterator34.n()).done;){var _step34$value=index_es_slicedToArray(_step34.value,2),label=_step34$value[0],_expression2=_step34$value[1];this.labels.push(label);this.outputs.push(_expression2);}}catch(err){_iterator34.e(err);}finally{_iterator34.f();}}return index_es_createClass(Step,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any -function evaluate(ctx){var labels=this.labels;var outputs=this.outputs;if(labels.length===1){return outputs[0].evaluate(ctx);}var value=this.input.evaluate(ctx);if(value<=labels[0]){return outputs[0].evaluate(ctx);}var stopCount=labels.length;if(value>=labels[stopCount-1]){return outputs[stopCount-1].evaluate(ctx);}var index=findStopLessThanOrEqualTo(labels,value);return outputs[index].evaluate(ctx);}},{key:"eachChild",value:function eachChild(fn){fn(this.input);var _iterator35=index_es_createForOfIteratorHelper(this.outputs),_step35;try{for(_iterator35.s();!(_step35=_iterator35.n()).done;){var _expression3=_step35.value;fn(_expression3);}}catch(err){_iterator35.e(err);}finally{_iterator35.f();}}},{key:"outputDefined",value:function outputDefined(){return this.outputs.every(function(out){return out.outputDefined();});}},{key:"serialize",value:function serialize(){var serialized=['step',this.input.serialize()];for(var i=0;i0){serialized.push(this.labels[i]);}serialized.push(this.outputs[i].serialize());}return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length-1<4){return context.error("Expected at least 4 arguments, but found only ".concat(args.length-1,"."));}if((args.length-1)%2!==0){return context.error("Expected an even number of arguments.");}var input=context.parse(args[1],1,NumberType);if(!input)return null;var stops=[];var outputType=null;if(context.expectedType&&context.expectedType.kind!=='value'){outputType=context.expectedType;}for(var i=1;i=label){return context.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',labelKey);}var parsed=context.parse(value,valueKey,outputType);if(!parsed)return null;outputType=outputType||parsed.type;stops.push([label,parsed]);}return new Step(outputType,input,stops);}}]);}();var unitbezier;var hasRequiredUnitbezier;function requireUnitbezier(){if(hasRequiredUnitbezier)return unitbezier;hasRequiredUnitbezier=1;unitbezier=UnitBezier;function UnitBezier(p1x,p1y,p2x,p2y){// Calculate the polynomial coefficients, implicit first and last control points are (0,0) and (1,1). + */},{key:"checkSubtype",value:function checkSubtype(expected,t){var error=_checkSubtype(expected,t);if(error)this.error(error);return error;}}]);}();function isConstant(expression){if(expression instanceof Var){return isConstant(expression.boundExpression);}else if(expression instanceof CompoundExpression&&expression.name==='error'){return false;}else if(expression instanceof CollatorExpression){return false;}else if(expression instanceof Within){return false;}else if(expression instanceof Distance){return false;}else if(expression instanceof index_es_Config){return false;}var isTypeAnnotation=expression instanceof Coercion||expression instanceof Assertion;var childrenConstant=true;expression.eachChild(function(child){if(isTypeAnnotation){childrenConstant=childrenConstant&&isConstant(child);}else{childrenConstant=childrenConstant&&child instanceof Literal;}});if(!childrenConstant){return false;}return isFeatureConstant(expression)&&isGlobalPropertyConstant(expression,['zoom','heatmap-density','worldview','line-progress','raster-value','sky-radial-progress','accumulated','is-supported-script','pitch','distance-from-center','measure-light','raster-particle-speed','is-active-floor']);}function findStopLessThanOrEqualTo(stops,input){var lastIndex=stops.length-1;var lowerIndex=0;var upperIndex=lastIndex;var currentIndex=0;var currentValue,nextValue;while(lowerIndex<=upperIndex){currentIndex=Math.floor((lowerIndex+upperIndex)/2);currentValue=stops[currentIndex];nextValue=stops[currentIndex+1];if(currentValue<=input){if(currentIndex===lastIndex||inputinput){upperIndex=currentIndex-1;}else{throw new RuntimeError('Input is not a number.');}}return 0;}var Step=/*#__PURE__*/function(){function Step(type,input,stops){index_es_classCallCheck(this,Step);this.type=type;this.input=input;this.labels=[];this.outputs=[];var _iterator36=index_es_createForOfIteratorHelper(stops),_step36;try{for(_iterator36.s();!(_step36=_iterator36.n()).done;){var _step36$value=index_es_slicedToArray(_step36.value,2),label=_step36$value[0],_expression2=_step36$value[1];this.labels.push(label);this.outputs.push(_expression2);}}catch(err){_iterator36.e(err);}finally{_iterator36.f();}}return index_es_createClass(Step,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any +function evaluate(ctx){var labels=this.labels;var outputs=this.outputs;if(labels.length===1){return outputs[0].evaluate(ctx);}var value=this.input.evaluate(ctx);if(value<=labels[0]){return outputs[0].evaluate(ctx);}var stopCount=labels.length;if(value>=labels[stopCount-1]){return outputs[stopCount-1].evaluate(ctx);}var index=findStopLessThanOrEqualTo(labels,value);return outputs[index].evaluate(ctx);}},{key:"eachChild",value:function eachChild(fn){fn(this.input);var _iterator37=index_es_createForOfIteratorHelper(this.outputs),_step37;try{for(_iterator37.s();!(_step37=_iterator37.n()).done;){var _expression3=_step37.value;fn(_expression3);}}catch(err){_iterator37.e(err);}finally{_iterator37.f();}}},{key:"outputDefined",value:function outputDefined(){return this.outputs.every(function(out){return out.outputDefined();});}},{key:"serialize",value:function serialize(){var serialized=['step',this.input.serialize()];for(var i=0;i0){serialized.push(this.labels[i]);}serialized.push(this.outputs[i].serialize());}return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length-1<4){return context.error("Expected at least 4 arguments, but found only ".concat(args.length-1,"."));}if((args.length-1)%2!==0){return context.error("Expected an even number of arguments.");}var input=context.parse(args[1],1,NumberType);if(!input)return null;var stops=[];var outputType=null;if(context.expectedType&&context.expectedType.kind!=='value'){outputType=context.expectedType;}for(var i=1;i=label){return context.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',labelKey);}var parsed=context.parse(value,valueKey,outputType);if(!parsed)return null;outputType=outputType||parsed.type;stops.push([label,parsed]);}return new Step(outputType,input,stops);}}]);}();var unitbezier;var hasRequiredUnitbezier;function requireUnitbezier(){if(hasRequiredUnitbezier)return unitbezier;hasRequiredUnitbezier=1;unitbezier=UnitBezier;function UnitBezier(p1x,p1y,p2x,p2y){// Calculate the polynomial coefficients, implicit first and last control points are (0,0) and (1,1). this.cx=3*p1x;this.bx=3*(p2x-p1x)-this.cx;this.ax=1-this.cx-this.bx;this.cy=3*p1y;this.by=3*(p2y-p1y)-this.cy;this.ay=1-this.cy-this.by;this.p1x=p1x;this.p1y=p1y;this.p2x=p2x;this.p2y=p2y;}UnitBezier.prototype={sampleCurveX:function sampleCurveX(t){// `ax t^3 + bx t^2 + cx t' expanded using Horner's rule. return((this.ax*t+this.bx)*t+this.cx)*t;},sampleCurveY:function sampleCurveY(t){return((this.ay*t+this.by)*t+this.cy)*t;},sampleCurveDerivativeX:function sampleCurveDerivativeX(t){return(3*this.ax*t+2*this.bx)*t+this.cx;},solveCurveX:function solveCurveX(x,epsilon){if(epsilon===undefined)epsilon=0.000001;if(x<0)return 0;if(x>1)return 1;var t=x;// First try a few iterations of Newton's method - normally very fast. for(var i=0;i<8;i++){var x2=this.sampleCurveX(t)-x;if(Math.abs(x2)x2){t0=t;}else{t1=t;}t=(t1-t0)*0.5+t0;}return t;},solve:function solve(x,epsilon){return this.sampleCurveY(this.solveCurveX(x,epsilon));}};return unitbezier;}var unitbezierExports=requireUnitbezier();var UnitBezier=/*@__PURE__*/getDefaultExportFromCjs(unitbezierExports);function color(from,to,t){return new index_es_Color(number(from.r,to.r,t),number(from.g,to.g,t),number(from.b,to.b,t),number(from.a,to.a,t));}function array(from,to,t){return from.map(function(d,i){return number(d,to[i],t);});}var interpolate=/*#__PURE__*/Object.freeze({__proto__:null,array:array,color:color,number:number});var Xn=0.95047,Yn=1,Zn=1.08883,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1,deg2rad=Math.PI/180,rad2deg=180/Math.PI;function xyz2lab(t){return t>t3?Math.pow(t,1/3):t/t2+t0;}function lab2xyz(t){return t>t1?t*t*t:t2*(t-t0);}function xyz2rgb(x){return 255*(x<=0.0031308?12.92*x:1.055*Math.pow(x,1/2.4)-0.055);}function rgb2xyz(x){x/=255;return x<=0.04045?x/12.92:Math.pow((x+0.055)/1.055,2.4);}function rgbToLab(rgbColor){var b=rgb2xyz(rgbColor.r),a=rgb2xyz(rgbColor.g),l=rgb2xyz(rgbColor.b),x=xyz2lab((0.4124564*b+0.3575761*a+0.1804375*l)/Xn),y=xyz2lab((0.2126729*b+0.7151522*a+0.072175*l)/Yn),z=xyz2lab((0.0193339*b+0.119192*a+0.9503041*l)/Zn);return{l:116*y-16,a:500*(x-y),b:200*(y-z),alpha:rgbColor.a};}function labToRgb(labColor){var y=(labColor.l+16)/116,x=isNaN(labColor.a)?y:y+labColor.a/500,z=isNaN(labColor.b)?y:y-labColor.b/200;y=Yn*lab2xyz(y);x=Xn*lab2xyz(x);z=Zn*lab2xyz(z);return new index_es_Color(xyz2rgb(3.2404542*x-1.5371385*y-0.4985314*z),// D65 -> sRGB -xyz2rgb(-0.969266*x+1.8760108*y+0.041556*z),xyz2rgb(0.0556434*x-0.2040259*y+1.0572252*z),labColor.alpha);}function interpolateLab(from,to,t){return{l:number(from.l,to.l,t),a:number(from.a,to.a,t),b:number(from.b,to.b,t),alpha:number(from.alpha,to.alpha,t)};}function rgbToHcl(rgbColor){var _rgbToLab=rgbToLab(rgbColor),l=_rgbToLab.l,a=_rgbToLab.a,b=_rgbToLab.b;var h=Math.atan2(b,a)*rad2deg;return{h:h<0?h+360:h,c:Math.sqrt(a*a+b*b),l:l,alpha:rgbColor.a};}function hclToRgb(hclColor){var h=hclColor.h*deg2rad,c=hclColor.c,l=hclColor.l;return labToRgb({l:l,a:Math.cos(h)*c,b:Math.sin(h)*c,alpha:hclColor.alpha});}function interpolateHue(a,b,t){var d=b-a;return a+t*(d>180||d<-180?d-360*Math.round(d/360):d);}function interpolateHcl(from,to,t){return{h:interpolateHue(from.h,to.h,t),c:number(from.c,to.c,t),l:number(from.l,to.l,t),alpha:number(from.alpha,to.alpha,t)};}var lab={forward:rgbToLab,reverse:labToRgb,interpolate:interpolateLab};var hcl={forward:rgbToHcl,reverse:hclToRgb,interpolate:interpolateHcl};var colorSpaces=/*#__PURE__*/Object.freeze({__proto__:null,hcl:hcl,lab:lab});var Interpolate=/*#__PURE__*/function(){function Interpolate(type,operator,interpolation,input,stops){index_es_classCallCheck(this,Interpolate);this.type=type;this.operator=operator;this.interpolation=interpolation;this.input=input;this.labels=[];this.outputs=[];var _iterator36=index_es_createForOfIteratorHelper(stops),_step36;try{for(_iterator36.s();!(_step36=_iterator36.n()).done;){var _step36$value=index_es_slicedToArray(_step36.value,2),label=_step36$value[0],_expression4=_step36$value[1];this.labels.push(label);this.outputs.push(_expression4);}}catch(err){_iterator36.e(err);}finally{_iterator36.f();}}return index_es_createClass(Interpolate,[{key:"evaluate",value:function evaluate(ctx){var labels=this.labels;var outputs=this.outputs;if(labels.length===1){return outputs[0].evaluate(ctx);}var value=this.input.evaluate(ctx);if(value<=labels[0]){return outputs[0].evaluate(ctx);}var stopCount=labels.length;if(value>=labels[stopCount-1]){return outputs[stopCount-1].evaluate(ctx);}var index=findStopLessThanOrEqualTo(labels,value);var lower=labels[index];var upper=labels[index+1];var t=Interpolate.interpolationFactor(this.interpolation,value,lower,upper);var outputLower=outputs[index].evaluate(ctx);var outputUpper=outputs[index+1].evaluate(ctx);if(this.operator==='interpolate'){return interpolate[this.type.kind.toLowerCase()](outputLower,outputUpper,t);}else if(this.operator==='interpolate-hcl'){return hcl.reverse(hcl.interpolate(hcl.forward(outputLower),hcl.forward(outputUpper),t));}else{return lab.reverse(lab.interpolate(lab.forward(outputLower),lab.forward(outputUpper),t));}}},{key:"eachChild",value:function eachChild(fn){fn(this.input);var _iterator37=index_es_createForOfIteratorHelper(this.outputs),_step37;try{for(_iterator37.s();!(_step37=_iterator37.n()).done;){var _expression5=_step37.value;fn(_expression5);}}catch(err){_iterator37.e(err);}finally{_iterator37.f();}}},{key:"outputDefined",value:function outputDefined(){return this.outputs.every(function(out){return out.outputDefined();});}},{key:"serialize",value:function serialize(){var interpolation;if(this.interpolation.name==='linear'){interpolation=['linear'];}else if(this.interpolation.name==='exponential'){if(this.interpolation.base===1){interpolation=['linear'];}else{interpolation=['exponential',this.interpolation.base];}}else{interpolation=['cubic-bezier'].concat(index_es_toConsumableArray(this.interpolation.controlPoints));}var serialized=[this.operator,interpolation,this.input.serialize()];for(var i=0;i1;})){return context.error('Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.',1);}interpolation={name:'cubic-bezier',controlPoints:controlPoints};}else{return context.error("Unknown interpolation type ".concat(String(interpolation[0])),1,0);}if(args.length-1<4){return context.error("Expected at least 4 arguments, but found only ".concat(args.length-1,"."));}if(args.length-1>3&&(args.length-1)%2!==0){return context.error("Expected an even number of arguments.");}input=context.parse(input,2,NumberType);if(!input)return null;var stops=[];var outputType=null;if(operator==='interpolate-hcl'||operator==='interpolate-lab'){outputType=ColorType;}else if(context.expectedType&&context.expectedType.kind!=='value'){outputType=context.expectedType;}for(var i=0;i=label){return context.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',labelKey);}var parsed=context.parse(value,valueKey,outputType);if(!parsed)return null;outputType=outputType||parsed.type;stops.push([label,parsed]);}if(outputType.kind!=='number'&&outputType.kind!=='color'&&!(outputType.kind==='array'&&outputType.itemType.kind==='number'&&typeof outputType.N==='number')){return context.error("Type ".concat(toString$1(outputType)," is not interpolatable."));}return new Interpolate(outputType,operator,interpolation,input,stops);}}]);}();function exponentialInterpolation(input,base,lowerValue,upperValue){var difference=upperValue-lowerValue;var progress=input-lowerValue;if(difference===0){return 0;}else if(base===1){return progress/difference;}else{return(Math.pow(base,progress)-1)/(Math.pow(base,difference)-1);}}var Coalesce=/*#__PURE__*/function(){function Coalesce(type,args){index_es_classCallCheck(this,Coalesce);this.type=type;this.args=args;}return index_es_createClass(Coalesce,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any -function evaluate(ctx){var result=null;var argCount=0;var firstImage;var _iterator38=index_es_createForOfIteratorHelper(this.args),_step38;try{for(_iterator38.s();!(_step38=_iterator38.n()).done;){var arg=_step38.value;argCount++;result=arg.evaluate(ctx);if(result&&result instanceof ResolvedImage&&!result.available){if(!firstImage){firstImage=result;}result=null;if(argCount===this.args.length){return firstImage;}}if(result!==null)break;}}catch(err){_iterator38.e(err);}finally{_iterator38.f();}return result;}},{key:"eachChild",value:function eachChild(fn){this.args.forEach(fn);}},{key:"outputDefined",value:function outputDefined(){return this.args.every(function(arg){return arg.outputDefined();});}},{key:"serialize",value:function serialize(){var serialized=['coalesce'];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<2){context.error('Expectected at least one argument.');return null;}var outputType=null;var expectedType=context.expectedType;if(expectedType&&expectedType.kind!=='value'){outputType=expectedType;}var parsedArgs=[];var _iterator39=index_es_createForOfIteratorHelper(args.slice(1)),_step39;try{for(_iterator39.s();!(_step39=_iterator39.n()).done;){var arg=_step39.value;var parsed=context.parse(arg,1+parsedArgs.length,outputType,void 0,{typeAnnotation:'omit'});if(!parsed)return null;outputType=outputType||parsed.type;parsedArgs.push(parsed);}}catch(err){_iterator39.e(err);}finally{_iterator39.f();}var needsAnnotation=expectedType&&parsedArgs.some(function(arg){return _checkSubtype(expectedType,arg.type);});return needsAnnotation?new Coalesce(ValueType,parsedArgs):new Coalesce(outputType,parsedArgs);}}]);}();var INVALID_VAR_CHAR_RE=/[^a-zA-Z0-9_]/;var Let=/*#__PURE__*/function(){function Let(bindings,result){index_es_classCallCheck(this,Let);this.type=result.type;this.bindings=[].concat(bindings);this.result=result;}// eslint-disable-next-line @typescript-eslint/no-explicit-any -return index_es_createClass(Let,[{key:"evaluate",value:function evaluate(ctx){return this.result.evaluate(ctx);}},{key:"eachChild",value:function eachChild(fn){var _iterator40=index_es_createForOfIteratorHelper(this.bindings),_step40;try{for(_iterator40.s();!(_step40=_iterator40.n()).done;){var binding=_step40.value;fn(binding[1]);}}catch(err){_iterator40.e(err);}finally{_iterator40.f();}fn(this.result);}},{key:"outputDefined",value:function outputDefined(){return this.result.outputDefined();}},{key:"serialize",value:function serialize(){var serialized=['let'];var _iterator41=index_es_createForOfIteratorHelper(this.bindings),_step41;try{for(_iterator41.s();!(_step41=_iterator41.n()).done;){var _step41$value=index_es_slicedToArray(_step41.value,2),name=_step41$value[0],expr=_step41$value[1];serialized.push(name,expr.serialize());}}catch(err){_iterator41.e(err);}finally{_iterator41.f();}serialized.push(this.result.serialize());return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<4)return context.error("Expected at least 3 arguments, but found ".concat(args.length-1," instead."));var bindings=[];for(var i=1;i=array2.length){throw new RuntimeError("Array index out of bounds: index exceeds array size");}if(index!==Math.floor(index)){throw new RuntimeError("Array index must be an integer. Use at-interpolated for fractional indices");}return array2[index];}},{key:"eachChild",value:function eachChild(fn){fn(this.index);fn(this.input);}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){return['at',this.index.serialize(),this.input.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3)return context.error("Expected 2 arguments, but found ".concat(args.length-1," instead."));var index=context.parse(args[1],1,NumberType);var input=context.parse(args[2],2,array$1(context.expectedType||ValueType));if(!index||!input)return null;var t=input.type;return new At(t.itemType,index,input);}}]);}();var AtInterpolated=/*#__PURE__*/function(){function AtInterpolated(type,index,input){index_es_classCallCheck(this,AtInterpolated);this.type=type;this.index=index;this.input=input;}return index_es_createClass(AtInterpolated,[{key:"evaluate",value:function evaluate(ctx){var index=this.index.evaluate(ctx);var array2=this.input.evaluate(ctx);if(index<0){throw new RuntimeError("Array index out of bounds: ".concat(index," < 0."));}if(index>array2.length-1){throw new RuntimeError("Array index out of bounds: ".concat(index," > ").concat(array2.length-1,"."));}if(index===Math.floor(index)){return array2[index];}var lowerIndex=Math.floor(index);var upperIndex=Math.ceil(index);var lowerValue=array2[lowerIndex];var upperValue=array2[upperIndex];if(typeof lowerValue!=='number'||typeof upperValue!=='number'){throw new RuntimeError("Cannot interpolate between non-number values at index ".concat(index,"."));}var fraction=index-lowerIndex;return lowerValue*(1-fraction)+upperValue*fraction;}},{key:"eachChild",value:function eachChild(fn){fn(this.index);fn(this.input);}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){return['at-interpolated',this.index.serialize(),this.input.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3)return context.error("Expected 2 arguments, but found ".concat(args.length-1," instead."));var index=context.parse(args[1],1,NumberType);var input=context.parse(args[2],2,array$1(context.expectedType||ValueType));if(!index||!input)return null;var t=input.type;return new AtInterpolated(t.itemType,index,input);}}]);}();var In=/*#__PURE__*/function(){function In(needle,haystack){index_es_classCallCheck(this,In);this.type=BooleanType;this.needle=needle;this.haystack=haystack;}return index_es_createClass(In,[{key:"evaluate",value:function evaluate(ctx){var needle=this.needle.evaluate(ctx);var haystack=this.haystack.evaluate(ctx);if(haystack==null)return false;if(!isValidNativeType(needle,['boolean','string','number','null'])){throw new RuntimeError("Expected first argument to be of type boolean, string, number or null, but found ".concat(toString$1(typeOf(needle))," instead."));}if(!isValidNativeType(haystack,['string','array'])){throw new RuntimeError("Expected second argument to be of type array or string, but found ".concat(toString$1(typeOf(haystack))," instead."));}return haystack.includes(needle);}},{key:"eachChild",value:function eachChild(fn){fn(this.needle);fn(this.haystack);}},{key:"outputDefined",value:function outputDefined(){return true;}},{key:"serialize",value:function serialize(){return['in',this.needle.serialize(),this.haystack.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3){context.error("Expected 2 arguments, but found ".concat(args.length-1," instead."));return null;}var needle=context.parse(args[1],1,ValueType);var haystack=context.parse(args[2],2,ValueType);if(!needle||!haystack)return null;if(!isValidType(needle.type,[BooleanType,StringType,NumberType,NullType,ValueType])){context.error("Expected first argument to be of type boolean, string, number or null, but found ".concat(toString$1(needle.type)," instead"));return null;}return new In(needle,haystack);}}]);}();var IndexOf=/*#__PURE__*/function(){function IndexOf(needle,haystack,fromIndex){index_es_classCallCheck(this,IndexOf);this.type=NumberType;this.needle=needle;this.haystack=haystack;this.fromIndex=fromIndex;}return index_es_createClass(IndexOf,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any +var t0=0;var t1=1;t=x;for(i=0;i<20;i++){x2=this.sampleCurveX(t);if(Math.abs(x2-x)x2){t0=t;}else{t1=t;}t=(t1-t0)*0.5+t0;}return t;},solve:function solve(x,epsilon){return this.sampleCurveY(this.solveCurveX(x,epsilon));}};return unitbezier;}var unitbezierExports=requireUnitbezier();var UnitBezier=/*@__PURE__*/getDefaultExportFromCjs(unitbezierExports);var Xn=0.95047,Yn=1,Zn=1.08883,t0=4/29,t1=6/29,t2=3*t1*t1,t3=t1*t1*t1,deg2rad=Math.PI/180,rad2deg=180/Math.PI;function xyz2lab(t){return t>t3?Math.pow(t,1/3):t/t2+t0;}function lab2xyz(t){return t>t1?t*t*t:t2*(t-t0);}function xyz2rgb(x){return 255*(x<=0.0031308?12.92*x:1.055*Math.pow(x,1/2.4)-0.055);}function rgb2xyz(x){x/=255;return x<=0.04045?x/12.92:Math.pow((x+0.055)/1.055,2.4);}function rgbToLab(rgbColor){var b=rgb2xyz(rgbColor.r),a=rgb2xyz(rgbColor.g),l=rgb2xyz(rgbColor.b),x=xyz2lab((0.4124564*b+0.3575761*a+0.1804375*l)/Xn),y=xyz2lab((0.2126729*b+0.7151522*a+0.072175*l)/Yn),z=xyz2lab((0.0193339*b+0.119192*a+0.9503041*l)/Zn);return{l:116*y-16,a:500*(x-y),b:200*(y-z),alpha:rgbColor.a};}function labToRgb(labColor){var y=(labColor.l+16)/116,x=isNaN(labColor.a)?y:y+labColor.a/500,z=isNaN(labColor.b)?y:y-labColor.b/200;y=Yn*lab2xyz(y);x=Xn*lab2xyz(x);z=Zn*lab2xyz(z);return new index_es_Color(xyz2rgb(3.2404542*x-1.5371385*y-0.4985314*z),// D65 -> sRGB +xyz2rgb(-0.969266*x+1.8760108*y+0.041556*z),xyz2rgb(0.0556434*x-0.2040259*y+1.0572252*z),labColor.alpha);}function interpolateLab(from,to,t){return{l:number(from.l,to.l,t),a:number(from.a,to.a,t),b:number(from.b,to.b,t),alpha:number(from.alpha,to.alpha,t)};}function rgbToHcl(rgbColor){var _rgbToLab=rgbToLab(rgbColor),l=_rgbToLab.l,a=_rgbToLab.a,b=_rgbToLab.b;var h=Math.atan2(b,a)*rad2deg;return{h:h<0?h+360:h,c:Math.sqrt(a*a+b*b),l:l,alpha:rgbColor.a};}function hclToRgb(hclColor){var h=hclColor.h*deg2rad,c=hclColor.c,l=hclColor.l;return labToRgb({l:l,a:Math.cos(h)*c,b:Math.sin(h)*c,alpha:hclColor.alpha});}function interpolateHue(a,b,t){var d=b-a;return a+t*(d>180||d<-180?d-360*Math.round(d/360):d);}function interpolateHcl(from,to,t){return{h:interpolateHue(from.h,to.h,t),c:number(from.c,to.c,t),l:number(from.l,to.l,t),alpha:number(from.alpha,to.alpha,t)};}var lab={forward:rgbToLab,reverse:labToRgb,interpolate:interpolateLab};var hcl={forward:rgbToHcl,reverse:hclToRgb,interpolate:interpolateHcl};var colorSpaces=/*#__PURE__*/Object.freeze({__proto__:null,hcl:hcl,lab:lab});var Interpolate=/*#__PURE__*/function(){function Interpolate(type,operator,interpolation,input,stops){index_es_classCallCheck(this,Interpolate);this.type=type;this.operator=operator;this.interpolation=interpolation;this.input=input;this.labels=[];this.outputs=[];var _iterator38=index_es_createForOfIteratorHelper(stops),_step38;try{for(_iterator38.s();!(_step38=_iterator38.n()).done;){var _step38$value=index_es_slicedToArray(_step38.value,2),label=_step38$value[0],_expression4=_step38$value[1];this.labels.push(label);this.outputs.push(_expression4);}}catch(err){_iterator38.e(err);}finally{_iterator38.f();}}return index_es_createClass(Interpolate,[{key:"evaluate",value:function evaluate(ctx){var labels=this.labels;var outputs=this.outputs;if(labels.length===1){return outputs[0].evaluate(ctx);}var value=this.input.evaluate(ctx);if(value<=labels[0]){return outputs[0].evaluate(ctx);}var stopCount=labels.length;if(value>=labels[stopCount-1]){return outputs[stopCount-1].evaluate(ctx);}var index=findStopLessThanOrEqualTo(labels,value);var lower=labels[index];var upper=labels[index+1];var t=Interpolate.interpolationFactor(this.interpolation,value,lower,upper);var outputLower=outputs[index].evaluate(ctx);var outputUpper=outputs[index+1].evaluate(ctx);if(this.operator==='interpolate'){return interpolate$1[this.type.kind.toLowerCase()](outputLower,outputUpper,t);}else if(this.operator==='interpolate-hcl'){return hcl.reverse(hcl.interpolate(hcl.forward(outputLower),hcl.forward(outputUpper),t));}else{return lab.reverse(lab.interpolate(lab.forward(outputLower),lab.forward(outputUpper),t));}}},{key:"eachChild",value:function eachChild(fn){fn(this.input);var _iterator39=index_es_createForOfIteratorHelper(this.outputs),_step39;try{for(_iterator39.s();!(_step39=_iterator39.n()).done;){var _expression5=_step39.value;fn(_expression5);}}catch(err){_iterator39.e(err);}finally{_iterator39.f();}}},{key:"outputDefined",value:function outputDefined(){return this.outputs.every(function(out){return out.outputDefined();});}},{key:"serialize",value:function serialize(){var interpolation;if(this.interpolation.name==='linear'){interpolation=['linear'];}else if(this.interpolation.name==='exponential'){if(this.interpolation.base===1){interpolation=['linear'];}else{interpolation=['exponential',this.interpolation.base];}}else{interpolation=['cubic-bezier'].concat(index_es_toConsumableArray(this.interpolation.controlPoints));}var serialized=[this.operator,interpolation,this.input.serialize()];for(var i=0;i1;})){return context.error('Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.',1);}interpolation={name:'cubic-bezier',controlPoints:controlPoints};}else{return context.error("Unknown interpolation type ".concat(String(interpolation[0])),1,0);}if(args.length-1<4){return context.error("Expected at least 4 arguments, but found only ".concat(args.length-1,"."));}if(args.length-1>3&&(args.length-1)%2!==0){return context.error("Expected an even number of arguments.");}input=context.parse(input,2,NumberType);if(!input)return null;var stops=[];var outputType=null;if(operator==='interpolate-hcl'||operator==='interpolate-lab'){outputType=ColorType;}else if(context.expectedType&&context.expectedType.kind!=='value'){outputType=context.expectedType;}for(var i=0;i=label){return context.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',labelKey);}var parsed=context.parse(value,valueKey,outputType);if(!parsed)return null;outputType=outputType||parsed.type;stops.push([label,parsed]);}if(outputType.kind!=='number'&&outputType.kind!=='color'&&!(outputType.kind==='array'&&outputType.itemType.kind==='number'&&typeof outputType.N==='number')){return context.error("Type ".concat(toString$1(outputType)," is not interpolatable."));}return new Interpolate(outputType,operator,interpolation,input,stops);}}]);}();function exponentialInterpolation(input,base,lowerValue,upperValue){var difference=upperValue-lowerValue;var progress=input-lowerValue;if(difference===0){return 0;}else if(base===1){return progress/difference;}else{return(Math.pow(base,progress)-1)/(Math.pow(base,difference)-1);}}var Coalesce=/*#__PURE__*/function(){function Coalesce(type,args){index_es_classCallCheck(this,Coalesce);this.type=type;this.args=args;}return index_es_createClass(Coalesce,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any +function evaluate(ctx){var result=null;var argCount=0;var firstImage;var _iterator40=index_es_createForOfIteratorHelper(this.args),_step40;try{for(_iterator40.s();!(_step40=_iterator40.n()).done;){var arg=_step40.value;argCount++;result=arg.evaluate(ctx);if(result&&result instanceof ResolvedImage&&!result.available){if(!firstImage){firstImage=result;}result=null;if(argCount===this.args.length){return firstImage;}}if(result!==null)break;}}catch(err){_iterator40.e(err);}finally{_iterator40.f();}return result;}},{key:"eachChild",value:function eachChild(fn){this.args.forEach(fn);}},{key:"outputDefined",value:function outputDefined(){return this.args.every(function(arg){return arg.outputDefined();});}},{key:"serialize",value:function serialize(){var serialized=['coalesce'];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<2){context.error('Expectected at least one argument.');return null;}var outputType=null;var expectedType=context.expectedType;if(expectedType&&expectedType.kind!=='value'){outputType=expectedType;}var parsedArgs=[];var _iterator41=index_es_createForOfIteratorHelper(args.slice(1)),_step41;try{for(_iterator41.s();!(_step41=_iterator41.n()).done;){var arg=_step41.value;var parsed=context.parse(arg,1+parsedArgs.length,outputType,void 0,{typeAnnotation:'omit'});if(!parsed)return null;outputType=outputType||parsed.type;parsedArgs.push(parsed);}}catch(err){_iterator41.e(err);}finally{_iterator41.f();}var needsAnnotation=expectedType&&parsedArgs.some(function(arg){return _checkSubtype(expectedType,arg.type);});return needsAnnotation?new Coalesce(ValueType,parsedArgs):new Coalesce(outputType,parsedArgs);}}]);}();var Let=/*#__PURE__*/function(){function Let(bindings,result){index_es_classCallCheck(this,Let);this.type=result.type;this.bindings=[].concat(bindings);this.result=result;}// eslint-disable-next-line @typescript-eslint/no-explicit-any +return index_es_createClass(Let,[{key:"evaluate",value:function evaluate(ctx){return this.result.evaluate(ctx);}},{key:"eachChild",value:function eachChild(fn){var _iterator42=index_es_createForOfIteratorHelper(this.bindings),_step42;try{for(_iterator42.s();!(_step42=_iterator42.n()).done;){var binding=_step42.value;fn(binding[1]);}}catch(err){_iterator42.e(err);}finally{_iterator42.f();}fn(this.result);}},{key:"outputDefined",value:function outputDefined(){return this.result.outputDefined();}},{key:"serialize",value:function serialize(){var serialized=['let'];var _iterator43=index_es_createForOfIteratorHelper(this.bindings),_step43;try{for(_iterator43.s();!(_step43=_iterator43.n()).done;){var _step43$value=index_es_slicedToArray(_step43.value,2),name=_step43$value[0],expr=_step43$value[1];serialized.push(name,expr.serialize());}}catch(err){_iterator43.e(err);}finally{_iterator43.f();}serialized.push(this.result.serialize());return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<4)return context.error("Expected at least 3 arguments, but found ".concat(args.length-1," instead."));var bindings=[];for(var i=1;i=array2.length){throw new RuntimeError("Array index out of bounds: index exceeds array size");}if(index!==Math.floor(index)){throw new RuntimeError("Array index must be an integer. Use at-interpolated for fractional indices");}return array2[index];}},{key:"eachChild",value:function eachChild(fn){fn(this.index);fn(this.input);}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){return['at',this.index.serialize(),this.input.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3)return context.error("Expected 2 arguments, but found ".concat(args.length-1," instead."));var index=context.parse(args[1],1,NumberType);var input=context.parse(args[2],2,array$1(context.expectedType||ValueType));if(!index||!input)return null;var t=input.type;return new At(t.itemType,index,input);}}]);}();var AtInterpolated=/*#__PURE__*/function(){function AtInterpolated(type,index,input){index_es_classCallCheck(this,AtInterpolated);this.type=type;this.index=index;this.input=input;}return index_es_createClass(AtInterpolated,[{key:"evaluate",value:function evaluate(ctx){var index=this.index.evaluate(ctx);var array2=this.input.evaluate(ctx);if(index<0){throw new RuntimeError("Array index out of bounds: ".concat(index," < 0."));}if(index>array2.length-1){throw new RuntimeError("Array index out of bounds: ".concat(index," > ").concat(array2.length-1,"."));}if(index===Math.floor(index)){return array2[index];}var lowerIndex=Math.floor(index);var upperIndex=Math.ceil(index);var lowerValue=array2[lowerIndex];var upperValue=array2[upperIndex];if(typeof lowerValue!=='number'||typeof upperValue!=='number'){throw new RuntimeError("Cannot interpolate between non-number values at index ".concat(index,"."));}var fraction=index-lowerIndex;return lowerValue*(1-fraction)+upperValue*fraction;}},{key:"eachChild",value:function eachChild(fn){fn(this.index);fn(this.input);}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){return['at-interpolated',this.index.serialize(),this.input.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3)return context.error("Expected 2 arguments, but found ".concat(args.length-1," instead."));var index=context.parse(args[1],1,NumberType);var input=context.parse(args[2],2,array$1(context.expectedType||ValueType));if(!index||!input)return null;var t=input.type;return new AtInterpolated(t.itemType,index,input);}}]);}();var In=/*#__PURE__*/function(){function In(needle,haystack){index_es_classCallCheck(this,In);this.type=BooleanType;this.needle=needle;this.haystack=haystack;}return index_es_createClass(In,[{key:"evaluate",value:function evaluate(ctx){var needle=this.needle.evaluate(ctx);var haystack=this.haystack.evaluate(ctx);if(haystack==null)return false;if(!isValidNativeType(needle,['boolean','string','number','null'])){throw new RuntimeError("Expected first argument to be of type boolean, string, number or null, but found ".concat(toString$1(typeOf(needle))," instead."));}if(!isValidNativeType(haystack,['string','array'])){throw new RuntimeError("Expected second argument to be of type array or string, but found ".concat(toString$1(typeOf(haystack))," instead."));}return haystack.indexOf(needle)>=0;}},{key:"eachChild",value:function eachChild(fn){fn(this.needle);fn(this.haystack);}},{key:"outputDefined",value:function outputDefined(){return true;}},{key:"serialize",value:function serialize(){return['in',this.needle.serialize(),this.haystack.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3){context.error("Expected 2 arguments, but found ".concat(args.length-1," instead."));return null;}var needle=context.parse(args[1],1,ValueType);var haystack=context.parse(args[2],2,ValueType);if(!needle||!haystack)return null;if(!isValidType(needle.type,[BooleanType,StringType,NumberType,NullType,ValueType])){context.error("Expected first argument to be of type boolean, string, number or null, but found ".concat(toString$1(needle.type)," instead"));return null;}return new In(needle,haystack);}}]);}();var IndexOf=/*#__PURE__*/function(){function IndexOf(needle,haystack,fromIndex){index_es_classCallCheck(this,IndexOf);this.type=NumberType;this.needle=needle;this.haystack=haystack;this.fromIndex=fromIndex;}return index_es_createClass(IndexOf,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any function evaluate(ctx){var needle=this.needle.evaluate(ctx);var haystack=this.haystack.evaluate(ctx);if(!isValidNativeType(needle,['boolean','string','number','null'])){throw new RuntimeError("Expected first argument to be of type boolean, string, number or null, but found ".concat(toString$1(typeOf(needle))," instead."));}if(!isValidNativeType(haystack,['string','array'])){throw new RuntimeError("Expected second argument to be of type array or string, but found ".concat(toString$1(typeOf(haystack))," instead."));}if(this.fromIndex){var fromIndex=this.fromIndex.evaluate(ctx);return haystack.indexOf(needle,fromIndex);}return haystack.indexOf(needle);}},{key:"eachChild",value:function eachChild(fn){fn(this.needle);fn(this.haystack);if(this.fromIndex){fn(this.fromIndex);}}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){if(this.fromIndex!=null&&this.fromIndex!==void 0){var fromIndex=this.fromIndex.serialize();return['index-of',this.needle.serialize(),this.haystack.serialize(),fromIndex];}return['index-of',this.needle.serialize(),this.haystack.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length<=2||args.length>=5){context.error("Expected 3 or 4 arguments, but found ".concat(args.length-1," instead."));return null;}var needle=context.parse(args[1],1,ValueType);var haystack=context.parse(args[2],2,ValueType);if(!needle||!haystack)return null;if(!isValidType(needle.type,[BooleanType,StringType,NumberType,NullType,ValueType])){context.error("Expected first argument to be of type boolean, string, number or null, but found ".concat(toString$1(needle.type)," instead"));return null;}if(args.length===4){var fromIndex=context.parse(args[3],3,NumberType);if(!fromIndex)return null;return new IndexOf(needle,haystack,fromIndex);}else{return new IndexOf(needle,haystack);}}}]);}();var Match=/*#__PURE__*/function(){function Match(inputType,outputType,input,cases,outputs,otherwise){index_es_classCallCheck(this,Match);this.inputType=inputType;this.type=outputType;this.input=input;this.cases=cases;this.outputs=outputs;this.otherwise=otherwise;}return index_es_createClass(Match,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any -function evaluate(ctx){var input=this.input.evaluate(ctx);var output=typeEquals(typeOf(input),this.inputType)&&this.outputs[this.cases[input]]||this.otherwise;return output.evaluate(ctx);}},{key:"eachChild",value:function eachChild(fn){fn(this.input);this.outputs.forEach(fn);fn(this.otherwise);}},{key:"outputDefined",value:function outputDefined(){return this.outputs.every(function(out){return out.outputDefined();})&&this.otherwise.outputDefined();}},{key:"serialize",value:function serialize(){var _this2=this;var serialized=['match',this.input.serialize()];var sortedLabels=Object.keys(this.cases).sort();var groupedByOutput=[];var outputLookup={};var _iterator42=index_es_createForOfIteratorHelper(sortedLabels),_step42;try{for(_iterator42.s();!(_step42=_iterator42.n()).done;){var label=_step42.value;var _outputIndex=outputLookup[this.cases[label]];if(_outputIndex===void 0){outputLookup[this.cases[label]]=groupedByOutput.length;groupedByOutput.push([this.cases[label],[label]]);}else{groupedByOutput[_outputIndex][1].push(label);}}}catch(err){_iterator42.e(err);}finally{_iterator42.f();}var coerceLabel=function coerceLabel(label){return _this2.inputType.kind==='number'?Number(label):label;};for(var _i0=0,_groupedByOutput=groupedByOutput;_i0<_groupedByOutput.length;_i0++){var _groupedByOutput$_i=index_es_slicedToArray(_groupedByOutput[_i0],2),outputIndex=_groupedByOutput$_i[0],labels=_groupedByOutput$_i[1];if(labels.length===1){serialized.push(coerceLabel(labels[0]));}else{serialized.push(labels.map(coerceLabel));}serialized.push(this.outputs[outputIndex].serialize());}serialized.push(this.otherwise.serialize());return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<5)return context.error("Expected at least 4 arguments, but found only ".concat(args.length-1,"."));if(args.length%2!==1)return context.error("Expected an even number of arguments.");var inputType;var outputType;if(context.expectedType&&context.expectedType.kind!=='value'){outputType=context.expectedType;}var cases={};var outputs=[];for(var i=2;iNumber.MAX_SAFE_INTEGER){return labelContext.error("Branch labels must be integers no larger than ".concat(Number.MAX_SAFE_INTEGER,"."));}else if(typeof label==='number'&&Math.floor(label)!==label){return labelContext.error("Numeric branch labels must be integer values.");}else if(!inputType){inputType=typeOf(label);}else if(labelContext.checkSubtype(inputType,typeOf(label))){return null;}if(typeof cases[String(label)]!=='undefined'){return labelContext.error('Branch labels must be unique.');}cases[String(label)]=outputs.length;}}catch(err){_iterator43.e(err);}finally{_iterator43.f();}var result=context.parse(value,i,outputType);if(!result)return null;outputType=outputType||result.type;outputs.push(result);}var input=context.parse(args[1],1,ValueType);if(!input)return null;var otherwise=context.parse(args.at(-1),args.length-1,outputType);if(!otherwise)return null;if(input.type.kind!=='value'&&context.concat(1).checkSubtype(inputType,input.type)){return null;}return new Match(inputType,outputType,input,cases,outputs,otherwise);}}]);}();var Case=/*#__PURE__*/function(){function Case(type,branches,otherwise){index_es_classCallCheck(this,Case);this.type=type;this.branches=branches;this.otherwise=otherwise;}return index_es_createClass(Case,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any -function evaluate(ctx){var _iterator44=index_es_createForOfIteratorHelper(this.branches),_step44;try{for(_iterator44.s();!(_step44=_iterator44.n()).done;){var _step44$value=index_es_slicedToArray(_step44.value,2),test=_step44$value[0],_expression6=_step44$value[1];if(test.evaluate(ctx)){return _expression6.evaluate(ctx);}}}catch(err){_iterator44.e(err);}finally{_iterator44.f();}return this.otherwise.evaluate(ctx);}},{key:"eachChild",value:function eachChild(fn){var _iterator45=index_es_createForOfIteratorHelper(this.branches),_step45;try{for(_iterator45.s();!(_step45=_iterator45.n()).done;){var _step45$value=index_es_slicedToArray(_step45.value,2),test=_step45$value[0],_expression7=_step45$value[1];fn(test);fn(_expression7);}}catch(err){_iterator45.e(err);}finally{_iterator45.f();}fn(this.otherwise);}},{key:"outputDefined",value:function outputDefined(){return this.branches.every(function(_ref4){var _ref5=index_es_slicedToArray(_ref4,2),_=_ref5[0],out=_ref5[1];return out.outputDefined();})&&this.otherwise.outputDefined();}},{key:"serialize",value:function serialize(){var serialized=['case'];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<4){context.error("Expected at least 3 arguments, but found only ".concat(args.length-1,"."));return null;}if(args.length%2!==0){context.error("Expected an odd number of arguments.");return null;}var outputType;if(context.expectedType&&context.expectedType.kind!=='value'){outputType=context.expectedType;}var branches=[];for(var i=1;iNumber.MAX_SAFE_INTEGER){return labelContext.error("Branch labels must be integers no larger than ".concat(Number.MAX_SAFE_INTEGER,"."));}else if(typeof label==='number'&&Math.floor(label)!==label){return labelContext.error("Numeric branch labels must be integer values.");}else if(!inputType){inputType=typeOf(label);}else if(labelContext.checkSubtype(inputType,typeOf(label))){return null;}if(typeof cases[String(label)]!=='undefined'){return labelContext.error('Branch labels must be unique.');}cases[String(label)]=outputs.length;}}catch(err){_iterator45.e(err);}finally{_iterator45.f();}var result=context.parse(value,i,outputType);if(!result)return null;outputType=outputType||result.type;outputs.push(result);}var input=context.parse(args[1],1,ValueType);if(!input)return null;var otherwise=context.parse(args[args.length-1],args.length-1,outputType);if(!otherwise)return null;if(input.type.kind!=='value'&&context.concat(1).checkSubtype(inputType,input.type)){return null;}return new Match(inputType,outputType,input,cases,outputs,otherwise);}}]);}();var Case=/*#__PURE__*/function(){function Case(type,branches,otherwise){index_es_classCallCheck(this,Case);this.type=type;this.branches=branches;this.otherwise=otherwise;}return index_es_createClass(Case,[{key:"evaluate",value:// eslint-disable-next-line @typescript-eslint/no-explicit-any +function evaluate(ctx){var _iterator46=index_es_createForOfIteratorHelper(this.branches),_step46;try{for(_iterator46.s();!(_step46=_iterator46.n()).done;){var _step46$value=index_es_slicedToArray(_step46.value,2),test=_step46$value[0],_expression6=_step46$value[1];if(test.evaluate(ctx)){return _expression6.evaluate(ctx);}}}catch(err){_iterator46.e(err);}finally{_iterator46.f();}return this.otherwise.evaluate(ctx);}},{key:"eachChild",value:function eachChild(fn){var _iterator47=index_es_createForOfIteratorHelper(this.branches),_step47;try{for(_iterator47.s();!(_step47=_iterator47.n()).done;){var _step47$value=index_es_slicedToArray(_step47.value,2),test=_step47$value[0],_expression7=_step47$value[1];fn(test);fn(_expression7);}}catch(err){_iterator47.e(err);}finally{_iterator47.f();}fn(this.otherwise);}},{key:"outputDefined",value:function outputDefined(){return this.branches.every(function(_ref5){var _ref6=index_es_slicedToArray(_ref5,2),_=_ref6[0],out=_ref6[1];return out.outputDefined();})&&this.otherwise.outputDefined();}},{key:"serialize",value:function serialize(){var serialized=['case'];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length<4){context.error("Expected at least 3 arguments, but found only ".concat(args.length-1,"."));return null;}if(args.length%2!==0){context.error("Expected an odd number of arguments.");return null;}var outputType;if(context.expectedType&&context.expectedType.kind!=='value'){outputType=context.expectedType;}var branches=[];for(var i=1;i=5){context.error("Expected 3 or 4 arguments, but found ".concat(args.length-1," instead."));return null;}var input=context.parse(args[1],1,ValueType);var beginIndex=context.parse(args[2],2,NumberType);if(!input||!beginIndex)return null;if(!isValidType(input.type,[array$1(ValueType),StringType,ValueType])){context.error("Expected first argument to be of type array or string, but found ".concat(toString$1(input.type)," instead"));return null;}if(args.length===4){var endIndex=context.parse(args[3],3,NumberType);if(!endIndex)return null;return new Slice(input.type,input,beginIndex,endIndex);}else{return new Slice(input.type,input,beginIndex);}}}]);}();var Split=/*#__PURE__*/function(){function Split(str,delimiter){index_es_classCallCheck(this,Split);this.type=array$1(StringType);this.str=str;this.delimiter=delimiter;}return index_es_createClass(Split,[{key:"evaluate",value:function evaluate(ctx){var str=this.str.evaluate(ctx);var delimiter=this.delimiter.evaluate(ctx);return str.split(delimiter);}},{key:"eachChild",value:function eachChild(fn){fn(this.str);fn(this.delimiter);}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){return['split',this.str.serialize(),this.delimiter.serialize()];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3){return context.error("Expected 2 arguments, but found ".concat(args.length-1," instead."));}var str=context.parse(args[1],1,StringType);var delimiter=context.parse(args[2],2,StringType);if(!str||!delimiter)return;return new Split(str,delimiter);}}]);}();function isComparableType(op,type){if(op==='=='||op==='!='){return type.kind==='boolean'||type.kind==='string'||type.kind==='number'||type.kind==='null'||type.kind==='value';}else{return type.kind==='string'||type.kind==='number'||type.kind==='value';}}function eq(ctx,a,b){return a===b;}function neq(ctx,a,b){return a!==b;}function lt(ctx,a,b){return ab;}function lteq(ctx,a,b){return a<=b;}function gteq(ctx,a,b){return a>=b;}function eqCollate(ctx,a,b,c){return c.compare(a,b)===0;}function neqCollate(ctx,a,b,c){return!eqCollate(ctx,a,b,c);}function ltCollate(ctx,a,b,c){return c.compare(a,b)<0;}function gtCollate(ctx,a,b,c){return c.compare(a,b)>0;}function lteqCollate(ctx,a,b,c){return c.compare(a,b)<=0;}function gteqCollate(ctx,a,b,c){return c.compare(a,b)>=0;}function makeComparison(op,compareBasic,compareWithCollator){var isOrderComparison=op!=='=='&&op!=='!=';return/*#__PURE__*/function(){function Comparison(lhs,rhs,collator){index_es_classCallCheck(this,Comparison);this.type=BooleanType;this.lhs=lhs;this.rhs=rhs;this.collator=collator;this.hasUntypedArgument=lhs.type.kind==='value'||rhs.type.kind==='value';}return index_es_createClass(Comparison,[{key:"evaluate",value:function evaluate(ctx){var lhs=this.lhs.evaluate(ctx);var rhs=this.rhs.evaluate(ctx);if(isOrderComparison&&this.hasUntypedArgument){var lt2=typeOf(lhs);var rt=typeOf(rhs);if(lt2.kind!==rt.kind||!(lt2.kind==='string'||lt2.kind==='number')){throw new RuntimeError("Expected arguments for \"".concat(op,"\" to be (string, string) or (number, number), but found (").concat(lt2.kind,", ").concat(rt.kind,") instead."));}}if(this.collator&&!isOrderComparison&&this.hasUntypedArgument){var _lt=typeOf(lhs);var _rt=typeOf(rhs);if(_lt.kind!=='string'||_rt.kind!=='string'){return compareBasic(ctx,lhs,rhs);}}return this.collator?compareWithCollator(ctx,lhs,rhs,this.collator.evaluate(ctx)):compareBasic(ctx,lhs,rhs);}},{key:"eachChild",value:function eachChild(fn){fn(this.lhs);fn(this.rhs);if(this.collator){fn(this.collator);}}},{key:"outputDefined",value:function outputDefined(){return true;}},{key:"serialize",value:function serialize(){var serialized=[op];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length!==3&&args.length!==4)return context.error("Expected two or three arguments.");var op2=args[0];var lhs=context.parse(args[1],1,ValueType);if(!lhs)return null;if(!isComparableType(op2,lhs.type)){return context.concat(1).error("\"".concat(op2,"\" comparisons are not supported for type '").concat(toString$1(lhs.type),"'."));}var rhs=context.parse(args[2],2,ValueType);if(!rhs)return null;if(!isComparableType(op2,rhs.type)){return context.concat(2).error("\"".concat(op2,"\" comparisons are not supported for type '").concat(toString$1(rhs.type),"'."));}if(lhs.type.kind!==rhs.type.kind&&lhs.type.kind!=='value'&&rhs.type.kind!=='value'){return context.error("Cannot compare types '".concat(toString$1(lhs.type),"' and '").concat(toString$1(rhs.type),"'."));}if(isOrderComparison){if(lhs.type.kind==='value'&&rhs.type.kind!=='value'){lhs=new Assertion(rhs.type,[lhs]);}else if(lhs.type.kind!=='value'&&rhs.type.kind==='value'){rhs=new Assertion(lhs.type,[rhs]);}}var collator=null;if(args.length===4){if(lhs.type.kind!=='string'&&rhs.type.kind!=='string'&&lhs.type.kind!=='value'&&rhs.type.kind!=='value'){return context.error("Cannot use collator to compare non-string types.");}collator=context.parse(args[3],3,CollatorType);if(!collator)return null;}return new Comparison(lhs,rhs,collator);}}]);}();}var Equals=makeComparison('==',eq,eqCollate);var NotEquals=makeComparison('!=',neq,neqCollate);var LessThan=makeComparison('<',lt,ltCollate);var GreaterThan=makeComparison('>',gt,gtCollate);var LessThanOrEqual=makeComparison('<=',lteq,lteqCollate);var GreaterThanOrEqual=makeComparison('>=',gteq,gteqCollate);var NumberFormat=/*#__PURE__*/function(){// Default 3 function NumberFormat(number,locale,currency,unit,minFractionDigits,maxFractionDigits){index_es_classCallCheck(this,NumberFormat);this.type=StringType;this.number=number;this.locale=locale;this.currency=currency;this.unit=unit;this.minFractionDigits=minFractionDigits;this.maxFractionDigits=maxFractionDigits;}return index_es_createClass(NumberFormat,[{key:"evaluate",value:function evaluate(ctx){return new Intl.NumberFormat(this.locale?this.locale.evaluate(ctx):[],{style:this.currency&&'currency'||this.unit&&'unit'||'decimal',// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment currency:this.currency?this.currency.evaluate(ctx):void 0,// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment @@ -84956,62 +85033,62 @@ unit:this.unit?this.unit.evaluate(ctx):void 0,// eslint-disable-next-line @types minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(ctx):void 0,// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(ctx):void 0// eslint-disable-next-line @typescript-eslint/no-unsafe-argument }).format(this.number.evaluate(ctx));}},{key:"eachChild",value:function eachChild(fn){fn(this.number);if(this.locale){fn(this.locale);}if(this.currency){fn(this.currency);}if(this.unit){fn(this.unit);}if(this.minFractionDigits){fn(this.minFractionDigits);}if(this.maxFractionDigits){fn(this.maxFractionDigits);}}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){var options={};if(this.locale){options['locale']=this.locale.serialize();}if(this.currency){options['currency']=this.currency.serialize();}if(this.unit){options['unit']=this.unit.serialize();}if(this.minFractionDigits){options['min-fraction-digits']=this.minFractionDigits.serialize();}if(this.maxFractionDigits){options['max-fraction-digits']=this.maxFractionDigits.serialize();}return['number-format',this.number.serialize(),options];}}],[{key:"parse",value:function parse(args,context){if(args.length!==3)return context.error("Expected two arguments.");var number=context.parse(args[1],1,NumberType);if(!number)return null;var options=args[2];if(index_es_typeof(options)!=='object'||Array.isArray(options))return context.error("NumberFormat options argument must be an object.");var locale=null;if(options['locale']){locale=context.parseObjectValue(options['locale'],2,'locale',StringType);if(!locale)return null;}var currency=null;if(options['currency']){currency=context.parseObjectValue(options['currency'],2,'currency',StringType);if(!currency)return null;}var unit=null;if(options['unit']){unit=context.parseObjectValue(options['unit'],2,'unit',StringType);if(!unit)return null;}var minFractionDigits=null;if(options['min-fraction-digits']){minFractionDigits=context.parseObjectValue(options['min-fraction-digits'],2,'min-fraction-digits',NumberType);if(!minFractionDigits)return null;}var maxFractionDigits=null;if(options['max-fraction-digits']){maxFractionDigits=context.parseObjectValue(options['max-fraction-digits'],2,'max-fraction-digits',NumberType);if(!maxFractionDigits)return null;}return new NumberFormat(number,locale,currency,unit,minFractionDigits,maxFractionDigits);}}]);}();var Length=/*#__PURE__*/function(){function Length(input){index_es_classCallCheck(this,Length);this.type=NumberType;this.input=input;}return index_es_createClass(Length,[{key:"evaluate",value:function evaluate(ctx){var input=this.input.evaluate(ctx);if(typeof input==='string'){return input.length;}else if(Array.isArray(input)){return input.length;}else{throw new RuntimeError("Expected value to be of type string or array, but found ".concat(toString$1(typeOf(input))," instead."));}}},{key:"eachChild",value:function eachChild(fn){fn(this.input);}},{key:"outputDefined",value:function outputDefined(){return false;}},{key:"serialize",value:function serialize(){var serialized=['length'];this.eachChild(function(child){serialized.push(child.serialize());});return serialized;}}],[{key:"parse",value:function parse(args,context){if(args.length!==2){context.error("Expected 1 argument, but found ".concat(args.length-1," instead."));return null;}var input=context.parse(args[1],1);if(!input)return null;if(input.type.kind!=='array'&&input.type.kind!=='string'&&input.type.kind!=='value'){context.error("Expected argument of type string or array, but found ".concat(toString$1(input.type)," instead."));return null;}return new Length(input);}}]);}();function mulberry32(a){return function(){a|=0;a=a+1831565813|0;var t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)/4294967296;};}var expressions={// special forms -'==':Equals,'!=':NotEquals,'>':GreaterThan,'<':LessThan,'>=':GreaterThanOrEqual,'<=':LessThanOrEqual,'array':Assertion,'at':At,'at-interpolated':AtInterpolated,'boolean':Assertion,'case':Case,'coalesce':Coalesce,'collator':CollatorExpression,'format':FormatExpression,'image':ImageExpression,'in':In,'index-of':IndexOf,'interpolate':Interpolate,'interpolate-hcl':Interpolate,'interpolate-lab':Interpolate,'length':Length,'let':Let,'literal':Literal,'match':Match,'number':Assertion,'number-format':NumberFormat,'object':Assertion,'slice':Slice,'step':Step,'string':Assertion,'to-boolean':Coercion,'to-color':Coercion,'to-number':Coercion,'to-string':Coercion,'var':Var,'within':Within,'distance':Distance,'config':index_es_Config,'split':Split};function rgba(ctx,_ref6){var _ref7=index_es_slicedToArray(_ref6,4),r=_ref7[0],g=_ref7[1],b=_ref7[2],a=_ref7[3];r=r.evaluate(ctx);g=g.evaluate(ctx);b=b.evaluate(ctx);var alpha=a?a.evaluate(ctx):1;var error=validateRGBA(r,g,b,alpha);if(error)throw new RuntimeError(error);return new index_es_Color(r/255,g/255,b/255,alpha);}function hsla(ctx,_ref8){var _ref9=index_es_slicedToArray(_ref8,4),h=_ref9[0],s=_ref9[1],l=_ref9[2],a=_ref9[3];h=h.evaluate(ctx);s=s.evaluate(ctx);l=l.evaluate(ctx);var alpha=a?a.evaluate(ctx):1;var error=validateHSLA(h,s,l,alpha);if(error)throw new RuntimeError(error);var colorFunction="hsla(".concat(h,", ").concat(s,"%, ").concat(l,"%, ").concat(alpha,")");var color=index_es_Color.parse(colorFunction);if(!color)throw new RuntimeError("Failed to parse HSLA color: ".concat(colorFunction));return color;}function has(key,obj){return key in obj;}function index_es_get(key,obj){var v=obj[key];return typeof v==='undefined'?null:v;}function binarySearch(v,a,i,j){while(i<=j){var m=i+j>>1;if(a[m]===v)return true;if(a[m]>v)j=m-1;else i=m+1;}return false;}function varargs(type){return{type:type};}function hashString(str){var hash=0;if(str.length===0){return hash;}for(var i=0;i0;if(!hasActiveFloors){return false;}if(args.length===0){return true;}var floorIds=ctx.globals.activeFloors;return args.some(function(arg){var value=arg.evaluate(ctx);return floorIds.has(value);});}],'id':[ValueType,[],function(ctx){return ctx.id();}],'zoom':[NumberType,[],function(ctx){return ctx.globals.zoom;}],'pitch':[NumberType,[],function(ctx){return ctx.globals.pitch||0;}],'distance-from-center':[NumberType,[],function(ctx){return ctx.distanceFromCenter();}],'measure-light':[NumberType,[StringType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref26){var _ref27=index_es_slicedToArray(_ref26,1),s=_ref27[0];return ctx.measureLight(s.evaluate(ctx));}],'heatmap-density':[NumberType,[],function(ctx){return ctx.globals.heatmapDensity||0;}],'line-progress':[NumberType,[],function(ctx){return ctx.globals.lineProgress||0;}],'raster-value':[NumberType,[],function(ctx){return ctx.globals.rasterValue||0;}],'raster-particle-speed':[NumberType,[],function(ctx){return ctx.globals.rasterParticleSpeed||0;}],'sky-radial-progress':[NumberType,[],function(ctx){return ctx.globals.skyRadialProgress||0;}],'accumulated':[ValueType,[],function(ctx){return ctx.globals.accumulated===void 0?null:ctx.globals.accumulated;}],'+':[NumberType,varargs(NumberType),function(ctx,args){var result=0;var _iterator46=index_es_createForOfIteratorHelper(args),_step46;try{for(_iterator46.s();!(_step46=_iterator46.n()).done;){var arg=_step46.value;result+=arg.evaluate(ctx);}}catch(err){_iterator46.e(err);}finally{_iterator46.f();}return result;}],'*':[NumberType,varargs(NumberType),function(ctx,args){var result=1;var _iterator47=index_es_createForOfIteratorHelper(args),_step47;try{for(_iterator47.s();!(_step47=_iterator47.n()).done;){var arg=_step47.value;result*=arg.evaluate(ctx);}}catch(err){_iterator47.e(err);}finally{_iterator47.f();}return result;}],'-':{type:NumberType,overloads:[[[NumberType,NumberType],function(ctx,_ref28){var _ref29=index_es_slicedToArray(_ref28,2),a=_ref29[0],b=_ref29[1];return a.evaluate(ctx)-b.evaluate(ctx);}],[[NumberType],function(ctx,_ref30){var _ref31=index_es_slicedToArray(_ref30,1),a=_ref31[0];return-a.evaluate(ctx);}]]},'/':[NumberType,[NumberType,NumberType],function(ctx,_ref32){var _ref33=index_es_slicedToArray(_ref32,2),a=_ref33[0],b=_ref33[1];return a.evaluate(ctx)/b.evaluate(ctx);}],'%':[NumberType,[NumberType,NumberType],function(ctx,_ref34){var _ref35=index_es_slicedToArray(_ref34,2),a=_ref35[0],b=_ref35[1];return a.evaluate(ctx)%b.evaluate(ctx);}],'ln2':[NumberType,[],function(){return Math.LN2;}],'pi':[NumberType,[],function(){return Math.PI;}],'e':[NumberType,[],function(){return Math.E;}],'^':[NumberType,[NumberType,NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref36){var _ref37=index_es_slicedToArray(_ref36,2),b=_ref37[0],e=_ref37[1];return Math.pow(b.evaluate(ctx),e.evaluate(ctx));}],'sqrt':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref38){var _ref39=index_es_slicedToArray(_ref38,1),x=_ref39[0];return Math.sqrt(x.evaluate(ctx));}],'log10':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref40){var _ref41=index_es_slicedToArray(_ref40,1),n=_ref41[0];return Math.log(n.evaluate(ctx))/Math.LN10;}],'ln':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref42){var _ref43=index_es_slicedToArray(_ref42,1),n=_ref43[0];return Math.log(n.evaluate(ctx));}],'log2':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref44){var _ref45=index_es_slicedToArray(_ref44,1),n=_ref45[0];return Math.log2(n.evaluate(ctx));}],'sin':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref46){var _ref47=index_es_slicedToArray(_ref46,1),n=_ref47[0];return Math.sin(n.evaluate(ctx));}],'cos':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref48){var _ref49=index_es_slicedToArray(_ref48,1),n=_ref49[0];return Math.cos(n.evaluate(ctx));}],'tan':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref50){var _ref51=index_es_slicedToArray(_ref50,1),n=_ref51[0];return Math.tan(n.evaluate(ctx));}],'asin':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref52){var _ref53=index_es_slicedToArray(_ref52,1),n=_ref53[0];return Math.asin(n.evaluate(ctx));}],'acos':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref54){var _ref55=index_es_slicedToArray(_ref54,1),n=_ref55[0];return Math.acos(n.evaluate(ctx));}],'atan':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref56){var _ref57=index_es_slicedToArray(_ref56,1),n=_ref57[0];return Math.atan(n.evaluate(ctx));}],'min':[NumberType,varargs(NumberType),// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument +'==':Equals,'!=':NotEquals,'>':GreaterThan,'<':LessThan,'>=':GreaterThanOrEqual,'<=':LessThanOrEqual,'array':Assertion,'at':At,'at-interpolated':AtInterpolated,'boolean':Assertion,'case':Case,'coalesce':Coalesce,'collator':CollatorExpression,'format':FormatExpression,'image':ImageExpression,'in':In,'index-of':IndexOf,'interpolate':Interpolate,'interpolate-hcl':Interpolate,'interpolate-lab':Interpolate,'length':Length,'let':Let,'literal':Literal,'match':Match,'number':Assertion,'number-format':NumberFormat,'object':Assertion,'slice':Slice,'step':Step,'string':Assertion,'to-boolean':Coercion,'to-color':Coercion,'to-number':Coercion,'to-string':Coercion,'var':Var,'within':Within,'distance':Distance,'config':index_es_Config,'split':Split};function rgba(ctx,_ref7){var _ref8=index_es_slicedToArray(_ref7,4),r=_ref8[0],g=_ref8[1],b=_ref8[2],a=_ref8[3];r=r.evaluate(ctx);g=g.evaluate(ctx);b=b.evaluate(ctx);var alpha=a?a.evaluate(ctx):1;var error=validateRGBA(r,g,b,alpha);if(error)throw new RuntimeError(error);return new index_es_Color(r/255,g/255,b/255,alpha);}function hsla(ctx,_ref9){var _ref10=index_es_slicedToArray(_ref9,4),h=_ref10[0],s=_ref10[1],l=_ref10[2],a=_ref10[3];h=h.evaluate(ctx);s=s.evaluate(ctx);l=l.evaluate(ctx);var alpha=a?a.evaluate(ctx):1;var error=validateHSLA(h,s,l,alpha);if(error)throw new RuntimeError(error);var colorFunction="hsla(".concat(h,", ").concat(s,"%, ").concat(l,"%, ").concat(alpha,")");var color=index_es_Color.parse(colorFunction);if(!color)throw new RuntimeError("Failed to parse HSLA color: ".concat(colorFunction));return color;}function has(key,obj){return key in obj;}function index_es_get(key,obj){var v=obj[key];return typeof v==='undefined'?null:v;}function binarySearch(v,a,i,j){while(i<=j){var m=i+j>>1;if(a[m]===v)return true;if(a[m]>v)j=m-1;else i=m+1;}return false;}function varargs(type){return{type:type};}function hashString(str){var hash=0;if(str.length===0){return hash;}for(var i=0;i0;if(!hasActiveFloors){return false;}if(args.length===0){return true;}var floorIds=ctx.globals.activeFloors;return args.some(function(arg){var value=arg.evaluate(ctx);return floorIds.has(value);});}],'id':[ValueType,[],function(ctx){return ctx.id();}],'zoom':[NumberType,[],function(ctx){return ctx.globals.zoom;}],'pitch':[NumberType,[],function(ctx){return ctx.globals.pitch||0;}],'distance-from-center':[NumberType,[],function(ctx){return ctx.distanceFromCenter();}],'measure-light':[NumberType,[StringType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref29){var _ref30=index_es_slicedToArray(_ref29,1),s=_ref30[0];return ctx.measureLight(s.evaluate(ctx));}],'heatmap-density':[NumberType,[],function(ctx){return ctx.globals.heatmapDensity||0;}],'line-progress':[NumberType,[],function(ctx){return ctx.globals.lineProgress||0;}],'raster-value':[NumberType,[],function(ctx){return ctx.globals.rasterValue||0;}],'raster-particle-speed':[NumberType,[],function(ctx){return ctx.globals.rasterParticleSpeed||0;}],'sky-radial-progress':[NumberType,[],function(ctx){return ctx.globals.skyRadialProgress||0;}],'accumulated':[ValueType,[],function(ctx){return ctx.globals.accumulated===void 0?null:ctx.globals.accumulated;}],'+':[NumberType,varargs(NumberType),function(ctx,args){var result=0;var _iterator48=index_es_createForOfIteratorHelper(args),_step48;try{for(_iterator48.s();!(_step48=_iterator48.n()).done;){var arg=_step48.value;result+=arg.evaluate(ctx);}}catch(err){_iterator48.e(err);}finally{_iterator48.f();}return result;}],'*':[NumberType,varargs(NumberType),function(ctx,args){var result=1;var _iterator49=index_es_createForOfIteratorHelper(args),_step49;try{for(_iterator49.s();!(_step49=_iterator49.n()).done;){var arg=_step49.value;result*=arg.evaluate(ctx);}}catch(err){_iterator49.e(err);}finally{_iterator49.f();}return result;}],'-':{type:NumberType,overloads:[[[NumberType,NumberType],function(ctx,_ref31){var _ref32=index_es_slicedToArray(_ref31,2),a=_ref32[0],b=_ref32[1];return a.evaluate(ctx)-b.evaluate(ctx);}],[[NumberType],function(ctx,_ref33){var _ref34=index_es_slicedToArray(_ref33,1),a=_ref34[0];return-a.evaluate(ctx);}]]},'/':[NumberType,[NumberType,NumberType],function(ctx,_ref35){var _ref36=index_es_slicedToArray(_ref35,2),a=_ref36[0],b=_ref36[1];return a.evaluate(ctx)/b.evaluate(ctx);}],'%':[NumberType,[NumberType,NumberType],function(ctx,_ref37){var _ref38=index_es_slicedToArray(_ref37,2),a=_ref38[0],b=_ref38[1];return a.evaluate(ctx)%b.evaluate(ctx);}],'ln2':[NumberType,[],function(){return Math.LN2;}],'pi':[NumberType,[],function(){return Math.PI;}],'e':[NumberType,[],function(){return Math.E;}],'^':[NumberType,[NumberType,NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref39){var _ref40=index_es_slicedToArray(_ref39,2),b=_ref40[0],e=_ref40[1];return Math.pow(b.evaluate(ctx),e.evaluate(ctx));}],'sqrt':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref41){var _ref42=index_es_slicedToArray(_ref41,1),x=_ref42[0];return Math.sqrt(x.evaluate(ctx));}],'log10':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref43){var _ref44=index_es_slicedToArray(_ref43,1),n=_ref44[0];return Math.log(n.evaluate(ctx))/Math.LN10;}],'ln':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref45){var _ref46=index_es_slicedToArray(_ref45,1),n=_ref46[0];return Math.log(n.evaluate(ctx));}],'log2':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref47){var _ref48=index_es_slicedToArray(_ref47,1),n=_ref48[0];return Math.log2(n.evaluate(ctx));}],'sin':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref49){var _ref50=index_es_slicedToArray(_ref49,1),n=_ref50[0];return Math.sin(n.evaluate(ctx));}],'cos':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref51){var _ref52=index_es_slicedToArray(_ref51,1),n=_ref52[0];return Math.cos(n.evaluate(ctx));}],'tan':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref53){var _ref54=index_es_slicedToArray(_ref53,1),n=_ref54[0];return Math.tan(n.evaluate(ctx));}],'asin':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref55){var _ref56=index_es_slicedToArray(_ref55,1),n=_ref56[0];return Math.asin(n.evaluate(ctx));}],'acos':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref57){var _ref58=index_es_slicedToArray(_ref57,1),n=_ref58[0];return Math.acos(n.evaluate(ctx));}],'atan':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref59){var _ref60=index_es_slicedToArray(_ref59,1),n=_ref60[0];return Math.atan(n.evaluate(ctx));}],'min':[NumberType,varargs(NumberType),// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument function(ctx,args){return Math.min.apply(Math,index_es_toConsumableArray(args.map(function(arg){return arg.evaluate(ctx);})));}],'max':[NumberType,varargs(NumberType),// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-argument function(ctx,args){return Math.max.apply(Math,index_es_toConsumableArray(args.map(function(arg){return arg.evaluate(ctx);})));}],'abs':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref58){var _ref59=index_es_slicedToArray(_ref58,1),n=_ref59[0];return Math.abs(n.evaluate(ctx));}],'round':[NumberType,[NumberType],function(ctx,_ref60){var _ref61=index_es_slicedToArray(_ref60,1),n=_ref61[0];var v=n.evaluate(ctx);return v<0?-Math.round(-v):Math.round(v);}],'floor':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref62){var _ref63=index_es_slicedToArray(_ref62,1),n=_ref63[0];return Math.floor(n.evaluate(ctx));}],'ceil':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -function(ctx,_ref64){var _ref65=index_es_slicedToArray(_ref64,1),n=_ref65[0];return Math.ceil(n.evaluate(ctx));}],'filter-==':[BooleanType,[StringType,ValueType],// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -function(ctx,_ref66){var _ref67=index_es_slicedToArray(_ref66,2),k=_ref67[0],v=_ref67[1];return ctx.properties()[k.value]===v.value;}],'filter-id-==':[BooleanType,[ValueType],function(ctx,_ref68){var _ref69=index_es_slicedToArray(_ref68,1),v=_ref69[0];return ctx.id()===v.value;}],'filter-type-==':[BooleanType,[StringType],function(ctx,_ref70){var _ref71=index_es_slicedToArray(_ref70,1),v=_ref71[0];return ctx.geometryType()===v.value;}],'filter-<':[BooleanType,[StringType,ValueType],function(ctx,_ref72){var _ref73=index_es_slicedToArray(_ref72,2),k=_ref73[0],v=_ref73[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a':[BooleanType,[StringType,ValueType],function(ctx,_ref76){var _ref77=index_es_slicedToArray(_ref76,2),k=_ref77[0],v=_ref77[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>b;}],'filter-id->':[BooleanType,[ValueType],function(ctx,_ref78){var _ref79=index_es_slicedToArray(_ref78,1),v=_ref79[0];var a=ctx.id();var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>b;}],'filter-<=':[BooleanType,[StringType,ValueType],function(ctx,_ref80){var _ref81=index_es_slicedToArray(_ref80,2),k=_ref81[0],v=_ref81[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a<=b;}],'filter-id-<=':[BooleanType,[ValueType],function(ctx,_ref82){var _ref83=index_es_slicedToArray(_ref82,1),v=_ref83[0];var a=ctx.id();var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a<=b;}],'filter->=':[BooleanType,[StringType,ValueType],function(ctx,_ref84){var _ref85=index_es_slicedToArray(_ref84,2),k=_ref85[0],v=_ref85[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>=b;}],'filter-id->=':[BooleanType,[ValueType],function(ctx,_ref86){var _ref87=index_es_slicedToArray(_ref86,1),v=_ref87[0];var a=ctx.id();var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>=b;}],'filter-has':[BooleanType,[ValueType],function(ctx,_ref88){var _ref89=index_es_slicedToArray(_ref88,1),k=_ref89[0];return k.value in ctx.properties();}],'filter-has-id':[BooleanType,[],function(ctx){return ctx.id()!==null&&ctx.id()!==void 0;}],'filter-type-in':[BooleanType,[array$1(StringType)],// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return -function(ctx,_ref90){var _ref91=index_es_slicedToArray(_ref90,1),v=_ref91[0];return v.value.includes(ctx.geometryType());}],'filter-id-in':[BooleanType,[array$1(ValueType)],// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return -function(ctx,_ref92){var _ref93=index_es_slicedToArray(_ref92,1),v=_ref93[0];return v.value.includes(ctx.id());}],'filter-in-small':[BooleanType,[StringType,array$1(ValueType)],// assumes v is an array literal -// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return -function(ctx,_ref94){var _ref95=index_es_slicedToArray(_ref94,2),k=_ref95[0],v=_ref95[1];return v.value.includes(ctx.properties()[k.value]);}],'filter-in-large':[BooleanType,[StringType,array$1(ValueType)],// assumes v is a array literal with values sorted in ascending order and of a single type +function(ctx,_ref61){var _ref62=index_es_slicedToArray(_ref61,1),n=_ref62[0];return Math.abs(n.evaluate(ctx));}],'round':[NumberType,[NumberType],function(ctx,_ref63){var _ref64=index_es_slicedToArray(_ref63,1),n=_ref64[0];var v=n.evaluate(ctx);return v<0?-Math.round(-v):Math.round(v);}],'floor':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref65){var _ref66=index_es_slicedToArray(_ref65,1),n=_ref66[0];return Math.floor(n.evaluate(ctx));}],'ceil':[NumberType,[NumberType],// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref67){var _ref68=index_es_slicedToArray(_ref67,1),n=_ref68[0];return Math.ceil(n.evaluate(ctx));}],'filter-==':[BooleanType,[StringType,ValueType],// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access +function(ctx,_ref69){var _ref70=index_es_slicedToArray(_ref69,2),k=_ref70[0],v=_ref70[1];return ctx.properties()[k.value]===v.value;}],'filter-id-==':[BooleanType,[ValueType],function(ctx,_ref71){var _ref72=index_es_slicedToArray(_ref71,1),v=_ref72[0];return ctx.id()===v.value;}],'filter-type-==':[BooleanType,[StringType],function(ctx,_ref73){var _ref74=index_es_slicedToArray(_ref73,1),v=_ref74[0];return ctx.geometryType()===v.value;}],'filter-<':[BooleanType,[StringType,ValueType],function(ctx,_ref75){var _ref76=index_es_slicedToArray(_ref75,2),k=_ref76[0],v=_ref76[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a':[BooleanType,[StringType,ValueType],function(ctx,_ref79){var _ref80=index_es_slicedToArray(_ref79,2),k=_ref80[0],v=_ref80[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>b;}],'filter-id->':[BooleanType,[ValueType],function(ctx,_ref81){var _ref82=index_es_slicedToArray(_ref81,1),v=_ref82[0];var a=ctx.id();var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>b;}],'filter-<=':[BooleanType,[StringType,ValueType],function(ctx,_ref83){var _ref84=index_es_slicedToArray(_ref83,2),k=_ref84[0],v=_ref84[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a<=b;}],'filter-id-<=':[BooleanType,[ValueType],function(ctx,_ref85){var _ref86=index_es_slicedToArray(_ref85,1),v=_ref86[0];var a=ctx.id();var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a<=b;}],'filter->=':[BooleanType,[StringType,ValueType],function(ctx,_ref87){var _ref88=index_es_slicedToArray(_ref87,2),k=_ref88[0],v=_ref88[1];var a=ctx.properties()[k.value];var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>=b;}],'filter-id->=':[BooleanType,[ValueType],function(ctx,_ref89){var _ref90=index_es_slicedToArray(_ref89,1),v=_ref90[0];var a=ctx.id();var b=v.value;return index_es_typeof(a)===index_es_typeof(b)&&a>=b;}],'filter-has':[BooleanType,[ValueType],function(ctx,_ref91){var _ref92=index_es_slicedToArray(_ref91,1),k=_ref92[0];return k.value in ctx.properties();}],'filter-has-id':[BooleanType,[],function(ctx){return ctx.id()!==null&&ctx.id()!==void 0;}],'filter-type-in':[BooleanType,[array$1(StringType)],// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access +function(ctx,_ref93){var _ref94=index_es_slicedToArray(_ref93,1),v=_ref94[0];return v.value.indexOf(ctx.geometryType())>=0;}],'filter-id-in':[BooleanType,[array$1(ValueType)],// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access +function(ctx,_ref95){var _ref96=index_es_slicedToArray(_ref95,1),v=_ref96[0];return v.value.indexOf(ctx.id())>=0;}],'filter-in-small':[BooleanType,[StringType,array$1(ValueType)],// assumes v is an array literal +// eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access +function(ctx,_ref97){var _ref98=index_es_slicedToArray(_ref97,2),k=_ref98[0],v=_ref98[1];return v.value.indexOf(ctx.properties()[k.value])>=0;}],'filter-in-large':[BooleanType,[StringType,array$1(ValueType)],// assumes v is a array literal with values sorted in ascending order and of a single type // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-argument -function(ctx,_ref96){var _ref97=index_es_slicedToArray(_ref96,2),k=_ref97[0],v=_ref97[1];return binarySearch(ctx.properties()[k.value],v.value,0,v.value.length-1);}],'all':{type:BooleanType,overloads:[[[BooleanType,BooleanType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return -function(ctx,_ref98){var _ref99=index_es_slicedToArray(_ref98,2),a=_ref99[0],b=_ref99[1];return a.evaluate(ctx)&&b.evaluate(ctx);}],[varargs(BooleanType),function(ctx,args){var _iterator48=index_es_createForOfIteratorHelper(args),_step48;try{for(_iterator48.s();!(_step48=_iterator48.n()).done;){var arg=_step48.value;if(!arg.evaluate(ctx))return false;}}catch(err){_iterator48.e(err);}finally{_iterator48.f();}return true;}]]},'any':{type:BooleanType,overloads:[[[BooleanType,BooleanType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return -function(ctx,_ref100){var _ref101=index_es_slicedToArray(_ref100,2),a=_ref101[0],b=_ref101[1];return a.evaluate(ctx)||b.evaluate(ctx);}],[varargs(BooleanType),function(ctx,args){var _iterator49=index_es_createForOfIteratorHelper(args),_step49;try{for(_iterator49.s();!(_step49=_iterator49.n()).done;){var arg=_step49.value;if(arg.evaluate(ctx))return true;}}catch(err){_iterator49.e(err);}finally{_iterator49.f();}return false;}]]},'!':[BooleanType,[BooleanType],function(ctx,_ref102){var _ref103=index_es_slicedToArray(_ref102,1),b=_ref103[0];return!b.evaluate(ctx);}],'is-supported-script':[BooleanType,[StringType],// At parse time this will always return true, so we need to exclude this expression with isGlobalPropertyConstant -function(ctx,_ref104){var _ref105=index_es_slicedToArray(_ref104,1),s=_ref105[0];var isSupportedScript=ctx.globals&&ctx.globals.isSupportedScript;if(isSupportedScript){return isSupportedScript(s.evaluate(ctx));}return true;}],'upcase':[StringType,[StringType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -function(ctx,_ref106){var _ref107=index_es_slicedToArray(_ref106,1),s=_ref107[0];return s.evaluate(ctx).toUpperCase();}],'downcase':[StringType,[StringType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -function(ctx,_ref108){var _ref109=index_es_slicedToArray(_ref108,1),s=_ref109[0];return s.evaluate(ctx).toLowerCase();}],'concat':[StringType,varargs(ValueType),// eslint-disable-next-line @typescript-eslint/no-unsafe-argument +function(ctx,_ref99){var _ref100=index_es_slicedToArray(_ref99,2),k=_ref100[0],v=_ref100[1];return binarySearch(ctx.properties()[k.value],v.value,0,v.value.length-1);}],'all':{type:BooleanType,overloads:[[[BooleanType,BooleanType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return +function(ctx,_ref101){var _ref102=index_es_slicedToArray(_ref101,2),a=_ref102[0],b=_ref102[1];return a.evaluate(ctx)&&b.evaluate(ctx);}],[varargs(BooleanType),function(ctx,args){var _iterator50=index_es_createForOfIteratorHelper(args),_step50;try{for(_iterator50.s();!(_step50=_iterator50.n()).done;){var arg=_step50.value;if(!arg.evaluate(ctx))return false;}}catch(err){_iterator50.e(err);}finally{_iterator50.f();}return true;}]]},'any':{type:BooleanType,overloads:[[[BooleanType,BooleanType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return +function(ctx,_ref103){var _ref104=index_es_slicedToArray(_ref103,2),a=_ref104[0],b=_ref104[1];return a.evaluate(ctx)||b.evaluate(ctx);}],[varargs(BooleanType),function(ctx,args){var _iterator51=index_es_createForOfIteratorHelper(args),_step51;try{for(_iterator51.s();!(_step51=_iterator51.n()).done;){var arg=_step51.value;if(arg.evaluate(ctx))return true;}}catch(err){_iterator51.e(err);}finally{_iterator51.f();}return false;}]]},'!':[BooleanType,[BooleanType],function(ctx,_ref105){var _ref106=index_es_slicedToArray(_ref105,1),b=_ref106[0];return!b.evaluate(ctx);}],'is-supported-script':[BooleanType,[StringType],// At parse time this will always return true, so we need to exclude this expression with isGlobalPropertyConstant +function(ctx,_ref107){var _ref108=index_es_slicedToArray(_ref107,1),s=_ref108[0];var isSupportedScript=ctx.globals&&ctx.globals.isSupportedScript;if(isSupportedScript){return isSupportedScript(s.evaluate(ctx));}return true;}],'upcase':[StringType,[StringType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access +function(ctx,_ref109){var _ref110=index_es_slicedToArray(_ref109,1),s=_ref110[0];return s.evaluate(ctx).toUpperCase();}],'downcase':[StringType,[StringType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access +function(ctx,_ref111){var _ref112=index_es_slicedToArray(_ref111,1),s=_ref112[0];return s.evaluate(ctx).toLowerCase();}],'concat':[StringType,varargs(ValueType),// eslint-disable-next-line @typescript-eslint/no-unsafe-argument function(ctx,args){return args.map(function(arg){return index_es_toString(arg.evaluate(ctx));}).join('');}],'resolved-locale':[StringType,[CollatorType],// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -function(ctx,_ref110){var _ref111=index_es_slicedToArray(_ref110,1),collator=_ref111[0];return collator.evaluate(ctx).resolvedLocale();}],'random':[NumberType,[NumberType,NumberType,ValueType],function(ctx,args){var _args$map=args.map(function(arg){return arg.evaluate(ctx);}),_args$map2=index_es_slicedToArray(_args$map,3),min=_args$map2[0],max=_args$map2[1],seed=_args$map2[2];if(min>max){return min;}if(min===max){return min;}var seedVal;if(typeof seed==='string'){seedVal=hashString(seed);}else if(typeof seed==='number'){seedVal=seed;}else{throw new RuntimeError("Invalid seed input: ".concat(seed));}var random=mulberry32(seedVal)();return min+random*(max-min);}]});function getConfigDependencies(e){if(e instanceof index_es_Config){var singleConfig=/* @__PURE__ */new Set([e.key]);return singleConfig;}var result=/* @__PURE__ */new Set();e.eachChild(function(arg){result=/* @__PURE__ */new Set([].concat(index_es_toConsumableArray(result),index_es_toConsumableArray(getConfigDependencies(arg))));});return result;}function isIndoorDependent(e){if(e instanceof CompoundExpression&&e.name==='is-active-floor'){return true;}var result=false;e.eachChild(function(arg){if(!result&&isIndoorDependent(arg)){result=true;}});return result;}function success(value){return{result:'success',value:value};}function error(value){return{result:'error',value:value};}var TRANSITION_KEY_RE=/^(.*)-transition$/;var USE_THEME_KEY_RE=/^(.*)-use-theme$/;function expressionHasParameter(expression,parameter){return!!expression&&!!expression.parameters&&expression.parameters.includes(parameter);}function supportsPropertyExpression(spec){return spec['property-type']==='data-driven';}function supportsLightExpression(spec){return expressionHasParameter(spec.expression,'measure-light');}function supportsZoomExpression(spec){return expressionHasParameter(spec.expression,'zoom');}function supportsLineProgressExpression(spec){return expressionHasParameter(spec.expression,'line-progress');}function supportsInterpolation(spec){return!!spec.expression&&spec.expression.interpolated;}function isFunction(value){return index_es_typeof(value)==='object'&&value!==null&&!Array.isArray(value);}function identityFunction(x){return x;}function createFunction(parameters,propertySpec){var isColor=propertySpec.type==='color';var zoomAndFeatureDependent=parameters.stops&&index_es_typeof(parameters.stops[0][0])==='object';var featureDependent=zoomAndFeatureDependent||parameters.property!==void 0;var zoomDependent=zoomAndFeatureDependent||!featureDependent;var type=parameters.type||(supportsInterpolation(propertySpec)?'exponential':'interval');if(isColor){parameters=Object.assign({},parameters);if(parameters.stops){parameters.stops=parameters.stops.map(function(stop){return[stop[0],index_es_Color.parse(stop[1])];});}if(parameters["default"]){parameters["default"]=index_es_Color.parse(parameters["default"]);}else{parameters["default"]=index_es_Color.parse(propertySpec["default"]);}}if(parameters.colorSpace&¶meters.colorSpace!=='rgb'&&!colorSpaces[parameters.colorSpace]){throw new Error("Unknown color space: ".concat(parameters.colorSpace));}var innerFun;var hashedStops;var categoricalKeyType;if(type==='exponential'){innerFun=evaluateExponentialFunction;}else if(type==='interval'){innerFun=evaluateIntervalFunction;}else if(type==='categorical'){innerFun=evaluateCategoricalFunction;hashedStops=/* @__PURE__ */Object.create(null);var _iterator50=index_es_createForOfIteratorHelper(parameters.stops),_step50;try{for(_iterator50.s();!(_step50=_iterator50.n()).done;){var stop=_step50.value;hashedStops[stop[0]]=stop[1];}}catch(err){_iterator50.e(err);}finally{_iterator50.f();}categoricalKeyType=index_es_typeof(parameters.stops[0][0]);}else if(type==='identity'){innerFun=evaluateIdentityFunction;}else{throw new Error("Unknown function type \"".concat(type,"\""));}if(zoomAndFeatureDependent){var featureFunctions={};var zoomStops=[];for(var s=0;smax){return min;}if(min===max){return min;}var seedVal;if(typeof seed==='string'){seedVal=hashString(seed);}else if(typeof seed==='number'){seedVal=seed;}else{throw new RuntimeError("Invalid seed input: ".concat(seed));}var random=mulberry32(seedVal)();return min+random*(max-min);}]});function getConfigDependencies(e){if(e instanceof index_es_Config){var singleConfig=/* @__PURE__ */new Set([e.key]);return singleConfig;}var result=/* @__PURE__ */new Set();e.eachChild(function(arg){result=/* @__PURE__ */new Set([].concat(index_es_toConsumableArray(result),index_es_toConsumableArray(getConfigDependencies(arg))));});return result;}function isIndoorDependent(e){if(e instanceof CompoundExpression&&e.name==='is-active-floor'){return true;}var result=false;e.eachChild(function(arg){if(!result&&isIndoorDependent(arg)){result=true;}});return result;}function success(value){return{result:'success',value:value};}function error(value){return{result:'error',value:value};}function expressionHasParameter(expression,parameter){return!!expression&&!!expression.parameters&&expression.parameters.indexOf(parameter)>-1;}function supportsPropertyExpression(spec){return spec['property-type']==='data-driven';}function supportsLightExpression(spec){return expressionHasParameter(spec.expression,'measure-light');}function supportsZoomExpression(spec){return expressionHasParameter(spec.expression,'zoom');}function supportsLineProgressExpression(spec){return expressionHasParameter(spec.expression,'line-progress');}function supportsInterpolation(spec){return!!spec.expression&&spec.expression.interpolated;}function isFunction(value){return index_es_typeof(value)==='object'&&value!==null&&!Array.isArray(value);}function identityFunction(x){return x;}function createFunction(parameters,propertySpec){var isColor=propertySpec.type==='color';var zoomAndFeatureDependent=parameters.stops&&index_es_typeof(parameters.stops[0][0])==='object';var featureDependent=zoomAndFeatureDependent||parameters.property!==void 0;var zoomDependent=zoomAndFeatureDependent||!featureDependent;var type=parameters.type||(supportsInterpolation(propertySpec)?'exponential':'interval');if(isColor){parameters=Object.assign({},parameters);if(parameters.stops){parameters.stops=parameters.stops.map(function(stop){return[stop[0],index_es_Color.parse(stop[1])];});}if(parameters["default"]){parameters["default"]=index_es_Color.parse(parameters["default"]);}else{parameters["default"]=index_es_Color.parse(propertySpec["default"]);}}if(parameters.colorSpace&¶meters.colorSpace!=='rgb'&&!colorSpaces[parameters.colorSpace]){throw new Error("Unknown color space: ".concat(parameters.colorSpace));}var innerFun;var hashedStops;var categoricalKeyType;if(type==='exponential'){innerFun=evaluateExponentialFunction;}else if(type==='interval'){innerFun=evaluateIntervalFunction;}else if(type==='categorical'){innerFun=evaluateCategoricalFunction;hashedStops=/* @__PURE__ */Object.create(null);var _iterator52=index_es_createForOfIteratorHelper(parameters.stops),_step52;try{for(_iterator52.s();!(_step52=_iterator52.n()).done;){var stop=_step52.value;hashedStops[stop[0]]=stop[1];}}catch(err){_iterator52.e(err);}finally{_iterator52.f();}categoricalKeyType=index_es_typeof(parameters.stops[0][0]);}else if(type==='identity'){innerFun=evaluateIdentityFunction;}else{throw new Error("Unknown function type \"".concat(type,"\""));}if(zoomAndFeatureDependent){var featureFunctions={};var zoomStops=[];for(var s=0;s=parameters.stops[n-1][0])return parameters.stops[n-1][1];var index=findStopLessThanOrEqualTo(parameters.stops.map(function(stop){return stop[0];}),input);return parameters.stops[index][1];}function evaluateExponentialFunction(parameters,propertySpec,input){var base=parameters.base!==void 0?parameters.base:1;if(!index_es_isNumber(input))return coalesce$1(parameters["default"],propertySpec["default"]);var n=parameters.stops.length;if(n===1)return parameters.stops[0][1];if(input<=parameters.stops[0][0])return parameters.stops[0][1];if(input>=parameters.stops[n-1][0])return parameters.stops[n-1][1];var index=findStopLessThanOrEqualTo(parameters.stops.map(function(stop){return stop[0];}),input);var t=interpolationFactor(input,base,// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access +zoomStops:parameters.stops.map(function(s){return s[0];}),// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call +evaluate:function evaluate(_ref116){var zoom=_ref116.zoom;return innerFun(parameters,propertySpec,zoom,hashedStops,categoricalKeyType);}};}else{return{kind:'source',evaluate:function evaluate(_,feature){var value=feature&&feature.properties?feature.properties[parameters.property]:void 0;if(value===void 0){return coalesce$1(parameters["default"],propertySpec["default"]);}return innerFun(parameters,propertySpec,value,hashedStops,categoricalKeyType);}};}}function coalesce$1(a,b,c){if(a!==void 0)return a;if(b!==void 0)return b;if(c!==void 0)return c;}function evaluateCategoricalFunction(parameters,propertySpec,input,hashedStops,keyType){var evaluated=index_es_typeof(input)===keyType?hashedStops[input]:void 0;return coalesce$1(evaluated,parameters["default"],propertySpec["default"]);}function evaluateIntervalFunction(parameters,propertySpec,input){if(!index_es_isNumber(input))return coalesce$1(parameters["default"],propertySpec["default"]);var n=parameters.stops.length;if(n===1)return parameters.stops[0][1];if(input<=parameters.stops[0][0])return parameters.stops[0][1];if(input>=parameters.stops[n-1][0])return parameters.stops[n-1][1];var index=findStopLessThanOrEqualTo(parameters.stops.map(function(stop){return stop[0];}),input);return parameters.stops[index][1];}function evaluateExponentialFunction(parameters,propertySpec,input){var base=parameters.base!==void 0?parameters.base:1;if(!index_es_isNumber(input))return coalesce$1(parameters["default"],propertySpec["default"]);var n=parameters.stops.length;if(n===1)return parameters.stops[0][1];if(input<=parameters.stops[0][0])return parameters.stops[0][1];if(input>=parameters.stops[n-1][0])return parameters.stops[n-1][1];var index=findStopLessThanOrEqualTo(parameters.stops.map(function(stop){return stop[0];}),input);var t=interpolationFactor(input,base,// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access parameters.stops[index][0],// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -parameters.stops[index+1][0]);var outputLower=parameters.stops[index][1];var outputUpper=parameters.stops[index+1][1];var interp=interpolate[propertySpec.type]||identityFunction;if(parameters.colorSpace&¶meters.colorSpace!=='rgb'){var colorspace=colorSpaces[parameters.colorSpace];interp=function interp(a,b){return colorspace.reverse(colorspace.interpolate(colorspace.forward(a),colorspace.forward(b),t));};}if(typeof outputLower.evaluate==='function'){return{evaluate:function evaluate(){for(var _len2=arguments.length,args=new Array(_len2),_key5=0;_key5<_len2;_key5++){args[_key5]=arguments[_key5];}var evaluatedLower=outputLower.evaluate.apply(void 0,args);var evaluatedUpper=outputUpper.evaluate.apply(void 0,args);if(evaluatedLower===void 0||evaluatedUpper===void 0){return void 0;}return interp(evaluatedLower,evaluatedUpper,t);}};}return interp(outputLower,outputUpper,t);}function evaluateIdentityFunction(parameters,propertySpec,input){if(propertySpec.type==='color'){input=index_es_Color.parse(input);}else if(propertySpec.type==='formatted'){input=Formatted.fromString(input.toString());}else if(propertySpec.type==='resolvedImage'){input=ResolvedImage.build(input.toString());}else if(getType(input)!==propertySpec.type&&(propertySpec.type!=='enum'||!propertySpec.values[input])){input=void 0;}return coalesce$1(input,parameters["default"],propertySpec["default"]);}function interpolationFactor(input,base,lowerValue,upperValue){var difference=upperValue-lowerValue;var progress=input-lowerValue;if(difference===0){return 0;}else if(base===1){return progress/difference;}else{return(Math.pow(base,progress)-1)/(Math.pow(base,difference)-1);}}var StyleExpression=/*#__PURE__*/function(){function StyleExpression(expression,propertySpec,scope,options,iconImageUseTheme){index_es_classCallCheck(this,StyleExpression);this.expression=expression;this._warningHistory={};this._scope=scope;this._options=options;this._iconImageUseTheme=iconImageUseTheme;this._evaluator=new EvaluationContext(scope,options,iconImageUseTheme);this._defaultValue=propertySpec?getDefaultValue(propertySpec):null;this._enumValues=propertySpec&&propertySpec.type==='enum'?propertySpec.values:null;this.configDependencies=getConfigDependencies(expression);this.isIndoorDependent=isIndoorDependent(expression);}return index_es_createClass(StyleExpression,[{key:"evaluateWithoutErrorHandling",value:function evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection,featureTileCoord,featureDistanceData){this._evaluator.globals=globals;this._evaluator.feature=feature;this._evaluator.featureState=featureState;this._evaluator.canonical=canonical||null;this._evaluator.availableImages=availableImages||null;this._evaluator.formattedSection=formattedSection;this._evaluator.featureTileCoord=featureTileCoord||null;this._evaluator.featureDistanceData=featureDistanceData||null;return this.expression.evaluate(this._evaluator);}},{key:"evaluate",value:function evaluate(globals,feature,featureState,canonical,availableImages,formattedSection,featureTileCoord,featureDistanceData,iconImageUseTheme){if(!this._evaluator){this._evaluator=new EvaluationContext(this._scope,this._options,this._iconImageUseTheme);}this._evaluator.globals=globals;this._evaluator.feature=feature||null;this._evaluator.featureState=featureState||null;this._evaluator.canonical=canonical||null;this._evaluator.availableImages=availableImages||null;this._evaluator.formattedSection=formattedSection||null;this._evaluator.featureTileCoord=featureTileCoord||null;this._evaluator.featureDistanceData=featureDistanceData||null;this._evaluator.iconImageUseTheme=iconImageUseTheme||null;try{var val=this.expression.evaluate(this._evaluator);if(val===null||val===void 0||typeof val==='number'&&val!==val){return this._defaultValue;}if(this._enumValues&&!(val in this._enumValues)){throw new RuntimeError("Expected value to be one of ".concat(Object.keys(this._enumValues).map(function(v){return JSON.stringify(v);}).join(', '),", but found ").concat(JSON.stringify(val)," instead."));}return val;}catch(e){var error2=e;if(!this._warningHistory[error2.message]){this._warningHistory[error2.message]=true;if(typeof console!=='undefined'){console.warn("Failed to evaluate expression \"".concat(JSON.stringify(this.expression.serialize()),"\". ").concat(error2.message));}}return this._defaultValue;}}}]);}();function isExpression(expression){return Array.isArray(expression)&&expression.length>0&&typeof expression[0]==='string'&&expression[0]in expressions;}function createExpression(expression,propertySpec,scope,options,iconImageUseTheme){var parser=new ParsingContext(expressions,[],propertySpec?getExpectedType(propertySpec):void 0,void 0,void 0,scope,options,iconImageUseTheme);var parsed=parser.parse(expression,void 0,void 0,void 0,propertySpec&&propertySpec.type==='string'?{typeAnnotation:'coerce'}:void 0);if(!parsed){return error(parser.errors);}return success(new StyleExpression(parsed,propertySpec,scope,options,iconImageUseTheme));}var ZoomConstantExpression=/*#__PURE__*/function(){function ZoomConstantExpression(kind,expression,isLightConstant,isLineProgressConstant){index_es_classCallCheck(this,ZoomConstantExpression);this.kind=kind;this._styleExpression=expression;this.isLightConstant=isLightConstant;this.isLineProgressConstant=isLineProgressConstant;this.isStateDependent=kind!=='constant'&&!isStateConstant(expression.expression);this.configDependencies=getConfigDependencies(expression.expression);this.isIndoorDependent=isIndoorDependent(expression.expression);}return index_es_createClass(ZoomConstantExpression,[{key:"evaluateWithoutErrorHandling",value:function evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection){return this._styleExpression.evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection);}},{key:"evaluate",value:function evaluate(globals,feature,featureState,canonical,availableImages,formattedSection,iconImageUseTheme){return this._styleExpression.evaluate(globals,feature,featureState,canonical,availableImages,formattedSection,void 0,void 0,iconImageUseTheme);}}]);}();var ZoomDependentExpression=/*#__PURE__*/function(){function ZoomDependentExpression(kind,expression,zoomStops,interpolationType,isLightConstant,isLineProgressConstant){index_es_classCallCheck(this,ZoomDependentExpression);this.kind=kind;this.zoomStops=zoomStops;this._styleExpression=expression;this.isStateDependent=kind!=='camera'&&!isStateConstant(expression.expression);this.isIndoorDependent=isIndoorDependent(expression.expression);this.isLightConstant=isLightConstant;this.isLineProgressConstant=isLineProgressConstant;this.configDependencies=getConfigDependencies(expression.expression);this.interpolationType=interpolationType;}return index_es_createClass(ZoomDependentExpression,[{key:"evaluateWithoutErrorHandling",value:function evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection){return this._styleExpression.evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection);}},{key:"evaluate",value:function evaluate(globals,feature,featureState,canonical,availableImages,formattedSection){return this._styleExpression.evaluate(globals,feature,featureState,canonical,availableImages,formattedSection);}},{key:"interpolationFactor",value:function interpolationFactor(input,lower,upper){if(this.interpolationType){return Interpolate.interpolationFactor(this.interpolationType,input,lower,upper);}else{return 0;}}}]);}();function createPropertyExpression(expression,propertySpec,scope,options,iconImageUseTheme){expression=createExpression(expression,propertySpec,scope,options,iconImageUseTheme);if(expression.result==='error'){return expression;}var parsed=expression.value.expression;var isFeatureConstant$1=isFeatureConstant(parsed);if(!isFeatureConstant$1&&!supportsPropertyExpression(propertySpec)){return error([new ParsingError$1('','data expressions not supported')]);}var isZoomConstant=isGlobalPropertyConstant(parsed,['zoom','pitch','distance-from-center']);if(!isZoomConstant&&!supportsZoomExpression(propertySpec)){return error([new ParsingError$1('','zoom expressions not supported')]);}var isLightConstant=isGlobalPropertyConstant(parsed,['measure-light']);if(!isLightConstant&&!supportsLightExpression(propertySpec)){return error([new ParsingError$1('','measure-light expression not supported')]);}var isLineProgressConstant=isGlobalPropertyConstant(parsed,['line-progress']);if(!isLineProgressConstant&&!supportsLineProgressExpression(propertySpec)){return error([new ParsingError$1('','line-progress expression not supported')]);}var canRelaxZoomRestriction=propertySpec.expression&&propertySpec.expression.relaxZoomRestriction;var zoomCurve=findZoomCurve(parsed);if(!zoomCurve&&!isZoomConstant&&!canRelaxZoomRestriction){return error([new ParsingError$1('','"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression, or in the properties of atmosphere.')]);}else if(zoomCurve instanceof ParsingError$1){return error([zoomCurve]);}else if(zoomCurve instanceof Interpolate&&!supportsInterpolation(propertySpec)){return error([new ParsingError$1('','"interpolate" expressions cannot be used with this property')]);}if(!zoomCurve){return success(isFeatureConstant$1&&isLineProgressConstant?// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access +parameters.stops[index+1][0]);var outputLower=parameters.stops[index][1];var outputUpper=parameters.stops[index+1][1];var interp=interpolate$1[propertySpec.type]||identityFunction;if(parameters.colorSpace&¶meters.colorSpace!=='rgb'){var colorspace=colorSpaces[parameters.colorSpace];interp=function interp(a,b){return colorspace.reverse(colorspace.interpolate(colorspace.forward(a),colorspace.forward(b),t));};}if(typeof outputLower.evaluate==='function'){return{evaluate:function evaluate(){for(var _len2=arguments.length,args=new Array(_len2),_key5=0;_key5<_len2;_key5++){args[_key5]=arguments[_key5];}var evaluatedLower=outputLower.evaluate.apply(void 0,args);var evaluatedUpper=outputUpper.evaluate.apply(void 0,args);if(evaluatedLower===void 0||evaluatedUpper===void 0){return void 0;}return interp(evaluatedLower,evaluatedUpper,t);}};}return interp(outputLower,outputUpper,t);}function evaluateIdentityFunction(parameters,propertySpec,input){if(propertySpec.type==='color'){input=index_es_Color.parse(input);}else if(propertySpec.type==='formatted'){input=Formatted.fromString(input.toString());}else if(propertySpec.type==='resolvedImage'){input=ResolvedImage.build(input.toString());}else if(getType(input)!==propertySpec.type&&(propertySpec.type!=='enum'||!propertySpec.values[input])){input=void 0;}return coalesce$1(input,parameters["default"],propertySpec["default"]);}function interpolationFactor(input,base,lowerValue,upperValue){var difference=upperValue-lowerValue;var progress=input-lowerValue;if(difference===0){return 0;}else if(base===1){return progress/difference;}else{return(Math.pow(base,progress)-1)/(Math.pow(base,difference)-1);}}var StyleExpression=/*#__PURE__*/function(){function StyleExpression(expression,propertySpec,scope,options,iconImageUseTheme){index_es_classCallCheck(this,StyleExpression);this.expression=expression;this._warningHistory={};this._scope=scope;this._options=options;this._iconImageUseTheme=iconImageUseTheme;this._evaluator=new EvaluationContext(scope,options,iconImageUseTheme);this._defaultValue=propertySpec?getDefaultValue(propertySpec):null;this._enumValues=propertySpec&&propertySpec.type==='enum'?propertySpec.values:null;this.configDependencies=getConfigDependencies(expression);this.isIndoorDependent=isIndoorDependent(expression);}return index_es_createClass(StyleExpression,[{key:"evaluateWithoutErrorHandling",value:function evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection,featureTileCoord,featureDistanceData){this._evaluator.globals=globals;this._evaluator.feature=feature;this._evaluator.featureState=featureState;this._evaluator.canonical=canonical||null;this._evaluator.availableImages=availableImages||null;this._evaluator.formattedSection=formattedSection;this._evaluator.featureTileCoord=featureTileCoord||null;this._evaluator.featureDistanceData=featureDistanceData||null;return this.expression.evaluate(this._evaluator);}},{key:"evaluate",value:function evaluate(globals,feature,featureState,canonical,availableImages,formattedSection,featureTileCoord,featureDistanceData,iconImageUseTheme){if(!this._evaluator){this._evaluator=new EvaluationContext(this._scope,this._options,this._iconImageUseTheme);}this._evaluator.globals=globals;this._evaluator.feature=feature||null;this._evaluator.featureState=featureState||null;this._evaluator.canonical=canonical||null;this._evaluator.availableImages=availableImages||null;this._evaluator.formattedSection=formattedSection||null;this._evaluator.featureTileCoord=featureTileCoord||null;this._evaluator.featureDistanceData=featureDistanceData||null;this._evaluator.iconImageUseTheme=iconImageUseTheme||null;try{var val=this.expression.evaluate(this._evaluator);if(val===null||val===void 0||typeof val==='number'&&val!==val){return this._defaultValue;}if(this._enumValues&&!(val in this._enumValues)){throw new RuntimeError("Expected value to be one of ".concat(Object.keys(this._enumValues).map(function(v){return JSON.stringify(v);}).join(', '),", but found ").concat(JSON.stringify(val)," instead."));}return val;}catch(e){var error2=e;if(!this._warningHistory[error2.message]){this._warningHistory[error2.message]=true;if(typeof console!=='undefined'){console.warn("Failed to evaluate expression \"".concat(JSON.stringify(this.expression.serialize()),"\". ").concat(error2.message));}}return this._defaultValue;}}}]);}();function isExpression(expression){return Array.isArray(expression)&&expression.length>0&&typeof expression[0]==='string'&&expression[0]in expressions;}function createExpression(expression,propertySpec,scope,options,iconImageUseTheme){var parser=new ParsingContext(expressions,[],propertySpec?getExpectedType(propertySpec):void 0,void 0,void 0,scope,options,iconImageUseTheme);var parsed=parser.parse(expression,void 0,void 0,void 0,propertySpec&&propertySpec.type==='string'?{typeAnnotation:'coerce'}:void 0);if(!parsed){return error(parser.errors);}return success(new StyleExpression(parsed,propertySpec,scope,options,iconImageUseTheme));}var ZoomConstantExpression=/*#__PURE__*/function(){function ZoomConstantExpression(kind,expression,isLightConstant,isLineProgressConstant){index_es_classCallCheck(this,ZoomConstantExpression);this.kind=kind;this._styleExpression=expression;this.isLightConstant=isLightConstant;this.isLineProgressConstant=isLineProgressConstant;this.isStateDependent=kind!=='constant'&&!isStateConstant(expression.expression);this.configDependencies=getConfigDependencies(expression.expression);this.isIndoorDependent=isIndoorDependent(expression.expression);}return index_es_createClass(ZoomConstantExpression,[{key:"evaluateWithoutErrorHandling",value:function evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection){return this._styleExpression.evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection);}},{key:"evaluate",value:function evaluate(globals,feature,featureState,canonical,availableImages,formattedSection,iconImageUseTheme){return this._styleExpression.evaluate(globals,feature,featureState,canonical,availableImages,formattedSection,void 0,void 0,iconImageUseTheme);}}]);}();var ZoomDependentExpression=/*#__PURE__*/function(){function ZoomDependentExpression(kind,expression,zoomStops,interpolationType,isLightConstant,isLineProgressConstant){index_es_classCallCheck(this,ZoomDependentExpression);this.kind=kind;this.zoomStops=zoomStops;this._styleExpression=expression;this.isStateDependent=kind!=='camera'&&!isStateConstant(expression.expression);this.isIndoorDependent=isIndoorDependent(expression.expression);this.isLightConstant=isLightConstant;this.isLineProgressConstant=isLineProgressConstant;this.configDependencies=getConfigDependencies(expression.expression);this.interpolationType=interpolationType;}return index_es_createClass(ZoomDependentExpression,[{key:"evaluateWithoutErrorHandling",value:function evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection){return this._styleExpression.evaluateWithoutErrorHandling(globals,feature,featureState,canonical,availableImages,formattedSection);}},{key:"evaluate",value:function evaluate(globals,feature,featureState,canonical,availableImages,formattedSection){return this._styleExpression.evaluate(globals,feature,featureState,canonical,availableImages,formattedSection);}},{key:"interpolationFactor",value:function interpolationFactor(input,lower,upper){if(this.interpolationType){return Interpolate.interpolationFactor(this.interpolationType,input,lower,upper);}else{return 0;}}}]);}();function createPropertyExpression(expression,propertySpec,scope,options,iconImageUseTheme){expression=createExpression(expression,propertySpec,scope,options,iconImageUseTheme);if(expression.result==='error'){return expression;}var parsed=expression.value.expression;var isFeatureConstant$1=isFeatureConstant(parsed);if(!isFeatureConstant$1&&!supportsPropertyExpression(propertySpec)){return error([new ParsingError$1('','data expressions not supported')]);}var isZoomConstant=isGlobalPropertyConstant(parsed,['zoom','pitch','distance-from-center']);if(!isZoomConstant&&!supportsZoomExpression(propertySpec)){return error([new ParsingError$1('','zoom expressions not supported')]);}var isLightConstant=isGlobalPropertyConstant(parsed,['measure-light']);if(!isLightConstant&&!supportsLightExpression(propertySpec)){return error([new ParsingError$1('','measure-light expression not supported')]);}var isLineProgressConstant=isGlobalPropertyConstant(parsed,['line-progress']);if(!isLineProgressConstant&&!supportsLineProgressExpression(propertySpec)){return error([new ParsingError$1('','line-progress expression not supported')]);}var canRelaxZoomRestriction=propertySpec.expression&&propertySpec.expression.relaxZoomRestriction;var zoomCurve=findZoomCurve(parsed);if(!zoomCurve&&!isZoomConstant&&!canRelaxZoomRestriction){return error([new ParsingError$1('','"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression, or in the properties of atmosphere.')]);}else if(zoomCurve instanceof ParsingError$1){return error([zoomCurve]);}else if(zoomCurve instanceof Interpolate&&!supportsInterpolation(propertySpec)){return error([new ParsingError$1('','"interpolate" expressions cannot be used with this property')]);}if(!zoomCurve){return success(isFeatureConstant$1&&isLineProgressConstant?// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access new ZoomConstantExpression('constant',expression.value,isLightConstant,isLineProgressConstant):// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access new ZoomConstantExpression('source',expression.value,isLightConstant,isLineProgressConstant));}var interpolationType=zoomCurve instanceof Interpolate?zoomCurve.interpolation:void 0;return success(isFeatureConstant$1&&isLineProgressConstant?// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access new ZoomDependentExpression('camera',expression.value,zoomCurve.labels,interpolationType,isLightConstant,isLineProgressConstant):// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access -new ZoomDependentExpression('composite',expression.value,zoomCurve.labels,interpolationType,isLightConstant,isLineProgressConstant));}var StylePropertyFunction=/*#__PURE__*/function(){function StylePropertyFunction(parameters,specification){index_es_classCallCheck(this,StylePropertyFunction);this._parameters=parameters;this._specification=specification;Object.assign(this,createFunction(this._parameters,this._specification));}return index_es_createClass(StylePropertyFunction,null,[{key:"deserialize",value:function deserialize(serialized){return new StylePropertyFunction(serialized._parameters,serialized._specification);}},{key:"serialize",value:function serialize(input){return{_parameters:input._parameters,_specification:input._specification};}}]);}();function normalizePropertyExpression(value,specification,scope,options,iconImageUseTheme){if(isFunction(value)){return new StylePropertyFunction(value,specification);}else if(isExpression(value)||Array.isArray(value)&&value.length>0){var _expression8=createPropertyExpression(value,specification,scope,options,iconImageUseTheme);if(_expression8.result==='error'){throw new Error(_expression8.value.map(function(err){return"".concat(err.key,": ").concat(err.message);}).join(', '));}return _expression8.value;}else{var constant=value;if(typeof value==='string'&&specification.type==='color'){constant=index_es_Color.parse(value);}return{kind:'constant',configDependencies:/* @__PURE__ */new Set(),isIndoorDependent:false,evaluate:function evaluate(){return constant;}};}}function findZoomCurve(expression){var result=null;if(expression instanceof Let){result=findZoomCurve(expression.result);}else if(expression instanceof Coalesce){var _iterator51=index_es_createForOfIteratorHelper(expression.args),_step51;try{for(_iterator51.s();!(_step51=_iterator51.n()).done;){var arg=_step51.value;result=findZoomCurve(arg);if(result){break;}}}catch(err){_iterator51.e(err);}finally{_iterator51.f();}}else if((expression instanceof Step||expression instanceof Interpolate)&&expression.input instanceof CompoundExpression&&expression.input.name==='zoom'){result=expression;}if(result instanceof ParsingError$1){return result;}expression.eachChild(function(child){var childResult=findZoomCurve(child);if(childResult instanceof ParsingError$1){result=childResult;}else if(result&&childResult&&result!==childResult){result=new ParsingError$1('','Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.');}});return result;}function getExpectedType(spec){var types={color:ColorType,string:StringType,number:NumberType,"enum":StringType,"boolean":BooleanType,formatted:FormattedType,resolvedImage:ResolvedImageType};if(spec.type==='array'){return array$1(types[spec.value]||ValueType,spec.length);}return types[spec.type];}function getDefaultValue(spec){if(spec.type==='color'&&(isFunction(spec["default"])||Array.isArray(spec["default"]))){return new index_es_Color(0,0,0,0);}else if(spec.type==='color'){return index_es_Color.parse(spec["default"])||null;}else if(spec["default"]===void 0){return null;}else{return spec["default"];}}function convertLiteral(value){return index_es_typeof(value)==='object'?['literal',value]:value;}function convertFunction(parameters,propertySpec){var stops=parameters.stops;if(!stops){return convertIdentityFunction(parameters,propertySpec);}var zoomAndFeatureDependent=stops&&index_es_typeof(stops[0][0])==='object';var featureDependent=zoomAndFeatureDependent||parameters.property!==void 0;var zoomDependent=zoomAndFeatureDependent||!featureDependent;stops=stops.map(function(stop){if(!featureDependent&&propertySpec.tokens&&typeof stop[1]==='string'){return[stop[0],convertTokenString(stop[1])];}return[stop[0],convertLiteral(stop[1])];});if(zoomAndFeatureDependent){return convertZoomAndPropertyFunction(parameters,propertySpec,stops);}else if(zoomDependent){return convertZoomFunction(parameters,propertySpec,stops);}else{return convertPropertyFunction(parameters,propertySpec,stops);}}function convertIdentityFunction(parameters,propertySpec){var get=['get',parameters.property];if(parameters["default"]===void 0){return propertySpec.type==='string'?['string',get]:get;}else if(propertySpec.type==='enum'){return['match',get,Object.keys(propertySpec.values),get,parameters["default"]];}else{var _expression9=[propertySpec.type==='color'?'to-color':propertySpec.type,get,convertLiteral(parameters["default"])];if(propertySpec.type==='array'){_expression9.splice(1,0,propertySpec.value,propertySpec.length||null);}return _expression9;}}function getInterpolateOperator(parameters){switch(parameters.colorSpace){case'hcl':return'interpolate-hcl';case'lab':return'interpolate-lab';default:return'interpolate';}}function convertZoomAndPropertyFunction(parameters,propertySpec,stops){var featureFunctionParameters={};var featureFunctionStops={};var zoomStops=[];for(var s=0;s3&&arguments[3]!==undefined?arguments[3]:['zoom'];var type=getFunctionType(parameters,propertySpec);var expression;var isStep=false;if(type==='interval'){expression=['step',input];isStep=true;}else if(type==='exponential'){var base=parameters.base!==void 0?parameters.base:1;expression=[getInterpolateOperator(parameters),base===1?['linear']:['exponential',base],input];}else{throw new Error("Unknown zoom function type \"".concat(type,"\""));}var _iterator58=index_es_createForOfIteratorHelper(stops),_step58;try{for(_iterator58.s();!(_step58=_iterator58.n()).done;){var stop=_step58.value;appendStopPair(expression,stop[0],stop[1],isStep);}}catch(err){_iterator58.e(err);}finally{_iterator58.f();}fixupDegenerateStepCurve(expression);return expression;}function fixupDegenerateStepCurve(expression){if(expression[0]==='step'&&expression.length===3){expression.push(0);expression.push(expression[3]);}}function appendStopPair(curve,input,output,isStep){if(curve.length>3&&input===curve[curve.length-2]){return;}if(!(isStep&&curve.length===2)){curve.push(input);}curve.push(output);}function getFunctionType(parameters,propertySpec){if(parameters.type){return parameters.type;}else{return propertySpec.expression.interpolated?'exponential':'interval';}}function convertTokenString(s){var result=['concat'];var re=/{([^{}]+)}/g;var pos=0;for(var match=re.exec(s);match!==null;match=re.exec(s)){var literal=s.slice(pos,re.lastIndex-match[0].length);pos=re.lastIndex;if(literal.length>0)result.push(literal);result.push(['get',match[1]]);}if(result.length===1){return s;}if(pos=2&&filter[1]!=='$id'&&filter[1]!=='$type';case'in':return filter.length>=3&&(typeof filter[1]!=='string'||Array.isArray(filter[2]));case'!in':case'!has':case'none':return false;case'==':case'!=':case'>':case'>=':case'<':case'<=':return filter.length!==3||Array.isArray(filter[1])||Array.isArray(filter[2]);case'any':case'all':var _iterator59=index_es_createForOfIteratorHelper(filter.slice(1)),_step59;try{for(_iterator59.s();!(_step59=_iterator59.n()).done;){var f=_step59.value;if(!isExpressionFilter(f)&&typeof f!=='boolean'){return false;}}}catch(err){_iterator59.e(err);}finally{_iterator59.f();}return true;default:return true;}}function createFilter(filter){var scope=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'';var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var layerType=arguments.length>3&&arguments[3]!==undefined?arguments[3]:'fill';if(filter===null||filter===void 0){return{filter:function filter(){return true;},needGeometry:false,needFeature:false};}if(!isExpressionFilter(filter)){filter=convertFilter$1(filter);}var filterExp=filter;var staticFilter=true;try{staticFilter=extractStaticFilter(filterExp);}catch(e){console.warn("Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\nand paste the contents of this message in the report.\nThank you!\nFilter Expression:\n".concat(JSON.stringify(filterExp,null,2),"\n "));}var filterFunc=null;var filterSpec=null;if(layerType!=='background'&&layerType!=='sky'&&layerType!=='slot'){filterSpec=v8["filter_".concat(layerType)];var compiledStaticFilter=createExpression(staticFilter,filterSpec,scope,options);if(compiledStaticFilter.result==='error'){throw new Error(compiledStaticFilter.value.map(function(err){return"".concat(err.key,": ").concat(err.message);}).join(', '));}else{filterFunc=function filterFunc(globalProperties,feature,canonical){return compiledStaticFilter.value.evaluate(globalProperties,feature,{},canonical);};}}var dynamicFilterFunc=null;var needFeature=null;if(staticFilter!==filterExp){var compiledDynamicFilter=createExpression(filterExp,filterSpec,scope,options);if(compiledDynamicFilter.result==='error'){throw new Error(compiledDynamicFilter.value.map(function(err){return"".concat(err.key,": ").concat(err.message);}).join(', '));}else{dynamicFilterFunc=function dynamicFilterFunc(globalProperties,feature,canonical,featureTileCoord,featureDistanceData){return compiledDynamicFilter.value.evaluate(globalProperties,feature,{},canonical,void 0,void 0,featureTileCoord,featureDistanceData);};needFeature=!isFeatureConstant(compiledDynamicFilter.value.expression);}}filterFunc=filterFunc;var needGeometry=geometryNeeded(staticFilter);return{// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment +new ZoomDependentExpression('composite',expression.value,zoomCurve.labels,interpolationType,isLightConstant,isLineProgressConstant));}var StylePropertyFunction=/*#__PURE__*/function(){function StylePropertyFunction(parameters,specification){index_es_classCallCheck(this,StylePropertyFunction);this._parameters=parameters;this._specification=specification;Object.assign(this,createFunction(this._parameters,this._specification));}return index_es_createClass(StylePropertyFunction,null,[{key:"deserialize",value:function deserialize(serialized){return new StylePropertyFunction(serialized._parameters,serialized._specification);}},{key:"serialize",value:function serialize(input){return{_parameters:input._parameters,_specification:input._specification};}}]);}();function normalizePropertyExpression(value,specification,scope,options,iconImageUseTheme){if(isFunction(value)){return new StylePropertyFunction(value,specification);}else if(isExpression(value)||Array.isArray(value)&&value.length>0){var _expression8=createPropertyExpression(value,specification,scope,options,iconImageUseTheme);if(_expression8.result==='error'){throw new Error(_expression8.value.map(function(err){return"".concat(err.key,": ").concat(err.message);}).join(', '));}return _expression8.value;}else{var constant=value;if(typeof value==='string'&&specification.type==='color'){constant=index_es_Color.parse(value);}return{kind:'constant',configDependencies:/* @__PURE__ */new Set(),isIndoorDependent:false,evaluate:function evaluate(){return constant;}};}}function findZoomCurve(expression){var result=null;if(expression instanceof Let){result=findZoomCurve(expression.result);}else if(expression instanceof Coalesce){var _iterator53=index_es_createForOfIteratorHelper(expression.args),_step53;try{for(_iterator53.s();!(_step53=_iterator53.n()).done;){var arg=_step53.value;result=findZoomCurve(arg);if(result){break;}}}catch(err){_iterator53.e(err);}finally{_iterator53.f();}}else if((expression instanceof Step||expression instanceof Interpolate)&&expression.input instanceof CompoundExpression&&expression.input.name==='zoom'){result=expression;}if(result instanceof ParsingError$1){return result;}expression.eachChild(function(child){var childResult=findZoomCurve(child);if(childResult instanceof ParsingError$1){result=childResult;}else if(result&&childResult&&result!==childResult){result=new ParsingError$1('','Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.');}});return result;}function getExpectedType(spec){var types={color:ColorType,string:StringType,number:NumberType,"enum":StringType,"boolean":BooleanType,formatted:FormattedType,resolvedImage:ResolvedImageType};if(spec.type==='array'){return array$1(types[spec.value]||ValueType,spec.length);}return types[spec.type];}function getDefaultValue(spec){if(spec.type==='color'&&(isFunction(spec["default"])||Array.isArray(spec["default"]))){return new index_es_Color(0,0,0,0);}else if(spec.type==='color'){return index_es_Color.parse(spec["default"])||null;}else if(spec["default"]===void 0){return null;}else{return spec["default"];}}function convertLiteral(value){return index_es_typeof(value)==='object'?['literal',value]:value;}function convertFunction(parameters,propertySpec){var stops=parameters.stops;if(!stops){return convertIdentityFunction(parameters,propertySpec);}var zoomAndFeatureDependent=stops&&index_es_typeof(stops[0][0])==='object';var featureDependent=zoomAndFeatureDependent||parameters.property!==void 0;var zoomDependent=zoomAndFeatureDependent||!featureDependent;stops=stops.map(function(stop){if(!featureDependent&&propertySpec.tokens&&typeof stop[1]==='string'){return[stop[0],convertTokenString(stop[1])];}return[stop[0],convertLiteral(stop[1])];});if(zoomAndFeatureDependent){return convertZoomAndPropertyFunction(parameters,propertySpec,stops);}else if(zoomDependent){return convertZoomFunction(parameters,propertySpec,stops);}else{return convertPropertyFunction(parameters,propertySpec,stops);}}function convertIdentityFunction(parameters,propertySpec){var get=['get',parameters.property];if(parameters["default"]===void 0){return propertySpec.type==='string'?['string',get]:get;}else if(propertySpec.type==='enum'){return['match',get,Object.keys(propertySpec.values),get,parameters["default"]];}else{var _expression9=[propertySpec.type==='color'?'to-color':propertySpec.type,get,convertLiteral(parameters["default"])];if(propertySpec.type==='array'){_expression9.splice(1,0,propertySpec.value,propertySpec.length||null);}return _expression9;}}function getInterpolateOperator(parameters){switch(parameters.colorSpace){case'hcl':return'interpolate-hcl';case'lab':return'interpolate-lab';default:return'interpolate';}}function convertZoomAndPropertyFunction(parameters,propertySpec,stops){var featureFunctionParameters={};var featureFunctionStops={};var zoomStops=[];for(var s=0;s3&&arguments[3]!==undefined?arguments[3]:['zoom'];var type=getFunctionType(parameters,propertySpec);var expression;var isStep=false;if(type==='interval'){expression=['step',input];isStep=true;}else if(type==='exponential'){var base=parameters.base!==void 0?parameters.base:1;expression=[getInterpolateOperator(parameters),base===1?['linear']:['exponential',base],input];}else{throw new Error("Unknown zoom function type \"".concat(type,"\""));}var _iterator60=index_es_createForOfIteratorHelper(stops),_step60;try{for(_iterator60.s();!(_step60=_iterator60.n()).done;){var stop=_step60.value;appendStopPair(expression,stop[0],stop[1],isStep);}}catch(err){_iterator60.e(err);}finally{_iterator60.f();}fixupDegenerateStepCurve(expression);return expression;}function fixupDegenerateStepCurve(expression){if(expression[0]==='step'&&expression.length===3){expression.push(0);expression.push(expression[3]);}}function appendStopPair(curve,input,output,isStep){if(curve.length>3&&input===curve[curve.length-2]){return;}if(!(isStep&&curve.length===2)){curve.push(input);}curve.push(output);}function getFunctionType(parameters,propertySpec){if(parameters.type){return parameters.type;}else{return propertySpec.expression.interpolated?'exponential':'interval';}}function convertTokenString(s){var result=['concat'];var re=/{([^{}]+)}/g;var pos=0;for(var match=re.exec(s);match!==null;match=re.exec(s)){var literal=s.slice(pos,re.lastIndex-match[0].length);pos=re.lastIndex;if(literal.length>0)result.push(literal);result.push(['get',match[1]]);}if(result.length===1){return s;}if(pos=2&&filter[1]!=='$id'&&filter[1]!=='$type';case'in':return filter.length>=3&&(typeof filter[1]!=='string'||Array.isArray(filter[2]));case'!in':case'!has':case'none':return false;case'==':case'!=':case'>':case'>=':case'<':case'<=':return filter.length!==3||Array.isArray(filter[1])||Array.isArray(filter[2]);case'any':case'all':var _iterator61=index_es_createForOfIteratorHelper(filter.slice(1)),_step61;try{for(_iterator61.s();!(_step61=_iterator61.n()).done;){var f=_step61.value;if(!isExpressionFilter(f)&&typeof f!=='boolean'){return false;}}}catch(err){_iterator61.e(err);}finally{_iterator61.f();}return true;default:return true;}}function createFilter(filter){var scope=arguments.length>1&&arguments[1]!==undefined?arguments[1]:'';var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;var layerType=arguments.length>3&&arguments[3]!==undefined?arguments[3]:'fill';if(filter===null||filter===void 0){return{filter:function filter(){return true;},needGeometry:false,needFeature:false};}if(!isExpressionFilter(filter)){filter=convertFilter$1(filter);}var filterExp=filter;var staticFilter=true;try{staticFilter=extractStaticFilter(filterExp);}catch(e){console.warn("Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\nand paste the contents of this message in the report.\nThank you!\nFilter Expression:\n".concat(JSON.stringify(filterExp,null,2),"\n "));}var filterFunc=null;var filterSpec=null;if(layerType!=='background'&&layerType!=='sky'&&layerType!=='slot'){filterSpec=v8["filter_".concat(layerType)];var compiledStaticFilter=createExpression(staticFilter,filterSpec,scope,options);if(compiledStaticFilter.result==='error'){throw new Error(compiledStaticFilter.value.map(function(err){return"".concat(err.key,": ").concat(err.message);}).join(', '));}else{filterFunc=function filterFunc(globalProperties,feature,canonical){return compiledStaticFilter.value.evaluate(globalProperties,feature,{},canonical);};}}var dynamicFilterFunc=null;var needFeature=null;if(staticFilter!==filterExp){var compiledDynamicFilter=createExpression(filterExp,filterSpec,scope,options);if(compiledDynamicFilter.result==='error'){throw new Error(compiledDynamicFilter.value.map(function(err){return"".concat(err.key,": ").concat(err.message);}).join(', '));}else{dynamicFilterFunc=function dynamicFilterFunc(globalProperties,feature,canonical,featureTileCoord,featureDistanceData){return compiledDynamicFilter.value.evaluate(globalProperties,feature,{},canonical,void 0,void 0,featureTileCoord,featureDistanceData);};needFeature=!isFeatureConstant(compiledDynamicFilter.value.expression);}}filterFunc=filterFunc;var needGeometry=geometryNeeded(staticFilter);return{// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment filter:filterFunc,// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -dynamicFilter:dynamicFilterFunc?dynamicFilterFunc:void 0,needGeometry:needGeometry,needFeature:!!needFeature};}function extractStaticFilter(filter){if(!isDynamicFilter(filter)){return filter;}var result=deepUnbundle(filter);unionDynamicBranches(result);result=collapseDynamicBooleanExpressions(result);return result;}function collapseDynamicBooleanExpressions(expression){if(!Array.isArray(expression)){return expression;}var collapsed=collapsedExpression(expression);if(collapsed===true){return collapsed;}else{return collapsed.map(function(subExpression){return collapseDynamicBooleanExpressions(subExpression);});}}function unionDynamicBranches(filter){var isBranchingDynamically=false;var branches=[];if(filter[0]==='case'){for(var i=1;i','>=','<','<=','to-boolean']);function collapsedExpression(expression){if(dynamicConditionExpressions.has(expression[0])){for(var i=1;ib?1:0;}function geometryNeeded(filter){if(!Array.isArray(filter))return false;if(filter[0]==='within'||filter[0]==='distance')return true;for(var index=1;index','>=','<','<=','to-boolean']);function collapsedExpression(expression){if(dynamicConditionExpressions.has(expression[0])){for(var i=1;ib?1:0;}function geometryNeeded(filter){if(!Array.isArray(filter))return false;if(filter[0]==='within'||filter[0]==='distance')return true;for(var index=1;index'||op==='<='||// eslint-disable-next-line @typescript-eslint/no-unsafe-argument op==='>='?convertComparisonOp$1(filter[1],filter[2],op):// eslint-disable-next-line @typescript-eslint/no-unsafe-argument @@ -85019,10 +85096,10 @@ op==='any'?convertDisjunctionOp(filter.slice(1)):op==='all'?['all'].concat(filte op==='in'?convertInOp$1(filter[1],filter.slice(2)):// eslint-disable-next-line @typescript-eslint/no-unsafe-argument op==='!in'?convertNegation(convertInOp$1(filter[1],filter.slice(2))):// eslint-disable-next-line @typescript-eslint/no-unsafe-argument op==='has'?convertHasOp$1(filter[1]):// eslint-disable-next-line @typescript-eslint/no-unsafe-argument -op==='!has'?convertNegation(convertHasOp$1(filter[1])):true;return converted;}function convertComparisonOp$1(property,value,op){switch(property){case'$type':return["filter-type-".concat(op),value];case'$id':return["filter-id-".concat(op),value];default:return["filter-".concat(op),property,value];}}function convertDisjunctionOp(filters){return['any'].concat(filters.map(convertFilter$1));}function convertInOp$1(property,values){if(values.length===0){return false;}switch(property){case'$type':return["filter-type-in",['literal',values]];case'$id':return["filter-id-in",['literal',values]];default:if(values.length>200&&!values.some(function(v){return index_es_typeof(v)!==index_es_typeof(values[0]);})){return['filter-in-large',property,['literal',values.sort(compare)]];}else{return['filter-in-small',property,['literal',values]];}}}function convertHasOp$1(property){switch(property){case'$type':return true;case'$id':return["filter-has-id"];default:return["filter-has",property];}}function convertNegation(filter){return['!',filter];}function convertFilter(filter){return _convertFilter(filter,{});}function _convertFilter(filter,expectedTypes){if(isExpressionFilter(filter)){return filter;}if(!filter)return true;var op=filter[0];if(filter.length<=1)return op!=='any';var converted;if(op==='=='||op==='!='||op==='<'||op==='>'||op==='<='||op==='>='){var _filter=index_es_slicedToArray(filter,3),property=_filter[1],value=_filter[2];converted=convertComparisonOp(property,value,op,expectedTypes);}else if(op==='any'){var children=filter.slice(1).map(function(f){var types={};var child=_convertFilter(f,types);var typechecks=runtimeTypeChecks(types);return typechecks===true?child:['case',typechecks,child,false];});return['any'].concat(children);}else if(op==='all'){var _ref114;var _children=filter.slice(1).map(function(f){return _convertFilter(f,expectedTypes);});return _children.length>1?['all'].concat(_children):(_ref114=[]).concat.apply(_ref114,index_es_toConsumableArray(_children));}else if(op==='none'){return['!',_convertFilter(['any'].concat(filter.slice(1)),{})];}else if(op==='in'){converted=convertInOp(filter[1],filter.slice(2));}else if(op==='!in'){converted=convertInOp(filter[1],filter.slice(2),true);}else if(op==='has'){converted=convertHasOp(filter[1]);}else if(op==='!has'){converted=['!',convertHasOp(filter[1])];}else{converted=true;}return converted;}function runtimeTypeChecks(expectedTypes){var conditions=[];for(var property in expectedTypes){var _get=property==='$id'?['id']:['get',property];conditions.push(['==',['typeof',_get],expectedTypes[property]]);}if(conditions.length===0)return true;if(conditions.length===1)return conditions[0];return['all'].concat(conditions);}function convertComparisonOp(property,value,op,expectedTypes){var get;if(property==='$type'){return[op,['geometry-type'],value];}else if(property==='$id'){get=['id'];}else{get=['get',property];}if(expectedTypes&&value!==null){var type=index_es_typeof(value);expectedTypes[property]=type;}if(op==='=='&&property!=='$id'&&value===null){return['all',['has',property],// missing property != null for legacy filters +op==='!has'?convertNegation(convertHasOp$1(filter[1])):true;return converted;}function convertComparisonOp$1(property,value,op){switch(property){case'$type':return["filter-type-".concat(op),value];case'$id':return["filter-id-".concat(op),value];default:return["filter-".concat(op),property,value];}}function convertDisjunctionOp(filters){return['any'].concat(filters.map(convertFilter$1));}function convertInOp$1(property,values){if(values.length===0){return false;}switch(property){case'$type':return["filter-type-in",['literal',values]];case'$id':return["filter-id-in",['literal',values]];default:if(values.length>200&&!values.some(function(v){return index_es_typeof(v)!==index_es_typeof(values[0]);})){return['filter-in-large',property,['literal',values.sort(compare)]];}else{return['filter-in-small',property,['literal',values]];}}}function convertHasOp$1(property){switch(property){case'$type':return true;case'$id':return["filter-has-id"];default:return["filter-has",property];}}function convertNegation(filter){return['!',filter];}function convertFilter(filter){return _convertFilter(filter,{});}function _convertFilter(filter,expectedTypes){if(isExpressionFilter(filter)){return filter;}if(!filter)return true;var op=filter[0];if(filter.length<=1)return op!=='any';var converted;if(op==='=='||op==='!='||op==='<'||op==='>'||op==='<='||op==='>='){var _filter=index_es_slicedToArray(filter,3),property=_filter[1],value=_filter[2];converted=convertComparisonOp(property,value,op,expectedTypes);}else if(op==='any'){var children=filter.slice(1).map(function(f){var types={};var child=_convertFilter(f,types);var typechecks=runtimeTypeChecks(types);return typechecks===true?child:['case',typechecks,child,false];});return['any'].concat(children);}else if(op==='all'){var _ref117;var _children=filter.slice(1).map(function(f){return _convertFilter(f,expectedTypes);});return _children.length>1?['all'].concat(_children):(_ref117=[]).concat.apply(_ref117,index_es_toConsumableArray(_children));}else if(op==='none'){return['!',_convertFilter(['any'].concat(filter.slice(1)),{})];}else if(op==='in'){converted=convertInOp(filter[1],filter.slice(2));}else if(op==='!in'){converted=convertInOp(filter[1],filter.slice(2),true);}else if(op==='has'){converted=convertHasOp(filter[1]);}else if(op==='!has'){converted=['!',convertHasOp(filter[1])];}else{converted=true;}return converted;}function runtimeTypeChecks(expectedTypes){var conditions=[];for(var property in expectedTypes){var _get=property==='$id'?['id']:['get',property];conditions.push(['==',['typeof',_get],expectedTypes[property]]);}if(conditions.length===0)return true;if(conditions.length===1)return conditions[0];return['all'].concat(conditions);}function convertComparisonOp(property,value,op,expectedTypes){var get;if(property==='$type'){return[op,['geometry-type'],value];}else if(property==='$id'){get=['id'];}else{get=['get',property];}if(expectedTypes&&value!==null){var type=index_es_typeof(value);expectedTypes[property]=type;}if(op==='=='&&property!=='$id'&&value===null){return['all',['has',property],// missing property != null for legacy filters ['==',get,null]];}else if(op==='!='&&property!=='$id'&&value===null){return['any',['!',['has',property]],// missing property != null for legacy filters -['!=',get,null]];}return[op,get,value];}function convertInOp(property,values){var negate=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(values.length===0)return negate;var get;if(property==='$type'){get=['geometry-type'];}else if(property==='$id'){get=['id'];}else{get=['get',property];}var uniformTypes=true;var type=index_es_typeof(values[0]);var _iterator60=index_es_createForOfIteratorHelper(values),_step60;try{for(_iterator60.s();!(_step60=_iterator60.n()).done;){var value=_step60.value;if(index_es_typeof(value)!==type){uniformTypes=false;break;}}}catch(err){_iterator60.e(err);}finally{_iterator60.f();}if(uniformTypes&&(type==='string'||type==='number')){var uniqueValues=values.sort().filter(function(v,i){return i===0||values[i-1]!==v;});return['match',get,uniqueValues,!negate,negate];}return[negate?'all':'any'].concat(// eslint-disable-next-line @typescript-eslint/no-explicit-any -values.map(function(v){return[negate?'!=':'==',get,v];}));}function convertHasOp(property){if(property==='$type'){return true;}else if(property==='$id'){return['!=',['id'],null];}else{return['has',property];}}function migrateToExpressions(style){var converted=[];eachLayer(style,function(layer){if(layer.filter){layer.filter=convertFilter(layer.filter);}});eachProperty(style,{paint:true,layout:true},function(_ref115){var path=_ref115.path,value=_ref115.value,reference=_ref115.reference,set=_ref115.set;if(isExpression(value))return;if(index_es_typeof(value)==='object'&&!Array.isArray(value)){set(convertFunction(value,reference));converted.push(path.join('.'));}else if(reference.tokens&&typeof value==='string'){set(convertTokenString(value));}});return style;}function migrate(style){var migrated=false;if(style.version===7){style=migrateToV8(style);migrated=true;}if(style.version===8){style=migrateToExpressions(style);migrated=true;}if(!migrated){throw new Error("Cannot migrate from ".concat(style.version));}return style;}var MAPBOX_URL_RE=/^mapbox:\/\/(.*)/;function composite(style){var styleIDs=[];var sourceIDs=[];var compositedSourceLayers=[];for(var id in style.sources){var _source=style.sources[id];if(_source.type!=='vector')continue;var match=MAPBOX_URL_RE.exec(_source.url);if(!match)continue;styleIDs.push(id);sourceIDs.push(match[1]);}if(styleIDs.length<2)return style;styleIDs.forEach(function(id){delete style.sources[id];});var compositeID=sourceIDs.join(',');style.sources[compositeID]={'type':'vector','url':"mapbox://".concat(compositeID)};style.layers.forEach(function(layer){if(styleIDs.includes(layer.source)){layer.source=compositeID;if('source-layer'in layer){if(compositedSourceLayers.includes(layer['source-layer'])){throw new Error('Conflicting source layer names');}else{compositedSourceLayers.push(layer['source-layer']);}}}});return style;}var refProperties=(/* unused pure expression or super */ null && (['type','source','source-layer','minzoom','maxzoom','filter','layout']));function deref(layer,parent){var result={};for(var k in layer){if(k!=='ref'){result[k]=layer[k];}}refProperties.forEach(function(k){if(k in parent){result[k]=parent[k];}});return result;}function derefLayers(layers){layers=layers.slice();var map=/* @__PURE__ */Object.create(null);var _iterator61=index_es_createForOfIteratorHelper(layers),_step61;try{for(_iterator61.s();!(_step61=_iterator61.n()).done;){var _layer4=_step61.value;map[_layer4.id]=_layer4;}}catch(err){_iterator61.e(err);}finally{_iterator61.f();}for(var i=0;i=0){layer.source=compositeID;if('source-layer'in layer){if(compositedSourceLayers.indexOf(layer['source-layer'])>=0){throw new Error('Conflicting source layer names');}else{compositedSourceLayers.push(layer['source-layer']);}}}});return style;}var refProperties=(/* unused pure expression or super */ null && (['type','source','source-layer','minzoom','maxzoom','filter','layout']));function deref(layer,parent){var result={};for(var k in layer){if(k!=='ref'){result[k]=layer[k];}}refProperties.forEach(function(k){if(k in parent){result[k]=parent[k];}});return result;}function derefLayers(layers){layers=layers.slice();var map=/* @__PURE__ */Object.create(null);var _iterator63=index_es_createForOfIteratorHelper(layers),_step63;try{for(_iterator63.s();!(_step63=_iterator63.n()).done;){var _layer4=_step63.value;map[_layer4.id]=_layer4;}}catch(err){_iterator63.e(err);}finally{_iterator63.f();}for(var i=0;i0&&arguments[0]!==undefined?arguments[0]:[];var after=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var commands=arguments.length>2?arguments[2]:undefined;before=before||[];after=after||[];var beforeOrder=before.map(pluckId);var afterOrder=after.map(pluckId);var beforeIndex=before.reduce(indexById,{});var afterIndex=after.reduce(indexById,{});var tracker=beforeOrder.slice();var i;var d;var importId;var insertBefore;for(i=0,d=0;i0&&arguments[0]!==undefined?arguments[0]:[];var after=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var commands=arguments.length>2?arguments[2]:undefined;before=before||[];after=after||[];var beforeOrder=before.map(pluckId);var afterOrder=after.map(pluckId);var beforeIndex=before.reduce(indexById,{});var afterIndex=after.reduce(indexById,{});var tracker=beforeOrder.slice();var i,d,importId,insertBefore;for(i=0,d=0;ispecMax){return[new ValidationError(key,value,"".concat(value," is greater than the maximum value ").concat(specMax))];}}return[];}function hasObjectStops(value){var stops=value['stops'];return Array.isArray(stops)&&Array.isArray(stops[0])&&index_es_isObject(stops[0][0]);}function validateFunction(options){var key=options.key;var value=options.value;if(!index_es_isObject(value)){return[new ValidationError(key,value,"object expected, ".concat(getType(value)," found"))];}var functionValueSpec=options.valueSpec;var functionType=unbundle(value.type);var stopKeyType;var stopDomainValues={};var previousStopDomainValue;var previousStopDomainZoom;var isZoomFunction=functionType!=='categorical'&&value.property===void 0;var isPropertyFunction=!isZoomFunction;var isZoomAndPropertyFunction=hasObjectStops(value);var errors=validateObject({key:options.key,value:options.value,// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment +value:array[i],valueSpec:arrayElementSpec,style:style,styleSpec:styleSpec,key:"".concat(key,"[").concat(i,"]")},true));}return errors;}function validateNumber(options){var key=options.key;var value=options.value;var valueSpec=options.valueSpec;if(!index_es_isNumber(value)){return[new ValidationError(key,value,"number expected, ".concat(getType(value)," found"))];}if(value!==value){return[new ValidationError(key,value,"number expected, NaN found")];}if('minimum'in valueSpec){var specMin=valueSpec.minimum;if(Array.isArray(valueSpec.minimum)){var i=options.arrayIndex;specMin=valueSpec.minimum[i];}if(valuespecMax){return[new ValidationError(key,value,"".concat(value," is greater than the maximum value ").concat(specMax))];}}return[];}function hasObjectStops(value){var stops=value['stops'];return Array.isArray(stops)&&Array.isArray(stops[0])&&index_es_isObject(stops[0][0]);}function validateFunction(options){var key=options.key;var value=options.value;if(!index_es_isObject(value)){return[new ValidationError(key,value,"object expected, ".concat(getType(value)," found"))];}var functionValueSpec=options.valueSpec;var functionType=unbundle(value.type);var stopKeyType;var stopDomainValues={};var previousStopDomainValue;var previousStopDomainZoom;var isZoomFunction=functionType!=='categorical'&&value.property===void 0;var isPropertyFunction=!isZoomFunction;var isZoomAndPropertyFunction=hasObjectStops(value);var errors=validateObject({key:options.key,value:options.value,// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment valueSpec:options.styleSpec["function"],style:options.style,styleSpec:options.styleSpec,objectElementValidators:{stops:validateFunctionStops,"default":validateFunctionDefault}});if(functionType==='identity'&&isZoomFunction){errors.push(new ValidationError(options.key,options.value,'missing required property "property"'));}if(functionType!=='identity'&&!value.stops){errors.push(new ValidationError(options.key,options.value,'missing required property "stops"'));}if(functionType==='exponential'&&functionValueSpec.expression&&!supportsInterpolation(functionValueSpec)){errors.push(new ValidationError(options.key,options.value,'exponential functions not supported'));}if(options.styleSpec.$version>=8){if(isPropertyFunction&&!supportsPropertyExpression(functionValueSpec)){errors.push(new ValidationError(options.key,options.value,'property functions not supported'));}else if(isZoomFunction&&!supportsZoomExpression(functionValueSpec)){errors.push(new ValidationError(options.key,options.value,'zoom functions not supported'));}}if((functionType==='categorical'||isZoomAndPropertyFunction)&&value.property===void 0){errors.push(new ValidationError(options.key,options.value,'"property" property is required'));}return errors;function validateFunctionStops(options2){if(functionType==='identity'){return[new ValidationError(options2.key,options2.value,'identity function may not have a "stops" property')];}var errors2=[];var value2=options2.value;errors2=errors2.concat(validateArray({key:options2.key,value:value2,valueSpec:options2.valueSpec,style:options2.style,styleSpec:options2.styleSpec,arrayElementValidator:validateFunctionStop}));if(Array.isArray(value2)&&value2.length===0){errors2.push(new ValidationError(options2.key,value2,'array must have at least one stop'));}return errors2;}function validateFunctionStop(options2){var errors2=[];var value2=options2.value;var key2=options2.key;if(!Array.isArray(value2)){return[new ValidationError(key2,value2,"array expected, ".concat(getType(value2)," found"))];}if(value2.length!==2){return[new ValidationError(key2,value2,"array length 2 expected, length ".concat(value2.length," found"))];}if(isZoomAndPropertyFunction){if(!index_es_isObject(value2[0])){return[new ValidationError(key2,value2,"object expected, ".concat(getType(value2[0])," found"))];}var stopKey=value2[0];if(stopKey.zoom===void 0){return[new ValidationError(key2,value2,'object stop key must have zoom')];}if(stopKey.value===void 0){return[new ValidationError(key2,value2,'object stop key must have value')];}var nextStopDomainZoom=unbundle(stopKey.zoom);if(typeof nextStopDomainZoom!=='number'){return[new ValidationError(key2,stopKey.zoom,'stop zoom values must be numbers')];}if(previousStopDomainZoom&&previousStopDomainZoom>nextStopDomainZoom){return[new ValidationError(key2,stopKey.zoom,'stop zoom values must appear in ascending order')];}if(nextStopDomainZoom!==previousStopDomainZoom){previousStopDomainZoom=nextStopDomainZoom;previousStopDomainValue=void 0;stopDomainValues={};}errors2=errors2.concat(validateObject({key:"".concat(key2,"[0]"),value:value2[0],valueSpec:{zoom:{}},style:options2.style,styleSpec:options2.styleSpec,objectElementValidators:{zoom:validateNumber,value:validateStopDomainValue}}));}else{errors2=errors2.concat(validateStopDomainValue({key:"".concat(key2,"[0]"),value:value2[0],style:options2.style,styleSpec:options2.styleSpec},value2));}if(isExpression(deepUnbundle(value2[1]))){return errors2.concat([new ValidationError("".concat(key2,"[1]"),value2[1],'expressions are not allowed in function stops.')]);}return errors2.concat(validate({key:"".concat(key2,"[1]"),value:value2[1],valueSpec:functionValueSpec,style:options2.style,styleSpec:options2.styleSpec}));}function validateStopDomainValue(options2,stop){var type=getType(options2.value);var value2=unbundle(options2.value);var reportValue=options2.value!==null?options2.value:stop;if(!stopKeyType){stopKeyType=type;}else if(type!==stopKeyType){return[new ValidationError(options2.key,reportValue,"".concat(type," stop domain type must match previous stop domain type ").concat(stopKeyType))];}if(type!=='number'&&type!=='string'&&type!=='boolean'&&typeof value2!=='number'&&typeof value2!=='string'&&typeof value2!=='boolean'){return[new ValidationError(options2.key,reportValue,'stop domain value must be a number, string, or boolean')];}if(type!=='number'&&functionType!=='categorical'){var message="number expected, ".concat(type," found");if(supportsPropertyExpression(functionValueSpec)&&functionType===void 0){message+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.';}return[new ValidationError(options2.key,reportValue,message)];}if(functionType==='categorical'&&type==='number'&&(typeof value2!=='number'||!isFinite(value2)||Math.floor(value2)!==value2)){return[new ValidationError(options2.key,reportValue,"integer expected, found ".concat(String(value2)))];}if(functionType!=='categorical'&&type==='number'&&typeof value2==='number'&&typeof previousStopDomainValue==='number'&&previousStopDomainValue!==void 0&&value2=2){if(!index_es_isString(value[1])){errors.push(new ValidationError("".concat(key,"[1]"),value[1],"string expected, ".concat(getType(value[1])," found")));}}for(var i=2;i':case'>=':if(value.length>=2&&unbundle(value[1])==='$type'){errors.push(new ValidationError(key,value,"\"$type\" cannot be use with operator \"".concat(value[0],"\"")));}if(value.length!==3){errors.push(new ValidationError(key,value,"filter array for operator \"".concat(value[0],"\" must have 3 elements")));}validate();break;case'==':case'!=':if(value.length!==3){errors.push(new ValidationError(key,value,"filter array for operator \"".concat(value[0],"\" must have 3 elements")));}validate();break;case'in':case'!in':validate();break;case'any':case'all':case'none':for(var i=1;i':case'>=':if(value.length>=2&&unbundle(value[1])==='$type'){errors.push(new ValidationError(key,value,"\"$type\" cannot be use with operator \"".concat(value[0],"\"")));}if(value.length!==3){errors.push(new ValidationError(key,value,"filter array for operator \"".concat(value[0],"\" must have 3 elements")));}validate();break;case'==':case'!=':if(value.length!==3){errors.push(new ValidationError(key,value,"filter array for operator \"".concat(value[0],"\" must have 3 elements")));}validate();break;case'in':case'!in':validate();break;case'any':case'all':case'none':for(var i=1;i1&&arguments[1]!==undefined?arguments[1]:false;var value=options.value;var valueSpec=options.valueSpec;var styleSpec=options.styleSpec;if(valueSpec.expression){if(isFunction(unbundle(value)))return validateFunction(options);if(isExpression(deepUnbundle(value)))return validateExpression(options);}if(valueSpec.type&&VALIDATORS[valueSpec.type]){var errors2=VALIDATORS[valueSpec.type](options);if(arrayAsExpression===true&&errors2.length>0&&Array.isArray(options.value)){return validateExpression(options);}return errors2;}var errors=validateObject(Object.assign({},options,{// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -valueSpec:valueSpec.type?styleSpec[valueSpec.type]:valueSpec}));return errors;}function validateObject(options){var key=options.key;var object=options.value;var elementSpecs=options.valueSpec||{};var elementValidators=options.objectElementValidators||{};var style=options.style;var styleSpec=options.styleSpec;if(!index_es_isObject(object)){return[new ValidationError(key,object,"object expected, ".concat(getType(object)," found"))];}var errors=[];for(var objectKey in object){var elementSpecKey=objectKey.split('.')[0];var elementSpec=elementSpecs[elementSpecKey]||elementSpecs['*'];var validateElement=void 0;if(elementValidators[elementSpecKey]){validateElement=elementValidators[elementSpecKey];}else if(elementSpecs[elementSpecKey]){validateElement=validate;}else if(elementValidators['*']){validateElement=elementValidators['*'];}else if(elementSpecs['*']){validateElement=validate;}if(!validateElement){errors.push(new ValidationWarning(key,object[objectKey],"unknown property \"".concat(objectKey,"\"")));continue;}errors=errors.concat(validateElement({key:(key?"".concat(key,"."):key)+objectKey,value:object[objectKey],valueSpec:elementSpec,style:style,styleSpec:styleSpec,object:object,objectKey:objectKey},object));}for(var _elementSpecKey in elementSpecs){if(elementValidators[_elementSpecKey]){continue;}var _elementSpec=elementSpecs[_elementSpecKey];if(_elementSpec.required&&_elementSpec['default']===void 0&&object[_elementSpecKey]===void 0){errors.push(new ValidationError(key,object,"missing required property \"".concat(_elementSpecKey,"\"")));}}return errors;}function validateGlyphsUrl(_ref119){var key=_ref119.key,value=_ref119.value;var errors=validateString({key:key,value:value});if(errors.length)return errors;var str=value;if(!str.includes('{fontstack}')){errors.push(new ValidationError(key,value,'"glyphs" url must include a "{fontstack}" token'));}if(!str.includes('{range}')){errors.push(new ValidationError(key,value,'"glyphs" url must include a "{range}" token'));}return errors;}function validateStyle$2(style){var styleSpec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:v8;var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var errors=validateObject({key:options.key||'',value:style,// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment -valueSpec:Object.assign({},styleSpec.$root,// Skip validation of the root properties that are not defined in the style spec (e.g. 'owner'). -{'*':{type:'*'}}),styleSpec:styleSpec,style:style,objectElementValidators:{glyphs:validateGlyphsUrl}});return errors;}function validateStyle$1(style){var styleSpec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:v8;var errors=validateStyle$2(style,styleSpec);return sortErrors(errors);}function sortErrors(errors){return errors.slice().sort(function(a,b){return a.line&&b.line?a.line-b.line:0;});}function readStyle(style){if(style instanceof String||typeof style==='string'||ArrayBuffer.isView(style)){try{var str=style.toString();JSON.parse(str);return index_es_parse(str);}catch(e){throw new ParsingError(e);}}return style;}var LBRACE=0;var RBRACE=1;var LBRACKET=2;var RBRACKET=3;var STRING=4;var index_es_NUMBER=5;var TRUE=6;var FALSE=7;var NULL=8;function tokenize(s){var tokens=[];var pos=0;var len=s.length;while(pos=48&&_ch<=57||_ch===45||_ch===43||_ch===46||_ch===101||_ch===69)pos++;else break;}tokens.push(index_es_NUMBER,start,pos);}}return tokens;}function parseTokens(s,tokens){var i=0;var lineOffsets=[0];for(var j=0;j>1;if(lineOffsets[mid]<=pos)lo=mid;else hi=mid-1;}return lo+1;}function setLine(obj,line){Object.defineProperty(obj,'__line__',{value:line});return obj;}function parseValue(){var type=tokens[i];var start=tokens[i+1];var end=tokens[i+2];i+=3;var line=lineNum(start);if(type===LBRACE){var obj=setLine({},line);while(tokens[i]!==RBRACE){var key=JSON.parse(s.slice(tokens[i+1],tokens[i+2]));i+=3;obj[key]=parseValue();}i+=3;return obj;}if(type===LBRACKET){var arr=setLine([],line);while(tokens[i]!==RBRACKET)arr.push(parseValue());i+=3;return arr;}if(type===STRING)return setLine(new String(JSON.parse(s.slice(start,end))),line);if(type===index_es_NUMBER)return setLine(new Number(+s.slice(start,end)),line);if(type===TRUE)return setLine(new Boolean(true),line);if(type===FALSE)return setLine(new Boolean(false),line);return null;}return parseValue();}function index_es_parse(s){return parseTokens(s,tokenize(s));}function validateStyle(style){var styleSpec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:v8;var s=style;try{s=readStyle(s);}catch(e){return[e];}return validateStyle$1(s,styleSpec);}var MAPBOX_SOURCE_URL_RE=/^mapbox:\/\/([^/]*)$/;var MAPBOX_GLYPH_URL_RE=/^mapbox:\/\/fonts\/([^/]*)\/{fontstack}\/{range}.pbf$/;var MAPBOX_SPRITE_URL_RE=/^mapbox:\/\/sprites\/([^/]*)\/([^/]*)\/?([^/]*)?$/;var VISIBILITY_RE=/^(public|private)$/;var SUPPORTED_SPEC_VERSION=8;var MAX_SOURCES_IN_STYLE=15;function isValid(value,regex){if(!value||!index_es_isString(value))return true;return!!value.match(regex);}function getSourceCount(source){if('url'in source){return source.url.split(',').length;}else{return 0;}}function getAllowedKeyErrors(obj,keys,path){var allowed=new Set(keys);var errors=[];Object.keys(obj).forEach(function(k){if(!allowed.has(k)){var prop=null;errors.push(new ValidationError(prop,obj[k],"Unsupported property \"".concat(k,"\"")));}});return errors;}var acceptedSourceTypes=/* @__PURE__ */(/* unused pure expression or super */ null && (new Set(['vector','raster','raster-dem','raster-array','model','batched-model'])));function getSourceErrors(source,i){var errors=[];if(!acceptedSourceTypes.has(String(source.type))){errors.push(new ValidationError("sources[".concat(i,"].type"),source.type,"Expected one of [".concat(Array.from(acceptedSourceTypes).join(', '),"]")));}if(!('url'in source)||!isValid(source.url,MAPBOX_SOURCE_URL_RE)){errors.push(new ValidationError("sources[".concat(i,"].url"),source.url,'Expected a valid Mapbox tileset url'));}return errors;}function getMaxSourcesErrors(sourcesCount){var errors=[];if(sourcesCount>MAX_SOURCES_IN_STYLE){errors.push(new ValidationError('sources',null,"Styles must contain ".concat(MAX_SOURCES_IN_STYLE," or fewer sources")));}return errors;}function getSourcesErrors(sources){var errors=[];var sourcesCount=0;Object.keys(sources).forEach(function(s,i){var sourceErrors=getSourceErrors(sources[s],i);if(!sourceErrors.length){sourcesCount=sourcesCount+getSourceCount(sources[s]);}errors.push.apply(errors,index_es_toConsumableArray(sourceErrors));});return{errors:errors,sourcesCount:sourcesCount};}function getImportErrors(){var imports=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var errors=[];var _validateImports=function validateImports(){var imports2=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var _iterator65=index_es_createForOfIteratorHelper(imports2),_step65;try{for(_iterator65.s();!(_step65=_iterator65.n()).done;){var importSpec=_step65.value;var style=importSpec.data;if(!style)continue;if(style.imports){_validateImports(style.imports);}errors=errors.concat(getRootErrors(style,Object.keys(v8.$root)));if(style.sources){var sourcesErrors=getSourcesErrors(style.sources);errors=errors.concat(sourcesErrors.errors);}}}catch(err){_iterator65.e(err);}finally{_iterator65.f();}};_validateImports(imports);if(imports.length!==new Set(imports.map(function(i){return i.id;})).size){errors.push(new ValidationError(null,null,'Duplicate ids of imports'));}return errors;}function getRootErrors(style,specKeys){var errors=[];var optionalRootProperties=['owner','id','cacheControl','draft','created','modified','visibility','protected','models','lights'];var allowedKeyErrors=getAllowedKeyErrors(style,[].concat(index_es_toConsumableArray(specKeys),optionalRootProperties));errors.push.apply(errors,index_es_toConsumableArray(allowedKeyErrors));if(style.version>SUPPORTED_SPEC_VERSION||style.version1&&arguments[1]!==undefined?arguments[1]:v8;var s=style;try{s=readStyle(s);}catch(e){return[e];}var errors=validateStyle$1(s,styleSpec).concat(getRootErrors(s,Object.keys(v8.$root)));var sourcesCount=0;if(s.sources){var sourcesErrors=getSourcesErrors(s.sources);sourcesCount+=sourcesErrors.sourcesCount;errors=errors.concat(sourcesErrors.errors);}if(s.imports){var importsErrors=getImportErrors(s.imports);errors=errors.concat(importsErrors);}errors=errors.concat(getMaxSourcesErrors(sourcesCount));return errors;}var expression={StyleExpression:StyleExpression,isExpression:isExpression,isExpressionFilter:isExpressionFilter,createExpression:createExpression,createPropertyExpression:createPropertyExpression,normalizePropertyExpression:normalizePropertyExpression,ZoomConstantExpression:ZoomConstantExpression,ZoomDependentExpression:ZoomDependentExpression,StylePropertyFunction:StylePropertyFunction};var styleFunction=(/* unused pure expression or super */ null && ({convertFunction:convertFunction,createFunction:createFunction,isFunction:isFunction}));var visit=(/* unused pure expression or super */ null && ({eachSource:eachSource,eachLayer:eachLayer,eachProperty:eachProperty})); -;// ./src/mapboxgl/overlay/L7Layer.js +valueSpec:styleSpec["iconset_".concat(type)],style:style,styleSpec:styleSpec}));if(isSourceIconset(type,iconset)){var _source5=style.sources&&style.sources[iconset.source];var sourceType=_source5&&unbundle(_source5.type);if(!_source5){errors.push(new ValidationError(key,iconset.source,"source \"".concat(iconset.source,"\" not found")));}else if(sourceType!=='raster-array'){errors.push(new ValidationError(key,iconset.source,"iconset cannot be used with a source of type ".concat(String(sourceType),", it only be used with a \"raster-array\" source type")));}}return errors;}var VALIDATORS={'*':function _(){return[];},'array':validateArray,'boolean':validateBoolean,'number':validateNumber,'color':validateColor,'enum':validateEnum,'filter':validateFilter,'function':validateFunction,'layer':validateLayer,'object':validateObject,'source':validateSource,'model':validateModel,'light':validateLight,'light-3d':validateLights,'terrain':validateTerrain,'fog':validateFog,'string':validateString,'formatted':validateFormatted,'resolvedImage':validateImage,'projection':validateProjection,'import':validateImport,'iconset':validateIconset};function validate(options){var arrayAsExpression=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;var value=options.value;var valueSpec=options.valueSpec;var styleSpec=options.styleSpec;if(valueSpec.expression){if(isFunction(unbundle(value)))return validateFunction(options);if(isExpression(deepUnbundle(value)))return validateExpression(options);}if(valueSpec.type&&VALIDATORS[valueSpec.type]){var errors2=VALIDATORS[valueSpec.type](options);if(arrayAsExpression===true&&errors2.length>0&&Array.isArray(options.value)){return validateExpression(options);}return errors2;}var errors=validateObject(Object.assign({},options,{// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment +valueSpec:valueSpec.type?styleSpec[valueSpec.type]:valueSpec}));return errors;}function validateObject(options){var key=options.key;var object=options.value;var elementSpecs=options.valueSpec||{};var elementValidators=options.objectElementValidators||{};var style=options.style;var styleSpec=options.styleSpec;if(!index_es_isObject(object)){return[new ValidationError(key,object,"object expected, ".concat(getType(object)," found"))];}var errors=[];for(var objectKey in object){var elementSpecKey=objectKey.split('.')[0];var elementSpec=elementSpecs[elementSpecKey]||elementSpecs['*'];var validateElement=void 0;if(elementValidators[elementSpecKey]){validateElement=elementValidators[elementSpecKey];}else if(elementSpecs[elementSpecKey]){validateElement=validate;}else if(elementValidators['*']){validateElement=elementValidators['*'];}else if(elementSpecs['*']){validateElement=validate;}if(!validateElement){errors.push(new ValidationWarning(key,object[objectKey],"unknown property \"".concat(objectKey,"\"")));continue;}errors=errors.concat(validateElement({key:(key?"".concat(key,"."):key)+objectKey,value:object[objectKey],// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment +valueSpec:elementSpec,style:style,styleSpec:styleSpec,object:object,objectKey:objectKey},object));}for(var _elementSpecKey in elementSpecs){if(elementValidators[_elementSpecKey]){continue;}var _elementSpec=elementSpecs[_elementSpecKey];if(_elementSpec.required&&_elementSpec['default']===void 0&&object[_elementSpecKey]===void 0){errors.push(new ValidationError(key,object,"missing required property \"".concat(_elementSpecKey,"\"")));}}return errors;}function validateGlyphsUrl(_ref122){var key=_ref122.key,value=_ref122.value;var errors=validateString({key:key,value:value});if(errors.length)return errors;var str=value;if(str.indexOf('{fontstack}')===-1){errors.push(new ValidationError(key,value,'"glyphs" url must include a "{fontstack}" token'));}if(str.indexOf('{range}')===-1){errors.push(new ValidationError(key,value,'"glyphs" url must include a "{range}" token'));}return errors;}function validateStyle$2(style){var styleSpec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:v8;var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var errors=validateObject({key:options.key||'',value:style,// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment +valueSpec:Object.assign(styleSpec.$root,// Skip validation of the root properties that are not defined in the style spec (e.g. 'owner'). +{'*':{type:'*'}}),styleSpec:styleSpec,style:style,objectElementValidators:{glyphs:validateGlyphsUrl}});return errors;}function validateStyle$1(style){var styleSpec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:v8;var errors=validateStyle$2(style,styleSpec);return sortErrors(errors);}function sortErrors(errors){return errors.slice().sort(function(a,b){return a.line&&b.line?a.line-b.line:0;});}function readStyle(style){if(style instanceof String||typeof style==='string'||ArrayBuffer.isView(style)){try{var str=style.toString();JSON.parse(str);return index_es_parse(str);}catch(e){throw new ParsingError(e);}}return style;}var LBRACE=0;var RBRACE=1;var LBRACKET=2;var RBRACKET=3;var STRING=4;var index_es_NUMBER=5;var TRUE=6;var FALSE=7;var NULL=8;function tokenize(s){var tokens=[];var pos=0;var len=s.length;while(pos=48&&_ch<=57||_ch===45||_ch===43||_ch===46||_ch===101||_ch===69)pos++;else break;}tokens.push(index_es_NUMBER,start,pos);}}return tokens;}function parseTokens(s,tokens){var i=0;var lineOffsets=[0];for(var j=0;j>1;if(lineOffsets[mid]<=pos)lo=mid;else hi=mid-1;}return lo+1;}function setLine(obj,line){Object.defineProperty(obj,'__line__',{value:line});return obj;}function parseValue(){var type=tokens[i];var start=tokens[i+1];var end=tokens[i+2];i+=3;var line=lineNum(start);if(type===LBRACE){var obj=setLine({},line);while(tokens[i]!==RBRACE){var key=JSON.parse(s.slice(tokens[i+1],tokens[i+2]));i+=3;obj[key]=parseValue();}i+=3;return obj;}if(type===LBRACKET){var arr=setLine([],line);while(tokens[i]!==RBRACKET)arr.push(parseValue());i+=3;return arr;}if(type===STRING)return setLine(new String(JSON.parse(s.slice(start,end))),line);if(type===index_es_NUMBER)return setLine(new Number(+s.slice(start,end)),line);if(type===TRUE)return setLine(new Boolean(true),line);if(type===FALSE)return setLine(new Boolean(false),line);return null;}return parseValue();}function index_es_parse(s){return parseTokens(s,tokenize(s));}function validateStyle(style){var styleSpec=arguments.length>1&&arguments[1]!==undefined?arguments[1]:v8;var s=style;try{s=readStyle(s);}catch(e){return[e];}return validateStyle$1(s,styleSpec);}var SUPPORTED_SPEC_VERSION=8;var MAX_SOURCES_IN_STYLE=15;function isValid(value,regex){if(!value||!index_es_isString(value))return true;return!!value.match(regex);}function getSourceCount(source){if('url'in source){return source.url.split(',').length;}else{return 0;}}function getAllowedKeyErrors(obj,keys,path){var allowed=new Set(keys);var errors=[];Object.keys(obj).forEach(function(k){if(!allowed.has(k)){var prop=null;errors.push(new ValidationError(prop,obj[k],"Unsupported property \"".concat(k,"\"")));}});return errors;}var acceptedSourceTypes=/* @__PURE__ */new Set(['vector','raster','raster-dem','raster-array','model','batched-model']);function getSourceErrors(source,i){var errors=[];if(!acceptedSourceTypes.has(String(source.type))){errors.push(new ValidationError("sources[".concat(i,"].type"),source.type,"Expected one of [".concat(Array.from(acceptedSourceTypes).join(', '),"]")));}var sourceUrlPattern=/^mapbox:\/\/([^/]*)$/;if(!('url'in source)||!isValid(source.url,sourceUrlPattern)){errors.push(new ValidationError("sources[".concat(i,"].url"),source.url,'Expected a valid Mapbox tileset url'));}return errors;}function getMaxSourcesErrors(sourcesCount){var errors=[];if(sourcesCount>MAX_SOURCES_IN_STYLE){errors.push(new ValidationError('sources',null,"Styles must contain ".concat(MAX_SOURCES_IN_STYLE," or fewer sources")));}return errors;}function getSourcesErrors(sources){var errors=[];var sourcesCount=0;Object.keys(sources).forEach(function(s,i){var sourceErrors=getSourceErrors(sources[s],i);if(!sourceErrors.length){sourcesCount=sourcesCount+getSourceCount(sources[s]);}errors.push.apply(errors,index_es_toConsumableArray(sourceErrors));});return{errors:errors,sourcesCount:sourcesCount};}function getImportErrors(){var imports=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var errors=[];var _validateImports=function validateImports(){var imports2=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var _iterator67=index_es_createForOfIteratorHelper(imports2),_step67;try{for(_iterator67.s();!(_step67=_iterator67.n()).done;){var importSpec=_step67.value;var style=importSpec.data;if(!style)continue;if(style.imports){_validateImports(style.imports);}errors=errors.concat(getRootErrors(style,Object.keys(v8.$root)));if(style.sources){var sourcesErrors=getSourcesErrors(style.sources);errors=errors.concat(sourcesErrors.errors);}}}catch(err){_iterator67.e(err);}finally{_iterator67.f();}};_validateImports(imports);if(imports.length!==new Set(imports.map(function(i){return i.id;})).size){errors.push(new ValidationError(null,null,'Duplicate ids of imports'));}return errors;}function getRootErrors(style,specKeys){var errors=[];var optionalRootProperties=['owner','id','cacheControl','draft','created','modified','visibility','protected','models','lights'];var allowedKeyErrors=getAllowedKeyErrors(style,[].concat(index_es_toConsumableArray(specKeys),optionalRootProperties));errors.push.apply(errors,index_es_toConsumableArray(allowedKeyErrors));if(style.version>SUPPORTED_SPEC_VERSION||style.version1&&arguments[1]!==undefined?arguments[1]:v8;var s=style;try{s=readStyle(s);}catch(e){return[e];}var errors=validateStyle$1(s,styleSpec).concat(getRootErrors(s,Object.keys(v8.$root)));var sourcesCount=0;if(s.sources){var sourcesErrors=getSourcesErrors(s.sources);sourcesCount+=sourcesErrors.sourcesCount;errors=errors.concat(sourcesErrors.errors);}if(s.imports){var importsErrors=getImportErrors(s.imports);errors=errors.concat(importsErrors);}errors=errors.concat(getMaxSourcesErrors(sourcesCount));return errors;}var expression={StyleExpression:StyleExpression,isExpression:isExpression,isExpressionFilter:isExpressionFilter,createExpression:createExpression,createPropertyExpression:createPropertyExpression,normalizePropertyExpression:normalizePropertyExpression,ZoomConstantExpression:ZoomConstantExpression,ZoomDependentExpression:ZoomDependentExpression,StylePropertyFunction:StylePropertyFunction};var styleFunction={convertFunction:convertFunction,createFunction:createFunction,isFunction:isFunction};var visit={eachSource:eachSource,eachLayer:eachLayer,eachProperty:eachProperty}; +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/L7Layer.js function L7Layer_typeof(o) { "@babel/helpers - typeof"; return L7Layer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, L7Layer_typeof(o); } function L7Layer_slicedToArray(r, e) { return L7Layer_arrayWithHoles(r) || L7Layer_iterableToArrayLimit(r, e) || L7Layer_unsupportedIterableToArray(r, e) || L7Layer_nonIterableRest(); } function L7Layer_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -85273,7 +85351,7 @@ var L7Layer = /*#__PURE__*/function (_L7LayerBase) { }); }; -;// ./src/mapboxgl/overlay/graphic/Graphic.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/graphic/Graphic.js function Graphic_typeof(o) { "@babel/helpers - typeof"; return Graphic_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Graphic_typeof(o); } function Graphic_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Graphic_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Graphic_toPropertyKey(o.key), o); } } @@ -85310,11 +85388,11 @@ function Graphic_toPrimitive(t, r) { if ("object" != Graphic_typeof(t) || !t) re var Graphic = /*#__PURE__*/function () { function Graphic(lngLat, style, attributes) { Graphic_classCallCheck(this, Graphic); - this.lngLat = Util_Util.isArray(lngLat) ? { + this.lngLat = core_Util_Util.isArray(lngLat) ? { lng: lngLat[0], lat: lngLat[1] } : lngLat; - this.style = Util_Util.extend({}, style); + this.style = core_Util_Util.extend({}, style); this.attributes = attributes; } /** @@ -85358,7 +85436,7 @@ var Graphic = /*#__PURE__*/function () { }, { key: "setLngLat", value: function setLngLat(lngLat) { - this.lngLat = Util_Util.isArray(lngLat) ? { + this.lngLat = core_Util_Util.isArray(lngLat) ? { lng: lngLat[0], lat: lngLat[1] } : lngLat; @@ -85374,7 +85452,7 @@ var Graphic = /*#__PURE__*/function () { }, { key: "setStyle", value: function setStyle(style) { - this.style = Util_Util.extend(this.style, style); + this.style = core_Util_Util.extend(this.style, style); } /** @@ -85396,7 +85474,7 @@ var Graphic = /*#__PURE__*/function () { }, { key: "setAttributes", value: function setAttributes(attributes) { - this.attributes = Util_Util.extend({}, this.attributes, attributes); + this.attributes = core_Util_Util.extend({}, this.attributes, attributes); } /** @@ -85411,12 +85489,12 @@ var Graphic = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/graphic/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/graphic/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/mapboxgl/overlay/mapv/MapvDataSet.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/mapv/MapvDataSet.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -85511,7 +85589,7 @@ var MapvDataSet = { } } }; -;// ./src/mapboxgl/overlay/mapv/MapExtend.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/mapv/MapExtend.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -85582,13 +85660,13 @@ function getLayer(id, type, source, sourceLayer, paint) { }; return layer; } -;// ./src/mapboxgl/overlay/mapv/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/mapv/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/mapboxgl/overlay/theme/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/theme/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -85596,7 +85674,7 @@ function getLayer(id, type, source, sourceLayer, paint) { -;// ./src/mapboxgl/overlay/symbol/SingleSymbolRender.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/SingleSymbolRender.js function SingleSymbolRender_typeof(o) { "@babel/helpers - typeof"; return SingleSymbolRender_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SingleSymbolRender_typeof(o); } function SingleSymbolRender_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function SingleSymbolRender_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? SingleSymbolRender_ownKeys(Object(t), !0).forEach(function (r) { SingleSymbolRender_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : SingleSymbolRender_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -85636,7 +85714,7 @@ var SingleSymbolRender = /*#__PURE__*/function () { }]); }(); /* harmony default export */ var symbol_SingleSymbolRender = (SingleSymbolRender); -;// ./src/mapboxgl/overlay/symbol/CompositeSymbolRender.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/CompositeSymbolRender.js function CompositeSymbolRender_typeof(o) { "@babel/helpers - typeof"; return CompositeSymbolRender_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CompositeSymbolRender_typeof(o); } function CompositeSymbolRender_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function CompositeSymbolRender_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? CompositeSymbolRender_ownKeys(Object(t), !0).forEach(function (r) { CompositeSymbolRender_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : CompositeSymbolRender_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -85675,7 +85753,7 @@ var CompositeSymbolRender = /*#__PURE__*/function () { value: function addLayer(layer, symbol, before) { var _this = this; symbol.forEach(function (style) { - var id = Util.createUniqueID("".concat(layer.id, "_compositeLayer_")); + var id = Util_Util.createUniqueID("".concat(layer.id, "_compositeLayer_")); _this.singleSymbol.addLayer(CompositeSymbolRender_objectSpread(CompositeSymbolRender_objectSpread({}, layer), {}, { id: id }), style, before); @@ -85737,7 +85815,7 @@ var CompositeSymbolRender = /*#__PURE__*/function () { }]); }(); /* harmony default export */ var symbol_CompositeSymbolRender = (CompositeSymbolRender); -;// ./src/mapboxgl/overlay/symbol/SymbolManager.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/SymbolManager.js function SymbolManager_typeof(o) { "@babel/helpers - typeof"; return SymbolManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SymbolManager_typeof(o); } function SymbolManager_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SymbolManager_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SymbolManager_toPropertyKey(o.key), o); } } @@ -85782,7 +85860,7 @@ var SymbolManager = /*#__PURE__*/function () { }]); }(); /* harmony default export */ var symbol_SymbolManager = (SymbolManager); -;// ./src/mapboxgl/overlay/symbol/SymbolUtil.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/SymbolUtil.js function SymbolUtil_typeof(o) { "@babel/helpers - typeof"; return SymbolUtil_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SymbolUtil_typeof(o); } function SymbolUtil_slicedToArray(r, e) { return SymbolUtil_arrayWithHoles(r) || SymbolUtil_iterableToArrayLimit(r, e) || SymbolUtil_unsupportedIterableToArray(r, e) || SymbolUtil_nonIterableRest(); } function SymbolUtil_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -85927,7 +86005,7 @@ var isPaintKey = function isPaintKey(key) { // HillshadePaint 'hillshade-illumination-direction', 'hillshade-illumination-anchor', 'hillshade-exaggeration', 'hillshade-exaggeration-transition', 'hillshade-shadow-color', 'hillshade-shadow-color-transition', 'hillshade-highlight-color', 'hillshade-highlight-color-transition', 'hillshade-accent-color', 'hillshade-accent-color-transition'].includes(key); }; -;// ./src/mapboxgl/overlay/symbol/SymbolHandler.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/SymbolHandler.js function SymbolHandler_typeof(o) { "@babel/helpers - typeof"; return SymbolHandler_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SymbolHandler_typeof(o); } function SymbolHandler_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function SymbolHandler_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? SymbolHandler_ownKeys(Object(t), !0).forEach(function (r) { SymbolHandler_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : SymbolHandler_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -86109,7 +86187,7 @@ var SymbolHandler = /*#__PURE__*/function () { }); } layers.forEach(function (l) { - l.id = Util.createUniqueID("".concat(layer.id, "_compositeLayer_")); + l.id = Util_Util.createUniqueID("".concat(layer.id, "_compositeLayer_")); _this.compositeSymbolRender.addLayerId(layer.id, l.id); _this.addLayer(l, before); }); @@ -86609,9 +86687,9 @@ var SymbolHandler = /*#__PURE__*/function () { }]); }(); /* harmony default export */ var symbol_SymbolHandler = (SymbolHandler); -;// ./src/mapboxgl/overlay/symbol/MapExtendSymbol.js -function MapExtendSymbol_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return MapExtendSymbol_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (MapExtendSymbol_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, MapExtendSymbol_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, MapExtendSymbol_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), MapExtendSymbol_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", MapExtendSymbol_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), MapExtendSymbol_regeneratorDefine2(u), MapExtendSymbol_regeneratorDefine2(u, o, "Generator"), MapExtendSymbol_regeneratorDefine2(u, n, function () { return this; }), MapExtendSymbol_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (MapExtendSymbol_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function MapExtendSymbol_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } MapExtendSymbol_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { MapExtendSymbol_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, MapExtendSymbol_regeneratorDefine2(e, r, n, t); } +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/MapExtendSymbol.js +function MapExtendSymbol_typeof(o) { "@babel/helpers - typeof"; return MapExtendSymbol_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MapExtendSymbol_typeof(o); } +function MapExtendSymbol_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ MapExtendSymbol_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == MapExtendSymbol_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(MapExtendSymbol_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function MapExtendSymbol_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function MapExtendSymbol_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { MapExtendSymbol_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { MapExtendSymbol_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. @@ -86729,39 +86807,39 @@ function MapExtendSymbol() { * @param {function} callback */ (external_mapboxgl_default()).Map.prototype.loadSymbol = /*#__PURE__*/function () { - var _ref = MapExtendSymbol_asyncToGenerator(/*#__PURE__*/MapExtendSymbol_regenerator().m(function _callee(id, callback) { + var _ref = MapExtendSymbol_asyncToGenerator(/*#__PURE__*/MapExtendSymbol_regeneratorRuntime().mark(function _callee(id, callback) { var _this2 = this; var symbolInfo, message, promises, _symbolInfo, _message, errorIds; - return MapExtendSymbol_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return MapExtendSymbol_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: if (!(typeof id === 'string')) { - _context.n = 2; + _context.next = 9; break; } - _context.n = 1; + _context.next = 3; return loadSymbol(id, this); - case 1: - symbolInfo = _context.v; + case 3: + symbolInfo = _context.sent; message = null; if (!symbolInfo) { message = "Symbol ".concat(id, " is not exists"); } callback(message, symbolInfo); - _context.n = 5; + _context.next = 21; break; - case 2: - if (!Util.isArray(id)) { - _context.n = 4; + case 9: + if (!Util_Util.isArray(id)) { + _context.next = 20; break; } promises = id.map(function (i) { return loadSymbol(i, _this2); }); - _context.n = 3; + _context.next = 13; return Promise.all(promises); - case 3: - _symbolInfo = _context.v; + case 13: + _symbolInfo = _context.sent; _message = null; errorIds = id.filter(function (_i, index) { return !_symbolInfo[index]; @@ -86770,14 +86848,15 @@ function MapExtendSymbol() { _message = "Symbol ".concat(errorIds.join(','), " is not exists"); } callback(_message, _symbolInfo); - _context.n = 5; + _context.next = 21; break; - case 4: + case 20: callback({ message: 'Symbol id must be a string or string[].' }); - case 5: - return _context.a(2); + case 21: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -86962,15 +87041,14 @@ function MapExtendSymbol() { * @returns {object} symbol对象 */ function _getSymbol() { - _getSymbol = MapExtendSymbol_asyncToGenerator(/*#__PURE__*/MapExtendSymbol_regenerator().m(function _callee2(id, map) { - var url, value, paint, layout, hasImage, image, _t; - return MapExtendSymbol_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + _getSymbol = MapExtendSymbol_asyncToGenerator(/*#__PURE__*/MapExtendSymbol_regeneratorRuntime().mark(function _callee2(id, map) { + var url, value, paint, layout, hasImage, image; + return MapExtendSymbol_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: url = "".concat(map.basePath, "/").concat(id, "/").concat(id); - if (false) // removed by dead control flow -{} - _context2.n = 1; + if (false) {} + _context2.next = 4; return FetchRequest.get("".concat(url, ".json")).then(function (response) { if (!response.ok) { return null; @@ -86979,23 +87057,23 @@ function MapExtendSymbol() { })["catch"](function () { return null; }); - case 1: - value = _context2.v; + case 4: + value = _context2.sent; if (value) { - _context2.n = 2; + _context2.next = 7; break; } - return _context2.a(2, null); - case 2: + return _context2.abrupt("return", null); + case 7: paint = value.paint || {}; layout = value.layout || {}; hasImage = paint['fill-pattern'] || paint['line-pattern'] || layout['icon-image']; - _t = hasImage; - if (!_t) { - _context2.n = 4; + _context2.t0 = hasImage; + if (!_context2.t0) { + _context2.next = 15; break; } - _context2.n = 3; + _context2.next = 14; return new Promise(function (resolve) { var image = new Image(); image.src = "".concat(url, ".png"); @@ -87006,14 +87084,17 @@ function MapExtendSymbol() { resolve(null); }; }); - case 3: - _t = _context2.v; - case 4: - image = _t; - return _context2.a(2, { + case 14: + _context2.t0 = _context2.sent; + case 15: + image = _context2.t0; + return _context2.abrupt("return", { value: value, image: image }); + case 17: + case "end": + return _context2.stop(); } }, _callee2); })); @@ -87032,7 +87113,7 @@ function MapExtendSymbol() { } } /* harmony default export */ var symbol_MapExtendSymbol = (MapExtendSymbol); -;// ./src/mapboxgl/overlay/symbol/WebSymbol.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/WebSymbol.js function WebSymbol_typeof(o) { "@babel/helpers - typeof"; return WebSymbol_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebSymbol_typeof(o); } function WebSymbol_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebSymbol_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebSymbol_toPropertyKey(o.key), o); } } @@ -87362,12 +87443,12 @@ var WebSymbol = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/overlay/symbol/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/symbol/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/mapboxgl/overlay/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/overlay/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -87393,7 +87474,7 @@ var WebSymbol = /*#__PURE__*/function () { -;// ./src/common/iServer/GeoCodingParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/GeoCodingParameter.js function GeoCodingParameter_typeof(o) { "@babel/helpers - typeof"; return GeoCodingParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoCodingParameter_typeof(o); } function GeoCodingParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoCodingParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoCodingParameter_toPropertyKey(o.key), o); } } @@ -87461,7 +87542,7 @@ var GeoCodingParameter = /*#__PURE__*/function () { * @description 最大返回结果数。 */ this.maxReturn = null; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -87480,7 +87561,7 @@ var GeoCodingParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GeoDecodingParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/GeoDecodingParameter.js function GeoDecodingParameter_typeof(o) { "@babel/helpers - typeof"; return GeoDecodingParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoDecodingParameter_typeof(o); } function GeoDecodingParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoDecodingParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoDecodingParameter_toPropertyKey(o.key), o); } } @@ -87561,7 +87642,7 @@ var GeoDecodingParameter = /*#__PURE__*/function () { * @description 查询半径。 */ this.geoDecodingRadius = null; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -87582,7 +87663,7 @@ var GeoDecodingParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/AddressMatchService.js +;// CONCATENATED MODULE: ./src/common/iServer/AddressMatchService.js function AddressMatchService_typeof(o) { "@babel/helpers - typeof"; return AddressMatchService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, AddressMatchService_typeof(o); } function AddressMatchService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function AddressMatchService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, AddressMatchService_toPropertyKey(o.key), o); } } @@ -87593,7 +87674,7 @@ function AddressMatchService_callSuper(t, o, e) { return o = AddressMatchService function AddressMatchService_possibleConstructorReturn(t, e) { if (e && ("object" == AddressMatchService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return AddressMatchService_assertThisInitialized(t); } function AddressMatchService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function AddressMatchService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (AddressMatchService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function AddressMatchService_superPropGet(t, o, e, r) { var p = AddressMatchService_get(AddressMatchService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function AddressMatchService_superPropGet(t, e, o, r) { var p = AddressMatchService_get(AddressMatchService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function AddressMatchService_get() { return AddressMatchService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = AddressMatchService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, AddressMatchService_get.apply(null, arguments); } function AddressMatchService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = AddressMatchService_getPrototypeOf(t));); return t; } function AddressMatchService_getPrototypeOf(t) { return AddressMatchService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, AddressMatchService_getPrototypeOf(t); } @@ -87710,7 +87791,7 @@ var AddressMatchService_AddressMatchService = /*#__PURE__*/function (_CommonServ } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/AddressMatchService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/AddressMatchService.js function services_AddressMatchService_typeof(o) { "@babel/helpers - typeof"; return services_AddressMatchService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_AddressMatchService_typeof(o); } function services_AddressMatchService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_AddressMatchService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_AddressMatchService_toPropertyKey(o.key), o); } } @@ -87742,7 +87823,7 @@ function services_AddressMatchService_setPrototypeOf(t, e) { return services_Add * .code(function(result){ * //doSomething * }) - * @param {string} url - 服务地址。 + * @param {string} url - 地址匹配服务地址,如 http://{ip}:{port}/iserver/services/addressmatch-Address/restjsr/v1/address 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -87771,7 +87852,7 @@ var AddressMatchService = /*#__PURE__*/function (_ServiceBase) { return services_AddressMatchService_createClass(AddressMatchService, [{ key: "code", value: function code(params, callback) { - return this._addressMatchService.code(Util.urlPathAppend(this.url, 'geocoding'), params, callback); + return this._addressMatchService.code(Util_Util.urlPathAppend(this.url, 'geocoding'), params, callback); } /** @@ -87784,11 +87865,11 @@ var AddressMatchService = /*#__PURE__*/function (_ServiceBase) { }, { key: "decode", value: function decode(params, callback) { - return this._addressMatchService.decode(Util.urlPathAppend(this.url, 'geodecoding'), params, callback); + return this._addressMatchService.decode(Util_Util.urlPathAppend(this.url, 'geodecoding'), params, callback); } }]); }(ServiceBase); -;// ./src/common/iServer/QueryParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryParameters.js function QueryParameters_typeof(o) { "@babel/helpers - typeof"; return QueryParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryParameters_typeof(o); } function QueryParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryParameters_toPropertyKey(o.key), o); } } @@ -87811,12 +87892,12 @@ function QueryParameters_toPrimitive(t, r) { if ("object" != QueryParameters_typ * @param {Array.} options.queryParams - 查询过滤条件参数数组。 * @param {string} [options.customParams] - 自定义参数,供扩展使用。 * @param {Object} [options.prjCoordSys] - 自定义参数,供 SuperMap Online 提供的动态投影查询扩展使用。如 {"epsgCode":3857}。 - * @param {number} [options.expectCount=100000] - 期望返回结果记录个数。 - * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。 - * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果类型。 - * @param {number} [options.startRecord=0] - 查询起始记录号。 + * @param {number} [options.expectCount=100000] - 查询结果中期望返回的结果记录数,该值需大于0。 + * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。分为 POINT 点和 LINE 线两种类型。 + * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果选项对象,用于指定查询结果中包含的内容。 + * @param {number} [options.startRecord=0] - 查询起始记录位置。 * @param {number} [options.holdTime=10] - 资源在服务端保存的时间,单位为分钟。 - * @param {boolean} [options.returnCustomResult=false] - 仅供三维使用。 + * @param {boolean} [options.returnCustomResult=false] - 仅供三维使用。是否返回查询结果的 Bounds 信息,当 returnContent=false 时有效。如果为 true,返回查询结果的 Bounds 信息。如果为 false,则不返回 Bounds 信息。 * @param {boolean} [options.returnFeatureWithFieldCaption = false] - 返回的查询结果要素字段标识是否为字段别名。为 false 时,返回的是字段名;为 true 时,返回的是字段别名。 * @usage */ @@ -87849,11 +87930,11 @@ var QueryParameters = /*#__PURE__*/function () { * @member {GeometryType} [QueryParameters.prototype.networkType=GeometryType.LINE] * @description 网络数据集对应的查询类型,分为点和线两种类型。 */ - this.networkType = GeometryType.LINE; + this.networkType = REST_GeometryType.LINE; /** * @member {QueryOption} [QueryParameters.prototype.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - * @description 查询结果类型。 + * @description 查询结果选项对象,用于指定查询结果中包含的内容。 * 该类描述查询结果返回类型,包括只返回属性、 * 只返回几何实体以及返回属性和几何实体。 */ @@ -87868,7 +87949,7 @@ var QueryParameters = /*#__PURE__*/function () { /** * @member {number} [QueryParameters.prototype.startRecord=0] - * @description 查询起始记录号。 + * @description 查询起始记录位置。 */ this.startRecord = 0; @@ -87888,7 +87969,7 @@ var QueryParameters = /*#__PURE__*/function () { * @description 返回的查询结果要素字段标识是否为字段别名。为 false 时,返回的是字段名;为 true 时,返回的是字段别名。 */ this.returnFeatureWithFieldCaption = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.QueryParameters"; } @@ -87917,7 +87998,7 @@ var QueryParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ChartQueryFilterParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartQueryFilterParameter.js function ChartQueryFilterParameter_typeof(o) { "@babel/helpers - typeof"; return ChartQueryFilterParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartQueryFilterParameter_typeof(o); } function ChartQueryFilterParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartQueryFilterParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartQueryFilterParameter_toPropertyKey(o.key), o); } } @@ -87980,7 +88061,7 @@ var ChartQueryFilterParameter = /*#__PURE__*/function () { * @description 查询的物标代号(用于S-101)。 */ this.featureCode = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.ChartQueryFilterParameter"; } @@ -88022,7 +88103,7 @@ var ChartQueryFilterParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ChartQueryParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartQueryParameters.js function ChartQueryParameters_typeof(o) { "@babel/helpers - typeof"; return ChartQueryParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartQueryParameters_typeof(o); } function ChartQueryParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartQueryParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartQueryParameters_toPropertyKey(o.key), o); } } @@ -88095,7 +88176,7 @@ var ChartQueryParameters = /*#__PURE__*/function () { * @description 期望查询结果返回的记录数,该值大于0。 */ this.expectCount = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.ChartQueryParameters"; } @@ -88160,7 +88241,7 @@ var ChartQueryParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/types.js +;// CONCATENATED MODULE: ./src/common/iServer/types.js var fieldNames = { "AGENCY": "产品责任机构", "BCNSHP": "立标形状", @@ -88364,7 +88445,7 @@ var fieldNames = { "QUAPOS": "位置性质" }; /* harmony default export */ var iServer_types = (fieldNames); -;// ./src/common/iServer/ChartQueryService.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartQueryService.js function ChartQueryService_typeof(o) { "@babel/helpers - typeof"; return ChartQueryService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartQueryService_typeof(o); } function ChartQueryService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartQueryService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartQueryService_toPropertyKey(o.key), o); } } @@ -88453,7 +88534,7 @@ var ChartQueryService = /*#__PURE__*/function (_CommonServiceBase) { * 参数格式为 "ISERVER","GEOJSON" */ _this.format = DataFormat.GEOJSON; - Util.extend(_this, options); + Util_Util.extend(_this, options); var me = _this; if (options.format) { me.format = options.format.toUpperCase(); @@ -88461,7 +88542,7 @@ var ChartQueryService = /*#__PURE__*/function (_CommonServiceBase) { if (!me.url) { return ChartQueryService_possibleConstructorReturn(_this); } - me.url = Util.urlPathAppend(me.url, 'queryResults'); + me.url = Util_Util.urlPathAppend(me.url, 'queryResults'); _this.CLASS_NAME = "SuperMap.ChartQueryService"; return _this; } @@ -88499,7 +88580,7 @@ var ChartQueryService = /*#__PURE__*/function (_CommonServiceBase) { me.returnContent = params.returnContent; jsonParameters = params.getVariablesJson(); if (me.returnContent) { - me.url = Util.urlAppend(me.url, 'returnContent=true'); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); } return me.request({ method: "POST", @@ -88544,7 +88625,7 @@ var ChartQueryService = /*#__PURE__*/function (_CommonServiceBase) { value: function transformResult(result, options) { var _this2 = this; var me = this; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); var fieldNameFormatter = me.fieldNameFormatter; var parseProperties = me.parseProperties; if (result && result.recordsets) { @@ -88586,7 +88667,7 @@ var ChartQueryService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/ChartFeatureInfoSpecsService.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartFeatureInfoSpecsService.js function ChartFeatureInfoSpecsService_typeof(o) { "@babel/helpers - typeof"; return ChartFeatureInfoSpecsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartFeatureInfoSpecsService_typeof(o); } function ChartFeatureInfoSpecsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartFeatureInfoSpecsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartFeatureInfoSpecsService_toPropertyKey(o.key), o); } } @@ -88597,7 +88678,7 @@ function ChartFeatureInfoSpecsService_callSuper(t, o, e) { return o = ChartFeatu function ChartFeatureInfoSpecsService_possibleConstructorReturn(t, e) { if (e && ("object" == ChartFeatureInfoSpecsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ChartFeatureInfoSpecsService_assertThisInitialized(t); } function ChartFeatureInfoSpecsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ChartFeatureInfoSpecsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ChartFeatureInfoSpecsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ChartFeatureInfoSpecsService_superPropGet(t, o, e, r) { var p = ChartFeatureInfoSpecsService_get(ChartFeatureInfoSpecsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ChartFeatureInfoSpecsService_superPropGet(t, e, o, r) { var p = ChartFeatureInfoSpecsService_get(ChartFeatureInfoSpecsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ChartFeatureInfoSpecsService_get() { return ChartFeatureInfoSpecsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ChartFeatureInfoSpecsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ChartFeatureInfoSpecsService_get.apply(null, arguments); } function ChartFeatureInfoSpecsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ChartFeatureInfoSpecsService_getPrototypeOf(t));); return t; } function ChartFeatureInfoSpecsService_getPrototypeOf(t) { return ChartFeatureInfoSpecsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ChartFeatureInfoSpecsService_getPrototypeOf(t); } @@ -88645,7 +88726,7 @@ var ChartFeatureInfoSpecsService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { ChartFeatureInfoSpecsService_superPropGet(ChartFeatureInfoSpecsService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -88664,7 +88745,7 @@ var ChartFeatureInfoSpecsService = /*#__PURE__*/function (_CommonServiceBase) { var me = this, method = "GET"; if (!me.isTempLayers) { - Util.urlPathAppend(me.url, 'chartFeatureInfoSpecs'); + Util_Util.urlPathAppend(me.url, 'chartFeatureInfoSpecs'); } return me.request({ method: method, @@ -88676,7 +88757,7 @@ var ChartFeatureInfoSpecsService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/ChartAcronymClassifyService.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartAcronymClassifyService.js function ChartAcronymClassifyService_typeof(o) { "@babel/helpers - typeof"; return ChartAcronymClassifyService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartAcronymClassifyService_typeof(o); } function ChartAcronymClassifyService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartAcronymClassifyService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartAcronymClassifyService_toPropertyKey(o.key), o); } } @@ -88687,7 +88768,7 @@ function ChartAcronymClassifyService_callSuper(t, o, e) { return o = ChartAcrony function ChartAcronymClassifyService_possibleConstructorReturn(t, e) { if (e && ("object" == ChartAcronymClassifyService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ChartAcronymClassifyService_assertThisInitialized(t); } function ChartAcronymClassifyService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ChartAcronymClassifyService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ChartAcronymClassifyService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ChartAcronymClassifyService_superPropGet(t, o, e, r) { var p = ChartAcronymClassifyService_get(ChartAcronymClassifyService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ChartAcronymClassifyService_superPropGet(t, e, o, r) { var p = ChartAcronymClassifyService_get(ChartAcronymClassifyService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ChartAcronymClassifyService_get() { return ChartAcronymClassifyService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ChartAcronymClassifyService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ChartAcronymClassifyService_get.apply(null, arguments); } function ChartAcronymClassifyService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ChartAcronymClassifyService_getPrototypeOf(t));); return t; } function ChartAcronymClassifyService_getPrototypeOf(t) { return ChartAcronymClassifyService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ChartAcronymClassifyService_getPrototypeOf(t); } @@ -88732,7 +88813,7 @@ var ChartAcronymClassifyService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { ChartAcronymClassifyService_superPropGet(ChartAcronymClassifyService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -88747,7 +88828,7 @@ var ChartAcronymClassifyService = /*#__PURE__*/function (_CommonServiceBase) { var me = this, method = "GET"; if (!me.isTempLayers) { - me.url = Util.urlPathAppend(me.url, 'chartAcronymClassify'); + me.url = Util_Util.urlPathAppend(me.url, 'chartAcronymClassify'); } return me.request({ method: method, @@ -88759,7 +88840,7 @@ var ChartAcronymClassifyService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/ChartMaritimePcInfoService.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartMaritimePcInfoService.js function ChartMaritimePcInfoService_typeof(o) { "@babel/helpers - typeof"; return ChartMaritimePcInfoService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartMaritimePcInfoService_typeof(o); } function ChartMaritimePcInfoService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartMaritimePcInfoService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartMaritimePcInfoService_toPropertyKey(o.key), o); } } @@ -88770,7 +88851,7 @@ function ChartMaritimePcInfoService_callSuper(t, o, e) { return o = ChartMaritim function ChartMaritimePcInfoService_possibleConstructorReturn(t, e) { if (e && ("object" == ChartMaritimePcInfoService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ChartMaritimePcInfoService_assertThisInitialized(t); } function ChartMaritimePcInfoService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ChartMaritimePcInfoService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ChartMaritimePcInfoService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ChartMaritimePcInfoService_superPropGet(t, o, e, r) { var p = ChartMaritimePcInfoService_get(ChartMaritimePcInfoService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ChartMaritimePcInfoService_superPropGet(t, e, o, r) { var p = ChartMaritimePcInfoService_get(ChartMaritimePcInfoService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ChartMaritimePcInfoService_get() { return ChartMaritimePcInfoService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ChartMaritimePcInfoService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ChartMaritimePcInfoService_get.apply(null, arguments); } function ChartMaritimePcInfoService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ChartMaritimePcInfoService_getPrototypeOf(t));); return t; } function ChartMaritimePcInfoService_getPrototypeOf(t) { return ChartMaritimePcInfoService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ChartMaritimePcInfoService_getPrototypeOf(t); } @@ -88814,7 +88895,7 @@ var ChartMaritimePcInfoService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { ChartMaritimePcInfoService_superPropGet(ChartMaritimePcInfoService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -88829,7 +88910,7 @@ var ChartMaritimePcInfoService = /*#__PURE__*/function (_CommonServiceBase) { var me = this, method = "GET"; if (!me.isTempLayers) { - me.url = Util.urlPathAppend(me.url, 'maritimepcinfo'); + me.url = Util_Util.urlPathAppend(me.url, 'maritimepcinfo'); } return me.request({ method: method, @@ -88841,7 +88922,7 @@ var ChartMaritimePcInfoService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/Theme.js +;// CONCATENATED MODULE: ./src/common/iServer/Theme.js function iServer_Theme_typeof(o) { "@babel/helpers - typeof"; return iServer_Theme_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iServer_Theme_typeof(o); } function iServer_Theme_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iServer_Theme_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iServer_Theme_toPropertyKey(o.key), o); } } @@ -88858,8 +88939,8 @@ function iServer_Theme_toPrimitive(t, r) { if ("object" != iServer_Theme_typeof( * @aliasclass Theme * @deprecatedclass SuperMap.Theme * @category iServer Map Theme - * @classdesc 专题图基类。地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。 - * 专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。 + * @classdesc 专题图基类。单值专题图,标签专题图,范围分段专题图等都继承自该类。
+ * 地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。 * @param {string} type - 专题图类型。 * @param {Object} options - 可选参数。 * @param {ThemeMemoryData} [options.memoryData] - 专题图内存数据。 @@ -88885,7 +88966,7 @@ var Theme_Theme = /*#__PURE__*/function () { */ this.type = type; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.Theme"; } @@ -88918,7 +88999,7 @@ var Theme_Theme = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ServerTextStyle.js +;// CONCATENATED MODULE: ./src/common/iServer/ServerTextStyle.js function ServerTextStyle_typeof(o) { "@babel/helpers - typeof"; return ServerTextStyle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServerTextStyle_typeof(o); } function ServerTextStyle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ServerTextStyle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServerTextStyle_toPropertyKey(o.key), o); } } @@ -89071,7 +89152,7 @@ var ServerTextStyle = /*#__PURE__*/function () { */ this.rotation = 0.0; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ServerTextStyle"; } @@ -89120,14 +89201,14 @@ var ServerTextStyle = /*#__PURE__*/function () { key: "fromObj", value: function fromObj(obj) { var res = new ServerTextStyle(obj); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.backColor = ServerColor.fromJson(obj.backColor); res.foreColor = ServerColor.fromJson(obj.foreColor); return res; } }]); }(); -;// ./src/common/iServer/ThemeLabelItem.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeLabelItem.js function ThemeLabelItem_typeof(o) { "@babel/helpers - typeof"; return ThemeLabelItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeLabelItem_typeof(o); } function ThemeLabelItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeLabelItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeLabelItem_toPropertyKey(o.key), o); } } @@ -89195,7 +89276,7 @@ var ThemeLabelItem = /*#__PURE__*/function () { */ this.style = new ServerTextStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeLabelItem"; } @@ -89231,12 +89312,12 @@ var ThemeLabelItem = /*#__PURE__*/function () { return; } var t = new ThemeLabelItem(); - Util.copy(t, obj); + Util_Util.copy(t, obj); return t; } }]); }(); -;// ./src/common/iServer/ThemeUniqueItem.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeUniqueItem.js function ThemeUniqueItem_typeof(o) { "@babel/helpers - typeof"; return ThemeUniqueItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeUniqueItem_typeof(o); } function ThemeUniqueItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeUniqueItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeUniqueItem_toPropertyKey(o.key), o); } } @@ -89288,7 +89369,7 @@ var ThemeUniqueItem = /*#__PURE__*/function () { */ this.visible = true; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeUniqueItem"; } @@ -89319,7 +89400,7 @@ var ThemeUniqueItem = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var obj = {}; - obj = Util.copyAttributes(obj, this); + obj = Util_Util.copyAttributes(obj, this); if (obj.style) { if (obj.style.toServerJSONObject) { obj.style = obj.style.toServerJSONObject(); @@ -89338,13 +89419,13 @@ var ThemeUniqueItem = /*#__PURE__*/function () { key: "fromObj", value: function fromObj(obj) { var res = new ThemeUniqueItem(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.style = ServerStyle.fromJson(obj.style); return res; } }]); }(); -;// ./src/common/iServer/ThemeOffset.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeOffset.js function ThemeOffset_typeof(o) { "@babel/helpers - typeof"; return ThemeOffset_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeOffset_typeof(o); } function ThemeOffset_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeOffset_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeOffset_toPropertyKey(o.key), o); } } @@ -89391,7 +89472,7 @@ var ThemeOffset = /*#__PURE__*/function () { */ this.offsetY = "0.0"; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeOffset"; } @@ -89422,12 +89503,12 @@ var ThemeOffset = /*#__PURE__*/function () { return; } var res = new ThemeOffset(); - Util.copy(res, obj); + Util_Util.copy(res, obj); return res; } }]); }(); -;// ./src/common/iServer/LabelMixedTextStyle.js +;// CONCATENATED MODULE: ./src/common/iServer/LabelMixedTextStyle.js function LabelMixedTextStyle_typeof(o) { "@babel/helpers - typeof"; return LabelMixedTextStyle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LabelMixedTextStyle_typeof(o); } function LabelMixedTextStyle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LabelMixedTextStyle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LabelMixedTextStyle_toPropertyKey(o.key), o); } } @@ -89501,7 +89582,7 @@ var LabelMixedTextStyle = /*#__PURE__*/function () { */ this.styles = new ServerTextStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.LabelMixedTextStyle"; } @@ -89545,7 +89626,7 @@ var LabelMixedTextStyle = /*#__PURE__*/function () { } var res = new LabelMixedTextStyle(); var stys = obj.styles; - Util.copy(res, obj); + Util_Util.copy(res, obj); res.defaultStyle = new ServerTextStyle(obj.defaultStyle); if (stys) { res.styles = []; @@ -89557,7 +89638,7 @@ var LabelMixedTextStyle = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ThemeLabelText.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeLabelText.js function ThemeLabelText_typeof(o) { "@babel/helpers - typeof"; return ThemeLabelText_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeLabelText_typeof(o); } function ThemeLabelText_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeLabelText_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeLabelText_toPropertyKey(o.key), o); } } @@ -89632,7 +89713,7 @@ var ThemeLabelText = /*#__PURE__*/function () { */ this.uniformMixedStyle = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeLabelText"; } @@ -89672,14 +89753,14 @@ var ThemeLabelText = /*#__PURE__*/function () { return; } var res = new ThemeLabelText(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.uniformStyle = ServerTextStyle.fromObj(obj.uniformStyle); res.uniformMixedStyle = LabelMixedTextStyle.fromObj(obj.uniformMixedStyle); return res; } }]); }(); -;// ./src/common/iServer/ThemeLabelAlongLine.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeLabelAlongLine.js function ThemeLabelAlongLine_typeof(o) { "@babel/helpers - typeof"; return ThemeLabelAlongLine_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeLabelAlongLine_typeof(o); } function ThemeLabelAlongLine_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeLabelAlongLine_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeLabelAlongLine_toPropertyKey(o.key), o); } } @@ -89749,7 +89830,7 @@ var ThemeLabelAlongLine = /*#__PURE__*/function () { */ this.labelRepeatInterval = 0; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeLabelAlongLine"; } @@ -89783,12 +89864,12 @@ var ThemeLabelAlongLine = /*#__PURE__*/function () { return; } var t = new ThemeLabelAlongLine(); - Util.copy(t, obj); + Util_Util.copy(t, obj); return t; } }]); }(); -;// ./src/common/iServer/ThemeLabelBackground.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeLabelBackground.js function ThemeLabelBackground_typeof(o) { "@babel/helpers - typeof"; return ThemeLabelBackground_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeLabelBackground_typeof(o); } function ThemeLabelBackground_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeLabelBackground_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeLabelBackground_toPropertyKey(o.key), o); } } @@ -89828,7 +89909,7 @@ var ThemeLabelBackground = /*#__PURE__*/function () { */ this.backStyle = new ServerStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeLabelBackground"; } @@ -89867,7 +89948,7 @@ var ThemeLabelBackground = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ThemeLabel.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeLabel.js function ThemeLabel_typeof(o) { "@babel/helpers - typeof"; return ThemeLabel_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeLabel_typeof(o); } function ThemeLabel_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeLabel_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeLabel_toPropertyKey(o.key), o); } } @@ -89878,7 +89959,7 @@ function ThemeLabel_callSuper(t, o, e) { return o = ThemeLabel_getPrototypeOf(o) function ThemeLabel_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeLabel_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeLabel_assertThisInitialized(t); } function ThemeLabel_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeLabel_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeLabel_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeLabel_superPropGet(t, o, e, r) { var p = ThemeLabel_get(ThemeLabel_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeLabel_superPropGet(t, e, o, r) { var p = ThemeLabel_get(ThemeLabel_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeLabel_get() { return ThemeLabel_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeLabel_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeLabel_get.apply(null, arguments); } function ThemeLabel_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeLabel_getPrototypeOf(t));); return t; } function ThemeLabel_getPrototypeOf(t) { return ThemeLabel_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeLabel_getPrototypeOf(t); } @@ -90034,7 +90115,7 @@ var ThemeLabel = /*#__PURE__*/function (_Theme) { */ _this.textSpace = 0; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeLabel"; return _this; @@ -90096,7 +90177,7 @@ var ThemeLabel = /*#__PURE__*/function (_Theme) { }, { key: "toJSON", value: function toJSON() { - return Util.toJSON(this.toServerJSONObject()); + return Util_Util.toJSON(this.toServerJSONObject()); } /** @@ -90168,7 +90249,7 @@ var ThemeLabel = /*#__PURE__*/function (_Theme) { itemsU = obj.uniqueItems, cells = obj.matrixCells; obj.matrixCells = null; - Util.copy(lab, obj); + Util_Util.copy(lab, obj); lab.alongLine = ThemeLabelAlongLine.fromObj(obj); lab.background = ThemeLabelBackground.fromObj(obj); if (itemsL) { @@ -90196,7 +90277,7 @@ var ThemeLabel = /*#__PURE__*/function (_Theme) { } }]); }(Theme_Theme); -;// ./src/common/iServer/ThemeUnique.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeUnique.js function ThemeUnique_typeof(o) { "@babel/helpers - typeof"; return ThemeUnique_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeUnique_typeof(o); } function ThemeUnique_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeUnique_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeUnique_toPropertyKey(o.key), o); } } @@ -90207,7 +90288,7 @@ function ThemeUnique_callSuper(t, o, e) { return o = ThemeUnique_getPrototypeOf( function ThemeUnique_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeUnique_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeUnique_assertThisInitialized(t); } function ThemeUnique_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeUnique_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeUnique_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeUnique_superPropGet(t, o, e, r) { var p = ThemeUnique_get(ThemeUnique_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeUnique_superPropGet(t, e, o, r) { var p = ThemeUnique_get(ThemeUnique_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeUnique_get() { return ThemeUnique_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeUnique_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeUnique_get.apply(null, arguments); } function ThemeUnique_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeUnique_getPrototypeOf(t));); return t; } function ThemeUnique_getPrototypeOf(t) { return ThemeUnique_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeUnique_getPrototypeOf(t); } @@ -90274,7 +90355,7 @@ var ThemeUnique = /*#__PURE__*/function (_Theme) { */ _this.colorGradientType = ColorGradientType.YELLOW_RED; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeUnique"; return _this; @@ -90316,7 +90397,7 @@ var ThemeUnique = /*#__PURE__*/function (_Theme) { key: "toServerJSONObject", value: function toServerJSONObject() { var obj = {}; - obj = Util.copyAttributes(obj, this); + obj = Util_Util.copyAttributes(obj, this); if (obj.defaultStyle) { if (obj.defaultStyle.toServerJSONObject) { obj.defaultStyle = obj.defaultStyle.toServerJSONObject(); @@ -90345,7 +90426,7 @@ var ThemeUnique = /*#__PURE__*/function (_Theme) { var res = new ThemeUnique(); var uItems = obj.items; var len = uItems ? uItems.length : 0; - Util.extend(res, obj); + Util_Util.extend(res, obj); res.items = []; res.defaultStyle = ServerStyle.fromJson(obj.defaultStyle); for (var i = 0; i < len; i++) { @@ -90355,7 +90436,7 @@ var ThemeUnique = /*#__PURE__*/function (_Theme) { } }]); }(Theme_Theme); -;// ./src/common/iServer/ThemeGraphAxes.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGraphAxes.js function ThemeGraphAxes_typeof(o) { "@babel/helpers - typeof"; return ThemeGraphAxes_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGraphAxes_typeof(o); } function ThemeGraphAxes_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGraphAxes_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGraphAxes_toPropertyKey(o.key), o); } } @@ -90416,7 +90497,7 @@ var ThemeGraphAxes = /*#__PURE__*/function () { */ this.axesTextStyle = new ServerTextStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeGraphAxes"; } @@ -90455,14 +90536,14 @@ var ThemeGraphAxes = /*#__PURE__*/function () { return; } var res = new ThemeGraphAxes(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.axesColor = ServerColor.fromJson(obj.axesColor); res.axesTextStyle = ServerTextStyle.fromObj(obj.axesTextStyle); return res; } }]); }(); -;// ./src/common/iServer/ThemeGraphSize.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGraphSize.js function ThemeGraphSize_typeof(o) { "@babel/helpers - typeof"; return ThemeGraphSize_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGraphSize_typeof(o); } function ThemeGraphSize_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGraphSize_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGraphSize_toPropertyKey(o.key), o); } } @@ -90499,7 +90580,7 @@ var ThemeGraphSize = /*#__PURE__*/function () { */ this.minGraphSize = 0; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeGraphSize"; } @@ -90526,12 +90607,12 @@ var ThemeGraphSize = /*#__PURE__*/function () { key: "fromObj", value: function fromObj(obj) { var res = new ThemeGraphSize(); - Util.copy(res, obj); + Util_Util.copy(res, obj); return res; } }]); }(); -;// ./src/common/iServer/ThemeGraphText.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGraphText.js function ThemeGraphText_typeof(o) { "@babel/helpers - typeof"; return ThemeGraphText_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGraphText_typeof(o); } function ThemeGraphText_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGraphText_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGraphText_toPropertyKey(o.key), o); } } @@ -90578,7 +90659,7 @@ var ThemeGraphText = /*#__PURE__*/function () { */ this.graphTextStyle = new ServerTextStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeGraphText"; } @@ -90609,13 +90690,13 @@ var ThemeGraphText = /*#__PURE__*/function () { key: "fromObj", value: function fromObj(obj) { var res = new ThemeGraphText(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.graphTextStyle = ServerTextStyle.fromObj(obj.graphTextStyle); return res; } }]); }(); -;// ./src/common/iServer/ThemeGraphItem.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGraphItem.js function ThemeGraphItem_typeof(o) { "@babel/helpers - typeof"; return ThemeGraphItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGraphItem_typeof(o); } function ThemeGraphItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGraphItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGraphItem_toPropertyKey(o.key), o); } } @@ -90671,7 +90752,7 @@ var ThemeGraphItem = /*#__PURE__*/function () { */ this.uniformStyle = new ServerStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeGraphItem"; } @@ -90703,13 +90784,13 @@ var ThemeGraphItem = /*#__PURE__*/function () { return; } var res = new ThemeGraphItem(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.uniformStyle = ServerStyle.fromJson(obj.uniformStyle); return res; } }]); }(); -;// ./src/common/iServer/ThemeGraph.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGraph.js function ThemeGraph_typeof(o) { "@babel/helpers - typeof"; return ThemeGraph_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGraph_typeof(o); } function ThemeGraph_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGraph_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGraph_toPropertyKey(o.key), o); } } @@ -90720,7 +90801,7 @@ function ThemeGraph_callSuper(t, o, e) { return o = ThemeGraph_getPrototypeOf(o) function ThemeGraph_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeGraph_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeGraph_assertThisInitialized(t); } function ThemeGraph_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeGraph_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeGraph_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeGraph_superPropGet(t, o, e, r) { var p = ThemeGraph_get(ThemeGraph_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeGraph_superPropGet(t, e, o, r) { var p = ThemeGraph_get(ThemeGraph_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeGraph_get() { return ThemeGraph_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeGraph_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeGraph_get.apply(null, arguments); } function ThemeGraph_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeGraph_getPrototypeOf(t));); return t; } function ThemeGraph_getPrototypeOf(t) { return ThemeGraph_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeGraph_getPrototypeOf(t); } @@ -90938,7 +91019,7 @@ var ThemeGraph = /*#__PURE__*/function (_Theme) { */ _this.startAngle = 0; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeGraph"; return _this; @@ -90996,7 +91077,7 @@ var ThemeGraph = /*#__PURE__*/function (_Theme) { }, { key: "toJSON", value: function toJSON() { - return Util.toJSON(this.toServerJSONObject()); + return Util_Util.toJSON(this.toServerJSONObject()); } /** @@ -91056,7 +91137,7 @@ var ThemeGraph = /*#__PURE__*/function (_Theme) { var res = new ThemeGraph(); var itemsG = obj.items; var len = itemsG ? itemsG.length : 0; - Util.copy(res, obj); + Util_Util.copy(res, obj); res.items = []; res.graphAxes = ThemeGraphAxes.fromObj(obj); res.graphSize = ThemeGraphSize.fromObj(obj); @@ -91069,7 +91150,7 @@ var ThemeGraph = /*#__PURE__*/function (_Theme) { } }]); }(Theme_Theme); -;// ./src/common/iServer/ThemeDotDensity.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeDotDensity.js function ThemeDotDensity_typeof(o) { "@babel/helpers - typeof"; return ThemeDotDensity_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeDotDensity_typeof(o); } function ThemeDotDensity_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeDotDensity_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeDotDensity_toPropertyKey(o.key), o); } } @@ -91134,7 +91215,7 @@ var ThemeDotDensity = /*#__PURE__*/function (_Theme) { */ _this.value = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeDotDensity"; return _this; @@ -91166,7 +91247,7 @@ var ThemeDotDensity = /*#__PURE__*/function (_Theme) { key: "toServerJSONObject", value: function toServerJSONObject() { var obj = {}; - obj = Util.copyAttributes(obj, this); + obj = Util_Util.copyAttributes(obj, this); if (obj.style) { if (obj.style.toServerJSONObject) { obj.style = obj.style.toServerJSONObject(); @@ -91188,13 +91269,13 @@ var ThemeDotDensity = /*#__PURE__*/function (_Theme) { return; } var res = new ThemeDotDensity(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.style = ServerStyle.fromJson(obj.style); return res; } }]); }(Theme_Theme); -;// ./src/common/iServer/ThemeGraduatedSymbolStyle.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGraduatedSymbolStyle.js function ThemeGraduatedSymbolStyle_typeof(o) { "@babel/helpers - typeof"; return ThemeGraduatedSymbolStyle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGraduatedSymbolStyle_typeof(o); } function ThemeGraduatedSymbolStyle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGraduatedSymbolStyle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGraduatedSymbolStyle_toPropertyKey(o.key), o); } } @@ -91253,7 +91334,7 @@ var ThemeGraduatedSymbolStyle = /*#__PURE__*/function () { */ this.zeroStyle = new ServerStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeGraduatedSymbolStyle"; } @@ -91286,7 +91367,7 @@ var ThemeGraduatedSymbolStyle = /*#__PURE__*/function () { return; } var res = new ThemeGraduatedSymbolStyle(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.negativeStyle = ServerStyle.fromJson(obj.negativeStyle); res.positiveStyle = ServerStyle.fromJson(obj.positiveStyle); res.zeroStyle = ServerStyle.fromJson(obj.zeroStyle); @@ -91294,7 +91375,7 @@ var ThemeGraduatedSymbolStyle = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ThemeGraduatedSymbol.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGraduatedSymbol.js function ThemeGraduatedSymbol_typeof(o) { "@babel/helpers - typeof"; return ThemeGraduatedSymbol_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGraduatedSymbol_typeof(o); } function ThemeGraduatedSymbol_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGraduatedSymbol_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGraduatedSymbol_toPropertyKey(o.key), o); } } @@ -91305,7 +91386,7 @@ function ThemeGraduatedSymbol_callSuper(t, o, e) { return o = ThemeGraduatedSymb function ThemeGraduatedSymbol_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeGraduatedSymbol_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeGraduatedSymbol_assertThisInitialized(t); } function ThemeGraduatedSymbol_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeGraduatedSymbol_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeGraduatedSymbol_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeGraduatedSymbol_superPropGet(t, o, e, r) { var p = ThemeGraduatedSymbol_get(ThemeGraduatedSymbol_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeGraduatedSymbol_superPropGet(t, e, o, r) { var p = ThemeGraduatedSymbol_get(ThemeGraduatedSymbol_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeGraduatedSymbol_get() { return ThemeGraduatedSymbol_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeGraduatedSymbol_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeGraduatedSymbol_get.apply(null, arguments); } function ThemeGraduatedSymbol_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeGraduatedSymbol_getPrototypeOf(t));); return t; } function ThemeGraduatedSymbol_getPrototypeOf(t) { return ThemeGraduatedSymbol_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeGraduatedSymbol_getPrototypeOf(t); } @@ -91380,7 +91461,7 @@ var ThemeGraduatedSymbol = /*#__PURE__*/function (_Theme) { */ _this.style = new ThemeGraduatedSymbolStyle(); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeGraduatedSymbol"; return _this; @@ -91416,7 +91497,7 @@ var ThemeGraduatedSymbol = /*#__PURE__*/function (_Theme) { }, { key: "toJSON", value: function toJSON() { - return Util.toJSON(this.toServerJSONObject()); + return Util_Util.toJSON(this.toServerJSONObject()); } /** @@ -91461,14 +91542,14 @@ var ThemeGraduatedSymbol = /*#__PURE__*/function (_Theme) { return; } var res = new ThemeGraduatedSymbol(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.offset = ThemeOffset.fromObj(obj); res.style = ThemeGraduatedSymbolStyle.fromObj(obj); return res; } }]); }(Theme_Theme); -;// ./src/common/iServer/ThemeRangeItem.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeRangeItem.js function ThemeRangeItem_typeof(o) { "@babel/helpers - typeof"; return ThemeRangeItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeRangeItem_typeof(o); } function ThemeRangeItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeRangeItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeRangeItem_toPropertyKey(o.key), o); } } @@ -91535,7 +91616,7 @@ var ThemeRangeItem = /*#__PURE__*/function () { */ this.visible = true; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeRangeItem"; } @@ -91567,7 +91648,7 @@ var ThemeRangeItem = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var obj = {}; - obj = Util.copyAttributes(obj, this); + obj = Util_Util.copyAttributes(obj, this); if (obj.style) { if (obj.style.toServerJSONObject) { obj.style = obj.style.toServerJSONObject(); @@ -91589,13 +91670,13 @@ var ThemeRangeItem = /*#__PURE__*/function () { return; } var res = new ThemeRangeItem(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.style = ServerStyle.fromJson(obj.style); return res; } }]); }(); -;// ./src/common/iServer/ThemeRange.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeRange.js function ThemeRange_typeof(o) { "@babel/helpers - typeof"; return ThemeRange_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeRange_typeof(o); } function ThemeRange_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeRange_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeRange_toPropertyKey(o.key), o); } } @@ -91606,7 +91687,7 @@ function ThemeRange_callSuper(t, o, e) { return o = ThemeRange_getPrototypeOf(o) function ThemeRange_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeRange_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeRange_assertThisInitialized(t); } function ThemeRange_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeRange_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeRange_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeRange_superPropGet(t, o, e, r) { var p = ThemeRange_get(ThemeRange_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeRange_superPropGet(t, e, o, r) { var p = ThemeRange_get(ThemeRange_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeRange_get() { return ThemeRange_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeRange_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeRange_get.apply(null, arguments); } function ThemeRange_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeRange_getPrototypeOf(t));); return t; } function ThemeRange_getPrototypeOf(t) { return ThemeRange_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeRange_getPrototypeOf(t); } @@ -91691,7 +91772,7 @@ var ThemeRange = /*#__PURE__*/function (_Theme) { */ _this.colorGradientType = ColorGradientType.YELLOW_RED; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeRange"; return _this; @@ -91735,7 +91816,7 @@ var ThemeRange = /*#__PURE__*/function (_Theme) { return; } var res = new ThemeRange(); - Util.copy(res, obj); + Util_Util.copy(res, obj); var itemsR = obj.items; var len = itemsR ? itemsR.length : 0; res.items = []; @@ -91746,7 +91827,7 @@ var ThemeRange = /*#__PURE__*/function (_Theme) { } }]); }(Theme_Theme); -;// ./src/common/iServer/UGCLayer.js +;// CONCATENATED MODULE: ./src/common/iServer/UGCLayer.js function UGCLayer_typeof(o) { "@babel/helpers - typeof"; return UGCLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UGCLayer_typeof(o); } function UGCLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UGCLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UGCLayer_toPropertyKey(o.key), o); } } @@ -91772,7 +91853,7 @@ function UGCLayer_toPrimitive(t, r) { if ("object" != UGCLayer_typeof(t) || !t) * @param {string} [options.description] - 图层的描述信息。 * @param {boolean} [options.queryable] - 图层中的对象是否可以查询。 * @param {boolean} [options.symbolScalable] - 是否允许图层的符号大小随图缩放。 - * @param {boolean} [options.visible=false] - 地图对象在同一范围内时,是否重叠显示。 + * @param {boolean} [options.visible=false] - 图层是否可见。true 表示此图层可见,false 表示图层不可见。 * @usage */ var UGCLayer = /*#__PURE__*/function () { @@ -91823,10 +91904,10 @@ var UGCLayer = /*#__PURE__*/function () { /** * @member {boolean} UGCLayer.prototype.visible - * @description 地图对象在同一范围内时,是否重叠显示。 + * @description 图层是否可见。true 表示此图层可见,false 表示图层不可见。 */ this.visible = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.UGCLayer"; } @@ -91838,7 +91919,7 @@ var UGCLayer = /*#__PURE__*/function () { key: "destroy", value: function destroy() { var me = this; - Util.reset(me); + Util_Util.reset(me); } /** @@ -91850,7 +91931,7 @@ var UGCLayer = /*#__PURE__*/function () { key: "fromJson", value: function fromJson(jsonObject) { jsonObject = jsonObject ? jsonObject : {}; - Util.extend(this, jsonObject); + Util_Util.extend(this, jsonObject); var b = this.bounds; if (b) { this.bounds = new Bounds(b.leftBottom.x, b.leftBottom.y, b.rightTop.x, b.rightTop.y); @@ -91866,7 +91947,7 @@ var UGCLayer = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var jsonObject = {}; - jsonObject = Util.copyAttributes(jsonObject, this); + jsonObject = Util_Util.copyAttributes(jsonObject, this); if (jsonObject.bounds) { if (jsonObject.bounds.toServerJSONObject) { jsonObject.bounds = jsonObject.bounds.toServerJSONObject(); @@ -91876,7 +91957,7 @@ var UGCLayer = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/UGCMapLayer.js +;// CONCATENATED MODULE: ./src/common/iServer/UGCMapLayer.js function UGCMapLayer_typeof(o) { "@babel/helpers - typeof"; return UGCMapLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UGCMapLayer_typeof(o); } function UGCMapLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UGCMapLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UGCMapLayer_toPropertyKey(o.key), o); } } @@ -91887,7 +91968,7 @@ function UGCMapLayer_callSuper(t, o, e) { return o = UGCMapLayer_getPrototypeOf( function UGCMapLayer_possibleConstructorReturn(t, e) { if (e && ("object" == UGCMapLayer_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return UGCMapLayer_assertThisInitialized(t); } function UGCMapLayer_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function UGCMapLayer_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (UGCMapLayer_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function UGCMapLayer_superPropGet(t, o, e, r) { var p = UGCMapLayer_get(UGCMapLayer_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function UGCMapLayer_superPropGet(t, e, o, r) { var p = UGCMapLayer_get(UGCMapLayer_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function UGCMapLayer_get() { return UGCMapLayer_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = UGCMapLayer_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, UGCMapLayer_get.apply(null, arguments); } function UGCMapLayer_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = UGCMapLayer_getPrototypeOf(t));); return t; } function UGCMapLayer_getPrototypeOf(t) { return UGCMapLayer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, UGCMapLayer_getPrototypeOf(t); } @@ -91913,8 +91994,8 @@ function UGCMapLayer_setPrototypeOf(t, e) { return UGCMapLayer_setPrototypeOf = * @param {number} [options.opaqueRate] - 图层的不透明度。 * @param {boolean} [options.symbolScalable] - 是否允许图层的符号大小随图缩放。 * @param {number} [options.symbolScale] - 图层符号缩放的基准比例尺。 - * @param {boolean} [options.overlapDisplayed=false] - 地图对象在同一范围内时,是否重叠显示。 - * @param {OverlapDisplayedOptions} [options.overlapDisplayedOptions] - 地图的压盖过滤显示选项,当 overlapDisplayed 为 false 时有效。 + * @param {boolean} [options.overlapDisplayed=false] - 地图对象在同一范围内时,是否重叠显示,如果为 true,则同一范围内的对象会直接压盖;如果为 false 则通过 overlapDisplayedOptions 控制对象不压盖显示。 + * @param {OverlapDisplayedOptions} [options.overlapDisplayedOptions] - 避免地图对象压盖显示的过滤选项,当 overlapDisplayed 为 false 时有效。在文本或专题图元素显示较密集的区域,文本之间或专题元素之间会发生相互压盖的现象,此选项可以分别控制各种类型的对象的压盖显示情况,以处理地图中各种类型对象的压盖显示问题。 * @usage */ var UGCMapLayer = /*#__PURE__*/function (_UGCLayer) { @@ -91966,17 +92047,18 @@ var UGCMapLayer = /*#__PURE__*/function (_UGCLayer) { /** * @member {boolean} [UGCMapLayer.prototype.overlapDisplayed=false] - * @description 地图对象在同一范围内时,是否重叠显示。 + * @description 地图对象在同一范围内时,是否重叠显示,如果为 true,则同一范围内的对象会直接压盖;如果为 false 则通过 overlapDisplayedOptions 控制对象不压盖显示。 */ _this.overlapDisplayed = null; /** * @member {OverlapDisplayedOptions} UGCMapLayer.prototype.overlapDisplayedOptions - * @description 地图的压盖过滤显示选项,当 overlapDisplayed 为 false 时有效。 + * @description 避免地图对象压盖显示的过滤选项,当 overlapDisplayed 为 false 时有效。
+ * 在文本或专题图元素显示较密集的区域,文本之间或专题元素之间会发生相互压盖的现象, 此选项可以分别控制各种类型的对象的压盖显示情况,以处理地图中各种类型对象的压盖显示问题。 */ _this.overlapDisplayedOptions = null; _this.CLASS_NAME = "SuperMap.UGCMapLayer"; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } @@ -91989,7 +92071,7 @@ var UGCMapLayer = /*#__PURE__*/function (_UGCLayer) { key: "destroy", value: function destroy() { UGCMapLayer_superPropGet(UGCMapLayer, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -92015,7 +92097,7 @@ var UGCMapLayer = /*#__PURE__*/function (_UGCLayer) { } }]); }(UGCLayer); -;// ./src/common/iServer/JoinItem.js +;// CONCATENATED MODULE: ./src/common/iServer/JoinItem.js function JoinItem_typeof(o) { "@babel/helpers - typeof"; return JoinItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, JoinItem_typeof(o); } function JoinItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function JoinItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, JoinItem_toPropertyKey(o.key), o); } } @@ -92097,7 +92179,7 @@ var JoinItem = /*#__PURE__*/function () { */ this.joinType = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.JoinItem"; } @@ -92123,13 +92205,13 @@ var JoinItem = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var dataObj = {}; - dataObj = Util.copyAttributes(dataObj, this); + dataObj = Util_Util.copyAttributes(dataObj, this); //joinFilter基本是个纯属性对象,这里不再做转换 return dataObj; } }]); }(); -;// ./src/common/iServer/DatasetInfo.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasetInfo.js function DatasetInfo_typeof(o) { "@babel/helpers - typeof"; return DatasetInfo_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasetInfo_typeof(o); } function DatasetInfo_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasetInfo_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasetInfo_toPropertyKey(o.key), o); } } @@ -92224,7 +92306,7 @@ var DatasetInfo = /*#__PURE__*/function () { * @description 数据集类型,该字段必设。主要有点数据集,线数据集,面数据集,文本数据集,复合数据集(CAD 数据集)、网络数据集,栅格数据集(grid dataset)和影像数据集(image dataset)。 */ this.type = null; - Util.extend(this, options); + Util_Util.extend(this, options); var b = this.bounds; if (b) { this.bounds = new Bounds(b.leftBottom.x, b.leftBottom.y, b.rightTop.x, b.rightTop.y); @@ -92239,7 +92321,7 @@ var DatasetInfo = /*#__PURE__*/function () { return DatasetInfo_createClass(DatasetInfo, [{ key: "destroy", value: function destroy() { - Util.reset(this); + Util_Util.reset(this); } /** @@ -92251,7 +92333,7 @@ var DatasetInfo = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var dataObj = {}; - dataObj = Util.copyAttributes(dataObj, this); + dataObj = Util_Util.copyAttributes(dataObj, this); if (dataObj.bounds) { if (dataObj.bounds.toServerJSONObject) { dataObj.bounds = dataObj.bounds.toServerJSONObject(); @@ -92261,7 +92343,7 @@ var DatasetInfo = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/UGCSubLayer.js +;// CONCATENATED MODULE: ./src/common/iServer/UGCSubLayer.js function UGCSubLayer_typeof(o) { "@babel/helpers - typeof"; return UGCSubLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UGCSubLayer_typeof(o); } function UGCSubLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UGCSubLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UGCSubLayer_toPropertyKey(o.key), o); } } @@ -92272,7 +92354,7 @@ function UGCSubLayer_callSuper(t, o, e) { return o = UGCSubLayer_getPrototypeOf( function UGCSubLayer_possibleConstructorReturn(t, e) { if (e && ("object" == UGCSubLayer_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return UGCSubLayer_assertThisInitialized(t); } function UGCSubLayer_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function UGCSubLayer_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (UGCSubLayer_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function UGCSubLayer_superPropGet(t, o, e, r) { var p = UGCSubLayer_get(UGCSubLayer_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function UGCSubLayer_superPropGet(t, e, o, r) { var p = UGCSubLayer_get(UGCSubLayer_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function UGCSubLayer_get() { return UGCSubLayer_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = UGCSubLayer_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, UGCSubLayer_get.apply(null, arguments); } function UGCSubLayer_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = UGCSubLayer_getPrototypeOf(t));); return t; } function UGCSubLayer_getPrototypeOf(t) { return UGCSubLayer_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, UGCSubLayer_getPrototypeOf(t); } @@ -92336,7 +92418,7 @@ var UGCSubLayer = /*#__PURE__*/function (_UGCMapLayer) { */ _this.ugcLayerType = null; _this.CLASS_NAME = "SuperMap.UGCSubLayer"; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } @@ -92370,7 +92452,7 @@ var UGCSubLayer = /*#__PURE__*/function (_UGCMapLayer) { key: "destroy", value: function destroy() { UGCSubLayer_superPropGet(UGCSubLayer, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -92400,7 +92482,7 @@ var UGCSubLayer = /*#__PURE__*/function (_UGCMapLayer) { } }]); }(UGCMapLayer); -;// ./src/common/iServer/ServerTheme.js +;// CONCATENATED MODULE: ./src/common/iServer/ServerTheme.js function ServerTheme_typeof(o) { "@babel/helpers - typeof"; return ServerTheme_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServerTheme_typeof(o); } function ServerTheme_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ServerTheme_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServerTheme_toPropertyKey(o.key), o); } } @@ -92411,7 +92493,7 @@ function ServerTheme_callSuper(t, o, e) { return o = ServerTheme_getPrototypeOf( function ServerTheme_possibleConstructorReturn(t, e) { if (e && ("object" == ServerTheme_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ServerTheme_assertThisInitialized(t); } function ServerTheme_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ServerTheme_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ServerTheme_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ServerTheme_superPropGet(t, o, e, r) { var p = ServerTheme_get(ServerTheme_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ServerTheme_superPropGet(t, e, o, r) { var p = ServerTheme_get(ServerTheme_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ServerTheme_get() { return ServerTheme_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ServerTheme_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ServerTheme_get.apply(null, arguments); } function ServerTheme_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ServerTheme_getPrototypeOf(t));); return t; } function ServerTheme_getPrototypeOf(t) { return ServerTheme_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ServerTheme_getPrototypeOf(t); } @@ -92459,7 +92541,7 @@ var ServerTheme = /*#__PURE__*/function (_UGCSubLayer) { */ _this.themeElementPosition = null; _this.CLASS_NAME = "SuperMap.ServerTheme"; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } @@ -92473,7 +92555,7 @@ var ServerTheme = /*#__PURE__*/function (_UGCSubLayer) { key: "destroy", value: function destroy() { ServerTheme_superPropGet(ServerTheme, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -92538,7 +92620,7 @@ var ServerTheme = /*#__PURE__*/function (_UGCSubLayer) { } }]); }(UGCSubLayer); -;// ./src/common/iServer/ColorDictionary.js +;// CONCATENATED MODULE: ./src/common/iServer/ColorDictionary.js function ColorDictionary_typeof(o) { "@babel/helpers - typeof"; return ColorDictionary_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ColorDictionary_typeof(o); } function ColorDictionary_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ColorDictionary_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ColorDictionary_toPropertyKey(o.key), o); } } @@ -92581,7 +92663,7 @@ var ColorDictionary = /*#__PURE__*/function () { * @description 服务端颜色类。 */ this.color = null; - Util.extend(this, options); + Util_Util.extend(this, options); var me = this, c = me.color; if (c) { @@ -92597,7 +92679,7 @@ var ColorDictionary = /*#__PURE__*/function () { return ColorDictionary_createClass(ColorDictionary, [{ key: "destroy", value: function destroy() { - Util.reset(this); + Util_Util.reset(this); } /** @@ -92609,12 +92691,12 @@ var ColorDictionary = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var dataObj = {}; - dataObj = Util.copyAttributes(dataObj, this); + dataObj = Util_Util.copyAttributes(dataObj, this); return dataObj; } }]); }(); -;// ./src/common/iServer/Grid.js +;// CONCATENATED MODULE: ./src/common/iServer/Grid.js function Grid_typeof(o) { "@babel/helpers - typeof"; return Grid_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Grid_typeof(o); } function Grid_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Grid_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Grid_toPropertyKey(o.key), o); } } @@ -92625,7 +92707,7 @@ function Grid_callSuper(t, o, e) { return o = Grid_getPrototypeOf(o), Grid_possi function Grid_possibleConstructorReturn(t, e) { if (e && ("object" == Grid_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Grid_assertThisInitialized(t); } function Grid_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Grid_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Grid_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Grid_superPropGet(t, o, e, r) { var p = Grid_get(Grid_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Grid_superPropGet(t, e, o, r) { var p = Grid_get(Grid_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Grid_get() { return Grid_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Grid_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Grid_get.apply(null, arguments); } function Grid_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Grid_getPrototypeOf(t));); return t; } function Grid_getPrototypeOf(t) { return Grid_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Grid_getPrototypeOf(t); } @@ -92767,7 +92849,7 @@ var Grid = /*#__PURE__*/function (_UGCSubLayer) { */ _this.gamma = null; _this.CLASS_NAME = "SuperMap.Grid"; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } @@ -92780,7 +92862,7 @@ var Grid = /*#__PURE__*/function (_UGCSubLayer) { key: "destroy", value: function destroy() { Grid_superPropGet(Grid, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -92848,7 +92930,7 @@ var Grid = /*#__PURE__*/function (_UGCSubLayer) { } }]); }(UGCSubLayer); -;// ./src/common/iServer/Image.js +;// CONCATENATED MODULE: ./src/common/iServer/Image.js function iServer_Image_typeof(o) { "@babel/helpers - typeof"; return iServer_Image_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iServer_Image_typeof(o); } function iServer_Image_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iServer_Image_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iServer_Image_toPropertyKey(o.key), o); } } @@ -92859,7 +92941,7 @@ function iServer_Image_callSuper(t, o, e) { return o = iServer_Image_getPrototyp function iServer_Image_possibleConstructorReturn(t, e) { if (e && ("object" == iServer_Image_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return iServer_Image_assertThisInitialized(t); } function iServer_Image_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function iServer_Image_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (iServer_Image_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function iServer_Image_superPropGet(t, o, e, r) { var p = iServer_Image_get(iServer_Image_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function iServer_Image_superPropGet(t, e, o, r) { var p = iServer_Image_get(iServer_Image_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function iServer_Image_get() { return iServer_Image_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = iServer_Image_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, iServer_Image_get.apply(null, arguments); } function iServer_Image_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = iServer_Image_getPrototypeOf(t));); return t; } function iServer_Image_getPrototypeOf(t) { return iServer_Image_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, iServer_Image_getPrototypeOf(t); } @@ -92950,7 +93032,7 @@ var UGCImage = /*#__PURE__*/function (_UGCSubLayer) { */ _this.gamma = null; _this.CLASS_NAME = "SuperMap.Image"; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } @@ -92963,7 +93045,7 @@ var UGCImage = /*#__PURE__*/function (_UGCSubLayer) { key: "destroy", value: function destroy() { iServer_Image_superPropGet(UGCImage, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -92991,7 +93073,7 @@ var UGCImage = /*#__PURE__*/function (_UGCSubLayer) { } }]); }(UGCSubLayer); -;// ./src/common/iServer/Vector.js +;// CONCATENATED MODULE: ./src/common/iServer/Vector.js function iServer_Vector_typeof(o) { "@babel/helpers - typeof"; return iServer_Vector_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iServer_Vector_typeof(o); } function iServer_Vector_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iServer_Vector_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iServer_Vector_toPropertyKey(o.key), o); } } @@ -93002,7 +93084,7 @@ function iServer_Vector_callSuper(t, o, e) { return o = iServer_Vector_getProtot function iServer_Vector_possibleConstructorReturn(t, e) { if (e && ("object" == iServer_Vector_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return iServer_Vector_assertThisInitialized(t); } function iServer_Vector_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function iServer_Vector_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (iServer_Vector_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function iServer_Vector_superPropGet(t, o, e, r) { var p = iServer_Vector_get(iServer_Vector_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function iServer_Vector_superPropGet(t, e, o, r) { var p = iServer_Vector_get(iServer_Vector_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function iServer_Vector_get() { return iServer_Vector_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = iServer_Vector_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, iServer_Vector_get.apply(null, arguments); } function iServer_Vector_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = iServer_Vector_getPrototypeOf(t));); return t; } function iServer_Vector_getPrototypeOf(t) { return iServer_Vector_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, iServer_Vector_getPrototypeOf(t); } @@ -93038,7 +93120,7 @@ var iServer_Vector_Vector = /*#__PURE__*/function (_UGCSubLayer) { */ _this.style = null; _this.CLASS_NAME = "SuperMap.Vector"; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } @@ -93052,7 +93134,7 @@ var iServer_Vector_Vector = /*#__PURE__*/function (_UGCSubLayer) { key: "destroy", value: function destroy() { iServer_Vector_superPropGet(Vector, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -93088,7 +93170,7 @@ var iServer_Vector_Vector = /*#__PURE__*/function (_UGCSubLayer) { } }]); }(UGCSubLayer); -;// ./src/common/iServer/GetLayersInfoService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetLayersInfoService.js function GetLayersInfoService_typeof(o) { "@babel/helpers - typeof"; return GetLayersInfoService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetLayersInfoService_typeof(o); } function GetLayersInfoService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetLayersInfoService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetLayersInfoService_toPropertyKey(o.key), o); } } @@ -93099,7 +93181,7 @@ function GetLayersInfoService_callSuper(t, o, e) { return o = GetLayersInfoServi function GetLayersInfoService_possibleConstructorReturn(t, e) { if (e && ("object" == GetLayersInfoService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetLayersInfoService_assertThisInitialized(t); } function GetLayersInfoService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetLayersInfoService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetLayersInfoService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetLayersInfoService_superPropGet(t, o, e, r) { var p = GetLayersInfoService_get(GetLayersInfoService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetLayersInfoService_superPropGet(t, e, o, r) { var p = GetLayersInfoService_get(GetLayersInfoService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetLayersInfoService_get() { return GetLayersInfoService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetLayersInfoService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetLayersInfoService_get.apply(null, arguments); } function GetLayersInfoService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetLayersInfoService_getPrototypeOf(t));); return t; } function GetLayersInfoService_getPrototypeOf(t) { return GetLayersInfoService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetLayersInfoService_getPrototypeOf(t); } @@ -93144,7 +93226,7 @@ var GetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.isTempLayers = false; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GetLayersInfoService"; return _this; @@ -93159,7 +93241,7 @@ var GetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { GetLayersInfoService_superPropGet(GetLayersInfoService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -93173,7 +93255,7 @@ var GetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { var me = this, method = "GET"; if (!me.isTempLayers) { - me.url = Util.urlPathAppend(me.url, 'layers'); + me.url = Util_Util.urlPathAppend(me.url, 'layers'); } return me.request({ method: method, @@ -93198,7 +93280,7 @@ var GetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { existRes, layers, len; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); existRes = !!result && result.length > 0; layers = existRes ? result[0].subLayers.layers : null; len = layers ? layers.length : 0; @@ -93257,7 +93339,7 @@ var GetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/GetLayersLegendInfoService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetLayersLegendInfoService.js function GetLayersLegendInfoService_typeof(o) { "@babel/helpers - typeof"; return GetLayersLegendInfoService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetLayersLegendInfoService_typeof(o); } function GetLayersLegendInfoService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetLayersLegendInfoService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetLayersLegendInfoService_toPropertyKey(o.key), o); } } @@ -93268,7 +93350,7 @@ function GetLayersLegendInfoService_callSuper(t, o, e) { return o = GetLayersLeg function GetLayersLegendInfoService_possibleConstructorReturn(t, e) { if (e && ("object" == GetLayersLegendInfoService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetLayersLegendInfoService_assertThisInitialized(t); } function GetLayersLegendInfoService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetLayersLegendInfoService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetLayersLegendInfoService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetLayersLegendInfoService_superPropGet(t, o, e, r) { var p = GetLayersLegendInfoService_get(GetLayersLegendInfoService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetLayersLegendInfoService_superPropGet(t, e, o, r) { var p = GetLayersLegendInfoService_get(GetLayersLegendInfoService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetLayersLegendInfoService_get() { return GetLayersLegendInfoService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetLayersLegendInfoService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetLayersLegendInfoService_get.apply(null, arguments); } function GetLayersLegendInfoService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetLayersLegendInfoService_getPrototypeOf(t));); return t; } function GetLayersLegendInfoService_getPrototypeOf(t) { return GetLayersLegendInfoService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetLayersLegendInfoService_getPrototypeOf(t); } @@ -93302,7 +93384,7 @@ var GetLayersLegendInfoService = /*#__PURE__*/function (_CommonServiceBase) { GetLayersLegendInfoService_classCallCheck(this, GetLayersLegendInfoService); _this = GetLayersLegendInfoService_callSuper(this, GetLayersLegendInfoService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GetLayersLegendInfoService"; return _this; @@ -93317,7 +93399,7 @@ var GetLayersLegendInfoService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { GetLayersLegendInfoService_superPropGet(GetLayersLegendInfoService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -93329,7 +93411,7 @@ var GetLayersLegendInfoService = /*#__PURE__*/function (_CommonServiceBase) { value: function processAsync(params, callback) { var me = this, method = "GET"; - me.url = Util.urlPathAppend(me.url, "/legend"); + me.url = Util_Util.urlPathAppend(me.url, "/legend"); return me.request({ method: method, params: params, @@ -93340,7 +93422,7 @@ var GetLayersLegendInfoService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/SetLayerInfoService.js +;// CONCATENATED MODULE: ./src/common/iServer/SetLayerInfoService.js function SetLayerInfoService_typeof(o) { "@babel/helpers - typeof"; return SetLayerInfoService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SetLayerInfoService_typeof(o); } function SetLayerInfoService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SetLayerInfoService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SetLayerInfoService_toPropertyKey(o.key), o); } } @@ -93351,7 +93433,7 @@ function SetLayerInfoService_callSuper(t, o, e) { return o = SetLayerInfoService function SetLayerInfoService_possibleConstructorReturn(t, e) { if (e && ("object" == SetLayerInfoService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SetLayerInfoService_assertThisInitialized(t); } function SetLayerInfoService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SetLayerInfoService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SetLayerInfoService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SetLayerInfoService_superPropGet(t, o, e, r) { var p = SetLayerInfoService_get(SetLayerInfoService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SetLayerInfoService_superPropGet(t, e, o, r) { var p = SetLayerInfoService_get(SetLayerInfoService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SetLayerInfoService_get() { return SetLayerInfoService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SetLayerInfoService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SetLayerInfoService_get.apply(null, arguments); } function SetLayerInfoService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SetLayerInfoService_getPrototypeOf(t));); return t; } function SetLayerInfoService_getPrototypeOf(t) { return SetLayerInfoService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SetLayerInfoService_getPrototypeOf(t); } @@ -93384,7 +93466,7 @@ var SetLayerInfoService = /*#__PURE__*/function (_CommonServiceBase) { SetLayerInfoService_classCallCheck(this, SetLayerInfoService); _this = SetLayerInfoService_callSuper(this, SetLayerInfoService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.SetLayerInfoService"; return _this; @@ -93398,7 +93480,7 @@ var SetLayerInfoService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { SetLayerInfoService_superPropGet(SetLayerInfoService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -93416,7 +93498,7 @@ var SetLayerInfoService = /*#__PURE__*/function (_CommonServiceBase) { return; } var me = this; - var jsonParamsStr = Util.toJSON(params); + var jsonParamsStr = Util_Util.toJSON(params); return me.request({ method: "PUT", data: jsonParamsStr, @@ -93427,7 +93509,7 @@ var SetLayerInfoService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/SetLayersInfoService.js +;// CONCATENATED MODULE: ./src/common/iServer/SetLayersInfoService.js function SetLayersInfoService_typeof(o) { "@babel/helpers - typeof"; return SetLayersInfoService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SetLayersInfoService_typeof(o); } function SetLayersInfoService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SetLayersInfoService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SetLayersInfoService_toPropertyKey(o.key), o); } } @@ -93438,7 +93520,7 @@ function SetLayersInfoService_callSuper(t, o, e) { return o = SetLayersInfoServi function SetLayersInfoService_possibleConstructorReturn(t, e) { if (e && ("object" == SetLayersInfoService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SetLayersInfoService_assertThisInitialized(t); } function SetLayersInfoService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SetLayersInfoService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SetLayersInfoService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SetLayersInfoService_superPropGet(t, o, e, r) { var p = SetLayersInfoService_get(SetLayersInfoService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SetLayersInfoService_superPropGet(t, e, o, r) { var p = SetLayersInfoService_get(SetLayersInfoService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SetLayersInfoService_get() { return SetLayersInfoService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SetLayersInfoService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SetLayersInfoService_get.apply(null, arguments); } function SetLayersInfoService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SetLayersInfoService_getPrototypeOf(t));); return t; } function SetLayersInfoService_getPrototypeOf(t) { return SetLayersInfoService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SetLayersInfoService_getPrototypeOf(t); } @@ -93485,7 +93567,7 @@ var SetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.isTempLayers = false; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.SetLayersInfoService"; return _this; @@ -93499,7 +93581,7 @@ var SetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { SetLayersInfoService_superPropGet(SetLayersInfoService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -93522,10 +93604,10 @@ var SetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { //创建临时图层和设置修改临时图层信息对应不同的资源URL if (me.isTempLayers) { - me.url = Util.urlPathAppend(me.url, "tempLayersSet/" + me.resourceID); + me.url = Util_Util.urlPathAppend(me.url, "tempLayersSet/" + me.resourceID); method = "PUT"; } else { - me.url = Util.urlPathAppend(me.url, "tempLayersSet"); + me.url = Util_Util.urlPathAppend(me.url, "tempLayersSet"); method = "POST"; } if (!params.subLayers) { @@ -93558,12 +93640,12 @@ var SetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { subLayers.push(layers[_i]); } } - jsonParams = Util.extend(jsonParams, params); + jsonParams = Util_Util.extend(jsonParams, params); jsonParams.subLayers = { "layers": subLayers }; jsonParams.object = null; - var jsonParamsStr = Util.toJSON([jsonParams]); + var jsonParamsStr = Util_Util.toJSON([jsonParams]); return me.request({ method: method, data: jsonParamsStr, @@ -93574,7 +93656,7 @@ var SetLayersInfoService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/SetLayerStatusParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/SetLayerStatusParameters.js function SetLayerStatusParameters_typeof(o) { "@babel/helpers - typeof"; return SetLayerStatusParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SetLayerStatusParameters_typeof(o); } function SetLayerStatusParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SetLayerStatusParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SetLayerStatusParameters_toPropertyKey(o.key), o); } } @@ -93621,7 +93703,7 @@ var SetLayerStatusParameters = /*#__PURE__*/function () { */ this.resourceID = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } } @@ -93659,7 +93741,7 @@ var SetLayerStatusParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SetLayerStatusService.js +;// CONCATENATED MODULE: ./src/common/iServer/SetLayerStatusService.js function SetLayerStatusService_typeof(o) { "@babel/helpers - typeof"; return SetLayerStatusService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SetLayerStatusService_typeof(o); } function SetLayerStatusService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SetLayerStatusService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SetLayerStatusService_toPropertyKey(o.key), o); } } @@ -93670,7 +93752,7 @@ function SetLayerStatusService_callSuper(t, o, e) { return o = SetLayerStatusSer function SetLayerStatusService_possibleConstructorReturn(t, e) { if (e && ("object" == SetLayerStatusService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SetLayerStatusService_assertThisInitialized(t); } function SetLayerStatusService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SetLayerStatusService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SetLayerStatusService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SetLayerStatusService_superPropGet(t, o, e, r) { var p = SetLayerStatusService_get(SetLayerStatusService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SetLayerStatusService_superPropGet(t, e, o, r) { var p = SetLayerStatusService_get(SetLayerStatusService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SetLayerStatusService_get() { return SetLayerStatusService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SetLayerStatusService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SetLayerStatusService_get.apply(null, arguments); } function SetLayerStatusService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SetLayerStatusService_getPrototypeOf(t));); return t; } function SetLayerStatusService_getPrototypeOf(t) { return SetLayerStatusService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SetLayerStatusService_getPrototypeOf(t); } @@ -93708,7 +93790,7 @@ var SetLayerStatusService = /*#__PURE__*/function (_CommonServiceBase) { _this.lastparams = null; _this.mapUrl = url; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.SetLayerStatusService"; return _this; @@ -93722,7 +93804,7 @@ var SetLayerStatusService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { SetLayerStatusService_superPropGet(SetLayerStatusService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -93743,7 +93825,7 @@ var SetLayerStatusService = /*#__PURE__*/function (_CommonServiceBase) { method = "POST"; me.url = me.mapUrl; if (params.resourceID == null) { - me.url = Util.urlPathAppend(me.url, 'tempLayersSet'); + me.url = Util_Util.urlPathAppend(me.url, 'tempLayersSet'); me.lastparams = params; return me.request({ method: method, @@ -93752,8 +93834,8 @@ var SetLayerStatusService = /*#__PURE__*/function (_CommonServiceBase) { failure: callback }); } else { - me.url = Util.urlPathAppend(me.url, "tempLayersSet/" + params.resourceID); - me.url = Util.urlAppend(me.url, "elementRemain=true&reference=" + params.resourceID + "&holdTime=" + params.holdTime.toString()); + me.url = Util_Util.urlPathAppend(me.url, "tempLayersSet/" + params.resourceID); + me.url = Util_Util.urlAppend(me.url, "elementRemain=true&reference=" + params.resourceID + "&holdTime=" + params.holdTime.toString()); var jsonParameters = '[{'; jsonParameters += '"type":"UGC",'; if (params.layerStatusList != null && params.layerStatusList.length > 0) { @@ -93784,7 +93866,7 @@ var SetLayerStatusService = /*#__PURE__*/function (_CommonServiceBase) { value: function createTempLayerComplete(callback, result) { var me = this; result = result.result ? result.result : result; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); if (result.succeed) { me.lastparams.resourceID = result.newResourceID; } @@ -93819,7 +93901,7 @@ var SetLayerStatusService = /*#__PURE__*/function (_CommonServiceBase) { key: "transformResult", value: function transformResult(result, options) { var me = this; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); if (result != null && me.lastparams != null && me.lastparams.resourceID != null) { result.newResourceID = me.lastparams.resourceID; } @@ -93830,7 +93912,7 @@ var SetLayerStatusService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/LayerInfoService.js +;// CONCATENATED MODULE: ./src/common/iServer/LayerInfoService.js function LayerInfoService_typeof(o) { "@babel/helpers - typeof"; return LayerInfoService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LayerInfoService_typeof(o); } function LayerInfoService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LayerInfoService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LayerInfoService_toPropertyKey(o.key), o); } } @@ -93931,7 +94013,7 @@ var LayerInfoService_LayerInfoService = /*#__PURE__*/function () { if (!resourceID || !tempLayerName) { return; } - var url = Util.urlPathAppend(me.url, "tempLayersSet/" + resourceID + "/" + tempLayerName); + var url = Util_Util.urlPathAppend(me.url, "tempLayersSet/" + resourceID + "/" + tempLayerName); var setLayerInfoService = new SetLayerInfoService(url, { proxy: me.options.proxy, withCredentials: me.options.withCredentials, @@ -93996,7 +94078,7 @@ var LayerInfoService_LayerInfoService = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GetGridCellInfosParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GetGridCellInfosParameters.js function GetGridCellInfosParameters_typeof(o) { "@babel/helpers - typeof"; return GetGridCellInfosParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetGridCellInfosParameters_typeof(o); } function GetGridCellInfosParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetGridCellInfosParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetGridCellInfosParameters_toPropertyKey(o.key), o); } } @@ -94063,7 +94145,7 @@ var GetGridCellInfosParameters = /*#__PURE__*/function () { * @description 要查询的地理范围。 */ this.bounds = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.GetGridCellInfosParameters"; } @@ -94082,7 +94164,7 @@ var GetGridCellInfosParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GetGridCellInfosService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetGridCellInfosService.js function GetGridCellInfosService_typeof(o) { "@babel/helpers - typeof"; return GetGridCellInfosService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetGridCellInfosService_typeof(o); } function GetGridCellInfosService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetGridCellInfosService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetGridCellInfosService_toPropertyKey(o.key), o); } } @@ -94093,7 +94175,7 @@ function GetGridCellInfosService_callSuper(t, o, e) { return o = GetGridCellInfo function GetGridCellInfosService_possibleConstructorReturn(t, e) { if (e && ("object" == GetGridCellInfosService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetGridCellInfosService_assertThisInitialized(t); } function GetGridCellInfosService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetGridCellInfosService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetGridCellInfosService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetGridCellInfosService_superPropGet(t, o, e, r) { var p = GetGridCellInfosService_get(GetGridCellInfosService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetGridCellInfosService_superPropGet(t, e, o, r) { var p = GetGridCellInfosService_get(GetGridCellInfosService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetGridCellInfosService_get() { return GetGridCellInfosService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetGridCellInfosService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetGridCellInfosService_get.apply(null, arguments); } function GetGridCellInfosService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetGridCellInfosService_getPrototypeOf(t));); return t; } function GetGridCellInfosService_getPrototypeOf(t) { return GetGridCellInfosService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetGridCellInfosService_getPrototypeOf(t); } @@ -94156,7 +94238,7 @@ var GetGridCellInfosService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.Y = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GetGridCellInfosService"; return _this; @@ -94192,9 +94274,9 @@ var GetGridCellInfosService = /*#__PURE__*/function (_CommonServiceBase) { if (!(params instanceof GetGridCellInfosParameters)) { return; } - Util.extend(this, params); + Util_Util.extend(this, params); var me = this; - me.url = Util.urlPathAppend(me.url, "datasources/".concat(me.dataSourceName, "/datasets/").concat(me.datasetName)); + me.url = Util_Util.urlPathAppend(me.url, "datasources/".concat(me.dataSourceName, "/datasets/").concat(me.datasetName)); return me.request({ method: "GET", data: null, @@ -94223,7 +94305,7 @@ var GetGridCellInfosService = /*#__PURE__*/function (_CommonServiceBase) { key: "getDatasetInfoCompleted", value: function getDatasetInfoCompleted(result, callback) { var me = this; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); me.datasetType = result.datasetInfo.type; return me.queryGridInfos(callback); } @@ -94240,7 +94322,7 @@ var GetGridCellInfosService = /*#__PURE__*/function (_CommonServiceBase) { var me = this; var datasetType = me.datasetType === 'GRID' ? 'gridValue' : 'imageValue'; var queryMode = me.bounds ? datasetType + 's' : datasetType; - var url = Util.urlPathAppend(me.url, queryMode); + var url = Util_Util.urlPathAppend(me.url, queryMode); var method = 'GET'; var data = null; if (Array.isArray(me.bounds)) { @@ -94248,9 +94330,9 @@ var GetGridCellInfosService = /*#__PURE__*/function (_CommonServiceBase) { data = me.bounds; } else { if (me.bounds) { - url = Util.urlAppend(url, "bounds=".concat(encodeURIComponent(JSON.stringify(me.bounds)))); + url = Util_Util.urlAppend(url, "bounds=".concat(encodeURIComponent(JSON.stringify(me.bounds)))); } else if (me.X != null && me.Y != null) { - url = Util.urlAppend(url, "x=".concat(me.X, "&y=").concat(me.Y)); + url = Util_Util.urlAppend(url, "x=".concat(me.X, "&y=").concat(me.Y)); } } return me.request({ @@ -94264,7 +94346,7 @@ var GetGridCellInfosService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/GetFeaturesServiceBase.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesServiceBase.js function GetFeaturesServiceBase_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesServiceBase_typeof(o); } function GetFeaturesServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesServiceBase_toPropertyKey(o.key), o); } } @@ -94275,7 +94357,7 @@ function GetFeaturesServiceBase_callSuper(t, o, e) { return o = GetFeaturesServi function GetFeaturesServiceBase_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesServiceBase_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesServiceBase_assertThisInitialized(t); } function GetFeaturesServiceBase_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesServiceBase_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesServiceBase_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesServiceBase_superPropGet(t, o, e, r) { var p = GetFeaturesServiceBase_get(GetFeaturesServiceBase_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesServiceBase_superPropGet(t, e, o, r) { var p = GetFeaturesServiceBase_get(GetFeaturesServiceBase_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesServiceBase_get() { return GetFeaturesServiceBase_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesServiceBase_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesServiceBase_get.apply(null, arguments); } function GetFeaturesServiceBase_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesServiceBase_getPrototypeOf(t));); return t; } function GetFeaturesServiceBase_getPrototypeOf(t) { return GetFeaturesServiceBase_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesServiceBase_getPrototypeOf(t); } @@ -94330,13 +94412,13 @@ var GetFeaturesServiceBase = /*#__PURE__*/function (_CommonServiceBase) { /** * @member {number} [GetFeaturesServiceBase.prototype.fromIndex=0] - * @description 查询结果的最小索引号。如果该值大于查询结果的最大索引号,则查询结果为空。 + * @description 查询结果的最小索引号,指定了返回结果的开始位置。如果该值大于查询结果的最大索引号,则查询结果为空。 */ _this.fromIndex = 0; /** * @member {number} [GetFeaturesServiceBase.prototype.toIndex=19] - * @description 查询结果的最大索引号。 + * @description 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 * 如果该值大于查询结果的最大索引号,则以查询结果的最大索引号为终止索引号。 */ _this.toIndex = 19; @@ -94359,8 +94441,8 @@ var GetFeaturesServiceBase = /*#__PURE__*/function (_CommonServiceBase) { * 参数格式为 "ISERVER","GEOJSON","FGB"。 */ _this.format = DataFormat.GEOJSON; - Util.extend(_this, options); - _this.url = Util.urlPathAppend(_this.url, 'featureResults'); + Util_Util.extend(_this, options); + _this.url = Util_Util.urlPathAppend(_this.url, 'featureResults'); _this.CLASS_NAME = 'SuperMap.GetFeaturesServiceBase'; return _this; } @@ -94410,24 +94492,24 @@ var GetFeaturesServiceBase = /*#__PURE__*/function (_CommonServiceBase) { } var isValidNumber = me.fromIndex != null && me.toIndex != null && !isNaN(me.fromIndex) && !isNaN(me.toIndex); if (isValidNumber && me.fromIndex >= 0 && me.toIndex >= 0 && !firstPara) { - me.url = Util.urlAppend(me.url, "fromIndex=".concat(me.fromIndex, "&toIndex=").concat(me.toIndex)); + me.url = Util_Util.urlAppend(me.url, "fromIndex=".concat(me.fromIndex, "&toIndex=").concat(me.toIndex)); } if (me.returnContent) { if (!params.returnCountOnly && !params.returnDatasetInfoOnly && !params.returnFeaturesOnly) { console.warn('recommend set returnFeaturesOnly config to true to imporve performance. if need get Total amount and Dataset information. FeatureService provide getFeaturesCount and getFeaturesDatasetInfo method'); } if (params.returnCountOnly) { - me.url = Util.urlAppend(me.url, 'returnCountOnly=' + params.returnCountOnly); + me.url = Util_Util.urlAppend(me.url, 'returnCountOnly=' + params.returnCountOnly); } if (params.returnDatasetInfoOnly) { - me.url = Util.urlAppend(me.url, 'returnDatasetInfoOnly=' + params.returnDatasetInfoOnly); + me.url = Util_Util.urlAppend(me.url, 'returnDatasetInfoOnly=' + params.returnDatasetInfoOnly); } if (params.returnFeaturesOnly) { - me.url = Util.urlAppend(me.url, 'returnFeaturesOnly=' + params.returnFeaturesOnly); + me.url = Util_Util.urlAppend(me.url, 'returnFeaturesOnly=' + params.returnFeaturesOnly); } } if (me.preferServer && me.format === DataFormat.GEOJSON) { - me.url = Util.handleUrlSuffix(me.url, '.geojson'); + me.url = Util_Util.handleUrlSuffix(me.url, '.geojson'); me.withoutFormatSuffix = true; } jsonParameters = me.getJsonParameters(params); @@ -94451,7 +94533,7 @@ var GetFeaturesServiceBase = /*#__PURE__*/function (_CommonServiceBase) { key: "transformResult", value: function transformResult(result, options) { var me = this; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); var geoJSONFormat = new GeoJSON(); if (me.preferServer && me.format === DataFormat.GEOJSON) { var succeed = result.succeed; @@ -94487,7 +94569,7 @@ var GetFeaturesServiceBase = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/FilterParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/FilterParameter.js function FilterParameter_typeof(o) { "@babel/helpers - typeof"; return FilterParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FilterParameter_typeof(o); } function FilterParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FilterParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FilterParameter_toPropertyKey(o.key), o); } } @@ -94593,7 +94675,7 @@ var FilterParameter = /*#__PURE__*/function () { */ this.fields = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.FilterParameter"; } @@ -94627,7 +94709,7 @@ var FilterParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GetFeaturesParametersBase.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesParametersBase.js function GetFeaturesParametersBase_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesParametersBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesParametersBase_typeof(o); } function GetFeaturesParametersBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesParametersBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesParametersBase_toPropertyKey(o.key), o); } } @@ -94644,19 +94726,19 @@ function GetFeaturesParametersBase_toPrimitive(t, r) { if ("object" != GetFeatur * @deprecatedclass SuperMap.GetFeaturesParametersBase * @category iServer Data FeatureResults * @classdesc 要素查询参数基类。此类存储了进行要素查询的数据集列表以及一些通用的查询参数, - * 包括:是否返回查询结果、查询结果的最大/最小索引号、动态投影的目标坐标系、聚合查询相关参数等。 + * 包括:是否返回查询结果、查询结果的最大/最小索引号、查询结果的目标坐标系、聚合查询相关参数等。 *
*

Notice

*

推荐设置 returnFeaturesOnly 配置为 true 来提升性能,如果需要获取总数量与数据集信息,FeatureService 提供了 getFeaturesCount 和 getFeaturesDatasetInfo 方法

*
* @param {Object} options - 参数。 * @param {Array.} options.datasetNames - 数据集名称列表。 - * @param {boolean} [options.returnContent=true] - 是否直接返回查询结果。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。 - * @param {number} [options.fromIndex=0] - 查询结果的最小索引号。 - * @param {number} [options.toIndex=19] - 查询结果的最大索引号。 - * @param {string|number} [options.targetEpsgCode] - 动态投影的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 - * @param {Object} [options.targetPrj] - 动态投影的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 + * @param {number} [options.fromIndex=0] - 查询结果的最小索引号,指定了返回结果的开始位置。 + * @param {number} [options.toIndex=19] - 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 + * @param {string|number} [options.targetEpsgCode] - 查询结果的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 + * @param {Object} [options.targetPrj] - 查询结果的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当此参数设置的坐标系统不同于数据的原有坐标系统时, 系统会进行坐标转换,并返回坐标转换后的查询结果。当同时设置 targetEpsgCode 参数时,此参数不生效。 * @param {MetricsAggParameter|GeoHashGridAggParameter} [options.aggregations] - 聚合查询参数。该参数仅支持数据来源为 Elasticsearch 服务的 SuperMap iServer 的 REST 数据服务。 * @usage */ @@ -94671,19 +94753,19 @@ var GetFeaturesParametersBase = /*#__PURE__*/function () { /** * @member {string} GetFeaturesParametersBase.prototype.targetEpsgCode - * @description 动态投影的目标坐标系对应的 EPSG Code,使用时需设置 returnContent 参数为 true。 + * @description 查询结果的目标坐标系对应的 EPSG Code,使用时需设置 returnContent 参数为 true。 */ this.targetEpsgCode = null; /** * @member {Object} GetFeaturesParametersBase.prototype.targetPrj - * @description 动态投影的目标坐标系。使用时需设置 returnContent 参数为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 + * @description 查询结果的目标坐标系。使用时需设置 returnContent 参数为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 */ this.targetPrj = null; /** * @member {boolean} [GetFeaturesParametersBase.prototype.returnContent=true] - * @description 是否立即返回新创建资源的表述还是返回新资源的 URI。 + * @description 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * 如果为 true,则直接返回新创建资源,即查询结果的表述。 * 如果为 false,则返回的是查询结果资源的 URI。 */ @@ -94691,13 +94773,13 @@ var GetFeaturesParametersBase = /*#__PURE__*/function () { /** * @member {number} [GetFeaturesParametersBase.prototype.fromIndex=0] - * @description 查询结果的最小索引号。如果该值大于查询结果的最大索引号,则查询结果为空。 + * @description 查询结果的最小索引号,指定了返回结果的开始位置。如果该值大于查询结果的最大索引号,则查询结果为空。 */ this.fromIndex = 0; /** * @member {number} [GetFeaturesParametersBase.prototype.toIndex=19] - * @description 查询结果的最大索引号。如果该值大于查询结果的最大索引号,则以查询结果的最大索引号为终止索引号。 + * @description 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 */ this.toIndex = 19; @@ -94724,7 +94806,7 @@ var GetFeaturesParametersBase = /*#__PURE__*/function () { * @description 聚合查询参数,该参数仅支持数据来源为 Elasticsearch 服务的 SuperMap iServer 的 REST 数据服务。 */ this.aggregations = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = 'SuperMap.GetFeaturesParametersBase'; } @@ -94751,7 +94833,7 @@ var GetFeaturesParametersBase = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GetFeaturesByIDsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByIDsParameters.js function GetFeaturesByIDsParameters_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByIDsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByIDsParameters_typeof(o); } function GetFeaturesByIDsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByIDsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByIDsParameters_toPropertyKey(o.key), o); } } @@ -94762,7 +94844,7 @@ function GetFeaturesByIDsParameters_callSuper(t, o, e) { return o = GetFeaturesB function GetFeaturesByIDsParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByIDsParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByIDsParameters_assertThisInitialized(t); } function GetFeaturesByIDsParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByIDsParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByIDsParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByIDsParameters_superPropGet(t, o, e, r) { var p = GetFeaturesByIDsParameters_get(GetFeaturesByIDsParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByIDsParameters_superPropGet(t, e, o, r) { var p = GetFeaturesByIDsParameters_get(GetFeaturesByIDsParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByIDsParameters_get() { return GetFeaturesByIDsParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByIDsParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByIDsParameters_get.apply(null, arguments); } function GetFeaturesByIDsParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByIDsParameters_getPrototypeOf(t));); return t; } function GetFeaturesByIDsParameters_getPrototypeOf(t) { return GetFeaturesByIDsParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByIDsParameters_getPrototypeOf(t); } @@ -94788,12 +94870,12 @@ function GetFeaturesByIDsParameters_setPrototypeOf(t, e) { return GetFeaturesByI * @param {Array.} options.IDs - 指定查询的元素 ID 信息。 * @param {Array.} [options.fields] - 查询结果返回字段。默认返回所有字段。 * @param {Array.} options.dataSetNames - 数据集集合中的数据集名称列表。 - * @param {boolean} [options.returnContent=true] - 是否直接返回查询结果。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。 - * @param {number} [options.fromIndex=0] - 查询结果的最小索引号。 - * @param {number} [options.toIndex=19] - 查询结果的最大索引号。 - * @param {string|number} [options.targetEpsgCode] - 动态投影的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 - * @param {Object} [options.targetPrj] - 动态投影的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 + * @param {number} [options.fromIndex=0] - 查询结果的最小索引号,指定了返回结果的开始位置。 + * @param {number} [options.toIndex=19] - 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 + * @param {string|number} [options.targetEpsgCode] - 查询结果的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 + * @param {Object} [options.targetPrj] - 查询结果的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 * @param {MetricsAggParameter|GeoHashGridAggParameter} [options.aggregations] - 聚合查询参数。该参数仅支持数据来源为 Elasticsearch 服务的 SuperMap iServer 的 REST 数据服务。 * @extends {GetFeaturesParametersBase} * @usage @@ -94820,7 +94902,7 @@ var GetFeaturesByIDsParameters = /*#__PURE__*/function (_GetFeaturesParameter) { * @description 查询结果返回字段。当指定了返回结果字段后,则 GetFeaturesResult 中的 features 的属性字段只包含所指定的字段。不设置即返回全部字段。 */ _this.fields = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.GetFeaturesByIDsParameters'; return _this; } @@ -94878,11 +94960,11 @@ var GetFeaturesByIDsParameters = /*#__PURE__*/function (_GetFeaturesParameter) { if (params.aggregations) { parasByIDs.aggregations = params.aggregations; } - return Util.toJSON(parasByIDs); + return Util_Util.toJSON(parasByIDs); } }]); }(GetFeaturesParametersBase); -;// ./src/common/iServer/GetFeaturesByIDsService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByIDsService.js function GetFeaturesByIDsService_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByIDsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByIDsService_typeof(o); } function GetFeaturesByIDsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByIDsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByIDsService_toPropertyKey(o.key), o); } } @@ -94893,7 +94975,7 @@ function GetFeaturesByIDsService_callSuper(t, o, e) { return o = GetFeaturesByID function GetFeaturesByIDsService_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByIDsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByIDsService_assertThisInitialized(t); } function GetFeaturesByIDsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByIDsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByIDsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByIDsService_superPropGet(t, o, e, r) { var p = GetFeaturesByIDsService_get(GetFeaturesByIDsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByIDsService_superPropGet(t, e, o, r) { var p = GetFeaturesByIDsService_get(GetFeaturesByIDsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByIDsService_get() { return GetFeaturesByIDsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByIDsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByIDsService_get.apply(null, arguments); } function GetFeaturesByIDsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByIDsService_getPrototypeOf(t));); return t; } function GetFeaturesByIDsService_getPrototypeOf(t) { return GetFeaturesByIDsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByIDsService_getPrototypeOf(t); } @@ -94959,7 +95041,7 @@ var GetFeaturesByIDsService = /*#__PURE__*/function (_GetFeaturesServiceBa) { } }]); }(GetFeaturesServiceBase); -;// ./src/common/iServer/GetFeaturesBySQLParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesBySQLParameters.js function GetFeaturesBySQLParameters_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesBySQLParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesBySQLParameters_typeof(o); } function GetFeaturesBySQLParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesBySQLParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesBySQLParameters_toPropertyKey(o.key), o); } } @@ -94970,7 +95052,7 @@ function GetFeaturesBySQLParameters_callSuper(t, o, e) { return o = GetFeaturesB function GetFeaturesBySQLParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesBySQLParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesBySQLParameters_assertThisInitialized(t); } function GetFeaturesBySQLParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesBySQLParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesBySQLParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesBySQLParameters_superPropGet(t, o, e, r) { var p = GetFeaturesBySQLParameters_get(GetFeaturesBySQLParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesBySQLParameters_superPropGet(t, e, o, r) { var p = GetFeaturesBySQLParameters_get(GetFeaturesBySQLParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesBySQLParameters_get() { return GetFeaturesBySQLParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesBySQLParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesBySQLParameters_get.apply(null, arguments); } function GetFeaturesBySQLParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesBySQLParameters_getPrototypeOf(t));); return t; } function GetFeaturesBySQLParameters_getPrototypeOf(t) { return GetFeaturesBySQLParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesBySQLParameters_getPrototypeOf(t); } @@ -94994,12 +95076,12 @@ function GetFeaturesBySQLParameters_setPrototypeOf(t, e) { return GetFeaturesByS * @param {Object} options - 参数。 * @param {FilterParameter} options.queryParameter - 查询过滤条件参数。 * @param {Array.} options.datasetNames - 数据集集合中的数据集名称列表。 - * @param {boolean} [options.returnContent=true] - 是否直接返回查询结果。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。 - * @param {number} [options.fromIndex=0] - 查询结果的最小索引号。 - * @param {number} [options.toIndex=19] - 查询结果的最大索引号。 - * @param {string|number} [options.targetEpsgCode] - 动态投影的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 - * @param {Object} [options.targetPrj] - 动态投影的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 + * @param {number} [options.fromIndex=0] - 查询结果的最小索引号,指定了返回结果的开始位置。 + * @param {number} [options.toIndex=19] - 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 + * @param {string|number} [options.targetEpsgCode] - 查询结果的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 + * @param {Object} [options.targetPrj] - 查询结果的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 * @param {MetricsAggParameter|GeoHashGridAggParameter} [options.aggregations] - 聚合查询参数。该参数仅支持数据来源为 Elasticsearch 服务的 SuperMap iServer 的 REST 数据服务。 * @extends {GetFeaturesParametersBase} * @usage @@ -95020,7 +95102,7 @@ var GetFeaturesBySQLParameters = /*#__PURE__*/function (_GetFeaturesParameter) { * @description 查询过滤条件参数类。 */ _this.queryParameter = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.GetFeaturesBySQLParameters'; return _this; } @@ -95074,11 +95156,11 @@ var GetFeaturesBySQLParameters = /*#__PURE__*/function (_GetFeaturesParameter) { if (params.aggregations) { paramsBySql.aggregations = params.aggregations; } - return Util.toJSON(paramsBySql); + return Util_Util.toJSON(paramsBySql); } }]); }(GetFeaturesParametersBase); -;// ./src/common/iServer/GetFeaturesBySQLService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesBySQLService.js function GetFeaturesBySQLService_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesBySQLService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesBySQLService_typeof(o); } function GetFeaturesBySQLService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesBySQLService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesBySQLService_toPropertyKey(o.key), o); } } @@ -95089,7 +95171,7 @@ function GetFeaturesBySQLService_callSuper(t, o, e) { return o = GetFeaturesBySQ function GetFeaturesBySQLService_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesBySQLService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesBySQLService_assertThisInitialized(t); } function GetFeaturesBySQLService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesBySQLService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesBySQLService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesBySQLService_superPropGet(t, o, e, r) { var p = GetFeaturesBySQLService_get(GetFeaturesBySQLService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesBySQLService_superPropGet(t, e, o, r) { var p = GetFeaturesBySQLService_get(GetFeaturesBySQLService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesBySQLService_get() { return GetFeaturesBySQLService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesBySQLService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesBySQLService_get.apply(null, arguments); } function GetFeaturesBySQLService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesBySQLService_getPrototypeOf(t));); return t; } function GetFeaturesBySQLService_getPrototypeOf(t) { return GetFeaturesBySQLService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesBySQLService_getPrototypeOf(t); } @@ -95156,7 +95238,7 @@ var GetFeaturesBySQLService = /*#__PURE__*/function (_GetFeaturesServiceBa) { } }]); }(GetFeaturesServiceBase); -;// ./src/common/iServer/GetFeaturesByBoundsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByBoundsParameters.js function GetFeaturesByBoundsParameters_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByBoundsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByBoundsParameters_typeof(o); } function GetFeaturesByBoundsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByBoundsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByBoundsParameters_toPropertyKey(o.key), o); } } @@ -95167,7 +95249,7 @@ function GetFeaturesByBoundsParameters_callSuper(t, o, e) { return o = GetFeatur function GetFeaturesByBoundsParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByBoundsParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByBoundsParameters_assertThisInitialized(t); } function GetFeaturesByBoundsParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByBoundsParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByBoundsParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByBoundsParameters_superPropGet(t, o, e, r) { var p = GetFeaturesByBoundsParameters_get(GetFeaturesByBoundsParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByBoundsParameters_superPropGet(t, e, o, r) { var p = GetFeaturesByBoundsParameters_get(GetFeaturesByBoundsParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByBoundsParameters_get() { return GetFeaturesByBoundsParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByBoundsParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByBoundsParameters_get.apply(null, arguments); } function GetFeaturesByBoundsParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByBoundsParameters_getPrototypeOf(t));); return t; } function GetFeaturesByBoundsParameters_getPrototypeOf(t) { return GetFeaturesByBoundsParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByBoundsParameters_getPrototypeOf(t); } @@ -95191,17 +95273,17 @@ function GetFeaturesByBoundsParameters_setPrototypeOf(t, e) { return GetFeatures *

推荐设置 returnFeaturesOnly 配置为 true 来提升性能,如果需要获取总数量与数据集信息,FeatureService 提供了 getFeaturesCount 和 getFeaturesDatasetInfo 方法

* * @param {Object} options - 参数。 - * @param {ModuleBounds} options.bounds - 查询的范围对象。 + * @param {ModuleBounds} options.bounds - 查询的矩形坐标范围。 * @param {Array.} options.datasetNames - 数据集名称列表。 * @param {string} [options.attributeFilter] - 范围查询属性过滤条件。 * @param {Array.} [options.fields] - 查询结果返回字段。默认返回所有字段。 * @param {SpatialQueryMode} [options.spatialQueryMode=SpatialQueryMode.CONTAIN] - 空间查询模式。 - * @param {boolean} [options.returnContent=true] - 是否直接返回查询结果。 - * @param {boolean} [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。 - * @param {number} [options.fromIndex=0] - 查询结果的最小索引号。 - * @param {number} [options.toIndex=19] - 查询结果的最大索引号。 - * @param {string|number} [options.targetEpsgCode] - 动态投影的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 - * @param {Object} [options.targetPrj] - 动态投影的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 + * @param {boolean} [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。如果为 true,仅返回要素信息,以提升查询性能。如果为 false,返回完整的查询结果,包含查询结果的要素信息、数据集信息以及要素数量。 + * @param {number} [options.fromIndex=0] - 查询结果的最小索引号,指定了返回结果的开始位置。 + * @param {number} [options.toIndex=19] - 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 + * @param {string|number} [options.targetEpsgCode] - 查询结果的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 + * @param {Object} [options.targetPrj] - 查询结果的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当此参数设置的坐标系统不同于数据的原有坐标系统时,系统会进行坐标转换,并返回坐标转换后的查询结果。当同时设置 targetEpsgCode 参数时,此参数不生效。 * @param {MetricsAggParameter|GeoHashGridAggParameter} [options.aggregations] - 聚合查询参数。该参数仅支持数据来源为 Elasticsearch 服务的 SuperMap iServer 的 REST 数据服务。 * @extends {GetFeaturesParametersBase} * @usage @@ -95220,7 +95302,7 @@ var GetFeaturesByBoundsParameters = /*#__PURE__*/function (_GetFeaturesParameter /** * @member {ModuleBounds} GetFeaturesByBoundsParameters.prototype.bounds - * @description 用于查询的范围对象。 + * @description 查询的矩形坐标范围。 * */ _this.bounds = null; @@ -95242,7 +95324,7 @@ var GetFeaturesByBoundsParameters = /*#__PURE__*/function (_GetFeaturesParameter * @description 空间查询模式。 */ _this.spatialQueryMode = SpatialQueryMode.CONTAIN; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.GetFeaturesByBoundsParameters'; return _this; } @@ -95324,7 +95406,7 @@ var GetFeaturesByBoundsParameters = /*#__PURE__*/function (_GetFeaturesParameter if (params.aggregations) { parasByBounds.aggregations = params.aggregations; } - return Util.toJSON(parasByBounds); + return Util_Util.toJSON(parasByBounds); } }]); }(GetFeaturesParametersBase); @@ -95332,7 +95414,7 @@ GetFeaturesByBoundsParameters.getFeatureMode = { BOUNDS: 'BOUNDS', BOUNDS_ATTRIBUTEFILTER: 'BOUNDS_ATTRIBUTEFILTER' }; -;// ./src/common/iServer/GetFeaturesByBoundsService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByBoundsService.js function GetFeaturesByBoundsService_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByBoundsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByBoundsService_typeof(o); } function GetFeaturesByBoundsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByBoundsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByBoundsService_toPropertyKey(o.key), o); } } @@ -95343,7 +95425,7 @@ function GetFeaturesByBoundsService_callSuper(t, o, e) { return o = GetFeaturesB function GetFeaturesByBoundsService_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByBoundsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByBoundsService_assertThisInitialized(t); } function GetFeaturesByBoundsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByBoundsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByBoundsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByBoundsService_superPropGet(t, o, e, r) { var p = GetFeaturesByBoundsService_get(GetFeaturesByBoundsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByBoundsService_superPropGet(t, e, o, r) { var p = GetFeaturesByBoundsService_get(GetFeaturesByBoundsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByBoundsService_get() { return GetFeaturesByBoundsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByBoundsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByBoundsService_get.apply(null, arguments); } function GetFeaturesByBoundsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByBoundsService_getPrototypeOf(t));); return t; } function GetFeaturesByBoundsService_getPrototypeOf(t) { return GetFeaturesByBoundsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByBoundsService_getPrototypeOf(t); } @@ -95408,7 +95490,7 @@ var GetFeaturesByBoundsService = /*#__PURE__*/function (_GetFeaturesServiceBa) { } }]); }(GetFeaturesServiceBase); -;// ./src/common/iServer/GetFeaturesByBufferParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByBufferParameters.js function GetFeaturesByBufferParameters_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByBufferParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByBufferParameters_typeof(o); } function GetFeaturesByBufferParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByBufferParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByBufferParameters_toPropertyKey(o.key), o); } } @@ -95419,7 +95501,7 @@ function GetFeaturesByBufferParameters_callSuper(t, o, e) { return o = GetFeatur function GetFeaturesByBufferParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByBufferParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByBufferParameters_assertThisInitialized(t); } function GetFeaturesByBufferParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByBufferParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByBufferParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByBufferParameters_superPropGet(t, o, e, r) { var p = GetFeaturesByBufferParameters_get(GetFeaturesByBufferParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByBufferParameters_superPropGet(t, e, o, r) { var p = GetFeaturesByBufferParameters_get(GetFeaturesByBufferParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByBufferParameters_get() { return GetFeaturesByBufferParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByBufferParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByBufferParameters_get.apply(null, arguments); } function GetFeaturesByBufferParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByBufferParameters_getPrototypeOf(t));); return t; } function GetFeaturesByBufferParameters_getPrototypeOf(t) { return GetFeaturesByBufferParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByBufferParameters_getPrototypeOf(t); } @@ -95448,12 +95530,12 @@ function GetFeaturesByBufferParameters_setPrototypeOf(t, e) { return GetFeatures * @param {Array.} options.dataSetNames - 数据集集合中的数据集名称列表。 * @param {Array.} [options.fields] - 查询结果返回字段。默认返回所有字段。 * @param {string} [options.attributeFilter] - 属性查询条件。 - * @param {boolean} [options.returnContent=true] - 是否直接返回查询结果。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。 - * @param {number} [options.fromIndex=0] - 查询结果的最小索引号。 - * @param {number} [options.toIndex=19] - 查询结果的最大索引号。 - * @param {string|number} [options.targetEpsgCode] - 动态投影的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 - * @param {Object} [options.targetPrj] - 动态投影的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 + * @param {number} [options.fromIndex=0] - 查询结果的最小索引号,指定了返回结果的开始位置。 + * @param {number} [options.toIndex=19] - 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 + * @param {string|number} [options.targetEpsgCode] - 查询结果的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 + * @param {Object} [options.targetPrj] - 查询结果的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 * @extends {GetFeaturesParametersBase} * @usage */ @@ -95485,7 +95567,7 @@ var GetFeaturesByBufferParameters = /*#__PURE__*/function (_GetFeaturesParameter * @description 查询结果返回字段。当指定了返回结果字段后,则 GetFeaturesResult 中的 features 的属性字段只包含所指定的字段。不设置即返回全部字段。 */ _this.fields = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.GetFeaturesByBufferParameters'; return _this; } @@ -95553,11 +95635,11 @@ var GetFeaturesByBufferParameters = /*#__PURE__*/function (_GetFeaturesParameter if (!params.targetEpsgCode && params.targetPrj) { paramsByBuffer.targetPrj = params.targetPrj; } - return Util.toJSON(paramsByBuffer); + return Util_Util.toJSON(paramsByBuffer); } }]); }(GetFeaturesParametersBase); -;// ./src/common/iServer/GetFeaturesByBufferService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByBufferService.js function GetFeaturesByBufferService_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByBufferService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByBufferService_typeof(o); } function GetFeaturesByBufferService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByBufferService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByBufferService_toPropertyKey(o.key), o); } } @@ -95568,7 +95650,7 @@ function GetFeaturesByBufferService_callSuper(t, o, e) { return o = GetFeaturesB function GetFeaturesByBufferService_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByBufferService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByBufferService_assertThisInitialized(t); } function GetFeaturesByBufferService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByBufferService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByBufferService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByBufferService_superPropGet(t, o, e, r) { var p = GetFeaturesByBufferService_get(GetFeaturesByBufferService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByBufferService_superPropGet(t, e, o, r) { var p = GetFeaturesByBufferService_get(GetFeaturesByBufferService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByBufferService_get() { return GetFeaturesByBufferService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByBufferService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByBufferService_get.apply(null, arguments); } function GetFeaturesByBufferService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByBufferService_getPrototypeOf(t));); return t; } function GetFeaturesByBufferService_getPrototypeOf(t) { return GetFeaturesByBufferService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByBufferService_getPrototypeOf(t); } @@ -95634,7 +95716,7 @@ var GetFeaturesByBufferService = /*#__PURE__*/function (_GetFeaturesServiceBa) { } }]); }(GetFeaturesServiceBase); -;// ./src/common/iServer/GetFeaturesByGeometryParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByGeometryParameters.js function GetFeaturesByGeometryParameters_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByGeometryParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByGeometryParameters_typeof(o); } function GetFeaturesByGeometryParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByGeometryParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByGeometryParameters_toPropertyKey(o.key), o); } } @@ -95645,7 +95727,7 @@ function GetFeaturesByGeometryParameters_callSuper(t, o, e) { return o = GetFeat function GetFeaturesByGeometryParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByGeometryParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByGeometryParameters_assertThisInitialized(t); } function GetFeaturesByGeometryParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByGeometryParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByGeometryParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByGeometryParameters_superPropGet(t, o, e, r) { var p = GetFeaturesByGeometryParameters_get(GetFeaturesByGeometryParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByGeometryParameters_superPropGet(t, e, o, r) { var p = GetFeaturesByGeometryParameters_get(GetFeaturesByGeometryParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByGeometryParameters_get() { return GetFeaturesByGeometryParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByGeometryParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByGeometryParameters_get.apply(null, arguments); } function GetFeaturesByGeometryParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByGeometryParameters_getPrototypeOf(t));); return t; } function GetFeaturesByGeometryParameters_getPrototypeOf(t) { return GetFeaturesByGeometryParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByGeometryParameters_getPrototypeOf(t); } @@ -95664,7 +95746,7 @@ function GetFeaturesByGeometryParameters_setPrototypeOf(t, e) { return GetFeatur * @class GetFeaturesByGeometryParameters * @deprecatedclass SuperMap.GetFeaturesByGeometryParameters * @category iServer Data FeatureResults - * @classdesc 数据集几何查询参数类。此类用于指定进行几何查询的数据集列表,设置查询的几何对象、属性过滤条件、空间查询模式以及一些通用的查询参数。 + * @classdesc 数据集空间查询参数类。此类用于指定进行空间查询的数据集列表,设置查询的几何对象、属性过滤条件、空间查询模式以及一些通用的查询参数。 *
*

Notice

*

推荐设置 returnFeaturesOnly 配置为 true 来提升性能,如果需要获取总数量与数据集信息,FeatureService 提供了 getFeaturesCount 和 getFeaturesDatasetInfo 方法

@@ -95672,16 +95754,16 @@ function GetFeaturesByGeometryParameters_setPrototypeOf(t, e) { return GetFeatur * @param {Object} options - 参数。 * @param {ModuleGeometry} options.geometry - 查询的几何对象。 * @param {Array.} options.datasetNames - 数据集集合中的数据集名称列表。 - * @param {string} [options.attributeFilter] - 几何查询属性过滤条件。 + * @param {string} [options.attributeFilter] - 空间查询属性过滤条件。 * @param {Array.} [options.fields] - 查询结果返回字段。默认返回所有字段。 * @param {string} [options.orderBy] - 查询排序的字段,orderBy 的字段须为数值型的。 * @param {SpatialQueryMode} [options.spatialQueryMode=SpatialQueryMode.CONTAIN] - 空间查询模式。 - * @param {boolean} [options.returnContent=true] - 是否直接返回查询结果。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeaturesOnly=false] - 是否仅返回要素信息。当 returnContent 为 true 时设置有效。 - * @param {number} [options.fromIndex=0] - 查询结果的最小索引号。 - * @param {number} [options.toIndex=19] - 查询结果的最大索引号。 - * @param {string|number} [options.targetEpsgCode] - 动态投影的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 - * @param {Object} [options.targetPrj] - 动态投影的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 + * @param {number} [options.fromIndex=0] - 查询结果的最小索引号,指定了返回结果的开始位置。 + * @param {number} [options.toIndex=19] - 查询结果的最大索引号,指定了返回结果的结束位置。例如 fromIndex=0&toIndex=2,表示仅返回前 3 条查询结果信息。如果该值大于预期查询结果的最大索引号,则以预期查询结果的最大索引号为实际查询结果的最大索引号。 + * @param {string|number} [options.targetEpsgCode] - 查询结果的目标坐标系对应的 EPSG Code,使用此参数时,returnContent 参数需为 true。 + * @param {Object} [options.targetPrj] - 查询结果的目标坐标系。使用此参数时,returnContent 参数需为 true。如:prjCoordSys={"epsgCode":3857}。当同时设置 targetEpsgCode 参数时,此参数不生效。 * @param {MetricsAggParameter|GeoHashGridAggParameter} [options.aggregations] - 聚合查询参数。该参数仅支持数据来源为 Elasticsearch 服务的 SuperMap iServer 的 REST 数据服务。 * @extends {GetFeaturesParametersBase} * @usage @@ -95693,7 +95775,7 @@ var GetFeaturesByGeometryParameters = /*#__PURE__*/function (_GetFeaturesParamet _this = GetFeaturesByGeometryParameters_callSuper(this, GetFeaturesByGeometryParameters, [options]); /** * @member {string} GetFeaturesByGeometryParameters.prototype.getFeatureMode - * @description 数据集查询模式。几何查询有 "SPATIAL","SPATIAL_ATTRIBUTEFILTER" 两种,当用户设置 attributeFilter 时会自动切换到 SPATIAL_ATTRIBUTEFILTER 访问服务。 + * @description 数据集查询模式。空间查询有 "SPATIAL","SPATIAL_ATTRIBUTEFILTER" 两种,当用户设置 attributeFilter 时会自动切换到 SPATIAL_ATTRIBUTEFILTER 访问服务。 */ _this.getFeatureMode = 'SPATIAL'; @@ -95711,7 +95793,7 @@ var GetFeaturesByGeometryParameters = /*#__PURE__*/function (_GetFeaturesParamet /** * @member {string} GetFeaturesByGeometryParameters.prototype.attributeFilter - * @description 几何查询属性过滤条件。 + * @description 空间查询属性过滤条件。 */ _this.attributeFilter = null; @@ -95734,7 +95816,7 @@ var GetFeaturesByGeometryParameters = /*#__PURE__*/function (_GetFeaturesParamet * 如果要以面积降序和人口升序进行排序, 设置 orderBy = "SmArea desc, pop_1994 asc"。 */ _this.orderBy = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.GetFeaturesByGeometryParameters'; return _this; } @@ -95812,11 +95894,11 @@ var GetFeaturesByGeometryParameters = /*#__PURE__*/function (_GetFeaturesParamet if (params.aggregations) { parasByGeometry.aggregations = params.aggregations; } - return Util.toJSON(parasByGeometry); + return Util_Util.toJSON(parasByGeometry); } }]); }(GetFeaturesParametersBase); -;// ./src/common/iServer/GetFeaturesByGeometryService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFeaturesByGeometryService.js function GetFeaturesByGeometryService_typeof(o) { "@babel/helpers - typeof"; return GetFeaturesByGeometryService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFeaturesByGeometryService_typeof(o); } function GetFeaturesByGeometryService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFeaturesByGeometryService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFeaturesByGeometryService_toPropertyKey(o.key), o); } } @@ -95827,7 +95909,7 @@ function GetFeaturesByGeometryService_callSuper(t, o, e) { return o = GetFeature function GetFeaturesByGeometryService_possibleConstructorReturn(t, e) { if (e && ("object" == GetFeaturesByGeometryService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFeaturesByGeometryService_assertThisInitialized(t); } function GetFeaturesByGeometryService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFeaturesByGeometryService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFeaturesByGeometryService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFeaturesByGeometryService_superPropGet(t, o, e, r) { var p = GetFeaturesByGeometryService_get(GetFeaturesByGeometryService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFeaturesByGeometryService_superPropGet(t, e, o, r) { var p = GetFeaturesByGeometryService_get(GetFeaturesByGeometryService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFeaturesByGeometryService_get() { return GetFeaturesByGeometryService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFeaturesByGeometryService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFeaturesByGeometryService_get.apply(null, arguments); } function GetFeaturesByGeometryService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFeaturesByGeometryService_getPrototypeOf(t));); return t; } function GetFeaturesByGeometryService_getPrototypeOf(t) { return GetFeaturesByGeometryService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFeaturesByGeometryService_getPrototypeOf(t); } @@ -95843,7 +95925,7 @@ function GetFeaturesByGeometryService_setPrototypeOf(t, e) { return GetFeaturesB * @class GetFeaturesByGeometryService * @deprecatedclass SuperMap.GetFeaturesByGeometryService * @category iServer Data FeatureResults - * @classdesc 数据集几何查询服务类,查询与指定几何对象符合一定空间关系的矢量要素。 + * @classdesc 数据集空间查询服务类,查询与指定几何对象符合一定空间关系的矢量要素。 * @param {string} url - 服务地址。请求数据服务中数据集查询服务。 * URL 应为:http://{服务器地址}:{服务端口号}/iserver/services/{数据服务名}/rest/data; * 例如:"http://localhost:8090/iserver/services/data-jingjin/rest/data" @@ -95881,7 +95963,7 @@ var GetFeaturesByGeometryService = /*#__PURE__*/function (_GetFeaturesServiceBa) /** * @function GetFeaturesByGeometryService.prototype.getJsonParameters - * @param {GetFeaturesByGeometryParameters} params - 数据集几何查询参数类。 + * @param {GetFeaturesByGeometryParameters} params - 数据集空间查询参数类。 * @description 将查询参数转化为 JSON 字符串。 * 在本类中重写此方法,可以实现不同种类的查询(ID, SQL, Buffer, Geometry等)。 * @returns {Object} 转化后的 JSON 字符串。 @@ -95893,7 +95975,7 @@ var GetFeaturesByGeometryService = /*#__PURE__*/function (_GetFeaturesServiceBa) } }]); }(GetFeaturesServiceBase); -;// ./src/common/iServer/AttachmentsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/AttachmentsParameters.js function AttachmentsParameters_typeof(o) { "@babel/helpers - typeof"; return AttachmentsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, AttachmentsParameters_typeof(o); } function AttachmentsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function AttachmentsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, AttachmentsParameters_toPropertyKey(o.key), o); } } @@ -95937,7 +96019,7 @@ var AttachmentsParameters = /*#__PURE__*/function () { * @description 当前查询附件的要素 ID。 */ this.featureId = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.AttachmentsParameters"; } @@ -95955,7 +96037,7 @@ var AttachmentsParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/EditAttachmentsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/EditAttachmentsParameters.js function EditAttachmentsParameters_typeof(o) { "@babel/helpers - typeof"; return EditAttachmentsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, EditAttachmentsParameters_typeof(o); } function EditAttachmentsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function EditAttachmentsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, EditAttachmentsParameters_toPropertyKey(o.key), o); } } @@ -96013,7 +96095,7 @@ var EditAttachmentsParameters = /*#__PURE__*/function (_AttachmentsParameter) { * @description 附件操作类型。ADD表示添加附件,DELETE表示删除附件。 */ _this.editType = EditType.ADD; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.EditAttachmentsParameters"; return _this; } @@ -96036,7 +96118,7 @@ var EditAttachmentsParameters = /*#__PURE__*/function (_AttachmentsParameter) { } }]); }(AttachmentsParameters); -;// ./src/common/iServer/FeatureAttachmentsService.js +;// CONCATENATED MODULE: ./src/common/iServer/FeatureAttachmentsService.js function FeatureAttachmentsService_typeof(o) { "@babel/helpers - typeof"; return FeatureAttachmentsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FeatureAttachmentsService_typeof(o); } function FeatureAttachmentsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FeatureAttachmentsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FeatureAttachmentsService_toPropertyKey(o.key), o); } } @@ -96047,7 +96129,7 @@ function FeatureAttachmentsService_callSuper(t, o, e) { return o = FeatureAttach function FeatureAttachmentsService_possibleConstructorReturn(t, e) { if (e && ("object" == FeatureAttachmentsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FeatureAttachmentsService_assertThisInitialized(t); } function FeatureAttachmentsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FeatureAttachmentsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FeatureAttachmentsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FeatureAttachmentsService_superPropGet(t, o, e, r) { var p = FeatureAttachmentsService_get(FeatureAttachmentsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FeatureAttachmentsService_superPropGet(t, e, o, r) { var p = FeatureAttachmentsService_get(FeatureAttachmentsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FeatureAttachmentsService_get() { return FeatureAttachmentsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FeatureAttachmentsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FeatureAttachmentsService_get.apply(null, arguments); } function FeatureAttachmentsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FeatureAttachmentsService_getPrototypeOf(t));); return t; } function FeatureAttachmentsService_getPrototypeOf(t) { return FeatureAttachmentsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FeatureAttachmentsService_getPrototypeOf(t); } @@ -96086,7 +96168,7 @@ var FeatureAttachmentsService = /*#__PURE__*/function (_CommonServiceBase) { FeatureAttachmentsService_classCallCheck(this, FeatureAttachmentsService); _this = FeatureAttachmentsService_callSuper(this, FeatureAttachmentsService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.FeatureAttachmentsService"; return _this; @@ -96117,7 +96199,7 @@ var FeatureAttachmentsService = /*#__PURE__*/function (_CommonServiceBase) { if (!(params instanceof EditAttachmentsParameters)) { return; } - Util.extend(this, params); + Util_Util.extend(this, params); var me = this; var editType = params.editType; me.featureId = params.featureId; @@ -96129,7 +96211,7 @@ var FeatureAttachmentsService = /*#__PURE__*/function (_CommonServiceBase) { me.method = "DELETE"; var promises = []; for (var i = 0; i < me.IDs.length; i++) { - var url = Util.urlPathAppend(me.url, "/features/".concat(me.featureId, "/attachments/").concat(me.IDs[i])); + var url = Util_Util.urlPathAppend(me.url, "/features/".concat(me.featureId, "/attachments/").concat(me.IDs[i])); var res = me.request({ url: url, method: me.method, @@ -96151,7 +96233,7 @@ var FeatureAttachmentsService = /*#__PURE__*/function (_CommonServiceBase) { var formData = new FormData(); formData.append('file', params.file); me.method = "POST"; - me.url = Util.urlPathAppend(me.url, "/features/".concat(me.featureId, "/attachments")); + me.url = Util_Util.urlPathAppend(me.url, "/features/".concat(me.featureId, "/attachments")); return me.request({ method: me.method, data: formData, @@ -96176,11 +96258,11 @@ var FeatureAttachmentsService = /*#__PURE__*/function (_CommonServiceBase) { if (!(params instanceof AttachmentsParameters)) { return; } - Util.extend(this, params); + Util_Util.extend(this, params); var me = this; me.method = "GET"; me.featureId = params.featureId; - me.url = Util.urlPathAppend(me.url, "/features/".concat(me.featureId, "/attachments")); + me.url = Util_Util.urlPathAppend(me.url, "/features/".concat(me.featureId, "/attachments")); return me.request({ method: me.method, data: null, @@ -96191,7 +96273,7 @@ var FeatureAttachmentsService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/EditFeaturesParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/EditFeaturesParameters.js function EditFeaturesParameters_typeof(o) { "@babel/helpers - typeof"; return EditFeaturesParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, EditFeaturesParameters_typeof(o); } function EditFeaturesParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function EditFeaturesParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, EditFeaturesParameters_toPropertyKey(o.key), o); } } @@ -96264,7 +96346,7 @@ var EditFeaturesParameters = /*#__PURE__*/function () { * @description 是否使用批量添加要素功能,要素添加时有效。批量添加能够提高要素编辑效率。true 表示批量添加;false 表示不使用批量添加。 */ this.isUseBatch = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.EditFeaturesParameters"; } @@ -96315,11 +96397,11 @@ var EditFeaturesParameters = /*#__PURE__*/function () { } } } - return Util.toJSON(features); + return Util_Util.toJSON(features); } }]); }(); -;// ./src/common/iServer/EditFeaturesService.js +;// CONCATENATED MODULE: ./src/common/iServer/EditFeaturesService.js function EditFeaturesService_typeof(o) { "@babel/helpers - typeof"; return EditFeaturesService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, EditFeaturesService_typeof(o); } function EditFeaturesService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function EditFeaturesService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, EditFeaturesService_toPropertyKey(o.key), o); } } @@ -96330,7 +96412,7 @@ function EditFeaturesService_callSuper(t, o, e) { return o = EditFeaturesService function EditFeaturesService_possibleConstructorReturn(t, e) { if (e && ("object" == EditFeaturesService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return EditFeaturesService_assertThisInitialized(t); } function EditFeaturesService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function EditFeaturesService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (EditFeaturesService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function EditFeaturesService_superPropGet(t, o, e, r) { var p = EditFeaturesService_get(EditFeaturesService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function EditFeaturesService_superPropGet(t, e, o, r) { var p = EditFeaturesService_get(EditFeaturesService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function EditFeaturesService_get() { return EditFeaturesService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = EditFeaturesService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, EditFeaturesService_get.apply(null, arguments); } function EditFeaturesService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = EditFeaturesService_getPrototypeOf(t));); return t; } function EditFeaturesService_getPrototypeOf(t) { return EditFeaturesService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, EditFeaturesService_getPrototypeOf(t); } @@ -96381,9 +96463,9 @@ var EditFeaturesService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.isUseBatch = false; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } - _this.url = Util.urlPathAppend(_this.url, 'features'); + _this.url = Util_Util.urlPathAppend(_this.url, 'features'); _this.CLASS_NAME = "SuperMap.EditFeaturesService"; return _this; } @@ -96426,13 +96508,13 @@ var EditFeaturesService = /*#__PURE__*/function (_CommonServiceBase) { me.isUseBatch = params.isUseBatch; jsonParameters = EditFeaturesParameters.toJsonParameters(params); if (editType === EditType.DELETE) { - ids = Util.toJSON(params.IDs); + ids = Util_Util.toJSON(params.IDs); jsonParameters = ids; - var urlWithIds = Util.urlAppend(me.url, Util.getParameterString({ + var urlWithIds = Util_Util.urlAppend(me.url, Util_Util.getParameterString({ ids: ids })); if (FetchRequest.urlIsLong(urlWithIds)) { - me.url = Util.urlAppend(me.url, Util.getParameterString({ + me.url = Util_Util.urlAppend(me.url, Util_Util.getParameterString({ _method: 'DELETE' })); method = "POST"; @@ -96444,11 +96526,11 @@ var EditFeaturesService = /*#__PURE__*/function (_CommonServiceBase) { method = "PUT"; } else { if (me.isUseBatch) { - me.url = Util.urlAppend(me.url, "isUseBatch=".concat(me.isUseBatch)); + me.url = Util_Util.urlAppend(me.url, "isUseBatch=".concat(me.isUseBatch)); me.returnContent = false; } if (me.returnContent) { - me.url = Util.urlAppend(me.url, 'returnContent=true'); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); method = "POST"; } } @@ -96471,7 +96553,7 @@ var EditFeaturesService = /*#__PURE__*/function (_CommonServiceBase) { value: function getMetaData(params, callback) { var me = this; var featureId = params.featureId; - me.url = Util.urlPathAppend(me.url, featureId + '/metadata'); + me.url = Util_Util.urlPathAppend(me.url, featureId + '/metadata'); return me.request({ method: "GET", data: null, @@ -96482,7 +96564,7 @@ var EditFeaturesService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/FeatureService.js +;// CONCATENATED MODULE: ./src/common/iServer/FeatureService.js function FeatureService_typeof(o) { "@babel/helpers - typeof"; return FeatureService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FeatureService_typeof(o); } function FeatureService_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function FeatureService_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? FeatureService_ownKeys(Object(t), !0).forEach(function (r) { FeatureService_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : FeatureService_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -96516,7 +96598,7 @@ var FEATURE_SERVICE_MAP = { * @class FeatureService * @constructs FeatureService * @category iServer Data Feature - * @classdesc 数据集类。提供:ID 查询,范围查询,SQL查询,几何查询,缓冲区查询,地物编辑,要素附件查询、添加、删除等方法。 + * @classdesc 数据集类。提供:ID 查询,范围查询,SQL查询,空间查询,缓冲区查询,地物编辑,要素附件查询、添加、删除等方法。 * @example * new FeatureService(url).getFeaturesByIDs(param,function(result){ * //doSomething @@ -96632,8 +96714,8 @@ var FeatureService_FeatureService = /*#__PURE__*/function () { /** * @function FeatureService.prototype.getFeaturesByGeometry - * @description 数据集几何查询服务类。 - * @param {GetFeaturesByGeometryParameters} params - 数据集几何查询参数类。 + * @description 数据集空间查询服务类。 + * @param {GetFeaturesByGeometryParameters} params - 数据集空间查询参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的数据格式。 * @returns {Promise} Promise 对象。 @@ -96670,7 +96752,7 @@ var FeatureService_FeatureService = /*#__PURE__*/function () { url = me.url, dataSourceName = params.dataSourceName, dataSetName = params.dataSetName; - url = Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); + url = Util_Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); var editFeatureService = new EditFeaturesService(url, { proxy: me.options.proxy, withCredentials: me.options.withCredentials, @@ -96694,7 +96776,7 @@ var FeatureService_FeatureService = /*#__PURE__*/function () { url = me.url, dataSourceName = params.dataSourceName, dataSetName = params.dataSetName; - url = Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); + url = Util_Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); var editFeatureService = new EditFeaturesService(url, { proxy: me.options.proxy, withCredentials: me.options.withCredentials, @@ -96721,7 +96803,7 @@ var FeatureService_FeatureService = /*#__PURE__*/function () { url = me.url, dataSourceName = params.dataSourceName, dataSetName = params.dataSetName; - url = Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); + url = Util_Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); var featureAttachmentsService = new FeatureAttachmentsService(url, { proxy: me.options.proxy, withCredentials: me.options.withCredentials, @@ -96749,7 +96831,7 @@ var FeatureService_FeatureService = /*#__PURE__*/function () { url = me.url, dataSourceName = params.dataSourceName, dataSetName = params.dataSetName; - url = Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); + url = Util_Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); var featureAttachmentsService = new FeatureAttachmentsService(url, { proxy: me.options.proxy, withCredentials: me.options.withCredentials, @@ -96823,8 +96905,7 @@ var FeatureService_FeatureService = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/@turf/invariant/dist/esm/index.js -/* unused harmony import specifier */ var dist_esm_isNumber; +;// CONCATENATED MODULE: ./node_modules/@turf/distance/node_modules/@turf/invariant/dist/esm/index.js function dist_esm_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = dist_esm_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function esm_toConsumableArray(r) { return esm_arrayWithoutHoles(r) || esm_iterableToArray(r) || dist_esm_unsupportedIterableToArray(r) || esm_nonIterableSpread(); } function esm_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -96867,7 +96948,7 @@ function getCoords(coords) { throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array"); } function containsNumber(coordinates) { - if (coordinates.length > 1 && dist_esm_isNumber(coordinates[0]) && dist_esm_isNumber(coordinates[1])) { + if (coordinates.length > 1 && isNumber(coordinates[0]) && isNumber(coordinates[1])) { return true; } if (Array.isArray(coordinates[0]) && coordinates[0].length) { @@ -96944,7 +97025,345 @@ function esm_getType(geojson, _name) { return geojson.type; } -;// ./node_modules/@turf/distance/dist/esm/index.js +;// CONCATENATED MODULE: ./node_modules/@turf/distance/node_modules/@turf/helpers/dist/esm/index.js +function dist_esm_typeof(o) { "@babel/helpers - typeof"; return dist_esm_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, dist_esm_typeof(o); } +function helpers_dist_esm_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = helpers_dist_esm_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } +function helpers_dist_esm_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return helpers_dist_esm_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? helpers_dist_esm_arrayLikeToArray(r, a) : void 0; } } +function helpers_dist_esm_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +// index.ts +var esm_earthRadius = 63710088e-1; +var esm_factors = { + centimeters: esm_earthRadius * 100, + centimetres: esm_earthRadius * 100, + cm: esm_earthRadius * 100, + degrees: 360 / (2 * Math.PI), + deg: 360 / (2 * Math.PI), + feet: esm_earthRadius * 3.28084, + ft: esm_earthRadius * 3.28084, + inches: esm_earthRadius * 39.37, + "in": esm_earthRadius * 39.37, + kilometers: esm_earthRadius / 1e3, + kilometres: esm_earthRadius / 1e3, + km: esm_earthRadius / 1e3, + meters: esm_earthRadius, + metres: esm_earthRadius, + m: esm_earthRadius, + miles: esm_earthRadius / 1609.344, + mi: esm_earthRadius / 1609.344, + millimeters: esm_earthRadius * 1e3, + millimetres: esm_earthRadius * 1e3, + mm: esm_earthRadius * 1e3, + nauticalmiles: esm_earthRadius / 1852, + nmi: esm_earthRadius / 1852, + radians: 1, + rad: 1, + yards: esm_earthRadius * 1.0936, + yd: esm_earthRadius * 1.0936 +}; +var esm_areaFactors = { + acres: 247105e-9, + ac: 247105e-9, + centimeters: 1e4, + centimetres: 1e4, + cm: 1e4, + feet: 10.763910417, + ft: 10.763910417, + hectares: 1e-4, + ha: 1e-4, + inches: 1550.003100006, + "in": 1550.003100006, + kilometers: 1e-6, + kilometres: 1e-6, + km: 1e-6, + meters: 1, + metres: 1, + m: 1, + miles: 386e-9, + mi: 386e-9, + nauticalmiles: 29155334959812285e-23, + nmi: 29155334959812285e-23, + millimeters: 1e6, + millimetres: 1e6, + mm: 1e6, + yards: 1.195990046, + yd: 1.195990046 +}; +function dist_esm_feature(geom, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var feat = { + type: "Feature" + }; + if (options.id === 0 || options.id) { + feat.id = options.id; + } + if (options.bbox) { + feat.bbox = options.bbox; + } + feat.properties = properties || {}; + feat.geometry = geom; + return feat; +} +function esm_geometry(type, coordinates) { + var _options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + switch (type) { + case "Point": + return dist_esm_point(coordinates).geometry; + case "LineString": + return dist_esm_lineString(coordinates).geometry; + case "Polygon": + return esm_polygon(coordinates).geometry; + case "MultiPoint": + return esm_multiPoint(coordinates).geometry; + case "MultiLineString": + return esm_multiLineString(coordinates).geometry; + case "MultiPolygon": + return esm_multiPolygon(coordinates).geometry; + default: + throw new Error(type + " is invalid"); + } +} +function dist_esm_point(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + if (!coordinates) { + throw new Error("coordinates is required"); + } + if (!Array.isArray(coordinates)) { + throw new Error("coordinates must be an Array"); + } + if (coordinates.length < 2) { + throw new Error("coordinates must be at least 2 numbers long"); + } + if (!dist_esm_isNumber(coordinates[0]) || !dist_esm_isNumber(coordinates[1])) { + throw new Error("coordinates must contain numbers"); + } + var geom = { + type: "Point", + coordinates: coordinates + }; + return dist_esm_feature(geom, properties, options); +} +function esm_points(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + return esm_featureCollection(coordinates.map(function (coords) { + return dist_esm_point(coords, properties); + }), options); +} +function esm_polygon(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var _iterator = helpers_dist_esm_createForOfIteratorHelper(coordinates), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var ring = _step.value; + if (ring.length < 4) { + throw new Error("Each LinearRing of a Polygon must have 4 or more Positions."); + } + if (ring[ring.length - 1].length !== ring[0].length) { + throw new Error("First and last Position are not equivalent."); + } + for (var j = 0; j < ring[ring.length - 1].length; j++) { + if (ring[ring.length - 1][j] !== ring[0][j]) { + throw new Error("First and last Position are not equivalent."); + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + var geom = { + type: "Polygon", + coordinates: coordinates + }; + return dist_esm_feature(geom, properties, options); +} +function esm_polygons(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + return esm_featureCollection(coordinates.map(function (coords) { + return esm_polygon(coords, properties); + }), options); +} +function dist_esm_lineString(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + if (coordinates.length < 2) { + throw new Error("coordinates must be an array of two or more positions"); + } + var geom = { + type: "LineString", + coordinates: coordinates + }; + return dist_esm_feature(geom, properties, options); +} +function esm_lineStrings(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + return esm_featureCollection(coordinates.map(function (coords) { + return dist_esm_lineString(coords, properties); + }), options); +} +function esm_featureCollection(features) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var fc = { + type: "FeatureCollection" + }; + if (options.id) { + fc.id = options.id; + } + if (options.bbox) { + fc.bbox = options.bbox; + } + fc.features = features; + return fc; +} +function esm_multiLineString(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var geom = { + type: "MultiLineString", + coordinates: coordinates + }; + return dist_esm_feature(geom, properties, options); +} +function esm_multiPoint(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var geom = { + type: "MultiPoint", + coordinates: coordinates + }; + return dist_esm_feature(geom, properties, options); +} +function esm_multiPolygon(coordinates, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var geom = { + type: "MultiPolygon", + coordinates: coordinates + }; + return dist_esm_feature(geom, properties, options); +} +function esm_geometryCollection(geometries, properties) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + var geom = { + type: "GeometryCollection", + geometries: geometries + }; + return dist_esm_feature(geom, properties, options); +} +function esm_round(num) { + var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + if (precision && !(precision >= 0)) { + throw new Error("precision must be a positive number"); + } + var multiplier = Math.pow(10, precision || 0); + return Math.round(num * multiplier) / multiplier; +} +function esm_radiansToLength(radians) { + var units = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "kilometers"; + var factor = esm_factors[units]; + if (!factor) { + throw new Error(units + " units is invalid"); + } + return radians * factor; +} +function esm_lengthToRadians(distance) { + var units = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "kilometers"; + var factor = esm_factors[units]; + if (!factor) { + throw new Error(units + " units is invalid"); + } + return distance / factor; +} +function esm_lengthToDegrees(distance, units) { + return esm_radiansToDegrees(esm_lengthToRadians(distance, units)); +} +function esm_bearingToAzimuth(bearing) { + var angle = bearing % 360; + if (angle < 0) { + angle += 360; + } + return angle; +} +function esm_azimuthToBearing(angle) { + angle = angle % 360; + if (angle > 180) { + return angle - 360; + } else if (angle < -180) { + return angle + 360; + } + return angle; +} +function esm_radiansToDegrees(radians) { + var normalisedRadians = radians % (2 * Math.PI); + return normalisedRadians * 180 / Math.PI; +} +function dist_esm_degreesToRadians(degrees) { + var normalisedDegrees = degrees % 360; + return normalisedDegrees * Math.PI / 180; +} +function esm_convertLength(length) { + var originalUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "kilometers"; + var finalUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "kilometers"; + if (!(length >= 0)) { + throw new Error("length must be a positive number"); + } + return esm_radiansToLength(esm_lengthToRadians(length, originalUnit), finalUnit); +} +function esm_convertArea(area) { + var originalUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "meters"; + var finalUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "kilometers"; + if (!(area >= 0)) { + throw new Error("area must be a positive number"); + } + var startFactor = esm_areaFactors[originalUnit]; + if (!startFactor) { + throw new Error("invalid original units"); + } + var finalFactor = esm_areaFactors[finalUnit]; + if (!finalFactor) { + throw new Error("invalid final units"); + } + return area / startFactor * finalFactor; +} +function dist_esm_isNumber(num) { + return !isNaN(num) && num !== null && !Array.isArray(num); +} +function dist_esm_isObject(input) { + return input !== null && dist_esm_typeof(input) === "object" && !Array.isArray(input); +} +function esm_removeBbox(geojson) { + delete geojson.bbox; + if (geojson.type === "Feature") { + if (geojson.geometry) esm_removeBbox(geojson.geometry); + } else if (geojson.type === "FeatureCollection") { + geojson.features.forEach(esm_removeBbox); + } else if (geojson.type === "GeometryCollection") { + geojson.geometries.forEach(esm_removeBbox); + } +} +function esm_validateBBox(bbox) { + if (!bbox) { + throw new Error("bbox is required"); + } + if (!Array.isArray(bbox)) { + throw new Error("bbox must be an Array"); + } + if (bbox.length !== 4 && bbox.length !== 6) { + throw new Error("bbox must be an Array of 4 or 6 numbers"); + } + bbox.forEach(function (num) { + if (!dist_esm_isNumber(num)) { + throw new Error("bbox must only contain numbers"); + } + }); +} +function esm_validateId(id) { + if (!id) { + throw new Error("id is required"); + } + if (["string", "number"].indexOf(dist_esm_typeof(id)) === -1) { + throw new Error("id must be a number or a string"); + } +} + +;// CONCATENATED MODULE: ./node_modules/@turf/distance/dist/esm/index.js // index.ts @@ -96952,18 +97371,17 @@ function distance(from, to) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var coordinates1 = getCoord(from); var coordinates2 = getCoord(to); - var dLat = esm_degreesToRadians(coordinates2[1] - coordinates1[1]); - var dLon = esm_degreesToRadians(coordinates2[0] - coordinates1[0]); - var lat1 = esm_degreesToRadians(coordinates1[1]); - var lat2 = esm_degreesToRadians(coordinates2[1]); + var dLat = dist_esm_degreesToRadians(coordinates2[1] - coordinates1[1]); + var dLon = dist_esm_degreesToRadians(coordinates2[0] - coordinates1[0]); + var lat1 = dist_esm_degreesToRadians(coordinates1[1]); + var lat2 = dist_esm_degreesToRadians(coordinates2[1]); var a = Math.pow(Math.sin(dLat / 2), 2) + Math.pow(Math.sin(dLon / 2), 2) * Math.cos(lat1) * Math.cos(lat2); - return radiansToLength(2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), options.units); + return esm_radiansToLength(2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)), options.units); } var dist_esm_index_default = (/* unused pure expression or super */ null && (distance)); -;// ./src/common/iServer/ChartService.js -function ChartService_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return ChartService_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (ChartService_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, ChartService_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, ChartService_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), ChartService_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", ChartService_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), ChartService_regeneratorDefine2(u), ChartService_regeneratorDefine2(u, o, "Generator"), ChartService_regeneratorDefine2(u, n, function () { return this; }), ChartService_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (ChartService_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function ChartService_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } ChartService_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { ChartService_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, ChartService_regeneratorDefine2(e, r, n, t); } +;// CONCATENATED MODULE: ./src/common/iServer/ChartService.js +function ChartService_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ ChartService_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == ChartService_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(ChartService_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function ChartService_slicedToArray(r, e) { return ChartService_arrayWithHoles(r) || ChartService_iterableToArrayLimit(r, e) || ChartService_unsupportedIterableToArray(r, e) || ChartService_nonIterableRest(); } function ChartService_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function ChartService_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } @@ -97075,7 +97493,7 @@ var ChartService_ChartService = /*#__PURE__*/function () { key: "getChartFeatureInfo", value: function getChartFeatureInfo(callback) { var me = this; - var url = Util.urlPathAppend(me.url, 'chartFeatureInfoSpecs'); + var url = Util_Util.urlPathAppend(me.url, 'chartFeatureInfoSpecs'); var chartFeatureInfoSpecsService = new ChartFeatureInfoSpecsService(url, { proxy: me.options.proxy, withCredentials: me.options.withCredentials, @@ -97348,30 +97766,30 @@ var ChartService_ChartService = /*#__PURE__*/function () { }, { key: "findNearestPointNew", value: function () { - var _findNearestPointNew = ChartService_asyncToGenerator(/*#__PURE__*/ChartService_regenerator().m(function _callee(coordinates, datasetNames) { + var _findNearestPointNew = ChartService_asyncToGenerator(/*#__PURE__*/ChartService_regeneratorRuntime().mark(function _callee(coordinates, datasetNames) { var _coordinates, x, y, point, bufferParam, serviceResult, closestFeature, minDistance; - return ChartService_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return ChartService_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: _coordinates = ChartService_slicedToArray(coordinates, 2), x = _coordinates[0], y = _coordinates[1]; if (!(x < -180.0 || x > 180.0 || y < -90 || y > 90)) { - _context.n = 1; + _context.next = 3; break; } - return _context.a(2); - case 1: + return _context.abrupt("return"); + case 3: point = new Point([x, y]); bufferParam = new GetFeaturesByBufferParameters({ datasetNames: datasetNames, bufferDistance: 0.03, geometry: point }); - _context.n = 2; + _context.next = 7; return new FeatureService_FeatureService(this.dataUrl).getFeaturesByBuffer(bufferParam); - case 2: - serviceResult = _context.v; + case 7: + serviceResult = _context.sent; if (!(serviceResult.result.features.features.length > 0)) { - _context.n = 3; + _context.next = 13; break; } // 变量用于保存最近的点 @@ -97386,9 +97804,10 @@ var ChartService_ChartService = /*#__PURE__*/function () { closestFeature = pointData; } }); - return _context.a(2, closestFeature); - case 3: - return _context.a(2); + return _context.abrupt("return", closestFeature); + case 13: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -97423,7 +97842,7 @@ var ChartService_ChartService = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/ChartService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/ChartService.js function services_ChartService_typeof(o) { "@babel/helpers - typeof"; return services_ChartService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_ChartService_typeof(o); } function services_ChartService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_ChartService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_ChartService_toPropertyKey(o.key), o); } } @@ -97461,7 +97880,7 @@ function ChartService_setPrototypeOf(t, e) { return ChartService_setPrototypeOf * }).queryChart(param,function(result){ * //doSomething * }) - * @param {string} url - 服务地址。 + * @param {string} url - 地图服务地址,如 http://{ip}:{port}/iserver/services/map-chart/rest/maps/GB4X0000_52000 。 * @param {string} dataUrl - 数据地址。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 @@ -97583,11 +98002,11 @@ var ChartService = /*#__PURE__*/function (_ServiceBase) { return {}; } params.returnContent = params.returnContent == null ? true : params.returnContent; - if (params.chartQueryFilterParameters && !Util_Util.isArray(params.chartQueryFilterParameters)) { + if (params.chartQueryFilterParameters && !core_Util_Util.isArray(params.chartQueryFilterParameters)) { params.chartQueryFilterParameters = [params.chartQueryFilterParameters]; } if (params.bounds) { - params.bounds = Util_Util.toSuperMapBounds(params.bounds); + params.bounds = core_Util_Util.toSuperMapBounds(params.bounds); } return params; } @@ -97598,7 +98017,7 @@ var ChartService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/DataFlowService.js +;// CONCATENATED MODULE: ./src/common/iServer/DataFlowService.js function DataFlowService_typeof(o) { "@babel/helpers - typeof"; return DataFlowService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DataFlowService_typeof(o); } function DataFlowService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DataFlowService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DataFlowService_toPropertyKey(o.key), o); } } @@ -97630,8 +98049,8 @@ function DataFlowService_setPrototypeOf(t, e) { return DataFlowService_setProtot * @param {Object} options - 参数。 * @param {function} options.style - 设置数据加载样式。 * @param {function} [options.onEachFeature] - 设置每个数据加载 popup 等。 - * @param {GeoJSONObject} [options.geometry] - 指定几何范围,只有在该范围内的要素才能被订阅。 - * @param {Object} [options.excludeField] - 排除字段。 + * @param {GeoJSONObject} [options.geometry] - 空间范围,只有在该范围内的要素才能被接收。 + * @param {Object} [options.excludeField] - 过滤字段。传入此参数,接收到的信息将不包含过滤掉的字段。 * @param {boolean} [options.crossOrigin] - 是否允许跨域请求。 * @param {Object} [options.headers] - 请求头。 * @usage @@ -97651,7 +98070,7 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) /** * @member {GeoJSONObject} DataFlowService.prototype.geometry - * @description 指定几何范围,只有在该范围内的要素才能被订阅。 + * @description 空间范围,只有在该范围内的要素才能被接收。 */ _this.geometry = null; @@ -97663,10 +98082,10 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) /** * @member {Object} DataFlowService.prototype.excludeField - * @description 排除字段。 + * @description 过滤字段。传入此参数,接收到的信息将不包含过滤掉的字段。 */ _this.excludeField = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.DataFlowService"; return _this; } @@ -97681,7 +98100,7 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) key: "initBroadcast", value: function initBroadcast() { var me = this; - this.broadcastWebSocket = this._connect(Util.urlPathAppend(me.url, 'broadcast')); + this.broadcastWebSocket = this._connect(Util_Util.urlPathAppend(me.url, 'broadcast')); this.broadcastWebSocket.onopen = function (e) { me.broadcastWebSocket.isOpen = true; e.eventType = 'broadcastSocketConnected'; @@ -97726,7 +98145,7 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) key: "initSubscribe", value: function initSubscribe() { var me = this; - this.subscribeWebSocket = this._connect(Util.urlPathAppend(me.url, 'subscribe')); + this.subscribeWebSocket = this._connect(Util_Util.urlPathAppend(me.url, 'subscribe')); this.subscribeWebSocket.onopen = function (e) { me.subscribeWebSocket.send(me._getFilterParams()); e.eventType = 'subscribeSocketConnected'; @@ -97748,8 +98167,8 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) /** * @function DataFlowService.prototype.setExcludeField - * @description 设置排除字段。 - * @param {Object} excludeField - 排除字段。 + * @description 设置过滤字段。传入此参数,接收到的信息将不包含过滤掉的字段。 + * @param {Object} excludeField - 过滤字段。 * @returns {DataFlowService} DataFlowService 的实例对象。 */ }, { @@ -97762,8 +98181,8 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) /** * @function DataFlowService.prototype.setGeometry - * @description 设置添加的几何要素数据。 - * @param {GeoJSONObject} geometry - 指定几何范围,只有在该范围内的要素才能被订阅。 + * @description 设置空间范围,只有在该范围内的要素才能被接收。 + * @param {GeoJSONObject} geometry - 空间范围。 * @returns {DataFlowService} DataFlowService 的实例对象。 */ }, { @@ -97827,7 +98246,7 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) geometry: this.geometry } }; - return Util.toJSON(filter); + return Util_Util.toJSON(filter); } }, { key: "_onMessage", @@ -97860,7 +98279,7 @@ var DataFlowService_DataFlowService = /*#__PURE__*/function (_CommonServiceBase) } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/DataFlowService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/DataFlowService.js function services_DataFlowService_typeof(o) { "@babel/helpers - typeof"; return services_DataFlowService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_DataFlowService_typeof(o); } function services_DataFlowService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_DataFlowService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_DataFlowService_toPropertyKey(o.key), o); } } @@ -97892,10 +98311,10 @@ function services_DataFlowService_setPrototypeOf(t, e) { return services_DataFlo * .queryChart(param,function(result){ * //doSomething * }) - * @param {string} url - 服务地址。 + * @param {string} url - 数据流服务地址,如 ws://{ip}:{port}/iserver/services/dataflowTest/dataflow 。 * @param {Object} options - 参数。 - * @param {GeoJSONObject} [options.geometry] - 指定几何范围,只有在该范围内的要素才能被订阅。 - * @param {Object} [options.excludeField] - 排除字段。 + * @param {GeoJSONObject} [options.geometry] - 空间范围,只有在该范围内的要素才能被接收。 + * @param {Object} [options.excludeField] - 过滤字段。传入此参数,接收到的信息将不包含过滤掉的字段。 * @param {boolean} [options.crossOrigin] - 是否允许跨域请求。 * @param {Object} [options.headers] - 请求头。 * @fires DataFlowService#broadcastSocketConnected @@ -98010,8 +98429,8 @@ var DataFlowService = /*#__PURE__*/function (_ServiceBase) { /** * @function DataFlowService.prototype.setExcludeField - * @description 设置排除字段。 - * @param {Object} excludeField - 排除字段。 + * @description 设置过滤字段。传入此参数,接收到的信息将不包含过滤掉的字段。 + * @param {Object} excludeField - 过滤字段。 */ }, { key: "setExcludeField", @@ -98023,8 +98442,8 @@ var DataFlowService = /*#__PURE__*/function (_ServiceBase) { /** * @function DataFlowService.prototype.setGeometry - * @description 设置添加的几何要素数据。 - * @param {GeoJSONObject} geometry - 指定几何范围,只有在该范围内的要素才能被订阅。 + * @description 空间范围,只有在该范围内的要素才能被接收。 + * @param {GeoJSONObject} geometry - 空间范围。 */ }, { key: "setGeometry", @@ -98060,7 +98479,7 @@ var DataFlowService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/DatasetService.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasetService.js function DatasetService_typeof(o) { "@babel/helpers - typeof"; return DatasetService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasetService_typeof(o); } function DatasetService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasetService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasetService_toPropertyKey(o.key), o); } } @@ -98071,7 +98490,7 @@ function DatasetService_callSuper(t, o, e) { return o = DatasetService_getProtot function DatasetService_possibleConstructorReturn(t, e) { if (e && ("object" == DatasetService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DatasetService_assertThisInitialized(t); } function DatasetService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DatasetService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DatasetService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DatasetService_superPropGet(t, o, e, r) { var p = DatasetService_get(DatasetService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DatasetService_superPropGet(t, e, o, r) { var p = DatasetService_get(DatasetService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DatasetService_get() { return DatasetService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DatasetService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DatasetService_get.apply(null, arguments); } function DatasetService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DatasetService_getPrototypeOf(t));); return t; } function DatasetService_getPrototypeOf(t) { return DatasetService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DatasetService_getPrototypeOf(t); } @@ -98116,7 +98535,7 @@ var DatasetService_DatasetService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.dataset = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.DatasetService"; return _this; @@ -98145,7 +98564,7 @@ var DatasetService_DatasetService = /*#__PURE__*/function (_CommonServiceBase) { }, { key: "getDatasetsService", value: function getDatasetsService(params, callback) { - var url = Util.urlPathAppend(this.url, "datasources/name/".concat(params, "/datasets")); + var url = Util_Util.urlPathAppend(this.url, "datasources/name/".concat(params, "/datasets")); return this.processAsync(url, 'GET', callback); } @@ -98158,7 +98577,7 @@ var DatasetService_DatasetService = /*#__PURE__*/function (_CommonServiceBase) { }, { key: "getDatasetService", value: function getDatasetService(datasourceName, datasetName, callback) { - var url = Util.urlPathAppend(this.url, "datasources/name/".concat(datasourceName, "/datasets/name/").concat(datasetName)); + var url = Util_Util.urlPathAppend(this.url, "datasources/name/".concat(datasourceName, "/datasets/name/").concat(datasetName)); return this.processAsync(url, 'GET', callback); } @@ -98173,7 +98592,7 @@ var DatasetService_DatasetService = /*#__PURE__*/function (_CommonServiceBase) { if (!params) { return; } - var url = Util.urlPathAppend(this.url, "datasources/name/".concat(params.datasourceName, "/datasets/name/").concat(params.datasetName)); + var url = Util_Util.urlPathAppend(this.url, "datasources/name/".concat(params.datasourceName, "/datasets/name/").concat(params.datasetName)); delete params.datasourceName; return this.processAsync(url, 'PUT', callback, params); } @@ -98187,7 +98606,7 @@ var DatasetService_DatasetService = /*#__PURE__*/function (_CommonServiceBase) { }, { key: "deleteDatasetService", value: function deleteDatasetService(datasourceName, datasetName, callback) { - var url = Util.urlPathAppend(this.url, "datasources/name/".concat(datasourceName, "/datasets/name/").concat(datasetName)); + var url = Util_Util.urlPathAppend(this.url, "datasources/name/".concat(datasourceName, "/datasets/name/").concat(datasetName)); return this.processAsync(url, 'DELETE', callback); } }, { @@ -98201,12 +98620,12 @@ var DatasetService_DatasetService = /*#__PURE__*/function (_CommonServiceBase) { success: callback, failure: callback }; - params && (requestConfig.data = Util.toJSON(params)); + params && (requestConfig.data = Util_Util.toJSON(params)); return me.request(requestConfig); } }]); }(CommonServiceBase); -;// ./src/common/iServer/CreateDatasetParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/CreateDatasetParameters.js function CreateDatasetParameters_typeof(o) { "@babel/helpers - typeof"; return CreateDatasetParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CreateDatasetParameters_typeof(o); } function CreateDatasetParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function CreateDatasetParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, CreateDatasetParameters_toPropertyKey(o.key), o); } } @@ -98255,7 +98674,7 @@ var CreateDatasetParameters = /*#__PURE__*/function () { */ this.datasetType = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.CreateDatasetParameters"; } @@ -98273,7 +98692,7 @@ var CreateDatasetParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/UpdateDatasetParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/UpdateDatasetParameters.js function UpdateDatasetParameters_typeof(o) { "@babel/helpers - typeof"; return UpdateDatasetParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UpdateDatasetParameters_typeof(o); } function UpdateDatasetParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UpdateDatasetParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UpdateDatasetParameters_toPropertyKey(o.key), o); } } @@ -98357,7 +98776,7 @@ var UpdateDatasetParameters = /*#__PURE__*/function () { */ this.noValue = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.UpdateDatasetParameters"; } @@ -98380,7 +98799,7 @@ var UpdateDatasetParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/DatasetService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/DatasetService.js function services_DatasetService_typeof(o) { "@babel/helpers - typeof"; return services_DatasetService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_DatasetService_typeof(o); } function services_DatasetService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_DatasetService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_DatasetService_toPropertyKey(o.key), o); } } @@ -98407,7 +98826,7 @@ function services_DatasetService_setPrototypeOf(t, e) { return services_DatasetS * @category iServer Data Dataset * @classdesc 数据集信息服务类。提供方法:查询数据集集合、查询指定数据集信息,在指定数据源下新增、修改、删除数据集等。 * @modulecategory Services - * @param {string} url - 服务地址。 + * @param {string} url - 数据服务地址,如 http://{ip}:{port}/iserver/services/data-world/rest/data 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -98433,7 +98852,7 @@ var DatasetService = /*#__PURE__*/function (_ServiceBase) { /** * @function DatasetService.prototype.getDatasets - * @description 数据集查询服务。 + * @description 根据数据源名称查询该数据源下所有数据集的信息。 * @example * new DatasetService(url).getDatasets(datasourceName,function(result){ * //doSomething @@ -98454,7 +98873,7 @@ var DatasetService = /*#__PURE__*/function (_ServiceBase) { /** * @function DatasetService.prototype.getDataset - * @description 数据集查询服务。 + * @description 根据数据源名称、数据集名称查询该数据集的信息 * @example * new DatasetService(url).getDataset(datasourceName, datasetName, function(result){ * //doSomething @@ -98527,7 +98946,7 @@ var DatasetService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/SetDatasourceParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/SetDatasourceParameters.js function SetDatasourceParameters_typeof(o) { "@babel/helpers - typeof"; return SetDatasourceParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SetDatasourceParameters_typeof(o); } function SetDatasourceParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SetDatasourceParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SetDatasourceParameters_toPropertyKey(o.key), o); } } @@ -98582,7 +99001,7 @@ var SetDatasourceParameters = /*#__PURE__*/function () { */ this.distanceUnit = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.SetDatasourceParameters"; } @@ -98602,7 +99021,7 @@ var SetDatasourceParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/DatasourceService.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasourceService.js function DatasourceService_typeof(o) { "@babel/helpers - typeof"; return DatasourceService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasourceService_typeof(o); } function DatasourceService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasourceService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasourceService_toPropertyKey(o.key), o); } } @@ -98613,7 +99032,7 @@ function DatasourceService_callSuper(t, o, e) { return o = DatasourceService_get function DatasourceService_possibleConstructorReturn(t, e) { if (e && ("object" == DatasourceService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DatasourceService_assertThisInitialized(t); } function DatasourceService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DatasourceService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DatasourceService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DatasourceService_superPropGet(t, o, e, r) { var p = DatasourceService_get(DatasourceService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DatasourceService_superPropGet(t, e, o, r) { var p = DatasourceService_get(DatasourceService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DatasourceService_get() { return DatasourceService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DatasourceService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DatasourceService_get.apply(null, arguments); } function DatasourceService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DatasourceService_getPrototypeOf(t));); return t; } function DatasourceService_getPrototypeOf(t) { return DatasourceService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DatasourceService_getPrototypeOf(t); } @@ -98647,7 +99066,7 @@ var DatasourceService_DatasourceService = /*#__PURE__*/function (_CommonServiceB DatasourceService_classCallCheck(this, DatasourceService); _this = DatasourceService_callSuper(this, DatasourceService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.DatasourceService"; return _this; @@ -98674,7 +99093,7 @@ var DatasourceService_DatasourceService = /*#__PURE__*/function (_CommonServiceB }, { key: "getDatasourceService", value: function getDatasourceService(datasourceName, callback) { - var url = Util.urlPathAppend(this.url, "datasources/name/".concat(datasourceName)); + var url = Util_Util.urlPathAppend(this.url, "datasources/name/".concat(datasourceName)); return this.processAsync(url, "GET", callback); } @@ -98687,7 +99106,7 @@ var DatasourceService_DatasourceService = /*#__PURE__*/function (_CommonServiceB }, { key: "getDatasourcesService", value: function getDatasourcesService(callback) { - var url = Util.urlPathAppend(this.url, "datasources"); + var url = Util_Util.urlPathAppend(this.url, "datasources"); return this.processAsync(url, "GET", callback); } /** @@ -98703,7 +99122,7 @@ var DatasourceService_DatasourceService = /*#__PURE__*/function (_CommonServiceB if (!params) { return; } - var url = Util.urlPathAppend(this.url, "datasources/name/".concat(params.datasourceName)); + var url = Util_Util.urlPathAppend(this.url, "datasources/name/".concat(params.datasourceName)); return this.processAsync(url, "PUT", callback, params); } }, { @@ -98717,12 +99136,12 @@ var DatasourceService_DatasourceService = /*#__PURE__*/function (_CommonServiceB success: callback, failure: callback }; - params && (requestConfig.data = Util.toJSON(params)); + params && (requestConfig.data = Util_Util.toJSON(params)); return me.request(requestConfig); } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/DatasourceService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/DatasourceService.js function services_DatasourceService_typeof(o) { "@babel/helpers - typeof"; return services_DatasourceService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_DatasourceService_typeof(o); } function services_DatasourceService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_DatasourceService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_DatasourceService_toPropertyKey(o.key), o); } } @@ -98750,7 +99169,7 @@ function services_DatasourceService_setPrototypeOf(t, e) { return services_Datas * @classdesc 数据源服务类。提供方法:查询数据源集合、查询指定数据源信息、设置指定数据源信息。 * 可以获取的数据源信息包括数据源名称、数据源描述、引擎类型、距离单位、坐标单位、投影信息等。 * @modulecategory Services - * @param {string} url - 服务地址。 + * @param {string} url - 数据服务地址,如 http://{ip}:{port}/iserver/services/data-world/rest/data 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -98775,7 +99194,7 @@ var DatasourceService = /*#__PURE__*/function (_ServiceBase) { /** * @function DatasourceService.prototype.getDatasources - * @description 数据源集合查询服务。 + * @description 获取当前服务下所有数据源信息。 * @example * new DatasourceService(url).getDatasources(function(result){ * //doSomething @@ -98792,7 +99211,7 @@ var DatasourceService = /*#__PURE__*/function (_ServiceBase) { /** * @function DatasourceService.prototype.getDatasource - * @description 数据源信息查询服务。 + * @description 根据数据源名称获取指定数据源的信息。 * @example * new DatasourceService(url).getDatasource(datasourceName,function(result){ * //doSomething @@ -98837,7 +99256,7 @@ var DatasourceService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/mapboxgl/services/FeatureService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/FeatureService.js function services_FeatureService_typeof(o) { "@babel/helpers - typeof"; return services_FeatureService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_FeatureService_typeof(o); } function services_FeatureService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_FeatureService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_FeatureService_toPropertyKey(o.key), o); } } @@ -98866,7 +99285,7 @@ function FeatureService_setPrototypeOf(t, e) { return FeatureService_setPrototyp /** * @class FeatureService * @category iServer Data Feature - * @classdesc 要素数据集类。提供:ID 查询、范围查询、SQL 查询、几何查询、缓冲区查询、地物编辑,要素附件查询、编辑等方法。 + * @classdesc 要素数据集类。提供:ID 查询、范围查询、SQL 查询、空间查询、缓冲区查询、地物编辑,要素附件查询、编辑等方法。 * @modulecategory Services * @example * new FeatureService(url) @@ -98874,7 +99293,7 @@ function FeatureService_setPrototypeOf(t, e) { return FeatureService_setPrototyp * //doSomething * }) * @extends {ServiceBase} - * @param {string} url - 服务地址。 + * @param {string} url - 数据服务地址,如 http://{ip}:{port}/iserver/services/data-world/rest/data 。 * @param {Object} options -参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -98955,8 +99374,8 @@ var FeatureService = /*#__PURE__*/function (_ServiceBase) { /** * @function FeatureService.prototype.getFeaturesByGeometry - * @description 数据集几何查询服务类。 - * @param {GetFeaturesByGeometryParameters} params - 数据集几何查询参数类。 + * @description 数据集空间查询服务类。 + * @param {GetFeaturesByGeometryParameters} params - 数据集空间查询参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回结果类型。 * @returns {Promise} Promise 对象。 @@ -98985,7 +99404,7 @@ var FeatureService = /*#__PURE__*/function (_ServiceBase) { url = me.url, dataSourceName = params.dataSourceName, dataSetName = params.dataSetName; - url = Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); + url = Util_Util.urlPathAppend(url, 'datasources/' + dataSourceName + '/datasets/' + dataSetName); var editFeatureService = new EditFeaturesService(url, { proxy: me.options.proxy, withCredentials: me.options.withCredentials, @@ -99084,7 +99503,7 @@ var FeatureService = /*#__PURE__*/function (_ServiceBase) { params.fromIndex = params.fromIndex ? params.fromIndex : 0; params.toIndex = params.toIndex === 0 ? 0 : params.toIndex ? params.toIndex : -1; if (params.bounds) { - params.bounds = Util_Util.toSuperMapBounds(params.bounds); + params.bounds = core_Util_Util.toSuperMapBounds(params.bounds); } if (params.editType) { params.editType = params.editType.toLowerCase(); @@ -99093,21 +99512,21 @@ var FeatureService = /*#__PURE__*/function (_ServiceBase) { //mapboxgl geojson要素对象转 SuperMap Geometry 对象 if (params.geometry) { if (params.geometry instanceof (external_mapboxgl_default()).LngLatBounds) { - params.geometry = Util_Util.toSuperMapPolygon(params.geometry); + params.geometry = core_Util_Util.toSuperMapPolygon(params.geometry); params.geometry.SRID = 4326; } else if (params.geometry instanceof (external_mapboxgl_default()).Point) { params.geometry = new Point(params.geometry.x, params.geometry.y); } else if (params.geometry instanceof (external_mapboxgl_default()).LngLat) { params.geometry = new Point(params.geometry.lng, params.geometry.lat); params.geometry.SRID = 4326; - } else if (!(params.geometry instanceof Geometry)) { - params.geometry = Util_Util.toSuperMapGeometry(params.geometry); + } else if (!(params.geometry instanceof Geometry_Geometry)) { + params.geometry = core_Util_Util.toSuperMapGeometry(params.geometry); } } //editFeature服务参数转换,传入单独得对象或对象数组 if (params.features) { var features = []; - if (Util_Util.isArray(params.features)) { + if (core_Util_Util.isArray(params.features)) { params.features.map(function (feature) { features.push(me._createServerFeature(feature)); return features; @@ -99127,7 +99546,7 @@ var FeatureService = /*#__PURE__*/function (_ServiceBase) { if (geoFeature.toServerFeature) { return geoFeature.toServerFeature({ geometryFunction: function geometryFunction(geometry) { - return Util_Util.toSuperMapGeometry(geometry); + return core_Util_Util.toSuperMapGeometry(geometry); } }); } @@ -99144,12 +99563,12 @@ var FeatureService = /*#__PURE__*/function (_ServiceBase) { if (geoFeature.id) { feature.id = geoFeature.id; } - feature.geometry = Util_Util.toSuperMapGeometry(geoFeature); + feature.geometry = core_Util_Util.toSuperMapGeometry(geoFeature); return feature; } }]); }(ServiceBase); -;// ./src/common/iServer/GetFieldsService.js +;// CONCATENATED MODULE: ./src/common/iServer/GetFieldsService.js function GetFieldsService_typeof(o) { "@babel/helpers - typeof"; return GetFieldsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetFieldsService_typeof(o); } function GetFieldsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetFieldsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetFieldsService_toPropertyKey(o.key), o); } } @@ -99160,7 +99579,7 @@ function GetFieldsService_callSuper(t, o, e) { return o = GetFieldsService_getPr function GetFieldsService_possibleConstructorReturn(t, e) { if (e && ("object" == GetFieldsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GetFieldsService_assertThisInitialized(t); } function GetFieldsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GetFieldsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GetFieldsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GetFieldsService_superPropGet(t, o, e, r) { var p = GetFieldsService_get(GetFieldsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GetFieldsService_superPropGet(t, e, o, r) { var p = GetFieldsService_get(GetFieldsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GetFieldsService_get() { return GetFieldsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GetFieldsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GetFieldsService_get.apply(null, arguments); } function GetFieldsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GetFieldsService_getPrototypeOf(t));); return t; } function GetFieldsService_getPrototypeOf(t) { return GetFieldsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GetFieldsService_getPrototypeOf(t); } @@ -99209,7 +99628,7 @@ var GetFieldsService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.dataset = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GetFieldsService"; return _this; @@ -99238,7 +99657,7 @@ var GetFieldsService = /*#__PURE__*/function (_CommonServiceBase) { key: "processAsync", value: function processAsync(callback) { var me = this; - me.url = Util.urlPathAppend(me.url, "datasources/".concat(me.datasource, "/datasets/").concat(me.dataset, "/fields")); + me.url = Util_Util.urlPathAppend(me.url, "datasources/".concat(me.datasource, "/datasets/").concat(me.dataset, "/fields")); return me.request({ method: "GET", data: null, @@ -99249,7 +99668,7 @@ var GetFieldsService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/FieldParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FieldParameters.js function FieldParameters_typeof(o) { "@babel/helpers - typeof"; return FieldParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FieldParameters_typeof(o); } function FieldParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FieldParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FieldParameters_toPropertyKey(o.key), o); } } @@ -99287,7 +99706,7 @@ var FieldParameters = /*#__PURE__*/function () { */ this.dataset = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.FieldParameters"; } @@ -99305,7 +99724,7 @@ var FieldParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FieldStatisticsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FieldStatisticsParameters.js function FieldStatisticsParameters_typeof(o) { "@babel/helpers - typeof"; return FieldStatisticsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FieldStatisticsParameters_typeof(o); } function FieldStatisticsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FieldStatisticsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FieldStatisticsParameters_toPropertyKey(o.key), o); } } @@ -99356,7 +99775,7 @@ var FieldStatisticsParameters = /*#__PURE__*/function (_FieldParameters) { */ _this.statisticMode = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.FieldStatisticsParameters"; return _this; @@ -99376,7 +99795,7 @@ var FieldStatisticsParameters = /*#__PURE__*/function (_FieldParameters) { } }]); }(FieldParameters); -;// ./src/common/iServer/FieldStatisticService.js +;// CONCATENATED MODULE: ./src/common/iServer/FieldStatisticService.js function FieldStatisticService_typeof(o) { "@babel/helpers - typeof"; return FieldStatisticService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FieldStatisticService_typeof(o); } function FieldStatisticService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FieldStatisticService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FieldStatisticService_toPropertyKey(o.key), o); } } @@ -99387,7 +99806,7 @@ function FieldStatisticService_callSuper(t, o, e) { return o = FieldStatisticSer function FieldStatisticService_possibleConstructorReturn(t, e) { if (e && ("object" == FieldStatisticService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FieldStatisticService_assertThisInitialized(t); } function FieldStatisticService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FieldStatisticService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FieldStatisticService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FieldStatisticService_superPropGet(t, o, e, r) { var p = FieldStatisticService_get(FieldStatisticService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FieldStatisticService_superPropGet(t, e, o, r) { var p = FieldStatisticService_get(FieldStatisticService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FieldStatisticService_get() { return FieldStatisticService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FieldStatisticService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FieldStatisticService_get.apply(null, arguments); } function FieldStatisticService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FieldStatisticService_getPrototypeOf(t));); return t; } function FieldStatisticService_getPrototypeOf(t) { return FieldStatisticService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FieldStatisticService_getPrototypeOf(t); } @@ -99454,7 +99873,7 @@ var FieldStatisticService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.statisticMode = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.FieldStatisticService"; return _this; @@ -99487,7 +99906,7 @@ var FieldStatisticService = /*#__PURE__*/function (_CommonServiceBase) { value: function processAsync(callback) { var me = this, fieldStatisticURL = "datasources/" + me.datasource + "/datasets/" + me.dataset + "/fields/" + me.field + "/" + me.statisticMode; - me.url = Util.urlPathAppend(me.url, fieldStatisticURL); + me.url = Util_Util.urlPathAppend(me.url, fieldStatisticURL); return me.request({ method: "GET", data: null, @@ -99498,7 +99917,7 @@ var FieldStatisticService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/FieldService.js +;// CONCATENATED MODULE: ./src/common/iServer/FieldService.js function FieldService_typeof(o) { "@babel/helpers - typeof"; return FieldService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FieldService_typeof(o); } function FieldService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FieldService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FieldService_toPropertyKey(o.key), o); } } @@ -99629,7 +100048,7 @@ var FieldService_FieldService = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/FieldService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/FieldService.js function services_FieldService_typeof(o) { "@babel/helpers - typeof"; return services_FieldService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_FieldService_typeof(o); } function services_FieldService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_FieldService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_FieldService_toPropertyKey(o.key), o); } } @@ -99659,7 +100078,7 @@ function FieldService_setPrototypeOf(t, e) { return FieldService_setPrototypeOf * new FieldService(url).getFields(function(result){ * //doSomething * }); - * @param {string} url - 服务地址。 + * @param {string} url - 数据服务地址,如 http://{ip}:{port}/iserver/services/data-world/rest/data 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -99704,7 +100123,7 @@ var FieldService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/mapboxgl/services/GridCellInfosService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/GridCellInfosService.js function GridCellInfosService_typeof(o) { "@babel/helpers - typeof"; return GridCellInfosService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GridCellInfosService_typeof(o); } function GridCellInfosService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GridCellInfosService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GridCellInfosService_toPropertyKey(o.key), o); } } @@ -99736,8 +100155,7 @@ function GridCellInfosService_setPrototypeOf(t, e) { return GridCellInfosService * .getGridCellInfos(param,function(result){ * //doSomething * }) - * @param {string} url - 服务地址。请求地图服务,URL 应为:
- * http://{服务器地址}:{服务端口号}/iserver/services/{地图服务名}/rest/maps/{地图名}/tempLayersSet/{tempLayerID}/Rivers@World@@World。 + * @param {string} url - 数据服务地址,如 http://{ip}:{port}/iserver/services/data-world/rest/data 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -99777,7 +100195,7 @@ var GridCellInfosService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/GeoprocessingService.js +;// CONCATENATED MODULE: ./src/common/iServer/GeoprocessingService.js function GeoprocessingService_typeof(o) { "@babel/helpers - typeof"; return GeoprocessingService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoprocessingService_typeof(o); } function GeoprocessingService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoprocessingService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoprocessingService_toPropertyKey(o.key), o); } } @@ -100025,7 +100443,7 @@ var GeoprocessingService_GeoprocessingService = /*#__PURE__*/function (_CommonSe } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/GeoprocessingService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/GeoprocessingService.js function services_GeoprocessingService_typeof(o) { "@babel/helpers - typeof"; return services_GeoprocessingService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_GeoprocessingService_typeof(o); } function services_GeoprocessingService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_GeoprocessingService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_GeoprocessingService_toPropertyKey(o.key), o); } } @@ -100068,7 +100486,7 @@ function services_GeoprocessingService_setPrototypeOf(t, e) { return services_Ge console.log(serverResult); }) }) - * @param {string} url - 服务地址。 + * @param {string} url - 处理自动化服务地址,如 http://{ip}:{port}/iserver/services/geoprocessing/restjsr/gp/v2 。 * @param {Object} options - 参数。 * @usage */ @@ -100217,7 +100635,7 @@ var GeoprocessingService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/mapboxgl/services/LayerInfoService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/LayerInfoService.js function services_LayerInfoService_typeof(o) { "@babel/helpers - typeof"; return services_LayerInfoService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_LayerInfoService_typeof(o); } function services_LayerInfoService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_LayerInfoService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_LayerInfoService_toPropertyKey(o.key), o); } } @@ -100247,7 +100665,7 @@ function LayerInfoService_setPrototypeOf(t, e) { return LayerInfoService_setProt * new LayerInfoService(url).getLayersInfo(function(result){ * //doSomething * }) - * @param {string} url - 服务地址。请求地图服务,URL 应为:
+ * @param {string} url - 地图服务地址。请求地图服务,URL 应为:
* http://{服务器地址}:{服务端口号}/iserver/services/{地图服务名}/rest/maps/{地图名}/tempLayersSet/{tempLayerID}/Rivers@World@@World"。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 @@ -100331,7 +100749,7 @@ var LayerInfoService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/MapService.js +;// CONCATENATED MODULE: ./src/common/iServer/MapService.js function MapService_typeof(o) { "@babel/helpers - typeof"; return MapService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MapService_typeof(o); } function MapService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MapService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MapService_toPropertyKey(o.key), o); } } @@ -100342,7 +100760,7 @@ function MapService_callSuper(t, o, e) { return o = MapService_getPrototypeOf(o) function MapService_possibleConstructorReturn(t, e) { if (e && ("object" == MapService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return MapService_assertThisInitialized(t); } function MapService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function MapService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (MapService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function MapService_superPropGet(t, o, e, r) { var p = MapService_get(MapService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function MapService_superPropGet(t, e, o, r) { var p = MapService_get(MapService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function MapService_get() { return MapService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = MapService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, MapService_get.apply(null, arguments); } function MapService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = MapService_getPrototypeOf(t));); return t; } function MapService_getPrototypeOf(t) { return MapService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MapService_getPrototypeOf(t); } @@ -100382,17 +100800,17 @@ var MapService_MapService = /*#__PURE__*/function (_CommonServiceBase) { _this.projection = null; _this.CLASS_NAME = "SuperMap.MapService"; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } var me = _this; if (me.projection) { var arr = me.projection.split(":"); if (arr instanceof Array) { if (arr.length === 2) { - me.url = Util.urlAppend(me.url, "prjCoordSys=".concat(encodeURIComponent("{\"epsgCode\":\"".concat(arr[1], "\"}")))); + me.url = Util_Util.urlAppend(me.url, "prjCoordSys=".concat(encodeURIComponent("{\"epsgCode\":\"".concat(arr[1], "\"}")))); } if (arr.length === 1) { - me.url = Util.urlAppend(me.url, "prjCoordSys=".concat(encodeURIComponent("{\"epsgCode\":\"".concat(arr[0], "\"}")))); + me.url = Util_Util.urlAppend(me.url, "prjCoordSys=".concat(encodeURIComponent("{\"epsgCode\":\"".concat(arr[0], "\"}")))); } } } @@ -100438,7 +100856,7 @@ var MapService_MapService = /*#__PURE__*/function (_CommonServiceBase) { }, { key: "transformResult", value: function transformResult(result, options) { - result = Util.transformResult(result); + result = Util_Util.transformResult(result); var codeStatus = result.code >= 200 && result.code < 300 || result.code == 0 || result.code === 304; var isCodeValid = result.code && codeStatus; if (!result.code || isCodeValid) { @@ -100456,7 +100874,7 @@ var MapService_MapService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/TilesetsService.js +;// CONCATENATED MODULE: ./src/common/iServer/TilesetsService.js function TilesetsService_typeof(o) { "@babel/helpers - typeof"; return TilesetsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TilesetsService_typeof(o); } function TilesetsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TilesetsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TilesetsService_toPropertyKey(o.key), o); } } @@ -100467,7 +100885,7 @@ function TilesetsService_callSuper(t, o, e) { return o = TilesetsService_getProt function TilesetsService_possibleConstructorReturn(t, e) { if (e && ("object" == TilesetsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TilesetsService_assertThisInitialized(t); } function TilesetsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TilesetsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TilesetsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TilesetsService_superPropGet(t, o, e, r) { var p = TilesetsService_get(TilesetsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TilesetsService_superPropGet(t, e, o, r) { var p = TilesetsService_get(TilesetsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TilesetsService_get() { return TilesetsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TilesetsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TilesetsService_get.apply(null, arguments); } function TilesetsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TilesetsService_getPrototypeOf(t));); return t; } function TilesetsService_getPrototypeOf(t) { return TilesetsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TilesetsService_getPrototypeOf(t); } @@ -100526,7 +100944,7 @@ var TilesetsService = /*#__PURE__*/function (_CommonServiceBase) { return; } var me = this; - me.url = Util.urlPathAppend(me.url, 'tilesets'); + me.url = Util_Util.urlPathAppend(me.url, 'tilesets'); return me.request({ method: "GET", scope: me, @@ -100536,7 +100954,7 @@ var TilesetsService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/MapService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/MapService.js function services_MapService_typeof(o) { "@babel/helpers - typeof"; return services_MapService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_MapService_typeof(o); } function services_MapService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_MapService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_MapService_toPropertyKey(o.key), o); } } @@ -100565,7 +100983,7 @@ function services_MapService_setPrototypeOf(t, e) { return services_MapService_s * @classdesc 地图信息服务类。通过该类可以获得地图的基本信息、投影信息、切片列表信息等等。 * @modulecategory Services * @extends {ServiceBase} - * @param {string} url - 服务地址。 + * @param {string} url - 地图服务地址,如 http://{ip}:{port}/iserver/services/map-world/rest/maps/World 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -100615,7 +101033,7 @@ var MapService = /*#__PURE__*/function (_ServiceBase) { key: "getWKT", value: function getWKT(callback) { var me = this; - var getMapStatusService = new MapService_MapService(Util.urlPathAppend(me.url, 'prjCoordSys.wkt'), { + var getMapStatusService = new MapService_MapService(Util_Util.urlPathAppend(me.url, 'prjCoordSys.wkt'), { proxy: me.options.proxy, withCredentials: me.options.withCredentials, withoutFormatSuffix: true, @@ -100646,7 +101064,7 @@ var MapService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/MeasureParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/MeasureParameters.js function MeasureParameters_typeof(o) { "@babel/helpers - typeof"; return MeasureParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MeasureParameters_typeof(o); } function MeasureParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MeasureParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MeasureParameters_toPropertyKey(o.key), o); } } @@ -100706,7 +101124,7 @@ var MeasureParameters = /*#__PURE__*/function () { */ this.distanceMode = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.MeasureParameters"; } @@ -100725,7 +101143,7 @@ var MeasureParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/MeasureService.js +;// CONCATENATED MODULE: ./src/common/iServer/MeasureService.js function MeasureService_typeof(o) { "@babel/helpers - typeof"; return MeasureService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MeasureService_typeof(o); } function MeasureService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MeasureService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MeasureService_toPropertyKey(o.key), o); } } @@ -100736,7 +101154,7 @@ function MeasureService_callSuper(t, o, e) { return o = MeasureService_getProtot function MeasureService_possibleConstructorReturn(t, e) { if (e && ("object" == MeasureService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return MeasureService_assertThisInitialized(t); } function MeasureService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function MeasureService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (MeasureService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function MeasureService_superPropGet(t, o, e, r) { var p = MeasureService_get(MeasureService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function MeasureService_superPropGet(t, e, o, r) { var p = MeasureService_get(MeasureService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function MeasureService_get() { return MeasureService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = MeasureService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, MeasureService_get.apply(null, arguments); } function MeasureService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = MeasureService_getPrototypeOf(t));); return t; } function MeasureService_getPrototypeOf(t) { return MeasureService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MeasureService_getPrototypeOf(t); } @@ -100781,7 +101199,7 @@ var MeasureService_MeasureService = /*#__PURE__*/function (_CommonServiceBase) { */ _this.measureMode = MeasureMode.DISTANCE; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.MeasureService"; return _this; @@ -100819,7 +101237,7 @@ var MeasureService_MeasureService = /*#__PURE__*/function (_CommonServiceBase) { if (!geometry) { return; } - me.url = Util.urlPathAppend(me.url, me.measureMode === MeasureMode.AREA ? 'area' : 'distance'); + me.url = Util_Util.urlPathAppend(me.url, me.measureMode === MeasureMode.AREA ? 'area' : 'distance'); var serverGeometry = ServerGeometry.fromGeometry(geometry); if (!serverGeometry) { return; @@ -100835,14 +101253,14 @@ var MeasureService_MeasureService = /*#__PURE__*/function (_CommonServiceBase) { prjCoordSysTemp = '{"epsgCode"' + params.prjCoordSys.substring(params.prjCoordSys.indexOf(":"), params.prjCoordSys.length) + "}"; } paramsTemp = { - "point2Ds": Util.toJSON(point2ds), + "point2Ds": Util_Util.toJSON(point2ds), "unit": params.unit, "prjCoordSys": prjCoordSysTemp, "distanceMode": params.distanceMode || 'Geodesic' }; } else { paramsTemp = { - "point2Ds": Util.toJSON(point2ds), + "point2Ds": Util_Util.toJSON(point2ds), "unit": params.unit, "distanceMode": params.distanceMode || 'Geodesic' }; @@ -100857,7 +101275,7 @@ var MeasureService_MeasureService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/MeasureService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/MeasureService.js function services_MeasureService_typeof(o) { "@babel/helpers - typeof"; return services_MeasureService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_MeasureService_typeof(o); } function services_MeasureService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_MeasureService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_MeasureService_toPropertyKey(o.key), o); } } @@ -100886,7 +101304,7 @@ function services_MeasureService_setPrototypeOf(t, e) { return services_MeasureS * @classdesc 量算服务类。提供方法:面积量算、距离量算等。 * @modulecategory Services * @extends {ServiceBase} - * @param {string} url - 服务地址。如:http://localhost:8090/iserver/services/map-world/rest/maps/World+Map。 + * @param {string} url - 地图服务地址。如:http://localhost:8090/iserver/services/map-world/rest/maps/World+Map。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -100952,14 +101370,14 @@ var MeasureService = /*#__PURE__*/function (_ServiceBase) { }, { key: "_processParam", value: function _processParam(params) { - if (params && !(params.geometry instanceof Geometry)) { - params.geometry = Util_Util.toSuperMapGeometry(params.geometry); + if (params && !(params.geometry instanceof Geometry_Geometry)) { + params.geometry = core_Util_Util.toSuperMapGeometry(params.geometry); } return params; } }]); }(ServiceBase); -;// ./src/common/iServer/NetworkAnalystServiceBase.js +;// CONCATENATED MODULE: ./src/common/iServer/NetworkAnalystServiceBase.js function NetworkAnalystServiceBase_typeof(o) { "@babel/helpers - typeof"; return NetworkAnalystServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, NetworkAnalystServiceBase_typeof(o); } function NetworkAnalystServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function NetworkAnalystServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, NetworkAnalystServiceBase_toPropertyKey(o.key), o); } } @@ -100970,7 +101388,7 @@ function NetworkAnalystServiceBase_callSuper(t, o, e) { return o = NetworkAnalys function NetworkAnalystServiceBase_possibleConstructorReturn(t, e) { if (e && ("object" == NetworkAnalystServiceBase_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return NetworkAnalystServiceBase_assertThisInitialized(t); } function NetworkAnalystServiceBase_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function NetworkAnalystServiceBase_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (NetworkAnalystServiceBase_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function NetworkAnalystServiceBase_superPropGet(t, o, e, r) { var p = NetworkAnalystServiceBase_get(NetworkAnalystServiceBase_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function NetworkAnalystServiceBase_superPropGet(t, e, o, r) { var p = NetworkAnalystServiceBase_get(NetworkAnalystServiceBase_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function NetworkAnalystServiceBase_get() { return NetworkAnalystServiceBase_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = NetworkAnalystServiceBase_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, NetworkAnalystServiceBase_get.apply(null, arguments); } function NetworkAnalystServiceBase_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = NetworkAnalystServiceBase_getPrototypeOf(t));); return t; } function NetworkAnalystServiceBase_getPrototypeOf(t) { return NetworkAnalystServiceBase_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, NetworkAnalystServiceBase_getPrototypeOf(t); } @@ -101033,7 +101451,7 @@ var NetworkAnalystServiceBase = /*#__PURE__*/function (_CommonServiceBase) { value: function transformResult(result, options) { var me = this, analystResult; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); if (result && me.format === DataFormat.GEOJSON && typeof me.toGeoJSONResult === 'function') { analystResult = me.toGeoJSONResult(result); } @@ -101060,7 +101478,7 @@ var NetworkAnalystServiceBase = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/BurstPipelineAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/BurstPipelineAnalystParameters.js function BurstPipelineAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return BurstPipelineAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BurstPipelineAnalystParameters_typeof(o); } function BurstPipelineAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BurstPipelineAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BurstPipelineAnalystParameters_toPropertyKey(o.key), o); } } @@ -101117,7 +101535,7 @@ var BurstPipelineAnalystParameters = /*#__PURE__*/function () { * 指定为 false,表示不确定流向无效,遇到不确定流向将停止在该方向上继续查找。 */ this.isUncertainDirectionValid = false; - Util.extend(me, options); + Util_Util.extend(me, options); this.CLASS_NAME = "SuperMap.BurstPipelineAnalystParameters"; } @@ -101136,7 +101554,7 @@ var BurstPipelineAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/BurstPipelineAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/BurstPipelineAnalystService.js function BurstPipelineAnalystService_typeof(o) { "@babel/helpers - typeof"; return BurstPipelineAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BurstPipelineAnalystService_typeof(o); } function BurstPipelineAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BurstPipelineAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BurstPipelineAnalystService_toPropertyKey(o.key), o); } } @@ -101147,7 +101565,7 @@ function BurstPipelineAnalystService_callSuper(t, o, e) { return o = BurstPipeli function BurstPipelineAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == BurstPipelineAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return BurstPipelineAnalystService_assertThisInitialized(t); } function BurstPipelineAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function BurstPipelineAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (BurstPipelineAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function BurstPipelineAnalystService_superPropGet(t, o, e, r) { var p = BurstPipelineAnalystService_get(BurstPipelineAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function BurstPipelineAnalystService_superPropGet(t, e, o, r) { var p = BurstPipelineAnalystService_get(BurstPipelineAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function BurstPipelineAnalystService_get() { return BurstPipelineAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = BurstPipelineAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, BurstPipelineAnalystService_get.apply(null, arguments); } function BurstPipelineAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = BurstPipelineAnalystService_getPrototypeOf(t));); return t; } function BurstPipelineAnalystService_getPrototypeOf(t) { return BurstPipelineAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, BurstPipelineAnalystService_getPrototypeOf(t); } @@ -101212,7 +101630,7 @@ var BurstPipelineAnalystService = /*#__PURE__*/function (_NetworkAnalystServic) } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'burstAnalyse'); + me.url = Util_Util.urlPathAppend(me.url, 'burstAnalyse'); jsonObject = { sourceNodeIDs: params.sourceNodeIDs, isUncertainDirectionValid: params.isUncertainDirectionValid @@ -101240,7 +101658,7 @@ var BurstPipelineAnalystService = /*#__PURE__*/function (_NetworkAnalystServic) } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/TransportationAnalystResultSetting.js +;// CONCATENATED MODULE: ./src/common/iServer/TransportationAnalystResultSetting.js function TransportationAnalystResultSetting_typeof(o) { "@babel/helpers - typeof"; return TransportationAnalystResultSetting_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TransportationAnalystResultSetting_typeof(o); } function TransportationAnalystResultSetting_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TransportationAnalystResultSetting_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TransportationAnalystResultSetting_toPropertyKey(o.key), o); } } @@ -101323,7 +101741,7 @@ var TransportationAnalystResultSetting = /*#__PURE__*/function () { * @description 返回分析结果中是否包含路由对象的集合。 */ this.returnRoutes = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TransportationAnalystResultSetting"; } @@ -101346,7 +101764,7 @@ var TransportationAnalystResultSetting = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TransportationAnalystParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/TransportationAnalystParameter.js function TransportationAnalystParameter_typeof(o) { "@babel/helpers - typeof"; return TransportationAnalystParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TransportationAnalystParameter_typeof(o); } function TransportationAnalystParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TransportationAnalystParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TransportationAnalystParameter_toPropertyKey(o.key), o); } } @@ -101416,7 +101834,7 @@ var TransportationAnalystParameter = /*#__PURE__*/function () { * @description 分析结果返回内容设置。该设置不影响结果,但设置后将增加分析所耗时间。 */ this.resultSetting = new TransportationAnalystResultSetting(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TransportationAnalystParameter"; } @@ -101445,7 +101863,7 @@ var TransportationAnalystParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ComputeWeightMatrixParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/ComputeWeightMatrixParameters.js function ComputeWeightMatrixParameters_typeof(o) { "@babel/helpers - typeof"; return ComputeWeightMatrixParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ComputeWeightMatrixParameters_typeof(o); } function ComputeWeightMatrixParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ComputeWeightMatrixParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ComputeWeightMatrixParameters_toPropertyKey(o.key), o); } } @@ -101491,7 +101909,7 @@ var ComputeWeightMatrixParameters = /*#__PURE__*/function () { * @description 交通网络分析通用参数。 */ this.parameter = new TransportationAnalystParameter(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.ComputeWeightMatrixParameters"; } @@ -101512,7 +101930,7 @@ var ComputeWeightMatrixParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ComputeWeightMatrixService.js +;// CONCATENATED MODULE: ./src/common/iServer/ComputeWeightMatrixService.js function ComputeWeightMatrixService_typeof(o) { "@babel/helpers - typeof"; return ComputeWeightMatrixService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ComputeWeightMatrixService_typeof(o); } function ComputeWeightMatrixService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ComputeWeightMatrixService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ComputeWeightMatrixService_toPropertyKey(o.key), o); } } @@ -101523,7 +101941,7 @@ function ComputeWeightMatrixService_callSuper(t, o, e) { return o = ComputeWeigh function ComputeWeightMatrixService_possibleConstructorReturn(t, e) { if (e && ("object" == ComputeWeightMatrixService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ComputeWeightMatrixService_assertThisInitialized(t); } function ComputeWeightMatrixService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ComputeWeightMatrixService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ComputeWeightMatrixService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ComputeWeightMatrixService_superPropGet(t, o, e, r) { var p = ComputeWeightMatrixService_get(ComputeWeightMatrixService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ComputeWeightMatrixService_superPropGet(t, e, o, r) { var p = ComputeWeightMatrixService_get(ComputeWeightMatrixService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ComputeWeightMatrixService_get() { return ComputeWeightMatrixService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ComputeWeightMatrixService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ComputeWeightMatrixService_get.apply(null, arguments); } function ComputeWeightMatrixService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ComputeWeightMatrixService_getPrototypeOf(t));); return t; } function ComputeWeightMatrixService_getPrototypeOf(t) { return ComputeWeightMatrixService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ComputeWeightMatrixService_getPrototypeOf(t); } @@ -101590,9 +102008,9 @@ var ComputeWeightMatrixService = /*#__PURE__*/function (_NetworkAnalystServic) { } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'weightmatrix'); + me.url = Util_Util.urlPathAppend(me.url, 'weightmatrix'); jsonObject = { - parameter: Util.toJSON(params.parameter), + parameter: Util_Util.toJSON(params.parameter), nodes: me.getJson(params.isAnalyzeById, params.nodes) }; return me.request({ @@ -101636,7 +102054,7 @@ var ComputeWeightMatrixService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/FacilityAnalystStreamParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystStreamParameters.js function FacilityAnalystStreamParameters_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystStreamParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystStreamParameters_typeof(o); } function FacilityAnalystStreamParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystStreamParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystStreamParameters_toPropertyKey(o.key), o); } } @@ -101702,7 +102120,7 @@ var FacilityAnalystStreamParameters = /*#__PURE__*/function () { * @description 分析类型,只能是 0 (上游关键设施查询) 或者是 1(下游关键设施查询)。 */ this.queryType = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FacilityAnalystStreamParameters"; } @@ -101723,7 +102141,7 @@ var FacilityAnalystStreamParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FacilityAnalystStreamService.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystStreamService.js function FacilityAnalystStreamService_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystStreamService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystStreamService_typeof(o); } function FacilityAnalystStreamService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystStreamService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystStreamService_toPropertyKey(o.key), o); } } @@ -101734,7 +102152,7 @@ function FacilityAnalystStreamService_callSuper(t, o, e) { return o = FacilityAn function FacilityAnalystStreamService_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystStreamService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystStreamService_assertThisInitialized(t); } function FacilityAnalystStreamService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystStreamService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystStreamService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystStreamService_superPropGet(t, o, e, r) { var p = FacilityAnalystStreamService_get(FacilityAnalystStreamService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystStreamService_superPropGet(t, e, o, r) { var p = FacilityAnalystStreamService_get(FacilityAnalystStreamService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystStreamService_get() { return FacilityAnalystStreamService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystStreamService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystStreamService_get.apply(null, arguments); } function FacilityAnalystStreamService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystStreamService_getPrototypeOf(t));); return t; } function FacilityAnalystStreamService_getPrototypeOf(t) { return FacilityAnalystStreamService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystStreamService_getPrototypeOf(t); } @@ -101799,9 +102217,9 @@ var FacilityAnalystStreamService = /*#__PURE__*/function (_NetworkAnalystServic) jsonObject; //URL 通过参数类型来判断是 上游 还是下游 查询 if (params.queryType === 0) { - me.url = Util.urlPathAppend(me.url, 'upstreamcirticalfaclilities'); + me.url = Util_Util.urlPathAppend(me.url, 'upstreamcirticalfaclilities'); } else if (params.queryType === 1) { - me.url = Util.urlPathAppend(me.url, 'downstreamcirticalfaclilities'); + me.url = Util_Util.urlPathAppend(me.url, 'downstreamcirticalfaclilities'); } else { return; } @@ -101852,7 +102270,7 @@ var FacilityAnalystStreamService = /*#__PURE__*/function (_NetworkAnalystServic) } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/TraceAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/TraceAnalystParameters.js function TraceAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return TraceAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TraceAnalystParameters_typeof(o); } function TraceAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TraceAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TraceAnalystParameters_toPropertyKey(o.key), o); } } @@ -101927,7 +102345,7 @@ var TraceAnalystParameters = /*#__PURE__*/function () { * @description 当使用 FlatGeobuf 表述时该参数可选。表示返回的表述为 FlatGeobuf 的结果是否包含空间索引,默认为 true。 */ this.withIndex = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TraceAnalystParameters"; } @@ -101949,7 +102367,7 @@ var TraceAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TraceAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/TraceAnalystService.js function TraceAnalystService_typeof(o) { "@babel/helpers - typeof"; return TraceAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TraceAnalystService_typeof(o); } function TraceAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TraceAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TraceAnalystService_toPropertyKey(o.key), o); } } @@ -101960,7 +102378,7 @@ function TraceAnalystService_callSuper(t, o, e) { return o = TraceAnalystService function TraceAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == TraceAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TraceAnalystService_assertThisInitialized(t); } function TraceAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TraceAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TraceAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TraceAnalystService_superPropGet(t, o, e, r) { var p = TraceAnalystService_get(TraceAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TraceAnalystService_superPropGet(t, e, o, r) { var p = TraceAnalystService_get(TraceAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TraceAnalystService_get() { return TraceAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TraceAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TraceAnalystService_get.apply(null, arguments); } function TraceAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TraceAnalystService_getPrototypeOf(t));); return t; } function TraceAnalystService_getPrototypeOf(t) { return TraceAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TraceAnalystService_getPrototypeOf(t); } @@ -101978,7 +102396,7 @@ function TraceAnalystService_setPrototypeOf(t, e) { return TraceAnalystService_s * @class TraceAnalystService * @deprecatedclass SuperMap.TraceAnalystService * @category iServer NetworkAnalyst TraceAnalystService - * @classdesc 上游/下游 追踪分析服务类;即查找给定弧段或节点的上游/下游弧段和结点。 + * @classdesc 上游/下游 追踪分析服务类;即查找给定弧段或结点的上游/下游弧段和结点。 * @version 11.1.1 * @extends NetworkAnalystServiceBase * @param {string} url - 服务地址。请求网络分析服务,URL 应为: @@ -102025,9 +102443,9 @@ var TraceAnalystService = /*#__PURE__*/function (_NetworkAnalystServic) { jsonObject; //URL 通过参数类型来判断是 上游 还是下游 追踪分析 if (params.traceType === 0) { - me.url = Util.urlPathAppend(me.url, 'traceup'); + me.url = Util_Util.urlPathAppend(me.url, 'traceup'); } else if (params.traceType === 1) { - me.url = Util.urlPathAppend(me.url, 'tracedown'); + me.url = Util_Util.urlPathAppend(me.url, 'tracedown'); } else { return; } @@ -102078,7 +102496,7 @@ var TraceAnalystService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/ConnectedEdgesAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/ConnectedEdgesAnalystParameters.js function ConnectedEdgesAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return ConnectedEdgesAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ConnectedEdgesAnalystParameters_typeof(o); } function ConnectedEdgesAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ConnectedEdgesAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ConnectedEdgesAnalystParameters_toPropertyKey(o.key), o); } } @@ -102137,7 +102555,7 @@ var ConnectedEdgesAnalystParameters = /*#__PURE__*/function () { * @description 当使用 FlatGeobuf 表述时该参数可选。表示返回的表述为 FlatGeobuf 的结果是否包含空间索引,默认为 true。 */ this.withIndex = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.ConnectedEdgesAnalystParameters"; } @@ -102157,7 +102575,7 @@ var ConnectedEdgesAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ConnectedEdgesAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/ConnectedEdgesAnalystService.js function ConnectedEdgesAnalystService_typeof(o) { "@babel/helpers - typeof"; return ConnectedEdgesAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ConnectedEdgesAnalystService_typeof(o); } function ConnectedEdgesAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ConnectedEdgesAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ConnectedEdgesAnalystService_toPropertyKey(o.key), o); } } @@ -102168,7 +102586,7 @@ function ConnectedEdgesAnalystService_callSuper(t, o, e) { return o = ConnectedE function ConnectedEdgesAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == ConnectedEdgesAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ConnectedEdgesAnalystService_assertThisInitialized(t); } function ConnectedEdgesAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ConnectedEdgesAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ConnectedEdgesAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ConnectedEdgesAnalystService_superPropGet(t, o, e, r) { var p = ConnectedEdgesAnalystService_get(ConnectedEdgesAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ConnectedEdgesAnalystService_superPropGet(t, e, o, r) { var p = ConnectedEdgesAnalystService_get(ConnectedEdgesAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ConnectedEdgesAnalystService_get() { return ConnectedEdgesAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ConnectedEdgesAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ConnectedEdgesAnalystService_get.apply(null, arguments); } function ConnectedEdgesAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ConnectedEdgesAnalystService_getPrototypeOf(t));); return t; } function ConnectedEdgesAnalystService_getPrototypeOf(t) { return ConnectedEdgesAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ConnectedEdgesAnalystService_getPrototypeOf(t); } @@ -102232,7 +102650,7 @@ var ConnectedEdgesAnalystService = /*#__PURE__*/function (_NetworkAnalystServic) } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'connectededges'); + me.url = Util_Util.urlPathAppend(me.url, 'connectededges'); jsonObject = { connected: params.connected, returnFeatures: params.returnFeatures @@ -102279,7 +102697,7 @@ var ConnectedEdgesAnalystService = /*#__PURE__*/function (_NetworkAnalystServic) } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/FindClosestFacilitiesParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FindClosestFacilitiesParameters.js function FindClosestFacilitiesParameters_typeof(o) { "@babel/helpers - typeof"; return FindClosestFacilitiesParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindClosestFacilitiesParameters_typeof(o); } function FindClosestFacilitiesParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindClosestFacilitiesParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindClosestFacilitiesParameters_toPropertyKey(o.key), o); } } @@ -102358,7 +102776,7 @@ var FindClosestFacilitiesParameters = /*#__PURE__*/function () { * 它虽然为可选参数,但是如果不设置其中的 resultSetting 字段,则返回结果空间信息等都为空。 */ this.parameter = new TransportationAnalystParameter(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FindClosestFacilitiesParameters"; } @@ -102383,7 +102801,7 @@ var FindClosestFacilitiesParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FindClosestFacilitiesService.js +;// CONCATENATED MODULE: ./src/common/iServer/FindClosestFacilitiesService.js function FindClosestFacilitiesService_typeof(o) { "@babel/helpers - typeof"; return FindClosestFacilitiesService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindClosestFacilitiesService_typeof(o); } function FindClosestFacilitiesService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindClosestFacilitiesService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindClosestFacilitiesService_toPropertyKey(o.key), o); } } @@ -102394,7 +102812,7 @@ function FindClosestFacilitiesService_callSuper(t, o, e) { return o = FindCloses function FindClosestFacilitiesService_possibleConstructorReturn(t, e) { if (e && ("object" == FindClosestFacilitiesService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FindClosestFacilitiesService_assertThisInitialized(t); } function FindClosestFacilitiesService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FindClosestFacilitiesService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FindClosestFacilitiesService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FindClosestFacilitiesService_superPropGet(t, o, e, r) { var p = FindClosestFacilitiesService_get(FindClosestFacilitiesService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FindClosestFacilitiesService_superPropGet(t, e, o, r) { var p = FindClosestFacilitiesService_get(FindClosestFacilitiesService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FindClosestFacilitiesService_get() { return FindClosestFacilitiesService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FindClosestFacilitiesService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FindClosestFacilitiesService_get.apply(null, arguments); } function FindClosestFacilitiesService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FindClosestFacilitiesService_getPrototypeOf(t));); return t; } function FindClosestFacilitiesService_getPrototypeOf(t) { return FindClosestFacilitiesService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FindClosestFacilitiesService_getPrototypeOf(t); } @@ -102463,13 +102881,13 @@ var FindClosestFacilitiesService = /*#__PURE__*/function (_NetworkAnalystServic) } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'closestfacility'); + me.url = Util_Util.urlPathAppend(me.url, 'closestfacility'); jsonObject = { expectFacilityCount: params.expectFacilityCount, fromEvent: params.fromEvent, maxWeight: params.maxWeight, - parameter: Util.toJSON(params.parameter), - event: Util.toJSON(params.event), + parameter: Util_Util.toJSON(params.parameter), + event: Util_Util.toJSON(params.event), facilities: me.getJson(params.isAnalyzeById, params.facilities) }; return me.request({ @@ -102543,7 +102961,7 @@ var FindClosestFacilitiesService = /*#__PURE__*/function (_NetworkAnalystServic) } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/FindLocationParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FindLocationParameters.js function FindLocationParameters_typeof(o) { "@babel/helpers - typeof"; return FindLocationParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindLocationParameters_typeof(o); } function FindLocationParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindLocationParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindLocationParameters_toPropertyKey(o.key), o); } } @@ -102608,7 +103026,7 @@ var FindLocationParameters = /*#__PURE__*/function () { * @description 阻力字段的名称,标识了进行网络分析时所使用的阻力字段。 */ this.weightName = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FindLocationParameters"; } @@ -102633,7 +103051,7 @@ var FindLocationParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FindLocationService.js +;// CONCATENATED MODULE: ./src/common/iServer/FindLocationService.js function FindLocationService_typeof(o) { "@babel/helpers - typeof"; return FindLocationService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindLocationService_typeof(o); } function FindLocationService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindLocationService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindLocationService_toPropertyKey(o.key), o); } } @@ -102644,7 +103062,7 @@ function FindLocationService_callSuper(t, o, e) { return o = FindLocationService function FindLocationService_possibleConstructorReturn(t, e) { if (e && ("object" == FindLocationService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FindLocationService_assertThisInitialized(t); } function FindLocationService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FindLocationService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FindLocationService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FindLocationService_superPropGet(t, o, e, r) { var p = FindLocationService_get(FindLocationService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FindLocationService_superPropGet(t, e, o, r) { var p = FindLocationService_get(FindLocationService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FindLocationService_get() { return FindLocationService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FindLocationService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FindLocationService_get.apply(null, arguments); } function FindLocationService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FindLocationService_getPrototypeOf(t));); return t; } function FindLocationService_getPrototypeOf(t) { return FindLocationService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FindLocationService_getPrototypeOf(t); } @@ -102713,7 +103131,7 @@ var FindLocationService = /*#__PURE__*/function (_NetworkAnalystServic) { } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'location'); + me.url = Util_Util.urlPathAppend(me.url, 'location'); jsonObject = { isFromCenter: params.isFromCenter, expectedSupplyCenterCount: params.expectedSupplyCenterCount, @@ -102722,7 +103140,7 @@ var FindLocationService = /*#__PURE__*/function (_NetworkAnalystServic) { returnEdgeFeature: true, returnEdgeGeometry: true, returnNodeFeature: true, - mapParameter: Util.toJSON(params.mapParameter), + mapParameter: Util_Util.toJSON(params.mapParameter), supplyCenters: me.getCentersJson(params.supplyCenters) }; return me.request({ @@ -102749,7 +103167,7 @@ var FindLocationService = /*#__PURE__*/function (_NetworkAnalystServic) { if (i > 0) { json += ","; } - json += Util.toJSON(params[i]); + json += Util_Util.toJSON(params[i]); } json += "]"; return json; @@ -102777,7 +103195,7 @@ var FindLocationService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/FindMTSPPathsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FindMTSPPathsParameters.js function FindMTSPPathsParameters_typeof(o) { "@babel/helpers - typeof"; return FindMTSPPathsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindMTSPPathsParameters_typeof(o); } function FindMTSPPathsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindMTSPPathsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindMTSPPathsParameters_toPropertyKey(o.key), o); } } @@ -102848,7 +103266,7 @@ var FindMTSPPathsParameters = /*#__PURE__*/function () { * 它虽然为可选参数,但是如果不设置其中的 resultSetting 字段,则返回结果空间信息等都为空。 */ this.parameter = new TransportationAnalystParameter(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FindMTSPPathsParameters"; } @@ -102872,7 +103290,7 @@ var FindMTSPPathsParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FindMTSPPathsService.js +;// CONCATENATED MODULE: ./src/common/iServer/FindMTSPPathsService.js function FindMTSPPathsService_typeof(o) { "@babel/helpers - typeof"; return FindMTSPPathsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindMTSPPathsService_typeof(o); } function FindMTSPPathsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindMTSPPathsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindMTSPPathsService_toPropertyKey(o.key), o); } } @@ -102883,7 +103301,7 @@ function FindMTSPPathsService_callSuper(t, o, e) { return o = FindMTSPPathsServi function FindMTSPPathsService_possibleConstructorReturn(t, e) { if (e && ("object" == FindMTSPPathsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FindMTSPPathsService_assertThisInitialized(t); } function FindMTSPPathsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FindMTSPPathsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FindMTSPPathsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FindMTSPPathsService_superPropGet(t, o, e, r) { var p = FindMTSPPathsService_get(FindMTSPPathsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FindMTSPPathsService_superPropGet(t, e, o, r) { var p = FindMTSPPathsService_get(FindMTSPPathsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FindMTSPPathsService_get() { return FindMTSPPathsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FindMTSPPathsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FindMTSPPathsService_get.apply(null, arguments); } function FindMTSPPathsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FindMTSPPathsService_getPrototypeOf(t));); return t; } function FindMTSPPathsService_getPrototypeOf(t) { return FindMTSPPathsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FindMTSPPathsService_getPrototypeOf(t); } @@ -102956,11 +103374,11 @@ var FindMTSPPathsService = /*#__PURE__*/function (_NetworkAnalystServic) { //end = me.url.substr(me.url.length - 1, 1), centers = me.getJson(params.isAnalyzeById, params.centers), nodes = me.getJson(params.isAnalyzeById, params.nodes); - me.url = Util.urlPathAppend(me.url, 'mtsppath'); + me.url = Util_Util.urlPathAppend(me.url, 'mtsppath'); jsonObject = { centers: centers, nodes: nodes, - parameter: Util.toJSON(params.parameter), + parameter: Util_Util.toJSON(params.parameter), hasLeastTotalCost: params.hasLeastTotalCost }; return me.request({ @@ -103034,7 +103452,7 @@ var FindMTSPPathsService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/FindPathParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FindPathParameters.js function FindPathParameters_typeof(o) { "@babel/helpers - typeof"; return FindPathParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindPathParameters_typeof(o); } function FindPathParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindPathParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindPathParameters_toPropertyKey(o.key), o); } } @@ -103101,7 +103519,7 @@ var FindPathParameters = /*#__PURE__*/function () { * @description 交通网络分析通用参数。 */ this.parameter = new TransportationAnalystParameter(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FindPathParameters"; } @@ -103123,7 +103541,7 @@ var FindPathParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FindPathService.js +;// CONCATENATED MODULE: ./src/common/iServer/FindPathService.js function FindPathService_typeof(o) { "@babel/helpers - typeof"; return FindPathService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindPathService_typeof(o); } function FindPathService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindPathService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindPathService_toPropertyKey(o.key), o); } } @@ -103134,7 +103552,7 @@ function FindPathService_callSuper(t, o, e) { return o = FindPathService_getProt function FindPathService_possibleConstructorReturn(t, e) { if (e && ("object" == FindPathService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FindPathService_assertThisInitialized(t); } function FindPathService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FindPathService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FindPathService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FindPathService_superPropGet(t, o, e, r) { var p = FindPathService_get(FindPathService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FindPathService_superPropGet(t, e, o, r) { var p = FindPathService_get(FindPathService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FindPathService_get() { return FindPathService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FindPathService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FindPathService_get.apply(null, arguments); } function FindPathService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FindPathService_getPrototypeOf(t));); return t; } function FindPathService_getPrototypeOf(t) { return FindPathService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FindPathService_getPrototypeOf(t); } @@ -103203,10 +103621,10 @@ var FindPathService = /*#__PURE__*/function (_NetworkAnalystServic) { } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'path'); + me.url = Util_Util.urlPathAppend(me.url, 'path'); jsonObject = { hasLeastEdgeCount: params.hasLeastEdgeCount, - parameter: Util.toJSON(params.parameter), + parameter: Util_Util.toJSON(params.parameter), nodes: me.getJson(params.isAnalyzeById, params.nodes) }; return me.request({ @@ -103279,7 +103697,7 @@ var FindPathService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/FindServiceAreasParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FindServiceAreasParameters.js function FindServiceAreasParameters_typeof(o) { "@babel/helpers - typeof"; return FindServiceAreasParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindServiceAreasParameters_typeof(o); } function FindServiceAreasParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindServiceAreasParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindServiceAreasParameters_toPropertyKey(o.key), o); } } @@ -103373,7 +103791,7 @@ var FindServiceAreasParameters = /*#__PURE__*/function () { * @description 交通网络分析通用参数。 */ this.parameter = new TransportationAnalystParameter(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FindServiceAreasParameters"; } @@ -103397,7 +103815,7 @@ var FindServiceAreasParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FindServiceAreasService.js +;// CONCATENATED MODULE: ./src/common/iServer/FindServiceAreasService.js function FindServiceAreasService_typeof(o) { "@babel/helpers - typeof"; return FindServiceAreasService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindServiceAreasService_typeof(o); } function FindServiceAreasService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindServiceAreasService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindServiceAreasService_toPropertyKey(o.key), o); } } @@ -103408,7 +103826,7 @@ function FindServiceAreasService_callSuper(t, o, e) { return o = FindServiceArea function FindServiceAreasService_possibleConstructorReturn(t, e) { if (e && ("object" == FindServiceAreasService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FindServiceAreasService_assertThisInitialized(t); } function FindServiceAreasService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FindServiceAreasService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FindServiceAreasService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FindServiceAreasService_superPropGet(t, o, e, r) { var p = FindServiceAreasService_get(FindServiceAreasService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FindServiceAreasService_superPropGet(t, e, o, r) { var p = FindServiceAreasService_get(FindServiceAreasService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FindServiceAreasService_get() { return FindServiceAreasService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FindServiceAreasService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FindServiceAreasService_get.apply(null, arguments); } function FindServiceAreasService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FindServiceAreasService_getPrototypeOf(t));); return t; } function FindServiceAreasService_getPrototypeOf(t) { return FindServiceAreasService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FindServiceAreasService_getPrototypeOf(t); } @@ -103477,13 +103895,13 @@ var FindServiceAreasService = /*#__PURE__*/function (_NetworkAnalystServic) { } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'servicearea'); + me.url = Util_Util.urlPathAppend(me.url, 'servicearea'); jsonObject = { isReturnComplexArea: params.isReturnComplexArea, serviceBufferRadius: params.serviceBufferRadius, isFromCenter: params.isFromCenter, isCenterMutuallyExclusive: params.isCenterMutuallyExclusive, - parameter: Util.toJSON(params.parameter), + parameter: Util_Util.toJSON(params.parameter), centers: me.getJson(params.isAnalyzeById, params.centers), weights: me.getJson(true, params.weights) }; @@ -103558,7 +103976,7 @@ var FindServiceAreasService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/FindTSPPathsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FindTSPPathsParameters.js function FindTSPPathsParameters_typeof(o) { "@babel/helpers - typeof"; return FindTSPPathsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindTSPPathsParameters_typeof(o); } function FindTSPPathsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindTSPPathsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindTSPPathsParameters_toPropertyKey(o.key), o); } } @@ -103618,7 +104036,7 @@ var FindTSPPathsParameters = /*#__PURE__*/function () { * 它虽然为可选参数,但是如果不设置其中的 resultSetting 字段,则返回结果空间信息等都为空。 */ this.parameter = new TransportationAnalystParameter(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FindTSPPathsParameters"; } @@ -103640,7 +104058,7 @@ var FindTSPPathsParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FindTSPPathsService.js +;// CONCATENATED MODULE: ./src/common/iServer/FindTSPPathsService.js function FindTSPPathsService_typeof(o) { "@babel/helpers - typeof"; return FindTSPPathsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FindTSPPathsService_typeof(o); } function FindTSPPathsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FindTSPPathsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FindTSPPathsService_toPropertyKey(o.key), o); } } @@ -103651,7 +104069,7 @@ function FindTSPPathsService_callSuper(t, o, e) { return o = FindTSPPathsService function FindTSPPathsService_possibleConstructorReturn(t, e) { if (e && ("object" == FindTSPPathsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FindTSPPathsService_assertThisInitialized(t); } function FindTSPPathsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FindTSPPathsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FindTSPPathsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FindTSPPathsService_superPropGet(t, o, e, r) { var p = FindTSPPathsService_get(FindTSPPathsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FindTSPPathsService_superPropGet(t, e, o, r) { var p = FindTSPPathsService_get(FindTSPPathsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FindTSPPathsService_get() { return FindTSPPathsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FindTSPPathsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FindTSPPathsService_get.apply(null, arguments); } function FindTSPPathsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FindTSPPathsService_getPrototypeOf(t));); return t; } function FindTSPPathsService_getPrototypeOf(t) { return FindTSPPathsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FindTSPPathsService_getPrototypeOf(t); } @@ -103722,9 +104140,9 @@ var FindTSPPathsService = /*#__PURE__*/function (_NetworkAnalystServic) { } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'tsppath'); + me.url = Util_Util.urlPathAppend(me.url, 'tsppath'); jsonObject = { - parameter: Util.toJSON(params.parameter), + parameter: Util_Util.toJSON(params.parameter), endNodeAssigned: params.endNodeAssigned, nodes: me.getNodesJson(params) }; @@ -103806,7 +104224,7 @@ var FindTSPPathsService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/UpdateEdgeWeightParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/UpdateEdgeWeightParameters.js function UpdateEdgeWeightParameters_typeof(o) { "@babel/helpers - typeof"; return UpdateEdgeWeightParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UpdateEdgeWeightParameters_typeof(o); } function UpdateEdgeWeightParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UpdateEdgeWeightParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UpdateEdgeWeightParameters_toPropertyKey(o.key), o); } } @@ -103867,7 +104285,7 @@ var UpdateEdgeWeightParameters = /*#__PURE__*/function () { * @description 耗费权重。 */ this.edgeWeight = ""; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.UpdateEdgeWeightParameters"; } @@ -103886,7 +104304,7 @@ var UpdateEdgeWeightParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/UpdateEdgeWeightService.js +;// CONCATENATED MODULE: ./src/common/iServer/UpdateEdgeWeightService.js function UpdateEdgeWeightService_typeof(o) { "@babel/helpers - typeof"; return UpdateEdgeWeightService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UpdateEdgeWeightService_typeof(o); } function UpdateEdgeWeightService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UpdateEdgeWeightService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UpdateEdgeWeightService_toPropertyKey(o.key), o); } } @@ -103897,7 +104315,7 @@ function UpdateEdgeWeightService_callSuper(t, o, e) { return o = UpdateEdgeWeigh function UpdateEdgeWeightService_possibleConstructorReturn(t, e) { if (e && ("object" == UpdateEdgeWeightService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return UpdateEdgeWeightService_assertThisInitialized(t); } function UpdateEdgeWeightService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function UpdateEdgeWeightService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (UpdateEdgeWeightService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function UpdateEdgeWeightService_superPropGet(t, o, e, r) { var p = UpdateEdgeWeightService_get(UpdateEdgeWeightService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function UpdateEdgeWeightService_superPropGet(t, e, o, r) { var p = UpdateEdgeWeightService_get(UpdateEdgeWeightService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function UpdateEdgeWeightService_get() { return UpdateEdgeWeightService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = UpdateEdgeWeightService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, UpdateEdgeWeightService_get.apply(null, arguments); } function UpdateEdgeWeightService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = UpdateEdgeWeightService_getPrototypeOf(t));); return t; } function UpdateEdgeWeightService_getPrototypeOf(t) { return UpdateEdgeWeightService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, UpdateEdgeWeightService_getPrototypeOf(t); } @@ -103971,7 +104389,7 @@ var UpdateEdgeWeightService = /*#__PURE__*/function (_NetworkAnalystServic) { } var me = this; var paramStr = me.parse(params); - me.url = Util.urlPathAppend(me.url, paramStr); + me.url = Util_Util.urlPathAppend(me.url, paramStr); var data = params.edgeWeight ? params.edgeWeight : null; return me.request({ method: "PUT", @@ -104018,7 +104436,7 @@ var UpdateEdgeWeightService = /*#__PURE__*/function (_NetworkAnalystServic) { } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/UpdateTurnNodeWeightParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/UpdateTurnNodeWeightParameters.js function UpdateTurnNodeWeightParameters_typeof(o) { "@babel/helpers - typeof"; return UpdateTurnNodeWeightParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UpdateTurnNodeWeightParameters_typeof(o); } function UpdateTurnNodeWeightParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UpdateTurnNodeWeightParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UpdateTurnNodeWeightParameters_toPropertyKey(o.key), o); } } @@ -104079,7 +104497,7 @@ var UpdateTurnNodeWeightParameters = /*#__PURE__*/function () { * @description 耗费权重。 */ this.turnNodeWeight = ""; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.UpdateTurnNodeWeightParameters"; } @@ -104098,7 +104516,7 @@ var UpdateTurnNodeWeightParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/UpdateTurnNodeWeightService.js +;// CONCATENATED MODULE: ./src/common/iServer/UpdateTurnNodeWeightService.js function UpdateTurnNodeWeightService_typeof(o) { "@babel/helpers - typeof"; return UpdateTurnNodeWeightService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, UpdateTurnNodeWeightService_typeof(o); } function UpdateTurnNodeWeightService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function UpdateTurnNodeWeightService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, UpdateTurnNodeWeightService_toPropertyKey(o.key), o); } } @@ -104109,7 +104527,7 @@ function UpdateTurnNodeWeightService_callSuper(t, o, e) { return o = UpdateTurnN function UpdateTurnNodeWeightService_possibleConstructorReturn(t, e) { if (e && ("object" == UpdateTurnNodeWeightService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return UpdateTurnNodeWeightService_assertThisInitialized(t); } function UpdateTurnNodeWeightService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function UpdateTurnNodeWeightService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (UpdateTurnNodeWeightService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function UpdateTurnNodeWeightService_superPropGet(t, o, e, r) { var p = UpdateTurnNodeWeightService_get(UpdateTurnNodeWeightService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function UpdateTurnNodeWeightService_superPropGet(t, e, o, r) { var p = UpdateTurnNodeWeightService_get(UpdateTurnNodeWeightService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function UpdateTurnNodeWeightService_get() { return UpdateTurnNodeWeightService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = UpdateTurnNodeWeightService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, UpdateTurnNodeWeightService_get.apply(null, arguments); } function UpdateTurnNodeWeightService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = UpdateTurnNodeWeightService_getPrototypeOf(t));); return t; } function UpdateTurnNodeWeightService_getPrototypeOf(t) { return UpdateTurnNodeWeightService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, UpdateTurnNodeWeightService_getPrototypeOf(t); } @@ -104182,7 +104600,7 @@ var UpdateTurnNodeWeightService = /*#__PURE__*/function (_NetworkAnalystServic) } var me = this; var paramStr = me.parse(params); - me.url = Util.urlPathAppend(me.url, paramStr); + me.url = Util_Util.urlPathAppend(me.url, paramStr); var data = params.turnNodeWeight ? params.turnNodeWeight : null; return me.request({ method: "PUT", @@ -104229,7 +104647,7 @@ var UpdateTurnNodeWeightService = /*#__PURE__*/function (_NetworkAnalystServic) } }]); }(NetworkAnalystServiceBase); -;// ./src/common/iServer/NetworkAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/NetworkAnalystService.js function NetworkAnalystService_typeof(o) { "@babel/helpers - typeof"; return NetworkAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, NetworkAnalystService_typeof(o); } function NetworkAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function NetworkAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, NetworkAnalystService_toPropertyKey(o.key), o); } } @@ -104353,7 +104771,7 @@ var NetworkAnalystService_NetworkAnalystService = /*#__PURE__*/function () { /** * @function NetworkAnalystService.prototype.traceAnalyst * @description 上游/下游 追踪分析服务。
- * 查找给定弧段或节点的上游/下游弧段和结点。 + * 查找给定弧段或结点的上游/下游弧段和结点。 * @param {TraceAnalystParameters} params - 上游/下游 追踪分析服务参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回的结果类型。 @@ -104581,7 +104999,7 @@ var NetworkAnalystService_NetworkAnalystService = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/NetworkAnalystService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/NetworkAnalystService.js function services_NetworkAnalystService_typeof(o) { "@babel/helpers - typeof"; return services_NetworkAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_NetworkAnalystService_typeof(o); } function services_NetworkAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_NetworkAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_NetworkAnalystService_toPropertyKey(o.key), o); } } @@ -104616,9 +105034,7 @@ function NetworkAnalystService_setPrototypeOf(t, e) { return NetworkAnalystServi * .findPath(params,function(result){ * //doSomething * }) - * @param {string} url - 服务地址。请求网络分析服务,URL 应为:
- * http://{服务器地址}:{服务端口号}/iserver/services/{网络分析服务名}/rest/networkanalyst/{网络数据集@数据源}。 - * 例如: "http://localhost:8090/iserver/services/test/rest/networkanalyst/WaterNet@FacilityNet"。 + * @param {string} url - 网络分析服务地址,如 http://{ip}:{port}/iserver/services/{网络分析服务名}/rest/networkanalyst/{网络数据集@数据源}。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -104688,7 +105104,7 @@ var NetworkAnalystService = /*#__PURE__*/function (_ServiceBase) { /** * @function NetworkAnalystService.prototype.traceAnalyst * @description 上游/下游 追踪分析服务。
- * 查找给定弧段或节点的上游/下游弧段和结点。 + * 查找给定弧段或结点的上游/下游弧段和结点。 * @version 11.1.1 * @param {TraceAnalystParameters} params - 上游/下游 追踪分析服务参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 @@ -104854,13 +105270,13 @@ var NetworkAnalystService = /*#__PURE__*/function (_ServiceBase) { return {}; } var me = this; - if (params.centers && Util_Util.isArray(params.centers)) { + if (params.centers && core_Util_Util.isArray(params.centers)) { params.centers.map(function (point, key) { params.centers[key] = me._toPointObject(point); return params.centers[key]; }); } - if (params.nodes && Util_Util.isArray(params.nodes)) { + if (params.nodes && core_Util_Util.isArray(params.nodes)) { params.nodes.map(function (point, key) { params.nodes[key] = me._toPointObject(point); return params.nodes[key]; @@ -104869,7 +105285,7 @@ var NetworkAnalystService = /*#__PURE__*/function (_ServiceBase) { if (params.event) { params.event = me._toPointObject(params.event); } - if (params.facilities && Util_Util.isArray(params.facilities)) { + if (params.facilities && core_Util_Util.isArray(params.facilities)) { params.facilities.map(function (point, key) { params.facilities[key] = me._toPointObject(point); return params.facilities[key]; @@ -104877,7 +105293,7 @@ var NetworkAnalystService = /*#__PURE__*/function (_ServiceBase) { } if (params.parameter && params.parameter.barrierPoints) { var barrierPoints = params.parameter.barrierPoints; - if (Util_Util.isArray(barrierPoints)) { + if (core_Util_Util.isArray(barrierPoints)) { barrierPoints.map(function (point, key) { params.parameter[key] = me._toPointObject(point); return params.parameter.barrierPoints[key]; @@ -104894,7 +105310,7 @@ var NetworkAnalystService = /*#__PURE__*/function (_ServiceBase) { }, { key: "_toPointObject", value: function _toPointObject(point) { - if (Util_Util.isArray(point)) { + if (core_Util_Util.isArray(point)) { return { x: point[0], y: point[1] @@ -104918,7 +105334,7 @@ var NetworkAnalystService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/FacilityAnalyst3DParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalyst3DParameters.js function FacilityAnalyst3DParameters_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalyst3DParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalyst3DParameters_typeof(o); } function FacilityAnalyst3DParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalyst3DParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalyst3DParameters_toPropertyKey(o.key), o); } } @@ -104971,7 +105387,7 @@ var FacilityAnalyst3DParameters = /*#__PURE__*/function () { * 指定为 false,表示不确定流向无效,遇到不确定流向将停止在该方向上继续查找。 */ this.isUncertainDirectionValid = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.FacilityAnalyst3DParameters"; } @@ -104990,7 +105406,7 @@ var FacilityAnalyst3DParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FacilityAnalystSinks3DParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystSinks3DParameters.js function FacilityAnalystSinks3DParameters_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystSinks3DParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystSinks3DParameters_typeof(o); } function FacilityAnalystSinks3DParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystSinks3DParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystSinks3DParameters_toPropertyKey(o.key), o); } } @@ -105001,7 +105417,7 @@ function FacilityAnalystSinks3DParameters_callSuper(t, o, e) { return o = Facili function FacilityAnalystSinks3DParameters_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystSinks3DParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystSinks3DParameters_assertThisInitialized(t); } function FacilityAnalystSinks3DParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystSinks3DParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystSinks3DParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystSinks3DParameters_superPropGet(t, o, e, r) { var p = FacilityAnalystSinks3DParameters_get(FacilityAnalystSinks3DParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystSinks3DParameters_superPropGet(t, e, o, r) { var p = FacilityAnalystSinks3DParameters_get(FacilityAnalystSinks3DParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystSinks3DParameters_get() { return FacilityAnalystSinks3DParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystSinks3DParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystSinks3DParameters_get.apply(null, arguments); } function FacilityAnalystSinks3DParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystSinks3DParameters_getPrototypeOf(t));); return t; } function FacilityAnalystSinks3DParameters_getPrototypeOf(t) { return FacilityAnalystSinks3DParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystSinks3DParameters_getPrototypeOf(t); } @@ -105047,7 +105463,7 @@ var FacilityAnalystSinks3DParameters = /*#__PURE__*/function (_FacilityAnalyst3D } }]); }(FacilityAnalyst3DParameters); -;// ./src/common/iServer/FacilityAnalystSinks3DService.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystSinks3DService.js function FacilityAnalystSinks3DService_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystSinks3DService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystSinks3DService_typeof(o); } function FacilityAnalystSinks3DService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystSinks3DService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystSinks3DService_toPropertyKey(o.key), o); } } @@ -105121,7 +105537,7 @@ var FacilityAnalystSinks3DService = /*#__PURE__*/function (_CommonServiceBase) { } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'sinks'); + me.url = Util_Util.urlPathAppend(me.url, 'sinks'); jsonObject = { edgeID: params.edgeID, nodeID: params.nodeID, @@ -105138,7 +105554,7 @@ var FacilityAnalystSinks3DService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/FacilityAnalystSources3DParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystSources3DParameters.js function FacilityAnalystSources3DParameters_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystSources3DParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystSources3DParameters_typeof(o); } function FacilityAnalystSources3DParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystSources3DParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystSources3DParameters_toPropertyKey(o.key), o); } } @@ -105149,7 +105565,7 @@ function FacilityAnalystSources3DParameters_callSuper(t, o, e) { return o = Faci function FacilityAnalystSources3DParameters_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystSources3DParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystSources3DParameters_assertThisInitialized(t); } function FacilityAnalystSources3DParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystSources3DParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystSources3DParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystSources3DParameters_superPropGet(t, o, e, r) { var p = FacilityAnalystSources3DParameters_get(FacilityAnalystSources3DParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystSources3DParameters_superPropGet(t, e, o, r) { var p = FacilityAnalystSources3DParameters_get(FacilityAnalystSources3DParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystSources3DParameters_get() { return FacilityAnalystSources3DParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystSources3DParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystSources3DParameters_get.apply(null, arguments); } function FacilityAnalystSources3DParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystSources3DParameters_getPrototypeOf(t));); return t; } function FacilityAnalystSources3DParameters_getPrototypeOf(t) { return FacilityAnalystSources3DParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystSources3DParameters_getPrototypeOf(t); } @@ -105195,7 +105611,7 @@ var FacilityAnalystSources3DParameters = /*#__PURE__*/function (_FacilityAnalyst } }]); }(FacilityAnalyst3DParameters); -;// ./src/common/iServer/FacilityAnalystSources3DService.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystSources3DService.js function FacilityAnalystSources3DService_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystSources3DService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystSources3DService_typeof(o); } function FacilityAnalystSources3DService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystSources3DService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystSources3DService_toPropertyKey(o.key), o); } } @@ -105206,7 +105622,7 @@ function FacilityAnalystSources3DService_callSuper(t, o, e) { return o = Facilit function FacilityAnalystSources3DService_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystSources3DService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystSources3DService_assertThisInitialized(t); } function FacilityAnalystSources3DService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystSources3DService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystSources3DService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystSources3DService_superPropGet(t, o, e, r) { var p = FacilityAnalystSources3DService_get(FacilityAnalystSources3DService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystSources3DService_superPropGet(t, e, o, r) { var p = FacilityAnalystSources3DService_get(FacilityAnalystSources3DService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystSources3DService_get() { return FacilityAnalystSources3DService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystSources3DService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystSources3DService_get.apply(null, arguments); } function FacilityAnalystSources3DService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystSources3DService_getPrototypeOf(t));); return t; } function FacilityAnalystSources3DService_getPrototypeOf(t) { return FacilityAnalystSources3DService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystSources3DService_getPrototypeOf(t); } @@ -105270,7 +105686,7 @@ var FacilityAnalystSources3DService = /*#__PURE__*/function (_CommonServiceBase) } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'sources'); + me.url = Util_Util.urlPathAppend(me.url, 'sources'); jsonObject = { edgeID: params.edgeID, nodeID: params.nodeID, @@ -105287,7 +105703,7 @@ var FacilityAnalystSources3DService = /*#__PURE__*/function (_CommonServiceBase) } }]); }(CommonServiceBase); -;// ./src/common/iServer/FacilityAnalystTraceup3DParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystTraceup3DParameters.js function FacilityAnalystTraceup3DParameters_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystTraceup3DParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystTraceup3DParameters_typeof(o); } function FacilityAnalystTraceup3DParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystTraceup3DParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystTraceup3DParameters_toPropertyKey(o.key), o); } } @@ -105298,7 +105714,7 @@ function FacilityAnalystTraceup3DParameters_callSuper(t, o, e) { return o = Faci function FacilityAnalystTraceup3DParameters_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystTraceup3DParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystTraceup3DParameters_assertThisInitialized(t); } function FacilityAnalystTraceup3DParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystTraceup3DParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystTraceup3DParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystTraceup3DParameters_superPropGet(t, o, e, r) { var p = FacilityAnalystTraceup3DParameters_get(FacilityAnalystTraceup3DParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystTraceup3DParameters_superPropGet(t, e, o, r) { var p = FacilityAnalystTraceup3DParameters_get(FacilityAnalystTraceup3DParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystTraceup3DParameters_get() { return FacilityAnalystTraceup3DParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystTraceup3DParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystTraceup3DParameters_get.apply(null, arguments); } function FacilityAnalystTraceup3DParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystTraceup3DParameters_getPrototypeOf(t));); return t; } function FacilityAnalystTraceup3DParameters_getPrototypeOf(t) { return FacilityAnalystTraceup3DParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystTraceup3DParameters_getPrototypeOf(t); } @@ -105344,7 +105760,7 @@ var FacilityAnalystTraceup3DParameters = /*#__PURE__*/function (_FacilityAnalyst } }]); }(FacilityAnalyst3DParameters); -;// ./src/common/iServer/FacilityAnalystTraceup3DService.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystTraceup3DService.js function FacilityAnalystTraceup3DService_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystTraceup3DService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystTraceup3DService_typeof(o); } function FacilityAnalystTraceup3DService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystTraceup3DService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystTraceup3DService_toPropertyKey(o.key), o); } } @@ -105355,7 +105771,7 @@ function FacilityAnalystTraceup3DService_callSuper(t, o, e) { return o = Facilit function FacilityAnalystTraceup3DService_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystTraceup3DService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystTraceup3DService_assertThisInitialized(t); } function FacilityAnalystTraceup3DService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystTraceup3DService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystTraceup3DService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystTraceup3DService_superPropGet(t, o, e, r) { var p = FacilityAnalystTraceup3DService_get(FacilityAnalystTraceup3DService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystTraceup3DService_superPropGet(t, e, o, r) { var p = FacilityAnalystTraceup3DService_get(FacilityAnalystTraceup3DService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystTraceup3DService_get() { return FacilityAnalystTraceup3DService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystTraceup3DService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystTraceup3DService_get.apply(null, arguments); } function FacilityAnalystTraceup3DService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystTraceup3DService_getPrototypeOf(t));); return t; } function FacilityAnalystTraceup3DService_getPrototypeOf(t) { return FacilityAnalystTraceup3DService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystTraceup3DService_getPrototypeOf(t); } @@ -105417,7 +105833,7 @@ var FacilityAnalystTraceup3DService = /*#__PURE__*/function (_CommonServiceBase) } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'traceupresult'); + me.url = Util_Util.urlPathAppend(me.url, 'traceupresult'); jsonObject = { edgeID: params.edgeID, nodeID: params.nodeID, @@ -105434,7 +105850,7 @@ var FacilityAnalystTraceup3DService = /*#__PURE__*/function (_CommonServiceBase) } }]); }(CommonServiceBase); -;// ./src/common/iServer/FacilityAnalystTracedown3DParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystTracedown3DParameters.js function FacilityAnalystTracedown3DParameters_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystTracedown3DParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystTracedown3DParameters_typeof(o); } function FacilityAnalystTracedown3DParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystTracedown3DParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystTracedown3DParameters_toPropertyKey(o.key), o); } } @@ -105445,7 +105861,7 @@ function FacilityAnalystTracedown3DParameters_callSuper(t, o, e) { return o = Fa function FacilityAnalystTracedown3DParameters_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystTracedown3DParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystTracedown3DParameters_assertThisInitialized(t); } function FacilityAnalystTracedown3DParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystTracedown3DParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystTracedown3DParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystTracedown3DParameters_superPropGet(t, o, e, r) { var p = FacilityAnalystTracedown3DParameters_get(FacilityAnalystTracedown3DParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystTracedown3DParameters_superPropGet(t, e, o, r) { var p = FacilityAnalystTracedown3DParameters_get(FacilityAnalystTracedown3DParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystTracedown3DParameters_get() { return FacilityAnalystTracedown3DParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystTracedown3DParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystTracedown3DParameters_get.apply(null, arguments); } function FacilityAnalystTracedown3DParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystTracedown3DParameters_getPrototypeOf(t));); return t; } function FacilityAnalystTracedown3DParameters_getPrototypeOf(t) { return FacilityAnalystTracedown3DParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystTracedown3DParameters_getPrototypeOf(t); } @@ -105491,7 +105907,7 @@ var FacilityAnalystTracedown3DParameters = /*#__PURE__*/function (_FacilityAnaly } }]); }(FacilityAnalyst3DParameters); -;// ./src/common/iServer/FacilityAnalystTracedown3DService.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystTracedown3DService.js function FacilityAnalystTracedown3DService_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystTracedown3DService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystTracedown3DService_typeof(o); } function FacilityAnalystTracedown3DService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystTracedown3DService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystTracedown3DService_toPropertyKey(o.key), o); } } @@ -105502,7 +105918,7 @@ function FacilityAnalystTracedown3DService_callSuper(t, o, e) { return o = Facil function FacilityAnalystTracedown3DService_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystTracedown3DService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystTracedown3DService_assertThisInitialized(t); } function FacilityAnalystTracedown3DService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystTracedown3DService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystTracedown3DService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystTracedown3DService_superPropGet(t, o, e, r) { var p = FacilityAnalystTracedown3DService_get(FacilityAnalystTracedown3DService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystTracedown3DService_superPropGet(t, e, o, r) { var p = FacilityAnalystTracedown3DService_get(FacilityAnalystTracedown3DService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystTracedown3DService_get() { return FacilityAnalystTracedown3DService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystTracedown3DService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystTracedown3DService_get.apply(null, arguments); } function FacilityAnalystTracedown3DService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystTracedown3DService_getPrototypeOf(t));); return t; } function FacilityAnalystTracedown3DService_getPrototypeOf(t) { return FacilityAnalystTracedown3DService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystTracedown3DService_getPrototypeOf(t); } @@ -105564,7 +105980,7 @@ var FacilityAnalystTracedown3DService = /*#__PURE__*/function (_CommonServiceBas } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'tracedownresult'); + me.url = Util_Util.urlPathAppend(me.url, 'tracedownresult'); jsonObject = { edgeID: params.edgeID, nodeID: params.nodeID, @@ -105581,7 +105997,7 @@ var FacilityAnalystTracedown3DService = /*#__PURE__*/function (_CommonServiceBas } }]); }(CommonServiceBase); -;// ./src/common/iServer/FacilityAnalystUpstream3DParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystUpstream3DParameters.js function FacilityAnalystUpstream3DParameters_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystUpstream3DParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystUpstream3DParameters_typeof(o); } function FacilityAnalystUpstream3DParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystUpstream3DParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystUpstream3DParameters_toPropertyKey(o.key), o); } } @@ -105592,7 +106008,7 @@ function FacilityAnalystUpstream3DParameters_callSuper(t, o, e) { return o = Fac function FacilityAnalystUpstream3DParameters_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystUpstream3DParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystUpstream3DParameters_assertThisInitialized(t); } function FacilityAnalystUpstream3DParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystUpstream3DParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystUpstream3DParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystUpstream3DParameters_superPropGet(t, o, e, r) { var p = FacilityAnalystUpstream3DParameters_get(FacilityAnalystUpstream3DParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystUpstream3DParameters_superPropGet(t, e, o, r) { var p = FacilityAnalystUpstream3DParameters_get(FacilityAnalystUpstream3DParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystUpstream3DParameters_get() { return FacilityAnalystUpstream3DParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystUpstream3DParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystUpstream3DParameters_get.apply(null, arguments); } function FacilityAnalystUpstream3DParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystUpstream3DParameters_getPrototypeOf(t));); return t; } function FacilityAnalystUpstream3DParameters_getPrototypeOf(t) { return FacilityAnalystUpstream3DParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystUpstream3DParameters_getPrototypeOf(t); } @@ -105612,8 +106028,8 @@ function FacilityAnalystUpstream3DParameters_setPrototypeOf(t, e) { return Facil * @extends {FacilityAnalyst3DParameters} * @param {Object} options - 参数。 * @param {Array.} options.sourceNodeIDs - 指定的设施点 ID 数组。 - * @param {number} [options.edgeID] - 指定的弧段 ID。edgeID 与 nodeID 必须指定一个。 - * @param {number} [options.nodeID] - 指定的结点 ID。edgeID 与 edgeID 必须指定一个。 + * @param {number} [options.edgeID] - 三维设施网络分析中指定的弧段 ID,nodeID 与 edgeID 两者不能同时存在。 + * @param {number} [options.nodeID] - 三维设施网络分析中指定的节点 ID,nodeID 与 edgeID 两者不能同时存在。 * @param {boolean} [options.isUncertainDirectionValid=false] - 指定不确定流向是否有效。指定为 true,表示不确定流向有效,遇到不确定流向时分析继续进行; * 指定为 false,表示不确定流向无效,遇到不确定流向将停止在该方向上继续查找。 * @usage @@ -105625,7 +106041,7 @@ var FacilityAnalystUpstream3DParameters = /*#__PURE__*/function (_FacilityAnalys _this = FacilityAnalystUpstream3DParameters_callSuper(this, FacilityAnalystUpstream3DParameters, [options]); options = options || {}; _this.sourceNodeIDs = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.FacilityAnalystUpstream3DParameters"; return _this; } @@ -105643,7 +106059,7 @@ var FacilityAnalystUpstream3DParameters = /*#__PURE__*/function (_FacilityAnalys } }]); }(FacilityAnalyst3DParameters); -;// ./src/common/iServer/FacilityAnalystUpstream3DService.js +;// CONCATENATED MODULE: ./src/common/iServer/FacilityAnalystUpstream3DService.js function FacilityAnalystUpstream3DService_typeof(o) { "@babel/helpers - typeof"; return FacilityAnalystUpstream3DService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FacilityAnalystUpstream3DService_typeof(o); } function FacilityAnalystUpstream3DService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FacilityAnalystUpstream3DService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FacilityAnalystUpstream3DService_toPropertyKey(o.key), o); } } @@ -105654,7 +106070,7 @@ function FacilityAnalystUpstream3DService_callSuper(t, o, e) { return o = Facili function FacilityAnalystUpstream3DService_possibleConstructorReturn(t, e) { if (e && ("object" == FacilityAnalystUpstream3DService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return FacilityAnalystUpstream3DService_assertThisInitialized(t); } function FacilityAnalystUpstream3DService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function FacilityAnalystUpstream3DService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (FacilityAnalystUpstream3DService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function FacilityAnalystUpstream3DService_superPropGet(t, o, e, r) { var p = FacilityAnalystUpstream3DService_get(FacilityAnalystUpstream3DService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function FacilityAnalystUpstream3DService_superPropGet(t, e, o, r) { var p = FacilityAnalystUpstream3DService_get(FacilityAnalystUpstream3DService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function FacilityAnalystUpstream3DService_get() { return FacilityAnalystUpstream3DService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = FacilityAnalystUpstream3DService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, FacilityAnalystUpstream3DService_get.apply(null, arguments); } function FacilityAnalystUpstream3DService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = FacilityAnalystUpstream3DService_getPrototypeOf(t));); return t; } function FacilityAnalystUpstream3DService_getPrototypeOf(t) { return FacilityAnalystUpstream3DService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, FacilityAnalystUpstream3DService_getPrototypeOf(t); } @@ -105716,7 +106132,7 @@ var FacilityAnalystUpstream3DService = /*#__PURE__*/function (_CommonServiceBase } var me = this, jsonObject; - me.url = Util.urlPathAppend(me.url, 'upstreamcirticalfaclilities'); + me.url = Util_Util.urlPathAppend(me.url, 'upstreamcirticalfaclilities'); jsonObject = { sourceNodeIDs: params.sourceNodeIDs, edgeID: params.edgeID, @@ -105733,7 +106149,7 @@ var FacilityAnalystUpstream3DService = /*#__PURE__*/function (_CommonServiceBase } }]); }(CommonServiceBase); -;// ./src/common/iServer/NetworkAnalyst3DService.js +;// CONCATENATED MODULE: ./src/common/iServer/NetworkAnalyst3DService.js function NetworkAnalyst3DService_typeof(o) { "@babel/helpers - typeof"; return NetworkAnalyst3DService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, NetworkAnalyst3DService_typeof(o); } function NetworkAnalyst3DService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function NetworkAnalyst3DService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, NetworkAnalyst3DService_toPropertyKey(o.key), o); } } @@ -105881,7 +106297,7 @@ var NetworkAnalyst3DService_NetworkAnalyst3DService = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/NetworkAnalyst3DService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/NetworkAnalyst3DService.js function services_NetworkAnalyst3DService_typeof(o) { "@babel/helpers - typeof"; return services_NetworkAnalyst3DService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_NetworkAnalyst3DService_typeof(o); } function services_NetworkAnalyst3DService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_NetworkAnalyst3DService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_NetworkAnalyst3DService_toPropertyKey(o.key), o); } } @@ -105912,9 +106328,7 @@ function NetworkAnalyst3DService_setPrototypeOf(t, e) { return NetworkAnalyst3DS * .sinksFacilityAnalyst(params,function(result){ * //doSomething * }) - * @param {string} url - 服务地址。请求网络分析服务,URL 应为:
- * http://{服务器地址}:{服务端口号}/iserver/services/{网络分析服务名}/rest/networkanalyst/{网络数据集@数据源}。 - * 例如:"http://localhost:8090/iserver/services/components-rest/rest/networkanalyst/RoadNet@Changchun"。 + * @param {string} url - 三维网络分析服务地址。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -106003,7 +106417,7 @@ var NetworkAnalyst3DService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/ProcessingServiceBase.js +;// CONCATENATED MODULE: ./src/common/iServer/ProcessingServiceBase.js function ProcessingServiceBase_typeof(o) { "@babel/helpers - typeof"; return ProcessingServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ProcessingServiceBase_typeof(o); } function ProcessingServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ProcessingServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ProcessingServiceBase_toPropertyKey(o.key), o); } } @@ -106014,7 +106428,7 @@ function ProcessingServiceBase_callSuper(t, o, e) { return o = ProcessingService function ProcessingServiceBase_possibleConstructorReturn(t, e) { if (e && ("object" == ProcessingServiceBase_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ProcessingServiceBase_assertThisInitialized(t); } function ProcessingServiceBase_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ProcessingServiceBase_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ProcessingServiceBase_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ProcessingServiceBase_superPropGet(t, o, e, r) { var p = ProcessingServiceBase_get(ProcessingServiceBase_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ProcessingServiceBase_superPropGet(t, e, o, r) { var p = ProcessingServiceBase_get(ProcessingServiceBase_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ProcessingServiceBase_get() { return ProcessingServiceBase_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ProcessingServiceBase_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ProcessingServiceBase_get.apply(null, arguments); } function ProcessingServiceBase_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ProcessingServiceBase_getPrototypeOf(t));); return t; } function ProcessingServiceBase_getPrototypeOf(t) { return ProcessingServiceBase_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ProcessingServiceBase_getPrototypeOf(t); } @@ -106155,7 +106569,7 @@ var ProcessingServiceBase = /*#__PURE__*/function (_CommonServiceBase) { }, { key: "transformResult", value: function transformResult(result, seconds, callback, processRunningCallback) { - result = Util.transformResult(result); + result = Util_Util.transformResult(result); seconds = seconds || 1000; var me = this; if (result) { @@ -106213,7 +106627,7 @@ var ProcessingServiceBase = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/DatasourceConnectionInfo.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasourceConnectionInfo.js function DatasourceConnectionInfo_typeof(o) { "@babel/helpers - typeof"; return DatasourceConnectionInfo_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasourceConnectionInfo_typeof(o); } function DatasourceConnectionInfo_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasourceConnectionInfo_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasourceConnectionInfo_toPropertyKey(o.key), o); } } @@ -106330,7 +106744,7 @@ var DatasourceConnectionInfo = /*#__PURE__*/function () { */ this.user = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.DatasourceConnectionInfo"; } @@ -106357,7 +106771,7 @@ var DatasourceConnectionInfo = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/OutputSetting.js +;// CONCATENATED MODULE: ./src/common/iServer/OutputSetting.js function OutputSetting_typeof(o) { "@babel/helpers - typeof"; return OutputSetting_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OutputSetting_typeof(o); } function OutputSetting_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OutputSetting_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OutputSetting_toPropertyKey(o.key), o); } } @@ -106409,7 +106823,7 @@ var OutputSetting = /*#__PURE__*/function () { * @description 分布式分析的分析结果输出路径。 */ this.outputPath = ""; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.OutputSetting"; } @@ -106431,7 +106845,7 @@ var OutputSetting = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/MappingParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/MappingParameters.js function MappingParameters_typeof(o) { "@babel/helpers - typeof"; return MappingParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MappingParameters_typeof(o); } function MappingParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MappingParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MappingParameters_toPropertyKey(o.key), o); } } @@ -106489,7 +106903,7 @@ var MappingParameters = /*#__PURE__*/function () { * @description 专题图颜色渐变模式。 */ this.colorGradientType = ColorGradientType.YELLOW_RED; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.MappingParameters"; } @@ -106517,7 +106931,7 @@ var MappingParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/KernelDensityJobParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/KernelDensityJobParameter.js function KernelDensityJobParameter_typeof(o) { "@babel/helpers - typeof"; return KernelDensityJobParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, KernelDensityJobParameter_typeof(o); } function KernelDensityJobParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function KernelDensityJobParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, KernelDensityJobParameter_toPropertyKey(o.key), o); } } @@ -106539,13 +106953,13 @@ function KernelDensityJobParameter_toPrimitive(t, r) { if ("object" != KernelDen * @classdesc 此类用于设置核密度分析的数据集、分析范围、分析方法、权重、影响半径、分辨率、分析单位等参数, * 还可以对分析结果的输出参数、可视化参数进行一系列设置。 * @param {Object} options - 参数。 - * @param {string} options.datasetName - 数据集名称。 + * @param {string} options.datasetName - 进行核密度分析的点数据集或线数据集。 * @param {string} options.fields - 权重索引。 - * @param {ModuleBounds} [options.query] - 缓冲区分析范围(默认为全图范围)。 - * @param {number} [options.resolution=80] - 分辨率。 - * @param {number} [options.method=0] - 密度分析方法。0 表示简单密度分析,1 表示核密度分析。 - * @param {number} [options.meshType=0] - 密度分析类型。0 表示四边形网格,1 表示六边形网格。 - * @param {number} [options.radius=300] - 分析的影响半径。 + * @param {ModuleBounds} [options.query] - 核密度分析范围,默认为全图范围。 + * @param {number} [options.resolution=80] - 核密度分析结果栅格数据的分辨率,即单个像元所对应的地面面积大小,单位与数据集单位一致。 + * @param {number} [options.method=0] - 核密度分析方法。0 表示简单密度分析,1 表示核密度分析。 + * @param {number} [options.meshType=0] - 核密度分析类型。0 表示四边形网格,1 表示六边形网格。 + * @param {number} [options.radius=300] - 核密度分析的影响半径。 * @param {AnalystSizeUnit} [options.meshSizeUnit=AnalystSizeUnit.METER] - 网格大小单位。 * @param {AnalystSizeUnit} [options.radiusUnit=AnalystSizeUnit.METER] - 搜索半径单位。 * @param {AnalystAreaUnit} [options.areaUnit=AnalystAreaUnit.SQUAREMILE] - 面积单位。 @@ -106561,7 +106975,7 @@ var KernelDensityJobParameter = /*#__PURE__*/function () { } /** * @member {string} KernelDensityJobParameter.prototype.datasetName - * @description 数据集名称。 + * @description 进行核密度分析的点数据集或线数据集。 */ this.datasetName = ""; @@ -106630,7 +107044,7 @@ var KernelDensityJobParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.KernelDensityJobParameter"; } @@ -106696,7 +107110,7 @@ var KernelDensityJobParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/KernelDensityJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/KernelDensityJobsService.js function KernelDensityJobsService_typeof(o) { "@babel/helpers - typeof"; return KernelDensityJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, KernelDensityJobsService_typeof(o); } function KernelDensityJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function KernelDensityJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, KernelDensityJobsService_toPropertyKey(o.key), o); } } @@ -106707,7 +107121,7 @@ function KernelDensityJobsService_callSuper(t, o, e) { return o = KernelDensityJ function KernelDensityJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == KernelDensityJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return KernelDensityJobsService_assertThisInitialized(t); } function KernelDensityJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function KernelDensityJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (KernelDensityJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function KernelDensityJobsService_superPropGet(t, o, e, r) { var p = KernelDensityJobsService_get(KernelDensityJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function KernelDensityJobsService_superPropGet(t, e, o, r) { var p = KernelDensityJobsService_get(KernelDensityJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function KernelDensityJobsService_get() { return KernelDensityJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = KernelDensityJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, KernelDensityJobsService_get.apply(null, arguments); } function KernelDensityJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = KernelDensityJobsService_getPrototypeOf(t));); return t; } function KernelDensityJobsService_getPrototypeOf(t) { return KernelDensityJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, KernelDensityJobsService_getPrototypeOf(t); } @@ -106741,7 +107155,7 @@ var KernelDensityJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { var _this; KernelDensityJobsService_classCallCheck(this, KernelDensityJobsService); _this = KernelDensityJobsService_callSuper(this, KernelDensityJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/density'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/density'); _this.CLASS_NAME = "SuperMap.KernelDensityJobsService"; return _this; } @@ -106779,7 +107193,7 @@ var KernelDensityJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { }, { key: "getKernelDensityJob", value: function getKernelDensityJob(id, callback) { - return KernelDensityJobsService_superPropGet(KernelDensityJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return KernelDensityJobsService_superPropGet(KernelDensityJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -106798,7 +107212,7 @@ var KernelDensityJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/SingleObjectQueryJobsParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/SingleObjectQueryJobsParameter.js function SingleObjectQueryJobsParameter_typeof(o) { "@babel/helpers - typeof"; return SingleObjectQueryJobsParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SingleObjectQueryJobsParameter_typeof(o); } function SingleObjectQueryJobsParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SingleObjectQueryJobsParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SingleObjectQueryJobsParameter_toPropertyKey(o.key), o); } } @@ -106868,7 +107282,7 @@ var SingleObjectQueryJobsParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.SingleObjectQueryJobsParameter"; } @@ -106923,7 +107337,7 @@ var SingleObjectQueryJobsParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SingleObjectQueryJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/SingleObjectQueryJobsService.js function SingleObjectQueryJobsService_typeof(o) { "@babel/helpers - typeof"; return SingleObjectQueryJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SingleObjectQueryJobsService_typeof(o); } function SingleObjectQueryJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SingleObjectQueryJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SingleObjectQueryJobsService_toPropertyKey(o.key), o); } } @@ -106934,7 +107348,7 @@ function SingleObjectQueryJobsService_callSuper(t, o, e) { return o = SingleObje function SingleObjectQueryJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == SingleObjectQueryJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SingleObjectQueryJobsService_assertThisInitialized(t); } function SingleObjectQueryJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SingleObjectQueryJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SingleObjectQueryJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SingleObjectQueryJobsService_superPropGet(t, o, e, r) { var p = SingleObjectQueryJobsService_get(SingleObjectQueryJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SingleObjectQueryJobsService_superPropGet(t, e, o, r) { var p = SingleObjectQueryJobsService_get(SingleObjectQueryJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SingleObjectQueryJobsService_get() { return SingleObjectQueryJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SingleObjectQueryJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SingleObjectQueryJobsService_get.apply(null, arguments); } function SingleObjectQueryJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SingleObjectQueryJobsService_getPrototypeOf(t));); return t; } function SingleObjectQueryJobsService_getPrototypeOf(t) { return SingleObjectQueryJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SingleObjectQueryJobsService_getPrototypeOf(t); } @@ -106965,7 +107379,7 @@ var SingleObjectQueryJobsService = /*#__PURE__*/function (_ProcessingServiceBas) var _this; SingleObjectQueryJobsService_classCallCheck(this, SingleObjectQueryJobsService); _this = SingleObjectQueryJobsService_callSuper(this, SingleObjectQueryJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/query'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/query'); _this.CLASS_NAME = 'SuperMap.SingleObjectQueryJobsService'; return _this; } @@ -107002,7 +107416,7 @@ var SingleObjectQueryJobsService = /*#__PURE__*/function (_ProcessingServiceBas) }, { key: "getQueryJob", value: function getQueryJob(id, callback) { - return SingleObjectQueryJobsService_superPropGet(SingleObjectQueryJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return SingleObjectQueryJobsService_superPropGet(SingleObjectQueryJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -107020,7 +107434,7 @@ var SingleObjectQueryJobsService = /*#__PURE__*/function (_ProcessingServiceBas) } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/SummaryMeshJobParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/SummaryMeshJobParameter.js function SummaryMeshJobParameter_typeof(o) { "@babel/helpers - typeof"; return SummaryMeshJobParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SummaryMeshJobParameter_typeof(o); } function SummaryMeshJobParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SummaryMeshJobParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SummaryMeshJobParameter_toPropertyKey(o.key), o); } } @@ -107042,14 +107456,14 @@ function SummaryMeshJobParameter_toPrimitive(t, r) { if ("object" != SummaryMesh * @classdesc 点聚合分析任务参数类。此类用于设置点聚合分析的数据集、分析范围、权重索引、分析模式、分析类型、聚合类型等参数, * 还可以对分析结果的输出参数、可视化参数进行一系列设置。 * @param {Object} options - 参数。 - * @param {string} options.datasetName - 数据集名称。 - * @param {string} [options.regionDataset ] - 聚合面数据集(聚合类型为多边形聚合时使用的参数)。 - * @param {ModuleBounds} [options.query] - 聚合分析范围(默认为全图范围)。 - * @param {number} options.fields - 权重索引。选填。仅支持系统字段以外的整形、长整形、浮点型的字段。 + * @param {string} options.datasetName - 数据集名称,只支持点数据集。 + * @param {string} [options.regionDataset ] - 指定输入数据需要聚合到的面数据集,比如行政区划面等。 + * @param {ModuleBounds} [options.query] - 聚合分析范围,指定范围内的点参与聚合分析,默认为输入数据集的全幅范围。 + * @param {number} [options.fields] - 权重索引。指定待分析的点的权重值所在的字段名称集合。仅支持系统字段以外的整形、长整形、浮点型的字段。可以传递多个表示权重的字段索引,以逗号分隔,相当于对待分析的点进行多次操作,每次对应不同的权重值。 * @param {number} [options.resolution=100] - 分辨率。 * @param {StatisticAnalystMode} [options.statisticModes=StatisticAnalystMode.AVERAGE] - 统计模式,“统计模式”个数应与“权重值字段”个数一致。 * @param {number} [options.meshType=0] - 聚合分析类型(聚合类型为网格面聚合时使用的参数)。0 表示四边形网格,1 表示六边形网格。 - * @param {SummaryType} [options.type=SummaryType.SUMMARYMESH] - 聚合类型。 + * @param {SummaryType} [options.type=SummaryType.SUMMARYMESH] - 聚合类型。指定聚合类型为网格面聚合,还是多边形聚合。 * @param {OutputSetting} [options.output] - 输出参数设置。 * @param {MappingParameters} [options.mappingParameters] - 分析后结果可视化的参数类。 * @usage @@ -107062,13 +107476,13 @@ var SummaryMeshJobParameter = /*#__PURE__*/function () { } /** * @member {string} SummaryMeshJobParameter.prototype.datasetName - * @description 数据集名称。 + * @description 数据集名称,只支持点数据集。 */ this.datasetName = ""; /** * @member {string} SummaryMeshJobParameter.prototype.regionDataset - * @description 聚合面数据集(聚合类型为多边形聚合时使用的参数)。 + * @description 指定输入数据需要聚合到的面数据集,比如行政区划面等。 */ this.regionDataset = ""; @@ -107119,7 +107533,7 @@ var SummaryMeshJobParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.SummaryMeshJobParameter"; } @@ -107197,7 +107611,7 @@ var SummaryMeshJobParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SummaryMeshJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/SummaryMeshJobsService.js function SummaryMeshJobsService_typeof(o) { "@babel/helpers - typeof"; return SummaryMeshJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SummaryMeshJobsService_typeof(o); } function SummaryMeshJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SummaryMeshJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SummaryMeshJobsService_toPropertyKey(o.key), o); } } @@ -107208,7 +107622,7 @@ function SummaryMeshJobsService_callSuper(t, o, e) { return o = SummaryMeshJobsS function SummaryMeshJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == SummaryMeshJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SummaryMeshJobsService_assertThisInitialized(t); } function SummaryMeshJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SummaryMeshJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SummaryMeshJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SummaryMeshJobsService_superPropGet(t, o, e, r) { var p = SummaryMeshJobsService_get(SummaryMeshJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SummaryMeshJobsService_superPropGet(t, e, o, r) { var p = SummaryMeshJobsService_get(SummaryMeshJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SummaryMeshJobsService_get() { return SummaryMeshJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SummaryMeshJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SummaryMeshJobsService_get.apply(null, arguments); } function SummaryMeshJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SummaryMeshJobsService_getPrototypeOf(t));); return t; } function SummaryMeshJobsService_getPrototypeOf(t) { return SummaryMeshJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SummaryMeshJobsService_getPrototypeOf(t); } @@ -107243,7 +107657,7 @@ var SummaryMeshJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { var _this; SummaryMeshJobsService_classCallCheck(this, SummaryMeshJobsService); _this = SummaryMeshJobsService_callSuper(this, SummaryMeshJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/aggregatepoints'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/aggregatepoints'); _this.CLASS_NAME = 'SuperMap.SummaryMeshJobsService'; return _this; } @@ -107280,7 +107694,7 @@ var SummaryMeshJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { }, { key: "getSummaryMeshJob", value: function getSummaryMeshJob(id, callback) { - return SummaryMeshJobsService_superPropGet(SummaryMeshJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return SummaryMeshJobsService_superPropGet(SummaryMeshJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -107298,7 +107712,7 @@ var SummaryMeshJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/VectorClipJobsParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/VectorClipJobsParameter.js function VectorClipJobsParameter_typeof(o) { "@babel/helpers - typeof"; return VectorClipJobsParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VectorClipJobsParameter_typeof(o); } function VectorClipJobsParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function VectorClipJobsParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, VectorClipJobsParameter_toPropertyKey(o.key), o); } } @@ -107320,10 +107734,10 @@ function VectorClipJobsParameter_toPrimitive(t, r) { if ("object" != VectorClipJ * @classdesc 矢量裁剪分析任务参数类。此类用于设置矢量裁剪分析的数据集、裁剪分析模式、裁剪几何对象等参数, * 还可以对分析结果的输出参数、可视化参数进行一系列设置。 * @param {Object} options - 参数。 - * @param {string} options.datasetName - 数据集名称。 - * @param {string} options.datasetVectorClip - 裁剪对象数据集。 - * @param {ClipAnalystMode} [options.mode=ClipAnalystMode.CLIP] - 裁剪分析模式。 - * @param {string} [options.geometryClip] - 裁剪几何对象。 + * @param {string} options.datasetName - 待裁剪数据集的名称。 + * @param {string} options.datasetVectorClip - 当采用数据集进行裁剪时,需指定用于裁剪的裁剪对象数据集,仅支持面数据集,若数据集中有多个对象时,默认选择第一个对象。 + * @param {ClipAnalystMode} [options.mode=ClipAnalystMode.CLIP] - 裁剪分析模式,包含 CLIP 内部裁剪,INTERSECT 外部裁剪。 + * @param {string} [options.geometryClip] - 当采用几何对象进行裁剪时,需指定用于裁剪的几何对象。 * @param {OutputSetting} [options.output] - 输出参数设置。 * @param {MappingParameters} [options.mappingParameters] - 分析后结果可视化的参数类。 * @usage @@ -107335,25 +107749,25 @@ var VectorClipJobsParameter = /*#__PURE__*/function () { /** * @member {string} VectorClipJobsParameter.prototype.datasetName - * @description 数据集名称。 + * @description 待裁剪数据集的名称。 */ this.datasetName = ""; /** * @member {string} VectorClipJobsParameter.prototype.datasetVectorClip - * @description 裁剪对象数据集。 + * @description 当采用数据集进行裁剪时,需指定用于裁剪的裁剪对象数据集,仅支持面数据集,若数据集中有多个对象时,默认选择第一个对象。 */ this.datasetVectorClip = ""; /** * @member {string} VectorClipJobsParameter.prototype.geometryClip - * @description 裁剪几何对象。 + * @description 当采用几何对象进行裁剪时,需指定用于裁剪的几何对象。 */ this.geometryClip = ""; /** * @member {ClipAnalystMode} [VectorClipJobsParameter.prototype.mode=ClipAnalystMode.CLIP] - * @description 裁剪分析模式。 + * @description 裁剪分析模式,包含 CLIP 内部裁剪,INTERSECT 外部裁剪。 */ this.mode = ClipAnalystMode.CLIP; @@ -107368,7 +107782,7 @@ var VectorClipJobsParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.VectorClipJobsParameter"; } @@ -107423,7 +107837,7 @@ var VectorClipJobsParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/VectorClipJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/VectorClipJobsService.js function VectorClipJobsService_typeof(o) { "@babel/helpers - typeof"; return VectorClipJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VectorClipJobsService_typeof(o); } function VectorClipJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function VectorClipJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, VectorClipJobsService_toPropertyKey(o.key), o); } } @@ -107434,7 +107848,7 @@ function VectorClipJobsService_callSuper(t, o, e) { return o = VectorClipJobsSer function VectorClipJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == VectorClipJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return VectorClipJobsService_assertThisInitialized(t); } function VectorClipJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function VectorClipJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (VectorClipJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function VectorClipJobsService_superPropGet(t, o, e, r) { var p = VectorClipJobsService_get(VectorClipJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function VectorClipJobsService_superPropGet(t, e, o, r) { var p = VectorClipJobsService_get(VectorClipJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function VectorClipJobsService_get() { return VectorClipJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = VectorClipJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, VectorClipJobsService_get.apply(null, arguments); } function VectorClipJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = VectorClipJobsService_getPrototypeOf(t));); return t; } function VectorClipJobsService_getPrototypeOf(t) { return VectorClipJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, VectorClipJobsService_getPrototypeOf(t); } @@ -107466,7 +107880,7 @@ var VectorClipJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { var _this; VectorClipJobsService_classCallCheck(this, VectorClipJobsService); _this = VectorClipJobsService_callSuper(this, VectorClipJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/vectorclip'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/vectorclip'); _this.CLASS_NAME = 'SuperMap.VectorClipJobsService'; return _this; } @@ -107503,7 +107917,7 @@ var VectorClipJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { }, { key: "getVectorClipJob", value: function getVectorClipJob(id, callback) { - return VectorClipJobsService_superPropGet(VectorClipJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return VectorClipJobsService_superPropGet(VectorClipJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -107522,7 +107936,7 @@ var VectorClipJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/OverlayGeoJobParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/OverlayGeoJobParameter.js function OverlayGeoJobParameter_typeof(o) { "@babel/helpers - typeof"; return OverlayGeoJobParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OverlayGeoJobParameter_typeof(o); } function OverlayGeoJobParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OverlayGeoJobParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OverlayGeoJobParameter_toPropertyKey(o.key), o); } } @@ -107598,7 +108012,7 @@ var OverlayGeoJobParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.OverlayGeoJobParameter"; } @@ -107654,7 +108068,7 @@ var OverlayGeoJobParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/OverlayGeoJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/OverlayGeoJobsService.js function OverlayGeoJobsService_typeof(o) { "@babel/helpers - typeof"; return OverlayGeoJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OverlayGeoJobsService_typeof(o); } function OverlayGeoJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OverlayGeoJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OverlayGeoJobsService_toPropertyKey(o.key), o); } } @@ -107665,7 +108079,7 @@ function OverlayGeoJobsService_callSuper(t, o, e) { return o = OverlayGeoJobsSer function OverlayGeoJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == OverlayGeoJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return OverlayGeoJobsService_assertThisInitialized(t); } function OverlayGeoJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function OverlayGeoJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (OverlayGeoJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function OverlayGeoJobsService_superPropGet(t, o, e, r) { var p = OverlayGeoJobsService_get(OverlayGeoJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function OverlayGeoJobsService_superPropGet(t, e, o, r) { var p = OverlayGeoJobsService_get(OverlayGeoJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function OverlayGeoJobsService_get() { return OverlayGeoJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = OverlayGeoJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, OverlayGeoJobsService_get.apply(null, arguments); } function OverlayGeoJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = OverlayGeoJobsService_getPrototypeOf(t));); return t; } function OverlayGeoJobsService_getPrototypeOf(t) { return OverlayGeoJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, OverlayGeoJobsService_getPrototypeOf(t); } @@ -107699,7 +108113,7 @@ var OverlayGeoJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { var _this; OverlayGeoJobsService_classCallCheck(this, OverlayGeoJobsService); _this = OverlayGeoJobsService_callSuper(this, OverlayGeoJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/overlay'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/overlay'); _this.CLASS_NAME = 'SuperMap.OverlayGeoJobsService'; return _this; } @@ -107736,7 +108150,7 @@ var OverlayGeoJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { }, { key: "getOverlayGeoJob", value: function getOverlayGeoJob(id, callback) { - return OverlayGeoJobsService_superPropGet(OverlayGeoJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return OverlayGeoJobsService_superPropGet(OverlayGeoJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -107754,7 +108168,7 @@ var OverlayGeoJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/SummaryRegionJobParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/SummaryRegionJobParameter.js function SummaryRegionJobParameter_typeof(o) { "@babel/helpers - typeof"; return SummaryRegionJobParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SummaryRegionJobParameter_typeof(o); } function SummaryRegionJobParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SummaryRegionJobParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SummaryRegionJobParameter_toPropertyKey(o.key), o); } } @@ -107776,20 +108190,20 @@ function SummaryRegionJobParameter_toPrimitive(t, r) { if ("object" != SummaryRe * @classdesc 区域汇总分析任务参数类。此类用于设置区域汇总分析的数据集、分析范围、标准属性字段、 * 权重字段、统计方式、汇总类型、网格类型和大小等参数,还可以对分析结果的输出参数、可视化参数进行一系列设置。 * @param {Object} options - 参数。 - * @param {string} options.datasetName - 数据集名称。 - * @param {string} [options.regionDataset] - 汇总数据集(多边形汇总时用到的参数)。 - * @param {ModuleBounds} [options.query] - 缓冲区分析范围(默认为全图范围)。 + * @param {string} options.datasetName - 数据集名称,只支持线数据集和面数据集。 + * @param {string} [options.regionDataset] - 汇总数据集,在多边形汇总时需指定的参数,只支持面数据集。 + * @param {ModuleBounds} [options.query] - 区域汇总分析范围,默认为全图范围。 * @param {string} [options.standardFields] - 标准属性字段名称。 * @param {string} [options.weightedFields] - 权重字段名称。 * @param {StatisticAnalystMode} [options.standardStatisticModes] - 标准属性字段的统计模式。standardSummaryFields 为 true 时必填。 * @param {StatisticAnalystMode} [options.weightedStatisticModes] - 权重字段的统计模式。weightedSummaryFields 为 true 时必填。 - * @param {boolean} [options.sumShape=true] - 是否统计长度或面积。 - * @param {boolean} [options.standardSummaryFields=false] - 是否以标准属性字段统计。 - * @param {boolean} [options.weightedSummaryFields=false] - 是否以权重字段统计。 - * @param {number} [options.resolution=100] - 网格大小。 - * @param {number} [options.meshType=0] - 网格面汇总类型。0 表示四边形网格,1 表示六边形网格。 + * @param {boolean} [options.sumShape=true] - 如果源数据集是线数据集,则同时统计线的长度作为统计结果的一部分;如果源数据集是面数据集,则同时统计面的面积作为统计结果的一部分。 + * @param {boolean} [options.standardSummaryFields=false] - 是否以标准属性字段统计。即对通过网格单元内的线或面对象的原有属性字段信息进行统计。 + * @param {boolean} [options.weightedSummaryFields=false] - 是否以权重字段统计。即对通过网格单元内的线或面对象与网格单元相交部分的对象属性信息进行统计,相交部分的属性信息由标准属性字段的值加权计算得出。 + * @param {number} [options.resolution=100] - 指定网格大小,当 type 为网格面汇总时必选,对于四边形网格为网格的边长;对于六边形网格为六边形顶点到中心点的距离。 + * @param {number} [options.meshType=0] - 指定网格面汇总类型,当 type 为网格面汇总时必选,0 表示四边形网格,1 表示六边形网格。 * @param {AnalystSizeUnit} [options.meshSizeUnit=AnalystSizeUnit.METER] - 网格大小单位。 - * @param {SummaryType} [options.type=SummaryType.SUMMARYMESH] - 汇总类型。 + * @param {SummaryType} [options.type=SummaryType.SUMMARYMESH] - 区域汇总分析的类型,包括 SUMMARYMESH 网格面汇总,SUMMARYREGION 多边形汇总。 * @param {OutputSetting} [options.output] - 输出参数设置。 * @param {MappingParameters} [options.mappingParameters] - 分析后结果可视化的参数类。 * @usage @@ -107809,7 +108223,7 @@ var SummaryRegionJobParameter = /*#__PURE__*/function () { /** * @member {string} SummaryRegionJobParameter.prototype.regionDataset - * @description 汇总数据集(多边形汇总时用到的参数)。 + * @description 汇总数据集,在多边形汇总时需指定的参数,只支持面数据集。 */ this.regionDataset = ""; @@ -107827,7 +108241,7 @@ var SummaryRegionJobParameter = /*#__PURE__*/function () { /** * @member {boolean} [SummaryRegionJobParameter.prototype.standardSummaryFields=false] - * @description 是否以标准属性字段统计。 + * @description 是否以标准属性字段统计。即对通过网格单元内的线或面对象的原有属性字段信息进行统计。 */ this.standardSummaryFields = false; @@ -107845,7 +108259,7 @@ var SummaryRegionJobParameter = /*#__PURE__*/function () { /** * @member {boolean} [SummaryRegionJobParameter.prototype.weightedSummaryFields=false] - * @description 是否以权重字段统计。 + * @description 是否以权重字段统计。即对通过网格单元内的线或面对象与网格单元相交部分的对象属性信息进行统计,相交部分的属性信息由标准属性字段的值加权计算得出。 */ this.weightedSummaryFields = false; @@ -107863,13 +108277,13 @@ var SummaryRegionJobParameter = /*#__PURE__*/function () { /** * @member {number} [SummaryRegionJobParameter.prototype.meshType=0] - * @description 网格面汇总类型。0 表示四边形网格,1 表示六边形网格。 + * @description 指定网格面汇总类型,当 type 为网格面汇总时必选,0 表示四边形网格,1 表示六边形网格。 */ this.meshType = 0; /** * @member {number} [SummaryRegionJobParameter.prototype.resolution=100] - * @description 网格大小。 + * @description 指定网格大小,当 type 为网格面汇总时必选,对于四边形网格为网格的边长;对于六边形网格为六边形顶点到中心点的距离。 */ this.resolution = 100; @@ -107881,7 +108295,7 @@ var SummaryRegionJobParameter = /*#__PURE__*/function () { /** * @member {SummaryType} [SummaryRegionJobParameter.prototype.type=SummaryType.SUMMARYMESH] - * @description 汇总类型。 + * @description 区域汇总分析的类型,包括 SUMMARYMESH 网格面汇总,SUMMARYREGION 多边形汇总。 */ this.type = SummaryType.SUMMARYMESH; @@ -107896,7 +108310,7 @@ var SummaryRegionJobParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.SummaryRegionJobParameter"; } @@ -107975,7 +108389,7 @@ var SummaryRegionJobParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SummaryRegionJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/SummaryRegionJobsService.js function SummaryRegionJobsService_typeof(o) { "@babel/helpers - typeof"; return SummaryRegionJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SummaryRegionJobsService_typeof(o); } function SummaryRegionJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SummaryRegionJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SummaryRegionJobsService_toPropertyKey(o.key), o); } } @@ -107986,7 +108400,7 @@ function SummaryRegionJobsService_callSuper(t, o, e) { return o = SummaryRegionJ function SummaryRegionJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == SummaryRegionJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SummaryRegionJobsService_assertThisInitialized(t); } function SummaryRegionJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SummaryRegionJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SummaryRegionJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SummaryRegionJobsService_superPropGet(t, o, e, r) { var p = SummaryRegionJobsService_get(SummaryRegionJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SummaryRegionJobsService_superPropGet(t, e, o, r) { var p = SummaryRegionJobsService_get(SummaryRegionJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SummaryRegionJobsService_get() { return SummaryRegionJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SummaryRegionJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SummaryRegionJobsService_get.apply(null, arguments); } function SummaryRegionJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SummaryRegionJobsService_getPrototypeOf(t));); return t; } function SummaryRegionJobsService_getPrototypeOf(t) { return SummaryRegionJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SummaryRegionJobsService_getPrototypeOf(t); } @@ -108020,7 +108434,7 @@ var SummaryRegionJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { var _this; SummaryRegionJobsService_classCallCheck(this, SummaryRegionJobsService); _this = SummaryRegionJobsService_callSuper(this, SummaryRegionJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/summaryregion'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/summaryregion'); _this.CLASS_NAME = 'SuperMap.SummaryRegionJobsService'; return _this; } @@ -108057,7 +108471,7 @@ var SummaryRegionJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { }, { key: "getSummaryRegionJob", value: function getSummaryRegionJob(id, callback) { - return SummaryRegionJobsService_superPropGet(SummaryRegionJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return SummaryRegionJobsService_superPropGet(SummaryRegionJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -108075,7 +108489,7 @@ var SummaryRegionJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/BuffersAnalystJobsParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/BuffersAnalystJobsParameter.js function BuffersAnalystJobsParameter_typeof(o) { "@babel/helpers - typeof"; return BuffersAnalystJobsParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BuffersAnalystJobsParameter_typeof(o); } function BuffersAnalystJobsParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BuffersAnalystJobsParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BuffersAnalystJobsParameter_toPropertyKey(o.key), o); } } @@ -108098,7 +108512,7 @@ function BuffersAnalystJobsParameter_toPrimitive(t, r) { if ("object" != Buffers * 还可以对分析结果的输出参数、可视化参数进行一系列设置。 * @param {Object} options - 参数。 * @param {string} options.datasetName - 数据集名称。 - * @param {ModuleBounds} [options.bounds] - 缓冲区分析范围(默认为全图范围)。 + * @param {ModuleBounds} [options.bounds] - 缓冲区分析范围,默认为全图范围。 * @param {string} [options.distance='15'] - 缓冲距离,或缓冲区半径。 * @param {string} [options.distanceField='pickup_latitude'] - 缓冲区分析距离字段。 * @param {AnalystSizeUnit} [options.distanceUnit=AnalystSizeUnit.METER] - 缓冲距离单位。 @@ -108159,7 +108573,7 @@ var BuffersAnalystJobsParameter = /*#__PURE__*/function () { if (!options) { return this; } - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = 'SuperMap.BuffersAnalystJobsParameter'; } @@ -108220,7 +108634,7 @@ var BuffersAnalystJobsParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/BuffersAnalystJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/BuffersAnalystJobsService.js function BuffersAnalystJobsService_typeof(o) { "@babel/helpers - typeof"; return BuffersAnalystJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BuffersAnalystJobsService_typeof(o); } function BuffersAnalystJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BuffersAnalystJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BuffersAnalystJobsService_toPropertyKey(o.key), o); } } @@ -108231,7 +108645,7 @@ function BuffersAnalystJobsService_callSuper(t, o, e) { return o = BuffersAnalys function BuffersAnalystJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == BuffersAnalystJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return BuffersAnalystJobsService_assertThisInitialized(t); } function BuffersAnalystJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function BuffersAnalystJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (BuffersAnalystJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function BuffersAnalystJobsService_superPropGet(t, o, e, r) { var p = BuffersAnalystJobsService_get(BuffersAnalystJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function BuffersAnalystJobsService_superPropGet(t, e, o, r) { var p = BuffersAnalystJobsService_get(BuffersAnalystJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function BuffersAnalystJobsService_get() { return BuffersAnalystJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = BuffersAnalystJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, BuffersAnalystJobsService_get.apply(null, arguments); } function BuffersAnalystJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = BuffersAnalystJobsService_getPrototypeOf(t));); return t; } function BuffersAnalystJobsService_getPrototypeOf(t) { return BuffersAnalystJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, BuffersAnalystJobsService_getPrototypeOf(t); } @@ -108262,7 +108676,7 @@ var BuffersAnalystJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { var _this; BuffersAnalystJobsService_classCallCheck(this, BuffersAnalystJobsService); _this = BuffersAnalystJobsService_callSuper(this, BuffersAnalystJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/buffers'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/buffers'); _this.CLASS_NAME = 'SuperMap.BuffersAnalystJobsService'; return _this; } @@ -108299,7 +108713,7 @@ var BuffersAnalystJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { }, { key: "getBuffersJob", value: function getBuffersJob(id, callback) { - return BuffersAnalystJobsService_superPropGet(BuffersAnalystJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return BuffersAnalystJobsService_superPropGet(BuffersAnalystJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -108318,7 +108732,7 @@ var BuffersAnalystJobsService = /*#__PURE__*/function (_ProcessingServiceBas) { } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/TopologyValidatorJobsParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/TopologyValidatorJobsParameter.js function TopologyValidatorJobsParameter_typeof(o) { "@babel/helpers - typeof"; return TopologyValidatorJobsParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TopologyValidatorJobsParameter_typeof(o); } function TopologyValidatorJobsParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TopologyValidatorJobsParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TopologyValidatorJobsParameter_toPropertyKey(o.key), o); } } @@ -108388,7 +108802,7 @@ var TopologyValidatorJobsParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TopologyValidatorJobsParameter"; } @@ -108443,7 +108857,7 @@ var TopologyValidatorJobsParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TopologyValidatorJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/TopologyValidatorJobsService.js function TopologyValidatorJobsService_typeof(o) { "@babel/helpers - typeof"; return TopologyValidatorJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TopologyValidatorJobsService_typeof(o); } function TopologyValidatorJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TopologyValidatorJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TopologyValidatorJobsService_toPropertyKey(o.key), o); } } @@ -108454,7 +108868,7 @@ function TopologyValidatorJobsService_callSuper(t, o, e) { return o = TopologyVa function TopologyValidatorJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == TopologyValidatorJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TopologyValidatorJobsService_assertThisInitialized(t); } function TopologyValidatorJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TopologyValidatorJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TopologyValidatorJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TopologyValidatorJobsService_superPropGet(t, o, e, r) { var p = TopologyValidatorJobsService_get(TopologyValidatorJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TopologyValidatorJobsService_superPropGet(t, e, o, r) { var p = TopologyValidatorJobsService_get(TopologyValidatorJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TopologyValidatorJobsService_get() { return TopologyValidatorJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TopologyValidatorJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TopologyValidatorJobsService_get.apply(null, arguments); } function TopologyValidatorJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TopologyValidatorJobsService_getPrototypeOf(t));); return t; } function TopologyValidatorJobsService_getPrototypeOf(t) { return TopologyValidatorJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TopologyValidatorJobsService_getPrototypeOf(t); } @@ -108486,7 +108900,7 @@ var TopologyValidatorJobsService = /*#__PURE__*/function (_ProcessingServiceBas) var _this; TopologyValidatorJobsService_classCallCheck(this, TopologyValidatorJobsService); _this = TopologyValidatorJobsService_callSuper(this, TopologyValidatorJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/topologyvalidator'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/topologyvalidator'); _this.CLASS_NAME = "SuperMap.TopologyValidatorJobsService"; return _this; } @@ -108523,7 +108937,7 @@ var TopologyValidatorJobsService = /*#__PURE__*/function (_ProcessingServiceBas) }, { key: "getTopologyValidatorJob", value: function getTopologyValidatorJob(id, callback) { - return TopologyValidatorJobsService_superPropGet(TopologyValidatorJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return TopologyValidatorJobsService_superPropGet(TopologyValidatorJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -108541,7 +108955,7 @@ var TopologyValidatorJobsService = /*#__PURE__*/function (_ProcessingServiceBas) } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/SummaryAttributesJobsParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/SummaryAttributesJobsParameter.js function SummaryAttributesJobsParameter_typeof(o) { "@babel/helpers - typeof"; return SummaryAttributesJobsParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SummaryAttributesJobsParameter_typeof(o); } function SummaryAttributesJobsParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SummaryAttributesJobsParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SummaryAttributesJobsParameter_toPropertyKey(o.key), o); } } @@ -108609,7 +109023,7 @@ var SummaryAttributesJobsParameter = /*#__PURE__*/function () { * @description 分析后结果可视化的参数类。 */ this.mappingParameters = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.SummaryAttributesJobsParameter"; } @@ -108664,7 +109078,7 @@ var SummaryAttributesJobsParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SummaryAttributesJobsService.js +;// CONCATENATED MODULE: ./src/common/iServer/SummaryAttributesJobsService.js function SummaryAttributesJobsService_typeof(o) { "@babel/helpers - typeof"; return SummaryAttributesJobsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SummaryAttributesJobsService_typeof(o); } function SummaryAttributesJobsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SummaryAttributesJobsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SummaryAttributesJobsService_toPropertyKey(o.key), o); } } @@ -108675,7 +109089,7 @@ function SummaryAttributesJobsService_callSuper(t, o, e) { return o = SummaryAtt function SummaryAttributesJobsService_possibleConstructorReturn(t, e) { if (e && ("object" == SummaryAttributesJobsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SummaryAttributesJobsService_assertThisInitialized(t); } function SummaryAttributesJobsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SummaryAttributesJobsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SummaryAttributesJobsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SummaryAttributesJobsService_superPropGet(t, o, e, r) { var p = SummaryAttributesJobsService_get(SummaryAttributesJobsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SummaryAttributesJobsService_superPropGet(t, e, o, r) { var p = SummaryAttributesJobsService_get(SummaryAttributesJobsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SummaryAttributesJobsService_get() { return SummaryAttributesJobsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SummaryAttributesJobsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SummaryAttributesJobsService_get.apply(null, arguments); } function SummaryAttributesJobsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SummaryAttributesJobsService_getPrototypeOf(t));); return t; } function SummaryAttributesJobsService_getPrototypeOf(t) { return SummaryAttributesJobsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SummaryAttributesJobsService_getPrototypeOf(t); } @@ -108706,7 +109120,7 @@ var SummaryAttributesJobsService = /*#__PURE__*/function (_ProcessingServiceBas) var _this; SummaryAttributesJobsService_classCallCheck(this, SummaryAttributesJobsService); _this = SummaryAttributesJobsService_callSuper(this, SummaryAttributesJobsService, [url, options]); - _this.url = Util.urlPathAppend(_this.url, 'spatialanalyst/summaryattributes'); + _this.url = Util_Util.urlPathAppend(_this.url, 'spatialanalyst/summaryattributes'); _this.CLASS_NAME = "SuperMap.SummaryAttributesJobsService"; return _this; } @@ -108743,7 +109157,7 @@ var SummaryAttributesJobsService = /*#__PURE__*/function (_ProcessingServiceBas) }, { key: "getSummaryAttributesJob", value: function getSummaryAttributesJob(id, callback) { - return SummaryAttributesJobsService_superPropGet(SummaryAttributesJobsService, "getJobs", this, 3)([Util.urlPathAppend(this.url, id), callback]); + return SummaryAttributesJobsService_superPropGet(SummaryAttributesJobsService, "getJobs", this, 3)([Util_Util.urlPathAppend(this.url, id), callback]); } /** @@ -108761,7 +109175,7 @@ var SummaryAttributesJobsService = /*#__PURE__*/function (_ProcessingServiceBas) } }]); }(ProcessingServiceBase); -;// ./src/common/iServer/ProcessingService.js +;// CONCATENATED MODULE: ./src/common/iServer/ProcessingService.js function ProcessingService_typeof(o) { "@babel/helpers - typeof"; return ProcessingService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ProcessingService_typeof(o); } function ProcessingService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ProcessingService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ProcessingService_toPropertyKey(o.key), o); } } @@ -109598,7 +110012,7 @@ var ProcessingService_ProcessingService = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/ProcessingService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/ProcessingService.js function services_ProcessingService_typeof(o) { "@babel/helpers - typeof"; return services_ProcessingService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_ProcessingService_typeof(o); } function services_ProcessingService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_ProcessingService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_ProcessingService_toPropertyKey(o.key), o); } } @@ -109632,7 +110046,7 @@ function ProcessingService_setPrototypeOf(t, e) { return ProcessingService_setPr * .getKernelDensityJobs(function(result){ * //doSomething * }) - * @param {string} url - 服务地址。 + * @param {string} url - 分布式分析服务地址,如 http://{ip}:{port}/iserver/services/distributedanalyst/rest/v1/jobs 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -110183,23 +110597,23 @@ var ProcessingService = /*#__PURE__*/function (_ServiceBase) { return {}; } if (params.bounds) { - params.bounds = Util_Util.toSuperMapBounds(params.bounds); + params.bounds = core_Util_Util.toSuperMapBounds(params.bounds); } //这里只允许传端的bounds if (params.query) { - params.query = Util_Util.toSuperMapBounds(params.query); + params.query = core_Util_Util.toSuperMapBounds(params.query); } if (params.geometryQuery) { - params.geometryQuery = Util_Util.toProcessingParam(params.geometryQuery); + params.geometryQuery = core_Util_Util.toProcessingParam(params.geometryQuery); } if (params.geometryClip) { - params.geometryClip = Util_Util.toProcessingParam(params.geometryClip); + params.geometryClip = core_Util_Util.toProcessingParam(params.geometryClip); } return params; } }]); }(ServiceBase); -;// ./src/common/iServer/QueryServiceBase.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryServiceBase.js function QueryServiceBase_typeof(o) { "@babel/helpers - typeof"; return QueryServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryServiceBase_typeof(o); } function QueryServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryServiceBase_toPropertyKey(o.key), o); } } @@ -110210,7 +110624,7 @@ function QueryServiceBase_callSuper(t, o, e) { return o = QueryServiceBase_getPr function QueryServiceBase_possibleConstructorReturn(t, e) { if (e && ("object" == QueryServiceBase_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryServiceBase_assertThisInitialized(t); } function QueryServiceBase_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryServiceBase_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryServiceBase_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryServiceBase_superPropGet(t, o, e, r) { var p = QueryServiceBase_get(QueryServiceBase_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryServiceBase_superPropGet(t, e, o, r) { var p = QueryServiceBase_get(QueryServiceBase_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryServiceBase_get() { return QueryServiceBase_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryServiceBase_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryServiceBase_get.apply(null, arguments); } function QueryServiceBase_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryServiceBase_getPrototypeOf(t));); return t; } function QueryServiceBase_getPrototypeOf(t) { return QueryServiceBase_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryServiceBase_getPrototypeOf(t); } @@ -110261,7 +110675,7 @@ var QueryServiceBase = /*#__PURE__*/function (_CommonServiceBase) { _this.format = DataFormat.GEOJSON; _this.returnFeatureWithFieldCaption = false; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.QueryService"; if (!_this.url) { @@ -110270,7 +110684,7 @@ var QueryServiceBase = /*#__PURE__*/function (_CommonServiceBase) { if (options && options.format) { _this.format = options.format.toUpperCase(); } - _this.url = Util.urlPathAppend(_this.url, 'queryResults'); + _this.url = Util_Util.urlPathAppend(_this.url, 'queryResults'); return _this; } @@ -110310,7 +110724,7 @@ var QueryServiceBase = /*#__PURE__*/function (_CommonServiceBase) { //仅供三维使用 获取高亮图片的bounds returnCustomResult = params.returnCustomResult; if (returnCustomResult) { - me.url = Util.urlAppend(me.url, 'returnCustomResult=' + returnCustomResult); + me.url = Util_Util.urlAppend(me.url, 'returnCustomResult=' + returnCustomResult); } } me.returnFeatureWithFieldCaption = params.returnFeatureWithFieldCaption; @@ -110334,7 +110748,7 @@ var QueryServiceBase = /*#__PURE__*/function (_CommonServiceBase) { key: "transformResult", value: function transformResult(result, options) { var me = this; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); var geoJSONFormat = new GeoJSON(); if (result && result.recordsets) { for (var i = 0, recordsets = result.recordsets, len = recordsets.length; i < len; i++) { @@ -110384,7 +110798,7 @@ var QueryServiceBase = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/QueryByBoundsParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryByBoundsParameters.js function QueryByBoundsParameters_typeof(o) { "@babel/helpers - typeof"; return QueryByBoundsParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryByBoundsParameters_typeof(o); } function QueryByBoundsParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryByBoundsParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryByBoundsParameters_toPropertyKey(o.key), o); } } @@ -110395,7 +110809,7 @@ function QueryByBoundsParameters_callSuper(t, o, e) { return o = QueryByBoundsPa function QueryByBoundsParameters_possibleConstructorReturn(t, e) { if (e && ("object" == QueryByBoundsParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryByBoundsParameters_assertThisInitialized(t); } function QueryByBoundsParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryByBoundsParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryByBoundsParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryByBoundsParameters_superPropGet(t, o, e, r) { var p = QueryByBoundsParameters_get(QueryByBoundsParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryByBoundsParameters_superPropGet(t, e, o, r) { var p = QueryByBoundsParameters_get(QueryByBoundsParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryByBoundsParameters_get() { return QueryByBoundsParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryByBoundsParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryByBoundsParameters_get.apply(null, arguments); } function QueryByBoundsParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryByBoundsParameters_getPrototypeOf(t));); return t; } function QueryByBoundsParameters_getPrototypeOf(t) { return QueryByBoundsParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryByBoundsParameters_getPrototypeOf(t); } @@ -110418,13 +110832,13 @@ function QueryByBoundsParameters_setPrototypeOf(t, e) { return QueryByBoundsPara * @param {Array.} options.queryParams - 查询过滤条件参数数组。 * @param {string} [options.customParams] - 自定义参数,供扩展使用。 * @param {Object} [options.prjCoordSys] -自定义参数,供 SuperMap Online 提供的动态投影查询扩展使用。如 {"epsgCode":3857}。 - * @param {number} [options.expectCount=100000] - 期望返回结果记录个数。 - * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。 - * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果类型。 - * @param {number} [options.startRecord=0] - 查询起始记录号。 + * @param {number} [options.expectCount=100000] - 查询结果中期望返回的结果记录数,该值需大于 0。 + * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。分为 POINT 点和 LINE 线两种类型。 + * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果选项对象,用于指定查询结果中包含的内容。 + * @param {number} [options.startRecord=0] - 查询起始记录位置。 * @param {number} [options.holdTime=10] - 资源在服务端保存的时间,单位为分钟。 * @param {boolean} [options.returnCustomResult=false] - 是否返回查询结果的查询范围信息,当 returnContent=false 时有效。如果为 true,返回查询结果的查询范围信息。如果为 false,则不返回查询范围信息。 - * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeatureWithFieldCaption = false] - 返回的查询结果要素字段标识是否为字段别名。为 false 时,返回的是字段名;为 true 时,返回的是字段别名。 * @usage */ @@ -110447,7 +110861,7 @@ var QueryByBoundsParameters = /*#__PURE__*/function (_QueryParameters) { * @description 指定的查询范围。查询范围的投影坐标系与地图坐标系相同。 */ _this.bounds = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.QueryByBoundsParameters"; return _this; } @@ -110469,7 +110883,7 @@ var QueryByBoundsParameters = /*#__PURE__*/function (_QueryParameters) { } }]); }(QueryParameters); -;// ./src/common/iServer/QueryByBoundsService.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryByBoundsService.js function QueryByBoundsService_typeof(o) { "@babel/helpers - typeof"; return QueryByBoundsService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryByBoundsService_typeof(o); } function QueryByBoundsService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryByBoundsService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryByBoundsService_toPropertyKey(o.key), o); } } @@ -110480,7 +110894,7 @@ function QueryByBoundsService_callSuper(t, o, e) { return o = QueryByBoundsServi function QueryByBoundsService_possibleConstructorReturn(t, e) { if (e && ("object" == QueryByBoundsService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryByBoundsService_assertThisInitialized(t); } function QueryByBoundsService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryByBoundsService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryByBoundsService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryByBoundsService_superPropGet(t, o, e, r) { var p = QueryByBoundsService_get(QueryByBoundsService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryByBoundsService_superPropGet(t, e, o, r) { var p = QueryByBoundsService_get(QueryByBoundsService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryByBoundsService_get() { return QueryByBoundsService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryByBoundsService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryByBoundsService_get.apply(null, arguments); } function QueryByBoundsService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryByBoundsService_getPrototypeOf(t));); return t; } function QueryByBoundsService_getPrototypeOf(t) { return QueryByBoundsService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryByBoundsService_getPrototypeOf(t); } @@ -110550,14 +110964,14 @@ var QueryByBoundsService = /*#__PURE__*/function (_QueryServiceBase) { bounds = params.bounds; qp = me.getQueryParameters(params); jsonParameters += "'queryMode':'BoundsQuery','queryParameters':"; - jsonParameters += Util.toJSON(qp); + jsonParameters += Util_Util.toJSON(qp); jsonParameters += ",'bounds': {'rightTop':{'y':" + bounds.top + ",'x':" + bounds.right + "},'leftBottom':{'y':" + bounds.bottom + ",'x':" + bounds.left + "}}"; jsonParameters = "{" + jsonParameters + "}"; return jsonParameters; } }]); }(QueryServiceBase); -;// ./src/common/iServer/QueryByDistanceParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryByDistanceParameters.js function QueryByDistanceParameters_typeof(o) { "@babel/helpers - typeof"; return QueryByDistanceParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryByDistanceParameters_typeof(o); } function QueryByDistanceParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryByDistanceParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryByDistanceParameters_toPropertyKey(o.key), o); } } @@ -110568,7 +110982,7 @@ function QueryByDistanceParameters_callSuper(t, o, e) { return o = QueryByDistan function QueryByDistanceParameters_possibleConstructorReturn(t, e) { if (e && ("object" == QueryByDistanceParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryByDistanceParameters_assertThisInitialized(t); } function QueryByDistanceParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryByDistanceParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryByDistanceParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryByDistanceParameters_superPropGet(t, o, e, r) { var p = QueryByDistanceParameters_get(QueryByDistanceParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryByDistanceParameters_superPropGet(t, e, o, r) { var p = QueryByDistanceParameters_get(QueryByDistanceParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryByDistanceParameters_get() { return QueryByDistanceParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryByDistanceParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryByDistanceParameters_get.apply(null, arguments); } function QueryByDistanceParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryByDistanceParameters_getPrototypeOf(t));); return t; } function QueryByDistanceParameters_getPrototypeOf(t) { return QueryByDistanceParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryByDistanceParameters_getPrototypeOf(t); } @@ -110592,14 +111006,14 @@ function QueryByDistanceParameters_setPrototypeOf(t, e) { return QueryByDistance * @param {number} options.distance - 查询距离,单位与所查询图层对应的数据集单位相同。距离查询时,表示距离地物的距离。最近地物查询时,表示搜索的范围。此为必设参数。 * @param {string} [options.customParams] - 自定义参数,供扩展使用。 * @param {Object} [options.prjCoordSys] -自定义参数,供 SuperMap Online 提供的动态投影查询扩展使用。如 {"epsgCode":3857}。 - * @param {number} [options.expectCount=100000] - 期望返回结果记录个数。 - * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。 - * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果类型。 - * @param {number} [options.startRecord=0] - 查询起始记录号。 + * @param {number} [options.expectCount=100000] - 查询结果中期望返回的结果记录数,该值需大于 0。 + * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。分为 POINT 点和 LINE 线两种类型。 + * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果选项对象,用于指定查询结果中包含的内容。 + * @param {number} [options.startRecord=0] - 查询起始记录位置。 * @param {number} [options.holdTime=10] - 资源在服务端保存的时间,单位为分钟。 - * @param {boolean} [options.returnCustomResult=false] -仅供三维使用。 + * @param {boolean} [options.returnCustomResult=false] -仅供三维使用。是否返回查询结果的 Bounds 信息,当 returnContent=false 时有效。如果为 true,返回查询结果的 Bounds 信息。如果为 false,则不返回 Bounds 信息。 * @param {boolean} [options.isNearest=false] - 是否为最近距离查询。 - * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeatureWithFieldCaption = false] - 返回的查询结果要素字段标识是否为字段别名。为 false 时,返回的是字段名;为 true 时,返回的是字段别名。 * @usage */ @@ -110643,7 +111057,7 @@ var QueryByDistanceParameters = /*#__PURE__*/function (_QueryParameters) { * 如果为 false,则返回的是查询结果资源的 URI。 */ _this.returnContent = true; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.QueryByDistanceParameters"; return _this; } @@ -110668,7 +111082,7 @@ var QueryByDistanceParameters = /*#__PURE__*/function (_QueryParameters) { } }]); }(QueryParameters); -;// ./src/common/iServer/QueryByDistanceService.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryByDistanceService.js function QueryByDistanceService_typeof(o) { "@babel/helpers - typeof"; return QueryByDistanceService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryByDistanceService_typeof(o); } function QueryByDistanceService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryByDistanceService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryByDistanceService_toPropertyKey(o.key), o); } } @@ -110679,7 +111093,7 @@ function QueryByDistanceService_callSuper(t, o, e) { return o = QueryByDistanceS function QueryByDistanceService_possibleConstructorReturn(t, e) { if (e && ("object" == QueryByDistanceService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryByDistanceService_assertThisInitialized(t); } function QueryByDistanceService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryByDistanceService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryByDistanceService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryByDistanceService_superPropGet(t, o, e, r) { var p = QueryByDistanceService_get(QueryByDistanceService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryByDistanceService_superPropGet(t, e, o, r) { var p = QueryByDistanceService_get(QueryByDistanceService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryByDistanceService_get() { return QueryByDistanceService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryByDistanceService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryByDistanceService_get.apply(null, arguments); } function QueryByDistanceService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryByDistanceService_getPrototypeOf(t));); return t; } function QueryByDistanceService_getPrototypeOf(t) { return QueryByDistanceService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryByDistanceService_getPrototypeOf(t); } @@ -110747,14 +111161,14 @@ var QueryByDistanceService = /*#__PURE__*/function (_QueryServiceBase) { qp = me.getQueryParameters(params); var sg = ServerGeometry.fromGeometry(params.geometry); jsonParameters += params.isNearest ? "'queryMode':'FindNearest','queryParameters':" : "'queryMode':'DistanceQuery','queryParameters':"; - jsonParameters += Util.toJSON(qp); - jsonParameters += ",'geometry':" + Util.toJSON(sg) + ",'distance':" + params.distance; + jsonParameters += Util_Util.toJSON(qp); + jsonParameters += ",'geometry':" + Util_Util.toJSON(sg) + ",'distance':" + params.distance; jsonParameters = "{" + jsonParameters + "}"; return jsonParameters; } }]); }(QueryServiceBase); -;// ./src/common/iServer/QueryBySQLParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryBySQLParameters.js function QueryBySQLParameters_typeof(o) { "@babel/helpers - typeof"; return QueryBySQLParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryBySQLParameters_typeof(o); } function QueryBySQLParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryBySQLParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryBySQLParameters_toPropertyKey(o.key), o); } } @@ -110765,7 +111179,7 @@ function QueryBySQLParameters_callSuper(t, o, e) { return o = QueryBySQLParamete function QueryBySQLParameters_possibleConstructorReturn(t, e) { if (e && ("object" == QueryBySQLParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryBySQLParameters_assertThisInitialized(t); } function QueryBySQLParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryBySQLParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryBySQLParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryBySQLParameters_superPropGet(t, o, e, r) { var p = QueryBySQLParameters_get(QueryBySQLParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryBySQLParameters_superPropGet(t, e, o, r) { var p = QueryBySQLParameters_get(QueryBySQLParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryBySQLParameters_get() { return QueryBySQLParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryBySQLParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryBySQLParameters_get.apply(null, arguments); } function QueryBySQLParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryBySQLParameters_getPrototypeOf(t));); return t; } function QueryBySQLParameters_getPrototypeOf(t) { return QueryBySQLParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryBySQLParameters_getPrototypeOf(t); } @@ -110787,13 +111201,13 @@ function QueryBySQLParameters_setPrototypeOf(t, e) { return QueryBySQLParameters * @param {Array.} options.queryParams - 查询过滤条件参数数组。 * @param {string} [options.customParams] - 自定义参数,供扩展使用。 * @param {Object} [options.prjCoordSys] - 自定义参数,供 SuperMap Online 提供的动态投影查询扩展使用。如 {"epsgCode":3857}。 - * @param {number} [options.expectCount=100000] - 期望返回结果记录个数。 - * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。 - * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果类型。 - * @param {number} [options.startRecord=0] - 查询起始记录号。 + * @param {number} [options.expectCount=100000] - 查询结果中期望返回的结果记录数,该值需大于 0。 + * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。分为 POINT 点和 LINE 线两种类型。 + * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果选项对象,用于指定查询结果中包含的内容。 + * @param {number} [options.startRecord=0] - 查询起始记录位置。 * @param {number} [options.holdTime=10] - 资源在服务端保存的时间,单位为分钟。 - * @param {boolean} [options.returnCustomResult=false] - 仅供三维使用。 - * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。 + * @param {boolean} [options.returnCustomResult=false] - 仅供三维使用。是否返回查询结果的 Bounds 信息,当 returnContent=false 时有效。如果为 true,返回查询结果的 Bounds 信息。如果为 false,则不返回 Bounds 信息。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeatureWithFieldCaption = false] - 返回的查询结果要素字段标识是否为字段别名。为 false 时,返回的是字段名;为 true 时,返回的是字段别名。 * @usage */ @@ -110810,7 +111224,7 @@ var QueryBySQLParameters = /*#__PURE__*/function (_QueryParameters) { * 如果为 false,则返回的是查询结果资源的 URI。 */ _this.returnContent = true; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.QueryBySQLParameters"; return _this; } @@ -110829,7 +111243,7 @@ var QueryBySQLParameters = /*#__PURE__*/function (_QueryParameters) { } }]); }(QueryParameters); -;// ./src/common/iServer/QueryBySQLService.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryBySQLService.js function QueryBySQLService_typeof(o) { "@babel/helpers - typeof"; return QueryBySQLService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryBySQLService_typeof(o); } function QueryBySQLService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryBySQLService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryBySQLService_toPropertyKey(o.key), o); } } @@ -110840,7 +111254,7 @@ function QueryBySQLService_callSuper(t, o, e) { return o = QueryBySQLService_get function QueryBySQLService_possibleConstructorReturn(t, e) { if (e && ("object" == QueryBySQLService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryBySQLService_assertThisInitialized(t); } function QueryBySQLService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryBySQLService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryBySQLService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryBySQLService_superPropGet(t, o, e, r) { var p = QueryBySQLService_get(QueryBySQLService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryBySQLService_superPropGet(t, e, o, r) { var p = QueryBySQLService_get(QueryBySQLService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryBySQLService_get() { return QueryBySQLService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryBySQLService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryBySQLService_get.apply(null, arguments); } function QueryBySQLService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryBySQLService_getPrototypeOf(t));); return t; } function QueryBySQLService_getPrototypeOf(t) { return QueryBySQLService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryBySQLService_getPrototypeOf(t); } @@ -110915,13 +111329,13 @@ var QueryBySQLService = /*#__PURE__*/function (_QueryServiceBase) { qp = null; qp = me.getQueryParameters(params); jsonParameters += "'queryMode':'SqlQuery','queryParameters':"; - jsonParameters += Util.toJSON(qp); + jsonParameters += Util_Util.toJSON(qp); jsonParameters = "{" + jsonParameters + "}"; return jsonParameters; } }]); }(QueryServiceBase); -;// ./src/common/iServer/QueryByGeometryParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryByGeometryParameters.js function QueryByGeometryParameters_typeof(o) { "@babel/helpers - typeof"; return QueryByGeometryParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryByGeometryParameters_typeof(o); } function QueryByGeometryParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryByGeometryParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryByGeometryParameters_toPropertyKey(o.key), o); } } @@ -110932,7 +111346,7 @@ function QueryByGeometryParameters_callSuper(t, o, e) { return o = QueryByGeomet function QueryByGeometryParameters_possibleConstructorReturn(t, e) { if (e && ("object" == QueryByGeometryParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryByGeometryParameters_assertThisInitialized(t); } function QueryByGeometryParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryByGeometryParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryByGeometryParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryByGeometryParameters_superPropGet(t, o, e, r) { var p = QueryByGeometryParameters_get(QueryByGeometryParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryByGeometryParameters_superPropGet(t, e, o, r) { var p = QueryByGeometryParameters_get(QueryByGeometryParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryByGeometryParameters_get() { return QueryByGeometryParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryByGeometryParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryByGeometryParameters_get.apply(null, arguments); } function QueryByGeometryParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryByGeometryParameters_getPrototypeOf(t));); return t; } function QueryByGeometryParameters_getPrototypeOf(t) { return QueryByGeometryParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryByGeometryParameters_getPrototypeOf(t); } @@ -110950,21 +111364,21 @@ function QueryByGeometryParameters_setPrototypeOf(t, e) { return QueryByGeometry * @class QueryByGeometryParameters * @deprecatedclass SuperMap.QueryByGeometryParameters * @category iServer Map QueryResults - * @classdesc 几何查询参数类。 + * @classdesc 空间查询参数类。 * 此类除了能够设置地图查询中通用的查询参数以外,还可以指定几何对象等参数。 * @extends {QueryParameters} * @param {Object} options - 参数。 * @param {Array.} options.queryParams - 查询过滤条件参数数组。 * @param {Object} options.geometry - 查询的几何对象。 * @param {string} [options.customParams] - 自定义参数,供扩展使用。 - * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果类型。 + * @param {QueryOption} [options.queryOption=QueryOption.ATTRIBUTEANDGEOMETRY] - 查询结果选项对象,用于指定查询结果中包含的内容。 * @param {Object} [options.prjCoordSys] -自定义参数,供 SuperMap Online 提供的动态投影查询扩展使用。如 {"epsgCode":3857}。 - * @param {number} [options.expectCount=100000] - 期望返回结果记录个数。 - * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。 - * @param {boolean} [options.returnCustomResult=false] -仅供三维使用。 - * @param {number} [options.startRecord=0] - 查询起始记录号。 + * @param {number} [options.expectCount=100000] - 查询结果中期望返回的结果记录数,该值需大于 0。 + * @param {GeometryType} [options.networkType=GeometryType.LINE] - 网络数据集对应的查询类型。分为 POINT 点和 LINE 线两种类型。 + * @param {boolean} [options.returnCustomResult=false] -仅供三维使用。是否返回查询结果的 Bounds 信息,当 returnContent=false 时有效。如果为 true,返回查询结果的 Bounds 信息。如果为 false,则不返回 Bounds 信息。 + * @param {number} [options.startRecord=0] - 查询起始记录位置。 * @param {number} [options.holdTime=10] - 资源在服务端保存的时间,单位为分钟。 - * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。 + * @param {boolean} [options.returnContent=true] - 是否立即返回新创建资源的表述还是返回新资源的 URI。如果为 true,则直接返回新创建资源,即查询结果的表述。如果为 false,则返回的是查询结果资源的 URI。 * @param {boolean} [options.returnFeatureWithFieldCaption = false] - 返回的查询结果要素字段标识是否为字段别名。为 false 时,返回的是字段名;为 true 时,返回的是字段别名。 * @param {SpatialQueryMode} [options.spatialQueryMode=SpatialQueryMode.INTERSECT] - 空间查询模式。 * @usage @@ -110998,7 +111412,7 @@ var QueryByGeometryParameters = /*#__PURE__*/function (_QueryParameters) { * @description 空间查询模式。 */ _this.spatialQueryMode = SpatialQueryMode.INTERSECT; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.QueryByGeometryParameters"; return _this; } @@ -111019,7 +111433,7 @@ var QueryByGeometryParameters = /*#__PURE__*/function (_QueryParameters) { } }]); }(QueryParameters); -;// ./src/common/iServer/QueryByGeometryService.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryByGeometryService.js function QueryByGeometryService_typeof(o) { "@babel/helpers - typeof"; return QueryByGeometryService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryByGeometryService_typeof(o); } function QueryByGeometryService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryByGeometryService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryByGeometryService_toPropertyKey(o.key), o); } } @@ -111030,7 +111444,7 @@ function QueryByGeometryService_callSuper(t, o, e) { return o = QueryByGeometryS function QueryByGeometryService_possibleConstructorReturn(t, e) { if (e && ("object" == QueryByGeometryService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return QueryByGeometryService_assertThisInitialized(t); } function QueryByGeometryService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function QueryByGeometryService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (QueryByGeometryService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function QueryByGeometryService_superPropGet(t, o, e, r) { var p = QueryByGeometryService_get(QueryByGeometryService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function QueryByGeometryService_superPropGet(t, e, o, r) { var p = QueryByGeometryService_get(QueryByGeometryService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function QueryByGeometryService_get() { return QueryByGeometryService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = QueryByGeometryService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, QueryByGeometryService_get.apply(null, arguments); } function QueryByGeometryService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = QueryByGeometryService_getPrototypeOf(t));); return t; } function QueryByGeometryService_getPrototypeOf(t) { return QueryByGeometryService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, QueryByGeometryService_getPrototypeOf(t); } @@ -111083,8 +111497,8 @@ var QueryByGeometryService = /*#__PURE__*/function (_QueryServiceBase) { /** * @function QueryByGeometryService.prototype.getJsonParameters * @description 将查询参数转化为 JSON 字符串。 - * 在本类中重写此方法,可以实现不同种类的查询(sql, geometry, distance, bounds等)。 - * @param {QueryByGeometryParameters} params - 几何查询参数类。 + * 在本类中重写此方法,可以实现不同种类的查询(sql, geometry, distance, bounds 等)。 + * @param {QueryByGeometryParameters} params - 空间查询参数类。 * @returns {Object} 转化后的 JSON 字符串。 */ }, { @@ -111100,13 +111514,13 @@ var QueryByGeometryService = /*#__PURE__*/function (_QueryServiceBase) { sg = ServerGeometry.fromGeometry(geometry); qp = me.getQueryParameters(params); jsonParameters += "'queryMode':'SpatialQuery','queryParameters':"; - jsonParameters += Util.toJSON(qp) + ",'geometry':" + Util.toJSON(sg) + ",'spatialQueryMode':" + Util.toJSON(params.spatialQueryMode); + jsonParameters += Util_Util.toJSON(qp) + ",'geometry':" + Util_Util.toJSON(sg) + ",'spatialQueryMode':" + Util_Util.toJSON(params.spatialQueryMode); jsonParameters = "{" + jsonParameters + "}"; return jsonParameters; } }]); }(QueryServiceBase); -;// ./src/common/iServer/QueryService.js +;// CONCATENATED MODULE: ./src/common/iServer/QueryService.js function QueryService_typeof(o) { "@babel/helpers - typeof"; return QueryService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, QueryService_typeof(o); } function QueryService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function QueryService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, QueryService_toPropertyKey(o.key), o); } } @@ -111125,7 +111539,7 @@ function QueryService_toPrimitive(t, r) { if ("object" != QueryService_typeof(t) * @class QueryService * @category iServer Map QueryResults * @classdesc 地图查询服务类。 - * 提供:范围查询,SQL 查询,几何查询,距离查询。 + * 提供:范围查询,SQL 查询,空间查询,距离查询。 * @extends {ServiceBase} * @param {string} url - 服务地址。 * @param {Object} options - 参数。 @@ -111149,7 +111563,7 @@ var QueryService_QueryService = /*#__PURE__*/function () { /** * @function QueryService.prototype.queryByBounds - * @description 范围查询地图服务。 + * @description 范围查询。查询指定矩形范围内的要素,以及外接矩形与指定范围相交的几何对象。 * @param {QueryByBoundsParameters} params - 范围查询参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回结果类型。 @@ -111215,8 +111629,8 @@ var QueryService_QueryService = /*#__PURE__*/function () { /** * @function QueryService.prototype.queryByGeometry - * @description 地图几何查询服务。 - * @param {QueryByGeometryParameters} params - 几何查询参数类。 + * @description 空间查询。查询与指定的几何对象符合某种空间关系和查询条件的要素。 + * @param {QueryByGeometryParameters} params - 空间查询参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回结果类型。 * @returns {Promise} Promise 对象。 @@ -111241,7 +111655,7 @@ var QueryService_QueryService = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/QueryService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/QueryService.js function services_QueryService_typeof(o) { "@babel/helpers - typeof"; return services_QueryService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_QueryService_typeof(o); } function services_QueryService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_QueryService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_QueryService_toPropertyKey(o.key), o); } } @@ -111270,10 +111684,10 @@ function QueryService_setPrototypeOf(t, e) { return QueryService_setPrototypeOf * @class QueryService * @category iServer Map QueryResults * @classdesc 地图查询服务类。 - * 提供:范围查询,SQL 查询,几何查询,距离查询。 + * 提供:范围查询,SQL 查询,空间查询,距离查询。 * @modulecategory Services * @extends {ServiceBase} - * @param {string} url - 服务地址。 + * @param {string} url - 地图服务地址。如 http://{ip}:{port}/iserver/services/map-world/rest/maps/World * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -111297,7 +111711,7 @@ var QueryService = /*#__PURE__*/function (_ServiceBase) { /** * @function QueryService.prototype.queryByBounds - * @description 范围查询地图服务。 + * @description 范围查询。查询指定矩形范围内的要素,以及外接矩形与指定范围相交的几何对象。 * @param {QueryByBoundsParameters} params - 范围查询参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回结果类型。 @@ -111343,8 +111757,8 @@ var QueryService = /*#__PURE__*/function (_ServiceBase) { /** * @function QueryService.prototype.queryByGeometry - * @description 地图几何查询服务。 - * @param {QueryByGeometryParameters} params - 几何查询参数类。 + * @description 空间查询。查询与指定的几何对象符合某种空间关系和查询条件的要素。 + * @param {QueryByGeometryParameters} params - 空间查询参数类。 * @param {RequestCallback} [callback] - 回调函数,该参数未传时可通过返回的 promise 获取结果。 * @param {DataFormat} [resultFormat=DataFormat.GEOJSON] - 返回结果类型。 * @returns {Promise} Promise 对象。 @@ -111362,7 +111776,7 @@ var QueryService = /*#__PURE__*/function (_ServiceBase) { return {}; } params.returnContent = params.returnContent == null ? true : params.returnContent; - if (params.queryParams && !Util_Util.isArray(params.queryParams)) { + if (params.queryParams && !core_Util_Util.isArray(params.queryParams)) { params.queryParams = [params.queryParams]; } if (params.bounds) { @@ -111381,17 +111795,17 @@ var QueryService = /*#__PURE__*/function (_ServiceBase) { params.geometry = new Point(params.geometry.x, params.geometry.y); } if (params.geometry instanceof (external_mapboxgl_default()).LngLatBounds) { - params.geometry = Util_Util.toSuperMapPolygon(params.geometry); + params.geometry = core_Util_Util.toSuperMapPolygon(params.geometry); } - if (!(params.geometry instanceof Geometry)) { - params.geometry = Util_Util.toSuperMapGeometry(params.geometry); + if (!(params.geometry instanceof Geometry_Geometry)) { + params.geometry = core_Util_Util.toSuperMapGeometry(params.geometry); } } return params; } }]); }(ServiceBase); -;// ./src/common/iServer/SpatialAnalystBase.js +;// CONCATENATED MODULE: ./src/common/iServer/SpatialAnalystBase.js function SpatialAnalystBase_typeof(o) { "@babel/helpers - typeof"; return SpatialAnalystBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SpatialAnalystBase_typeof(o); } function SpatialAnalystBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SpatialAnalystBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SpatialAnalystBase_toPropertyKey(o.key), o); } } @@ -111402,7 +111816,7 @@ function SpatialAnalystBase_callSuper(t, o, e) { return o = SpatialAnalystBase_g function SpatialAnalystBase_possibleConstructorReturn(t, e) { if (e && ("object" == SpatialAnalystBase_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SpatialAnalystBase_assertThisInitialized(t); } function SpatialAnalystBase_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SpatialAnalystBase_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SpatialAnalystBase_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SpatialAnalystBase_superPropGet(t, o, e, r) { var p = SpatialAnalystBase_get(SpatialAnalystBase_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SpatialAnalystBase_superPropGet(t, e, o, r) { var p = SpatialAnalystBase_get(SpatialAnalystBase_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SpatialAnalystBase_get() { return SpatialAnalystBase_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SpatialAnalystBase_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SpatialAnalystBase_get.apply(null, arguments); } function SpatialAnalystBase_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SpatialAnalystBase_getPrototypeOf(t));); return t; } function SpatialAnalystBase_getPrototypeOf(t) { return SpatialAnalystBase_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SpatialAnalystBase_getPrototypeOf(t); } @@ -111466,10 +111880,10 @@ var SpatialAnalystBase = /*#__PURE__*/function (_CommonServiceBase) { value: function transformResult(result, options) { var me = this, analystResult; - result = Util.transformResult(result); + result = Util_Util.transformResult(result); if (result && me.format === DataFormat.GEOJSON && typeof me.toGeoJSONResult === 'function') { //批量分析时会返回多个结果 - if (Util.isArray(result)) { + if (Util_Util.isArray(result)) { for (var i = 0; i < result.length; i++) { result[i] = me.toGeoJSONResult(result[i]); } @@ -111523,7 +111937,7 @@ var SpatialAnalystBase = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/AreaSolarRadiationParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/AreaSolarRadiationParameters.js function AreaSolarRadiationParameters_typeof(o) { "@babel/helpers - typeof"; return AreaSolarRadiationParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, AreaSolarRadiationParameters_typeof(o); } function AreaSolarRadiationParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function AreaSolarRadiationParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, AreaSolarRadiationParameters_toPropertyKey(o.key), o); } } @@ -111658,7 +112072,7 @@ var AreaSolarRadiationParameters = /*#__PURE__*/function () { * @description 如果用户命名的结果数据集名称与已有的数据集重名,是否删除已有的数据集。 */ this.deleteExistResultDataset = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.AreaSolarRadiationParameters"; } @@ -111705,7 +112119,7 @@ var AreaSolarRadiationParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/AreaSolarRadiationService.js +;// CONCATENATED MODULE: ./src/common/iServer/AreaSolarRadiationService.js function AreaSolarRadiationService_typeof(o) { "@babel/helpers - typeof"; return AreaSolarRadiationService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, AreaSolarRadiationService_typeof(o); } function AreaSolarRadiationService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function AreaSolarRadiationService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, AreaSolarRadiationService_toPropertyKey(o.key), o); } } @@ -111716,7 +112130,7 @@ function AreaSolarRadiationService_callSuper(t, o, e) { return o = AreaSolarRadi function AreaSolarRadiationService_possibleConstructorReturn(t, e) { if (e && ("object" == AreaSolarRadiationService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return AreaSolarRadiationService_assertThisInitialized(t); } function AreaSolarRadiationService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function AreaSolarRadiationService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (AreaSolarRadiationService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function AreaSolarRadiationService_superPropGet(t, o, e, r) { var p = AreaSolarRadiationService_get(AreaSolarRadiationService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function AreaSolarRadiationService_superPropGet(t, e, o, r) { var p = AreaSolarRadiationService_get(AreaSolarRadiationService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function AreaSolarRadiationService_get() { return AreaSolarRadiationService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = AreaSolarRadiationService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, AreaSolarRadiationService_get.apply(null, arguments); } function AreaSolarRadiationService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = AreaSolarRadiationService_getPrototypeOf(t));); return t; } function AreaSolarRadiationService_getPrototypeOf(t) { return AreaSolarRadiationService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, AreaSolarRadiationService_getPrototypeOf(t); } @@ -111781,11 +112195,11 @@ var AreaSolarRadiationService = /*#__PURE__*/function (_SpatialAnalystBase) { var me = this; var parameterObject = {}; if (parameter instanceof AreaSolarRadiationParameters) { - me.url = Util.urlPathAppend(me.url, "datasets/".concat(parameter.dataset, "/solarradiation")); + me.url = Util_Util.urlPathAppend(me.url, "datasets/".concat(parameter.dataset, "/solarradiation")); } - me.url = Util.urlAppend(me.url, 'returnContent=true'); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); AreaSolarRadiationParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); + var jsonParameters = Util_Util.toJSON(parameterObject); return me.request({ method: 'POST', data: jsonParameters, @@ -111796,7 +112210,7 @@ var AreaSolarRadiationService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/BufferDistance.js +;// CONCATENATED MODULE: ./src/common/iServer/BufferDistance.js function BufferDistance_typeof(o) { "@babel/helpers - typeof"; return BufferDistance_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BufferDistance_typeof(o); } function BufferDistance_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BufferDistance_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BufferDistance_toPropertyKey(o.key), o); } } @@ -111832,7 +112246,7 @@ var BufferDistance = /*#__PURE__*/function () { * @description 以数值作为缓冲区分析的距离值。单位:米。 */ this.value = 100; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.BufferDistance"; } @@ -111848,7 +112262,7 @@ var BufferDistance = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/BufferSetting.js +;// CONCATENATED MODULE: ./src/common/iServer/BufferSetting.js function BufferSetting_typeof(o) { "@babel/helpers - typeof"; return BufferSetting_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BufferSetting_typeof(o); } function BufferSetting_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BufferSetting_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BufferSetting_toPropertyKey(o.key), o); } } @@ -111916,7 +112330,7 @@ var BufferSetting = /*#__PURE__*/function () { */ this.radiusUnit = BufferRadiusUnit.METER; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.BufferSetting"; } @@ -111943,7 +112357,7 @@ var BufferSetting = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/BufferAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/BufferAnalystParameters.js function BufferAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return BufferAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BufferAnalystParameters_typeof(o); } function BufferAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BufferAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BufferAnalystParameters_toPropertyKey(o.key), o); } } @@ -111974,7 +112388,7 @@ var BufferAnalystParameters = /*#__PURE__*/function () { * @description 设置缓冲区通用参数。为缓冲区分析提供必要的参数信息,包括左缓冲距离、右缓冲距离、端点类型、圆头缓冲圆弧处线段的个数信息。 */ me.bufferSetting = new BufferSetting(); - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.BufferAnalystParameters"; } @@ -111993,7 +112407,7 @@ var BufferAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/DataReturnOption.js +;// CONCATENATED MODULE: ./src/common/iServer/DataReturnOption.js function DataReturnOption_typeof(o) { "@babel/helpers - typeof"; return DataReturnOption_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DataReturnOption_typeof(o); } function DataReturnOption_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DataReturnOption_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DataReturnOption_toPropertyKey(o.key), o); } } @@ -112047,7 +112461,7 @@ var DataReturnOption = /*#__PURE__*/function () { * @description 如果用户命名的结果数据集名称与已有的数据集重名,是否删除已有的数据集。 */ this.deleteExistResultDataset = true; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.DataReturnOption"; } @@ -112066,7 +112480,7 @@ var DataReturnOption = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/DatasetBufferAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasetBufferAnalystParameters.js function DatasetBufferAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return DatasetBufferAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasetBufferAnalystParameters_typeof(o); } function DatasetBufferAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasetBufferAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasetBufferAnalystParameters_toPropertyKey(o.key), o); } } @@ -112077,7 +112491,7 @@ function DatasetBufferAnalystParameters_callSuper(t, o, e) { return o = DatasetB function DatasetBufferAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == DatasetBufferAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DatasetBufferAnalystParameters_assertThisInitialized(t); } function DatasetBufferAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DatasetBufferAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DatasetBufferAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DatasetBufferAnalystParameters_superPropGet(t, o, e, r) { var p = DatasetBufferAnalystParameters_get(DatasetBufferAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DatasetBufferAnalystParameters_superPropGet(t, e, o, r) { var p = DatasetBufferAnalystParameters_get(DatasetBufferAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DatasetBufferAnalystParameters_get() { return DatasetBufferAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DatasetBufferAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DatasetBufferAnalystParameters_get.apply(null, arguments); } function DatasetBufferAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DatasetBufferAnalystParameters_getPrototypeOf(t));); return t; } function DatasetBufferAnalystParameters_getPrototypeOf(t) { return DatasetBufferAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DatasetBufferAnalystParameters_getPrototypeOf(t); } @@ -112141,7 +112555,7 @@ var DatasetBufferAnalystParameters = /*#__PURE__*/function (_BufferAnalystParame * @description 是否将缓冲区与源记录集中的对象合并后返回。对于面对象而言,要求源数据集中的面对象不相交。 */ _this.isUnion = false; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.DatasetBufferAnalystParameters"; return _this; } @@ -112194,7 +112608,7 @@ var DatasetBufferAnalystParameters = /*#__PURE__*/function (_BufferAnalystParame } }]); }(BufferAnalystParameters); -;// ./src/common/iServer/GeometryBufferAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GeometryBufferAnalystParameters.js function GeometryBufferAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return GeometryBufferAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeometryBufferAnalystParameters_typeof(o); } function GeometryBufferAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeometryBufferAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeometryBufferAnalystParameters_toPropertyKey(o.key), o); } } @@ -112205,7 +112619,7 @@ function GeometryBufferAnalystParameters_callSuper(t, o, e) { return o = Geometr function GeometryBufferAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GeometryBufferAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeometryBufferAnalystParameters_assertThisInitialized(t); } function GeometryBufferAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeometryBufferAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeometryBufferAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeometryBufferAnalystParameters_superPropGet(t, o, e, r) { var p = GeometryBufferAnalystParameters_get(GeometryBufferAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeometryBufferAnalystParameters_superPropGet(t, e, o, r) { var p = GeometryBufferAnalystParameters_get(GeometryBufferAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeometryBufferAnalystParameters_get() { return GeometryBufferAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeometryBufferAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeometryBufferAnalystParameters_get.apply(null, arguments); } function GeometryBufferAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeometryBufferAnalystParameters_getPrototypeOf(t));); return t; } function GeometryBufferAnalystParameters_getPrototypeOf(t) { return GeometryBufferAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeometryBufferAnalystParameters_getPrototypeOf(t); } @@ -112251,7 +112665,7 @@ var GeometryBufferAnalystParameters = /*#__PURE__*/function (_BufferAnalystParam */ _this.sourceGeometrySRID = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = " SuperMap.GeometryBufferAnalystParameters"; return _this; @@ -112299,7 +112713,7 @@ var GeometryBufferAnalystParameters = /*#__PURE__*/function (_BufferAnalystParam } }]); }(BufferAnalystParameters); -;// ./src/common/iServer/BufferAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/BufferAnalystService.js function BufferAnalystService_typeof(o) { "@babel/helpers - typeof"; return BufferAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BufferAnalystService_typeof(o); } function BufferAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BufferAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BufferAnalystService_toPropertyKey(o.key), o); } } @@ -112310,7 +112724,7 @@ function BufferAnalystService_callSuper(t, o, e) { return o = BufferAnalystServi function BufferAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == BufferAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return BufferAnalystService_assertThisInitialized(t); } function BufferAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function BufferAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (BufferAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function BufferAnalystService_superPropGet(t, o, e, r) { var p = BufferAnalystService_get(BufferAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function BufferAnalystService_superPropGet(t, e, o, r) { var p = BufferAnalystService_get(BufferAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function BufferAnalystService_get() { return BufferAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = BufferAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, BufferAnalystService_get.apply(null, arguments); } function BufferAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = BufferAnalystService_getPrototypeOf(t));); return t; } function BufferAnalystService_getPrototypeOf(t) { return BufferAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, BufferAnalystService_getPrototypeOf(t); } @@ -112354,7 +112768,7 @@ var BufferAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { */ _this.mode = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.BufferAnalystService"; return _this; @@ -112386,14 +112800,14 @@ var BufferAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { var me = this; if (parameter instanceof DatasetBufferAnalystParameters) { me.mode = 'datasets'; - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/buffer'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/buffer'); DatasetBufferAnalystParameters.toObject(parameter, parameterObject); } else if (parameter instanceof GeometryBufferAnalystParameters) { me.mode = 'geometry'; - me.url = Util.urlPathAppend(me.url, 'geometry/buffer'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/buffer'); GeometryBufferAnalystParameters.toObject(parameter, parameterObject); } - var jsonParameters = Util.toJSON(parameterObject); + var jsonParameters = Util_Util.toJSON(parameterObject); this.returnContent = true; return me.request({ method: "POST", @@ -112410,7 +112824,7 @@ var BufferAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/DensityKernelAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/DensityKernelAnalystParameters.js function DensityKernelAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return DensityKernelAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DensityKernelAnalystParameters_typeof(o); } function DensityKernelAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DensityKernelAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DensityKernelAnalystParameters_toPropertyKey(o.key), o); } } @@ -112491,7 +112905,7 @@ var DensityKernelAnalystParameters = /*#__PURE__*/function () { * @description 如果用户命名的结果数据集名称与已有的数据集重名,是否删除已有的数据集。 */ this.deleteExistResultDataset = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.DensityKernelAnalystParameters"; } @@ -112531,7 +112945,7 @@ var DensityKernelAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/DensityAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/DensityAnalystService.js function DensityAnalystService_typeof(o) { "@babel/helpers - typeof"; return DensityAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DensityAnalystService_typeof(o); } function DensityAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DensityAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DensityAnalystService_toPropertyKey(o.key), o); } } @@ -112542,7 +112956,7 @@ function DensityAnalystService_callSuper(t, o, e) { return o = DensityAnalystSer function DensityAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == DensityAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DensityAnalystService_assertThisInitialized(t); } function DensityAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DensityAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DensityAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DensityAnalystService_superPropGet(t, o, e, r) { var p = DensityAnalystService_get(DensityAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DensityAnalystService_superPropGet(t, e, o, r) { var p = DensityAnalystService_get(DensityAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DensityAnalystService_get() { return DensityAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DensityAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DensityAnalystService_get.apply(null, arguments); } function DensityAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DensityAnalystService_getPrototypeOf(t));); return t; } function DensityAnalystService_getPrototypeOf(t) { return DensityAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DensityAnalystService_getPrototypeOf(t); } @@ -112587,7 +113001,7 @@ var DensityAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { */ _this.mode = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.DensityAnalystService"; return _this; @@ -112618,12 +113032,12 @@ var DensityAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { var me = this; var parameterObject = new Object(); if (parameter instanceof DensityKernelAnalystParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/densityanalyst/kernel'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/densityanalyst/kernel'); me.mode = "kernel"; } DensityKernelAnalystParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -112634,7 +113048,7 @@ var DensityAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/GenerateSpatialDataParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GenerateSpatialDataParameters.js function GenerateSpatialDataParameters_typeof(o) { "@babel/helpers - typeof"; return GenerateSpatialDataParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GenerateSpatialDataParameters_typeof(o); } function GenerateSpatialDataParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GenerateSpatialDataParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GenerateSpatialDataParameters_toPropertyKey(o.key), o); } } @@ -112743,7 +113157,7 @@ var GenerateSpatialDataParameters = /*#__PURE__*/function () { */ this.dataReturnOption = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.GenerateSpatialDataParameters"; } @@ -112775,7 +113189,7 @@ var GenerateSpatialDataParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GenerateSpatialDataService.js +;// CONCATENATED MODULE: ./src/common/iServer/GenerateSpatialDataService.js function GenerateSpatialDataService_typeof(o) { "@babel/helpers - typeof"; return GenerateSpatialDataService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GenerateSpatialDataService_typeof(o); } function GenerateSpatialDataService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GenerateSpatialDataService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GenerateSpatialDataService_toPropertyKey(o.key), o); } } @@ -112786,7 +113200,7 @@ function GenerateSpatialDataService_callSuper(t, o, e) { return o = GenerateSpat function GenerateSpatialDataService_possibleConstructorReturn(t, e) { if (e && ("object" == GenerateSpatialDataService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GenerateSpatialDataService_assertThisInitialized(t); } function GenerateSpatialDataService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GenerateSpatialDataService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GenerateSpatialDataService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GenerateSpatialDataService_superPropGet(t, o, e, r) { var p = GenerateSpatialDataService_get(GenerateSpatialDataService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GenerateSpatialDataService_superPropGet(t, e, o, r) { var p = GenerateSpatialDataService_get(GenerateSpatialDataService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GenerateSpatialDataService_get() { return GenerateSpatialDataService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GenerateSpatialDataService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GenerateSpatialDataService_get.apply(null, arguments); } function GenerateSpatialDataService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GenerateSpatialDataService_getPrototypeOf(t));); return t; } function GenerateSpatialDataService_getPrototypeOf(t) { return GenerateSpatialDataService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GenerateSpatialDataService_getPrototypeOf(t); } @@ -112902,14 +113316,14 @@ var GenerateSpatialDataService = /*#__PURE__*/function (_SpatialAnalystBase) { var jsonParameters = "", jsonStr = "datasets/" + params.routeTable + "/linearreferencing/generatespatialdata", me = this; - me.url = Util.urlPathAppend(me.url, jsonStr); - me.url = Util.urlAppend(me.url, 'returnContent=true'); - jsonParameters = Util.toJSON(params); + me.url = Util_Util.urlPathAppend(me.url, jsonStr); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); + jsonParameters = Util_Util.toJSON(params); return jsonParameters; } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/GeoRelationAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GeoRelationAnalystParameters.js function GeoRelationAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return GeoRelationAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoRelationAnalystParameters_typeof(o); } function GeoRelationAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoRelationAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoRelationAnalystParameters_toPropertyKey(o.key), o); } } @@ -112934,8 +113348,8 @@ function GeoRelationAnalystParameters_toPrimitive(t, r) { if ("object" != GeoRel * @param {boolean} [options.isBorderInside] - 边界处理方式,即位于面边线上的点是否被面包含。此参数仅用于空间关系为包含或被包含的情况。 * @param {boolean} [options.returnFeature] - 是否返回 Feature 信息。 * @param {boolean} [options.returnGeoRelatedOnly=true] - 仅返回满足指定空间关系的空间对象。 - * @param {number} [options.startRecord=0] - 分析结果起始记录位置。 - * @param {number} [options.expectCount=500] - 空间关系分析期望返回结果记录数,如果实际不足500条结果则返回所有分析结果。 + * @param {number} [options.startRecord=0] - 空间关系分析结果起始记录位置。 + * @param {number} [options.expectCount=500] - 空间关系分析期望返回结果记录数,如果实际不足 500 条结果则返回所有分析结果。 * @usage */ var GeoRelationAnalystParameters = /*#__PURE__*/function () { @@ -112985,7 +113399,7 @@ var GeoRelationAnalystParameters = /*#__PURE__*/function () { /** * @member {number} [GeoRelationAnalystParameters.prototype.returnGeoRelatedOnly=0] - * @description 分析结果起始记录位置。 + * @description 空间关系分析结果起始记录位置。 */ this.startRecord = 0; @@ -112995,7 +113409,7 @@ var GeoRelationAnalystParameters = /*#__PURE__*/function () { */ this.expectCount = 500; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.GeoRelationAnalystParameters"; } @@ -113026,7 +113440,7 @@ var GeoRelationAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GeoRelationAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/GeoRelationAnalystService.js function GeoRelationAnalystService_typeof(o) { "@babel/helpers - typeof"; return GeoRelationAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoRelationAnalystService_typeof(o); } function GeoRelationAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoRelationAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoRelationAnalystService_toPropertyKey(o.key), o); } } @@ -113037,7 +113451,7 @@ function GeoRelationAnalystService_callSuper(t, o, e) { return o = GeoRelationAn function GeoRelationAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == GeoRelationAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeoRelationAnalystService_assertThisInitialized(t); } function GeoRelationAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeoRelationAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeoRelationAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeoRelationAnalystService_superPropGet(t, o, e, r) { var p = GeoRelationAnalystService_get(GeoRelationAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeoRelationAnalystService_superPropGet(t, e, o, r) { var p = GeoRelationAnalystService_get(GeoRelationAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeoRelationAnalystService_get() { return GeoRelationAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeoRelationAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeoRelationAnalystService_get.apply(null, arguments); } function GeoRelationAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeoRelationAnalystService_getPrototypeOf(t));); return t; } function GeoRelationAnalystService_getPrototypeOf(t) { return GeoRelationAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeoRelationAnalystService_getPrototypeOf(t); } @@ -113128,9 +113542,9 @@ var GeoRelationAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { return; } var me = this; - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/georelation'); - var jsonParameters = Util.toJSON(parameter); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/georelation'); + var jsonParameters = Util_Util.toJSON(parameter); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -113141,7 +113555,7 @@ var GeoRelationAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/InterpolationAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/InterpolationAnalystParameters.js function InterpolationAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return InterpolationAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InterpolationAnalystParameters_typeof(o); } function InterpolationAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function InterpolationAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, InterpolationAnalystParameters_toPropertyKey(o.key), o); } } @@ -113272,7 +113686,7 @@ var InterpolationAnalystParameters = /*#__PURE__*/function () { * @description 对插值分析结果进行裁剪的参数。 */ this.clipParam = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.InterpolationAnalystParameters"; } @@ -113324,7 +113738,7 @@ var InterpolationAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/InterpolationRBFAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/InterpolationRBFAnalystParameters.js function InterpolationRBFAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return InterpolationRBFAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InterpolationRBFAnalystParameters_typeof(o); } function InterpolationRBFAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function InterpolationRBFAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, InterpolationRBFAnalystParameters_toPropertyKey(o.key), o); } } @@ -113335,7 +113749,7 @@ function InterpolationRBFAnalystParameters_callSuper(t, o, e) { return o = Inter function InterpolationRBFAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == InterpolationRBFAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return InterpolationRBFAnalystParameters_assertThisInitialized(t); } function InterpolationRBFAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function InterpolationRBFAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (InterpolationRBFAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function InterpolationRBFAnalystParameters_superPropGet(t, o, e, r) { var p = InterpolationRBFAnalystParameters_get(InterpolationRBFAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function InterpolationRBFAnalystParameters_superPropGet(t, e, o, r) { var p = InterpolationRBFAnalystParameters_get(InterpolationRBFAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function InterpolationRBFAnalystParameters_get() { return InterpolationRBFAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = InterpolationRBFAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, InterpolationRBFAnalystParameters_get.apply(null, arguments); } function InterpolationRBFAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = InterpolationRBFAnalystParameters_getPrototypeOf(t));); return t; } function InterpolationRBFAnalystParameters_getPrototypeOf(t) { return InterpolationRBFAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, InterpolationRBFAnalystParameters_getPrototypeOf(t); } @@ -113437,7 +113851,7 @@ var InterpolationRBFAnalystParameters = /*#__PURE__*/function (_InterpolationAna */ _this.maxPointCountInNode = 50; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.InterpolationRBFAnalystParameters"; return _this; @@ -113477,7 +113891,7 @@ var InterpolationRBFAnalystParameters = /*#__PURE__*/function (_InterpolationAna } }]); }(InterpolationAnalystParameters); -;// ./src/common/iServer/InterpolationDensityAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/InterpolationDensityAnalystParameters.js function InterpolationDensityAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return InterpolationDensityAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InterpolationDensityAnalystParameters_typeof(o); } function InterpolationDensityAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function InterpolationDensityAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, InterpolationDensityAnalystParameters_toPropertyKey(o.key), o); } } @@ -113488,7 +113902,7 @@ function InterpolationDensityAnalystParameters_callSuper(t, o, e) { return o = I function InterpolationDensityAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == InterpolationDensityAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return InterpolationDensityAnalystParameters_assertThisInitialized(t); } function InterpolationDensityAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function InterpolationDensityAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (InterpolationDensityAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function InterpolationDensityAnalystParameters_superPropGet(t, o, e, r) { var p = InterpolationDensityAnalystParameters_get(InterpolationDensityAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function InterpolationDensityAnalystParameters_superPropGet(t, e, o, r) { var p = InterpolationDensityAnalystParameters_get(InterpolationDensityAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function InterpolationDensityAnalystParameters_get() { return InterpolationDensityAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = InterpolationDensityAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, InterpolationDensityAnalystParameters_get.apply(null, arguments); } function InterpolationDensityAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = InterpolationDensityAnalystParameters_getPrototypeOf(t));); return t; } function InterpolationDensityAnalystParameters_getPrototypeOf(t) { return InterpolationDensityAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, InterpolationDensityAnalystParameters_getPrototypeOf(t); } @@ -113539,7 +113953,7 @@ var InterpolationDensityAnalystParameters = /*#__PURE__*/function (_Interpolatio InterpolationDensityAnalystParameters_classCallCheck(this, InterpolationDensityAnalystParameters); _this = InterpolationDensityAnalystParameters_callSuper(this, InterpolationDensityAnalystParameters, [options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.InterpolationDensityAnalystParameters"; return _this; @@ -113557,7 +113971,7 @@ var InterpolationDensityAnalystParameters = /*#__PURE__*/function (_Interpolatio } }]); }(InterpolationAnalystParameters); -;// ./src/common/iServer/InterpolationIDWAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/InterpolationIDWAnalystParameters.js function InterpolationIDWAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return InterpolationIDWAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InterpolationIDWAnalystParameters_typeof(o); } function InterpolationIDWAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function InterpolationIDWAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, InterpolationIDWAnalystParameters_toPropertyKey(o.key), o); } } @@ -113568,7 +113982,7 @@ function InterpolationIDWAnalystParameters_callSuper(t, o, e) { return o = Inter function InterpolationIDWAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == InterpolationIDWAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return InterpolationIDWAnalystParameters_assertThisInitialized(t); } function InterpolationIDWAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function InterpolationIDWAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (InterpolationIDWAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function InterpolationIDWAnalystParameters_superPropGet(t, o, e, r) { var p = InterpolationIDWAnalystParameters_get(InterpolationIDWAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function InterpolationIDWAnalystParameters_superPropGet(t, e, o, r) { var p = InterpolationIDWAnalystParameters_get(InterpolationIDWAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function InterpolationIDWAnalystParameters_get() { return InterpolationIDWAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = InterpolationIDWAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, InterpolationIDWAnalystParameters_get.apply(null, arguments); } function InterpolationIDWAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = InterpolationIDWAnalystParameters_getPrototypeOf(t));); return t; } function InterpolationIDWAnalystParameters_getPrototypeOf(t) { return InterpolationIDWAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, InterpolationIDWAnalystParameters_getPrototypeOf(t); } @@ -113646,7 +114060,7 @@ var InterpolationIDWAnalystParameters = /*#__PURE__*/function (_InterpolationAna */ _this.expectedCount = 12; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.InterpolationIDWAnalystParameters"; return _this; @@ -113668,7 +114082,7 @@ var InterpolationIDWAnalystParameters = /*#__PURE__*/function (_InterpolationAna } }]); }(InterpolationAnalystParameters); -;// ./src/common/iServer/ThiessenAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/ThiessenAnalystParameters.js function ThiessenAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return ThiessenAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThiessenAnalystParameters_typeof(o); } function ThiessenAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThiessenAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThiessenAnalystParameters_toPropertyKey(o.key), o); } } @@ -113728,7 +114142,7 @@ var ThiessenAnalystParameters = /*#__PURE__*/function () { * @description 是否返回分析得到的多边形面数组。 */ this.returnResultRegion = true; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.ThiessenAnalystParameters"; } @@ -113751,7 +114165,7 @@ var ThiessenAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/InterpolationKrigingAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/InterpolationKrigingAnalystParameters.js function InterpolationKrigingAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return InterpolationKrigingAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InterpolationKrigingAnalystParameters_typeof(o); } function InterpolationKrigingAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function InterpolationKrigingAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, InterpolationKrigingAnalystParameters_toPropertyKey(o.key), o); } } @@ -113762,7 +114176,7 @@ function InterpolationKrigingAnalystParameters_callSuper(t, o, e) { return o = I function InterpolationKrigingAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == InterpolationKrigingAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return InterpolationKrigingAnalystParameters_assertThisInitialized(t); } function InterpolationKrigingAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function InterpolationKrigingAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (InterpolationKrigingAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function InterpolationKrigingAnalystParameters_superPropGet(t, o, e, r) { var p = InterpolationKrigingAnalystParameters_get(InterpolationKrigingAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function InterpolationKrigingAnalystParameters_superPropGet(t, e, o, r) { var p = InterpolationKrigingAnalystParameters_get(InterpolationKrigingAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function InterpolationKrigingAnalystParameters_get() { return InterpolationKrigingAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = InterpolationKrigingAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, InterpolationKrigingAnalystParameters_get.apply(null, arguments); } function InterpolationKrigingAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = InterpolationKrigingAnalystParameters_getPrototypeOf(t));); return t; } function InterpolationKrigingAnalystParameters_getPrototypeOf(t) { return InterpolationKrigingAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, InterpolationKrigingAnalystParameters_getPrototypeOf(t); } @@ -113948,7 +114362,7 @@ var InterpolationKrigingAnalystParameters = /*#__PURE__*/function (_Interpolatio */ _this.maxPointCountInNode = 50; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.InterpolationKrigingAnalystParameters"; return _this; @@ -113979,7 +114393,7 @@ var InterpolationKrigingAnalystParameters = /*#__PURE__*/function (_Interpolatio } }]); }(InterpolationAnalystParameters); -;// ./src/common/iServer/InterpolationAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/InterpolationAnalystService.js function InterpolationAnalystService_typeof(o) { "@babel/helpers - typeof"; return InterpolationAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InterpolationAnalystService_typeof(o); } function InterpolationAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function InterpolationAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, InterpolationAnalystService_toPropertyKey(o.key), o); } } @@ -113990,7 +114404,7 @@ function InterpolationAnalystService_callSuper(t, o, e) { return o = Interpolati function InterpolationAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == InterpolationAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return InterpolationAnalystService_assertThisInitialized(t); } function InterpolationAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function InterpolationAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (InterpolationAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function InterpolationAnalystService_superPropGet(t, o, e, r) { var p = InterpolationAnalystService_get(InterpolationAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function InterpolationAnalystService_superPropGet(t, e, o, r) { var p = InterpolationAnalystService_get(InterpolationAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function InterpolationAnalystService_get() { return InterpolationAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = InterpolationAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, InterpolationAnalystService_get.apply(null, arguments); } function InterpolationAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = InterpolationAnalystService_getPrototypeOf(t));); return t; } function InterpolationAnalystService_getPrototypeOf(t) { return InterpolationAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, InterpolationAnalystService_getPrototypeOf(t); } @@ -114043,7 +114457,7 @@ var InterpolationAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { _this.mode = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } return _this; } @@ -114076,35 +114490,35 @@ var InterpolationAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { if (parameter instanceof InterpolationDensityAnalystParameters) { me.mode = 'Density'; if (parameter.InterpolationAnalystType === 'geometry') { - me.url = Util.urlPathAppend(me.url, 'geometry/interpolation/density'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/interpolation/density'); } else { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/density'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/density'); } } else if (parameter instanceof InterpolationIDWAnalystParameters) { me.mode = 'IDW'; if (parameter.InterpolationAnalystType === 'geometry') { - me.url = Util.urlPathAppend(me.url, 'geometry/interpolation/idw'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/interpolation/idw'); } else { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/idw'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/idw'); } } else if (parameter instanceof InterpolationRBFAnalystParameters) { me.mode = 'RBF'; if (parameter.InterpolationAnalystType === 'geometry') { - me.url = Util.urlPathAppend(me.url, 'geometry/interpolation/rbf'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/interpolation/rbf'); } else { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/rbf'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/rbf'); } } else if (parameter instanceof InterpolationKrigingAnalystParameters) { me.mode = 'Kriging'; if (parameter.InterpolationAnalystType === 'geometry') { - me.url = Util.urlPathAppend(me.url, 'geometry/interpolation/kriging'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/interpolation/kriging'); } else { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/kriging'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/interpolation/kriging'); } } InterpolationAnalystParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -114115,7 +114529,7 @@ var InterpolationAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/MathExpressionAnalysisParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/MathExpressionAnalysisParameters.js function MathExpressionAnalysisParameters_typeof(o) { "@babel/helpers - typeof"; return MathExpressionAnalysisParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MathExpressionAnalysisParameters_typeof(o); } function MathExpressionAnalysisParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MathExpressionAnalysisParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MathExpressionAnalysisParameters_toPropertyKey(o.key), o); } } @@ -114200,7 +114614,7 @@ var MathExpressionAnalysisParameters = /*#__PURE__*/function () { * @description 如果用户命名的结果数据集名称与已有的数据集重名,是否删除已有的数据集。 */ this.deleteExistResultDataset = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.MathExpressionAnalysisParameters"; } @@ -114257,7 +114671,7 @@ var MathExpressionAnalysisParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/MathExpressionAnalysisService.js +;// CONCATENATED MODULE: ./src/common/iServer/MathExpressionAnalysisService.js function MathExpressionAnalysisService_typeof(o) { "@babel/helpers - typeof"; return MathExpressionAnalysisService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MathExpressionAnalysisService_typeof(o); } function MathExpressionAnalysisService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MathExpressionAnalysisService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MathExpressionAnalysisService_toPropertyKey(o.key), o); } } @@ -114268,7 +114682,7 @@ function MathExpressionAnalysisService_callSuper(t, o, e) { return o = MathExpre function MathExpressionAnalysisService_possibleConstructorReturn(t, e) { if (e && ("object" == MathExpressionAnalysisService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return MathExpressionAnalysisService_assertThisInitialized(t); } function MathExpressionAnalysisService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function MathExpressionAnalysisService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (MathExpressionAnalysisService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function MathExpressionAnalysisService_superPropGet(t, o, e, r) { var p = MathExpressionAnalysisService_get(MathExpressionAnalysisService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function MathExpressionAnalysisService_superPropGet(t, e, o, r) { var p = MathExpressionAnalysisService_get(MathExpressionAnalysisService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function MathExpressionAnalysisService_get() { return MathExpressionAnalysisService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = MathExpressionAnalysisService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, MathExpressionAnalysisService_get.apply(null, arguments); } function MathExpressionAnalysisService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = MathExpressionAnalysisService_getPrototypeOf(t));); return t; } function MathExpressionAnalysisService_getPrototypeOf(t) { return MathExpressionAnalysisService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MathExpressionAnalysisService_getPrototypeOf(t); } @@ -114330,11 +114744,11 @@ var MathExpressionAnalysisService = /*#__PURE__*/function (_SpatialAnalystBase) var me = this; var parameterObject = {}; if (parameter instanceof MathExpressionAnalysisParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/mathanalyst'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/mathanalyst'); } MathExpressionAnalysisParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -114345,7 +114759,7 @@ var MathExpressionAnalysisService = /*#__PURE__*/function (_SpatialAnalystBase) } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/OverlayAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/OverlayAnalystParameters.js function OverlayAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return OverlayAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OverlayAnalystParameters_typeof(o); } function OverlayAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OverlayAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OverlayAnalystParameters_toPropertyKey(o.key), o); } } @@ -114375,7 +114789,7 @@ var OverlayAnalystParameters = /*#__PURE__*/function () { */ this.operation = OverlayOperationType.UNION; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.OverlayAnalystParameters"; } @@ -114392,7 +114806,7 @@ var OverlayAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/DatasetOverlayAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasetOverlayAnalystParameters.js function DatasetOverlayAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return DatasetOverlayAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasetOverlayAnalystParameters_typeof(o); } function DatasetOverlayAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasetOverlayAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasetOverlayAnalystParameters_toPropertyKey(o.key), o); } } @@ -114403,7 +114817,7 @@ function DatasetOverlayAnalystParameters_callSuper(t, o, e) { return o = Dataset function DatasetOverlayAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == DatasetOverlayAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DatasetOverlayAnalystParameters_assertThisInitialized(t); } function DatasetOverlayAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DatasetOverlayAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DatasetOverlayAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DatasetOverlayAnalystParameters_superPropGet(t, o, e, r) { var p = DatasetOverlayAnalystParameters_get(DatasetOverlayAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DatasetOverlayAnalystParameters_superPropGet(t, e, o, r) { var p = DatasetOverlayAnalystParameters_get(DatasetOverlayAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DatasetOverlayAnalystParameters_get() { return DatasetOverlayAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DatasetOverlayAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DatasetOverlayAnalystParameters_get.apply(null, arguments); } function DatasetOverlayAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DatasetOverlayAnalystParameters_getPrototypeOf(t));); return t; } function DatasetOverlayAnalystParameters_getPrototypeOf(t) { return DatasetOverlayAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DatasetOverlayAnalystParameters_getPrototypeOf(t); } @@ -114429,12 +114843,12 @@ function DatasetOverlayAnalystParameters_setPrototypeOf(t, e) { return DatasetOv * @param {string} options.operateDataset - 操作数据集的名称,即叠加对象数据集的名称。该名称用形如 "数据集名称@数据源别名" 形式来表示,例如:Neighbor_R@Jingjin。 * @param {string} options.sourceDataset - 源数据集名称。该名称用形如 "数据集名称@数据源别名" 形式来表示,例如:BaseMap_R@Jingjin。 * @param {Array.} [options.operateDatasetFields] - 叠加分析中操作数据集保留在结果数据集中的字段名列表。 - * @param {FilterParameter} [options.operateDatasetFilter] - 设置操作数据集中空间对象过滤条件。 + * @param {FilterParameter} [options.operateDatasetFilter] - 操作数据集的过滤条件,可以为 null。 * @param {Array.} [options.operateRegions] - 操作面对象集合,表示与这些面对象进行叠加分析。与 operateDataset 参数互斥,冲突时以 operateDataset 为准。 * @param {Array.} [options.sourceDatasetFields] - 叠加分析中源数据集保留在结果数据集中的字段名列表。 * @param {FilterParameter} [options.sourceDatasetFilter] - 设置源数据集中空间对象过滤条件。设置了过滤参数后,只有满足条件的对象参与叠加分析。 - * @param {number} [options.tolerance=0] - 容限。 - * @param {OverlayOperationType} options.operation - 叠加操作枚举值。 + * @param {number} [options.tolerance=0] - 叠加分析的容限值。 + * @param {OverlayOperationType} options.operation - 叠加方式,可选择 CLIP,ERASE,IDENTITY,INTERSECT,UNION,UPDATE,XOR 之一。 * @param {DataReturnOption} [options.resultSetting] - 结果返回设置类。 * @extends {GetFeaturesParametersBase} * @usage @@ -114458,7 +114872,7 @@ var DatasetOverlayAnalystParameters = /*#__PURE__*/function (_OverlayAnalystPara /** * @member {FilterParameter} DatasetOverlayAnalystParameters.prototype.operateDatasetFilter - * @description 设置操作数据集中空间对象过滤条件。 + * @description 操作数据集的过滤条件,可以为 null。 */ _this.operateDatasetFilter = new FilterParameter(); @@ -114488,7 +114902,7 @@ var DatasetOverlayAnalystParameters = /*#__PURE__*/function (_OverlayAnalystPara /** * @member {number} [DatasetOverlayAnalystParameters.prototype.tolerance=0] - * @description 容限。 + * @description 叠加分析的容限值。 */ _this.tolerance = 0; @@ -114497,7 +114911,7 @@ var DatasetOverlayAnalystParameters = /*#__PURE__*/function (_OverlayAnalystPara * @description 结果返回设置类。 */ _this.resultSetting = new DataReturnOption(); - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.DatasetOverlayAnalystParameters"; return _this; } @@ -114568,7 +114982,7 @@ var DatasetOverlayAnalystParameters = /*#__PURE__*/function (_OverlayAnalystPara } }]); }(OverlayAnalystParameters); -;// ./src/common/iServer/GeometryOverlayAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GeometryOverlayAnalystParameters.js function GeometryOverlayAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return GeometryOverlayAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeometryOverlayAnalystParameters_typeof(o); } function GeometryOverlayAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeometryOverlayAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeometryOverlayAnalystParameters_toPropertyKey(o.key), o); } } @@ -114579,7 +114993,7 @@ function GeometryOverlayAnalystParameters_callSuper(t, o, e) { return o = Geomet function GeometryOverlayAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GeometryOverlayAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeometryOverlayAnalystParameters_assertThisInitialized(t); } function GeometryOverlayAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeometryOverlayAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeometryOverlayAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeometryOverlayAnalystParameters_superPropGet(t, o, e, r) { var p = GeometryOverlayAnalystParameters_get(GeometryOverlayAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeometryOverlayAnalystParameters_superPropGet(t, e, o, r) { var p = GeometryOverlayAnalystParameters_get(GeometryOverlayAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeometryOverlayAnalystParameters_get() { return GeometryOverlayAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeometryOverlayAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeometryOverlayAnalystParameters_get.apply(null, arguments); } function GeometryOverlayAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeometryOverlayAnalystParameters_getPrototypeOf(t));); return t; } function GeometryOverlayAnalystParameters_getPrototypeOf(t) { return GeometryOverlayAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeometryOverlayAnalystParameters_getPrototypeOf(t); } @@ -114604,7 +115018,7 @@ function GeometryOverlayAnalystParameters_setPrototypeOf(t, e) { return Geometry * @param {Object} options.sourceGeometry - 叠加分析的源几何对象。 * @param {Array.} [options.operateGeometries] - 批量叠加分析的操作几何对象数组。 * @param {Array.} [options.sourceGeometries] -批量叠加分析的源几何对象数组。 - * @param {OverlayOperationType} [options.operation] - 叠加操作枚举值。 + * @param {OverlayOperationType} [options.operation] - 叠加方式,可选择 CLIP,ERASE,IDENTITY,INTERSECT,UNION,UPDATE,XOR 之一。 * @extends {OverlayAnalystParameters} * @usage */ @@ -114626,7 +115040,7 @@ var GeometryOverlayAnalystParameters = /*#__PURE__*/function (_OverlayAnalystPar _this.sourceGeometries = options.sourceGeometries; } if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GeometryOverlayAnalystParameters"; return _this; @@ -114694,7 +115108,7 @@ var GeometryOverlayAnalystParameters = /*#__PURE__*/function (_OverlayAnalystPar } }]); }(OverlayAnalystParameters); -;// ./src/common/iServer/OverlayAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/OverlayAnalystService.js function OverlayAnalystService_typeof(o) { "@babel/helpers - typeof"; return OverlayAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OverlayAnalystService_typeof(o); } function OverlayAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OverlayAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OverlayAnalystService_toPropertyKey(o.key), o); } } @@ -114705,7 +115119,7 @@ function OverlayAnalystService_callSuper(t, o, e) { return o = OverlayAnalystSer function OverlayAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == OverlayAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return OverlayAnalystService_assertThisInitialized(t); } function OverlayAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function OverlayAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (OverlayAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function OverlayAnalystService_superPropGet(t, o, e, r) { var p = OverlayAnalystService_get(OverlayAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function OverlayAnalystService_superPropGet(t, e, o, r) { var p = OverlayAnalystService_get(OverlayAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function OverlayAnalystService_get() { return OverlayAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = OverlayAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, OverlayAnalystService_get.apply(null, arguments); } function OverlayAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = OverlayAnalystService_getPrototypeOf(t));); return t; } function OverlayAnalystService_getPrototypeOf(t) { return OverlayAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, OverlayAnalystService_getPrototypeOf(t); } @@ -114752,7 +115166,7 @@ var OverlayAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { */ _this.mode = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.OverlayAnalystService"; return _this; @@ -114783,21 +115197,21 @@ var OverlayAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { var me = this; if (parameter instanceof DatasetOverlayAnalystParameters) { me.mode = "datasets"; - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.sourceDataset + '/overlay'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.sourceDataset + '/overlay'); DatasetOverlayAnalystParameters.toObject(parameter, parameterObject); } else if (parameter instanceof GeometryOverlayAnalystParameters) { me.mode = "geometry"; //支持传入多个几何要素进行叠加分析 if (parameter.operateGeometries && parameter.sourceGeometries) { - me.url = Util.urlPathAppend(me.url, 'geometry/overlay/batch'); - me.url = Util.urlAppend(me.url, 'ignoreAnalystParam=true'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/overlay/batch'); + me.url = Util_Util.urlAppend(me.url, 'ignoreAnalystParam=true'); } else { - me.url = Util.urlPathAppend(me.url, 'geometry/overlay'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/overlay'); } GeometryOverlayAnalystParameters.toObject(parameter, parameterObject); } this.returnContent = true; - var jsonParameters = Util.toJSON(parameterObject); + var jsonParameters = Util_Util.toJSON(parameterObject); return me.request({ method: "POST", data: jsonParameters, @@ -114813,7 +115227,7 @@ var OverlayAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/RouteCalculateMeasureParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/RouteCalculateMeasureParameters.js function RouteCalculateMeasureParameters_typeof(o) { "@babel/helpers - typeof"; return RouteCalculateMeasureParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RouteCalculateMeasureParameters_typeof(o); } function RouteCalculateMeasureParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RouteCalculateMeasureParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RouteCalculateMeasureParameters_toPropertyKey(o.key), o); } } @@ -114866,7 +115280,7 @@ var RouteCalculateMeasureParameters = /*#__PURE__*/function () { * @description 是否忽略子对象之间的距离。 */ this.isIgnoreGap = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.RouteCalculateMeasureParameters"; } @@ -114889,7 +115303,7 @@ var RouteCalculateMeasureParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/RouteCalculateMeasureService.js +;// CONCATENATED MODULE: ./src/common/iServer/RouteCalculateMeasureService.js function RouteCalculateMeasureService_typeof(o) { "@babel/helpers - typeof"; return RouteCalculateMeasureService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RouteCalculateMeasureService_typeof(o); } function RouteCalculateMeasureService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RouteCalculateMeasureService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RouteCalculateMeasureService_toPropertyKey(o.key), o); } } @@ -114900,7 +115314,7 @@ function RouteCalculateMeasureService_callSuper(t, o, e) { return o = RouteCalcu function RouteCalculateMeasureService_possibleConstructorReturn(t, e) { if (e && ("object" == RouteCalculateMeasureService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return RouteCalculateMeasureService_assertThisInitialized(t); } function RouteCalculateMeasureService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function RouteCalculateMeasureService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (RouteCalculateMeasureService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function RouteCalculateMeasureService_superPropGet(t, o, e, r) { var p = RouteCalculateMeasureService_get(RouteCalculateMeasureService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function RouteCalculateMeasureService_superPropGet(t, e, o, r) { var p = RouteCalculateMeasureService_get(RouteCalculateMeasureService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function RouteCalculateMeasureService_get() { return RouteCalculateMeasureService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = RouteCalculateMeasureService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, RouteCalculateMeasureService_get.apply(null, arguments); } function RouteCalculateMeasureService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = RouteCalculateMeasureService_getPrototypeOf(t));); return t; } function RouteCalculateMeasureService_getPrototypeOf(t) { return RouteCalculateMeasureService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, RouteCalculateMeasureService_getPrototypeOf(t); } @@ -115027,14 +115441,14 @@ var RouteCalculateMeasureService = /*#__PURE__*/function (_SpatialAnalystBase) { var jsonParameters, jsonStr = "geometry/calculatemeasure", me = this; - me.url = Util.urlPathAppend(me.url, jsonStr); - me.url = Util.urlAppend(me.url, 'returnContent=true'); - jsonParameters = Util.toJSON(params); + me.url = Util_Util.urlPathAppend(me.url, jsonStr); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); + jsonParameters = Util_Util.toJSON(params); return jsonParameters; } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/RouteLocatorParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/RouteLocatorParameters.js function RouteLocatorParameters_typeof(o) { "@babel/helpers - typeof"; return RouteLocatorParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RouteLocatorParameters_typeof(o); } function RouteLocatorParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RouteLocatorParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RouteLocatorParameters_toPropertyKey(o.key), o); } } @@ -115135,7 +115549,7 @@ var RouteLocatorParameters = /*#__PURE__*/function () { this.endMeasure = null; var routeFromClient = options.sourceRoute; var routeHandle = {}; - if (routeFromClient && routeFromClient instanceof Geometry && routeFromClient.components) { + if (routeFromClient && routeFromClient instanceof Geometry_Geometry && routeFromClient.components) { routeHandle.type = routeFromClient.type; routeHandle.parts = routeFromClient.parts; var parts = []; @@ -115145,7 +115559,7 @@ var RouteLocatorParameters = /*#__PURE__*/function () { routeHandle.points = parts; options.sourceRoute = routeHandle; } - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.RouteLocatorParameters"; } @@ -115170,7 +115584,7 @@ var RouteLocatorParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/RouteLocatorService.js +;// CONCATENATED MODULE: ./src/common/iServer/RouteLocatorService.js function RouteLocatorService_typeof(o) { "@babel/helpers - typeof"; return RouteLocatorService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RouteLocatorService_typeof(o); } function RouteLocatorService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RouteLocatorService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RouteLocatorService_toPropertyKey(o.key), o); } } @@ -115181,7 +115595,7 @@ function RouteLocatorService_callSuper(t, o, e) { return o = RouteLocatorService function RouteLocatorService_possibleConstructorReturn(t, e) { if (e && ("object" == RouteLocatorService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return RouteLocatorService_assertThisInitialized(t); } function RouteLocatorService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function RouteLocatorService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (RouteLocatorService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function RouteLocatorService_superPropGet(t, o, e, r) { var p = RouteLocatorService_get(RouteLocatorService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function RouteLocatorService_superPropGet(t, e, o, r) { var p = RouteLocatorService_get(RouteLocatorService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function RouteLocatorService_get() { return RouteLocatorService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = RouteLocatorService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, RouteLocatorService_get.apply(null, arguments); } function RouteLocatorService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = RouteLocatorService_getPrototypeOf(t));); return t; } function RouteLocatorService_getPrototypeOf(t) { return RouteLocatorService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, RouteLocatorService_getPrototypeOf(t); } @@ -115307,14 +115721,14 @@ var RouteLocatorService = /*#__PURE__*/function (_SpatialAnalystBase) { jsonStr = "datasets/" + params.dataset + "/linearreferencing/routelocator"; params.sourceRoute = null; } - me.url = Util.urlPathAppend(me.url, jsonStr); - me.url = Util.urlAppend(me.url, 'returnContent=true'); - jsonParameters = Util.toJSON(params); + me.url = Util_Util.urlPathAppend(me.url, jsonStr); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); + jsonParameters = Util_Util.toJSON(params); return jsonParameters; } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/SurfaceAnalystParametersSetting.js +;// CONCATENATED MODULE: ./src/common/iServer/SurfaceAnalystParametersSetting.js function SurfaceAnalystParametersSetting_typeof(o) { "@babel/helpers - typeof"; return SurfaceAnalystParametersSetting_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SurfaceAnalystParametersSetting_typeof(o); } function SurfaceAnalystParametersSetting_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SurfaceAnalystParametersSetting_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SurfaceAnalystParametersSetting_toPropertyKey(o.key), o); } } @@ -115399,7 +115813,7 @@ var SurfaceAnalystParametersSetting = /*#__PURE__*/function () { */ this.smoothness = 0; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.SurfaceAnalystParametersSetting"; } @@ -115431,26 +115845,26 @@ var SurfaceAnalystParametersSetting = /*#__PURE__*/function () { }, { key: "toJSON", value: function toJSON() { - var json = "'datumValue':" + Util.toJSON(this.datumValue); - json += ",'interval':" + Util.toJSON(this.interval); - json += ",'resampleTolerance':" + Util.toJSON(this.resampleTolerance); - json += ",'smoothMethod':" + Util.toJSON(this.smoothMethod); - json += ",'smoothness':" + Util.toJSON(this.smoothness); + var json = "'datumValue':" + Util_Util.toJSON(this.datumValue); + json += ",'interval':" + Util_Util.toJSON(this.interval); + json += ",'resampleTolerance':" + Util_Util.toJSON(this.resampleTolerance); + json += ",'smoothMethod':" + Util_Util.toJSON(this.smoothMethod); + json += ",'smoothness':" + Util_Util.toJSON(this.smoothness); if (this.expectedZValues != null) { - json += "," + "'expectedZValues':" + Util.toJSON(this.expectedZValues); + json += "," + "'expectedZValues':" + Util_Util.toJSON(this.expectedZValues); } if (this.clipRegion != null) { var serverGeometry = this.clipRegion; - if (this.clipRegion instanceof Geometry && this.clipRegion.components) { + if (this.clipRegion instanceof Geometry_Geometry && this.clipRegion.components) { serverGeometry = ServerGeometry.fromGeometry(this.clipRegion); } - json += ",'clipRegion':" + Util.toJSON(serverGeometry); + json += ",'clipRegion':" + Util_Util.toJSON(serverGeometry); } return "{" + json + "}"; } }]); }(); -;// ./src/common/iServer/SurfaceAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/SurfaceAnalystParameters.js function SurfaceAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return SurfaceAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SurfaceAnalystParameters_typeof(o); } function SurfaceAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SurfaceAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SurfaceAnalystParameters_toPropertyKey(o.key), o); } } @@ -115505,7 +115919,7 @@ var SurfaceAnalystParameters = /*#__PURE__*/function () { */ this.surfaceAnalystMethod = SurfaceAnalystMethod.ISOLINE; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.SurfaceAnalystParameters"; } @@ -115531,7 +115945,7 @@ var SurfaceAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/DatasetSurfaceAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasetSurfaceAnalystParameters.js function DatasetSurfaceAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return DatasetSurfaceAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasetSurfaceAnalystParameters_typeof(o); } function DatasetSurfaceAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasetSurfaceAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasetSurfaceAnalystParameters_toPropertyKey(o.key), o); } } @@ -115542,7 +115956,7 @@ function DatasetSurfaceAnalystParameters_callSuper(t, o, e) { return o = Dataset function DatasetSurfaceAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == DatasetSurfaceAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DatasetSurfaceAnalystParameters_assertThisInitialized(t); } function DatasetSurfaceAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DatasetSurfaceAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DatasetSurfaceAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DatasetSurfaceAnalystParameters_superPropGet(t, o, e, r) { var p = DatasetSurfaceAnalystParameters_get(DatasetSurfaceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DatasetSurfaceAnalystParameters_superPropGet(t, e, o, r) { var p = DatasetSurfaceAnalystParameters_get(DatasetSurfaceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DatasetSurfaceAnalystParameters_get() { return DatasetSurfaceAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DatasetSurfaceAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DatasetSurfaceAnalystParameters_get.apply(null, arguments); } function DatasetSurfaceAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DatasetSurfaceAnalystParameters_getPrototypeOf(t));); return t; } function DatasetSurfaceAnalystParameters_getPrototypeOf(t) { return DatasetSurfaceAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DatasetSurfaceAnalystParameters_getPrototypeOf(t); } @@ -115596,7 +116010,7 @@ var DatasetSurfaceAnalystParameters = /*#__PURE__*/function (_SurfaceAnalystPara */ _this.zValueFieldName = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.DatasetSurfaceAnalystParameters"; return _this; @@ -115635,7 +116049,7 @@ var DatasetSurfaceAnalystParameters = /*#__PURE__*/function (_SurfaceAnalystPara tempObj.filterQueryParameter = datasetSurfaceAnalystParameters.filterQueryParameter; } if (name === "extractParameter") { - if (datasetSurfaceAnalystParameters.extractParameter.clipRegion instanceof Geometry && datasetSurfaceAnalystParameters.extractParameter.clipRegion.components) { + if (datasetSurfaceAnalystParameters.extractParameter.clipRegion instanceof Geometry_Geometry && datasetSurfaceAnalystParameters.extractParameter.clipRegion.components) { datasetSurfaceAnalystParameters.extractParameter.clipRegion = ServerGeometry.fromGeometry(datasetSurfaceAnalystParameters.extractParameter.clipRegion); } tempObj.extractParameter = datasetSurfaceAnalystParameters.extractParameter; @@ -115650,7 +116064,7 @@ var DatasetSurfaceAnalystParameters = /*#__PURE__*/function (_SurfaceAnalystPara } }]); }(SurfaceAnalystParameters); -;// ./src/common/iServer/GeometrySurfaceAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GeometrySurfaceAnalystParameters.js function GeometrySurfaceAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return GeometrySurfaceAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeometrySurfaceAnalystParameters_typeof(o); } function GeometrySurfaceAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeometrySurfaceAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeometrySurfaceAnalystParameters_toPropertyKey(o.key), o); } } @@ -115661,7 +116075,7 @@ function GeometrySurfaceAnalystParameters_callSuper(t, o, e) { return o = Geomet function GeometrySurfaceAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GeometrySurfaceAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeometrySurfaceAnalystParameters_assertThisInitialized(t); } function GeometrySurfaceAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeometrySurfaceAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeometrySurfaceAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeometrySurfaceAnalystParameters_superPropGet(t, o, e, r) { var p = GeometrySurfaceAnalystParameters_get(GeometrySurfaceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeometrySurfaceAnalystParameters_superPropGet(t, e, o, r) { var p = GeometrySurfaceAnalystParameters_get(GeometrySurfaceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeometrySurfaceAnalystParameters_get() { return GeometrySurfaceAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeometrySurfaceAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeometrySurfaceAnalystParameters_get.apply(null, arguments); } function GeometrySurfaceAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeometrySurfaceAnalystParameters_getPrototypeOf(t));); return t; } function GeometrySurfaceAnalystParameters_getPrototypeOf(t) { return GeometrySurfaceAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeometrySurfaceAnalystParameters_getPrototypeOf(t); } @@ -115706,7 +116120,7 @@ var GeometrySurfaceAnalystParameters = /*#__PURE__*/function (_SurfaceAnalystPar */ _this.zValues = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GeometrySurfaceAnalystParameters"; return _this; @@ -115732,7 +116146,7 @@ var GeometrySurfaceAnalystParameters = /*#__PURE__*/function (_SurfaceAnalystPar } }]); }(SurfaceAnalystParameters); -;// ./src/common/iServer/SurfaceAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/SurfaceAnalystService.js function SurfaceAnalystService_typeof(o) { "@babel/helpers - typeof"; return SurfaceAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SurfaceAnalystService_typeof(o); } function SurfaceAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SurfaceAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SurfaceAnalystService_toPropertyKey(o.key), o); } } @@ -115743,7 +116157,7 @@ function SurfaceAnalystService_callSuper(t, o, e) { return o = SurfaceAnalystSer function SurfaceAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == SurfaceAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SurfaceAnalystService_assertThisInitialized(t); } function SurfaceAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SurfaceAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SurfaceAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SurfaceAnalystService_superPropGet(t, o, e, r) { var p = SurfaceAnalystService_get(SurfaceAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SurfaceAnalystService_superPropGet(t, e, o, r) { var p = SurfaceAnalystService_get(SurfaceAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SurfaceAnalystService_get() { return SurfaceAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SurfaceAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SurfaceAnalystService_get.apply(null, arguments); } function SurfaceAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SurfaceAnalystService_getPrototypeOf(t));); return t; } function SurfaceAnalystService_getPrototypeOf(t) { return SurfaceAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SurfaceAnalystService_getPrototypeOf(t); } @@ -115835,12 +116249,12 @@ var SurfaceAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { var parameterObject = {}; var me = this; if (params instanceof DatasetSurfaceAnalystParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + params.dataset + '/' + params.surfaceAnalystMethod.toLowerCase()); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + params.dataset + '/' + params.surfaceAnalystMethod.toLowerCase()); DatasetSurfaceAnalystParameters.toObject(params, parameterObject); - jsonParameters = Util.toJSON(parameterObject); + jsonParameters = Util_Util.toJSON(parameterObject); } else if (params instanceof GeometrySurfaceAnalystParameters) { - me.url = Util.urlPathAppend(me.url, 'geometry/' + params.surfaceAnalystMethod.toLowerCase()); - jsonParameters = Util.toJSON(params); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/' + params.surfaceAnalystMethod.toLowerCase()); + jsonParameters = Util_Util.toJSON(params); } else { return; } @@ -115854,7 +116268,7 @@ var SurfaceAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/TerrainCurvatureCalculationParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainCurvatureCalculationParameters.js function TerrainCurvatureCalculationParameters_typeof(o) { "@babel/helpers - typeof"; return TerrainCurvatureCalculationParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainCurvatureCalculationParameters_typeof(o); } function TerrainCurvatureCalculationParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainCurvatureCalculationParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainCurvatureCalculationParameters_toPropertyKey(o.key), o); } } @@ -115926,7 +116340,7 @@ var TerrainCurvatureCalculationParameters = /*#__PURE__*/function () { * @description 如果用户命名的结果数据集名称与已有的数据集重名,是否删除已有的数据集。 */ this.deleteExistResultDataset = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TerrainCurvatureCalculationParameters"; } @@ -115963,7 +116377,7 @@ var TerrainCurvatureCalculationParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TerrainCurvatureCalculationService.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainCurvatureCalculationService.js function TerrainCurvatureCalculationService_typeof(o) { "@babel/helpers - typeof"; return TerrainCurvatureCalculationService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainCurvatureCalculationService_typeof(o); } function TerrainCurvatureCalculationService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainCurvatureCalculationService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainCurvatureCalculationService_toPropertyKey(o.key), o); } } @@ -115974,7 +116388,7 @@ function TerrainCurvatureCalculationService_callSuper(t, o, e) { return o = Terr function TerrainCurvatureCalculationService_possibleConstructorReturn(t, e) { if (e && ("object" == TerrainCurvatureCalculationService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TerrainCurvatureCalculationService_assertThisInitialized(t); } function TerrainCurvatureCalculationService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TerrainCurvatureCalculationService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TerrainCurvatureCalculationService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TerrainCurvatureCalculationService_superPropGet(t, o, e, r) { var p = TerrainCurvatureCalculationService_get(TerrainCurvatureCalculationService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TerrainCurvatureCalculationService_superPropGet(t, e, o, r) { var p = TerrainCurvatureCalculationService_get(TerrainCurvatureCalculationService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TerrainCurvatureCalculationService_get() { return TerrainCurvatureCalculationService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TerrainCurvatureCalculationService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TerrainCurvatureCalculationService_get.apply(null, arguments); } function TerrainCurvatureCalculationService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TerrainCurvatureCalculationService_getPrototypeOf(t));); return t; } function TerrainCurvatureCalculationService_getPrototypeOf(t) { return TerrainCurvatureCalculationService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TerrainCurvatureCalculationService_getPrototypeOf(t); } @@ -116043,11 +116457,11 @@ var TerrainCurvatureCalculationService = /*#__PURE__*/function (_SpatialAnalystB var me = this; var parameterObject = {}; if (parameter instanceof TerrainCurvatureCalculationParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/curvature'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/curvature'); } TerrainCurvatureCalculationParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -116058,7 +116472,7 @@ var TerrainCurvatureCalculationService = /*#__PURE__*/function (_SpatialAnalystB } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/TerrainCutFillCalculationParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainCutFillCalculationParameters.js function TerrainCutFillCalculationParameters_typeof(o) { "@babel/helpers - typeof"; return TerrainCutFillCalculationParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainCutFillCalculationParameters_typeof(o); } function TerrainCutFillCalculationParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainCutFillCalculationParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainCutFillCalculationParameters_toPropertyKey(o.key), o); } } @@ -116173,7 +116587,7 @@ var TerrainCutFillCalculationParameters = /*#__PURE__*/function () { * @description 三维面对象,当填挖方分析的类型为 REGION3D 时有效。 */ this.region3D = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TerrainCutFillCalculationParameters"; } @@ -116214,7 +116628,7 @@ var TerrainCutFillCalculationParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TerrainCutFillCalculationService.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainCutFillCalculationService.js function TerrainCutFillCalculationService_typeof(o) { "@babel/helpers - typeof"; return TerrainCutFillCalculationService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainCutFillCalculationService_typeof(o); } function TerrainCutFillCalculationService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainCutFillCalculationService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainCutFillCalculationService_toPropertyKey(o.key), o); } } @@ -116225,7 +116639,7 @@ function TerrainCutFillCalculationService_callSuper(t, o, e) { return o = Terrai function TerrainCutFillCalculationService_possibleConstructorReturn(t, e) { if (e && ("object" == TerrainCutFillCalculationService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TerrainCutFillCalculationService_assertThisInitialized(t); } function TerrainCutFillCalculationService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TerrainCutFillCalculationService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TerrainCutFillCalculationService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TerrainCutFillCalculationService_superPropGet(t, o, e, r) { var p = TerrainCutFillCalculationService_get(TerrainCutFillCalculationService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TerrainCutFillCalculationService_superPropGet(t, e, o, r) { var p = TerrainCutFillCalculationService_get(TerrainCutFillCalculationService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TerrainCutFillCalculationService_get() { return TerrainCutFillCalculationService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TerrainCutFillCalculationService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TerrainCutFillCalculationService_get.apply(null, arguments); } function TerrainCutFillCalculationService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TerrainCutFillCalculationService_getPrototypeOf(t));); return t; } function TerrainCutFillCalculationService_getPrototypeOf(t) { return TerrainCutFillCalculationService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TerrainCutFillCalculationService_getPrototypeOf(t); } @@ -116291,11 +116705,11 @@ var TerrainCutFillCalculationService = /*#__PURE__*/function (_SpatialAnalystBas var me = this; var parameterObject = {}; if (parameter instanceof TerrainCutFillCalculationParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/cutfill'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/cutfill'); } TerrainCutFillCalculationParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -116306,7 +116720,7 @@ var TerrainCutFillCalculationService = /*#__PURE__*/function (_SpatialAnalystBas } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/TerrainAspectCalculationParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainAspectCalculationParameters.js function TerrainAspectCalculationParameters_typeof(o) { "@babel/helpers - typeof"; return TerrainAspectCalculationParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainAspectCalculationParameters_typeof(o); } function TerrainAspectCalculationParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainAspectCalculationParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainAspectCalculationParameters_toPropertyKey(o.key), o); } } @@ -116360,7 +116774,7 @@ var TerrainAspectCalculationParameters = /*#__PURE__*/function () { * @description 如果用户命名的结果数据集名称与已有的数据集重名,是否删除已有的数据集。 */ this.deleteExistResultDataset = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TerrainAspectCalculationParameters"; } @@ -116394,7 +116808,7 @@ var TerrainAspectCalculationParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TerrainAspectCalculationService.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainAspectCalculationService.js function TerrainAspectCalculationService_typeof(o) { "@babel/helpers - typeof"; return TerrainAspectCalculationService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainAspectCalculationService_typeof(o); } function TerrainAspectCalculationService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainAspectCalculationService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainAspectCalculationService_toPropertyKey(o.key), o); } } @@ -116405,7 +116819,7 @@ function TerrainAspectCalculationService_callSuper(t, o, e) { return o = Terrain function TerrainAspectCalculationService_possibleConstructorReturn(t, e) { if (e && ("object" == TerrainAspectCalculationService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TerrainAspectCalculationService_assertThisInitialized(t); } function TerrainAspectCalculationService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TerrainAspectCalculationService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TerrainAspectCalculationService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TerrainAspectCalculationService_superPropGet(t, o, e, r) { var p = TerrainAspectCalculationService_get(TerrainAspectCalculationService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TerrainAspectCalculationService_superPropGet(t, e, o, r) { var p = TerrainAspectCalculationService_get(TerrainAspectCalculationService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TerrainAspectCalculationService_get() { return TerrainAspectCalculationService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TerrainAspectCalculationService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TerrainAspectCalculationService_get.apply(null, arguments); } function TerrainAspectCalculationService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TerrainAspectCalculationService_getPrototypeOf(t));); return t; } function TerrainAspectCalculationService_getPrototypeOf(t) { return TerrainAspectCalculationService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TerrainAspectCalculationService_getPrototypeOf(t); } @@ -116472,11 +116886,11 @@ var TerrainAspectCalculationService = /*#__PURE__*/function (_SpatialAnalystBase var me = this; var parameterObject = {}; if (parameter instanceof TerrainAspectCalculationParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/aspect'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/aspect'); } TerrainAspectCalculationParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -116487,7 +116901,7 @@ var TerrainAspectCalculationService = /*#__PURE__*/function (_SpatialAnalystBase } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/TerrainSlopeCalculationParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainSlopeCalculationParameters.js function TerrainSlopeCalculationParameters_typeof(o) { "@babel/helpers - typeof"; return TerrainSlopeCalculationParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainSlopeCalculationParameters_typeof(o); } function TerrainSlopeCalculationParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainSlopeCalculationParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainSlopeCalculationParameters_toPropertyKey(o.key), o); } } @@ -116562,7 +116976,7 @@ var TerrainSlopeCalculationParameters = /*#__PURE__*/function () { RADIAN:以弧度为单位表示坡度。 */ this.slopeType = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TerrainSlopeCalculationParameters"; } @@ -116598,7 +117012,7 @@ var TerrainSlopeCalculationParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TerrainSlopeCalculationService.js +;// CONCATENATED MODULE: ./src/common/iServer/TerrainSlopeCalculationService.js function TerrainSlopeCalculationService_typeof(o) { "@babel/helpers - typeof"; return TerrainSlopeCalculationService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TerrainSlopeCalculationService_typeof(o); } function TerrainSlopeCalculationService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TerrainSlopeCalculationService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TerrainSlopeCalculationService_toPropertyKey(o.key), o); } } @@ -116609,7 +117023,7 @@ function TerrainSlopeCalculationService_callSuper(t, o, e) { return o = TerrainS function TerrainSlopeCalculationService_possibleConstructorReturn(t, e) { if (e && ("object" == TerrainSlopeCalculationService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TerrainSlopeCalculationService_assertThisInitialized(t); } function TerrainSlopeCalculationService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TerrainSlopeCalculationService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TerrainSlopeCalculationService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TerrainSlopeCalculationService_superPropGet(t, o, e, r) { var p = TerrainSlopeCalculationService_get(TerrainSlopeCalculationService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TerrainSlopeCalculationService_superPropGet(t, e, o, r) { var p = TerrainSlopeCalculationService_get(TerrainSlopeCalculationService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TerrainSlopeCalculationService_get() { return TerrainSlopeCalculationService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TerrainSlopeCalculationService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TerrainSlopeCalculationService_get.apply(null, arguments); } function TerrainSlopeCalculationService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TerrainSlopeCalculationService_getPrototypeOf(t));); return t; } function TerrainSlopeCalculationService_getPrototypeOf(t) { return TerrainSlopeCalculationService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TerrainSlopeCalculationService_getPrototypeOf(t); } @@ -116677,11 +117091,11 @@ var TerrainSlopeCalculationService = /*#__PURE__*/function (_SpatialAnalystBase) var me = this; var parameterObject = {}; if (parameter instanceof TerrainSlopeCalculationParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/slope'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/terraincalculation/slope'); } TerrainSlopeCalculationParameters.toObject(parameter, parameterObject); - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -116692,7 +117106,7 @@ var TerrainSlopeCalculationService = /*#__PURE__*/function (_SpatialAnalystBase) } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/DatasetThiessenAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasetThiessenAnalystParameters.js function DatasetThiessenAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return DatasetThiessenAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasetThiessenAnalystParameters_typeof(o); } function DatasetThiessenAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasetThiessenAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasetThiessenAnalystParameters_toPropertyKey(o.key), o); } } @@ -116703,7 +117117,7 @@ function DatasetThiessenAnalystParameters_callSuper(t, o, e) { return o = Datase function DatasetThiessenAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == DatasetThiessenAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DatasetThiessenAnalystParameters_assertThisInitialized(t); } function DatasetThiessenAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DatasetThiessenAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DatasetThiessenAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DatasetThiessenAnalystParameters_superPropGet(t, o, e, r) { var p = DatasetThiessenAnalystParameters_get(DatasetThiessenAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DatasetThiessenAnalystParameters_superPropGet(t, e, o, r) { var p = DatasetThiessenAnalystParameters_get(DatasetThiessenAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DatasetThiessenAnalystParameters_get() { return DatasetThiessenAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DatasetThiessenAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DatasetThiessenAnalystParameters_get.apply(null, arguments); } function DatasetThiessenAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DatasetThiessenAnalystParameters_getPrototypeOf(t));); return t; } function DatasetThiessenAnalystParameters_getPrototypeOf(t) { return DatasetThiessenAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DatasetThiessenAnalystParameters_getPrototypeOf(t); } @@ -116754,7 +117168,7 @@ var DatasetThiessenAnalystParameters = /*#__PURE__*/function (_ThiessenAnalystPa */ _this.dataset = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.DatasetThiessenAnalystParameters"; return _this; @@ -116796,7 +117210,7 @@ var DatasetThiessenAnalystParameters = /*#__PURE__*/function (_ThiessenAnalystPa } }]); }(ThiessenAnalystParameters); -;// ./src/common/iServer/GeometryThiessenAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GeometryThiessenAnalystParameters.js function GeometryThiessenAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return GeometryThiessenAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeometryThiessenAnalystParameters_typeof(o); } function GeometryThiessenAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeometryThiessenAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeometryThiessenAnalystParameters_toPropertyKey(o.key), o); } } @@ -116807,7 +117221,7 @@ function GeometryThiessenAnalystParameters_callSuper(t, o, e) { return o = Geome function GeometryThiessenAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GeometryThiessenAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeometryThiessenAnalystParameters_assertThisInitialized(t); } function GeometryThiessenAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeometryThiessenAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeometryThiessenAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeometryThiessenAnalystParameters_superPropGet(t, o, e, r) { var p = GeometryThiessenAnalystParameters_get(GeometryThiessenAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeometryThiessenAnalystParameters_superPropGet(t, e, o, r) { var p = GeometryThiessenAnalystParameters_get(GeometryThiessenAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeometryThiessenAnalystParameters_get() { return GeometryThiessenAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeometryThiessenAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeometryThiessenAnalystParameters_get.apply(null, arguments); } function GeometryThiessenAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeometryThiessenAnalystParameters_getPrototypeOf(t));); return t; } function GeometryThiessenAnalystParameters_getPrototypeOf(t) { return GeometryThiessenAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeometryThiessenAnalystParameters_getPrototypeOf(t); } @@ -116843,7 +117257,7 @@ var GeometryThiessenAnalystParameters = /*#__PURE__*/function (_ThiessenAnalystP */ _this.points = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GeometryThiessenAnalystParameters"; return _this; @@ -116887,7 +117301,7 @@ var GeometryThiessenAnalystParameters = /*#__PURE__*/function (_ThiessenAnalystP } }]); }(ThiessenAnalystParameters); -;// ./src/common/iServer/ThiessenAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/ThiessenAnalystService.js function ThiessenAnalystService_typeof(o) { "@babel/helpers - typeof"; return ThiessenAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThiessenAnalystService_typeof(o); } function ThiessenAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThiessenAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThiessenAnalystService_toPropertyKey(o.key), o); } } @@ -116898,7 +117312,7 @@ function ThiessenAnalystService_callSuper(t, o, e) { return o = ThiessenAnalystS function ThiessenAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == ThiessenAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThiessenAnalystService_assertThisInitialized(t); } function ThiessenAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThiessenAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThiessenAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThiessenAnalystService_superPropGet(t, o, e, r) { var p = ThiessenAnalystService_get(ThiessenAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThiessenAnalystService_superPropGet(t, e, o, r) { var p = ThiessenAnalystService_get(ThiessenAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThiessenAnalystService_get() { return ThiessenAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThiessenAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThiessenAnalystService_get.apply(null, arguments); } function ThiessenAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThiessenAnalystService_getPrototypeOf(t));); return t; } function ThiessenAnalystService_getPrototypeOf(t) { return ThiessenAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThiessenAnalystService_getPrototypeOf(t); } @@ -116951,7 +117365,7 @@ var ThiessenAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { */ _this.mode = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThiessenAnalystService"; return _this; @@ -116982,14 +117396,14 @@ var ThiessenAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { var me = this; if (parameter instanceof DatasetThiessenAnalystParameters) { me.mode = "datasets"; - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/thiessenpolygon'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/thiessenpolygon'); DatasetThiessenAnalystParameters.toObject(parameter, parameterObject); } else if (parameter instanceof GeometryThiessenAnalystParameters) { me.mode = "geometry"; - me.url = Util.urlPathAppend(me.url, 'geometry/thiessenpolygon'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/thiessenpolygon'); GeometryThiessenAnalystParameters.toObject(parameter, parameterObject); } - var jsonParameters = Util.toJSON(parameterObject); + var jsonParameters = Util_Util.toJSON(parameterObject); this.returnContent = true; return me.request({ method: "POST", @@ -117006,7 +117420,7 @@ var ThiessenAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/MinDistanceAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/MinDistanceAnalystParameters.js function MinDistanceAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return MinDistanceAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MinDistanceAnalystParameters_typeof(o); } function MinDistanceAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MinDistanceAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MinDistanceAnalystParameters_toPropertyKey(o.key), o); } } @@ -117079,7 +117493,7 @@ var MinDistanceAnalystParameters = /*#__PURE__*/function () { */ this.maxDistance = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.MinDistanceAnalystParameters"; } @@ -117103,7 +117517,7 @@ var MinDistanceAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/DatasetMinDistanceAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/DatasetMinDistanceAnalystParameters.js function DatasetMinDistanceAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return DatasetMinDistanceAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DatasetMinDistanceAnalystParameters_typeof(o); } function DatasetMinDistanceAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DatasetMinDistanceAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DatasetMinDistanceAnalystParameters_toPropertyKey(o.key), o); } } @@ -117114,7 +117528,7 @@ function DatasetMinDistanceAnalystParameters_callSuper(t, o, e) { return o = Dat function DatasetMinDistanceAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == DatasetMinDistanceAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return DatasetMinDistanceAnalystParameters_assertThisInitialized(t); } function DatasetMinDistanceAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function DatasetMinDistanceAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (DatasetMinDistanceAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function DatasetMinDistanceAnalystParameters_superPropGet(t, o, e, r) { var p = DatasetMinDistanceAnalystParameters_get(DatasetMinDistanceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function DatasetMinDistanceAnalystParameters_superPropGet(t, e, o, r) { var p = DatasetMinDistanceAnalystParameters_get(DatasetMinDistanceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function DatasetMinDistanceAnalystParameters_get() { return DatasetMinDistanceAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = DatasetMinDistanceAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, DatasetMinDistanceAnalystParameters_get.apply(null, arguments); } function DatasetMinDistanceAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = DatasetMinDistanceAnalystParameters_getPrototypeOf(t));); return t; } function DatasetMinDistanceAnalystParameters_getPrototypeOf(t) { return DatasetMinDistanceAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, DatasetMinDistanceAnalystParameters_getPrototypeOf(t); } @@ -117161,7 +117575,7 @@ var DatasetMinDistanceAnalystParameters = /*#__PURE__*/function (_MinDistanceAna */ _this.inputFilterQueryParameter = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.DatasetMinDistanceAnalystParameters"; return _this; @@ -117182,7 +117596,7 @@ var DatasetMinDistanceAnalystParameters = /*#__PURE__*/function (_MinDistanceAna } }]); }(MinDistanceAnalystParameters); -;// ./src/common/iServer/GeometryMinDistanceAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GeometryMinDistanceAnalystParameters.js function GeometryMinDistanceAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return GeometryMinDistanceAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeometryMinDistanceAnalystParameters_typeof(o); } function GeometryMinDistanceAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeometryMinDistanceAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeometryMinDistanceAnalystParameters_toPropertyKey(o.key), o); } } @@ -117193,7 +117607,7 @@ function GeometryMinDistanceAnalystParameters_callSuper(t, o, e) { return o = Ge function GeometryMinDistanceAnalystParameters_possibleConstructorReturn(t, e) { if (e && ("object" == GeometryMinDistanceAnalystParameters_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeometryMinDistanceAnalystParameters_assertThisInitialized(t); } function GeometryMinDistanceAnalystParameters_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeometryMinDistanceAnalystParameters_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeometryMinDistanceAnalystParameters_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeometryMinDistanceAnalystParameters_superPropGet(t, o, e, r) { var p = GeometryMinDistanceAnalystParameters_get(GeometryMinDistanceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeometryMinDistanceAnalystParameters_superPropGet(t, e, o, r) { var p = GeometryMinDistanceAnalystParameters_get(GeometryMinDistanceAnalystParameters_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeometryMinDistanceAnalystParameters_get() { return GeometryMinDistanceAnalystParameters_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeometryMinDistanceAnalystParameters_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeometryMinDistanceAnalystParameters_get.apply(null, arguments); } function GeometryMinDistanceAnalystParameters_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeometryMinDistanceAnalystParameters_getPrototypeOf(t));); return t; } function GeometryMinDistanceAnalystParameters_getPrototypeOf(t) { return GeometryMinDistanceAnalystParameters_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeometryMinDistanceAnalystParameters_getPrototypeOf(t); } @@ -117235,7 +117649,7 @@ var GeometryMinDistanceAnalystParameters = /*#__PURE__*/function (_MinDistanceAn */ _this.inputGeometries = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GeometryMinDistanceAnalystParameters"; return _this; @@ -117278,7 +117692,7 @@ var GeometryMinDistanceAnalystParameters = /*#__PURE__*/function (_MinDistanceAn } }]); }(MinDistanceAnalystParameters); -;// ./src/common/iServer/MinDistanceAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/MinDistanceAnalystService.js function MinDistanceAnalystService_typeof(o) { "@babel/helpers - typeof"; return MinDistanceAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MinDistanceAnalystService_typeof(o); } function MinDistanceAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MinDistanceAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MinDistanceAnalystService_toPropertyKey(o.key), o); } } @@ -117289,7 +117703,7 @@ function MinDistanceAnalystService_callSuper(t, o, e) { return o = MinDistanceAn function MinDistanceAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == MinDistanceAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return MinDistanceAnalystService_assertThisInitialized(t); } function MinDistanceAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function MinDistanceAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (MinDistanceAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function MinDistanceAnalystService_superPropGet(t, o, e, r) { var p = MinDistanceAnalystService_get(MinDistanceAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function MinDistanceAnalystService_superPropGet(t, e, o, r) { var p = MinDistanceAnalystService_get(MinDistanceAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function MinDistanceAnalystService_get() { return MinDistanceAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = MinDistanceAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, MinDistanceAnalystService_get.apply(null, arguments); } function MinDistanceAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = MinDistanceAnalystService_getPrototypeOf(t));); return t; } function MinDistanceAnalystService_getPrototypeOf(t) { return MinDistanceAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MinDistanceAnalystService_getPrototypeOf(t); } @@ -117322,7 +117736,7 @@ var MinDistanceAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { MinDistanceAnalystService_classCallCheck(this, MinDistanceAnalystService); _this = MinDistanceAnalystService_callSuper(this, MinDistanceAnalystService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.MinDistanceAnalystService"; return _this; @@ -117350,14 +117764,14 @@ var MinDistanceAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { var me = this; var parameterObject = {}; if (parameter instanceof DatasetMinDistanceAnalystParameters) { - me.url = Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/mindistance'); + me.url = Util_Util.urlPathAppend(me.url, 'datasets/' + parameter.dataset + '/mindistance'); parameterObject = parameter; } else if (parameter instanceof GeometryMinDistanceAnalystParameters) { - me.url = Util.urlPathAppend(me.url, 'geometry/mindistance'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/mindistance'); GeometryMinDistanceAnalystParameters.toObject(parameter, parameterObject); } - var jsonParameters = Util.toJSON(parameterObject); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + var jsonParameters = Util_Util.toJSON(parameterObject); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -117368,7 +117782,7 @@ var MinDistanceAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/ConvexHullAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/ConvexHullAnalystService.js function ConvexHullAnalystService_typeof(o) { "@babel/helpers - typeof"; return ConvexHullAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ConvexHullAnalystService_typeof(o); } function ConvexHullAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ConvexHullAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ConvexHullAnalystService_toPropertyKey(o.key), o); } } @@ -117379,7 +117793,7 @@ function ConvexHullAnalystService_callSuper(t, o, e) { return o = ConvexHullAnal function ConvexHullAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == ConvexHullAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ConvexHullAnalystService_assertThisInitialized(t); } function ConvexHullAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ConvexHullAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ConvexHullAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ConvexHullAnalystService_superPropGet(t, o, e, r) { var p = ConvexHullAnalystService_get(ConvexHullAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ConvexHullAnalystService_superPropGet(t, e, o, r) { var p = ConvexHullAnalystService_get(ConvexHullAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ConvexHullAnalystService_get() { return ConvexHullAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ConvexHullAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ConvexHullAnalystService_get.apply(null, arguments); } function ConvexHullAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ConvexHullAnalystService_getPrototypeOf(t));); return t; } function ConvexHullAnalystService_getPrototypeOf(t) { return ConvexHullAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ConvexHullAnalystService_getPrototypeOf(t); } @@ -117412,7 +117826,7 @@ var ConvexHullAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { ConvexHullAnalystService_classCallCheck(this, ConvexHullAnalystService); _this = ConvexHullAnalystService_callSuper(this, ConvexHullAnalystService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ConvexHullAnalystService"; return _this; @@ -117440,9 +117854,9 @@ var ConvexHullAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { key: "processAsync", value: function processAsync(parameter, callback) { var me = this; - me.url = Util.urlPathAppend(me.url, 'geometry/3d/convexhull'); - var jsonParameters = Util.toJSON(parameter); - me.url = Util.urlAppend(me.url, 'returnContent=true'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/3d/convexhull'); + var jsonParameters = Util_Util.toJSON(parameter); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true'); return me.request({ method: "POST", data: jsonParameters, @@ -117453,7 +117867,7 @@ var ConvexHullAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/GeometryBatchAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/GeometryBatchAnalystService.js function GeometryBatchAnalystService_typeof(o) { "@babel/helpers - typeof"; return GeometryBatchAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeometryBatchAnalystService_typeof(o); } function GeometryBatchAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeometryBatchAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeometryBatchAnalystService_toPropertyKey(o.key), o); } } @@ -117464,7 +117878,7 @@ function GeometryBatchAnalystService_callSuper(t, o, e) { return o = GeometryBat function GeometryBatchAnalystService_possibleConstructorReturn(t, e) { if (e && ("object" == GeometryBatchAnalystService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeometryBatchAnalystService_assertThisInitialized(t); } function GeometryBatchAnalystService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeometryBatchAnalystService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeometryBatchAnalystService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeometryBatchAnalystService_superPropGet(t, o, e, r) { var p = GeometryBatchAnalystService_get(GeometryBatchAnalystService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeometryBatchAnalystService_superPropGet(t, e, o, r) { var p = GeometryBatchAnalystService_get(GeometryBatchAnalystService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeometryBatchAnalystService_get() { return GeometryBatchAnalystService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeometryBatchAnalystService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeometryBatchAnalystService_get.apply(null, arguments); } function GeometryBatchAnalystService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeometryBatchAnalystService_getPrototypeOf(t));); return t; } function GeometryBatchAnalystService_getPrototypeOf(t) { return GeometryBatchAnalystService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeometryBatchAnalystService_getPrototypeOf(t); } @@ -117503,7 +117917,7 @@ var GeometryBatchAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { GeometryBatchAnalystService_classCallCheck(this, GeometryBatchAnalystService); _this = GeometryBatchAnalystService_callSuper(this, GeometryBatchAnalystService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.GeometryBatchAnalystService"; return _this; @@ -117521,10 +117935,10 @@ var GeometryBatchAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { key: "processAsync", value: function processAsync(parameters, callback) { var me = this; - me.url = Util.urlPathAppend(me.url, 'geometry/batchanalyst'); - me.url = Util.urlAppend(me.url, 'returnContent=true&ignoreAnalystParam=true'); + me.url = Util_Util.urlPathAppend(me.url, 'geometry/batchanalyst'); + me.url = Util_Util.urlAppend(me.url, 'returnContent=true&ignoreAnalystParam=true'); var parameterObjects = me._processParams(parameters); - var jsonParameters = Util.toJSON(parameterObjects); + var jsonParameters = Util_Util.toJSON(parameterObjects); return me.request({ method: "POST", data: jsonParameters, @@ -117537,7 +117951,7 @@ var GeometryBatchAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { key: "_processParams", value: function _processParams(parameters) { var me = this; - if (!Util.isArray(parameters)) { + if (!Util_Util.isArray(parameters)) { return; } var processParams = []; @@ -117597,7 +118011,7 @@ var GeometryBatchAnalystService = /*#__PURE__*/function (_SpatialAnalystBase) { } }]); }(SpatialAnalystBase); -;// ./src/common/iServer/SpatialAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/SpatialAnalystService.js function SpatialAnalystService_typeof(o) { "@babel/helpers - typeof"; return SpatialAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SpatialAnalystService_typeof(o); } function SpatialAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SpatialAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SpatialAnalystService_toPropertyKey(o.key), o); } } @@ -118124,7 +118538,7 @@ var SpatialAnalystService_SpatialAnalystService = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/services/SpatialAnalystService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/SpatialAnalystService.js function services_SpatialAnalystService_typeof(o) { "@babel/helpers - typeof"; return services_SpatialAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_SpatialAnalystService_typeof(o); } function services_SpatialAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_SpatialAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_SpatialAnalystService_toPropertyKey(o.key), o); } } @@ -118160,7 +118574,7 @@ function SpatialAnalystService_setPrototypeOf(t, e) { return SpatialAnalystServi * .bufferAnalysis(params,function(result){ * //doSomething * }) - * @param {string} url - 服务地址。 + * @param {string} url - 空间分析服务地址,如 http://{ip}:{port}/iserver/services/spatialanalyst-changchun/restjsr/spatialanalyst 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -118509,13 +118923,13 @@ var SpatialAnalystService = /*#__PURE__*/function (_ServiceBase) { return {}; } if (params.bounds) { - params.bounds = Util_Util.toSuperMapBounds(params.bounds); + params.bounds = core_Util_Util.toSuperMapBounds(params.bounds); } //插值分析点数组转换 if (params.inputPoints) { for (var i = 0; i < params.inputPoints.length; i++) { var inputPoint = params.inputPoints[i]; - if (Util_Util.isArray(inputPoint)) { + if (core_Util_Util.isArray(inputPoint)) { params.inputPoints[i] = { x: inputPoint[0], y: inputPoint[1], @@ -118528,30 +118942,30 @@ var SpatialAnalystService = /*#__PURE__*/function (_ServiceBase) { if (params.points) { for (var _i = 0; _i < params.points.length; _i++) { var point = params.points[_i]; - params.points[_i] = Util_Util.toSuperMapPoint(point); + params.points[_i] = core_Util_Util.toSuperMapPoint(point); } } //mapboxgl点对象转SuperMap点对象 if (params.point) { - params.point = Util_Util.toSuperMapPoint(params.point); + params.point = core_Util_Util.toSuperMapPoint(params.point); } //初步判断mapbox数据就为geojson格式 ,进行转json格式即可 //栅格代数运算的范围 if (params.extractRegion) { - params.extractRegion = Util_Util.toSuperMapGeometry(params.extractRegion); + params.extractRegion = core_Util_Util.toSuperMapGeometry(params.extractRegion); } //获取或设置表面分析参数 if (params.extractParameter && params.extractParameter.clipRegion) { - params.extractParameter.clipRegion = Util_Util.toSuperMapGeometry(params.extractParameter.clipRegion); + params.extractParameter.clipRegion = core_Util_Util.toSuperMapGeometry(params.extractParameter.clipRegion); } if (params.clipParam && params.clipParam.clipRegion) { - params.clipParam.clipRegion = Util_Util.toSuperMapGeometry(params.clipParam.clipRegion); + params.clipParam.clipRegion = core_Util_Util.toSuperMapGeometry(params.clipParam.clipRegion); } if (params.clipRegion) { - params.clipRegion = Util_Util.toSuperMapGeometry(params.clipRegion); + params.clipRegion = core_Util_Util.toSuperMapGeometry(params.clipRegion); } //sourceRoute 路由对象。用于里程分析,该对象可以是用户自己生 成或在数据源中查询得到的符合标准的路由对象;geojson格式 if (params.sourceRoute) { @@ -118573,9 +118987,9 @@ var SpatialAnalystService = /*#__PURE__*/function (_ServiceBase) { } } //operateRegions 操作面对象集合,数据集叠加分析,表示与这些面对象进行叠加分析 - if (params.operateRegions && Util_Util.isArray(params.operateRegions)) { + if (params.operateRegions && core_Util_Util.isArray(params.operateRegions)) { params.operateRegions.map(function (geometry, key) { - params.operateRegions[key] = Util_Util.toSuperMapGeometry(geometry); + params.operateRegions[key] = core_Util_Util.toSuperMapGeometry(geometry); return params.operateRegions[key]; }); } @@ -118586,20 +119000,20 @@ var SpatialAnalystService = /*#__PURE__*/function (_ServiceBase) { if (params.sourceGeometrySRID) { SRID = params.sourceGeometrySRID; } - params.sourceGeometry = Util_Util.toSuperMapGeometry(params.sourceGeometry); + params.sourceGeometry = core_Util_Util.toSuperMapGeometry(params.sourceGeometry); if (SRID) { params.sourceGeometry.SRID = SRID; } delete params.sourceGeometry.sourceGeometrySRID; } if (params.operateGeometry) { - params.operateGeometry = Util_Util.toSuperMapGeometry(params.operateGeometry); + params.operateGeometry = core_Util_Util.toSuperMapGeometry(params.operateGeometry); } //支持传入多个几何要素进行叠加分析: if (params.sourceGeometries) { var sourceGeometries = []; for (var k = 0; k < params.sourceGeometries.length; k++) { - sourceGeometries.push(Util_Util.toSuperMapGeometry(params.sourceGeometries[k])); + sourceGeometries.push(core_Util_Util.toSuperMapGeometry(params.sourceGeometries[k])); } params.sourceGeometries = sourceGeometries; } @@ -118607,7 +119021,7 @@ var SpatialAnalystService = /*#__PURE__*/function (_ServiceBase) { if (params.operateGeometries) { var operateGeometries = []; for (var j = 0; j < params.operateGeometries.length; j++) { - operateGeometries.push(Util_Util.toSuperMapGeometry(params.operateGeometries[j])); + operateGeometries.push(core_Util_Util.toSuperMapGeometry(params.operateGeometries[j])); } params.operateGeometries = operateGeometries; } @@ -118615,14 +119029,14 @@ var SpatialAnalystService = /*#__PURE__*/function (_ServiceBase) { if (params.inputGeometries) { var inputGeometries = []; for (var l = 0; l < params.inputGeometries.length; l++) { - inputGeometries.push(Util_Util.toSuperMapGeometry(params.inputGeometries[l])); + inputGeometries.push(core_Util_Util.toSuperMapGeometry(params.inputGeometries[l])); } params.inputGeometries = inputGeometries; } //components 几何对象数组 Route - if (params.sourceRoute && params.sourceRoute.components && Util_Util.isArray(params.sourceRoute.components)) { + if (params.sourceRoute && params.sourceRoute.components && core_Util_Util.isArray(params.sourceRoute.components)) { params.sourceRoute.components.map(function (geometry, key) { - params.sourceRoute.components[key] = Util_Util.toSuperMapGeometry(geometry); + params.sourceRoute.components[key] = core_Util_Util.toSuperMapGeometry(geometry); return params.sourceRoute.components[key]; }); } @@ -118635,7 +119049,7 @@ var SpatialAnalystService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/ThemeParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeParameters.js function ThemeParameters_typeof(o) { "@babel/helpers - typeof"; return ThemeParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeParameters_typeof(o); } function ThemeParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeParameters_toPropertyKey(o.key), o); } } @@ -118658,8 +119072,8 @@ function ThemeParameters_toPrimitive(t, r) { if ("object" != ThemeParameters_typ * @param {Array.} [options.joinItems] - 专题图外部表的连接信息 JoinItem 数组。 * @param {Array.} options.themes - 专题图对象列表。 * @param {Array.} [options.displayFilters] - 专题图属性过滤条件。 - * @param {Array.} [options.displayOrderBys] - 专题图对象生成符号叠加次序排序字段。 - * @param {Object} [options.fieldValuesDisplayFilter] - 图层要素的显示和隐藏的过滤属性,其带有三个属性,分别是:values、fieldName、fieldValuesDisplayMode。 + * @param {Array.} [options.displayOrderBys] - 专题图对象生成符号叠加次序排序字段。当图层中的某些要素存在叠盖时,通过设置图层显示顺序字段可以自定义存在叠盖的元素的叠盖顺序。 + * @param {Object} [options.fieldValuesDisplayFilter] - 根据要素中的值来判断是否显示在地图中的过滤器。包含属性:values 待过滤的值、fieldName 待过滤的字段名称、fieldValuesDisplayMode 过滤模式。 * @usage */ var ThemeParameters = /*#__PURE__*/function () { @@ -118699,7 +119113,7 @@ var ThemeParameters = /*#__PURE__*/function () { /** * @member {Array.} [ThemeParameters.prototype.displayOrderBys] - * @description 专题图对象生成符号叠加次序排序字段。 + * @description 专题图对象生成符号叠加次序排序字段。当图层中的某些要素存在叠盖时,通过设置图层显示顺序字段可以自定义存在叠盖的元素的叠盖顺序。 */ this.displayOrderBys = null; @@ -118707,11 +119121,11 @@ var ThemeParameters = /*#__PURE__*/function () { * @member {Object} [ThemeParameters.prototype.fieldValuesDisplayFilter] * @property {Array.} values - 待过滤的值。 * @property {string} fieldName - 待过滤的字段名称,只支持数字类型的字段。 - * @property {string} fieldValuesDisplayMode - 目前为 DISPLAY/DISABLE。当为 DISPLAY 时,表示只显示以上设置的相应属性值的要素,否则表示不显示以上设置的相应属性值的要素。 + * @property {string} fieldValuesDisplayMode - 可选值为 DISPLAY / DISABLE。当为 DISPLAY 时,表示只显示以上设置的相应属性值的要素,当为 DISABLE 表示不显示以上设置的相应属性值的要素。 */ this.fieldValuesDisplayFilter = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeParameters"; } @@ -118741,7 +119155,7 @@ var ThemeParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ThemeService.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeService.js function ThemeService_typeof(o) { "@babel/helpers - typeof"; return ThemeService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeService_typeof(o); } function ThemeService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeService_toPropertyKey(o.key), o); } } @@ -118752,7 +119166,7 @@ function ThemeService_callSuper(t, o, e) { return o = ThemeService_getPrototypeO function ThemeService_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeService_assertThisInitialized(t); } function ThemeService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeService_superPropGet(t, o, e, r) { var p = ThemeService_get(ThemeService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeService_superPropGet(t, e, o, r) { var p = ThemeService_get(ThemeService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeService_get() { return ThemeService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeService_get.apply(null, arguments); } function ThemeService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeService_getPrototypeOf(t));); return t; } function ThemeService_getPrototypeOf(t) { return ThemeService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeService_getPrototypeOf(t); } @@ -118769,8 +119183,9 @@ function ThemeService_setPrototypeOf(t, e) { return ThemeService_setPrototypeOf * @class ThemeService * @deprecatedclass SuperMap.ThemeService * @category iServer Map Theme - * @classdesc 专题图服务类。地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。 - * 在 SuperMap 中,专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。该类可用于获取专题图的信息。 + * @classdesc 专题图服务类。该类可用于获取专题图的信息。
+ * 地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。 + * 在 SuperMap 中,专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。 * @extends {CommonServiceBase} * @example * var myThemeService = new ThemeService(url); @@ -118786,9 +119201,9 @@ var ThemeService_ThemeService = /*#__PURE__*/function (_CommonServiceBase) { ThemeService_classCallCheck(this, ThemeService); _this = ThemeService_callSuper(this, ThemeService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } - _this.url = Util.urlPathAppend(_this.url, 'tempLayersSet'); + _this.url = Util_Util.urlPathAppend(_this.url, 'tempLayersSet'); _this.CLASS_NAME = 'SuperMap.ThemeService'; return _this; } @@ -118845,7 +119260,7 @@ var ThemeService_ThemeService = /*#__PURE__*/function (_CommonServiceBase) { jsonParameters += "[{'type': 'UGC','subLayers': {'layers': ["; for (var i = 0; i < parameter.themes.length; i++) { themeObj = parameter.themes[i]; - var jsonTheme = Util.toJSON(themeObj); + var jsonTheme = Util_Util.toJSON(themeObj); jsonTheme = jsonTheme.slice(0, -1); jsonParameters += "{'theme': " + jsonTheme + "},'type': 'UGC','ugcLayerType': 'THEME',"; filters = parameter.displayFilters; @@ -118866,10 +119281,10 @@ var ThemeService_ThemeService = /*#__PURE__*/function (_CommonServiceBase) { } fieldValuesDisplayFilter = parameter.fieldValuesDisplayFilter; if (fieldValuesDisplayFilter) { - jsonParameters += "'fieldValuesDisplayFilter':" + Util.toJSON(fieldValuesDisplayFilter) + ","; + jsonParameters += "'fieldValuesDisplayFilter':" + Util_Util.toJSON(fieldValuesDisplayFilter) + ","; } if (parameter.joinItems && parameter.joinItems.length > 0 && parameter.joinItems[i]) { - jsonParameters += "'joinItems':[" + Util.toJSON(parameter.joinItems[i]) + "],"; + jsonParameters += "'joinItems':[" + Util_Util.toJSON(parameter.joinItems[i]) + "],"; } if (parameter.datasetNames && parameter.dataSourceNames) { var datasetID = parameter.datasetNames[i] ? i : parameter.datasetNames.length - 1; @@ -118891,7 +119306,7 @@ var ThemeService_ThemeService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/ThemeService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/ThemeService.js function services_ThemeService_typeof(o) { "@babel/helpers - typeof"; return services_ThemeService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_ThemeService_typeof(o); } function services_ThemeService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_ThemeService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_ThemeService_toPropertyKey(o.key), o); } } @@ -118915,7 +119330,8 @@ function services_ThemeService_setPrototypeOf(t, e) { return services_ThemeServi /** * @class ThemeService * @category iServer Map Theme - * @classdesc 专题图服务类。地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。在 SuperMap 中,专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。该类可用于获取专题图的信息。 + * @classdesc 专题图服务类。该类可用于获取专题图的信息。
+ * 地图学中将突出而深入地表示一种或几种要素或现象,即集中表示一个主题内容的地图称为专题地图。在 SuperMap 中,专题图是地图图层的符号化显示,即用各种图形渲染风格(大小,颜色,线型,填充等)来图形化地表现专题要素的某方面特征。 * @extends {ServiceBase} * @example * new ThemeService(url,{ @@ -118923,7 +119339,7 @@ function services_ThemeService_setPrototypeOf(t, e) { return services_ThemeServi * }).getThemeInfo(params,function(result){ * //doSomething * }); - * @param {string} url - 服务地址。 + * @param {string} url - 地图服务地址。如 http://{ip}:{port}/iserver/services/map-world/rest/maps/World * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -118960,7 +119376,7 @@ var ThemeService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/StopQueryParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/StopQueryParameters.js function StopQueryParameters_typeof(o) { "@babel/helpers - typeof"; return StopQueryParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, StopQueryParameters_typeof(o); } function StopQueryParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function StopQueryParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, StopQueryParameters_toPropertyKey(o.key), o); } } @@ -118997,7 +119413,7 @@ var StopQueryParameters = /*#__PURE__*/function () { * @description 是否返回站点坐标信息。 */ this.returnPosition = false; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.StopQueryParameters"; } @@ -119008,11 +119424,11 @@ var StopQueryParameters = /*#__PURE__*/function () { return StopQueryParameters_createClass(StopQueryParameters, [{ key: "destroy", value: function destroy() { - Util.reset(this); + Util_Util.reset(this); } }]); }(); -;// ./src/common/iServer/StopQueryService.js +;// CONCATENATED MODULE: ./src/common/iServer/StopQueryService.js function StopQueryService_typeof(o) { "@babel/helpers - typeof"; return StopQueryService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, StopQueryService_typeof(o); } function StopQueryService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function StopQueryService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, StopQueryService_toPropertyKey(o.key), o); } } @@ -119023,7 +119439,7 @@ function StopQueryService_callSuper(t, o, e) { return o = StopQueryService_getPr function StopQueryService_possibleConstructorReturn(t, e) { if (e && ("object" == StopQueryService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return StopQueryService_assertThisInitialized(t); } function StopQueryService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function StopQueryService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (StopQueryService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function StopQueryService_superPropGet(t, o, e, r) { var p = StopQueryService_get(StopQueryService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function StopQueryService_superPropGet(t, e, o, r) { var p = StopQueryService_get(StopQueryService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function StopQueryService_get() { return StopQueryService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = StopQueryService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, StopQueryService_get.apply(null, arguments); } function StopQueryService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = StopQueryService_getPrototypeOf(t));); return t; } function StopQueryService_getPrototypeOf(t) { return StopQueryService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, StopQueryService_getPrototypeOf(t); } @@ -119063,7 +119479,7 @@ var StopQueryService = /*#__PURE__*/function (_CommonServiceBase) { StopQueryService_classCallCheck(this, StopQueryService); _this = StopQueryService_callSuper(this, StopQueryService, [url, options]); options = options || {}; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = "SuperMap.StopQueryService"; return _this; } @@ -119076,7 +119492,7 @@ var StopQueryService = /*#__PURE__*/function (_CommonServiceBase) { key: "destroy", value: function destroy() { StopQueryService_superPropGet(StopQueryService, "destroy", this, 3)([]); - Util.reset(this); + Util_Util.reset(this); } /** @@ -119093,7 +119509,7 @@ var StopQueryService = /*#__PURE__*/function (_CommonServiceBase) { return; } var me = this; - me.url = Util.urlPathAppend(me.url, 'stops/keyword/' + params.keyWord); + me.url = Util_Util.urlPathAppend(me.url, 'stops/keyword/' + params.keyWord); return me.request({ method: "GET", params: { @@ -119106,7 +119522,7 @@ var StopQueryService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/TransferPathParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/TransferPathParameters.js function TransferPathParameters_typeof(o) { "@babel/helpers - typeof"; return TransferPathParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TransferPathParameters_typeof(o); } function TransferPathParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TransferPathParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TransferPathParameters_toPropertyKey(o.key), o); } } @@ -119145,7 +119561,7 @@ var TransferPathParameters = /*#__PURE__*/function () { * 2. 按照起止点的坐标进行查询,则 points 参数的类型为 Point2D[],形如:[{"x":44,"y":39},{"x":45,"y":40}]。 */ this.points = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TransferPathParameters"; } @@ -119156,7 +119572,7 @@ var TransferPathParameters = /*#__PURE__*/function () { return TransferPathParameters_createClass(TransferPathParameters, [{ key: "destroy", value: function destroy() { - Util.reset(this); + Util_Util.reset(this); } /** @@ -119169,12 +119585,12 @@ var TransferPathParameters = /*#__PURE__*/function () { key: "toJson", value: function toJson(params) { if (params) { - return Util.toJSON(params); + return Util_Util.toJSON(params); } } }]); }(); -;// ./src/common/iServer/TransferPathService.js +;// CONCATENATED MODULE: ./src/common/iServer/TransferPathService.js function TransferPathService_typeof(o) { "@babel/helpers - typeof"; return TransferPathService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TransferPathService_typeof(o); } function TransferPathService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TransferPathService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TransferPathService_toPropertyKey(o.key), o); } } @@ -119185,7 +119601,7 @@ function TransferPathService_callSuper(t, o, e) { return o = TransferPathService function TransferPathService_possibleConstructorReturn(t, e) { if (e && ("object" == TransferPathService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TransferPathService_assertThisInitialized(t); } function TransferPathService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TransferPathService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TransferPathService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TransferPathService_superPropGet(t, o, e, r) { var p = TransferPathService_get(TransferPathService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TransferPathService_superPropGet(t, e, o, r) { var p = TransferPathService_get(TransferPathService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TransferPathService_get() { return TransferPathService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TransferPathService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TransferPathService_get.apply(null, arguments); } function TransferPathService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TransferPathService_getPrototypeOf(t));); return t; } function TransferPathService_getPrototypeOf(t) { return TransferPathService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TransferPathService_getPrototypeOf(t); } @@ -119249,10 +119665,10 @@ var TransferPathService = /*#__PURE__*/function (_CommonServiceBase) { var me = this, method = "GET", jsonParameters; - me.url = Util.urlPathAppend(me.url, 'path'); + me.url = Util_Util.urlPathAppend(me.url, 'path'); jsonParameters = { - points: Util.toJSON(params.points), - transferLines: Util.toJSON(params['transferLines']) + points: Util_Util.toJSON(params.points), + transferLines: Util_Util.toJSON(params['transferLines']) }; return me.request({ method: method, @@ -119264,7 +119680,7 @@ var TransferPathService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/TransferSolutionParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/TransferSolutionParameters.js function TransferSolutionParameters_typeof(o) { "@babel/helpers - typeof"; return TransferSolutionParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TransferSolutionParameters_typeof(o); } function TransferSolutionParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TransferSolutionParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TransferSolutionParameters_toPropertyKey(o.key), o); } } @@ -119384,7 +119800,7 @@ var TransferSolutionParameters = /*#__PURE__*/function () { * @description 出行的时间;格式是:"小时:分钟",如:"08:30"。如果设置了该参数,在分析时,则会考虑线路的首末班车时间的限制,即在返回的结果中会提示公交的首末班发车时间。 */ this.travelTime = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TransferSolutionParameters"; } @@ -119395,7 +119811,7 @@ var TransferSolutionParameters = /*#__PURE__*/function () { return TransferSolutionParameters_createClass(TransferSolutionParameters, [{ key: "destroy", value: function destroy() { - Util.reset(this); + Util_Util.reset(this); } /** @@ -119408,12 +119824,12 @@ var TransferSolutionParameters = /*#__PURE__*/function () { key: "toJson", value: function toJson(params) { if (params) { - return Util.toJSON(params); + return Util_Util.toJSON(params); } } }]); }(); -;// ./src/common/iServer/TransferSolutionService.js +;// CONCATENATED MODULE: ./src/common/iServer/TransferSolutionService.js function TransferSolutionService_typeof(o) { "@babel/helpers - typeof"; return TransferSolutionService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TransferSolutionService_typeof(o); } function TransferSolutionService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TransferSolutionService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TransferSolutionService_toPropertyKey(o.key), o); } } @@ -119424,7 +119840,7 @@ function TransferSolutionService_callSuper(t, o, e) { return o = TransferSolutio function TransferSolutionService_possibleConstructorReturn(t, e) { if (e && ("object" == TransferSolutionService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TransferSolutionService_assertThisInitialized(t); } function TransferSolutionService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TransferSolutionService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TransferSolutionService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TransferSolutionService_superPropGet(t, o, e, r) { var p = TransferSolutionService_get(TransferSolutionService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TransferSolutionService_superPropGet(t, e, o, r) { var p = TransferSolutionService_get(TransferSolutionService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TransferSolutionService_get() { return TransferSolutionService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TransferSolutionService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TransferSolutionService_get.apply(null, arguments); } function TransferSolutionService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TransferSolutionService_getPrototypeOf(t));); return t; } function TransferSolutionService_getPrototypeOf(t) { return TransferSolutionService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TransferSolutionService_getPrototypeOf(t); } @@ -119491,25 +119907,25 @@ var TransferSolutionService = /*#__PURE__*/function (_CommonServiceBase) { var me = this, method = "GET", jsonParameters; - me.url = Util.urlPathAppend(me.url, 'solutions'); + me.url = Util_Util.urlPathAppend(me.url, 'solutions'); jsonParameters = { - points: Util.toJSON(params.points), + points: Util_Util.toJSON(params.points), walkingRatio: params['walkingRatio'], transferTactic: params['transferTactic'], solutionCount: params['solutionCount'], transferPreference: params["transferPreference"] }; if (params.evadeLines) { - jsonParameters["evadeLines"] = Util.toJSON(params.evadeLines); + jsonParameters["evadeLines"] = Util_Util.toJSON(params.evadeLines); } if (params.evadeStops) { - jsonParameters["evadeStops"] = Util.toJSON(params.evadeStops); + jsonParameters["evadeStops"] = Util_Util.toJSON(params.evadeStops); } if (params.priorLines) { - jsonParameters["priorLines"] = Util.toJSON(params.priorLines); + jsonParameters["priorLines"] = Util_Util.toJSON(params.priorLines); } if (params.priorStops) { - jsonParameters["priorStops"] = Util.toJSON(params.priorStops); + jsonParameters["priorStops"] = Util_Util.toJSON(params.priorStops); } if (params.travelTime) { jsonParameters["travelTime"] = params.travelTime; @@ -119524,7 +119940,7 @@ var TransferSolutionService = /*#__PURE__*/function (_CommonServiceBase) { } }]); }(CommonServiceBase); -;// ./src/common/iServer/TrafficTransferAnalystService.js +;// CONCATENATED MODULE: ./src/common/iServer/TrafficTransferAnalystService.js function TrafficTransferAnalystService_typeof(o) { "@babel/helpers - typeof"; return TrafficTransferAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TrafficTransferAnalystService_typeof(o); } function TrafficTransferAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TrafficTransferAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TrafficTransferAnalystService_toPropertyKey(o.key), o); } } @@ -119628,7 +120044,7 @@ var TrafficTransferAnalystService_TrafficTransferAnalystService = /*#__PURE__*/f } }]); }(); -;// ./src/mapboxgl/services/TrafficTransferAnalystService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/TrafficTransferAnalystService.js function services_TrafficTransferAnalystService_typeof(o) { "@babel/helpers - typeof"; return services_TrafficTransferAnalystService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_TrafficTransferAnalystService_typeof(o); } function services_TrafficTransferAnalystService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_TrafficTransferAnalystService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_TrafficTransferAnalystService_toPropertyKey(o.key), o); } } @@ -119663,7 +120079,7 @@ function TrafficTransferAnalystService_setPrototypeOf(t, e) { return TrafficTran * .queryStop(params,function(result){ * //doSomething * }) - * @param {string} url - 服务地址。 + * @param {string} url - 交通换乘分析服务地址,如 http://{ip}:{port}/iserver/services/traffictransferanalyst-sample/restjsr/traffictransferanalyst/Traffic-Changchun 。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -119728,10 +120144,10 @@ var TrafficTransferAnalystService = /*#__PURE__*/function (_ServiceBase) { if (!params) { return {}; } - if (params.transferLines && !Util_Util.isArray(params.transferLines)) { + if (params.transferLines && !core_Util_Util.isArray(params.transferLines)) { params.transferLines = [params.transferLines]; } - if (params.points && Util_Util.isArray(params.points)) { + if (params.points && core_Util_Util.isArray(params.points)) { params.points.map(function (point, key) { params.points[key] = point instanceof (external_mapboxgl_default()).LngLat ? { x: point.lng, @@ -119744,10 +120160,9 @@ var TrafficTransferAnalystService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/WebPrintingService.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingService.js function WebPrintingService_typeof(o) { "@babel/helpers - typeof"; return WebPrintingService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingService_typeof(o); } -function WebPrintingService_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return WebPrintingService_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (WebPrintingService_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, WebPrintingService_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, WebPrintingService_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), WebPrintingService_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", WebPrintingService_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), WebPrintingService_regeneratorDefine2(u), WebPrintingService_regeneratorDefine2(u, o, "Generator"), WebPrintingService_regeneratorDefine2(u, n, function () { return this; }), WebPrintingService_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (WebPrintingService_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function WebPrintingService_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } WebPrintingService_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { WebPrintingService_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, WebPrintingService_regeneratorDefine2(e, r, n, t); } +function WebPrintingService_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ WebPrintingService_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == WebPrintingService_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(WebPrintingService_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function WebPrintingService_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function WebPrintingService_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { WebPrintingService_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { WebPrintingService_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function WebPrintingService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -119759,7 +120174,7 @@ function WebPrintingService_callSuper(t, o, e) { return o = WebPrintingService_g function WebPrintingService_possibleConstructorReturn(t, e) { if (e && ("object" == WebPrintingService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return WebPrintingService_assertThisInitialized(t); } function WebPrintingService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function WebPrintingService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (WebPrintingService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function WebPrintingService_superPropGet(t, o, e, r) { var p = WebPrintingService_get(WebPrintingService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function WebPrintingService_superPropGet(t, e, o, r) { var p = WebPrintingService_get(WebPrintingService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function WebPrintingService_get() { return WebPrintingService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = WebPrintingService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, WebPrintingService_get.apply(null, arguments); } function WebPrintingService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = WebPrintingService_getPrototypeOf(t));); return t; } function WebPrintingService_getPrototypeOf(t) { return WebPrintingService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, WebPrintingService_getPrototypeOf(t); } @@ -119790,7 +120205,7 @@ var WebPrintingService = /*#__PURE__*/function (_CommonServiceBase) { WebPrintingService_classCallCheck(this, WebPrintingService); _this = WebPrintingService_callSuper(this, WebPrintingService, [url, options]); if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.templates = []; _this.CLASS_NAME = 'SuperMap.WebPrintingService'; @@ -119821,20 +120236,23 @@ var WebPrintingService = /*#__PURE__*/function (_CommonServiceBase) { }, { key: "createWebPrintingJob", value: (function () { - var _createWebPrintingJob = WebPrintingService_asyncToGenerator(/*#__PURE__*/WebPrintingService_regenerator().m(function _callee(params, callback) { - return WebPrintingService_regenerator().w(function (_context) { - while (1) switch (_context.n) { + var _createWebPrintingJob = WebPrintingService_asyncToGenerator(/*#__PURE__*/WebPrintingService_regeneratorRuntime().mark(function _callee(params, callback) { + return WebPrintingService_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: if (params) { - _context.n = 1; + _context.next = 2; break; } - return _context.a(2); - case 1: - _context.n = 2; - return this._processParams(params); + return _context.abrupt("return"); case 2: - return _context.a(2, this.processAsync('jobs', 'POST', callback, params)); + _context.next = 4; + return this._processParams(params); + case 4: + return _context.abrupt("return", this.processAsync('jobs', 'POST', callback, params)); + case 5: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -119913,13 +120331,13 @@ var WebPrintingService = /*#__PURE__*/function (_CommonServiceBase) { success: callback, failure: callback }; - params && (requestConfig.data = Util.toJSON(params)); + params && (requestConfig.data = Util_Util.toJSON(params)); return me.request(requestConfig); } }, { key: "transformResult", value: function transformResult(result, options) { - result = Util.transformResult(result); + result = Util_Util.transformResult(result); if (result.status === 'FINISHED' || result.status === 'ERROR') { clearInterval(this.id); } else if (result.status === 'RUNNING') { @@ -119934,24 +120352,24 @@ var WebPrintingService = /*#__PURE__*/function (_CommonServiceBase) { key: "_processUrl", value: function _processUrl(appendContent) { if (appendContent) { - return Util.urlPathAppend(this.url, appendContent); + return Util_Util.urlPathAppend(this.url, appendContent); } return this.url; } }, { key: "_processParams", value: function () { - var _processParams2 = WebPrintingService_asyncToGenerator(/*#__PURE__*/WebPrintingService_regenerator().m(function _callee2(params) { + var _processParams2 = WebPrintingService_asyncToGenerator(/*#__PURE__*/WebPrintingService_regeneratorRuntime().mark(function _callee2(params) { var _params$layoutOptions, legendOptions, templateName, res, matchTemplate, _matchTemplate$layout, hasCopyright, hasSubtitle, hasAuthor, hasScaleBar, hasTitle, hasTime, hasSummaryText, hasLittleMap, hasNorthArrow, hasLegend, layoutOptions; - return WebPrintingService_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + return WebPrintingService_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: if (params.layoutOptions) { - _context2.n = 1; + _context2.next = 2; break; } - return _context2.a(2); - case 1: + return _context2.abrupt("return"); + case 2: _params$layoutOptions = params.layoutOptions, legendOptions = _params$layoutOptions.legendOptions, templateName = _params$layoutOptions.templateName; if (legendOptions) { !params.layoutOptions.legendOptions.title && (params.layoutOptions.legendOptions.title = ''); @@ -119961,15 +120379,15 @@ var WebPrintingService = /*#__PURE__*/function (_CommonServiceBase) { } } if (this.templates.length) { - _context2.n = 3; + _context2.next = 9; break; } - _context2.n = 2; + _context2.next = 7; return this.getLayoutTemplates(); - case 2: - res = _context2.v; + case 7: + res = _context2.sent; this.templates = res.result; - case 3: + case 9: matchTemplate = this.templates.find(function (item) { return item.templateName === templateName; }); //根据模板判断哪些参数需要传递 @@ -120017,8 +120435,9 @@ var WebPrintingService = /*#__PURE__*/function (_CommonServiceBase) { if (!hasLegend || !layoutOptions.legendOptions) { delete params.layoutOptions.legendOptions; } - case 4: - return _context2.a(2); + case 22: + case "end": + return _context2.stop(); } }, _callee2, this); })); @@ -120029,7 +120448,7 @@ var WebPrintingService = /*#__PURE__*/function (_CommonServiceBase) { }() }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/WebPrintingJobService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/WebPrintingJobService.js function WebPrintingJobService_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobService_typeof(o); } function WebPrintingJobService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobService_toPropertyKey(o.key), o); } } @@ -120060,7 +120479,7 @@ function WebPrintingJobService_setPrototypeOf(t, e) { return WebPrintingJobServi * 提供方法:创建 Web 打印任务,获取 Web 打印任务内容,获取 Web 打印输出文档流,获取 Web 打印服务的布局模板信息等。 * @modulecategory Services * @extends {ServiceBase} - * @param {string} url - 资源根地址。请求打印地图服务的 URL 应为:http://{服务器地址}:{服务端口号}/iserver/services/webprinting/rest/webprinting/v1。 + * @param {string} url - Web 打印服务地址。请求打印地图服务的 URL 应为:http://{服务器地址}:{服务端口号}/iserver/services/webprinting/rest/webprinting/v1。 * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -120150,7 +120569,7 @@ var WebPrintingJobService = /*#__PURE__*/function (_ServiceBase) { }, { key: "_toPointObject", value: function _toPointObject(point) { - if (Util_Util.isArray(point)) { + if (core_Util_Util.isArray(point)) { return { x: point[0], y: point[1] @@ -120170,7 +120589,7 @@ var WebPrintingJobService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/ImageService.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageService.js function ImageService_typeof(o) { "@babel/helpers - typeof"; return ImageService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageService_typeof(o); } function ImageService_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function ImageService_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ImageService_ownKeys(Object(t), !0).forEach(function (r) { ImageService_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ImageService_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -120184,7 +120603,7 @@ function ImageService_callSuper(t, o, e) { return o = ImageService_getPrototypeO function ImageService_possibleConstructorReturn(t, e) { if (e && ("object" == ImageService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ImageService_assertThisInitialized(t); } function ImageService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ImageService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ImageService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ImageService_superPropGet(t, o, e, r) { var p = ImageService_get(ImageService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ImageService_superPropGet(t, e, o, r) { var p = ImageService_get(ImageService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ImageService_get() { return ImageService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ImageService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ImageService_get.apply(null, arguments); } function ImageService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ImageService_getPrototypeOf(t));); return t; } function ImageService_getPrototypeOf(t) { return ImageService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ImageService_getPrototypeOf(t); } @@ -120218,7 +120637,7 @@ var ImageService_ImageService = /*#__PURE__*/function (_CommonServiceBase) { _this = ImageService_callSuper(this, ImageService, [url, options]); _this.options = options || {}; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = 'SuperMap.ImageService'; return _this; @@ -120245,8 +120664,8 @@ var ImageService_ImageService = /*#__PURE__*/function (_CommonServiceBase) { key: "getCollections", value: function getCollections(callback) { var me = this; - var path = Util.convertPath('/collections'); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/collections'); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, mehtod: 'GET', @@ -120268,8 +120687,8 @@ var ImageService_ImageService = /*#__PURE__*/function (_CommonServiceBase) { collectionId: collectionId }; var me = this; - var path = Util.convertPath('/collections/{collectionId}', pathParams); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/collections/{collectionId}', pathParams); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, mehtod: 'GET', @@ -120289,8 +120708,8 @@ var ImageService_ImageService = /*#__PURE__*/function (_CommonServiceBase) { value: function search(imageSearchParameter, callback) { var postBody = ImageService_objectSpread({}, imageSearchParameter || {}); var me = this; - var path = Util.convertPath('/search'); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/search'); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, method: 'POST', @@ -120317,7 +120736,7 @@ var ImageService_ImageService = /*#__PURE__*/function (_CommonServiceBase) { }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/ImageService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/ImageService.js function services_ImageService_typeof(o) { "@babel/helpers - typeof"; return services_ImageService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_ImageService_typeof(o); } function services_ImageService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_ImageService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_ImageService_toPropertyKey(o.key), o); } } @@ -120351,7 +120770,7 @@ function services_ImageService_setPrototypeOf(t, e) { return services_ImageServi * .getCollections(function(result){ * //doSomething * }) - * @param {string} url - 服务地址。例如: http://{ip}:{port}/iserver/{imageservice-imageserviceName}/restjsr/ + * @param {string} url - 影像服务地址。例如: http://{ip}:{port}/iserver/{imageservice-imageserviceName}/restjsr/ * @param {Object} options - 参数。 * @param {string} [options.proxy] - 服务代理地址。 * @param {boolean} [options.withCredentials] - 请求是否携带凭据。默认情况下,仅同源请求包含凭据。 @@ -120414,7 +120833,7 @@ var ImageService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/common/iServer/ImageCollectionService.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageCollectionService.js function ImageCollectionService_typeof(o) { "@babel/helpers - typeof"; return ImageCollectionService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageCollectionService_typeof(o); } function ImageCollectionService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageCollectionService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageCollectionService_toPropertyKey(o.key), o); } } @@ -120425,7 +120844,7 @@ function ImageCollectionService_callSuper(t, o, e) { return o = ImageCollectionS function ImageCollectionService_possibleConstructorReturn(t, e) { if (e && ("object" == ImageCollectionService_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ImageCollectionService_assertThisInitialized(t); } function ImageCollectionService_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ImageCollectionService_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ImageCollectionService_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ImageCollectionService_superPropGet(t, o, e, r) { var p = ImageCollectionService_get(ImageCollectionService_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ImageCollectionService_superPropGet(t, e, o, r) { var p = ImageCollectionService_get(ImageCollectionService_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ImageCollectionService_get() { return ImageCollectionService_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ImageCollectionService_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ImageCollectionService_get.apply(null, arguments); } function ImageCollectionService_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ImageCollectionService_getPrototypeOf(t));); return t; } function ImageCollectionService_getPrototypeOf(t) { return ImageCollectionService_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ImageCollectionService_getPrototypeOf(t); } @@ -120459,7 +120878,7 @@ var ImageCollectionService_ImageCollectionService = /*#__PURE__*/function (_Comm _this = ImageCollectionService_callSuper(this, ImageCollectionService, [url, options]); _this.options = options || {}; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = 'SuperMap.ImageCollectionService'; return _this; @@ -120495,8 +120914,8 @@ var ImageCollectionService_ImageCollectionService = /*#__PURE__*/function (_Comm callback = queryParams; queryParams = null; } - var path = Util.convertPath('/collections/{collectionId}/legend', pathParams); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/collections/{collectionId}/legend', pathParams); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, method: 'GET', @@ -120518,8 +120937,8 @@ var ImageCollectionService_ImageCollectionService = /*#__PURE__*/function (_Comm var pathParams = { collectionId: me.options.collectionId }; - var path = Util.convertPath('/collections/{collectionId}/statistics', pathParams); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/collections/{collectionId}/statistics', pathParams); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, method: 'GET', @@ -120540,8 +120959,8 @@ var ImageCollectionService_ImageCollectionService = /*#__PURE__*/function (_Comm var pathParams = { collectionId: me.options.collectionId }; - var path = Util.convertPath('/collections/{collectionId}/tileInfo', pathParams); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/collections/{collectionId}/tileInfo', pathParams); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, method: 'GET', @@ -120564,8 +120983,8 @@ var ImageCollectionService_ImageCollectionService = /*#__PURE__*/function (_Comm collectionId: me.options.collectionId, featureId: featureId }; - var path = Util.convertPath('/collections/{collectionId}/items/{featureId}', pathParams); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/collections/{collectionId}/items/{featureId}', pathParams); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, method: 'DELETE', @@ -120588,8 +121007,8 @@ var ImageCollectionService_ImageCollectionService = /*#__PURE__*/function (_Comm collectionId: me.options.collectionId, featureId: featureId }; - var path = Util.convertPath('/collections/{collectionId}/items/{featureId}', pathParams); - var url = Util.urlPathAppend(me.url, path); + var path = Util_Util.convertPath('/collections/{collectionId}/items/{featureId}', pathParams); + var url = Util_Util.urlPathAppend(me.url, path); return this._processAsync({ url: url, method: 'GET', @@ -120615,7 +121034,7 @@ var ImageCollectionService_ImageCollectionService = /*#__PURE__*/function (_Comm }]); }(CommonServiceBase); -;// ./src/mapboxgl/services/ImageCollectionService.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/ImageCollectionService.js function services_ImageCollectionService_typeof(o) { "@babel/helpers - typeof"; return services_ImageCollectionService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, services_ImageCollectionService_typeof(o); } function services_ImageCollectionService_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function services_ImageCollectionService_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, services_ImageCollectionService_toPropertyKey(o.key), o); } } @@ -120649,7 +121068,7 @@ function services_ImageCollectionService_setPrototypeOf(t, e) { return services_ * .getLegend(collectionId, queryParams, function(result){ * //doSomething * }) - * @param {string} url - 服务地址。例如: http://{ip}:{port}/iserver/{imageservice-imageserviceName}/restjsr/ + * @param {string} url - 影像服务地址。例如: http://{ip}:{port}/iserver/{imageservice-imageserviceName}/restjsr/ * @param {Object} options - 参数。 * @param {string} options.collectionId 影像集合(Collection)的 ID,在一个影像服务中唯一标识影像集合。 * @param {string} [options.proxy] - 服务代理地址。 @@ -120738,7 +121157,7 @@ var ImageCollectionService = /*#__PURE__*/function (_ServiceBase) { } }]); }(ServiceBase); -;// ./src/mapboxgl/services/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/services/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -120766,13 +121185,13 @@ var ImageCollectionService = /*#__PURE__*/function (_ServiceBase) { -;// ./src/common/SuperMap.js +;// CONCATENATED MODULE: ./src/common/SuperMap.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ var SuperMap = window.SuperMap = window.SuperMap || {}; SuperMap.Components = window.SuperMap.Components || {}; -;// ./src/common/format/WKT.js +;// CONCATENATED MODULE: ./src/common/format/WKT.js function WKT_typeof(o) { "@babel/helpers - typeof"; return WKT_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WKT_typeof(o); } function WKT_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WKT_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WKT_toPropertyKey(o.key), o); } } @@ -120991,10 +121410,10 @@ var WKT = /*#__PURE__*/function (_Format) { for (var i = 0, len = rings.length; i < len; ++i) { ring = rings[i].replace(this.regExes.trimParens, '$1'); linestring = this.parse.linestring.apply(this, [ring]).geometry; - linearring = new LinearRing(linestring.components); + linearring = new LinearRing_LinearRing(linestring.components); components.push(linearring); } - return new Vector(new Polygon(components)); + return new Vector(new Polygon_Polygon(components)); }, /** * @private @@ -121109,7 +121528,7 @@ var WKT = /*#__PURE__*/function (_Format) { } }]); }(Format); -;// ./src/common/format/index.js +;// CONCATENATED MODULE: ./src/common/format/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -121121,7 +121540,7 @@ var WKT = /*#__PURE__*/function (_Format) { -;// ./src/common/control/TimeControlBase.js +;// CONCATENATED MODULE: ./src/common/control/TimeControlBase.js function TimeControlBase_typeof(o) { "@babel/helpers - typeof"; return TimeControlBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TimeControlBase_typeof(o); } function TimeControlBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TimeControlBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TimeControlBase_toPropertyKey(o.key), o); } } @@ -121568,7 +121987,7 @@ var TimeControlBase = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/control/TimeFlowControl.js +;// CONCATENATED MODULE: ./src/common/control/TimeFlowControl.js function TimeFlowControl_typeof(o) { "@babel/helpers - typeof"; return TimeFlowControl_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TimeFlowControl_typeof(o); } function TimeFlowControl_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TimeFlowControl_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TimeFlowControl_toPropertyKey(o.key), o); } } @@ -121579,7 +121998,7 @@ function TimeFlowControl_callSuper(t, o, e) { return o = TimeFlowControl_getProt function TimeFlowControl_possibleConstructorReturn(t, e) { if (e && ("object" == TimeFlowControl_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return TimeFlowControl_assertThisInitialized(t); } function TimeFlowControl_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function TimeFlowControl_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (TimeFlowControl_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function TimeFlowControl_superPropGet(t, o, e, r) { var p = TimeFlowControl_get(TimeFlowControl_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function TimeFlowControl_superPropGet(t, e, o, r) { var p = TimeFlowControl_get(TimeFlowControl_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function TimeFlowControl_get() { return TimeFlowControl_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = TimeFlowControl_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, TimeFlowControl_get.apply(null, arguments); } function TimeFlowControl_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = TimeFlowControl_getPrototypeOf(t));); return t; } function TimeFlowControl_getPrototypeOf(t) { return TimeFlowControl_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, TimeFlowControl_getPrototypeOf(t); } @@ -121788,7 +122207,7 @@ var TimeFlowControl = /*#__PURE__*/function (_TimeControlBase) { } }]); }(TimeControlBase); -;// ./src/common/control/index.js +;// CONCATENATED MODULE: ./src/common/control/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -121798,7 +122217,7 @@ var TimeFlowControl = /*#__PURE__*/function (_TimeControlBase) { -;// ./src/common/iManager/iManagerServiceBase.js +;// CONCATENATED MODULE: ./src/common/iManager/iManagerServiceBase.js function iManagerServiceBase_typeof(o) { "@babel/helpers - typeof"; return iManagerServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iManagerServiceBase_typeof(o); } function iManagerServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iManagerServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iManagerServiceBase_toPropertyKey(o.key), o); } } @@ -121871,7 +122290,7 @@ var IManagerServiceBase = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iManager/iManagerCreateNodeParam.js +;// CONCATENATED MODULE: ./src/common/iManager/iManagerCreateNodeParam.js function iManagerCreateNodeParam_typeof(o) { "@babel/helpers - typeof"; return iManagerCreateNodeParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iManagerCreateNodeParam_typeof(o); } function iManagerCreateNodeParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iManagerCreateNodeParam_toPropertyKey(o.key), o); } } function iManagerCreateNodeParam_createClass(e, r, t) { return r && iManagerCreateNodeParam_defineProperties(e.prototype, r), t && iManagerCreateNodeParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -121903,9 +122322,9 @@ var IManagerCreateNodeParam = /*#__PURE__*/iManagerCreateNodeParam_createClass(f this.physicalMachineName = ''; //vm所属的物理机名称. this.ips = []; //vm的ip,空数组表示随机分配 this.userName = ''; //vm所属用户 - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iManager/iManager.js +;// CONCATENATED MODULE: ./src/common/iManager/iManager.js function iManager_typeof(o) { "@babel/helpers - typeof"; return iManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iManager_typeof(o); } function iManager_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iManager_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iManager_toPropertyKey(o.key), o); } } @@ -122024,7 +122443,7 @@ var IManager = /*#__PURE__*/function (_IManagerServiceBase) { } }]); }(IManagerServiceBase); -;// ./src/common/iManager/index.js +;// CONCATENATED MODULE: ./src/common/iManager/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -122034,7 +122453,7 @@ var IManager = /*#__PURE__*/function (_IManagerServiceBase) { -;// ./src/common/iPortal/iPortalServiceBase.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalServiceBase.js function iPortalServiceBase_typeof(o) { "@babel/helpers - typeof"; return iPortalServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalServiceBase_typeof(o); } function iPortalServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iPortalServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalServiceBase_toPropertyKey(o.key), o); } } @@ -122095,7 +122514,7 @@ var IPortalServiceBase = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iPortal/iPortalQueryParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalQueryParam.js function iPortalQueryParam_typeof(o) { "@babel/helpers - typeof"; return iPortalQueryParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalQueryParam_typeof(o); } function iPortalQueryParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalQueryParam_toPropertyKey(o.key), o); } } function iPortalQueryParam_createClass(e, r, t) { return r && iPortalQueryParam_defineProperties(e.prototype, r), t && iPortalQueryParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122146,9 +122565,9 @@ var IPortalQueryParam = /*#__PURE__*/iPortalQueryParam_createClass(function IPor this.text = ""; // 搜索字段 this.groupIds = []; // 群组Id过滤 this.departmentIds = []; // 部门Id过滤 - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortalQueryResult.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalQueryResult.js function iPortalQueryResult_typeof(o) { "@babel/helpers - typeof"; return iPortalQueryResult_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalQueryResult_typeof(o); } function iPortalQueryResult_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalQueryResult_toPropertyKey(o.key), o); } } function iPortalQueryResult_createClass(e, r, t) { return r && iPortalQueryResult_defineProperties(e.prototype, r), t && iPortalQueryResult_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122183,9 +122602,9 @@ var IPortalQueryResult = /*#__PURE__*/iPortalQueryResult_createClass(function IP this.currentPage = 1; this.pageSize = 12; this.aggregations = null; - Util.extend(this, queryResult); + Util_Util.extend(this, queryResult); }); -;// ./src/common/iPortal/iPortalResource.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalResource.js function iPortalResource_typeof(o) { "@babel/helpers - typeof"; return iPortalResource_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalResource_typeof(o); } function iPortalResource_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iPortalResource_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalResource_toPropertyKey(o.key), o); } } @@ -122264,7 +122683,7 @@ var IPortalResource = /*#__PURE__*/function (_IPortalServiceBase) { _this.updateTime = 0; _this.userName = ""; _this.sourceJSON = {}; //返回门户资源详细信息 - Util.extend(_this, resourceInfo); // INSIGHTS_WORKSPACE MAP_DASHBOARD + Util_Util.extend(_this, resourceInfo); // INSIGHTS_WORKSPACE MAP_DASHBOARD _this.resourceUrl = portalUrl + "/web/" + _this.resourceType.replace("_", "").toLowerCase() + "s/" + _this.resourceId; if (_this.withCredentials) { _this.resourceUrl = portalUrl + "/web/mycontent/" + _this.resourceType.replace("_", "").toLowerCase() + "s/" + _this.resourceId; @@ -122326,7 +122745,7 @@ var IPortalResource = /*#__PURE__*/function (_IPortalServiceBase) { } }]); }(IPortalServiceBase); -;// ./src/common/iPortal/iPortalShareParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalShareParam.js function iPortalShareParam_typeof(o) { "@babel/helpers - typeof"; return iPortalShareParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalShareParam_typeof(o); } function iPortalShareParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalShareParam_toPropertyKey(o.key), o); } } function iPortalShareParam_createClass(e, r, t) { return r && iPortalShareParam_defineProperties(e.prototype, r), t && iPortalShareParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122357,9 +122776,9 @@ var IPortalShareParam = /*#__PURE__*/iPortalShareParam_createClass(function IPor this.ids = []; this.entities = []; this.resourceType = ""; // MAP SERVICE SCENE DATA INSIGHTS_WORKSPACE MAP_DASHBOARD - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortal.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortal.js function iPortal_typeof(o) { "@babel/helpers - typeof"; return iPortal_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortal_typeof(o); } function iPortal_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iPortal_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortal_toPropertyKey(o.key), o); } } @@ -122482,7 +122901,7 @@ var IPortal = /*#__PURE__*/function (_IPortalServiceBase) { } }]); }(IPortalServiceBase); -;// ./src/common/iPortal/iPortalShareEntity.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalShareEntity.js function iPortalShareEntity_typeof(o) { "@babel/helpers - typeof"; return iPortalShareEntity_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalShareEntity_typeof(o); } function iPortalShareEntity_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalShareEntity_toPropertyKey(o.key), o); } } function iPortalShareEntity_createClass(e, r, t) { return r && iPortalShareEntity_defineProperties(e.prototype, r), t && iPortalShareEntity_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122515,9 +122934,9 @@ var IPortalShareEntity = /*#__PURE__*/iPortalShareEntity_createClass(function IP this.entityType = ""; // USER DEPARTMENT IPORTALGROUP this.entityName = "GUEST"; // GUEST or 具体用户 name this.entityId = null; - Util.extend(this, shareEntity); + Util_Util.extend(this, shareEntity); }); -;// ./src/common/iPortal/iPortalAddResourceParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalAddResourceParam.js function iPortalAddResourceParam_typeof(o) { "@babel/helpers - typeof"; return iPortalAddResourceParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalAddResourceParam_typeof(o); } function iPortalAddResourceParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalAddResourceParam_toPropertyKey(o.key), o); } } function iPortalAddResourceParam_createClass(e, r, t) { return r && iPortalAddResourceParam_defineProperties(e.prototype, r), t && iPortalAddResourceParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122548,9 +122967,9 @@ var IPortalAddResourceParam = /*#__PURE__*/iPortalAddResourceParam_createClass(f this.rootUrl = ""; this.tags = []; this.entities = []; - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortalRegisterServiceParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalRegisterServiceParam.js function iPortalRegisterServiceParam_typeof(o) { "@babel/helpers - typeof"; return iPortalRegisterServiceParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalRegisterServiceParam_typeof(o); } function iPortalRegisterServiceParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalRegisterServiceParam_toPropertyKey(o.key), o); } } function iPortalRegisterServiceParam_createClass(e, r, t) { return r && iPortalRegisterServiceParam_defineProperties(e.prototype, r), t && iPortalRegisterServiceParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122587,9 +123006,9 @@ var IPortalRegisterServiceParam = /*#__PURE__*/iPortalRegisterServiceParam_creat this.metadata = {}; this.addedMapNames = []; this.addedSceneNames = []; - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortalAddDataParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalAddDataParam.js function iPortalAddDataParam_typeof(o) { "@babel/helpers - typeof"; return iPortalAddDataParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalAddDataParam_typeof(o); } function iPortalAddDataParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalAddDataParam_toPropertyKey(o.key), o); } } function iPortalAddDataParam_createClass(e, r, t) { return r && iPortalAddDataParam_defineProperties(e.prototype, r), t && iPortalAddDataParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122622,9 +123041,9 @@ var IPortalAddDataParam = /*#__PURE__*/iPortalAddDataParam_createClass(function this.type = ""; this.tags = []; this.dataMetaInfo = {}; - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortalDataMetaInfoParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalDataMetaInfoParam.js function iPortalDataMetaInfoParam_typeof(o) { "@babel/helpers - typeof"; return iPortalDataMetaInfoParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalDataMetaInfoParam_typeof(o); } function iPortalDataMetaInfoParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalDataMetaInfoParam_toPropertyKey(o.key), o); } } function iPortalDataMetaInfoParam_createClass(e, r, t) { return r && iPortalDataMetaInfoParam_defineProperties(e.prototype, r), t && iPortalDataMetaInfoParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122668,9 +123087,9 @@ var IPortalDataMetaInfoParam = /*#__PURE__*/iPortalDataMetaInfoParam_createClass this.firstRowIsHead = true; this.url = ""; this.dataStoreInfo = {}; - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortalDataStoreInfoParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalDataStoreInfoParam.js function iPortalDataStoreInfoParam_typeof(o) { "@babel/helpers - typeof"; return iPortalDataStoreInfoParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalDataStoreInfoParam_typeof(o); } function iPortalDataStoreInfoParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalDataStoreInfoParam_toPropertyKey(o.key), o); } } function iPortalDataStoreInfoParam_createClass(e, r, t) { return r && iPortalDataStoreInfoParam_defineProperties(e.prototype, r), t && iPortalDataStoreInfoParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122701,9 +123120,9 @@ var IPortalDataStoreInfoParam = /*#__PURE__*/iPortalDataStoreInfoParam_createCla this.type = ""; this.url = ""; this.connectionInfo = {}; - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortalDataConnectionInfoParam.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalDataConnectionInfoParam.js function iPortalDataConnectionInfoParam_typeof(o) { "@babel/helpers - typeof"; return iPortalDataConnectionInfoParam_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalDataConnectionInfoParam_typeof(o); } function iPortalDataConnectionInfoParam_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalDataConnectionInfoParam_toPropertyKey(o.key), o); } } function iPortalDataConnectionInfoParam_createClass(e, r, t) { return r && iPortalDataConnectionInfoParam_defineProperties(e.prototype, r), t && iPortalDataConnectionInfoParam_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -122732,9 +123151,9 @@ var IPortalDataConnectionInfoParam = /*#__PURE__*/iPortalDataConnectionInfoParam params = params || {}; this.dataBase = ""; this.server = ""; - Util.extend(this, params); + Util_Util.extend(this, params); }); -;// ./src/common/iPortal/iPortalUser.js +;// CONCATENATED MODULE: ./src/common/iPortal/iPortalUser.js function iPortalUser_typeof(o) { "@babel/helpers - typeof"; return iPortalUser_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, iPortalUser_typeof(o); } function iPortalUser_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function iPortalUser_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, iPortalUser_toPropertyKey(o.key), o); } } @@ -123075,7 +123494,7 @@ var IPortalUser = /*#__PURE__*/function (_IPortalServiceBase) { } }]); }(IPortalServiceBase); -;// ./src/common/iPortal/index.js +;// CONCATENATED MODULE: ./src/common/iPortal/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -123107,7 +123526,7 @@ var IPortalUser = /*#__PURE__*/function (_IPortalServiceBase) { -;// ./src/common/iServer/AggregationParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/AggregationParameter.js function AggregationParameter_typeof(o) { "@babel/helpers - typeof"; return AggregationParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, AggregationParameter_typeof(o); } function AggregationParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function AggregationParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, AggregationParameter_toPropertyKey(o.key), o); } } @@ -123144,7 +123563,7 @@ var AggregationParameter = /*#__PURE__*/function () { */ this.aggFieldName = null; this.CLASS_NAME = 'SuperMap.AggregationParameter'; - Util.extend(this, options); + Util_Util.extend(this, options); } return AggregationParameter_createClass(AggregationParameter, [{ key: "destroy", @@ -123156,7 +123575,7 @@ var AggregationParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/BucketAggParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/BucketAggParameter.js function BucketAggParameter_typeof(o) { "@babel/helpers - typeof"; return BucketAggParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, BucketAggParameter_typeof(o); } function BucketAggParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function BucketAggParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, BucketAggParameter_toPropertyKey(o.key), o); } } @@ -123199,7 +123618,7 @@ var BucketAggParameter = /*#__PURE__*/function (_AggregationParameter) { _this.subAggs = null; _this.aggType = null; _this.CLASS_NAME = 'SuperMap.BucketAggParameter'; - Util.extend(_this, options); + Util_Util.extend(_this, options); return _this; } BucketAggParameter_inherits(BucketAggParameter, _AggregationParameter); @@ -123213,7 +123632,7 @@ var BucketAggParameter = /*#__PURE__*/function (_AggregationParameter) { } }]); }(AggregationParameter); -;// ./src/common/iServer/MetricsAggParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/MetricsAggParameter.js function MetricsAggParameter_typeof(o) { "@babel/helpers - typeof"; return MetricsAggParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MetricsAggParameter_typeof(o); } function MetricsAggParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MetricsAggParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MetricsAggParameter_toPropertyKey(o.key), o); } } @@ -123224,7 +123643,7 @@ function MetricsAggParameter_callSuper(t, o, e) { return o = MetricsAggParameter function MetricsAggParameter_possibleConstructorReturn(t, e) { if (e && ("object" == MetricsAggParameter_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return MetricsAggParameter_assertThisInitialized(t); } function MetricsAggParameter_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function MetricsAggParameter_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (MetricsAggParameter_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function MetricsAggParameter_superPropGet(t, o, e, r) { var p = MetricsAggParameter_get(MetricsAggParameter_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function MetricsAggParameter_superPropGet(t, e, o, r) { var p = MetricsAggParameter_get(MetricsAggParameter_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function MetricsAggParameter_get() { return MetricsAggParameter_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = MetricsAggParameter_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, MetricsAggParameter_get.apply(null, arguments); } function MetricsAggParameter_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = MetricsAggParameter_getPrototypeOf(t));); return t; } function MetricsAggParameter_getPrototypeOf(t) { return MetricsAggParameter_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MetricsAggParameter_getPrototypeOf(t); } @@ -123258,7 +123677,7 @@ var MetricsAggParameter = /*#__PURE__*/function (_AggregationParameter) { * @description 指标聚合类型。 */ _this.aggType = MetricsAggType.AVG; - Util.extend(_this, option); + Util_Util.extend(_this, option); _this.CLASS_NAME = 'SuperMap.MetricsAggParameter'; return _this; } @@ -123272,7 +123691,7 @@ var MetricsAggParameter = /*#__PURE__*/function (_AggregationParameter) { } }]); }(AggregationParameter); -;// ./src/common/iServer/ChartWaterLevelParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartWaterLevelParameter.js function ChartWaterLevelParameter_typeof(o) { "@babel/helpers - typeof"; return ChartWaterLevelParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartWaterLevelParameter_typeof(o); } function ChartWaterLevelParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartWaterLevelParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartWaterLevelParameter_toPropertyKey(o.key), o); } } @@ -123368,7 +123787,7 @@ var ChartWaterLevelParameter = /*#__PURE__*/function (_GetFeaturesParameter) { * @description 关联水位和时间数据集的标识字段。 */ _this.timeIdKey = 'TIMEID'; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.ChartWaterLevelParameter'; return _this; } @@ -123394,7 +123813,7 @@ var ChartWaterLevelParameter = /*#__PURE__*/function (_GetFeaturesParameter) { } }]); }(GetFeaturesParametersBase); -;// ./src/common/iServer/ChartWLTimeRangeParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartWLTimeRangeParameter.js function ChartWLTimeRangeParameter_typeof(o) { "@babel/helpers - typeof"; return ChartWLTimeRangeParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartWLTimeRangeParameter_typeof(o); } function ChartWLTimeRangeParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartWLTimeRangeParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartWLTimeRangeParameter_toPropertyKey(o.key), o); } } @@ -123455,7 +123874,7 @@ var ChartWLTimeRangeParameter = /*#__PURE__*/function (_GetFeaturesParameter) { * @description 关联字段。 */ _this.idKey = 'CELLID'; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.ChartWLTimeRangeParameter'; return _this; } @@ -123476,7 +123895,7 @@ var ChartWLTimeRangeParameter = /*#__PURE__*/function (_GetFeaturesParameter) { } }]); }(GetFeaturesParametersBase); -;// ./src/common/iServer/ChartWaterDepthParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartWaterDepthParameter.js function ChartWaterDepthParameter_typeof(o) { "@babel/helpers - typeof"; return ChartWaterDepthParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartWaterDepthParameter_typeof(o); } function ChartWaterDepthParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartWaterDepthParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartWaterDepthParameter_toPropertyKey(o.key), o); } } @@ -123512,7 +123931,7 @@ var ChartWaterDepthParameter = /*#__PURE__*/function () { * @description 地理位置 Y 轴 */ this.Y = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = 'SuperMap.ChartWaterDepthParameter'; } @@ -123529,7 +123948,7 @@ var ChartWaterDepthParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ChartSetting.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartSetting.js function ChartSetting_typeof(o) { "@babel/helpers - typeof"; return ChartSetting_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartSetting_typeof(o); } function ChartSetting_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartSetting_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartSetting_toPropertyKey(o.key), o); } } @@ -123560,7 +123979,7 @@ var ChartSetting = /*#__PURE__*/function () { */ this.chartType = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ChartSetting"; } @@ -123576,7 +123995,7 @@ var ChartSetting = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ChartSettingS57.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartSettingS57.js function ChartSettingS57_typeof(o) { "@babel/helpers - typeof"; return ChartSettingS57_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartSettingS57_typeof(o); } function ChartSettingS57_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartSettingS57_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartSettingS57_toPropertyKey(o.key), o); } } @@ -123587,7 +124006,7 @@ function ChartSettingS57_callSuper(t, o, e) { return o = ChartSettingS57_getProt function ChartSettingS57_possibleConstructorReturn(t, e) { if (e && ("object" == ChartSettingS57_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ChartSettingS57_assertThisInitialized(t); } function ChartSettingS57_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ChartSettingS57_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ChartSettingS57_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ChartSettingS57_superPropGet(t, o, e, r) { var p = ChartSettingS57_get(ChartSettingS57_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ChartSettingS57_superPropGet(t, e, o, r) { var p = ChartSettingS57_get(ChartSettingS57_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ChartSettingS57_get() { return ChartSettingS57_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ChartSettingS57_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ChartSettingS57_get.apply(null, arguments); } function ChartSettingS57_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ChartSettingS57_getPrototypeOf(t));); return t; } function ChartSettingS57_getPrototypeOf(t) { return ChartSettingS57_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ChartSettingS57_getPrototypeOf(t); } @@ -123815,7 +124234,7 @@ var ChartSettingS57 = /*#__PURE__*/function (_ChartSetting) { */ _this.safetyDepth = 30.0; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ChartSettingS57"; return _this; @@ -123861,7 +124280,7 @@ var ChartSettingS57 = /*#__PURE__*/function (_ChartSetting) { } }]); }(ChartSetting); -;// ./src/common/iServer/ChartSettingS100.js +;// CONCATENATED MODULE: ./src/common/iServer/ChartSettingS100.js function ChartSettingS100_typeof(o) { "@babel/helpers - typeof"; return ChartSettingS100_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartSettingS100_typeof(o); } function ChartSettingS100_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartSettingS100_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartSettingS100_toPropertyKey(o.key), o); } } @@ -123872,7 +124291,7 @@ function ChartSettingS100_callSuper(t, o, e) { return o = ChartSettingS100_getPr function ChartSettingS100_possibleConstructorReturn(t, e) { if (e && ("object" == ChartSettingS100_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ChartSettingS100_assertThisInitialized(t); } function ChartSettingS100_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ChartSettingS100_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ChartSettingS100_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ChartSettingS100_superPropGet(t, o, e, r) { var p = ChartSettingS100_get(ChartSettingS100_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ChartSettingS100_superPropGet(t, e, o, r) { var p = ChartSettingS100_get(ChartSettingS100_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ChartSettingS100_get() { return ChartSettingS100_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ChartSettingS100_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ChartSettingS100_get.apply(null, arguments); } function ChartSettingS100_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ChartSettingS100_getPrototypeOf(t));); return t; } function ChartSettingS100_getPrototypeOf(t) { return ChartSettingS100_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ChartSettingS100_getPrototypeOf(t); } @@ -123940,7 +124359,7 @@ var ChartSettingS100 = /*#__PURE__*/function (_ChartSetting) { */ _this.wlaDatetime = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ChartSettingS100"; return _this; @@ -123963,7 +124382,7 @@ var ChartSettingS100 = /*#__PURE__*/function (_ChartSetting) { } }]); }(ChartSetting); -;// ./src/common/iServer/ClipParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/ClipParameter.js function ClipParameter_typeof(o) { "@babel/helpers - typeof"; return ClipParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ClipParameter_typeof(o); } function ClipParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ClipParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ClipParameter_toPropertyKey(o.key), o); } } @@ -124022,7 +124441,7 @@ var ClipParameter = /*#__PURE__*/function () { */ this.isExactClip = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ClipParameter"; } @@ -124050,7 +124469,7 @@ var ClipParameter = /*#__PURE__*/function () { }, { key: "toJSON", value: function toJSON() { - return Util.toJSON({ + return Util_Util.toJSON({ isClipInRegion: this.isClipInRegion, clipDatasetName: this.clipDatasetName, clipDatasourceName: this.clipDatasourceName, @@ -124060,7 +124479,7 @@ var ClipParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GeoHashGridAggParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/GeoHashGridAggParameter.js function GeoHashGridAggParameter_typeof(o) { "@babel/helpers - typeof"; return GeoHashGridAggParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeoHashGridAggParameter_typeof(o); } function GeoHashGridAggParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GeoHashGridAggParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GeoHashGridAggParameter_toPropertyKey(o.key), o); } } @@ -124071,7 +124490,7 @@ function GeoHashGridAggParameter_callSuper(t, o, e) { return o = GeoHashGridAggP function GeoHashGridAggParameter_possibleConstructorReturn(t, e) { if (e && ("object" == GeoHashGridAggParameter_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return GeoHashGridAggParameter_assertThisInitialized(t); } function GeoHashGridAggParameter_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function GeoHashGridAggParameter_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (GeoHashGridAggParameter_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function GeoHashGridAggParameter_superPropGet(t, o, e, r) { var p = GeoHashGridAggParameter_get(GeoHashGridAggParameter_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function GeoHashGridAggParameter_superPropGet(t, e, o, r) { var p = GeoHashGridAggParameter_get(GeoHashGridAggParameter_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function GeoHashGridAggParameter_get() { return GeoHashGridAggParameter_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = GeoHashGridAggParameter_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, GeoHashGridAggParameter_get.apply(null, arguments); } function GeoHashGridAggParameter_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = GeoHashGridAggParameter_getPrototypeOf(t));); return t; } function GeoHashGridAggParameter_getPrototypeOf(t) { return GeoHashGridAggParameter_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, GeoHashGridAggParameter_getPrototypeOf(t); } @@ -124105,7 +124524,7 @@ var GeoHashGridAggParameter = /*#__PURE__*/function (_BucketAggParameter) { * @description 网格中数字的精度。 */ _this.precision = 5; - Util.extend(_this, options); + Util_Util.extend(_this, options); /** * @member {BucketAggType} [GeoHashGridAggParameter.prototype.aggType=BucketAggType.GEOHASH_GRID] * @description 格网聚合类型。 @@ -124138,11 +124557,11 @@ var GeoHashGridAggParameter = /*#__PURE__*/function (_BucketAggParameter) { aggType: param.aggType, precision: param.precision }; - return Util.toJson(parameters); + return Util_Util.toJson(parameters); } }]); }(BucketAggParameter); -;// ./src/common/iServer/LabelMatrixCell.js +;// CONCATENATED MODULE: ./src/common/iServer/LabelMatrixCell.js function LabelMatrixCell_typeof(o) { "@babel/helpers - typeof"; return LabelMatrixCell_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LabelMatrixCell_typeof(o); } function LabelMatrixCell_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LabelMatrixCell_toPropertyKey(o.key), o); } } function LabelMatrixCell_createClass(e, r, t) { return r && LabelMatrixCell_defineProperties(e.prototype, r), t && LabelMatrixCell_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -124164,7 +124583,7 @@ var LabelMatrixCell = /*#__PURE__*/LabelMatrixCell_createClass(function LabelMat LabelMatrixCell_classCallCheck(this, LabelMatrixCell); this.CLASS_NAME = "LabelMatrixCell"; }); -;// ./src/common/iServer/LabelImageCell.js +;// CONCATENATED MODULE: ./src/common/iServer/LabelImageCell.js function LabelImageCell_typeof(o) { "@babel/helpers - typeof"; return LabelImageCell_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LabelImageCell_typeof(o); } function LabelImageCell_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LabelImageCell_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LabelImageCell_toPropertyKey(o.key), o); } } @@ -124244,7 +124663,7 @@ var LabelImageCell = /*#__PURE__*/function (_LabelMatrixCell) { */ _this.type = "IMAGE"; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.LabelImageCell"; return _this; @@ -124267,7 +124686,7 @@ var LabelImageCell = /*#__PURE__*/function (_LabelMatrixCell) { } }]); }(LabelMatrixCell); -;// ./src/common/iServer/LabelSymbolCell.js +;// CONCATENATED MODULE: ./src/common/iServer/LabelSymbolCell.js function LabelSymbolCell_typeof(o) { "@babel/helpers - typeof"; return LabelSymbolCell_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LabelSymbolCell_typeof(o); } function LabelSymbolCell_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LabelSymbolCell_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LabelSymbolCell_toPropertyKey(o.key), o); } } @@ -124329,7 +124748,7 @@ var LabelSymbolCell = /*#__PURE__*/function (_LabelMatrixCell) { */ _this.type = "SYMBOL"; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.LabelSymbolCell"; return _this; @@ -124352,7 +124771,7 @@ var LabelSymbolCell = /*#__PURE__*/function (_LabelMatrixCell) { } }]); }(LabelMatrixCell); -;// ./src/common/iServer/LabelThemeCell.js +;// CONCATENATED MODULE: ./src/common/iServer/LabelThemeCell.js function LabelThemeCell_typeof(o) { "@babel/helpers - typeof"; return LabelThemeCell_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LabelThemeCell_typeof(o); } function LabelThemeCell_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LabelThemeCell_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LabelThemeCell_toPropertyKey(o.key), o); } } @@ -124406,7 +124825,7 @@ var LabelThemeCell = /*#__PURE__*/function (_LabelMatrixCell) { */ _this.type = "THEME"; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = " SuperMap.LabelThemeCell"; return _this; @@ -124428,7 +124847,7 @@ var LabelThemeCell = /*#__PURE__*/function (_LabelMatrixCell) { } }]); }(LabelMatrixCell); -;// ./src/common/iServer/LayerStatus.js +;// CONCATENATED MODULE: ./src/common/iServer/LayerStatus.js function LayerStatus_typeof(o) { "@babel/helpers - typeof"; return LayerStatus_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LayerStatus_typeof(o); } function LayerStatus_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LayerStatus_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LayerStatus_toPropertyKey(o.key), o); } } @@ -124481,7 +124900,7 @@ var LayerStatus = /*#__PURE__*/function () { this.fieldValuesDisplayFilter = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.LayerStatus"; } @@ -124524,7 +124943,7 @@ var LayerStatus = /*#__PURE__*/function () { v.push('"maxScale":' + this.maxScale); } if (this.fieldValuesDisplayFilter) { - v.push('"fieldValuesDisplayFilter":' + Util.toJSON(this.fieldValuesDisplayFilter)); + v.push('"fieldValuesDisplayFilter":' + Util_Util.toJSON(this.fieldValuesDisplayFilter)); } json += v; json += '}'; @@ -124532,7 +124951,7 @@ var LayerStatus = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/LinkItem.js +;// CONCATENATED MODULE: ./src/common/iServer/LinkItem.js function LinkItem_typeof(o) { "@babel/helpers - typeof"; return LinkItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, LinkItem_typeof(o); } function LinkItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function LinkItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, LinkItem_toPropertyKey(o.key), o); } } @@ -124652,7 +125071,7 @@ var LinkItem = /*#__PURE__*/function () { */ this.primaryKeys = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.LinkItem"; } @@ -124678,7 +125097,7 @@ var LinkItem = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/OverlapDisplayedOptions.js +;// CONCATENATED MODULE: ./src/common/iServer/OverlapDisplayedOptions.js function OverlapDisplayedOptions_typeof(o) { "@babel/helpers - typeof"; return OverlapDisplayedOptions_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OverlapDisplayedOptions_typeof(o); } function OverlapDisplayedOptions_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OverlapDisplayedOptions_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OverlapDisplayedOptions_toPropertyKey(o.key), o); } } @@ -124765,7 +125184,7 @@ var OverlapDisplayedOptions = /*#__PURE__*/function () { * 当两个对象的纵向间距小于该值,且横向间距小于 horizontalOverlappedSpaceSize 时认为压盖。 */ this.verticalOverlappedSpaceSize = 0; - Util.extend(this, options); + Util_Util.extend(this, options); this.ugcLayer = new UGCLayer(options); this.CLASS_NAME = "SuperMap.OverlapDisplayedOptions"; } @@ -124777,7 +125196,7 @@ var OverlapDisplayedOptions = /*#__PURE__*/function () { return OverlapDisplayedOptions_createClass(OverlapDisplayedOptions, [{ key: "destroy", value: function destroy() { - Util.reset(this); + Util_Util.reset(this); } /** @@ -124824,7 +125243,7 @@ var OverlapDisplayedOptions = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ConvexHullAnalystParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/ConvexHullAnalystParameters.js function ConvexHullAnalystParameters_typeof(o) { "@babel/helpers - typeof"; return ConvexHullAnalystParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ConvexHullAnalystParameters_typeof(o); } function ConvexHullAnalystParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ConvexHullAnalystParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ConvexHullAnalystParameters_toPropertyKey(o.key), o); } } @@ -124864,7 +125283,7 @@ var ConvexHullAnalystParameters = /*#__PURE__*/function () { */ this.resultSetting = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ConvexHullAnalystParameters"; } @@ -124882,7 +125301,7 @@ var ConvexHullAnalystParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/GetLayersLegendInfoParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/GetLayersLegendInfoParameters.js function GetLayersLegendInfoParameters_typeof(o) { "@babel/helpers - typeof"; return GetLayersLegendInfoParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GetLayersLegendInfoParameters_typeof(o); } function GetLayersLegendInfoParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function GetLayersLegendInfoParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, GetLayersLegendInfoParameters_toPropertyKey(o.key), o); } } @@ -124955,7 +125374,7 @@ var GetLayersLegendInfoParameters = /*#__PURE__*/function () { * @description 返回图例的高度。单位为像素。 */ this.height = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.GetLayersLegendInfoParameters"; } @@ -124977,7 +125396,7 @@ var GetLayersLegendInfoParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SetLayerInfoParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/SetLayerInfoParameters.js function SetLayerInfoParameters_typeof(o) { "@babel/helpers - typeof"; return SetLayerInfoParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SetLayerInfoParameters_typeof(o); } function SetLayerInfoParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SetLayerInfoParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SetLayerInfoParameters_toPropertyKey(o.key), o); } } @@ -125021,7 +125440,7 @@ var SetLayerInfoParameters = /*#__PURE__*/function () { * @description 要更新的图层信息(包含修改和未修改的所有字段)。该参数可以通过图层信息服务获取,然后对返回值中 subLayers.layers[i] 图层信息属性进行修改。 */ this.layerInfo = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.SetLayerInfoParameters"; } @@ -125039,7 +125458,7 @@ var SetLayerInfoParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SetLayersInfoParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/SetLayersInfoParameters.js function SetLayersInfoParameters_typeof(o) { "@babel/helpers - typeof"; return SetLayersInfoParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SetLayersInfoParameters_typeof(o); } function SetLayersInfoParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SetLayersInfoParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SetLayersInfoParameters_toPropertyKey(o.key), o); } } @@ -125082,7 +125501,7 @@ var SetLayersInfoParameters = /*#__PURE__*/function () { * @description 要更新的图层信息(包含修改和未修改的所有字段)。该参数可以通过图层信息服务获取,然后对返回值中 subLayers.layers[i] 图层信息属性进行修改。 */ this.layersInfo = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.SetLayersInfoParameters"; } @@ -125100,7 +125519,7 @@ var SetLayersInfoParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/SupplyCenter.js +;// CONCATENATED MODULE: ./src/common/iServer/SupplyCenter.js function SupplyCenter_typeof(o) { "@babel/helpers - typeof"; return SupplyCenter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SupplyCenter_typeof(o); } function SupplyCenter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SupplyCenter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SupplyCenter_toPropertyKey(o.key), o); } } @@ -125155,7 +125574,7 @@ var SupplyCenter = /*#__PURE__*/function () { */ this.type = null; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.SupplyCenter"; } @@ -125195,7 +125614,7 @@ var SupplyCenter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/terrainAnalystSetting.js +;// CONCATENATED MODULE: ./src/common/iServer/terrainAnalystSetting.js function terrainAnalystSetting_typeof(o) { "@babel/helpers - typeof"; return terrainAnalystSetting_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, terrainAnalystSetting_typeof(o); } function terrainAnalystSetting_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function terrainAnalystSetting_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, terrainAnalystSetting_toPropertyKey(o.key), o); } } @@ -125246,7 +125665,7 @@ var terrainAnalystSetting = /*#__PURE__*/function () { * @description 结果数据集的单元格类型。 */ this.cellSizeType = CellSizeType.UNION; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.terrainAnalystSetting"; } @@ -125265,7 +125684,7 @@ var terrainAnalystSetting = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/ThemeFlow.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeFlow.js function ThemeFlow_typeof(o) { "@babel/helpers - typeof"; return ThemeFlow_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeFlow_typeof(o); } function ThemeFlow_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeFlow_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeFlow_toPropertyKey(o.key), o); } } @@ -125317,7 +125736,7 @@ var ThemeFlow = /*#__PURE__*/function () { */ this.leaderLineStyle = new ServerStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeFlow"; } @@ -125351,13 +125770,13 @@ var ThemeFlow = /*#__PURE__*/function () { return; } var res = new ThemeFlow(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.leaderLineStyle = ServerStyle.fromJson(obj.leaderLineStyle); return res; } }]); }(); -;// ./src/common/iServer/ThemeGridRangeItem.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGridRangeItem.js function ThemeGridRangeItem_typeof(o) { "@babel/helpers - typeof"; return ThemeGridRangeItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGridRangeItem_typeof(o); } function ThemeGridRangeItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGridRangeItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGridRangeItem_toPropertyKey(o.key), o); } } @@ -125417,7 +125836,7 @@ var ThemeGridRangeItem = /*#__PURE__*/function () { */ this.visible = true; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeGridRangeItem"; } @@ -125450,7 +125869,7 @@ var ThemeGridRangeItem = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var obj = {}; - obj = Util.copyAttributes(obj, this); + obj = Util_Util.copyAttributes(obj, this); if (obj.color) { if (obj.color.toServerJSONObject) { obj.color = obj.color.toServerJSONObject(); @@ -125472,13 +125891,13 @@ var ThemeGridRangeItem = /*#__PURE__*/function () { return; } var res = new ThemeGridRangeItem(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.color = ServerColor.fromJson(obj.color); return res; } }]); }(); -;// ./src/common/iServer/ThemeGridRange.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGridRange.js function ThemeGridRange_typeof(o) { "@babel/helpers - typeof"; return ThemeGridRange_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGridRange_typeof(o); } function ThemeGridRange_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGridRange_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGridRange_toPropertyKey(o.key), o); } } @@ -125489,7 +125908,7 @@ function ThemeGridRange_callSuper(t, o, e) { return o = ThemeGridRange_getProtot function ThemeGridRange_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeGridRange_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeGridRange_assertThisInitialized(t); } function ThemeGridRange_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeGridRange_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeGridRange_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeGridRange_superPropGet(t, o, e, r) { var p = ThemeGridRange_get(ThemeGridRange_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeGridRange_superPropGet(t, e, o, r) { var p = ThemeGridRange_get(ThemeGridRange_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeGridRange_get() { return ThemeGridRange_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeGridRange_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeGridRange_get.apply(null, arguments); } function ThemeGridRange_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeGridRange_getPrototypeOf(t));); return t; } function ThemeGridRange_getPrototypeOf(t) { return ThemeGridRange_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeGridRange_getPrototypeOf(t); } @@ -125562,7 +125981,7 @@ var ThemeGridRange = /*#__PURE__*/function (_Theme) { */ _this.reverseColor = false; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeGridRange"; return _this; @@ -125606,7 +126025,7 @@ var ThemeGridRange = /*#__PURE__*/function (_Theme) { return; } var res = new ThemeGridRange(); - Util.copy(res, obj); + Util_Util.copy(res, obj); var itemsR = obj.items; var len = itemsR ? itemsR.length : 0; res.items = []; @@ -125617,7 +126036,7 @@ var ThemeGridRange = /*#__PURE__*/function (_Theme) { } }]); }(Theme_Theme); -;// ./src/common/iServer/ThemeGridUniqueItem.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGridUniqueItem.js function ThemeGridUniqueItem_typeof(o) { "@babel/helpers - typeof"; return ThemeGridUniqueItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGridUniqueItem_typeof(o); } function ThemeGridUniqueItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGridUniqueItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGridUniqueItem_toPropertyKey(o.key), o); } } @@ -125670,7 +126089,7 @@ var ThemeGridUniqueItem = /*#__PURE__*/function () { */ this.visible = true; if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeGridUniqueItem"; } @@ -125701,7 +126120,7 @@ var ThemeGridUniqueItem = /*#__PURE__*/function () { key: "toServerJSONObject", value: function toServerJSONObject() { var obj = {}; - obj = Util.copyAttributes(obj, this); + obj = Util_Util.copyAttributes(obj, this); if (obj.color) { if (obj.color.toServerJSONObject) { obj.color = obj.color.toServerJSONObject(); @@ -125720,13 +126139,13 @@ var ThemeGridUniqueItem = /*#__PURE__*/function () { key: "fromObj", value: function fromObj(obj) { var res = new ThemeGridUniqueItem(); - Util.copy(res, obj); + Util_Util.copy(res, obj); res.color = ServerColor.fromJson(obj.color); return res; } }]); }(); -;// ./src/common/iServer/ThemeGridUnique.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeGridUnique.js function ThemeGridUnique_typeof(o) { "@babel/helpers - typeof"; return ThemeGridUnique_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeGridUnique_typeof(o); } function ThemeGridUnique_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeGridUnique_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeGridUnique_toPropertyKey(o.key), o); } } @@ -125737,7 +126156,7 @@ function ThemeGridUnique_callSuper(t, o, e) { return o = ThemeGridUnique_getProt function ThemeGridUnique_possibleConstructorReturn(t, e) { if (e && ("object" == ThemeGridUnique_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return ThemeGridUnique_assertThisInitialized(t); } function ThemeGridUnique_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function ThemeGridUnique_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (ThemeGridUnique_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function ThemeGridUnique_superPropGet(t, o, e, r) { var p = ThemeGridUnique_get(ThemeGridUnique_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function ThemeGridUnique_superPropGet(t, e, o, r) { var p = ThemeGridUnique_get(ThemeGridUnique_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function ThemeGridUnique_get() { return ThemeGridUnique_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = ThemeGridUnique_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, ThemeGridUnique_get.apply(null, arguments); } function ThemeGridUnique_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = ThemeGridUnique_getPrototypeOf(t));); return t; } function ThemeGridUnique_getPrototypeOf(t) { return ThemeGridUnique_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, ThemeGridUnique_getPrototypeOf(t); } @@ -125782,7 +126201,7 @@ var ThemeGridUnique = /*#__PURE__*/function (_Theme) { */ _this.items = null; if (options) { - Util.extend(_this, options); + Util_Util.extend(_this, options); } _this.CLASS_NAME = "SuperMap.ThemeGridUnique"; return _this; @@ -125822,7 +126241,7 @@ var ThemeGridUnique = /*#__PURE__*/function (_Theme) { key: "toServerJSONObject", value: function toServerJSONObject() { var obj = {}; - obj = Util.copyAttributes(obj, this); + obj = Util_Util.copyAttributes(obj, this); if (obj.defaultcolor) { if (obj.defaultcolor.toServerJSONObject) { obj.defaultcolor = obj.defaultcolor.toServerJSONObject(); @@ -125851,7 +126270,7 @@ var ThemeGridUnique = /*#__PURE__*/function (_Theme) { var res = new ThemeGridUnique(); var uItems = obj.items; var len = uItems ? uItems.length : 0; - Util.extend(res, obj); + Util_Util.extend(res, obj); res.items = []; res.defaultcolor = ServerColor.fromJson(obj.defaultcolor); for (var i = 0; i < len; i++) { @@ -125861,7 +126280,7 @@ var ThemeGridUnique = /*#__PURE__*/function (_Theme) { } }]); }(Theme_Theme); -;// ./src/common/iServer/ThemeLabelUniqueItem.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeLabelUniqueItem.js function ThemeLabelUniqueItem_typeof(o) { "@babel/helpers - typeof"; return ThemeLabelUniqueItem_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeLabelUniqueItem_typeof(o); } function ThemeLabelUniqueItem_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeLabelUniqueItem_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeLabelUniqueItem_toPropertyKey(o.key), o); } } @@ -125930,7 +126349,7 @@ var ThemeLabelUniqueItem = /*#__PURE__*/function () { */ this.style = new ServerTextStyle(); if (options) { - Util.extend(this, options); + Util_Util.extend(this, options); } this.CLASS_NAME = "SuperMap.ThemeLabelUniqueItem"; } @@ -125967,12 +126386,12 @@ var ThemeLabelUniqueItem = /*#__PURE__*/function () { return; } var t = new ThemeLabelUniqueItem(); - Util.copy(t, obj); + Util_Util.copy(t, obj); return t; } }]); }(); -;// ./src/common/iServer/ThemeMemoryData.js +;// CONCATENATED MODULE: ./src/common/iServer/ThemeMemoryData.js function ThemeMemoryData_typeof(o) { "@babel/helpers - typeof"; return ThemeMemoryData_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeMemoryData_typeof(o); } function ThemeMemoryData_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ThemeMemoryData_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeMemoryData_toPropertyKey(o.key), o); } } @@ -125988,7 +126407,7 @@ function ThemeMemoryData_toPrimitive(t, r) { if ("object" != ThemeMemoryData_typ * @deprecatedclass SuperMap.ThemeMemoryData * @category iServer Map Theme * @classdesc 专题图内存数据类。制作专题图时,如果设置了内存数据,则会制作基于内存数据的专题图。 - * 具体实现为:在使用专题值制作专题图后,会用外部值代替原始值来制作相应的专题图。 + * 具体实现为:在使用专题值制作专题图后,会用外部值代替原始值来制作相应的专题图。即使用外部传入的内存数据制作专题图,而非使用图层本身的数据。适用于在不改动源数据的情况下,灵活呈现不同业务场景下的专题数据。 * @param {Array} srcData - 原始值数组。 * @param {Array} targetData - 外部值数组。 * @usage @@ -126047,7 +126466,7 @@ var ThemeMemoryData = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/TransferLine.js +;// CONCATENATED MODULE: ./src/common/iServer/TransferLine.js function TransferLine_typeof(o) { "@babel/helpers - typeof"; return TransferLine_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TransferLine_typeof(o); } function TransferLine_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TransferLine_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TransferLine_toPropertyKey(o.key), o); } } @@ -126133,7 +126552,7 @@ var TransferLine = /*#__PURE__*/function () { * @description 下车站点别名。 */ this.endStopAliasName = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TransferLine"; } @@ -126144,7 +126563,7 @@ var TransferLine = /*#__PURE__*/function () { return TransferLine_createClass(TransferLine, [{ key: "destroy", value: function destroy() { - Util.reset(this); + Util_Util.reset(this); } /** @@ -126173,7 +126592,7 @@ var TransferLine = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/RasterFunctionParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/RasterFunctionParameter.js function RasterFunctionParameter_typeof(o) { "@babel/helpers - typeof"; return RasterFunctionParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RasterFunctionParameter_typeof(o); } function RasterFunctionParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RasterFunctionParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RasterFunctionParameter_toPropertyKey(o.key), o); } } @@ -126209,7 +126628,7 @@ var RasterFunctionParameter = /*#__PURE__*/function () { * @description 栅格分析方法。包括:归一化植被指数分析、阴影面分析等。 */ this.type = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = 'SuperMap.RasterFunctionParameter'; } @@ -126224,7 +126643,7 @@ var RasterFunctionParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/NDVIParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/NDVIParameter.js function NDVIParameter_typeof(o) { "@babel/helpers - typeof"; return NDVIParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, NDVIParameter_typeof(o); } function NDVIParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function NDVIParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, NDVIParameter_toPropertyKey(o.key), o); } } @@ -126235,7 +126654,7 @@ function NDVIParameter_callSuper(t, o, e) { return o = NDVIParameter_getPrototyp function NDVIParameter_possibleConstructorReturn(t, e) { if (e && ("object" == NDVIParameter_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return NDVIParameter_assertThisInitialized(t); } function NDVIParameter_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function NDVIParameter_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (NDVIParameter_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function NDVIParameter_superPropGet(t, o, e, r) { var p = NDVIParameter_get(NDVIParameter_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function NDVIParameter_superPropGet(t, e, o, r) { var p = NDVIParameter_get(NDVIParameter_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function NDVIParameter_get() { return NDVIParameter_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = NDVIParameter_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, NDVIParameter_get.apply(null, arguments); } function NDVIParameter_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = NDVIParameter_getPrototypeOf(t));); return t; } function NDVIParameter_getPrototypeOf(t) { return NDVIParameter_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, NDVIParameter_getPrototypeOf(t); } @@ -126289,7 +126708,7 @@ var NDVIParameter = /*#__PURE__*/function (_RasterFunctionParame) { * @description 栅格分析方法。 */ _this.type = RasterFunctionType.NDVI; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.NDVIParameter'; return _this; } @@ -126324,7 +126743,7 @@ var NDVIParameter = /*#__PURE__*/function (_RasterFunctionParame) { } }]); }(RasterFunctionParameter); -;// ./src/common/iServer/HillshadeParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/HillshadeParameter.js function HillshadeParameter_typeof(o) { "@babel/helpers - typeof"; return HillshadeParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, HillshadeParameter_typeof(o); } function HillshadeParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function HillshadeParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, HillshadeParameter_toPropertyKey(o.key), o); } } @@ -126335,7 +126754,7 @@ function HillshadeParameter_callSuper(t, o, e) { return o = HillshadeParameter_g function HillshadeParameter_possibleConstructorReturn(t, e) { if (e && ("object" == HillshadeParameter_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return HillshadeParameter_assertThisInitialized(t); } function HillshadeParameter_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function HillshadeParameter_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (HillshadeParameter_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function HillshadeParameter_superPropGet(t, o, e, r) { var p = HillshadeParameter_get(HillshadeParameter_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function HillshadeParameter_superPropGet(t, e, o, r) { var p = HillshadeParameter_get(HillshadeParameter_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function HillshadeParameter_get() { return HillshadeParameter_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = HillshadeParameter_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, HillshadeParameter_get.apply(null, arguments); } function HillshadeParameter_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = HillshadeParameter_getPrototypeOf(t));); return t; } function HillshadeParameter_getPrototypeOf(t) { return HillshadeParameter_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, HillshadeParameter_getPrototypeOf(t); } @@ -126403,7 +126822,7 @@ var HillshadeParameter = /*#__PURE__*/function (_RasterFunctionParame) { * @description 栅格分析方法。 */ _this.type = RasterFunctionType.HILLSHADE; - Util.extend(_this, options); + Util_Util.extend(_this, options); _this.CLASS_NAME = 'SuperMap.HillshadeParameter'; return _this; } @@ -126438,7 +126857,7 @@ var HillshadeParameter = /*#__PURE__*/function (_RasterFunctionParame) { } }]); }(RasterFunctionParameter); -;// ./src/common/iServer/WebPrintingJobCustomItems.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobCustomItems.js function WebPrintingJobCustomItems_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobCustomItems_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobCustomItems_typeof(o); } function WebPrintingJobCustomItems_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobCustomItems_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobCustomItems_toPropertyKey(o.key), o); } } @@ -126481,7 +126900,7 @@ var WebPrintingJobCustomItems = /*#__PURE__*/function () { */ this.picAsBase64 = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobCustomItems'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -126516,11 +126935,11 @@ var WebPrintingJobCustomItems = /*#__PURE__*/function () { } else if (this.picAsBase64) { params.picAsBase64 = this.picAsBase64.replace(/^data:.+;base64,/, ''); } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobImage.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobImage.js function WebPrintingJobImage_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobImage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobImage_typeof(o); } function WebPrintingJobImage_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobImage_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobImage_toPropertyKey(o.key), o); } } @@ -126557,7 +126976,7 @@ var WebPrintingJobImage = /*#__PURE__*/function () { */ this.picAsBase64 = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobImage'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -126586,11 +127005,11 @@ var WebPrintingJobImage = /*#__PURE__*/function () { if (this.picAsBase64) { params.picAsBase64 = this.picAsBase64.replace(/^data:.+;base64,/, ''); } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobLayers.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobLayers.js function WebPrintingJobLayers_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobLayers_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobLayers_typeof(o); } function WebPrintingJobLayers_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobLayers_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobLayers_toPropertyKey(o.key), o); } } @@ -126633,7 +127052,7 @@ var WebPrintingJobLayers = /*#__PURE__*/function () { */ this.url = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobLayers'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -126649,7 +127068,7 @@ var WebPrintingJobLayers = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/WebPrintingJobLegendOptions.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobLegendOptions.js function WebPrintingJobLegendOptions_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobLegendOptions_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobLegendOptions_typeof(o); } function WebPrintingJobLegendOptions_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobLegendOptions_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobLegendOptions_toPropertyKey(o.key), o); } } @@ -126707,7 +127126,7 @@ var WebPrintingJobLegendOptions = /*#__PURE__*/function () { */ this.customItems = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobLegendOptions'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -126748,11 +127167,11 @@ var WebPrintingJobLegendOptions = /*#__PURE__*/function () { } else if (this.customItems) { params.customItems = this.customItems; } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobLittleMapOptions.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobLittleMapOptions.js function WebPrintingJobLittleMapOptions_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobLittleMapOptions_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobLittleMapOptions_typeof(o); } function WebPrintingJobLittleMapOptions_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobLittleMapOptions_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobLittleMapOptions_toPropertyKey(o.key), o); } } @@ -126811,7 +127230,7 @@ var WebPrintingJobLittleMapOptions = /*#__PURE__*/function () { */ this.layers = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobLittleMapOptions'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -126854,11 +127273,11 @@ var WebPrintingJobLittleMapOptions = /*#__PURE__*/function () { if (this.image) { params.image = this.image; } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobNorthArrowOptions.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobNorthArrowOptions.js function WebPrintingJobNorthArrowOptions_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobNorthArrowOptions_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobNorthArrowOptions_typeof(o); } function WebPrintingJobNorthArrowOptions_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobNorthArrowOptions_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobNorthArrowOptions_toPropertyKey(o.key), o); } } @@ -126895,7 +127314,7 @@ var WebPrintingJobNorthArrowOptions = /*#__PURE__*/function () { */ this.picAsBase64 = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobNorthArrowOptions'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -126923,11 +127342,11 @@ var WebPrintingJobNorthArrowOptions = /*#__PURE__*/function () { } else if (this.picAsBase64) { params.picAsBase64 = this.picAsBase64.replace(/^data:.+;base64,/, ''); } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobScaleBarOptions.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobScaleBarOptions.js function WebPrintingJobScaleBarOptions_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobScaleBarOptions_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobScaleBarOptions_typeof(o); } function WebPrintingJobScaleBarOptions_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobScaleBarOptions_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobScaleBarOptions_toPropertyKey(o.key), o); } } @@ -126982,7 +127401,7 @@ var WebPrintingJobScaleBarOptions = /*#__PURE__*/function () { */ this.unit = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobScaleBarOptions'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -127016,11 +127435,11 @@ var WebPrintingJobScaleBarOptions = /*#__PURE__*/function () { if (this.orientation) { params.orientation = this.orientation; } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobContent.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobContent.js function WebPrintingJobContent_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobContent_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobContent_typeof(o); } function WebPrintingJobContent_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobContent_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobContent_toPropertyKey(o.key), o); } } @@ -127070,7 +127489,7 @@ var WebPrintingJobContent = /*#__PURE__*/function () { */ this.value = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobContent'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -127105,11 +127524,11 @@ var WebPrintingJobContent = /*#__PURE__*/function () { } else if (this.value) { params.value = this.value; } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobLayoutOptions.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobLayoutOptions.js function WebPrintingJobLayoutOptions_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobLayoutOptions_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobLayoutOptions_typeof(o); } function WebPrintingJobLayoutOptions_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobLayoutOptions_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobLayoutOptions_toPropertyKey(o.key), o); } } @@ -127204,7 +127623,7 @@ var WebPrintingJobLayoutOptions = /*#__PURE__*/function () { */ this.legendOptions = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobLayoutOptions'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -127240,7 +127659,7 @@ var WebPrintingJobLayoutOptions = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/WebPrintingJobExportOptions.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobExportOptions.js function WebPrintingJobExportOptions_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobExportOptions_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobExportOptions_typeof(o); } function WebPrintingJobExportOptions_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobExportOptions_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobExportOptions_toPropertyKey(o.key), o); } } @@ -127295,7 +127714,7 @@ var WebPrintingJobExportOptions = /*#__PURE__*/function () { */ this.center = null; this.CLASS_NAME = 'SuperMap.WebPrintingJobExportOptions'; - Util.extend(this, option); + Util_Util.extend(this, option); } /** @@ -127333,11 +127752,11 @@ var WebPrintingJobExportOptions = /*#__PURE__*/function () { if (this.outputSize) { params.outputSize = this.outputSize; } - return Util.toJSON(params); + return Util_Util.toJSON(params); } }]); }(); -;// ./src/common/iServer/WebPrintingJobParameters.js +;// CONCATENATED MODULE: ./src/common/iServer/WebPrintingJobParameters.js function WebPrintingJobParameters_typeof(o) { "@babel/helpers - typeof"; return WebPrintingJobParameters_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebPrintingJobParameters_typeof(o); } function WebPrintingJobParameters_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function WebPrintingJobParameters_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, WebPrintingJobParameters_toPropertyKey(o.key), o); } } @@ -127387,7 +127806,7 @@ var WebPrintingJobParameters = /*#__PURE__*/function () { * @description Web 打印的输出类,包含 DPI、页面大小等。 */ this.exportOptions = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = 'SuperMap.WebPrintingJobParameters'; } @@ -127413,7 +127832,7 @@ var WebPrintingJobParameters = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/FieldsFilter.js +;// CONCATENATED MODULE: ./src/common/iServer/FieldsFilter.js function FieldsFilter_typeof(o) { "@babel/helpers - typeof"; return FieldsFilter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FieldsFilter_typeof(o); } function FieldsFilter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function FieldsFilter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FieldsFilter_toPropertyKey(o.key), o); } } @@ -127450,7 +127869,7 @@ var FieldsFilter = /*#__PURE__*/function () { */ this.exclude = undefined; this.CLASS_NAME = 'SuperMap.FieldsFilter'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -127489,7 +127908,7 @@ var FieldsFilter = /*#__PURE__*/function () { }]); }(); -;// ./src/common/iServer/Sortby.js +;// CONCATENATED MODULE: ./src/common/iServer/Sortby.js function Sortby_typeof(o) { "@babel/helpers - typeof"; return Sortby_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Sortby_typeof(o); } function Sortby_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Sortby_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Sortby_toPropertyKey(o.key), o); } } @@ -127526,7 +127945,7 @@ var Sortby = /*#__PURE__*/function () { */ this.direction = Sortby.Direction.ASC; this.CLASS_NAME = 'SuperMap.Sortby'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -127578,7 +127997,7 @@ Sortby.Direction = { /** 降序。 */ DESC: 'DESC' }; -;// ./src/common/iServer/ImageSearchParameter.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageSearchParameter.js function ImageSearchParameter_typeof(o) { "@babel/helpers - typeof"; return ImageSearchParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageSearchParameter_typeof(o); } function ImageSearchParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageSearchParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageSearchParameter_toPropertyKey(o.key), o); } } @@ -127647,7 +128066,7 @@ var ImageSearchParameter = /*#__PURE__*/function () { */ this.sortby = undefined; this.CLASS_NAME = 'SuperMap.ImageSearchParameter'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -127711,7 +128130,7 @@ var ImageSearchParameter = /*#__PURE__*/function () { }]); }(); -;// ./src/common/iServer/ImageStretchOption.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageStretchOption.js function ImageStretchOption_typeof(o) { "@babel/helpers - typeof"; return ImageStretchOption_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageStretchOption_typeof(o); } function ImageStretchOption_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageStretchOption_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageStretchOption_toPropertyKey(o.key), o); } } @@ -127774,7 +128193,7 @@ var ImageStretchOption = /*#__PURE__*/function () { */ this.maxPercent = undefined; this.CLASS_NAME = 'SuperMap.ImageStretchOption'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -127848,7 +128267,7 @@ ImageStretchOption.StretchType = { /** 标准差拉伸。 */ STANDARDDEVIATION: 'STANDARDDEVIATION' }; -;// ./src/common/iServer/ImageRenderingRule.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageRenderingRule.js function ImageRenderingRule_typeof(o) { "@babel/helpers - typeof"; return ImageRenderingRule_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageRenderingRule_typeof(o); } function ImageRenderingRule_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageRenderingRule_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageRenderingRule_toPropertyKey(o.key), o); } } @@ -127978,7 +128397,7 @@ var ImageRenderingRule = /*#__PURE__*/function () { */ this.gamma = undefined; this.CLASS_NAME = 'SuperMap.ImageRenderingRule'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -128102,7 +128521,7 @@ ImageRenderingRule.InterpolationMode = { /** 默认插值模式。 */ DEFAULT: 'DEFAULT' }; -;// ./src/common/iServer/ImageGFHillShade.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageGFHillShade.js function ImageGFHillShade_typeof(o) { "@babel/helpers - typeof"; return ImageGFHillShade_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageGFHillShade_typeof(o); } function ImageGFHillShade_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageGFHillShade_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageGFHillShade_toPropertyKey(o.key), o); } } @@ -128153,7 +128572,7 @@ var ImageGFHillShade = /*#__PURE__*/function () { */ this.ZFactor = 1; this.CLASS_NAME = 'SuperMap.ImageGFHillShade'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -128200,7 +128619,7 @@ var ImageGFHillShade = /*#__PURE__*/function () { }]); }(); -;// ./src/common/iServer/ImageGFAspect.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageGFAspect.js function ImageGFAspect_typeof(o) { "@babel/helpers - typeof"; return ImageGFAspect_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageGFAspect_typeof(o); } function ImageGFAspect_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageGFAspect_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageGFAspect_toPropertyKey(o.key), o); } } @@ -128237,7 +128656,7 @@ var ImageGFAspect = /*#__PURE__*/function () { */ this.Azimuth = undefined; this.CLASS_NAME = 'SuperMap.ImageGFAspect'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -128276,7 +128695,7 @@ var ImageGFAspect = /*#__PURE__*/function () { }]); }(); -;// ./src/common/iServer/ImageGFOrtho.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageGFOrtho.js function ImageGFOrtho_typeof(o) { "@babel/helpers - typeof"; return ImageGFOrtho_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageGFOrtho_typeof(o); } function ImageGFOrtho_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageGFOrtho_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageGFOrtho_toPropertyKey(o.key), o); } } @@ -128307,7 +128726,7 @@ var ImageGFOrtho = /*#__PURE__*/function () { */ this.girdFuncName = 'GFOrtho'; this.CLASS_NAME = 'SuperMap.ImageGFOrtho'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -128342,7 +128761,7 @@ var ImageGFOrtho = /*#__PURE__*/function () { }]); }(); -;// ./src/common/iServer/ImageGFSlope.js +;// CONCATENATED MODULE: ./src/common/iServer/ImageGFSlope.js function ImageGFSlope_typeof(o) { "@babel/helpers - typeof"; return ImageGFSlope_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ImageGFSlope_typeof(o); } function ImageGFSlope_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ImageGFSlope_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ImageGFSlope_toPropertyKey(o.key), o); } } @@ -128387,7 +128806,7 @@ var ImageGFSlope = /*#__PURE__*/function () { */ this.ZFactor = 1; this.CLASS_NAME = 'SuperMap.ImageGFSlope'; - Util.extend(this, options); + Util_Util.extend(this, options); } /** @@ -128430,8 +128849,7 @@ var ImageGFSlope = /*#__PURE__*/function () { }]); }(); -;// ./src/common/iServer/KnowledgeGraphNodeParameter.js -/* unused harmony import specifier */ var KnowledgeGraphNodeParameter_Util; +;// CONCATENATED MODULE: ./src/common/iServer/KnowledgeGraphNodeParameter.js function KnowledgeGraphNodeParameter_typeof(o) { "@babel/helpers - typeof"; return KnowledgeGraphNodeParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, KnowledgeGraphNodeParameter_typeof(o); } function KnowledgeGraphNodeParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function KnowledgeGraphNodeParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, KnowledgeGraphNodeParameter_toPropertyKey(o.key), o); } } @@ -128488,7 +128906,7 @@ var KnowledgeGraphNodeParameter = /*#__PURE__*/(/* unused pure expression or sup */ this.properties = null; this.CLASS_NAME = 'SuperMap.KnowledgeGraphNodeParameter'; - KnowledgeGraphNodeParameter_Util.extend(this, options); + Util.extend(this, options); } return KnowledgeGraphNodeParameter_createClass(KnowledgeGraphNodeParameter, [{ key: "destroy", @@ -128500,8 +128918,7 @@ var KnowledgeGraphNodeParameter = /*#__PURE__*/(/* unused pure expression or sup } }]); }())); -;// ./src/common/iServer/KnowledgeGraphEdgeParameter.js -/* unused harmony import specifier */ var KnowledgeGraphEdgeParameter_Util; +;// CONCATENATED MODULE: ./src/common/iServer/KnowledgeGraphEdgeParameter.js function KnowledgeGraphEdgeParameter_typeof(o) { "@babel/helpers - typeof"; return KnowledgeGraphEdgeParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, KnowledgeGraphEdgeParameter_typeof(o); } function KnowledgeGraphEdgeParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function KnowledgeGraphEdgeParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, KnowledgeGraphEdgeParameter_toPropertyKey(o.key), o); } } @@ -128557,7 +128974,7 @@ var KnowledgeGraphEdgeParameter = /*#__PURE__*/(/* unused pure expression or sup */ this.properties = null; this.CLASS_NAME = 'SuperMap.KnowledgeGraphEdgeParameter'; - KnowledgeGraphEdgeParameter_Util.extend(this, options); + Util.extend(this, options); } return KnowledgeGraphEdgeParameter_createClass(KnowledgeGraphEdgeParameter, [{ key: "destroy", @@ -128571,7 +128988,7 @@ var KnowledgeGraphEdgeParameter = /*#__PURE__*/(/* unused pure expression or sup } }]); }())); -;// ./src/common/iServer/VideoFeature.js +;// CONCATENATED MODULE: ./src/common/iServer/VideoFeature.js function VideoFeature_typeof(o) { "@babel/helpers - typeof"; return VideoFeature_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VideoFeature_typeof(o); } function VideoFeature_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function VideoFeature_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, VideoFeature_toPropertyKey(o.key), o); } } @@ -128586,14 +129003,14 @@ function VideoFeature_toPrimitive(t, r) { if ("object" != VideoFeature_typeof(t) /** * @class VideoFeature * @category iServer Data - * @classdesc 视频要素类 + * @classdesc 视频要素类,用于表示视频流及其空间范围等相关属性的要素。 * @version 11.2.0 * @param {Object} options - 参数。 * @param {ModulePolygonAndBounds} options.geometry - 视频参数对应的视频视角空间范围,只支持矩形。 - * @param {string|number} [options.id] - 要素 ID。 + * @param {string|number} [options.id] - 要素ID。 * @param {string} [options.name] - 视频名称。 - * @param {string} [options.address] - 视频流地址。 - * @param {string} [options.attributes] - 描述要素的任意的可序列化属性。 + * @param {string} [options.address] - 视频流地址。目前支持m3u8格式视频流。 + * @param {string} [options.attributes] - 要素属性信息。 * @usage */ var VideoFeature = /*#__PURE__*/function () { @@ -128625,14 +129042,14 @@ var VideoFeature = /*#__PURE__*/function () { /** * @member {Object} VideoFeature.prototype.attributes - * @description 描述要素的任意的可序列化属性。 + * @description 要素属性信息 */ this.attributes = {}; // ToDo this.videoParameters = null; // ToDo this.cameraLocation = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = 'SuperMap.VideoFeature'; } @@ -128698,7 +129115,7 @@ var VideoFeature = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/iServer/index.js +;// CONCATENATED MODULE: ./src/common/iServer/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -129308,7 +129725,7 @@ var VideoFeature = /*#__PURE__*/function () { * @modulecondition mapboxgl:GeoJSONObject * @modulecondition maplibregl:GeoJSONObject */ -;// ./src/common/online/OnlineResources.js +;// CONCATENATED MODULE: ./src/common/online/OnlineResources.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -129418,7 +129835,7 @@ var FilterField = { USERNAME: "USERNAME" }; -;// ./src/common/online/OnlineServiceBase.js +;// CONCATENATED MODULE: ./src/common/online/OnlineServiceBase.js function OnlineServiceBase_typeof(o) { "@babel/helpers - typeof"; return OnlineServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OnlineServiceBase_typeof(o); } function OnlineServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OnlineServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OnlineServiceBase_toPropertyKey(o.key), o); } } @@ -129446,7 +129863,7 @@ var OnlineServiceBase = /*#__PURE__*/function () { function OnlineServiceBase(options) { OnlineServiceBase_classCallCheck(this, OnlineServiceBase); options = options || {}; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.OnlineServiceBase"; } @@ -129472,7 +129889,7 @@ var OnlineServiceBase = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/online/OnlineData.js +;// CONCATENATED MODULE: ./src/common/online/OnlineData.js function OnlineData_typeof(o) { "@babel/helpers - typeof"; return OnlineData_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OnlineData_typeof(o); } function OnlineData_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OnlineData_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OnlineData_toPropertyKey(o.key), o); } } @@ -129553,7 +129970,7 @@ var OnlineData = /*#__PURE__*/function (_OnlineServiceBase) { _this.dataMetaInfo = null; //数据的缩略图路径。 _this.thumbnail = null; - Util.extend(_this, options); + Util_Util.extend(_this, options); if (_this.id) { _this.serviceUrl = serviceRootUrl + "/" + _this.id; } @@ -129575,7 +129992,7 @@ var OnlineData = /*#__PURE__*/function (_OnlineServiceBase) { } var me = this; return me.request("GET", this.serviceUrl).then(function (result) { - Util.extend(me, result); + Util_Util.extend(me, result); }); } @@ -129602,7 +130019,7 @@ var OnlineData = /*#__PURE__*/function (_OnlineServiceBase) { } }]); }(OnlineServiceBase); -;// ./src/common/online/Online.js +;// CONCATENATED MODULE: ./src/common/online/Online.js function Online_typeof(o) { "@babel/helpers - typeof"; return Online_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Online_typeof(o); } function Online_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Online_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Online_toPropertyKey(o.key), o); } } @@ -129697,7 +130114,7 @@ var Online = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/online/OnlineQueryDatasParameter.js +;// CONCATENATED MODULE: ./src/common/online/OnlineQueryDatasParameter.js function OnlineQueryDatasParameter_typeof(o) { "@babel/helpers - typeof"; return OnlineQueryDatasParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OnlineQueryDatasParameter_typeof(o); } function OnlineQueryDatasParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function OnlineQueryDatasParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, OnlineQueryDatasParameter_toPropertyKey(o.key), o); } } @@ -129773,7 +130190,7 @@ var OnlineQueryDatasParameter = /*#__PURE__*/function () { * @description 用于关键字查询时的过滤字段。 */ this.filterFields = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.OnlineQueryDatasParameter"; } @@ -129806,7 +130223,7 @@ var OnlineQueryDatasParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/online/index.js +;// CONCATENATED MODULE: ./src/common/online/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -129820,7 +130237,7 @@ var OnlineQueryDatasParameter = /*#__PURE__*/function () { -;// ./src/common/security/KeyServiceParameter.js +;// CONCATENATED MODULE: ./src/common/security/KeyServiceParameter.js function KeyServiceParameter_typeof(o) { "@babel/helpers - typeof"; return KeyServiceParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, KeyServiceParameter_typeof(o); } function KeyServiceParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function KeyServiceParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, KeyServiceParameter_toPropertyKey(o.key), o); } } @@ -129852,7 +130269,7 @@ var KeyServiceParameter = /*#__PURE__*/function () { this.serviceIds = null; this.clientType = ClientType.SERVER; this.limitation = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.KeyServiceParameter"; } @@ -129873,7 +130290,7 @@ var KeyServiceParameter = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/security/ServerInfo.js +;// CONCATENATED MODULE: ./src/common/security/ServerInfo.js function ServerInfo_typeof(o) { "@babel/helpers - typeof"; return ServerInfo_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ServerInfo_typeof(o); } function ServerInfo_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ServerInfo_toPropertyKey(o.key), o); } } function ServerInfo_createClass(e, r, t) { return r && ServerInfo_defineProperties(e.prototype, r), t && ServerInfo_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -129923,7 +130340,7 @@ var ServerInfo = /*#__PURE__*/ServerInfo_createClass(function ServerInfo(type, o * @description 如:http://supermapiserver:8092/web/mycontent/keys/register.json。 */ this.keyServiceUrl = null; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.ServerInfo"; this.type = this.type || ServerType.ISERVER; if (!this.server) { @@ -129937,17 +130354,17 @@ var ServerInfo = /*#__PURE__*/ServerInfo_createClass(function ServerInfo(type, o tokenServiceSuffix = "/iserver" + tokenServiceSuffix; } if (!this.tokenServiceUrl) { - this.tokenServiceUrl = Util.urlPathAppend(this.server, tokenServiceSuffix); + this.tokenServiceUrl = Util_Util.urlPathAppend(this.server, tokenServiceSuffix); } if (!this.keyServiceUrl) { if (this.type === ServerType.IPORTAL) { - this.keyServiceUrl = Util.urlPathAppend(this.server, "/web/mycontent/keys/register"); + this.keyServiceUrl = Util_Util.urlPathAppend(this.server, "/web/mycontent/keys/register"); } else if (this.type === ServerType.ONLINE) { - this.keyServiceUrl = Util.urlPathAppend(this.server, "/web/mycontent/keys"); + this.keyServiceUrl = Util_Util.urlPathAppend(this.server, "/web/mycontent/keys"); } } }); -;// ./src/common/security/TokenServiceParameter.js +;// CONCATENATED MODULE: ./src/common/security/TokenServiceParameter.js function TokenServiceParameter_typeof(o) { "@babel/helpers - typeof"; return TokenServiceParameter_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TokenServiceParameter_typeof(o); } function TokenServiceParameter_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TokenServiceParameter_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TokenServiceParameter_toPropertyKey(o.key), o); } } @@ -130013,7 +130430,7 @@ var TokenServiceParameter = /*#__PURE__*/function () { * @description 申请令牌的有效期,从发布令牌的时间开始计算,单位为分钟。 */ this.expiration = 60; - Util.extend(this, options); + Util_Util.extend(this, options); this.CLASS_NAME = "SuperMap.TokenServiceParameter"; } @@ -130036,8 +130453,8 @@ var TokenServiceParameter = /*#__PURE__*/function () { } }]); }(); -;// ./node_modules/@supermapgis/tile-decryptor/dist/index.esm.js -var __webpack_dirname__ = "/"; +;// CONCATENATED MODULE: ./node_modules/@supermapgis/tile-decryptor/dist/index.esm.js +var index_esm_dirname = "/"; function index_esm_typeof(o) { "@babel/helpers - typeof"; return index_esm_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, index_esm_typeof(o); } function index_esm_A(A, g) { var I = Object.keys(A); @@ -130232,7 +130649,7 @@ var R = true ? function (A, g, I) { if (i) { var y = D, M = w; - c = o ? M.dirname(c) + "/" : __webpack_dirname__ + "/", I = function I(A, g) { + c = o ? M.dirname(c) + "/" : index_esm_dirname + "/", I = function I(A, g) { return A = U(A) ? new URL(A) : M.normalize(A), y.readFileSync(A, g ? void 0 : "utf8"); }, Q = function Q(A) { var g = I(A, !0); @@ -130472,7 +130889,7 @@ var G = { if (i) { var y = D, M = w; - c = o ? M.dirname(c) + "/" : __webpack_dirname__ + "/", I = function I(A, g) { + c = o ? M.dirname(c) + "/" : index_esm_dirname + "/", I = function I(A, g) { return A = z(A) ? new URL(A) : M.normalize(A), y.readFileSync(A, g ? void 0 : "utf8"); }, Q = function Q(A) { var g = I(A, !0); @@ -130691,7 +131108,7 @@ function U(A) { return I; } -;// ./src/common/security/decrypt.js +;// CONCATENATED MODULE: ./src/common/security/decrypt.js function decrypt_typeof(o) { "@babel/helpers - typeof"; return decrypt_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, decrypt_typeof(o); } function decrypt_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function decrypt_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? decrypt_ownKeys(Object(t), !0).forEach(function (r) { decrypt_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : decrypt_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -130736,7 +131153,7 @@ var decrypt = function decrypt(options) { return decodeStr; }; -;// ./src/common/security/index.js +;// CONCATENATED MODULE: ./src/common/security/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -130750,7 +131167,7 @@ var decrypt = function decrypt(options) { -;// ./src/common/thirdparty/elasticsearch/ElasticSearch.js +;// CONCATENATED MODULE: ./src/common/thirdparty/elasticsearch/ElasticSearch.js function ElasticSearch_toConsumableArray(r) { return ElasticSearch_arrayWithoutHoles(r) || ElasticSearch_iterableToArray(r) || ElasticSearch_unsupportedIterableToArray(r) || ElasticSearch_nonIterableSpread(); } function ElasticSearch_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function ElasticSearch_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return ElasticSearch_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? ElasticSearch_arrayLikeToArray(r, a) : void 0; } } @@ -130862,7 +131279,7 @@ var ElasticSearch = /*#__PURE__*/function () { * 相当于调用 Events.on(eventListeners)。 */ this.eventListeners = null; - Util.extend(this, options); + Util_Util.extend(this, options); if (this.eventListeners instanceof Object) { this.events.on(this.eventListeners); } @@ -131512,19 +131929,19 @@ var ElasticSearch = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/thirdparty/elasticsearch/index.js +;// CONCATENATED MODULE: ./src/common/thirdparty/elasticsearch/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/common/thirdparty/index.js +;// CONCATENATED MODULE: ./src/common/thirdparty/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -;// ./src/common/util/ColorsPickerUtil.js +;// CONCATENATED MODULE: ./src/common/util/ColorsPickerUtil.js function ColorsPickerUtil_typeof(o) { "@babel/helpers - typeof"; return ColorsPickerUtil_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ColorsPickerUtil_typeof(o); } function ColorsPickerUtil_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ColorsPickerUtil_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ColorsPickerUtil_toPropertyKey(o.key), o); } } @@ -131728,7 +132145,7 @@ var ColorsPickerUtil = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/util/ArrayStatistic.js +;// CONCATENATED MODULE: ./src/common/util/ArrayStatistic.js function ArrayStatistic_typeof(o) { "@babel/helpers - typeof"; return ArrayStatistic_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ArrayStatistic_typeof(o); } function ArrayStatistic_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ArrayStatistic_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ArrayStatistic_toPropertyKey(o.key), o); } } @@ -131986,7 +132403,7 @@ var ArrayStatistic = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/wasm/util.js +;// CONCATENATED MODULE: ./src/common/wasm/util.js function geojsonCoordsToPoint2Ds(coords) { if (!coords) { @@ -132315,7 +132732,7 @@ function geojson2UGGeometry(geojson) { function formatCoord(pointList) { var xList = []; var yList = []; - if (isObject(pointList) && pointList.type === 'FeatureCollection') { + if (BaseUtil_isObject(pointList) && pointList.type === 'FeatureCollection') { pointList.features.forEach(function (feature) { var coord = feature.geometry.coordinates; xList.push(coord[0]); @@ -132330,7 +132747,7 @@ function formatCoord(pointList) { } else if (Array.isArray(item)) { xList.push(item[0]); yList.push(item[1]); - } else if (isObject(item)) { + } else if (BaseUtil_isObject(item)) { xList.push(item.x); yList.push(item.y); } @@ -132341,9 +132758,9 @@ function formatCoord(pointList) { yList: yList }; } -;// external "function(){try{return Module}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return Module}catch(e){return {}}}()" var external_function_try_return_Module_catch_e_return_namespaceObject = function(){try{return Module}catch(e){return {}}}(); -;// ./src/common/util/GeometryAnalysis.js +;// CONCATENATED MODULE: ./src/common/util/GeometryAnalysis.js function GeometryAnalysis_typeof(o) { "@babel/helpers - typeof"; return GeometryAnalysis_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeometryAnalysis_typeof(o); } function _readOnlyError(r) { throw new TypeError('"' + r + '" is read-only'); } function GeometryAnalysis_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -132948,11 +133365,7 @@ function GeometryAnalysis_getType(geojson) { } return geojson.type; } -;// ./src/common/util/index.js -/* unused harmony import specifier */ var GeometryPoint; -/* unused harmony import specifier */ var util_Polygon; -/* unused harmony import specifier */ var util_LinearRing; -/* unused harmony import specifier */ var GeoJSONFormat; +;// CONCATENATED MODULE: ./src/common/util/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -132979,7 +133392,7 @@ function toSuperMapPolygon(lnglatBounds) { var east = lnglatBounds.getEast(); var sourth = lnglatBounds.getSouth(); var north = lnglatBounds.getNorth(); - return new util_Polygon([new util_LinearRing([new GeometryPoint(west, sourth), new GeometryPoint(east, sourth), new GeometryPoint(east, north), new GeometryPoint(west, north)])]); + return new Polygon([new LinearRing([new GeometryPoint(west, sourth), new GeometryPoint(east, sourth), new GeometryPoint(east, north), new GeometryPoint(west, north)])]); } function util_extend(dest) { for (var index = 0; index < Object.getOwnPropertyNames(arguments).length; index++) { @@ -133004,7 +133417,7 @@ function util_extend(dest) { // EXTERNAL MODULE: ./node_modules/lodash.topairs/index.js var lodash_topairs = __webpack_require__(8518); var lodash_topairs_default = /*#__PURE__*/__webpack_require__.n(lodash_topairs); -;// ./src/common/style/CartoCSS.js +;// CONCATENATED MODULE: ./src/common/style/CartoCSS.js function CartoCSS_typeof(o) { "@babel/helpers - typeof"; return CartoCSS_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CartoCSS_typeof(o); } function CartoCSS_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function CartoCSS_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, CartoCSS_toPropertyKey(o.key), o); } } @@ -137226,7 +137639,7 @@ CartoCSS.Tree.Zoom.ranges = { 22: 250, 23: 100 }; -;// ./src/common/style/ThemeStyle.js +;// CONCATENATED MODULE: ./src/common/style/ThemeStyle.js function ThemeStyle_typeof(o) { "@babel/helpers - typeof"; return ThemeStyle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ThemeStyle_typeof(o); } function ThemeStyle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ThemeStyle_toPropertyKey(o.key), o); } } function ThemeStyle_createClass(e, r, t) { return r && ThemeStyle_defineProperties(e.prototype, r), t && ThemeStyle_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -137421,9 +137834,9 @@ var ThemeStyle = /*#__PURE__*/ThemeStyle_createClass(function ThemeStyle(options * @description 附加文本在 Y 轴方向的偏移量。 */ this.labelYOffset = 0; - Util.extend(this, options); + Util_Util.extend(this, options); }); -;// ./src/common/style/index.js +;// CONCATENATED MODULE: ./src/common/style/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -137431,7 +137844,7 @@ var ThemeStyle = /*#__PURE__*/ThemeStyle_createClass(function ThemeStyle(options -;// ./src/common/overlay/Graph.js +;// CONCATENATED MODULE: ./src/common/overlay/Graph.js function Graph_typeof(o) { "@babel/helpers - typeof"; return Graph_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Graph_typeof(o); } function Graph_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Graph_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Graph_toPropertyKey(o.key), o); } } @@ -137442,7 +137855,7 @@ function Graph_callSuper(t, o, e) { return o = Graph_getPrototypeOf(o), Graph_po function Graph_possibleConstructorReturn(t, e) { if (e && ("object" == Graph_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Graph_assertThisInitialized(t); } function Graph_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Graph_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Graph_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Graph_superPropGet(t, o, e, r) { var p = Graph_get(Graph_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Graph_superPropGet(t, e, o, r) { var p = Graph_get(Graph_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Graph_get() { return Graph_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Graph_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Graph_get.apply(null, arguments); } function Graph_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Graph_getPrototypeOf(t));); return t; } function Graph_getPrototypeOf(t) { return Graph_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Graph_getPrototypeOf(t); } @@ -137974,7 +138387,7 @@ Theme.getDataValues = function (data, fields, decimalNumber) { return false; } }; -;// ./src/common/overlay/Bar.js +;// CONCATENATED MODULE: ./src/common/overlay/Bar.js function Bar_typeof(o) { "@babel/helpers - typeof"; return Bar_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Bar_typeof(o); } function Bar_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Bar_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Bar_toPropertyKey(o.key), o); } } @@ -137985,7 +138398,7 @@ function Bar_callSuper(t, o, e) { return o = Bar_getPrototypeOf(o), Bar_possible function Bar_possibleConstructorReturn(t, e) { if (e && ("object" == Bar_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Bar_assertThisInitialized(t); } function Bar_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Bar_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Bar_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Bar_superPropGet(t, o, e, r) { var p = Bar_get(Bar_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Bar_superPropGet(t, e, o, r) { var p = Bar_get(Bar_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Bar_get() { return Bar_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Bar_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Bar_get.apply(null, arguments); } function Bar_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Bar_getPrototypeOf(t));); return t; } function Bar_getPrototypeOf(t) { return Bar_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Bar_getPrototypeOf(t); } @@ -138161,7 +138574,7 @@ var Bar = /*#__PURE__*/function (_Graph) { var poiLists = [[xsLoc[i] - xsWdith / 2, dvb[1] - 1], [xsLoc[i] + xsWdith / 2, dvb[1] - 1], [xsLoc[i] + xsWdith / 2, yPx], [xsLoc[i] - xsWdith / 2, yPx]]; // 柱条参数对象(一个面参数对象) - var barParams = new Polygon_Polygon(poiLists); + var barParams = new feature_Polygon_Polygon(poiLists); // 柱条 阴影 style if (typeof sets.showShadow === "undefined" || sets.showShadow) { @@ -138181,7 +138594,7 @@ var Bar = /*#__PURE__*/function (_Graph) { } } barParams.style = {}; - Util.copyAttributesWithClip(barParams.style, deafaultShawdow); + Util_Util.copyAttributesWithClip(barParams.style, deafaultShawdow); } // 图形携带的数据信息 @@ -138308,7 +138721,7 @@ var Bar = /*#__PURE__*/function (_Graph) { } }]); }(Graph_Graph); -;// ./src/common/overlay/Bar3D.js +;// CONCATENATED MODULE: ./src/common/overlay/Bar3D.js function Bar3D_typeof(o) { "@babel/helpers - typeof"; return Bar3D_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Bar3D_typeof(o); } function Bar3D_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Bar3D_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Bar3D_toPropertyKey(o.key), o); } } @@ -138319,7 +138732,7 @@ function Bar3D_callSuper(t, o, e) { return o = Bar3D_getPrototypeOf(o), Bar3D_po function Bar3D_possibleConstructorReturn(t, e) { if (e && ("object" == Bar3D_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Bar3D_assertThisInitialized(t); } function Bar3D_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Bar3D_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Bar3D_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Bar3D_superPropGet(t, o, e, r) { var p = Bar3D_get(Bar3D_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Bar3D_superPropGet(t, e, o, r) { var p = Bar3D_get(Bar3D_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Bar3D_get() { return Bar3D_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Bar3D_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Bar3D_get.apply(null, arguments); } function Bar3D_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Bar3D_getPrototypeOf(t));); return t; } function Bar3D_getPrototypeOf(t) { return Bar3D_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Bar3D_getPrototypeOf(t); } @@ -138578,9 +138991,9 @@ var Bar3D = /*#__PURE__*/function (_Graph) { } // 新建 3d 柱面顶面、侧面、正面图形参数对象 - var polyTopSP = new Polygon_Polygon(bar3DTopPois); - var polySideSP = new Polygon_Polygon(bar3DSidePois); - var polyFaceSP = new Polygon_Polygon(bar3DFacePois); + var polyTopSP = new feature_Polygon_Polygon(bar3DTopPois); + var polySideSP = new feature_Polygon_Polygon(bar3DSidePois); + var polyFaceSP = new feature_Polygon_Polygon(bar3DFacePois); // 侧面、正面图形 style 默认值 sets.barSideStyle = sets.barSideStyle ? sets.barSideStyle : sets.barFaceStyle; @@ -138624,7 +139037,7 @@ var Bar3D = /*#__PURE__*/function (_Graph) { // hover 模式(组合) polyTopSP.isHoverByRefDataID = polySideSP.isHoverByRefDataID = polyFaceSP.isHoverByRefDataID = true; // 高亮组(当鼠标 hover 到组内任何一个图形,整个组的图形都会高亮。refDataHoverGroup 在 isHoverByRefDataID 为 true 时有效) - polyTopSP.refDataHoverGroup = polySideSP.refDataHoverGroup = polyFaceSP.refDataHoverGroup = Util.createUniqueID("lr_shg"); + polyTopSP.refDataHoverGroup = polySideSP.refDataHoverGroup = polyFaceSP.refDataHoverGroup = Util_Util.createUniqueID("lr_shg"); // 图形携带的数据信息 polyTopSP.dataInfo = polySideSP.dataInfo = polyFaceSP.dataInfo = { field: this.fields[_i], @@ -138710,7 +139123,7 @@ var Bar3D = /*#__PURE__*/function (_Graph) { } }]); }(Graph_Graph); -;// ./src/common/overlay/RankSymbol.js +;// CONCATENATED MODULE: ./src/common/overlay/RankSymbol.js function RankSymbol_typeof(o) { "@babel/helpers - typeof"; return RankSymbol_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, RankSymbol_typeof(o); } function RankSymbol_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function RankSymbol_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, RankSymbol_toPropertyKey(o.key), o); } } @@ -138721,7 +139134,7 @@ function RankSymbol_callSuper(t, o, e) { return o = RankSymbol_getPrototypeOf(o) function RankSymbol_possibleConstructorReturn(t, e) { if (e && ("object" == RankSymbol_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return RankSymbol_assertThisInitialized(t); } function RankSymbol_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function RankSymbol_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (RankSymbol_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function RankSymbol_superPropGet(t, o, e, r) { var p = RankSymbol_get(RankSymbol_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function RankSymbol_superPropGet(t, e, o, r) { var p = RankSymbol_get(RankSymbol_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function RankSymbol_get() { return RankSymbol_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = RankSymbol_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, RankSymbol_get.apply(null, arguments); } function RankSymbol_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = RankSymbol_getPrototypeOf(t));); return t; } function RankSymbol_getPrototypeOf(t) { return RankSymbol_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, RankSymbol_getPrototypeOf(t); } @@ -138874,7 +139287,7 @@ var RankSymbol_RankSymbol = /*#__PURE__*/function (_Graph) { } }]); }(Graph_Graph); -;// ./src/common/overlay/Circle.js +;// CONCATENATED MODULE: ./src/common/overlay/Circle.js function overlay_Circle_typeof(o) { "@babel/helpers - typeof"; return overlay_Circle_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, overlay_Circle_typeof(o); } function overlay_Circle_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function overlay_Circle_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, overlay_Circle_toPropertyKey(o.key), o); } } @@ -138885,7 +139298,7 @@ function overlay_Circle_callSuper(t, o, e) { return o = overlay_Circle_getProtot function overlay_Circle_possibleConstructorReturn(t, e) { if (e && ("object" == overlay_Circle_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return overlay_Circle_assertThisInitialized(t); } function overlay_Circle_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function overlay_Circle_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (overlay_Circle_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function overlay_Circle_superPropGet(t, o, e, r) { var p = overlay_Circle_get(overlay_Circle_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function overlay_Circle_superPropGet(t, e, o, r) { var p = overlay_Circle_get(overlay_Circle_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function overlay_Circle_get() { return overlay_Circle_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = overlay_Circle_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, overlay_Circle_get.apply(null, arguments); } function overlay_Circle_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = overlay_Circle_getPrototypeOf(t));); return t; } function overlay_Circle_getPrototypeOf(t) { return overlay_Circle_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, overlay_Circle_getPrototypeOf(t); } @@ -139042,7 +139455,7 @@ var Circle = /*#__PURE__*/function (_RankSymbol) { } }]); }(RankSymbol_RankSymbol); -;// ./src/common/overlay/Line.js +;// CONCATENATED MODULE: ./src/common/overlay/Line.js function overlay_Line_typeof(o) { "@babel/helpers - typeof"; return overlay_Line_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, overlay_Line_typeof(o); } function overlay_Line_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function overlay_Line_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, overlay_Line_toPropertyKey(o.key), o); } } @@ -139053,7 +139466,7 @@ function overlay_Line_callSuper(t, o, e) { return o = overlay_Line_getPrototypeO function overlay_Line_possibleConstructorReturn(t, e) { if (e && ("object" == overlay_Line_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return overlay_Line_assertThisInitialized(t); } function overlay_Line_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function overlay_Line_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (overlay_Line_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function overlay_Line_superPropGet(t, o, e, r) { var p = overlay_Line_get(overlay_Line_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function overlay_Line_superPropGet(t, e, o, r) { var p = overlay_Line_get(overlay_Line_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function overlay_Line_get() { return overlay_Line_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = overlay_Line_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, overlay_Line_get.apply(null, arguments); } function overlay_Line_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = overlay_Line_getPrototypeOf(t));); return t; } function overlay_Line_getPrototypeOf(t) { return overlay_Line_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, overlay_Line_getPrototypeOf(t); } @@ -139325,7 +139738,7 @@ var Line = /*#__PURE__*/function (_Graph) { } }]); }(Graph_Graph); -;// ./src/common/overlay/Pie.js +;// CONCATENATED MODULE: ./src/common/overlay/Pie.js function Pie_typeof(o) { "@babel/helpers - typeof"; return Pie_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Pie_typeof(o); } function Pie_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Pie_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Pie_toPropertyKey(o.key), o); } } @@ -139336,7 +139749,7 @@ function Pie_callSuper(t, o, e) { return o = Pie_getPrototypeOf(o), Pie_possible function Pie_possibleConstructorReturn(t, e) { if (e && ("object" == Pie_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Pie_assertThisInitialized(t); } function Pie_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Pie_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Pie_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Pie_superPropGet(t, o, e, r) { var p = Pie_get(Pie_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Pie_superPropGet(t, e, o, r) { var p = Pie_get(Pie_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Pie_get() { return Pie_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Pie_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Pie_get.apply(null, arguments); } function Pie_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Pie_getPrototypeOf(t));); return t; } function Pie_getPrototypeOf(t) { return Pie_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Pie_getPrototypeOf(t); } @@ -139589,7 +140002,7 @@ var Pie = /*#__PURE__*/function (_Graph) { } }]); }(Graph_Graph); -;// ./src/common/overlay/Point.js +;// CONCATENATED MODULE: ./src/common/overlay/Point.js function overlay_Point_typeof(o) { "@babel/helpers - typeof"; return overlay_Point_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, overlay_Point_typeof(o); } function overlay_Point_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function overlay_Point_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, overlay_Point_toPropertyKey(o.key), o); } } @@ -139600,7 +140013,7 @@ function overlay_Point_callSuper(t, o, e) { return o = overlay_Point_getPrototyp function overlay_Point_possibleConstructorReturn(t, e) { if (e && ("object" == overlay_Point_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return overlay_Point_assertThisInitialized(t); } function overlay_Point_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function overlay_Point_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (overlay_Point_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function overlay_Point_superPropGet(t, o, e, r) { var p = overlay_Point_get(overlay_Point_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function overlay_Point_superPropGet(t, e, o, r) { var p = overlay_Point_get(overlay_Point_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function overlay_Point_get() { return overlay_Point_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = overlay_Point_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, overlay_Point_get.apply(null, arguments); } function overlay_Point_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = overlay_Point_getPrototypeOf(t));); return t; } function overlay_Point_getPrototypeOf(t) { return overlay_Point_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, overlay_Point_getPrototypeOf(t); } @@ -139841,7 +140254,7 @@ var overlay_Point_Point = /*#__PURE__*/function (_Graph) { } }]); }(Graph_Graph); -;// ./src/common/overlay/Ring.js +;// CONCATENATED MODULE: ./src/common/overlay/Ring.js function Ring_typeof(o) { "@babel/helpers - typeof"; return Ring_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Ring_typeof(o); } function Ring_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Ring_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Ring_toPropertyKey(o.key), o); } } @@ -139852,7 +140265,7 @@ function Ring_callSuper(t, o, e) { return o = Ring_getPrototypeOf(o), Ring_possi function Ring_possibleConstructorReturn(t, e) { if (e && ("object" == Ring_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return Ring_assertThisInitialized(t); } function Ring_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function Ring_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (Ring_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function Ring_superPropGet(t, o, e, r) { var p = Ring_get(Ring_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function Ring_superPropGet(t, e, o, r) { var p = Ring_get(Ring_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function Ring_get() { return Ring_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = Ring_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, Ring_get.apply(null, arguments); } function Ring_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = Ring_getPrototypeOf(t));); return t; } function Ring_getPrototypeOf(t) { return Ring_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, Ring_getPrototypeOf(t); } @@ -140111,7 +140524,7 @@ var Ring = /*#__PURE__*/function (_Graph) { } }]); }(Graph_Graph); -;// ./src/common/overlay/feature/index.js +;// CONCATENATED MODULE: ./src/common/overlay/feature/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -140137,8 +140550,7 @@ var Ring = /*#__PURE__*/function (_Graph) { -;// ./src/common/overlay/levelRenderer/SmicEllipse.js -/* unused harmony import specifier */ var SmicEllipse_Shape; +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicEllipse.js function SmicEllipse_typeof(o) { "@babel/helpers - typeof"; return SmicEllipse_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicEllipse_typeof(o); } function SmicEllipse_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicEllipse_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicEllipse_toPropertyKey(o.key), o); } } @@ -140149,7 +140561,7 @@ function SmicEllipse_callSuper(t, o, e) { return o = SmicEllipse_getPrototypeOf( function SmicEllipse_possibleConstructorReturn(t, e) { if (e && ("object" == SmicEllipse_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicEllipse_assertThisInitialized(t); } function SmicEllipse_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicEllipse_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicEllipse_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicEllipse_superPropGet(t, o, e, r) { var p = SmicEllipse_get(SmicEllipse_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicEllipse_superPropGet(t, e, o, r) { var p = SmicEllipse_get(SmicEllipse_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicEllipse_get() { return SmicEllipse_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicEllipse_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicEllipse_get.apply(null, arguments); } function SmicEllipse_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicEllipse_getPrototypeOf(t));); return t; } function SmicEllipse_getPrototypeOf(t) { return SmicEllipse_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicEllipse_getPrototypeOf(t); } @@ -140278,10 +140690,8 @@ var SmicEllipse = /*#__PURE__*/(/* unused pure expression or super */ null && (f return style.__rect; } }]); -}(SmicEllipse_Shape))); -;// ./src/common/overlay/levelRenderer/SmicIsogon.js -/* unused harmony import specifier */ var SmicIsogon_Shape; -/* unused harmony import specifier */ var SmicIsogon_SUtil; +}(Shape))); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicIsogon.js function SmicIsogon_typeof(o) { "@babel/helpers - typeof"; return SmicIsogon_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicIsogon_typeof(o); } function SmicIsogon_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicIsogon_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicIsogon_toPropertyKey(o.key), o); } } @@ -140292,7 +140702,7 @@ function SmicIsogon_callSuper(t, o, e) { return o = SmicIsogon_getPrototypeOf(o) function SmicIsogon_possibleConstructorReturn(t, e) { if (e && ("object" == SmicIsogon_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicIsogon_assertThisInitialized(t); } function SmicIsogon_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicIsogon_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicIsogon_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicIsogon_superPropGet(t, o, e, r) { var p = SmicIsogon_get(SmicIsogon_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicIsogon_superPropGet(t, e, o, r) { var p = SmicIsogon_get(SmicIsogon_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicIsogon_get() { return SmicIsogon_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicIsogon_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicIsogon_get.apply(null, arguments); } function SmicIsogon_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicIsogon_getPrototypeOf(t));); return t; } function SmicIsogon_getPrototypeOf(t) { return SmicIsogon_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicIsogon_getPrototypeOf(t); } @@ -140356,8 +140766,8 @@ var SmicIsogon = /*#__PURE__*/(/* unused pure expression or super */ null && (fu this.refOriginalPosition = [0, 0]; } var __OP = this.refOriginalPosition; - var sin = SmicIsogon_SUtil.Util_math.sin; - var cos = SmicIsogon_SUtil.Util_math.cos; + var sin = SUtil.Util_math.sin; + var cos = SUtil.Util_math.cos; var PI = Math.PI; var n = style.n; if (!n || n < 2) { @@ -140422,9 +140832,8 @@ var SmicIsogon = /*#__PURE__*/(/* unused pure expression or super */ null && (fu return style.__rect; } }]); -}(SmicIsogon_Shape))); -;// ./src/common/overlay/levelRenderer/SmicRing.js -/* unused harmony import specifier */ var SmicRing_Shape; +}(Shape))); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicRing.js function SmicRing_typeof(o) { "@babel/helpers - typeof"; return SmicRing_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicRing_typeof(o); } function SmicRing_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicRing_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicRing_toPropertyKey(o.key), o); } } @@ -140435,7 +140844,7 @@ function SmicRing_callSuper(t, o, e) { return o = SmicRing_getPrototypeOf(o), Sm function SmicRing_possibleConstructorReturn(t, e) { if (e && ("object" == SmicRing_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicRing_assertThisInitialized(t); } function SmicRing_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicRing_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicRing_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicRing_superPropGet(t, o, e, r) { var p = SmicRing_get(SmicRing_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicRing_superPropGet(t, e, o, r) { var p = SmicRing_get(SmicRing_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicRing_get() { return SmicRing_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicRing_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicRing_get.apply(null, arguments); } function SmicRing_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicRing_getPrototypeOf(t));); return t; } function SmicRing_getPrototypeOf(t) { return SmicRing_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicRing_getPrototypeOf(t); } @@ -140548,10 +140957,8 @@ var SmicRing = /*#__PURE__*/(/* unused pure expression or super */ null && (func return style.__rect; } }]); -}(SmicRing_Shape))); -;// ./src/common/overlay/levelRenderer/SmicStar.js -/* unused harmony import specifier */ var SmicStar_Shape; -/* unused harmony import specifier */ var SmicStar_SUtil; +}(Shape))); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/SmicStar.js function SmicStar_typeof(o) { "@babel/helpers - typeof"; return SmicStar_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SmicStar_typeof(o); } function SmicStar_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function SmicStar_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, SmicStar_toPropertyKey(o.key), o); } } @@ -140562,7 +140969,7 @@ function SmicStar_callSuper(t, o, e) { return o = SmicStar_getPrototypeOf(o), Sm function SmicStar_possibleConstructorReturn(t, e) { if (e && ("object" == SmicStar_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return SmicStar_assertThisInitialized(t); } function SmicStar_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function SmicStar_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (SmicStar_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function SmicStar_superPropGet(t, o, e, r) { var p = SmicStar_get(SmicStar_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function SmicStar_superPropGet(t, e, o, r) { var p = SmicStar_get(SmicStar_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function SmicStar_get() { return SmicStar_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = SmicStar_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, SmicStar_get.apply(null, arguments); } function SmicStar_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = SmicStar_getPrototypeOf(t));); return t; } function SmicStar_getPrototypeOf(t) { return SmicStar_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, SmicStar_getPrototypeOf(t); } @@ -140642,8 +141049,8 @@ var SmicStar = /*#__PURE__*/(/* unused pure expression or super */ null && (func if (!n || n < 2) { return; } - var sin = SmicStar_SUtil.Util_math.sin; - var cos = SmicStar_SUtil.Util_math.cos; + var sin = SUtil.Util_math.sin; + var cos = SUtil.Util_math.cos; var PI = Math.PI; var x = style.x + __OP[0]; var y = style.y + __OP[1]; @@ -140716,8 +141123,8 @@ var SmicStar = /*#__PURE__*/(/* unused pure expression or super */ null && (func return style.__rect; } }]); -}(SmicStar_Shape))); -;// ./src/common/overlay/levelRenderer/index.js +}(Shape))); +;// CONCATENATED MODULE: ./src/common/overlay/levelRenderer/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -140797,7 +141204,7 @@ var SmicStar = /*#__PURE__*/(/* unused pure expression or super */ null && (func -;// ./src/common/overlay/index.js +;// CONCATENATED MODULE: ./src/common/overlay/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -140827,7 +141234,77 @@ var SmicStar = /*#__PURE__*/(/* unused pure expression or super */ null && (func -;// ./src/common/components/messagebox/MessageBox.js +;// CONCATENATED MODULE: ./src/common/components/CommonTypes.js +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ +/** + * @description 该文件用于存储一些公用常量 + * @private + */ +var CommonTypes_FileTypes = { + EXCEL: "EXCEL", + CSV: "CSV", + ISERVER: "ISERVER", + GEOJSON: "GEOJSON", + JSON: 'JSON' +}; +var CommonTypes_FileConfig = { + fileMaxSize: 10 * 1024 * 1024 +}; +;// CONCATENATED MODULE: ./src/common/components/openfile/FileModel.js +function FileModel_typeof(o) { "@babel/helpers - typeof"; return FileModel_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, FileModel_typeof(o); } +function FileModel_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function FileModel_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, FileModel_toPropertyKey(o.key), o); } } +function FileModel_createClass(e, r, t) { return r && FileModel_defineProperties(e.prototype, r), t && FileModel_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function FileModel_toPropertyKey(t) { var i = FileModel_toPrimitive(t, "string"); return "symbol" == FileModel_typeof(i) ? i : i + ""; } +function FileModel_toPrimitive(t, r) { if ("object" != FileModel_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != FileModel_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ + + +/** + * @class FileModel + * @deprecatedclass SuperMap.FileModel + * @description 文件数据组件数据模型,用于存储一些文件数据或状态,todo 结构待完善 + * @category Components OpenFile + * @private + */ +var FileModel = /*#__PURE__*/(/* unused pure expression or super */ null && (function () { + function FileModel(options) { + FileModel_classCallCheck(this, FileModel); + this.FileTypes = FileTypes; + this.FileConfig = FileConfig; + this.loadFileObject = options && options.loadFileObject ? options.loadFileObject : []; + } + + /** + * @function FileModel.prototype.set + * @description 设置属性值 + * @param {string} key - 属性名称 + * @param {string|Object} value - 属性值 + */ + return FileModel_createClass(FileModel, [{ + key: "set", + value: function set(key, value) { + this[key] = value; + } + + /** + * @function FileModel.prototype.get + * @description 获取数据值 + * @param {string} key - 属性名称 + * @returns {string|Object} value - 返回属性值 + */ + }, { + key: "get", + value: function get(key) { + return this[key]; + } + }]); +}())); +;// CONCATENATED MODULE: ./src/common/components/messagebox/MessageBox.js function MessageBox_typeof(o) { "@babel/helpers - typeof"; return MessageBox_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MessageBox_typeof(o); } function MessageBox_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MessageBox_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MessageBox_toPropertyKey(o.key), o); } } @@ -140924,9 +141401,9 @@ var MessageBox = /*#__PURE__*/function () { } }]); }(); -;// external "function(){try{return echarts}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return echarts}catch(e){return {}}}()" var external_function_try_return_echarts_catch_e_return_namespaceObject = function(){try{return echarts}catch(e){return {}}}(); -;// ./src/common/lang/locales/en-US.js +;// CONCATENATED MODULE: ./src/common/lang/locales/en-US.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -141042,7 +141519,7 @@ var en = { 'msg_getdatafailed': 'Failed to get data!' }; -;// ./src/common/lang/locales/zh-CN.js +;// CONCATENATED MODULE: ./src/common/lang/locales/zh-CN.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -141158,7 +141635,7 @@ var zh = { 'msg_getdatafailed': '获取数据失败!' }; -;// ./src/common/lang/Lang.js +;// CONCATENATED MODULE: ./src/common/lang/Lang.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -141270,27 +141747,9 @@ var Lang = { } }; -;// external "function(){try{return XLSX}catch(e){return {}}}()" +;// CONCATENATED MODULE: external "function(){try{return XLSX}catch(e){return {}}}()" var external_function_try_return_XLSX_catch_e_return_namespaceObject = function(){try{return XLSX}catch(e){return {}}}(); -;// ./src/common/components/CommonTypes.js -/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. - * This program are made available under the terms of the Apache License, Version 2.0 - * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -/** - * @description 该文件用于存储一些公用常量 - * @private - */ -var FileTypes = { - EXCEL: "EXCEL", - CSV: "CSV", - ISERVER: "ISERVER", - GEOJSON: "GEOJSON", - JSON: 'JSON' -}; -var FileConfig = (/* unused pure expression or super */ null && ({ - fileMaxSize: 10 * 1024 * 1024 -})); -;// ./src/common/components/util/FileReaderUtil.js +;// CONCATENATED MODULE: ./src/common/components/util/FileReaderUtil.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -141338,9 +141797,9 @@ var FileReaderUtil = { * @param {Object} context - 回调重定向对象。 */ readFile: function readFile(fileType, file, success, failed, context) { - if (FileTypes.JSON === fileType || FileTypes.GEOJSON === fileType) { + if (CommonTypes_FileTypes.JSON === fileType || CommonTypes_FileTypes.GEOJSON === fileType) { this.readTextFile(file, success, failed, context); - } else if (FileTypes.EXCEL === fileType || FileTypes.CSV === fileType) { + } else if (CommonTypes_FileTypes.EXCEL === fileType || CommonTypes_FileTypes.CSV === fileType) { this.readXLSXFile(file, success, failed, context); } }, @@ -141515,7 +141974,7 @@ var FileReaderUtil = { return result; } }; -;// ./src/common/components/chart/ChartModel.js +;// CONCATENATED MODULE: ./src/common/components/chart/ChartModel.js function ChartModel_typeof(o) { "@babel/helpers - typeof"; return ChartModel_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartModel_typeof(o); } function ChartModel_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartModel_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartModel_toPropertyKey(o.key), o); } } @@ -142061,7 +142520,7 @@ var ChartModel = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/components/chart/ChartViewModel.js +;// CONCATENATED MODULE: ./src/common/components/chart/ChartViewModel.js function ChartViewModel_typeof(o) { "@babel/helpers - typeof"; return ChartViewModel_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartViewModel_typeof(o); } function ChartViewModel_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = ChartViewModel_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function ChartViewModel_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return ChartViewModel_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? ChartViewModel_arrayLikeToArray(r, a) : void 0; } } @@ -142728,7 +143187,7 @@ var ChartViewModel = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/components/chart/ChartView.js +;// CONCATENATED MODULE: ./src/common/components/chart/ChartView.js function ChartView_typeof(o) { "@babel/helpers - typeof"; return ChartView_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, ChartView_typeof(o); } function ChartView_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function ChartView_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, ChartView_toPropertyKey(o.key), o); } } @@ -142913,7 +143372,7 @@ var ChartView = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/components/templates/TemplateBase.js +;// CONCATENATED MODULE: ./src/common/components/templates/TemplateBase.js function TemplateBase_typeof(o) { "@babel/helpers - typeof"; return TemplateBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, TemplateBase_typeof(o); } function TemplateBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function TemplateBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, TemplateBase_toPropertyKey(o.key), o); } } @@ -142999,7 +143458,7 @@ var TemplateBase = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/components/templates/CommonContainer.js +;// CONCATENATED MODULE: ./src/common/components/templates/CommonContainer.js function CommonContainer_typeof(o) { "@babel/helpers - typeof"; return CommonContainer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CommonContainer_typeof(o); } function CommonContainer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function CommonContainer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, CommonContainer_toPropertyKey(o.key), o); } } @@ -143089,7 +143548,7 @@ var CommonContainer = /*#__PURE__*/function (_TemplateBase) { } }]); }(TemplateBase); -;// ./src/common/components/templates/Select.js +;// CONCATENATED MODULE: ./src/common/components/templates/Select.js function Select_typeof(o) { "@babel/helpers - typeof"; return Select_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Select_typeof(o); } function Select_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Select_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Select_toPropertyKey(o.key), o); } } @@ -143243,7 +143702,7 @@ var Select = /*#__PURE__*/function (_TemplateBase) { } }]); }(TemplateBase); -;// ./src/common/components/templates/DropDownBox.js +;// CONCATENATED MODULE: ./src/common/components/templates/DropDownBox.js function DropDownBox_typeof(o) { "@babel/helpers - typeof"; return DropDownBox_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DropDownBox_typeof(o); } function DropDownBox_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function DropDownBox_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, DropDownBox_toPropertyKey(o.key), o); } } @@ -143460,7 +143919,7 @@ var DropDownBox = /*#__PURE__*/function (_TemplateBase) { } }]); }(TemplateBase); -;// ./src/common/components/templates/PopContainer.js +;// CONCATENATED MODULE: ./src/common/components/templates/PopContainer.js function PopContainer_typeof(o) { "@babel/helpers - typeof"; return PopContainer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PopContainer_typeof(o); } function PopContainer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function PopContainer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, PopContainer_toPropertyKey(o.key), o); } } @@ -143547,7 +144006,7 @@ var PopContainer = /*#__PURE__*/function (_TemplateBase) { } }]); }(TemplateBase); -;// ./src/common/components/templates/AttributesPopContainer.js +;// CONCATENATED MODULE: ./src/common/components/templates/AttributesPopContainer.js function AttributesPopContainer_typeof(o) { "@babel/helpers - typeof"; return AttributesPopContainer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, AttributesPopContainer_typeof(o); } function AttributesPopContainer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function AttributesPopContainer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, AttributesPopContainer_toPropertyKey(o.key), o); } } @@ -143621,7 +144080,7 @@ var AttributesPopContainer = /*#__PURE__*/function (_PopContainer) { } }]); }(PopContainer); -;// ./src/common/components/templates/IndexTabsPageContainer.js +;// CONCATENATED MODULE: ./src/common/components/templates/IndexTabsPageContainer.js function IndexTabsPageContainer_typeof(o) { "@babel/helpers - typeof"; return IndexTabsPageContainer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, IndexTabsPageContainer_typeof(o); } function IndexTabsPageContainer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function IndexTabsPageContainer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, IndexTabsPageContainer_toPropertyKey(o.key), o); } } @@ -143758,7 +144217,7 @@ var IndexTabsPageContainer = /*#__PURE__*/function (_TemplateBase) { } }]); }(TemplateBase); -;// ./src/common/components/templates/CityTabsPage.js +;// CONCATENATED MODULE: ./src/common/components/templates/CityTabsPage.js function CityTabsPage_typeof(o) { "@babel/helpers - typeof"; return CityTabsPage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CityTabsPage_typeof(o); } function CityTabsPage_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function CityTabsPage_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, CityTabsPage_toPropertyKey(o.key), o); } } @@ -143801,7 +144260,7 @@ var CityTabsPage = /*#__PURE__*/function (_IndexTabsPageContain) { _this.rootContainer.classList.add("component-citytabpage--noneBoxShadow"); _this.config = options.config; //header,若 config为城市名称数组,则直接加载内容 - if (Util.isArray(_this.config)) { + if (Util_Util.isArray(_this.config)) { _this.header.hidden = true; _this._createCityItem("城市", _this.config); _this.content.style.border = "none"; @@ -143830,7 +144289,7 @@ var CityTabsPage = /*#__PURE__*/function (_IndexTabsPageContain) { key: "_createTabs", value: function _createTabs() { //header - if (Util.isArray(this.config)) { + if (Util_Util.isArray(this.config)) { for (var i = 0; i < this.config.length; i++) { var innerHTML = ""; for (var key in this.config[i]) { @@ -143899,7 +144358,7 @@ var CityTabsPage = /*#__PURE__*/function (_IndexTabsPageContain) { } }]); }(IndexTabsPageContainer); -;// ./src/common/components/templates/NavTabsPage.js +;// CONCATENATED MODULE: ./src/common/components/templates/NavTabsPage.js function NavTabsPage_typeof(o) { "@babel/helpers - typeof"; return NavTabsPage_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, NavTabsPage_typeof(o); } function NavTabsPage_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function NavTabsPage_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, NavTabsPage_toPropertyKey(o.key), o); } } @@ -144057,7 +144516,7 @@ var NavTabsPage = /*#__PURE__*/function (_TemplateBase) { } }]); }(TemplateBase); -;// ./src/common/components/templates/PaginationContainer.js +;// CONCATENATED MODULE: ./src/common/components/templates/PaginationContainer.js function PaginationContainer_typeof(o) { "@babel/helpers - typeof"; return PaginationContainer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, PaginationContainer_typeof(o); } function PaginationContainer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function PaginationContainer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, PaginationContainer_toPropertyKey(o.key), o); } } @@ -144403,15 +144862,61 @@ var PaginationContainer = /*#__PURE__*/function (_TemplateBase) { } }]); }(TemplateBase); -;// ./src/common/components/util/index.js +;// CONCATENATED MODULE: ./src/common/components/util/Util.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ +/** + * @name ComponentsUtil + * @namespace + * @category BaseTypes Util + * @description 获取文件类型工具类。 + * @usage + * ``` + * // 浏览器 + * + * + * // ES6 Import + * import { ComponentsUtil } from '{npm}'; + * + * const result = ComponentsUtil.getFileType(fileName); + * ``` + */ +var ComponentsUtil = { + /** + * @function ComponentsUtil.getFileType + * @description 获取上传文件类型。 + * @param {string} fileName - 文件名称。 + */ + getFileType: function getFileType(fileName) { + var regCSV = /^.*\.(?:csv)$/i; + var regExcel = /^.*\.(?:xls|xlsx)$/i; //文件名可以带空格 + var regGeojson = /^.*\.(?:geojson|json)$/i; + if (regExcel.test(fileName)) { + //校验不通过 + return CommonTypes_FileTypes.EXCEL; + } else if (regCSV.test(fileName)) { + return CommonTypes_FileTypes.CSV; + } else if (regGeojson.test(fileName)) { + return CommonTypes_FileTypes.GEOJSON; + } + return null; + } +}; +;// CONCATENATED MODULE: ./src/common/components/util/index.js +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ + -;// ./src/common/components/index.js + +;// CONCATENATED MODULE: ./src/common/components/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -144453,7 +144958,7 @@ var PaginationContainer = /*#__PURE__*/function (_TemplateBase) { -;// ./src/common/index.common.js +;// CONCATENATED MODULE: ./src/common/lang/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -144463,6 +144968,10 @@ var PaginationContainer = /*#__PURE__*/function (_TemplateBase) { +;// CONCATENATED MODULE: ./src/common/index.common.js +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -144490,15 +144999,21 @@ var PaginationContainer = /*#__PURE__*/function (_TemplateBase) { -;// ./src/common/index.all.js +;// CONCATENATED MODULE: ./src/common/index.all.js -;// ./src/common/namespace.js + + + + + + +;// CONCATENATED MODULE: ./src/common/namespace.js function namespace_typeof(o) { "@babel/helpers - typeof"; return namespace_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, namespace_typeof(o); } function namespace_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function namespace_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? namespace_ownKeys(Object(t), !0).forEach(function (r) { namespace_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : namespace_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -144521,7 +145036,7 @@ function namespace_toPrimitive(t, r) { if ("object" != namespace_typeof(t) || !t SuperMap.Lang = Lang; SuperMap.i18n = SuperMap.Lang.i18n; // CommonUtil -SuperMap.Util = namespace_objectSpread(namespace_objectSpread({}, SuperMap.Util), Util); +SuperMap.Util = namespace_objectSpread(namespace_objectSpread({}, SuperMap.Util), Util_Util); SuperMap.Browser = Browser; SuperMap.INCHES_PER_UNIT = INCHES_PER_UNIT; SuperMap.METERS_PER_INCH = METERS_PER_INCH; @@ -144550,8 +145065,8 @@ SuperMap.Event = Event_Event; SuperMap.Bounds = Bounds; SuperMap.Credential = Credential; SuperMap.Events = Events; -SuperMap.Feature = Feature; -SuperMap.Geometry = Geometry; +SuperMap.Feature = Feature_Feature; +SuperMap.Geometry = Geometry_Geometry; SuperMap.Geometry3D = Geometry3D; SuperMap.Pixel = Pixel; SuperMap.Size = Size; @@ -144559,13 +145074,13 @@ SuperMap.Feature.Vector = Vector; SuperMap.Geometry.Collection = Collection; SuperMap.Geometry.Curve = Curve; SuperMap.Geometry.GeoText = GeoText; -SuperMap.Geometry.LinearRing = LinearRing; +SuperMap.Geometry.LinearRing = LinearRing_LinearRing; SuperMap.Geometry.LineString = LineString; SuperMap.Geometry.MultiLineString = MultiLineString; SuperMap.Geometry.MultiPoint = MultiPoint; SuperMap.Geometry.MultiPolygon = MultiPolygon; SuperMap.Geometry.Point = Point; -SuperMap.Geometry.Polygon = Polygon; +SuperMap.Geometry.Polygon = Polygon_Polygon; SuperMap.Geometry.Rectangle = Rectangle; // Components SuperMap.Components.Chart = ChartView; @@ -144917,7 +145432,7 @@ SuperMap.Feature.ShapeParameters.Image = Image_Image; SuperMap.Feature.ShapeParameters.Label = Label; SuperMap.Feature.ShapeParameters.Line = Line_Line; SuperMap.Feature.ShapeParameters.Point = Point_Point; -SuperMap.Feature.ShapeParameters.Polygon = Polygon_Polygon; +SuperMap.Feature.ShapeParameters.Polygon = feature_Polygon_Polygon; SuperMap.Feature.ShapeParameters.Rectangle = Rectangle_Rectangle; SuperMap.Feature.ShapeParameters.Sector = Sector; SuperMap.Feature.ShapeFactory = ShapeFactory; @@ -144946,7 +145461,7 @@ SuperMap.ColorsPickerUtil = ColorsPickerUtil; // REST SuperMap.DataFormat = DataFormat; SuperMap.ServerType = ServerType; -SuperMap.GeometryType = GeometryType; +SuperMap.GeometryType = REST_GeometryType; SuperMap.QueryOption = QueryOption; SuperMap.JoinType = JoinType; SuperMap.SpatialQueryMode = SpatialQueryMode; @@ -145024,7 +145539,7 @@ SuperMap.VideoFeature = VideoFeature; var raf = __webpack_require__(368); // EXTERNAL MODULE: ./node_modules/rgbcolor/index.js var rgbcolor = __webpack_require__(9973); -;// ./node_modules/svg-pathdata/lib/SVGPathData.module.js +;// CONCATENATED MODULE: ./node_modules/svg-pathdata/lib/SVGPathData.module.js function SVGPathData_module_typeof(o) { "@babel/helpers - typeof"; return SVGPathData_module_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SVGPathData_module_typeof(o); } /*! ***************************************************************************** Copyright (c) Microsoft Corporation. @@ -145532,7 +146047,7 @@ var SVGPathData_module_O, }(l), SVGPathData_module_N = ((SVGPathData_module_O = {})[_.MOVE_TO] = 2, SVGPathData_module_O[_.LINE_TO] = 2, SVGPathData_module_O[_.HORIZ_LINE_TO] = 1, SVGPathData_module_O[_.VERT_LINE_TO] = 1, SVGPathData_module_O[_.CLOSE_PATH] = 0, SVGPathData_module_O[_.QUAD_TO] = 4, SVGPathData_module_O[_.SMOOTH_QUAD_TO] = 2, SVGPathData_module_O[_.CURVE_TO] = 6, SVGPathData_module_O[_.SMOOTH_CURVE_TO] = 4, SVGPathData_module_O[_.ARC] = 7, SVGPathData_module_O); -;// ./node_modules/stackblur-canvas/dist/stackblur-es.js +;// CONCATENATED MODULE: ./node_modules/stackblur-canvas/dist/stackblur-es.js function stackblur_es_typeof(obj) { "@babel/helpers - typeof"; @@ -146099,12 +146614,12 @@ function BlurStack() { this.next = null; }; -;// ./node_modules/canvg/dist/index.js +;// CONCATENATED MODULE: ./node_modules/canvg/dist/index.js function dist_typeof(o) { "@babel/helpers - typeof"; return dist_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, dist_typeof(o); } function dist_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function dist_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? dist_ownKeys(Object(t), !0).forEach(function (r) { dist_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : dist_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function dist_defineProperty(e, r, t) { return (r = dist_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function dist_superPropGet(t, o, e, r) { var p = dist_get(dist_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function dist_superPropGet(t, e, o, r) { var p = dist_get(dist_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function dist_get() { return dist_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = dist_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, dist_get.apply(null, arguments); } function dist_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = dist_getPrototypeOf(t));); return t; } function dist_toConsumableArray(r) { return dist_arrayWithoutHoles(r) || dist_iterableToArray(r) || dist_unsupportedIterableToArray(r) || dist_nonIterableSpread(); } @@ -146130,8 +146645,7 @@ function dist_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof function dist_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function dist_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function dist_arrayWithHoles(r) { if (Array.isArray(r)) return r; } -function dist_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return dist_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (dist_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, dist_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, dist_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), dist_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", dist_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), dist_regeneratorDefine2(u), dist_regeneratorDefine2(u, o, "Generator"), dist_regeneratorDefine2(u, n, function () { return this; }), dist_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (dist_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function dist_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } dist_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { dist_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, dist_regeneratorDefine2(e, r, n, t); } +function dist_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ dist_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == dist_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(dist_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function dist_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function dist_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { dist_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { dist_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } @@ -146157,24 +146671,27 @@ function offscreen() { return new OffscreenCanvas(width, height); }, createImage: function createImage(url) { - return dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee() { + return dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee() { var response, blob, img; - return dist_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return dist_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - _context.n = 1; + _context.next = 2; return fetch(url); - case 1: - response = _context.v; - _context.n = 2; - return response.blob(); case 2: - blob = _context.v; - _context.n = 3; + response = _context.sent; + _context.next = 5; + return response.blob(); + case 5: + blob = _context.sent; + _context.next = 8; return createImageBitmap(blob); - case 3: - img = _context.v; - return _context.a(2, img); + case 8: + img = _context.sent; + return _context.abrupt("return", img); + case 10: + case "end": + return _context.stop(); } }, _callee); }))(); @@ -146208,11 +146725,11 @@ function node(param) { createImage: canvas.loadImage }; } -var index = /*#__PURE__*/(/* unused pure expression or super */ null && (Object.freeze({ +var index = /*#__PURE__*/Object.freeze({ __proto__: null, offscreen: offscreen, node: node -}))); +}); /** * HTML-safe compress white-spaces. @@ -146347,20 +146864,20 @@ function getSelectorSpecificity(selector) { delta = _findSelectorMatch8[1]; specificity[2] += delta; var _findSelectorMatch9 = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex); - var _findSelectorMatch0 = dist_slicedToArray(_findSelectorMatch9, 2); - currentSelector = _findSelectorMatch0[0]; - delta = _findSelectorMatch0[1]; - specificity[1] += delta; - var _findSelectorMatch1 = findSelectorMatch(currentSelector, pseudoClassRegex); - var _findSelectorMatch10 = dist_slicedToArray(_findSelectorMatch1, 2); + var _findSelectorMatch10 = dist_slicedToArray(_findSelectorMatch9, 2); currentSelector = _findSelectorMatch10[0]; delta = _findSelectorMatch10[1]; specificity[1] += delta; - currentSelector = currentSelector.replace(/[*\s+>~]/g, ' ').replace(/[#.]/g, ' '); - var _findSelectorMatch11 = findSelectorMatch(currentSelector, elementRegex); + var _findSelectorMatch11 = findSelectorMatch(currentSelector, pseudoClassRegex); var _findSelectorMatch12 = dist_slicedToArray(_findSelectorMatch11, 2); currentSelector = _findSelectorMatch12[0]; - delta = _findSelectorMatch12[1]; // lgtm [js/useless-assignment-to-local] + delta = _findSelectorMatch12[1]; + specificity[1] += delta; + currentSelector = currentSelector.replace(/[*\s+>~]/g, ' ').replace(/[#.]/g, ' '); + var _findSelectorMatch13 = findSelectorMatch(currentSelector, elementRegex); + var _findSelectorMatch14 = dist_slicedToArray(_findSelectorMatch13, 2); + currentSelector = _findSelectorMatch14[0]; + delta = _findSelectorMatch14[1]; // lgtm [js/useless-assignment-to-local] specificity[2] += delta; return specificity.join(''); } @@ -146522,7 +147039,7 @@ var Property = /*#__PURE__*/function () { key: "getDpi", value: function getDpi() { return 96 // TODO: compute? -; + ; } }, { key: "getRem", @@ -147095,7 +147612,7 @@ var Screen = /*#__PURE__*/function () { clipY = _param$clipY === void 0 ? 0 : _param$clipY; // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\s/, '') // ignore defer -; + ; var _cleanAspectRatio$spl = cleanAspectRatio.split(' '), _cleanAspectRatio$spl2 = dist_slicedToArray(_cleanAspectRatio$spl, 2), aspectRatioAlign = _cleanAspectRatio$spl2[0], @@ -147366,17 +147883,20 @@ var dist_Parser = /*#__PURE__*/function () { return dist_createClass(Parser, [{ key: "parse", value: function () { - var _parse = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee2(resource) { - return dist_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + var _parse = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee2(resource) { + return dist_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: if (!resource.startsWith('<')) { - _context2.n = 1; + _context2.next = 2; break; } - return _context2.a(2, this.parseFromString(resource)); - case 1: - return _context2.a(2, this.load(resource)); + return _context2.abrupt("return", this.parseFromString(resource)); + case 2: + return _context2.abrupt("return", this.load(resource)); + case 3: + case "end": + return _context2.stop(); } }, _callee2, this); })); @@ -147407,20 +147927,23 @@ var dist_Parser = /*#__PURE__*/function () { }, { key: "load", value: function () { - var _load = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee3(url) { + var _load = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee3(url) { var response, xml; - return dist_regenerator().w(function (_context3) { - while (1) switch (_context3.n) { + return dist_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: - _context3.n = 1; + _context3.next = 2; return this.fetch(url); - case 1: - response = _context3.v; - _context3.n = 2; - return response.text(); case 2: - xml = _context3.v; - return _context3.a(2, this.parseFromString(xml)); + response = _context3.sent; + _context3.next = 5; + return response.text(); + case 5: + xml = _context3.sent; + return _context3.abrupt("return", this.parseFromString(xml)); + case 7: + case "end": + return _context3.stop(); } }, _callee3, this); })); @@ -147792,12 +148315,12 @@ var Element = /*#__PURE__*/function () { Array.from(node.childNodes).forEach(function (childNode) { if (childNode.nodeType === 1) { _this6.addChild(childNode) // ELEMENT_NODE -; + ; } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) { var textNode = document.createTextNode(childNode); if (textNode.getText().length > 0) { _this6.addChild(textNode) // TEXT_NODE -; + ; } } }); @@ -147849,7 +148372,7 @@ var Element = /*#__PURE__*/function () { var attr = this.getAttribute(name); if (attr.hasValue()) { this.styles.set(name, attr) // move up to me to cache -; + ; return attr; } if (!skipAncestors) { @@ -148325,13 +148848,13 @@ var BoundingBox = /*#__PURE__*/function () { key: "addQuadraticCurve", value: function addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) { var cp1x = p0x + 2 / 3 * (p1x - p0x) // CP1 = QP0 + 2/3 *(QP1-QP0) -; + ; var cp1y = p0y + 2 / 3 * (p1y - p0y) // CP1 = QP0 + 2/3 *(QP1-QP0) -; + ; var cp2x = cp1x + 1 / 3 * (p2x - p0x) // CP2 = CP1 + 1/3 *(QP2-QP0) -; + ; var cp2y = cp1y + 1 / 3 * (p2y - p0y) // CP2 = CP1 + 1/3 *(QP2-QP0) -; + ; this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y); } }, { @@ -148365,7 +148888,7 @@ var RenderedElement = /*#__PURE__*/function (_Element2) { var element = this; while (element) { var opacityStyle = element.getStyle('opacity', false, true) // no ancestors on style call -; + ; if (opacityStyle.hasValue(true)) { opacity *= opacityStyle.getNumber(); } @@ -148645,7 +149168,7 @@ var TextElement = /*#__PURE__*/function (_RenderedElement) { }, { key: "renderChildren", value: function renderChildren(ctx) { - var _this0 = this; + var _this10 = this; if (this.type !== 'text') { this.renderTElementChildren(ctx); return; @@ -148655,7 +149178,7 @@ var TextElement = /*#__PURE__*/function (_RenderedElement) { this.adjustChildCoordinatesRecursive(ctx); // then render this.children.forEach(function (_, i) { - _this0.renderChild(ctx, _this0, _this0, i); + _this10.renderChild(ctx, _this10, _this10, i); }); var mouse = this.document.screen.mouse; // Do not calc bounding box if mouse is not working. @@ -148733,7 +149256,7 @@ var TextElement = /*#__PURE__*/function (_RenderedElement) { var firstElement = this.leafTexts[this.textChunkStart]; var textAnchor = firstElement.getStyle('text-anchor').getString('start'); var isRTL = false // we treat RTL like LTR -; + ; var shift = 0; if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) { shift = firstElement.x - this.minX; @@ -148753,9 +149276,9 @@ var TextElement = /*#__PURE__*/function (_RenderedElement) { }, { key: "adjustChildCoordinatesRecursive", value: function adjustChildCoordinatesRecursive(ctx) { - var _this1 = this; + var _this11 = this; this.children.forEach(function (_, i) { - _this1.adjustChildCoordinatesRecursiveCore(ctx, _this1, _this1, i); + _this11.adjustChildCoordinatesRecursiveCore(ctx, _this11, _this11, i); }); this.applyAnchoring(); } @@ -148941,13 +149464,13 @@ var TextElement = /*#__PURE__*/function (_RenderedElement) { }(RenderedElement); var TSpanElement = /*#__PURE__*/function (_TextElement) { function TSpanElement(document, node, captureTextNodes) { - var _this10; + var _this12; dist_classCallCheck(this, TSpanElement); - _this10 = dist_callSuper(this, TSpanElement, [document, node, (this instanceof TSpanElement ? this.constructor : void 0) === TSpanElement ? true : captureTextNodes]); - _this10.type = 'tspan'; + _this12 = dist_callSuper(this, TSpanElement, [document, node, (this instanceof TSpanElement ? this.constructor : void 0) === TSpanElement ? true : captureTextNodes]); + _this12.type = 'tspan'; // if this node has children, then they own the text - _this10.text = _this10.children.length > 0 ? '' : _this10.getTextFromNode(); - return _this10; + _this12.text = _this12.children.length > 0 ? '' : _this12.getTextFromNode(); + return _this12; } dist_inherits(TSpanElement, _TextElement); return dist_createClass(TSpanElement, [{ @@ -148959,35 +149482,35 @@ var TSpanElement = /*#__PURE__*/function (_TextElement) { }(TextElement); var TextNode = /*#__PURE__*/function (_TSpanElement) { function TextNode() { - var _this11; + var _this13; dist_classCallCheck(this, TextNode); for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } - _this11 = dist_callSuper(this, TextNode, [].concat(args)); - _this11.type = 'textNode'; - return _this11; + _this13 = dist_callSuper(this, TextNode, [].concat(args)); + _this13.type = 'textNode'; + return _this13; } dist_inherits(TextNode, _TSpanElement); return dist_createClass(TextNode); }(TSpanElement); var PathParser = /*#__PURE__*/function (_SVGPathData) { function PathParser(path) { - var _this12; + var _this14; dist_classCallCheck(this, PathParser); - _this12 = dist_callSuper(this, PathParser, [path // Fix spaces after signs. + _this14 = dist_callSuper(this, PathParser, [path // Fix spaces after signs. .replace(/([+\-.])\s+/gm, '$1') // Remove invalid part. .replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g, '')]); - _this12.control = new dist_Point(0, 0); - _this12.start = new dist_Point(0, 0); - _this12.current = new dist_Point(0, 0); - _this12.command = null; - _this12.commands = _this12.commands; - _this12.i = -1; - _this12.previousCommand = null; - _this12.points = []; - _this12.angles = []; - return _this12; + _this14.control = new dist_Point(0, 0); + _this14.start = new dist_Point(0, 0); + _this14.current = new dist_Point(0, 0); + _this14.command = null; + _this14.commands = _this14.commands; + _this14.i = -1; + _this14.previousCommand = null; + _this14.points = []; + _this14.angles = []; + return _this14; } dist_inherits(PathParser, _SVGPathData); return dist_createClass(PathParser, [{ @@ -149111,12 +149634,12 @@ var PathParser = /*#__PURE__*/function (_SVGPathData) { }(_); var PathElement = /*#__PURE__*/function (_RenderedElement2) { function PathElement(document, node, captureTextNodes) { - var _this13; + var _this15; dist_classCallCheck(this, PathElement); - _this13 = dist_callSuper(this, PathElement, [document, node, captureTextNodes]); - _this13.type = 'path'; - _this13.pathParser = new PathParser(_this13.getAttribute('d').getString()); - return _this13; + _this15 = dist_callSuper(this, PathElement, [document, node, captureTextNodes]); + _this15.type = 'path'; + _this15.pathParser = new PathParser(_this15.getAttribute('d').getString()); + return _this15; } dist_inherits(PathElement, _RenderedElement2); return dist_createClass(PathElement, [{ @@ -149371,7 +149894,7 @@ var PathElement = /*#__PURE__*/function (_RenderedElement2) { pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2); pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI); boundingBox.addPoint(currentPoint.x, currentPoint.y) // TODO: this is too naive, make it better -; + ; if (ctx && !isNaN(a1) && !isNaN(ad)) { var r = rX > rY ? rX : rY; var sx = rX > rY ? 1 : rX / rY; @@ -149524,12 +150047,12 @@ var PathElement = /*#__PURE__*/function (_RenderedElement2) { var centp = new dist_Point((current.x + currentPoint.x) / 2 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]) // θ1 -; + ; // angle delta var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]; var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY]; var ad = vectorsAngle(u, v) // Δθ -; + ; if (vectorsRatio(u, v) <= -1) { ad = Math.PI; } @@ -149556,15 +150079,15 @@ var PathElement = /*#__PURE__*/function (_RenderedElement2) { }(RenderedElement); var SVGElement = /*#__PURE__*/function (_RenderedElement3) { function SVGElement() { - var _this14; + var _this16; dist_classCallCheck(this, SVGElement); for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } - _this14 = dist_callSuper(this, SVGElement, [].concat(args)); - _this14.type = 'svg'; - _this14.root = false; - return _this14; + _this16 = dist_callSuper(this, SVGElement, [].concat(args)); + _this16.type = 'svg'; + _this16.root = false; + return _this16; } dist_inherits(SVGElement, _RenderedElement3); return dist_createClass(SVGElement, [{ @@ -149712,14 +150235,14 @@ var SVGElement = /*#__PURE__*/function (_RenderedElement3) { }(RenderedElement); var RectElement = /*#__PURE__*/function (_PathElement) { function RectElement() { - var _this15; + var _this17; dist_classCallCheck(this, RectElement); for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { args[_key4] = arguments[_key4]; } - _this15 = dist_callSuper(this, RectElement, [].concat(args)); - _this15.type = 'rect'; - return _this15; + _this17 = dist_callSuper(this, RectElement, [].concat(args)); + _this17.type = 'rect'; + return _this17; } dist_inherits(RectElement, _PathElement); return dist_createClass(RectElement, [{ @@ -149744,7 +150267,7 @@ var RectElement = /*#__PURE__*/function (_PathElement) { if (ctx) { var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3); ctx.beginPath() // always start the path so we don't fill prior paths -; + ; if (height > 0 && width > 0) { ctx.moveTo(x + rx, y); ctx.lineTo(x + width - rx, y); @@ -149769,14 +150292,14 @@ var RectElement = /*#__PURE__*/function (_PathElement) { }(PathElement); var CircleElement = /*#__PURE__*/function (_PathElement2) { function CircleElement() { - var _this16; + var _this18; dist_classCallCheck(this, CircleElement); for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { args[_key5] = arguments[_key5]; } - _this16 = dist_callSuper(this, CircleElement, [].concat(args)); - _this16.type = 'circle'; - return _this16; + _this18 = dist_callSuper(this, CircleElement, [].concat(args)); + _this18.type = 'circle'; + return _this18; } dist_inherits(CircleElement, _PathElement2); return dist_createClass(CircleElement, [{ @@ -149801,14 +150324,14 @@ var CircleElement = /*#__PURE__*/function (_PathElement2) { }(PathElement); var EllipseElement = /*#__PURE__*/function (_PathElement3) { function EllipseElement() { - var _this17; + var _this19; dist_classCallCheck(this, EllipseElement); for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { args[_key6] = arguments[_key6]; } - _this17 = dist_callSuper(this, EllipseElement, [].concat(args)); - _this17.type = 'ellipse'; - return _this17; + _this19 = dist_callSuper(this, EllipseElement, [].concat(args)); + _this19.type = 'ellipse'; + return _this19; } dist_inherits(EllipseElement, _PathElement3); return dist_createClass(EllipseElement, [{ @@ -149839,14 +150362,14 @@ var EllipseElement = /*#__PURE__*/function (_PathElement3) { }(PathElement); var LineElement = /*#__PURE__*/function (_PathElement4) { function LineElement() { - var _this18; + var _this20; dist_classCallCheck(this, LineElement); for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { args[_key7] = arguments[_key7]; } - _this18 = dist_callSuper(this, LineElement, [].concat(args)); - _this18.type = 'line'; - return _this18; + _this20 = dist_callSuper(this, LineElement, [].concat(args)); + _this20.type = 'line'; + return _this20; } dist_inherits(LineElement, _PathElement4); return dist_createClass(LineElement, [{ @@ -149886,13 +150409,13 @@ var LineElement = /*#__PURE__*/function (_PathElement4) { }(PathElement); var PolylineElement = /*#__PURE__*/function (_PathElement5) { function PolylineElement(document, node, captureTextNodes) { - var _this19; + var _this21; dist_classCallCheck(this, PolylineElement); - _this19 = dist_callSuper(this, PolylineElement, [document, node, captureTextNodes]); - _this19.type = 'polyline'; - _this19.points = []; - _this19.points = dist_Point.parsePath(_this19.getAttribute('points').getString()); - return _this19; + _this21 = dist_callSuper(this, PolylineElement, [document, node, captureTextNodes]); + _this21.type = 'polyline'; + _this21.points = []; + _this21.points = dist_Point.parsePath(_this21.getAttribute('points').getString()); + return _this21; } dist_inherits(PolylineElement, _PathElement5); return dist_createClass(PolylineElement, [{ @@ -149939,14 +150462,14 @@ var PolylineElement = /*#__PURE__*/function (_PathElement5) { }(PathElement); var PolygonElement = /*#__PURE__*/function (_PolylineElement) { function PolygonElement() { - var _this20; + var _this22; dist_classCallCheck(this, PolygonElement); for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { args[_key8] = arguments[_key8]; } - _this20 = dist_callSuper(this, PolygonElement, [].concat(args)); - _this20.type = 'polygon'; - return _this20; + _this22 = dist_callSuper(this, PolygonElement, [].concat(args)); + _this22.type = 'polygon'; + return _this22; } dist_inherits(PolygonElement, _PolylineElement); return dist_createClass(PolygonElement, [{ @@ -149967,14 +150490,14 @@ var PolygonElement = /*#__PURE__*/function (_PolylineElement) { }(PolylineElement); var PatternElement = /*#__PURE__*/function (_Element3) { function PatternElement() { - var _this21; + var _this23; dist_classCallCheck(this, PatternElement); for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { args[_key9] = arguments[_key9]; } - _this21 = dist_callSuper(this, PatternElement, [].concat(args)); - _this21.type = 'pattern'; - return _this21; + _this23 = dist_callSuper(this, PatternElement, [].concat(args)); + _this23.type = 'pattern'; + return _this23; } dist_inherits(PatternElement, _Element3); return dist_createClass(PatternElement, [{ @@ -150018,14 +150541,14 @@ var PatternElement = /*#__PURE__*/function (_Element3) { }(Element); var MarkerElement = /*#__PURE__*/function (_Element4) { function MarkerElement() { - var _this22; + var _this24; dist_classCallCheck(this, MarkerElement); - for (var _len0 = arguments.length, args = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) { - args[_key0] = arguments[_key0]; + for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { + args[_key10] = arguments[_key10]; } - _this22 = dist_callSuper(this, MarkerElement, [].concat(args)); - _this22.type = 'marker'; - return _this22; + _this24 = dist_callSuper(this, MarkerElement, [].concat(args)); + _this24.type = 'marker'; + return _this24; } dist_inherits(MarkerElement, _Element4); return dist_createClass(MarkerElement, [{ @@ -150072,14 +150595,14 @@ var MarkerElement = /*#__PURE__*/function (_Element4) { }(Element); var DefsElement = /*#__PURE__*/function (_Element5) { function DefsElement() { - var _this23; + var _this25; dist_classCallCheck(this, DefsElement); - for (var _len1 = arguments.length, args = new Array(_len1), _key1 = 0; _key1 < _len1; _key1++) { - args[_key1] = arguments[_key1]; + for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { + args[_key11] = arguments[_key11]; } - _this23 = dist_callSuper(this, DefsElement, [].concat(args)); - _this23.type = 'defs'; - return _this23; + _this25 = dist_callSuper(this, DefsElement, [].concat(args)); + _this25.type = 'defs'; + return _this25; } dist_inherits(DefsElement, _Element5); return dist_createClass(DefsElement, [{ @@ -150091,14 +150614,14 @@ var DefsElement = /*#__PURE__*/function (_Element5) { }(Element); var GElement = /*#__PURE__*/function (_RenderedElement4) { function GElement() { - var _this24; + var _this26; dist_classCallCheck(this, GElement); - for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { - args[_key10] = arguments[_key10]; + for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) { + args[_key12] = arguments[_key12]; } - _this24 = dist_callSuper(this, GElement, [].concat(args)); - _this24.type = 'g'; - return _this24; + _this26 = dist_callSuper(this, GElement, [].concat(args)); + _this26.type = 'g'; + return _this26; } dist_inherits(GElement, _RenderedElement4); return dist_createClass(GElement, [{ @@ -150114,20 +150637,20 @@ var GElement = /*#__PURE__*/function (_RenderedElement4) { }(RenderedElement); var GradientElement = /*#__PURE__*/function (_Element6) { function GradientElement(document, node, captureTextNodes) { - var _this25; + var _this27; dist_classCallCheck(this, GradientElement); - _this25 = dist_callSuper(this, GradientElement, [document, node, captureTextNodes]); - _this25.attributesToInherit = ['gradientUnits']; - _this25.stops = []; - var _this26 = _this25, - stops = _this26.stops, - children = _this26.children; + _this27 = dist_callSuper(this, GradientElement, [document, node, captureTextNodes]); + _this27.attributesToInherit = ['gradientUnits']; + _this27.stops = []; + var _this28 = _this27, + stops = _this28.stops, + children = _this28.children; children.forEach(function (child) { if (child.type === 'stop') { stops.push(child); } }); - return _this25; + return _this27; } dist_inherits(GradientElement, _Element6); return dist_createClass(GradientElement, [{ @@ -150138,7 +150661,7 @@ var GradientElement = /*#__PURE__*/function (_Element6) { }, { key: "createGradient", value: function createGradient(ctx, element, parentOpacityProp) { - var _this27 = this; + var _this29 = this; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this var stopsContainer = this; if (this.getHrefAttribute().hasValue()) { @@ -150152,7 +150675,7 @@ var GradientElement = /*#__PURE__*/function (_Element6) { return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color); } stops.forEach(function (stop) { - gradient.addColorStop(stop.offset, _this27.addParentOpacity(parentOpacityProp, stop.color)); + gradient.addColorStop(stop.offset, _this29.addParentOpacity(parentOpacityProp, stop.color)); }); if (this.getAttribute('gradientTransform').hasValue()) { // render as transformed pattern on temporary canvas @@ -150185,10 +150708,10 @@ var GradientElement = /*#__PURE__*/function (_Element6) { }, { key: "inheritStopContainer", value: function inheritStopContainer(stopsContainer) { - var _this28 = this; + var _this30 = this; this.attributesToInherit.forEach(function (attributeToInherit) { - if (!_this28.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) { - _this28.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue()); + if (!_this30.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) { + _this30.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue()); } }); } @@ -150205,12 +150728,12 @@ var GradientElement = /*#__PURE__*/function (_Element6) { }(Element); var LinearGradientElement = /*#__PURE__*/function (_GradientElement) { function LinearGradientElement(document, node, captureTextNodes) { - var _this29; + var _this31; dist_classCallCheck(this, LinearGradientElement); - _this29 = dist_callSuper(this, LinearGradientElement, [document, node, captureTextNodes]); - _this29.type = 'linearGradient'; - _this29.attributesToInherit.push('x1', 'y1', 'x2', 'y2'); - return _this29; + _this31 = dist_callSuper(this, LinearGradientElement, [document, node, captureTextNodes]); + _this31.type = 'linearGradient'; + _this31.attributesToInherit.push('x1', 'y1', 'x2', 'y2'); + return _this31; } dist_inherits(LinearGradientElement, _GradientElement); return dist_createClass(LinearGradientElement, [{ @@ -150240,12 +150763,12 @@ var LinearGradientElement = /*#__PURE__*/function (_GradientElement) { }(GradientElement); var RadialGradientElement = /*#__PURE__*/function (_GradientElement2) { function RadialGradientElement(document, node, captureTextNodes) { - var _this30; + var _this32; dist_classCallCheck(this, RadialGradientElement); - _this30 = dist_callSuper(this, RadialGradientElement, [document, node, captureTextNodes]); - _this30.type = 'radialGradient'; - _this30.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr'); - return _this30; + _this32 = dist_callSuper(this, RadialGradientElement, [document, node, captureTextNodes]); + _this32.type = 'radialGradient'; + _this32.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr'); + return _this32; } dist_inherits(RadialGradientElement, _GradientElement2); return dist_createClass(RadialGradientElement, [{ @@ -150283,47 +150806,47 @@ var RadialGradientElement = /*#__PURE__*/function (_GradientElement2) { }(GradientElement); var StopElement = /*#__PURE__*/function (_Element7) { function StopElement(document, node, captureTextNodes) { - var _this31; + var _this33; dist_classCallCheck(this, StopElement); - _this31 = dist_callSuper(this, StopElement, [document, node, captureTextNodes]); - _this31.type = 'stop'; - var offset = Math.max(0, Math.min(1, _this31.getAttribute('offset').getNumber())); - var stopOpacity = _this31.getStyle('stop-opacity'); - var stopColor = _this31.getStyle('stop-color', true); + _this33 = dist_callSuper(this, StopElement, [document, node, captureTextNodes]); + _this33.type = 'stop'; + var offset = Math.max(0, Math.min(1, _this33.getAttribute('offset').getNumber())); + var stopOpacity = _this33.getStyle('stop-opacity'); + var stopColor = _this33.getStyle('stop-color', true); if (stopColor.getString() === '') { stopColor.setValue('#000'); } if (stopOpacity.hasValue()) { stopColor = stopColor.addOpacity(stopOpacity); } - _this31.offset = offset; - _this31.color = stopColor.getColor(); - return _this31; + _this33.offset = offset; + _this33.color = stopColor.getColor(); + return _this33; } dist_inherits(StopElement, _Element7); return dist_createClass(StopElement); }(Element); var AnimateElement = /*#__PURE__*/function (_Element8) { function AnimateElement(document, node, captureTextNodes) { - var _this32; + var _this34; dist_classCallCheck(this, AnimateElement); - _this32 = dist_callSuper(this, AnimateElement, [document, node, captureTextNodes]); - _this32.type = 'animate'; - _this32.duration = 0; - _this32.initialUnits = ''; - _this32.removed = false; - _this32.frozen = false; - document.screen.animations.push(_this32); - _this32.begin = _this32.getAttribute('begin').getMilliseconds(); - _this32.maxDuration = _this32.begin + _this32.getAttribute('dur').getMilliseconds(); - _this32.from = _this32.getAttribute('from'); - _this32.to = _this32.getAttribute('to'); - _this32.values = new Property(document, 'values', null); - var valuesAttr = _this32.getAttribute('values'); + _this34 = dist_callSuper(this, AnimateElement, [document, node, captureTextNodes]); + _this34.type = 'animate'; + _this34.duration = 0; + _this34.initialUnits = ''; + _this34.removed = false; + _this34.frozen = false; + document.screen.animations.push(_this34); + _this34.begin = _this34.getAttribute('begin').getMilliseconds(); + _this34.maxDuration = _this34.begin + _this34.getAttribute('dur').getMilliseconds(); + _this34.from = _this34.getAttribute('from'); + _this34.to = _this34.getAttribute('to'); + _this34.values = new Property(document, 'values', null); + var valuesAttr = _this34.getAttribute('values'); if (valuesAttr.hasValue()) { - _this32.values.setValue(valuesAttr.getString().split(';')); + _this34.values.setValue(valuesAttr.getString().split(';')); } - return _this32; + return _this34; } dist_inherits(AnimateElement, _Element8); return dist_createClass(AnimateElement, [{ @@ -150348,7 +150871,7 @@ var AnimateElement = /*#__PURE__*/function (_Element8) { var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress; if (initialUnits === '%') { newValue *= 100 // numValue() returns 0-1 whereas properties are 0-100 -; + ; } return "".concat(newValue).concat(initialUnits); } @@ -150388,7 +150911,7 @@ var AnimateElement = /*#__PURE__*/function (_Element8) { var updated = false; if (this.begin < this.duration) { var newValue = this.calcValue() // tween -; + ; var typeAttr = this.getAttribute('type'); if (typeAttr.hasValue()) { // for transform, etc. @@ -150432,14 +150955,14 @@ var AnimateElement = /*#__PURE__*/function (_Element8) { }(Element); var AnimateColorElement = /*#__PURE__*/function (_AnimateElement) { function AnimateColorElement() { - var _this33; + var _this35; dist_classCallCheck(this, AnimateColorElement); - for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { - args[_key11] = arguments[_key11]; + for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) { + args[_key13] = arguments[_key13]; } - _this33 = dist_callSuper(this, AnimateColorElement, [].concat(args)); - _this33.type = 'animateColor'; - return _this33; + _this35 = dist_callSuper(this, AnimateColorElement, [].concat(args)); + _this35.type = 'animateColor'; + return _this35; } dist_inherits(AnimateColorElement, _AnimateElement); return dist_createClass(AnimateColorElement, [{ @@ -150465,14 +150988,14 @@ var AnimateColorElement = /*#__PURE__*/function (_AnimateElement) { }(AnimateElement); var AnimateTransformElement = /*#__PURE__*/function (_AnimateElement2) { function AnimateTransformElement() { - var _this34; + var _this36; dist_classCallCheck(this, AnimateTransformElement); - for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) { - args[_key12] = arguments[_key12]; + for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) { + args[_key14] = arguments[_key14]; } - _this34 = dist_callSuper(this, AnimateTransformElement, [].concat(args)); - _this34.type = 'animateTransform'; - return _this34; + _this36 = dist_callSuper(this, AnimateTransformElement, [].concat(args)); + _this36.type = 'animateTransform'; + return _this36; } dist_inherits(AnimateTransformElement, _AnimateElement2); return dist_createClass(AnimateTransformElement, [{ @@ -150495,86 +151018,86 @@ var AnimateTransformElement = /*#__PURE__*/function (_AnimateElement2) { }(AnimateElement); var FontFaceElement = /*#__PURE__*/function (_Element9) { function FontFaceElement(document, node, captureTextNodes) { - var _this35; + var _this37; dist_classCallCheck(this, FontFaceElement); - _this35 = dist_callSuper(this, FontFaceElement, [document, node, captureTextNodes]); - _this35.type = 'font-face'; - _this35.ascent = _this35.getAttribute('ascent').getNumber(); - _this35.descent = _this35.getAttribute('descent').getNumber(); - _this35.unitsPerEm = _this35.getAttribute('units-per-em').getNumber(); - return _this35; + _this37 = dist_callSuper(this, FontFaceElement, [document, node, captureTextNodes]); + _this37.type = 'font-face'; + _this37.ascent = _this37.getAttribute('ascent').getNumber(); + _this37.descent = _this37.getAttribute('descent').getNumber(); + _this37.unitsPerEm = _this37.getAttribute('units-per-em').getNumber(); + return _this37; } dist_inherits(FontFaceElement, _Element9); return dist_createClass(FontFaceElement); }(Element); var GlyphElement = /*#__PURE__*/function (_PathElement6) { function GlyphElement(document, node, captureTextNodes) { - var _this36; + var _this38; dist_classCallCheck(this, GlyphElement); - _this36 = dist_callSuper(this, GlyphElement, [document, node, captureTextNodes]); - _this36.type = 'glyph'; - _this36.horizAdvX = _this36.getAttribute('horiz-adv-x').getNumber(); - _this36.unicode = _this36.getAttribute('unicode').getString(); - _this36.arabicForm = _this36.getAttribute('arabic-form').getString(); - return _this36; + _this38 = dist_callSuper(this, GlyphElement, [document, node, captureTextNodes]); + _this38.type = 'glyph'; + _this38.horizAdvX = _this38.getAttribute('horiz-adv-x').getNumber(); + _this38.unicode = _this38.getAttribute('unicode').getString(); + _this38.arabicForm = _this38.getAttribute('arabic-form').getString(); + return _this38; } dist_inherits(GlyphElement, _PathElement6); return dist_createClass(GlyphElement); }(PathElement); var MissingGlyphElement = /*#__PURE__*/function (_GlyphElement) { function MissingGlyphElement() { - var _this37; + var _this39; dist_classCallCheck(this, MissingGlyphElement); - for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) { - args[_key13] = arguments[_key13]; + for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) { + args[_key15] = arguments[_key15]; } - _this37 = dist_callSuper(this, MissingGlyphElement, [].concat(args)); - _this37.type = 'missing-glyph'; - _this37.horizAdvX = 0; - return _this37; + _this39 = dist_callSuper(this, MissingGlyphElement, [].concat(args)); + _this39.type = 'missing-glyph'; + _this39.horizAdvX = 0; + return _this39; } dist_inherits(MissingGlyphElement, _GlyphElement); return dist_createClass(MissingGlyphElement); }(GlyphElement); -var FontElement = /*#__PURE__*/function (_Element0) { +var FontElement = /*#__PURE__*/function (_Element10) { function FontElement(document, node, captureTextNodes) { - var _this38; + var _this40; dist_classCallCheck(this, FontElement); - _this38 = dist_callSuper(this, FontElement, [document, node, captureTextNodes]); - _this38.type = 'font'; - _this38.isArabic = false; - _this38.glyphs = new Map(); - _this38.arabicGlyphs = new Map(); - _this38.isRTL = false; - _this38.horizAdvX = _this38.getAttribute('horiz-adv-x').getNumber(); + _this40 = dist_callSuper(this, FontElement, [document, node, captureTextNodes]); + _this40.type = 'font'; + _this40.isArabic = false; + _this40.glyphs = new Map(); + _this40.arabicGlyphs = new Map(); + _this40.isRTL = false; + _this40.horizAdvX = _this40.getAttribute('horiz-adv-x').getNumber(); var definitions = document.definitions; - var _this39 = _this38, - children = _this39.children; + var _this41 = _this40, + children = _this41.children; var _iterator4 = dist_createForOfIteratorHelper(children), _step4; try { for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { var child = _step4.value; if (child instanceof FontFaceElement) { - _this38.fontFace = child; + _this40.fontFace = child; var fontFamilyStyle = child.getStyle('font-family'); if (fontFamilyStyle.hasValue()) { - definitions.set(fontFamilyStyle.getString(), _this38); + definitions.set(fontFamilyStyle.getString(), _this40); } } else if (child instanceof MissingGlyphElement) { - _this38.missingGlyph = child; + _this40.missingGlyph = child; } else if (child instanceof GlyphElement) { if (child.arabicForm) { - _this38.isRTL = true; - _this38.isArabic = true; - var arabicGlyph = _this38.arabicGlyphs.get(child.unicode); + _this40.isRTL = true; + _this40.isArabic = true; + var arabicGlyph = _this40.arabicGlyphs.get(child.unicode); if (typeof arabicGlyph === 'undefined') { arabicGlyph = new Map(); - _this38.arabicGlyphs.set(child.unicode, arabicGlyph); + _this40.arabicGlyphs.set(child.unicode, arabicGlyph); } arabicGlyph.set(child.arabicForm, child); } else { - _this38.glyphs.set(child.unicode, child); + _this40.glyphs.set(child.unicode, child); } } } @@ -150583,9 +151106,9 @@ var FontElement = /*#__PURE__*/function (_Element0) { } finally { _iterator4.f(); } - return _this38; + return _this40; } - dist_inherits(FontElement, _Element0); + dist_inherits(FontElement, _Element10); return dist_createClass(FontElement, [{ key: "render", value: function render() { @@ -150595,14 +151118,14 @@ var FontElement = /*#__PURE__*/function (_Element0) { }(Element); var TRefElement = /*#__PURE__*/function (_TextElement2) { function TRefElement() { - var _this40; + var _this42; dist_classCallCheck(this, TRefElement); - for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) { - args[_key14] = arguments[_key14]; + for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) { + args[_key16] = arguments[_key16]; } - _this40 = dist_callSuper(this, TRefElement, [].concat(args)); - _this40.type = 'tref'; - return _this40; + _this42 = dist_callSuper(this, TRefElement, [].concat(args)); + _this42.type = 'tref'; + return _this42; } dist_inherits(TRefElement, _TextElement2); return dist_createClass(TRefElement, [{ @@ -150621,18 +151144,18 @@ var TRefElement = /*#__PURE__*/function (_TextElement2) { }(TextElement); var AElement = /*#__PURE__*/function (_TextElement3) { function AElement(document, node1, captureTextNodes) { - var _this41; + var _this43; dist_classCallCheck(this, AElement); - _this41 = dist_callSuper(this, AElement, [document, node1, captureTextNodes]); - _this41.type = 'a'; + _this43 = dist_callSuper(this, AElement, [document, node1, captureTextNodes]); + _this43.type = 'a'; var childNodes = node1.childNodes; var firstChild = childNodes[0]; var hasText = childNodes.length > 0 && Array.from(childNodes).every(function (node) { return node.nodeType === 3; }); - _this41.hasText = hasText; - _this41.text = hasText ? _this41.getTextFromNode(firstChild) : ''; - return _this41; + _this43.hasText = hasText; + _this43.text = hasText ? _this43.getTextFromNode(firstChild) : ''; + return _this43; } dist_inherits(AElement, _TextElement3); return dist_createClass(AElement, [{ @@ -150681,20 +151204,20 @@ var AElement = /*#__PURE__*/function (_TextElement3) { }(TextElement); var TextPathElement = /*#__PURE__*/function (_TextElement4) { function TextPathElement(document, node, captureTextNodes) { - var _this42; + var _this44; dist_classCallCheck(this, TextPathElement); - _this42 = dist_callSuper(this, TextPathElement, [document, node, captureTextNodes]); - _this42.type = 'textPath'; - _this42.textWidth = 0; - _this42.textHeight = 0; - _this42.pathLength = -1; - _this42.glyphInfo = null; - _this42.letterSpacingCache = []; - _this42.measuresCache = new Map([['', 0]]); - var pathElement = _this42.getHrefAttribute().getDefinition(); - _this42.text = _this42.getTextFromNode(); - _this42.dataArray = _this42.parsePathData(pathElement); - return _this42; + _this44 = dist_callSuper(this, TextPathElement, [document, node, captureTextNodes]); + _this44.type = 'textPath'; + _this44.textWidth = 0; + _this44.textHeight = 0; + _this44.pathLength = -1; + _this44.glyphInfo = null; + _this44.letterSpacingCache = []; + _this44.measuresCache = new Map([['', 0]]); + var pathElement = _this44.getHrefAttribute().getDefinition(); + _this44.text = _this44.getTextFromNode(); + _this44.dataArray = _this44.parsePathData(pathElement); + return _this44; } dist_inherits(TextPathElement, _TextElement4); return dist_createClass(TextPathElement, [{ @@ -150881,7 +151404,7 @@ var TextPathElement = /*#__PURE__*/function (_TextElement4) { }, { key: "setTextData", value: function setTextData(ctx) { - var _this43 = this; + var _this45 = this; if (this.glyphInfo) { return; } @@ -150930,10 +151453,10 @@ var TextPathElement = /*#__PURE__*/function (_TextElement4) { offset += startOffset; chars.forEach(function (_char2, i) { // Find such segment what distance between p0 and p1 is approx. width of glyph - var _this43$findSegmentTo = _this43.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, _char2, i), - nextOffset = _this43$findSegmentTo.offset, - segment = _this43$findSegmentTo.segment, - rotation = _this43$findSegmentTo.rotation; + var _this45$findSegmentTo = _this45.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, _char2, i), + nextOffset = _this45$findSegmentTo.offset, + segment = _this45$findSegmentTo.segment, + rotation = _this45$findSegmentTo.rotation; offset = nextOffset; if (!segment.p0 || !segment.p1) { return; @@ -150953,7 +151476,7 @@ var TextPathElement = /*#__PURE__*/function (_TextElement4) { // kern + width / 2.0, // segment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y // ); - _this43.glyphInfo.push({ + _this45.glyphInfo.push({ // transposeX: midpoint.x, // transposeY: midpoint.y, text: chars[i], @@ -150967,7 +151490,7 @@ var TextPathElement = /*#__PURE__*/function (_TextElement4) { key: "parsePathData", value: function parsePathData(path) { this.pathLength = -1 // reset path length -; + ; if (!path) { return []; } @@ -151358,7 +151881,7 @@ var TextPathElement = /*#__PURE__*/function (_TextElement4) { value: function buildEquidistantCache(inputStep, inputPrecision) { var fullLen = this.getPathLength(); var precision = inputPrecision || 0.25 // accuracy vs performance -; + ; var step = inputStep || fullLen / 100; if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) { // Prepare cache @@ -151402,51 +151925,52 @@ var TextPathElement = /*#__PURE__*/function (_TextElement4) { var dataUriRegex = /^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i; var ImageElement = /*#__PURE__*/function (_RenderedElement5) { function ImageElement(document, node, captureTextNodes) { - var _this44; + var _this46; dist_classCallCheck(this, ImageElement); - _this44 = dist_callSuper(this, ImageElement, [document, node, captureTextNodes]); - _this44.type = 'image'; - _this44.loaded = false; - var href = _this44.getHrefAttribute().getString(); + _this46 = dist_callSuper(this, ImageElement, [document, node, captureTextNodes]); + _this46.type = 'image'; + _this46.loaded = false; + var href = _this46.getHrefAttribute().getString(); if (!href) { - return dist_possibleConstructorReturn(_this44); + return dist_possibleConstructorReturn(_this46); } var isSvg = href.endsWith('.svg') || /^\s*data:image\/svg\+xml/i.test(href); - document.images.push(_this44); + document.images.push(_this46); if (!isSvg) { - void _this44.loadImage(href); + void _this46.loadImage(href); } else { - void _this44.loadSvg(href); + void _this46.loadSvg(href); } - return _this44; + return _this46; } dist_inherits(ImageElement, _RenderedElement5); return dist_createClass(ImageElement, [{ key: "loadImage", value: function () { - var _loadImage = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee4(href) { - var image, _t; - return dist_regenerator().w(function (_context4) { - while (1) switch (_context4.p = _context4.n) { + var _loadImage = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee4(href) { + var image; + return dist_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: - _context4.p = 0; - _context4.n = 1; + _context4.prev = 0; + _context4.next = 3; return this.document.createImage(href); - case 1: - image = _context4.v; + case 3: + image = _context4.sent; this.image = image; - _context4.n = 3; + _context4.next = 10; break; - case 2: - _context4.p = 2; - _t = _context4.v; - console.error("Error while loading image \"".concat(href, "\":"), _t); - case 3: + case 7: + _context4.prev = 7; + _context4.t0 = _context4["catch"](0); + console.error("Error while loading image \"".concat(href, "\":"), _context4.t0); + case 10: this.loaded = true; - case 4: - return _context4.a(2); + case 11: + case "end": + return _context4.stop(); } - }, _callee4, this, [[0, 2]]); + }, _callee4, this, [[0, 7]]); })); function loadImage(_x4) { return _loadImage.apply(this, arguments); @@ -151456,14 +151980,14 @@ var ImageElement = /*#__PURE__*/function (_RenderedElement5) { }, { key: "loadSvg", value: function () { - var _loadSvg = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee5(href) { - var match, data, response, svg, _t2; - return dist_regenerator().w(function (_context5) { - while (1) switch (_context5.p = _context5.n) { + var _loadSvg = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee5(href) { + var match, data, response, svg; + return dist_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { case 0: match = dataUriRegex.exec(href); if (!match) { - _context5.n = 1; + _context5.next = 6; break; } data = match[5]; @@ -151474,31 +151998,32 @@ var ImageElement = /*#__PURE__*/function (_RenderedElement5) { this.image = decodeURIComponent(data); } } - _context5.n = 5; + _context5.next = 19; break; - case 1: - _context5.p = 1; - _context5.n = 2; + case 6: + _context5.prev = 6; + _context5.next = 9; return this.document.fetch(href); - case 2: - response = _context5.v; - _context5.n = 3; + case 9: + response = _context5.sent; + _context5.next = 12; return response.text(); - case 3: - svg = _context5.v; + case 12: + svg = _context5.sent; this.image = svg; - _context5.n = 5; + _context5.next = 19; break; - case 4: - _context5.p = 4; - _t2 = _context5.v; - console.error("Error while loading image \"".concat(href, "\":"), _t2); - case 5: + case 16: + _context5.prev = 16; + _context5.t0 = _context5["catch"](6); + console.error("Error while loading image \"".concat(href, "\":"), _context5.t0); + case 19: this.loaded = true; - case 6: - return _context5.a(2); + case 20: + case "end": + return _context5.stop(); } - }, _callee5, this, [[1, 4]]); + }, _callee5, this, [[6, 16]]); })); function loadSvg(_x5) { return _loadSvg.apply(this, arguments); @@ -151566,14 +152091,14 @@ var ImageElement = /*#__PURE__*/function (_RenderedElement5) { }(RenderedElement); var SymbolElement = /*#__PURE__*/function (_RenderedElement6) { function SymbolElement() { - var _this45; + var _this47; dist_classCallCheck(this, SymbolElement); - for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) { - args[_key15] = arguments[_key15]; + for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) { + args[_key17] = arguments[_key17]; } - _this45 = dist_callSuper(this, SymbolElement, [].concat(args)); - _this45.type = 'symbol'; - return _this45; + _this47 = dist_callSuper(this, SymbolElement, [].concat(args)); + _this47.type = 'symbol'; + return _this47; } dist_inherits(SymbolElement, _RenderedElement6); return dist_createClass(SymbolElement, [{ @@ -151593,34 +152118,35 @@ var SVGFontLoader = /*#__PURE__*/function () { return dist_createClass(SVGFontLoader, [{ key: "load", value: function () { - var _load2 = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee6(fontFamily, url) { - var _document3, svgDocument, fonts, _t3; - return dist_regenerator().w(function (_context6) { - while (1) switch (_context6.p = _context6.n) { + var _load2 = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee6(fontFamily, url) { + var _document3, svgDocument, fonts; + return dist_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { case 0: - _context6.p = 0; + _context6.prev = 0; _document3 = this.document; - _context6.n = 1; + _context6.next = 4; return _document3.canvg.parser.load(url); - case 1: - svgDocument = _context6.v; + case 4: + svgDocument = _context6.sent; fonts = svgDocument.getElementsByTagName('font'); Array.from(fonts).forEach(function (fontNode) { var font = _document3.createElement(fontNode); _document3.definitions.set(fontFamily, font); }); - _context6.n = 3; + _context6.next = 12; break; - case 2: - _context6.p = 2; - _t3 = _context6.v; - console.error("Error while loading font \"".concat(url, "\":"), _t3); - case 3: + case 9: + _context6.prev = 9; + _context6.t0 = _context6["catch"](0); + console.error("Error while loading font \"".concat(url, "\":"), _context6.t0); + case 12: this.loaded = true; - case 4: - return _context6.a(2); + case 13: + case "end": + return _context6.stop(); } - }, _callee6, this, [[0, 2]]); + }, _callee6, this, [[0, 9]]); })); function load(_x6, _x7) { return _load2.apply(this, arguments); @@ -151629,12 +152155,12 @@ var SVGFontLoader = /*#__PURE__*/function () { }() }]); }(); -var StyleElement = /*#__PURE__*/function (_Element1) { +var StyleElement = /*#__PURE__*/function (_Element11) { function StyleElement(document, node, captureTextNodes) { - var _this46; + var _this48; dist_classCallCheck(this, StyleElement); - _this46 = dist_callSuper(this, StyleElement, [document, node, captureTextNodes]); - _this46.type = 'style'; + _this48 = dist_callSuper(this, StyleElement, [document, node, captureTextNodes]); + _this48.type = 'style'; var css = compressSpaces(Array.from(node.childNodes) // NEED TEST .map(function (_) { return _.textContent; @@ -151680,22 +152206,22 @@ var StyleElement = /*#__PURE__*/function (_Element1) { } }); }); - return _this46; + return _this48; } - dist_inherits(StyleElement, _Element1); + dist_inherits(StyleElement, _Element11); return dist_createClass(StyleElement); }(Element); StyleElement.parseExternalUrl = parseExternalUrl; var UseElement = /*#__PURE__*/function (_RenderedElement7) { function UseElement() { - var _this47; + var _this49; dist_classCallCheck(this, UseElement); - for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) { - args[_key16] = arguments[_key16]; + for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) { + args[_key18] = arguments[_key18]; } - _this47 = dist_callSuper(this, UseElement, [].concat(args)); - _this47.type = 'use'; - return _this47; + _this49 = dist_callSuper(this, UseElement, [].concat(args)); + _this49.type = 'use'; + return _this49; } dist_inherits(UseElement, _RenderedElement7); return dist_createClass(UseElement, [{ @@ -151795,14 +152321,14 @@ function dist_m(matrix, i, v) { function dist_c(a, m1, m2, m3) { return m1 + Math.cos(a) * m2 + Math.sin(a) * m3; } -var FeColorMatrixElement = /*#__PURE__*/function (_Element10) { +var FeColorMatrixElement = /*#__PURE__*/function (_Element12) { function FeColorMatrixElement(document, node, captureTextNodes) { - var _this48; + var _this50; dist_classCallCheck(this, FeColorMatrixElement); - _this48 = dist_callSuper(this, FeColorMatrixElement, [document, node, captureTextNodes]); - _this48.type = 'feColorMatrix'; - var matrix = toNumbers(_this48.getAttribute('values').getString()); - switch (_this48.getAttribute('type').getString('matrix')) { + _this50 = dist_callSuper(this, FeColorMatrixElement, [document, node, captureTextNodes]); + _this50.type = 'feColorMatrix'; + var matrix = toNumbers(_this50.getAttribute('values').getString()); + switch (_this50.getAttribute('type').getString('matrix')) { case 'saturate': { var s = matrix[0]; @@ -151821,11 +152347,11 @@ var FeColorMatrixElement = /*#__PURE__*/function (_Element10) { /* eslint-disable array-element-newline */matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1]; break; } - _this48.matrix = matrix; - _this48.includeOpacity = _this48.getAttribute('includeOpacity').hasValue(); - return _this48; + _this50.matrix = matrix; + _this50.includeOpacity = _this50.getAttribute('includeOpacity').hasValue(); + return _this50; } - dist_inherits(FeColorMatrixElement, _Element10); + dist_inherits(FeColorMatrixElement, _Element12); return dist_createClass(FeColorMatrixElement, [{ key: "apply", value: function apply(ctx, _x, _y, width, height) { @@ -151860,18 +152386,18 @@ var FeColorMatrixElement = /*#__PURE__*/function (_Element10) { } }]); }(Element); -var MaskElement = /*#__PURE__*/function (_Element11) { +var MaskElement = /*#__PURE__*/function (_Element13) { function MaskElement() { - var _this49; + var _this51; dist_classCallCheck(this, MaskElement); - for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) { - args[_key17] = arguments[_key17]; + for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) { + args[_key19] = arguments[_key19]; } - _this49 = dist_callSuper(this, MaskElement, [].concat(args)); - _this49.type = 'mask'; - return _this49; + _this51 = dist_callSuper(this, MaskElement, [].concat(args)); + _this51.type = 'mask'; + return _this51; } - dist_inherits(MaskElement, _Element11); + dist_inherits(MaskElement, _Element13); return dist_createClass(MaskElement, [{ key: "apply", value: function apply(ctx, element) { @@ -151932,18 +152458,18 @@ MaskElement.ignoreStyles = ['mask', 'transform', 'clip-path']; var noop = function noop() { // NOOP }; -var ClipPathElement = /*#__PURE__*/function (_Element12) { +var ClipPathElement = /*#__PURE__*/function (_Element14) { function ClipPathElement() { - var _this50; + var _this52; dist_classCallCheck(this, ClipPathElement); - for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) { - args[_key18] = arguments[_key18]; + for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) { + args[_key20] = arguments[_key20]; } - _this50 = dist_callSuper(this, ClipPathElement, [].concat(args)); - _this50.type = 'clipPath'; - return _this50; + _this52 = dist_callSuper(this, ClipPathElement, [].concat(args)); + _this52.type = 'clipPath'; + return _this52; } - dist_inherits(ClipPathElement, _Element12); + dist_inherits(ClipPathElement, _Element14); return dist_createClass(ClipPathElement, [{ key: "apply", value: function apply(ctx) { @@ -151961,7 +152487,7 @@ var ClipPathElement = /*#__PURE__*/function (_Element12) { return; } var transform = 'elementTransform' in child ? child.elementTransform() : null // handle -; + ; if (!transform) { transform = dist_Transform.fromElement(document, child); } @@ -151990,18 +152516,18 @@ var ClipPathElement = /*#__PURE__*/function (_Element12) { } }]); }(Element); -var FilterElement = /*#__PURE__*/function (_Element13) { +var FilterElement = /*#__PURE__*/function (_Element15) { function FilterElement() { - var _this51; + var _this53; dist_classCallCheck(this, FilterElement); - for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) { - args[_key19] = arguments[_key19]; + for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) { + args[_key21] = arguments[_key21]; } - _this51 = dist_callSuper(this, FilterElement, [].concat(args)); - _this51.type = 'filter'; - return _this51; + _this53 = dist_callSuper(this, FilterElement, [].concat(args)); + _this53.type = 'filter'; + return _this53; } - dist_inherits(FilterElement, _Element13); + dist_inherits(FilterElement, _Element15); return dist_createClass(FilterElement, [{ key: "apply", value: function apply(ctx, element) { @@ -152052,16 +152578,16 @@ var FilterElement = /*#__PURE__*/function (_Element13) { }]); }(Element); FilterElement.ignoreStyles = ['filter', 'transform', 'clip-path']; -var FeDropShadowElement = /*#__PURE__*/function (_Element14) { +var FeDropShadowElement = /*#__PURE__*/function (_Element16) { function FeDropShadowElement(document, node, captureTextNodes) { - var _this52; + var _this54; dist_classCallCheck(this, FeDropShadowElement); - _this52 = dist_callSuper(this, FeDropShadowElement, [document, node, captureTextNodes]); - _this52.type = 'feDropShadow'; - _this52.addStylesFromStyleDefinition(); - return _this52; + _this54 = dist_callSuper(this, FeDropShadowElement, [document, node, captureTextNodes]); + _this54.type = 'feDropShadow'; + _this54.addStylesFromStyleDefinition(); + return _this54; } - dist_inherits(FeDropShadowElement, _Element14); + dist_inherits(FeDropShadowElement, _Element16); return dist_createClass(FeDropShadowElement, [{ key: "apply", value: function apply(_, _x, _y, _width, _height) { @@ -152069,18 +152595,18 @@ var FeDropShadowElement = /*#__PURE__*/function (_Element14) { } }]); }(Element); -var FeMorphologyElement = /*#__PURE__*/function (_Element15) { +var FeMorphologyElement = /*#__PURE__*/function (_Element17) { function FeMorphologyElement() { - var _this53; + var _this55; dist_classCallCheck(this, FeMorphologyElement); - for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) { - args[_key20] = arguments[_key20]; + for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) { + args[_key22] = arguments[_key22]; } - _this53 = dist_callSuper(this, FeMorphologyElement, [].concat(args)); - _this53.type = 'feMorphology'; - return _this53; + _this55 = dist_callSuper(this, FeMorphologyElement, [].concat(args)); + _this55.type = 'feMorphology'; + return _this55; } - dist_inherits(FeMorphologyElement, _Element15); + dist_inherits(FeMorphologyElement, _Element17); return dist_createClass(FeMorphologyElement, [{ key: "apply", value: function apply(_, _x, _y, _width, _height) { @@ -152088,18 +152614,18 @@ var FeMorphologyElement = /*#__PURE__*/function (_Element15) { } }]); }(Element); -var FeCompositeElement = /*#__PURE__*/function (_Element16) { +var FeCompositeElement = /*#__PURE__*/function (_Element18) { function FeCompositeElement() { - var _this54; + var _this56; dist_classCallCheck(this, FeCompositeElement); - for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) { - args[_key21] = arguments[_key21]; + for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) { + args[_key23] = arguments[_key23]; } - _this54 = dist_callSuper(this, FeCompositeElement, [].concat(args)); - _this54.type = 'feComposite'; - return _this54; + _this56 = dist_callSuper(this, FeCompositeElement, [].concat(args)); + _this56.type = 'feComposite'; + return _this56; } - dist_inherits(FeCompositeElement, _Element16); + dist_inherits(FeCompositeElement, _Element18); return dist_createClass(FeCompositeElement, [{ key: "apply", value: function apply(_, _x, _y, _width, _height) { @@ -152107,17 +152633,17 @@ var FeCompositeElement = /*#__PURE__*/function (_Element16) { } }]); }(Element); -var FeGaussianBlurElement = /*#__PURE__*/function (_Element17) { +var FeGaussianBlurElement = /*#__PURE__*/function (_Element19) { function FeGaussianBlurElement(document, node, captureTextNodes) { - var _this55; + var _this57; dist_classCallCheck(this, FeGaussianBlurElement); - _this55 = dist_callSuper(this, FeGaussianBlurElement, [document, node, captureTextNodes]); - _this55.type = 'feGaussianBlur'; - _this55.blurRadius = Math.floor(_this55.getAttribute('stdDeviation').getNumber()); - _this55.extraFilterDistance = _this55.blurRadius; - return _this55; + _this57 = dist_callSuper(this, FeGaussianBlurElement, [document, node, captureTextNodes]); + _this57.type = 'feGaussianBlur'; + _this57.blurRadius = Math.floor(_this57.getAttribute('stdDeviation').getNumber()); + _this57.extraFilterDistance = _this57.blurRadius; + return _this57; } - dist_inherits(FeGaussianBlurElement, _Element17); + dist_inherits(FeGaussianBlurElement, _Element19); return dist_createClass(FeGaussianBlurElement, [{ key: "apply", value: function apply(ctx, x, y, width, height) { @@ -152138,32 +152664,32 @@ var FeGaussianBlurElement = /*#__PURE__*/function (_Element17) { } }]); }(Element); -var TitleElement = /*#__PURE__*/function (_Element18) { +var TitleElement = /*#__PURE__*/function (_Element20) { function TitleElement() { - var _this56; + var _this58; dist_classCallCheck(this, TitleElement); - for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) { - args[_key22] = arguments[_key22]; + for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) { + args[_key24] = arguments[_key24]; } - _this56 = dist_callSuper(this, TitleElement, [].concat(args)); - _this56.type = 'title'; - return _this56; + _this58 = dist_callSuper(this, TitleElement, [].concat(args)); + _this58.type = 'title'; + return _this58; } - dist_inherits(TitleElement, _Element18); + dist_inherits(TitleElement, _Element20); return dist_createClass(TitleElement); }(Element); -var DescElement = /*#__PURE__*/function (_Element19) { +var DescElement = /*#__PURE__*/function (_Element21) { function DescElement() { - var _this57; + var _this59; dist_classCallCheck(this, DescElement); - for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) { - args[_key23] = arguments[_key23]; + for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) { + args[_key25] = arguments[_key25]; } - _this57 = dist_callSuper(this, DescElement, [].concat(args)); - _this57.type = 'desc'; - return _this57; + _this59 = dist_callSuper(this, DescElement, [].concat(args)); + _this59.type = 'desc'; + return _this59; } - dist_inherits(DescElement, _Element19); + dist_inherits(DescElement, _Element21); return dist_createClass(DescElement); }(Element); var dist_elements = { @@ -152219,19 +152745,19 @@ function createImage(_x8) { return _createImage.apply(this, arguments); } function _createImage() { - _createImage = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee9(src) { + _createImage = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee9(src) { var anonymousCrossOrigin, image, _args8 = arguments; - return dist_regenerator().w(function (_context9) { - while (1) switch (_context9.n) { + return dist_regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { case 0: anonymousCrossOrigin = _args8.length > 1 && _args8[1] !== void 0 ? _args8[1] : false; image = document.createElement('img'); if (anonymousCrossOrigin) { image.crossOrigin = 'Anonymous'; } - return _context9.a(2, new Promise(function (resolve, reject) { + return _context9.abrupt("return", new Promise(function (resolve, reject) { image.onload = function () { resolve(image); }; @@ -152240,6 +152766,9 @@ function _createImage() { }; image.src = src; })); + case 4: + case "end": + return _context9.stop(); } }, _callee9); })); @@ -152248,7 +152777,7 @@ function _createImage() { var DEFAULT_EM_SIZE = 12; var Document = /*#__PURE__*/function () { function Document(canvg) { - var _this58 = this; + var _this60 = this; var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref7$rootEmSize = _ref7.rootEmSize, rootEmSize = _ref7$rootEmSize === void 0 ? DEFAULT_EM_SIZE : _ref7$rootEmSize, @@ -152274,10 +152803,10 @@ var Document = /*#__PURE__*/function () { this.createCanvas = createCanvas1; this.createImage = this.bindCreateImage(createImage2, anonymousCrossOrigin); this.screen.wait(function () { - return _this58.isImagesLoaded(); + return _this60.isImagesLoaded(); }); this.screen.wait(function () { - return _this58.isFontsLoaded(); + return _this60.isFontsLoaded(); }); } return dist_createClass(Document, [{ @@ -152450,11 +152979,11 @@ var Canvg = /*#__PURE__*/function () { }, { key: "render", value: (function () { - var _render = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee7() { + var _render = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee7() { var options, _args6 = arguments; - return dist_regenerator().w(function (_context7) { - while (1) switch (_context7.n) { + return dist_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { case 0: options = _args6.length > 0 && _args6[0] !== void 0 ? _args6[0] : {}; this.start(dist_objectSpread({ @@ -152462,12 +152991,13 @@ var Canvg = /*#__PURE__*/function () { ignoreAnimation: true, ignoreMouse: true }, options)); - _context7.n = 1; + _context7.next = 4; return this.ready(); - case 1: + case 4: this.stop(); - case 2: - return _context7.a(2); + case 5: + case "end": + return _context7.stop(); } }, _callee7, this); })); @@ -152524,25 +153054,28 @@ var Canvg = /*#__PURE__*/function () { * @returns Canvg instance. */ function () { - var _from = dist_asyncToGenerator(/*#__PURE__*/dist_regenerator().m(function _callee8(ctx, svg) { + var _from = dist_asyncToGenerator(/*#__PURE__*/dist_regeneratorRuntime().mark(function _callee8(ctx, svg) { var options, parser, svgDocument, _args7 = arguments; - return dist_regenerator().w(function (_context8) { - while (1) switch (_context8.n) { + return dist_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: options = _args7.length > 2 && _args7[2] !== void 0 ? _args7[2] : {}; parser = new dist_Parser(options); - _context8.n = 1; + _context8.next = 4; return parser.parse(svg); - case 1: - svgDocument = _context8.v; - return _context8.a(2, new Canvg(ctx, svgDocument, options)); + case 4: + svgDocument = _context8.sent; + return _context8.abrupt("return", new Canvg(ctx, svgDocument, options)); + case 6: + case "end": + return _context8.stop(); } }, _callee8); })); - function from(_x9, _x0) { + function from(_x9, _x10) { return _from.apply(this, arguments); } return from; @@ -152569,7 +153102,7 @@ var Canvg = /*#__PURE__*/function () { // EXTERNAL MODULE: ./node_modules/lodash.difference/index.js var lodash_difference = __webpack_require__(311); var lodash_difference_default = /*#__PURE__*/__webpack_require__.n(lodash_difference); -;// ./node_modules/fast-xml-parser/src/util.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/util.js var nameStartChar = ":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD"; @@ -152618,7 +153151,7 @@ var DANGEROUS_PROPERTY_NAMES = [ // 'prototype', 'hasOwnProperty', 'toString', 'valueOf', '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__']; var criticalProperties = ["__proto__", "constructor", "prototype"]; -;// ./node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js function OptionsBuilder_typeof(o) { "@babel/helpers - typeof"; return OptionsBuilder_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OptionsBuilder_typeof(o); } var defaultOnDangerousProperty = function defaultOnDangerousProperty(name) { @@ -152791,7 +153324,7 @@ var buildOptions = function buildOptions(options) { //console.debug(built.processEntities) return built; }; -;// ./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/xmlparser/xmlNode.js function xmlNode_typeof(o) { "@babel/helpers - typeof"; return xmlNode_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, xmlNode_typeof(o); } @@ -152848,7 +153381,7 @@ var XmlNode = /*#__PURE__*/function () { }]); }(); -;// ./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js function DocTypeReader_typeof(o) { "@babel/helpers - typeof"; return DocTypeReader_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, DocTypeReader_typeof(o); } function DocTypeReader_slicedToArray(r, e) { return DocTypeReader_arrayWithHoles(r) || DocTypeReader_iterableToArrayLimit(r, e) || DocTypeReader_unsupportedIterableToArray(r, e) || DocTypeReader_nonIterableRest(); } function DocTypeReader_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -153237,9 +153770,9 @@ var DocTypeReader = /*#__PURE__*/function () { i += 7; } else { var _this$readIdentifierV9 = this.readIdentifierVal(xmlData, i, "ATTLIST"); - var _this$readIdentifierV0 = DocTypeReader_slicedToArray(_this$readIdentifierV9, 2); - i = _this$readIdentifierV0[0]; - defaultValue = _this$readIdentifierV0[1]; + var _this$readIdentifierV10 = DocTypeReader_slicedToArray(_this$readIdentifierV9, 2); + i = _this$readIdentifierV10[0]; + defaultValue = _this$readIdentifierV10[1]; } return { elementName: elementName, @@ -153267,7 +153800,7 @@ function hasSeq(data, seq, i) { function validateEntityName(name) { if (isName(name)) return name;else throw new Error("Invalid entity name ".concat(name)); } -;// ./node_modules/anynum/digitTable.js +;// CONCATENATED MODULE: ./node_modules/anynum/digitTable.js /** * Flat lookup table: maps Unicode code point → ASCII digit (0-9). * Only decimal digit characters (Unicode category Nd) are included. @@ -153443,7 +153976,7 @@ for (var _i = 0, _SCRIPT_ZEROS = SCRIPT_ZEROS; _i < _SCRIPT_ZEROS.length; _i++) } } -;// ./node_modules/anynum/anynum.js +;// CONCATENATED MODULE: ./node_modules/anynum/anynum.js @@ -153578,7 +154111,7 @@ function anynum(str) { } /* harmony default export */ var anynum_anynum = (anynum); -;// ./node_modules/strnum/strnum.js +;// CONCATENATED MODULE: ./node_modules/strnum/strnum.js var hexRegex = /^[-+]?0x[a-fA-F0-9]+$/; var binRegex = /^0b[01]+$/; var octRegex = /^0o[0-7]+$/; @@ -153700,7 +154233,11 @@ function resolveEnotation(str, trimmedStr, options) { function trimZeros(numStr) { if (numStr && numStr.indexOf(".") !== -1) { //float - numStr = numStr.replace(/0+$/, ""); //remove ending zeros + //remove ending zeros without the O(n^2) backtracking that /0+$/ hits + //when the string doesn't end in 0 but has a long internal zero-run + var end = numStr.length; + while (end > 0 && numStr.charCodeAt(end - 1) === 48 /* '0' */) end--; + numStr = numStr.slice(0, end); if (numStr === ".") numStr = "0";else if (numStr[0] === ".") numStr = "0" + numStr;else if (numStr[numStr.length - 1] === ".") numStr = numStr.substring(0, numStr.length - 1); return numStr; } @@ -153735,7 +154272,7 @@ function handleInfinity(str, num, options) { // Return original string like "1e1000" } } -;// ./node_modules/fast-xml-parser/src/ignoreAttributes.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/ignoreAttributes.js function ignoreAttributes_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = ignoreAttributes_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function ignoreAttributes_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return ignoreAttributes_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? ignoreAttributes_arrayLikeToArray(r, a) : void 0; } } function ignoreAttributes_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } @@ -153768,14 +154305,11 @@ function getIgnoreAttributesFn(ignoreAttributes) { return false; }; } -;// ./node_modules/path-expression-matcher/src/Matcher.js +;// CONCATENATED MODULE: ./node_modules/path-expression-matcher/src/Matcher.js function Matcher_typeof(o) { "@babel/helpers - typeof"; return Matcher_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Matcher_typeof(o); } function Matcher_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function Matcher_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? Matcher_ownKeys(Object(t), !0).forEach(function (r) { Matcher_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : Matcher_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function Matcher_defineProperty(e, r, t) { return (r = Matcher_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function Matcher_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = Matcher_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function Matcher_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return Matcher_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? Matcher_arrayLikeToArray(r, a) : void 0; } } -function Matcher_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function Matcher_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Matcher_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Matcher_toPropertyKey(o.key), o); } } function Matcher_createClass(e, r, t) { return r && Matcher_defineProperties(e.prototype, r), t && Matcher_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -153871,6 +154405,30 @@ var MatcherView = /*#__PURE__*/function () { return current.values !== undefined && attrName in current.values; } + /** + * Get the value of a "kept" attribute from the nearest ancestor (or + * current node) that declared it via `push(tag, attrs, ns, { keep: [...] })`. + * @param {string} attrName + * @returns {*} + */ + }, { + key: "getAnyParentAttr", + value: function getAnyParentAttr(attrName) { + return this._matcher.getAnyParentAttr(attrName); + } + + /** + * Check whether any ancestor (or the current node) kept the given + * attribute via `push(tag, attrs, ns, { keep: [...] })`. + * @param {string} attrName + * @returns {boolean} + */ + }, { + key: "hasAnyParentAttr", + value: function hasAnyParentAttr(attrName) { + return this._matcher.hasAnyParentAttr(attrName); + } + /** * Get current node's sibling position (child index in parent). * @returns {number} @@ -154003,6 +154561,9 @@ var Matcher = /*#__PURE__*/function () { // Each siblingStacks entry: Map tracking occurrences at each level this._pathStringCache = null; this._view = new MatcherView(this); + + // Kept-attribute stack: only populated when push() is called with options.keep. + this._keptAttrs = []; } /** @@ -154010,12 +154571,15 @@ var Matcher = /*#__PURE__*/function () { * @param {string} tagName * @param {Object|null} [attrValues=null] * @param {string|null} [namespace=null] + * @param {Object|null} [options=null] + * @param {string[]} [options.keep] - Names of attributes (from attrValues) */ return Matcher_createClass(Matcher, [{ key: "push", value: function push(tagName) { var attrValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var namespace = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; this._pathStringCache = null; // Remove values from previous current node (now becoming ancestor) @@ -154025,34 +154589,32 @@ var Matcher = /*#__PURE__*/function () { // Get or create sibling tracking for current level var currentLevel = this.path.length; - if (!this.siblingStacks[currentLevel]) { - this.siblingStacks[currentLevel] = new Map(); + var level = this.siblingStacks[currentLevel]; + if (!level) { + // `counts` tells same-name siblings apart (the "counter" — nth + // among other s). `total` is every child seen at this level so + // far, kept as a running number instead of re-added from `counts` on + // every push — a parent with many differently-named children would + // otherwise cost more per child the more distinct names it has. + level = { + counts: new Map(), + total: 0 + }; + this.siblingStacks[currentLevel] = level; } - var siblings = this.siblingStacks[currentLevel]; // Create a unique key for sibling tracking that includes namespace var siblingKey = namespace ? "".concat(namespace, ":").concat(tagName) : tagName; // Calculate counter (how many times this tag appeared at this level) - var counter = siblings.get(siblingKey) || 0; + var counter = level.counts.get(siblingKey) || 0; - // Calculate position (total children at this level so far) - var position = 0; - var _iterator = Matcher_createForOfIteratorHelper(siblings.values()), - _step; - try { - for (_iterator.s(); !(_step = _iterator.n()).done;) { - var count = _step.value; - position += count; - } + // Position = total children at this level seen before this one. + var position = level.total; - // Update sibling count for this tag - } catch (err) { - _iterator.e(err); - } finally { - _iterator.f(); - } - siblings.set(siblingKey, counter + 1); + // Update sibling count for this tag, and the level's running total. + level.counts.set(siblingKey, counter + 1); + level.total++; // Create new node var node = { @@ -154067,6 +154629,28 @@ var Matcher = /*#__PURE__*/function () { node.values = attrValues; } this.path.push(node); + + // Depth of the node we just pushed (1-based, matches this.path.length) + var depth = this.path.length; + + // Copy only the requested attributes into the kept-attrs stack. This is + // the one part of push() whose cost scales with input (O(keep.length)) + // rather than being O(1) — by design, since the caller is explicitly + // opting in for specific attribute names. No options/keep => zero added + // cost beyond the two property reads below. + var keep = options !== null ? options.keep : null; + if (keep !== null && keep !== undefined && keep.length > 0 && attrValues) { + for (var i = 0; i < keep.length; i++) { + var name = keep[i]; + if (attrValues[name] !== undefined) { + this._keptAttrs.push({ + depth: depth, + name: name, + value: attrValues[name] + }); + } + } + } } /** @@ -154082,6 +154666,15 @@ var Matcher = /*#__PURE__*/function () { if (this.siblingStacks.length > this.path.length + 1) { this.siblingStacks.length = this.path.length + 1; } + + // Drop any kept attributes that belonged to the popped node (or deeper). + // _keptAttrs is depth-ordered (push only ever appends increasing depths), + // so this is a backward scan that stops at the first surviving entry — + // typically O(1) since kept attrs are rare by design. + var poppedDepth = this.path.length + 1; + while (this._keptAttrs.length > 0 && this._keptAttrs[this._keptAttrs.length - 1].depth >= poppedDepth) { + this._keptAttrs.pop(); + } return node; } @@ -154147,6 +154740,42 @@ var Matcher = /*#__PURE__*/function () { return current.values !== undefined && attrName in current.values; } + /** + * Get the value of a "kept" attribute from the nearest ancestor (or + * current node) that declared it via `push(tag, attrs, ns, { keep: [...] })`. + * Unlike getAttrValue(), this works regardless of how deep the path has + * gone since the attribute was pushed — but only for attribute names that + * were explicitly marked with `keep` at push time. Cost is proportional to + * the number of currently-kept attributes (typically 0-3), not path depth. + * @param {string} attrName + * @returns {*} the value, or undefined if no ancestor kept this attribute + */ + }, { + key: "getAnyParentAttr", + value: function getAnyParentAttr(attrName) { + var kept = this._keptAttrs; + for (var i = kept.length - 1; i >= 0; i--) { + if (kept[i].name === attrName) return kept[i].value; + } + return undefined; + } + + /** + * Check whether any ancestor (or the current node) kept the given + * attribute via `push(tag, attrs, ns, { keep: [...] })`. + * @param {string} attrName + * @returns {boolean} + */ + }, { + key: "hasAnyParentAttr", + value: function hasAnyParentAttr(attrName) { + var kept = this._keptAttrs; + for (var i = kept.length - 1; i >= 0; i--) { + if (kept[i].name === attrName) return true; + } + return false; + } + /** * Get current node's sibling position (child index in parent). * @returns {number} @@ -154240,6 +154869,7 @@ var Matcher = /*#__PURE__*/function () { this._pathStringCache = null; this.path = []; this.siblingStacks = []; + this._keptAttrs = []; } /** @@ -154384,8 +155014,14 @@ var Matcher = /*#__PURE__*/function () { path: this.path.map(function (node) { return Matcher_objectSpread({}, node); }), - siblingStacks: this.siblingStacks.map(function (map) { - return new Map(map); + siblingStacks: this.siblingStacks.map(function (level) { + return level ? { + counts: new Map(level.counts), + total: level.total + } : level; + }), + keptAttrs: this._keptAttrs.map(function (entry) { + return Matcher_objectSpread({}, entry); }) }; } @@ -154401,8 +155037,14 @@ var Matcher = /*#__PURE__*/function () { this.path = snapshot.path.map(function (node) { return Matcher_objectSpread({}, node); }); - this.siblingStacks = snapshot.siblingStacks.map(function (map) { - return new Map(map); + this.siblingStacks = snapshot.siblingStacks.map(function (level) { + return level ? { + counts: new Map(level.counts), + total: level.total + } : level; + }); + this._keptAttrs = (snapshot.keptAttrs || []).map(function (entry) { + return Matcher_objectSpread({}, entry); }); } @@ -154430,7 +155072,7 @@ var Matcher = /*#__PURE__*/function () { }]); }(); -;// ./node_modules/path-expression-matcher/src/Expression.js +;// CONCATENATED MODULE: ./node_modules/path-expression-matcher/src/Expression.js function Expression_typeof(o) { "@babel/helpers - typeof"; return Expression_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, Expression_typeof(o); } function Expression_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function Expression_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, Expression_toPropertyKey(o.key), o); } } @@ -154688,7 +155330,7 @@ var Expression = /*#__PURE__*/function () { }]); }(); -;// ./node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js ///@ts-check @@ -155579,7 +156221,7 @@ function sanitizeName(name, options) { } return name; } -;// ./node_modules/fast-xml-parser/src/xmlparser/node2json.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/xmlparser/node2json.js function node2json_typeof(o) { "@babel/helpers - typeof"; return node2json_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, node2json_typeof(o); } @@ -155724,7 +156366,7 @@ function isLeafTag(obj, options) { } return false; } -;// ./node_modules/fast-xml-parser/src/validator.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/validator.js @@ -156105,7 +156747,7 @@ function getLineNumberForPosition(xmlData, index) { function getPositionFromMatch(match) { return match.startIndex + match[1].length; } -;// ./node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/xmlparser/XMLParser.js function XMLParser_typeof(o) { "@babel/helpers - typeof"; return XMLParser_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, XMLParser_typeof(o); } function XMLParser_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function XMLParser_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, XMLParser_toPropertyKey(o.key), o); } } @@ -156187,15 +156829,14 @@ var XMLParser = /*#__PURE__*/function () { }]); }(); -;// ./src/common/mapping/WebMapService.js +;// CONCATENATED MODULE: ./src/common/mapping/WebMapService.js function WebMapService_toConsumableArray(r) { return WebMapService_arrayWithoutHoles(r) || WebMapService_iterableToArray(r) || WebMapService_unsupportedIterableToArray(r) || WebMapService_nonIterableSpread(); } function WebMapService_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function WebMapService_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return WebMapService_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? WebMapService_arrayLikeToArray(r, a) : void 0; } } function WebMapService_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } function WebMapService_arrayWithoutHoles(r) { if (Array.isArray(r)) return WebMapService_arrayLikeToArray(r); } function WebMapService_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function WebMapService_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return WebMapService_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (WebMapService_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, WebMapService_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, WebMapService_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), WebMapService_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", WebMapService_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), WebMapService_regeneratorDefine2(u), WebMapService_regeneratorDefine2(u, o, "Generator"), WebMapService_regeneratorDefine2(u, n, function () { return this; }), WebMapService_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (WebMapService_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function WebMapService_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } WebMapService_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { WebMapService_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, WebMapService_regeneratorDefine2(e, r, n, t); } +function WebMapService_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ WebMapService_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == WebMapService_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(WebMapService_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function WebMapService_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function WebMapService_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { WebMapService_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { WebMapService_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function WebMapService_typeof(o) { "@babel/helpers - typeof"; return WebMapService_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebMapService_typeof(o); } @@ -156275,26 +156916,26 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "getMapInfo", value: function () { - var _getMapInfo = WebMapService_asyncToGenerator(/*#__PURE__*/WebMapService_regenerator().m(function _callee() { + var _getMapInfo = WebMapService_asyncToGenerator(/*#__PURE__*/WebMapService_regeneratorRuntime().mark(function _callee() { var _this = this; - var mapUrl, _t; - return WebMapService_regenerator().w(function (_context) { - while (1) switch (_context.p = _context.n) { + var mapUrl; + return WebMapService_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: if (!(!this.mapId && this.mapInfo)) { - _context.n = 1; + _context.next = 2; break; } - return _context.a(2, new Promise(function (resolve) { + return _context.abrupt("return", new Promise(function (resolve) { resolve(_this.mapInfo); })); - case 1: + case 2: mapUrl = this._handleMapUrl(); - _context.p = 2; - _context.n = 3; + _context.prev = 3; + _context.next = 6; return this.getiPortalServiceProxy(); - case 3: - return _context.a(2, new Promise(function (resolve, reject) { + case 6: + return _context.abrupt("return", new Promise(function (resolve, reject) { FetchRequest.get(mapUrl, null, { withCredentials: _this.withCredentials }).then(function (response) { @@ -156316,12 +156957,15 @@ var WebMapService = /*#__PURE__*/function () { reject(error); }); })); - case 4: - _context.p = 4; - _t = _context.v; - return _context.a(2, Promise.reject(_t)); + case 9: + _context.prev = 9; + _context.t0 = _context["catch"](3); + return _context.abrupt("return", Promise.reject(_context.t0)); + case 12: + case "end": + return _context.stop(); } - }, _callee, this, [[2, 4]]); + }, _callee, this, [[3, 9]]); })); function getMapInfo() { return _getMapInfo.apply(this, arguments); @@ -156389,7 +157033,7 @@ var WebMapService = /*#__PURE__*/function () { var _this3 = this; return new Promise(function (resolve) { var proxy = _this3.handleProxy(); - var serviceUrl = Util.urlAppend(layerInfo.url, 'REQUEST=GetCapabilities&SERVICE=WMS'); + var serviceUrl = Util_Util.urlAppend(layerInfo.url, 'REQUEST=GetCapabilities&SERVICE=WMS'); FetchRequest.get(serviceUrl, null, { withCredentials: _this3.handleWithCredentials(proxy, layerInfo.url, false), withoutFormatSuffix: true, @@ -156452,7 +157096,7 @@ var WebMapService = /*#__PURE__*/function () { var kvpResourceUrl = ''; var scales = []; var proxy = _this5.handleProxy(); - var serviceUrl = Util.urlAppend(layerInfo.url, 'REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0'); + var serviceUrl = Util_Util.urlAppend(layerInfo.url, 'REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0'); serviceUrl = _this5.handleParentRes(serviceUrl); FetchRequest.get(serviceUrl, null, { withCredentials: _this5.handleWithCredentials(proxy, layerInfo.url, false), @@ -156776,9 +157420,9 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_getFeaturesFromDataflow", value: function _getFeaturesFromDataflow(layer) { - var _this0 = this; + var _this10 = this; return new Promise(function (resolve, reject) { - _this0._getDataflowInfo(layer, function () { + _this10._getDataflowInfo(layer, function () { resolve({ type: 'dataflow' }); @@ -156895,7 +157539,7 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_getDataFromIportal", value: function _getDataFromIportal(serverId, layerInfo) { - var _this1 = this; + var _this11 = this; var features; // 原来二进制文件 var url = "".concat(this.serverUrl, "web/datas/").concat(serverId, "/content.json?pageSize=9999999¤tPage=1"); @@ -156903,70 +157547,71 @@ var WebMapService = /*#__PURE__*/function () { url = "".concat(url, "&").concat(this.credentialKey, "=").concat(this.credentialValue); } return new Promise(function (resolve, reject) { - url = _this1.handleParentRes(url); - var proxy = _this1.handleProxy(); + url = _this11.handleParentRes(url); + var proxy = _this11.handleProxy(); FetchRequest.get(url, null, { - withCredentials: _this1.handleWithCredentials(proxy, url, _this1.withCredentials), + withCredentials: _this11.handleWithCredentials(proxy, url, _this11.withCredentials), proxy: proxy }).then(function (response) { return response.json(); }).then(/*#__PURE__*/function () { - var _ref = WebMapService_asyncToGenerator(/*#__PURE__*/WebMapService_regenerator().m(function _callee2(data) { + var _ref = WebMapService_asyncToGenerator(/*#__PURE__*/WebMapService_regeneratorRuntime().mark(function _callee2(data) { var _layerInfo$dataSource, divisionType, divisionField, geojson; - return WebMapService_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + return WebMapService_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: if (data.succeed === false) { reject(data.error); } if (!(data && data.type)) { - _context2.n = 7; + _context2.next = 22; break; } if (!(data.type === 'JSON' || data.type === 'GEOJSON')) { - _context2.n = 1; + _context2.next = 7; break; } data.content = JSON.parse(data.content.trim()); - features = _this1._formatGeoJSON(data.content); - _context2.n = 6; + features = _this11._formatGeoJSON(data.content); + _context2.next = 21; break; - case 1: + case 7: if (!(data.type === 'EXCEL' || data.type === 'CSV')) { - _context2.n = 5; + _context2.next = 20; break; } if (!(layerInfo.dataSource && layerInfo.dataSource.administrativeInfo)) { - _context2.n = 3; + _context2.next = 17; break; } // 行政规划信息 data.content.rows.unshift(data.content.colTitles); _layerInfo$dataSource = layerInfo.dataSource.administrativeInfo, divisionType = _layerInfo$dataSource.divisionType, divisionField = _layerInfo$dataSource.divisionField; - _context2.n = 2; - return _this1._excelData2FeatureByDivision(data.content, divisionType, divisionField); - case 2: - geojson = _context2.v; - features = _this1._formatGeoJSON(geojson); - _context2.n = 4; + _context2.next = 13; + return _this11._excelData2FeatureByDivision(data.content, divisionType, divisionField); + case 13: + geojson = _context2.sent; + features = _this11._formatGeoJSON(geojson); + _context2.next = 18; break; - case 3: - features = _this1._excelData2Feature(data.content, layerInfo && layerInfo.xyField || {}); - case 4: - _context2.n = 6; + case 17: + features = _this11._excelData2Feature(data.content, layerInfo && layerInfo.xyField || {}); + case 18: + _context2.next = 21; break; - case 5: + case 20: if (data.type === 'SHP') { data.content = JSON.parse(data.content.trim()); - features = _this1._formatGeoJSON(data.content.layers[0]); + features = _this11._formatGeoJSON(data.content.layers[0]); } - case 6: + case 21: resolve({ type: 'feature', features: features }); - case 7: - return _context2.a(2); + case 22: + case "end": + return _context2.stop(); } }, _callee2); })); @@ -156981,18 +157626,18 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_getDataFromHosted", value: function _getDataFromHosted(_ref2) { - var _this10 = this; + var _this12 = this; var layer = _ref2.layer, serverId = _ref2.serverId, baseProjection = _ref2.baseProjection; // 关系型文件 var isMapService = layer.layerType === 'HOSTED_TILE'; return new Promise(function (resolve, reject) { - _this10._checkUploadToRelationship(serverId).then(function (result) { + _this12._checkUploadToRelationship(serverId).then(function (result) { if (result && result.length > 0) { var datasetName = result[0].name; var featureType = result[0].type.toUpperCase(); - _this10._getDataService(serverId, datasetName).then(function (data) { + _this12._getDataService(serverId, datasetName).then(function (data) { var dataItemServices = data.dataItemServices; if (dataItemServices.length === 0) { reject('noDataServices'); @@ -157010,14 +157655,14 @@ var WebMapService = /*#__PURE__*/function () { var dataService = dataItemServices.filter(function (info) { return info && info.serviceType === 'RESTDATA'; })[0]; - _this10._isMvt(dataService.address, datasetName, baseProjection).then(function (info) { - _this10._getServiceInfoFromLayer(param, info); + _this12._isMvt(dataService.address, datasetName, baseProjection).then(function (info) { + _this12._getServiceInfoFromLayer(param, info); })["catch"](function () { // 判断失败就走之前逻辑,>数据量用tile - _this10._getServiceInfoFromLayer(param); + _this12._getServiceInfoFromLayer(param); }); } else { - _this10._getServiceInfoFromLayer(param); + _this12._getServiceInfoFromLayer(param); } }); } else { @@ -157034,7 +157679,7 @@ var WebMapService = /*#__PURE__*/function () { return this._getDatasetsInfo(serviceUrl, datasetName).then(function (info) { // 判断是否和底图坐标系一直 if (info.epsgCode == baseProjection.split('EPSG:')[1]) { - return FetchRequest.get(Util.urlPathAppend(info.url, '/tilefeature.mvt')).then(function (response) { + return FetchRequest.get(Util_Util.urlPathAppend(info.url, '/tilefeature.mvt')).then(function (response) { return response.json(); }).then(function (result) { info.isMvt = result.error && result.error.code === 400; @@ -157049,7 +157694,7 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_getServiceInfoFromLayer", value: function _getServiceInfoFromLayer(_ref3, info) { - var _this11 = this; + var _this13 = this; var layer = _ref3.layer, dataItemServices = _ref3.dataItemServices, datasetName = _ref3.datasetName, @@ -157068,7 +157713,7 @@ var WebMapService = /*#__PURE__*/function () { if (service && isMapService && service.serviceType === 'RESTMAP') { isAdded = true; // 地图服务,判断使用mvt还是tile - _this11._getTileLayerInfo(service.address, baseProjection).then(function (restMaps) { + _this13._getTileLayerInfo(service.address, baseProjection).then(function (restMaps) { resolve({ type: 'restMap', restMaps: restMaps @@ -157086,11 +157731,11 @@ var WebMapService = /*#__PURE__*/function () { // 数据服务 isAdded = true; // 关系型文件发布的数据服务 - _this11._getDatasources(service.address).then(function (datasourceName) { + _this13._getDatasources(service.address).then(function (datasourceName) { layer.dataSource.dataSourceName = datasourceName + ':' + datasetName; layer.dataSource.url = "".concat(service.address, "/data"); - _this11._getFeatureBySQL(layer.dataSource.url, [layer.dataSource.dataSourceName || layer.name], function (result) { - var features = _this11.parseGeoJsonData2Feature({ + _this13._getFeatureBySQL(layer.dataSource.url, [layer.dataSource.dataSourceName || layer.name], function (result) { + var features = _this13.parseGeoJsonData2Feature({ allDatas: { features: result.result.features.features } @@ -157116,14 +157761,14 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_getDatasetsInfo", value: function _getDatasetsInfo(serviceUrl, datasetName) { - var _this12 = this; + var _this14 = this; return this._getDatasources(serviceUrl).then(function (datasourceName) { // 判断mvt服务是否可用 - var url = Util.urlPathAppend(serviceUrl, "/data/datasources/".concat(datasourceName, "/datasets/").concat(datasetName)); - var proxy = _this12.handleProxy(); - url = _this12.handleParentRes(url); + var url = Util_Util.urlPathAppend(serviceUrl, "/data/datasources/".concat(datasourceName, "/datasets/").concat(datasetName)); + var proxy = _this14.handleProxy(); + url = _this14.handleParentRes(url); return FetchRequest.get(url, null, { - withCredentials: _this12.handleWithCredentials(proxy, url, false), + withCredentials: _this14.handleWithCredentials(proxy, url, false), proxy: proxy }).then(function (response) { return response.json(); @@ -157142,7 +157787,7 @@ var WebMapService = /*#__PURE__*/function () { key: "_getDatasources", value: function _getDatasources(url) { var proxy = this.handleProxy(); - var serviceUrl = Util.urlPathAppend(url, '/data/datasources.json'); + var serviceUrl = Util_Util.urlPathAppend(url, '/data/datasources.json'); serviceUrl = this.handleParentRes(serviceUrl); return FetchRequest.get(serviceUrl, null, { withCredentials: this.handleWithCredentials(proxy, serviceUrl, false), @@ -157235,6 +157880,14 @@ var WebMapService = /*#__PURE__*/function () { } return defaultValue; } + }, { + key: "handleUrlWithCredentials", + value: function handleUrlWithCredentials(serviceUrl) { + if (serviceUrl && this.iportalServiceProxyUrl && serviceUrl.indexOf(this.iportalServiceProxyUrl) >= 0) { + return true; + } + return null; + } }, { key: "isIportalResourceUrl", value: function isIportalResourceUrl(serviceUrl) { @@ -157248,7 +157901,7 @@ var WebMapService = /*#__PURE__*/function () { if (!this.isIportalResourceUrl(url)) { return url; } - return Util.urlAppend(url, "parentResType=".concat(parentResType, "&parentResId=").concat(parentResId)); + return Util_Util.urlAppend(url, "parentResType=".concat(parentResType, "&parentResId=").concat(parentResId)); } }, { key: "_formatGeoJSON", @@ -157311,11 +157964,11 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_excelData2FeatureByDivision", value: function _excelData2FeatureByDivision(content, divisionType, divisionField) { - var _this13 = this; + var _this15 = this; var dataName = ['城市', 'City'].includes(divisionType) ? 'MunicipalData' : 'ProvinceData'; if (window[dataName] && window[dataName].features) { return new Promise(function (resolve) { - resolve(_this13._combineFeature(content, window[dataName], divisionField)); + resolve(_this15._combineFeature(content, window[dataName], divisionField)); }); } var dataFileName = ['城市', 'City'].includes(divisionType) ? 'MunicipalData.js' : 'ProvincialData.js'; @@ -157329,13 +157982,13 @@ var WebMapService = /*#__PURE__*/function () { return response.text(); }).then(function (result) { new Function(result)(); - return _this13._combineFeature(content, window[dataName], divisionField); + return _this15._combineFeature(content, window[dataName], divisionField); }); } }, { key: "_combineFeature", value: function _combineFeature(properties, geoData, divisionField) { - var _this14 = this; + var _this16 = this; var geojson = { type: 'FeatureCollection', features: [] @@ -157350,7 +158003,7 @@ var WebMapService = /*#__PURE__*/function () { }); rows.forEach(function (row) { var feature = geoData.features.find(function (item) { - return _this14._isMatchAdministrativeName(item.properties.Name, row[fieldIndex]); + return _this16._isMatchAdministrativeName(item.properties.Name, row[fieldIndex]); }); // todo 需提示忽略无效数据 if (feature) { @@ -157396,10 +158049,10 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_getTileLayerInfo", value: function _getTileLayerInfo(url, baseProjection) { - var _this15 = this; + var _this17 = this; var proxy = this.handleProxy(); var epsgCode = baseProjection.split('EPSG:')[1]; - var serviceUrl = Util.urlPathAppend(url, '/maps.json'); + var serviceUrl = Util_Util.urlPathAppend(url, '/maps.json'); serviceUrl = this.handleParentRes(serviceUrl); return FetchRequest.get(serviceUrl, null, { withCredentials: this.handleWithCredentials(proxy, serviceUrl, this.withCredentials), @@ -157410,10 +158063,10 @@ var WebMapService = /*#__PURE__*/function () { var promises = []; if (mapInfo) { mapInfo.forEach(function (info) { - var promise = FetchRequest.get(Util.urlAppend(Util.handleUrlSuffix(info.path, '.json'), "prjCoordSys=".concat(JSON.stringify({ + var promise = FetchRequest.get(Util_Util.urlAppend(Util_Util.handleUrlSuffix(info.path, '.json'), "prjCoordSys=".concat(JSON.stringify({ epsgCode: epsgCode }))), null, { - withCredentials: _this15.withCredentials, + withCredentials: _this17.withCredentials, proxy: proxy }).then(function (response) { return response.json(); @@ -157432,7 +158085,7 @@ var WebMapService = /*#__PURE__*/function () { }, { key: "_getFeatureBySQL", value: function _getFeatureBySQL(url, datasetNames, _processCompleted2, processFaild, baseProjection) { - var _this16 = this; + var _this18 = this; var getFeatureParam, getFeatureBySQLService, getFeatureBySQLParams; getFeatureParam = new FilterParameter({ name: datasetNames.join().replace(':', '@'), @@ -157470,7 +158123,7 @@ var WebMapService = /*#__PURE__*/function () { fieldTypes.push(fieldInfo.type); } }); - var data = _this16.statisticsFeatures(result.features.features, fields, fieldCaptions, fieldTypes); + var data = _this18.statisticsFeatures(result.features.features, fields, fieldCaptions, fieldTypes); getFeaturesEventArgs.result.features.features = data.features; } _processCompleted2 && _processCompleted2(getFeaturesEventArgs); @@ -157529,12 +158182,11 @@ var WebMapService = /*#__PURE__*/function () { } }]); }(); -;// ./src/common/mapping/WebMapV2Base.js +;// CONCATENATED MODULE: ./src/common/mapping/WebMapV2Base.js function WebMapV2Base_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function WebMapV2Base_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? WebMapV2Base_ownKeys(Object(t), !0).forEach(function (r) { WebMapV2Base_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : WebMapV2Base_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function WebMapV2Base_defineProperty(e, r, t) { return (r = WebMapV2Base_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function WebMapV2Base_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return WebMapV2Base_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (WebMapV2Base_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, WebMapV2Base_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, WebMapV2Base_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), WebMapV2Base_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", WebMapV2Base_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), WebMapV2Base_regeneratorDefine2(u), WebMapV2Base_regeneratorDefine2(u, o, "Generator"), WebMapV2Base_regeneratorDefine2(u, n, function () { return this; }), WebMapV2Base_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (WebMapV2Base_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function WebMapV2Base_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } WebMapV2Base_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { WebMapV2Base_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, WebMapV2Base_regeneratorDefine2(e, r, n, t); } +function WebMapV2Base_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ WebMapV2Base_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == WebMapV2Base_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(WebMapV2Base_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function WebMapV2Base_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function WebMapV2Base_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { WebMapV2Base_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { WebMapV2Base_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function WebMapV2Base_typeof(o) { "@babel/helpers - typeof"; return WebMapV2Base_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebMapV2Base_typeof(o); } @@ -157812,36 +158464,37 @@ function createWebMapV2BaseExtending() { var _this4 = this; var getLayerFunc = this.webMapService.getLayerFeatures(type, layer, this.baseProjection); getLayerFunc && getLayerFunc.then(/*#__PURE__*/function () { - var _ref = WebMapV2Base_asyncToGenerator(/*#__PURE__*/WebMapV2Base_regenerator().m(function _callee(result) { + var _ref = WebMapV2Base_asyncToGenerator(/*#__PURE__*/WebMapV2Base_regeneratorRuntime().mark(function _callee(result) { var epsgWKT; - return WebMapV2Base_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return WebMapV2Base_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: if (!(_this4.mapId && _this4._taskID !== _taskID)) { - _context.n = 1; + _context.next = 2; break; } - return _context.a(2); - case 1: + return _context.abrupt("return"); + case 2: if (!(result && layer.projection)) { - _context.n = 3; + _context.next = 8; break; } if (getProjection(layer.projection, _this4.specifiedProj4)) { - _context.n = 3; + _context.next = 8; break; } - _context.n = 2; + _context.next = 6; return getEpsgCodeInfo(layer.projection.split(':')[1], _this4.serverUrl); - case 2: - epsgWKT = _context.v; + case 6: + epsgWKT = _context.sent; if (epsgWKT) { registerProjection(layer.projection, epsgWKT, _this4.specifiedProj4); } - case 3: + case 8: _this4._getLayerFeaturesSucceeded(result, layer); - case 4: - return _context.a(2); + case 9: + case "end": + return _context.stop(); } }, _callee); })); @@ -158156,7 +158809,7 @@ function createWebMapV2BaseExtending() { dashArr = [8 * w, 4 * w, 1, 4 * w]; break; default: - if (Util.isArray(str)) { + if (Util_Util.isArray(str)) { dashArr = str; } else { str = StringExt.trim(str).replace(/\s+/g, ','); @@ -158713,7 +159366,7 @@ function createWebMapV2BaseExtending() { }]); }(SuperClass); } -;// ./src/common/mapping/utils/SourceModel.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/SourceModel.js function SourceModel_typeof(o) { "@babel/helpers - typeof"; return SourceModel_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SourceModel_typeof(o); } function SourceModel_toConsumableArray(r) { return SourceModel_arrayWithoutHoles(r) || SourceModel_iterableToArray(r) || SourceModel_unsupportedIterableToArray(r) || SourceModel_nonIterableSpread(); } function SourceModel_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -158769,7 +159422,7 @@ var SourceModel = /*#__PURE__*/function () { }]); }(); /* harmony default export */ var utils_SourceModel = (SourceModel); -;// ./src/common/mapping/utils/AppreciableLayerBase.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/AppreciableLayerBase.js function AppreciableLayerBase_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = AppreciableLayerBase_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function AppreciableLayerBase_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return AppreciableLayerBase_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? AppreciableLayerBase_arrayLikeToArray(r, a) : void 0; } } function AppreciableLayerBase_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } @@ -158909,9 +159562,12 @@ var AppreciableLayerBase = /*#__PURE__*/function (_Events) { key: "setLayersVisible", value: function setLayersVisible(layers, visibility) { var _this2 = this; + var isSetVisible = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; layers.forEach(function (layer) { var visbleId = _this2._getLayerVisibleId(layer); - _this2.layersVisibleMap.set(visbleId, visibility === 'visible'); + if (isSetVisible) { + _this2.layersVisibleMap.set(visbleId, visibility === 'visible'); + } if (layer.CLASS_INSTANCE && layer.CLASS_INSTANCE.show && layer.CLASS_INSTANCE.hide) { visibility === 'visible' ? layer.CLASS_INSTANCE.show() : layer.CLASS_INSTANCE.hide(); _this2.map.style.fire('data', { @@ -159351,7 +160007,7 @@ var AppreciableLayerBase = /*#__PURE__*/function (_Events) { } }]); }(Events); -;// ./src/common/mapping/utils/SourceListModelV2.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/SourceListModelV2.js function SourceListModelV2_typeof(o) { "@babel/helpers - typeof"; return SourceListModelV2_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SourceListModelV2_typeof(o); } function SourceListModelV2_toConsumableArray(r) { return SourceListModelV2_arrayWithoutHoles(r) || SourceListModelV2_iterableToArray(r) || SourceListModelV2_unsupportedIterableToArray(r) || SourceListModelV2_nonIterableSpread(); } function SourceListModelV2_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -159472,7 +160128,7 @@ var SourceListModelV2 = /*#__PURE__*/function (_AppreciableLayerBase) { } }]); }(AppreciableLayerBase); -;// ./src/common/mapping/WebMapBase.js +;// CONCATENATED MODULE: ./src/common/mapping/WebMapBase.js function WebMapBase_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function WebMapBase_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? WebMapBase_ownKeys(Object(t), !0).forEach(function (r) { WebMapBase_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : WebMapBase_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function WebMapBase_defineProperty(e, r, t) { return (r = WebMapBase_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } @@ -159903,7 +160559,19 @@ function createWebMapBaseExtending(SuperClass, _ref) { }, { key: "getPopupInfos", value: function getPopupInfos() { - return this._handler._getPopupInfos() || []; + return this._handler && this._handler._getPopupInfos() || []; + } + + /** + * @version 11.3.0 + * @function WebMapBase.prototype.getLegendInfos + * @description 获取地图本身所有图层的legend状态。 + * @returns {Array} 图例信息数组,包含 showLegend、id、title 三个属性。 + */ + }, { + key: "getLegendInfos", + value: function getLegendInfos() { + return this._handler && this._handler._getLegendInfos() || []; } /** @@ -160050,20 +160718,39 @@ function createWebMapBaseExtending(SuperClass, _ref) { * @version 11.2.1 * @function WebMapBase.prototype.cleanLayers * @description 删除追加的图层和事件。当设置 `map` 时有效 + * @param {Array} [layersToClean] - 要删除的图层数组,默认为所有可删除的缓存图层(非 reused)。每个图层对象包含 id 属性 + * @param {boolean} [isClean=true] - 是否调用 clean(false) 销毁内部资源。为 false 时只删除指定图层并同步清理 legends */ }, { key: "cleanLayers", value: function cleanLayers() { + var layersToClean = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._cacheCleanLayers.filter(function (item) { + return !item.reused; + }); + var isClean = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; // 清空追加的地图图层以及对应的事件 if (!this.map) { return; } - var layersToClean = this._cacheCleanLayers.filter(function (item) { + var cacheLayers = this._cacheCleanLayers.filter(function (item) { return !item.reused; }); this._handler && this._handler.cleanLayers(layersToClean); - this._cacheCleanLayers = []; - this.clean(false); + this._cacheCleanLayers = cacheLayers.filter(function (item) { + return !layersToClean.some(function (item1) { + return item1.id === item.id; + }); + }); + if (isClean) { + this.clean(false); + } else { + var legends = this.getLegends(); + this._handler.setLegends(legends.filter(function (item) { + return !layersToClean.some(function (item1) { + return item1.id === item.layerId; + }); + })); + } } /** @@ -160351,8 +161038,7 @@ function createWebMapBaseExtending(SuperClass, _ref) { }]); }(SuperClass); } -;// ./src/common/mapping/WebMapV2.js -function _regeneratorKeys(e) { var n = Object(e), r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; } +;// CONCATENATED MODULE: ./src/common/mapping/WebMapV2.js function WebMapV2_typeof(o) { "@babel/helpers - typeof"; return WebMapV2_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebMapV2_typeof(o); } function WebMapV2_slicedToArray(r, e) { return WebMapV2_arrayWithHoles(r) || WebMapV2_iterableToArrayLimit(r, e) || WebMapV2_unsupportedIterableToArray(r, e) || WebMapV2_nonIterableRest(); } function WebMapV2_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -160368,8 +161054,7 @@ function WebMapV2_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r function WebMapV2_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function WebMapV2_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? WebMapV2_ownKeys(Object(t), !0).forEach(function (r) { WebMapV2_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : WebMapV2_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function WebMapV2_defineProperty(e, r, t) { return (r = WebMapV2_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } -function WebMapV2_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return WebMapV2_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (WebMapV2_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, WebMapV2_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, WebMapV2_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), WebMapV2_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", WebMapV2_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), WebMapV2_regeneratorDefine2(u), WebMapV2_regeneratorDefine2(u, o, "Generator"), WebMapV2_regeneratorDefine2(u, n, function () { return this; }), WebMapV2_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (WebMapV2_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function WebMapV2_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } WebMapV2_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { WebMapV2_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, WebMapV2_regeneratorDefine2(e, r, n, t); } +function WebMapV2_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ WebMapV2_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == WebMapV2_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(WebMapV2_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function WebMapV2_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function WebMapV2_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { WebMapV2_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { WebMapV2_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function WebMapV2_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -160381,7 +161066,7 @@ function WebMapV2_callSuper(t, o, e) { return o = WebMapV2_getPrototypeOf(o), We function WebMapV2_possibleConstructorReturn(t, e) { if (e && ("object" == WebMapV2_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return WebMapV2_assertThisInitialized(t); } function WebMapV2_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function WebMapV2_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (WebMapV2_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function WebMapV2_superPropGet(t, o, e, r) { var p = WebMapV2_get(WebMapV2_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function WebMapV2_superPropGet(t, e, o, r) { var p = WebMapV2_get(WebMapV2_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function WebMapV2_get() { return WebMapV2_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = WebMapV2_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, WebMapV2_get.apply(null, arguments); } function WebMapV2_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = WebMapV2_getPrototypeOf(t));); return t; } function WebMapV2_getPrototypeOf(t) { return WebMapV2_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, WebMapV2_getPrototypeOf(t); } @@ -160452,45 +161137,50 @@ function createWebMapV2Extending(SuperClass, _ref) { return WebMapV2_createClass(WebMapV2, [{ key: "initializeMap", value: function () { - var _initializeMap = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee(mapInfo, map) { - var _t; - return WebMapV2_regenerator().w(function (_context) { - while (1) switch (_context.p = _context.n) { + var _initializeMap = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee(mapInfo, map) { + var fontFamilys; + return WebMapV2_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - _context.p = 0; - _context.n = 1; + _context.prev = 0; + _context.next = 3; return this._registerMapCRS(mapInfo); - case 1: - this.baseProjection = _context.v; + case 3: + this.baseProjection = _context.sent; if (!map) { - _context.n = 3; + _context.next = 11; break; } if (!(!crsManager.isSameProjection(map, this.baseProjection) && !this.ignoreBaseProjection)) { - _context.n = 2; + _context.next = 8; break; } this.fire('projectionnotmatch'); - return _context.a(2); - case 2: + return _context.abrupt("return"); + case 8: this._appendLayers = true; this.map = map; - case 3: + if (this.map.addLocalIdeographFontFamily) { + fontFamilys = this._getLabelFontFamily(mapInfo); + this.map.addLocalIdeographFontFamily(fontFamilys); + } + case 11: this._mapInfo = mapInfo; this._loadLayers(mapInfo, this._taskID); - _context.n = 5; + _context.next = 19; break; - case 4: - _context.p = 4; - _t = _context.v; - console.error(_t); + case 15: + _context.prev = 15; + _context.t0 = _context["catch"](0); + console.error(_context.t0); this.fire('mapcreatefailed', { - error: _t + error: _context.t0 }); - case 5: - return _context.a(2); + case 19: + case "end": + return _context.stop(); } - }, _callee, this, [[0, 4]]); + }, _callee, this, [[0, 15]]); })); function initializeMap(_x, _x2) { return _initializeMap.apply(this, arguments); @@ -160561,10 +161251,10 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_registerMapCRS", value: function () { - var _registerMapCRS2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee2(mapInfo) { - var projection, _mapInfo$extent, extent, _mapInfo$baseLayer, baseLayer, epsgCode, crs, url, res, boundsRes, _extent, _t2; - return WebMapV2_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + var _registerMapCRS2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee2(mapInfo) { + var projection, _mapInfo$extent, extent, _mapInfo$baseLayer, baseLayer, epsgCode, crs, url, res, boundsRes, _extent; + return WebMapV2_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: projection = mapInfo.projection, _mapInfo$extent = mapInfo.extent, extent = _mapInfo$extent === void 0 ? { leftBottom: {}, @@ -160577,65 +161267,68 @@ function createWebMapV2Extending(SuperClass, _ref) { wkt: this._getProjectionWKT(projection) }; if (crsManager.getCRS(epsgCode)) { - _context2.n = 9; + _context2.next = 28; break; } - _t2 = baseLayer.layerType; - _context2.n = _t2 === 'MAPBOXSTYLE' ? 1 : _t2 === 'TILE' ? 3 : _t2 === 'ZXY_TILE' ? 7 : 8; + _context2.t0 = baseLayer.layerType; + _context2.next = _context2.t0 === 'MAPBOXSTYLE' ? 7 : _context2.t0 === 'TILE' ? 14 : _context2.t0 === 'ZXY_TILE' ? 23 : 26; break; - case 1: + case 7: url = baseLayer.dataSource.url; if (url.indexOf('/restjsr/') > -1 && !/\/style\.json$/.test(url)) { - url = Util.urlPathAppend(url, '/style.json'); + url = Util_Util.urlPathAppend(url, '/style.json'); } - _context2.n = 2; + _context2.next = 11; return this.webMapService.getMapBoxStyle(url); - case 2: - res = _context2.v; + case 11: + res = _context2.sent; if (res && res.metadata && res.metadata.indexbounds) { crs.extent = res.metadata.indexbounds; } - return _context2.a(3, 9); - case 3: + return _context2.abrupt("break", 28); + case 14: if (crs.wkt) { - _context2.n = 5; + _context2.next = 18; break; } - _context2.n = 4; - return this.getEpsgCodeWKT(Util.urlPathAppend(baseLayer.url, '/prjCoordSys.wkt'), { + _context2.next = 17; + return this.getEpsgCodeWKT(Util_Util.urlPathAppend(baseLayer.url, '/prjCoordSys.wkt'), { withoutFormatSuffix: true, withCredentials: this.webMapService.handleWithCredentials('', baseLayer.url, false) }); - case 4: - crs.wkt = _context2.v; - case 5: - _context2.n = 6; + case 17: + crs.wkt = _context2.sent; + case 18: + _context2.next = 20; return this.getBounds("".concat(baseLayer.url, ".json"), { withoutFormatSuffix: true, withCredentials: this.webMapService.handleWithCredentials('', baseLayer.url, false) }); - case 6: - boundsRes = _context2.v; + case 20: + boundsRes = _context2.sent; if (boundsRes && boundsRes.bounds) { crs.extent = [boundsRes.bounds.leftBottom.x, boundsRes.bounds.leftBottom.y, boundsRes.bounds.rightTop.x, boundsRes.bounds.rightTop.y]; } - return _context2.a(3, 9); - case 7: + return _context2.abrupt("break", 28); + case 23: _extent = this._getZXYTileCrsExtent(baseLayer); crs.extent = _extent; - return _context2.a(3, 9); - case 8: + return _context2.abrupt("break", 28); + case 26: crs = null; - return _context2.a(3, 9); - case 9: + return _context2.abrupt("break", 28); + case 28: if (crs) { - _context2.n = 10; + _context2.next = 30; break; } throw new Error('Unsupported coordinate system!'); - case 10: + case 30: crsManager.registerCRS(crs); - return _context2.a(2, epsgCode); + return _context2.abrupt("return", epsgCode); + case 32: + case "end": + return _context2.stop(); } }, _callee2, this); })); @@ -160690,6 +161383,22 @@ function createWebMapV2Extending(SuperClass, _ref) { return item !== null; }); } + }, { + key: "_getLegendInfos", + value: function _getLegendInfos() { + var _this$_mapInfo$layers2 = this._mapInfo.layers, + layers = _this$_mapInfo$layers2 === void 0 ? [] : _this$_mapInfo$layers2; + return layers.map(function (layer) { + var legendSetting = layer.legendSetting, + name = layer.name, + layerId = layer.layerID; + return { + showLegend: legendSetting ? legendSetting.isShow : false, + id: layerId, + title: name + }; + }); + } }, { key: "_handleLayerInfo", value: function _handleLayerInfo(mapInfo, _taskID) { @@ -160753,10 +161462,10 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_getScales", value: function () { - var _getScales2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee3(mapInfo) { - var baseLayerInfo, scales, coordUnit, visibleScales, reqOptions, res, result, visibleResolution, extent, resolutions, _iterator, _step, _res, scale, _t3, _t4; - return WebMapV2_regenerator().w(function (_context3) { - while (1) switch (_context3.p = _context3.n) { + var _getScales2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee3(mapInfo) { + var baseLayerInfo, scales, coordUnit, visibleScales, reqOptions, res, result, visibleResolution, extent, resolutions, _iterator, _step, _res, scale; + return WebMapV2_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: baseLayerInfo = mapInfo.baseLayer; scales = []; @@ -160766,30 +161475,30 @@ function createWebMapV2Extending(SuperClass, _ref) { } visibleScales = null; if (!(baseLayerInfo.layerType === 'TILE')) { - _context3.n = 4; + _context3.next = 17; break; } - _context3.p = 1; + _context3.prev = 6; reqOptions = { withoutFormatSuffix: true, withCredentials: this.webMapService.handleWithCredentials('', baseLayerInfo.url, false) }; - _context3.n = 2; + _context3.next = 10; return this.getBounds("".concat(baseLayerInfo.url, ".json"), reqOptions); - case 2: - res = _context3.v; + case 10: + res = _context3.sent; if (res && res.visibleScales) { visibleScales = res.visibleScales; } - _context3.n = 4; + _context3.next = 17; break; - case 3: - _context3.p = 3; - _t3 = _context3.v; - console.error(_t3); - case 4: + case 14: + _context3.prev = 14; + _context3.t0 = _context3["catch"](6); + console.error(_context3.t0); + case 17: if (!(visibleScales && visibleScales.length > 0)) { - _context3.n = 5; + _context3.next = 21; break; } //底部设置过固定比例尺,则使用设置的 @@ -160797,35 +161506,35 @@ function createWebMapV2Extending(SuperClass, _ref) { var value = 1 / scale; scales.push("1:".concat(value)); }); - _context3.n = 11; + _context3.next = 35; break; - case 5: + case 21: if (!(baseLayerInfo.layerType === 'WMTS')) { - _context3.n = 10; + _context3.next = 34; break; } - _context3.p = 6; - _context3.n = 7; + _context3.prev = 22; + _context3.next = 25; return this.webMapService.getWmtsInfo(baseLayerInfo, this.baseProjection); - case 7: - result = _context3.v; + case 25: + result = _context3.sent; result.scales.forEach(function (scale) { scales.push("1:".concat(scale)); }); - _context3.n = 9; + _context3.next = 32; break; - case 8: - _context3.p = 8; - _t4 = _context3.v; - console.error(_t4); - case 9: - _context3.n = 11; + case 29: + _context3.prev = 29; + _context3.t1 = _context3["catch"](22); + console.error(_context3.t1); + case 32: + _context3.next = 35; break; - case 10: + case 34: if (baseLayerInfo.layerType === 'ZXY_TILE') { visibleResolution = baseLayerInfo.resolutions; visibleResolution.forEach(function (result) { - var currentScale = '1:' + Util.getScaleFromResolution(result, coordUnit); + var currentScale = '1:' + Util_Util.getScaleFromResolution(result, coordUnit); scales.push(currentScale); }); } else { @@ -160838,7 +161547,7 @@ function createWebMapV2Extending(SuperClass, _ref) { try { for (_iterator.s(); !(_step = _iterator.n()).done;) { _res = _step.value; - scale = '1:' + Util.getScaleFromResolution(_res, coordUnit); + scale = '1:' + Util_Util.getScaleFromResolution(_res, coordUnit); if (scales.indexOf(scale) === -1) { scales.push(scale); } @@ -160849,10 +161558,13 @@ function createWebMapV2Extending(SuperClass, _ref) { _iterator.f(); } } - case 11: - return _context3.a(2, scales); + case 35: + return _context3.abrupt("return", scales); + case 36: + case "end": + return _context3.stop(); } - }, _callee3, this, [[6, 8], [1, 3]]); + }, _callee3, this, [[6, 14], [22, 29]]); })); function _getScales(_x4) { return _getScales2.apply(this, arguments); @@ -160870,11 +161582,11 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_createMap", value: function () { - var _createMap2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee4(mapInfo) { + var _createMap2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee4(mapInfo) { var _this4 = this; var fontFamilys, center, zoom, zoomBase, _this$mapOptions, bounds, minZoom, maxZoom, interactive, tileSize, _ref2, scales; - return WebMapV2_regenerator().w(function (_context4) { - while (1) switch (_context4.n) { + return WebMapV2_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: // 获取字体样式 fontFamilys = this._getLabelFontFamily(mapInfo); @@ -160899,25 +161611,25 @@ function createWebMapV2Extending(SuperClass, _ref) { maxZoom = _ref2[1]; } if (bounds) { - _context4.n = 4; + _context4.next = 21; break; } if (!(mapInfo.minScale && mapInfo.maxScale)) { - _context4.n = 2; + _context4.next = 19; break; } - _context4.n = 1; + _context4.next = 15; return this._getScales(mapInfo); - case 1: - scales = _context4.v; + case 15: + scales = _context4.sent; zoomBase = Math.min(this._transformScaleToZoom(scales[0] || mapInfo.minScale, mapRepo.CRS.get(this.baseProjection), tileSize), this._transformScaleToZoom(mapInfo.maxScale, mapRepo.CRS.get(this.baseProjection), tileSize)); - _context4.n = 3; + _context4.next = 20; break; - case 2: + case 19: zoomBase = +Math.log2(this._getResolution(mapRepo.CRS.get(this.baseProjection).getExtent()) / this._getResolution(mapInfo.extent)).toFixed(2); - case 3: + case 20: zoom += zoomBase; - case 4: + case 21: // 初始化 map this.map = new MapManager(WebMapV2_objectSpread(WebMapV2_objectSpread({}, this.mapOptions), {}, { container: this.target, @@ -160961,8 +161673,9 @@ function createWebMapV2Extending(SuperClass, _ref) { this.fire('mapinitialized', { map: this.map }); - case 5: - return _context4.a(2); + case 23: + case "end": + return _context4.stop(); } }, _callee4, this); })); @@ -160977,7 +161690,7 @@ function createWebMapV2Extending(SuperClass, _ref) { var _this5 = this; var url = layerInfo.dataSource.url; if (url.indexOf('/restjsr/') > -1 && !/\/style\.json$/.test(url)) { - url = Util.urlPathAppend(url, '/style.json'); + url = Util_Util.urlPathAppend(url, '/style.json'); } var withoutFormatSuffix = url.indexOf('/restjsr/') === -1; this.webMapService.getMapBoxStyle(url, withoutFormatSuffix).then(function (style) { @@ -161099,7 +161812,7 @@ function createWebMapV2Extending(SuperClass, _ref) { maxScale = _layer$visibleScale.maxScale; var crs = _this6.map.getCRS(); layer.minzoom = Math.max(_this6._transformScaleToZoom(minScale, crs, layer.tileSize), 0); - layer.maxzoom = Math.min(_this6.map.getMaxZoom() + 1, _this6._transformScaleToZoom(maxScale, crs, layer.tileSize) + 0.0000001); + layer.maxzoom = Math.min(_this6.map.getMaxZoom() + 1, _this6._transformScaleToZoom(maxScale, crs, layer.tileSize) + 0.0000001, 24); } if (type === 'tile') { if (layer.autoUpdateTime) { @@ -161334,24 +162047,24 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_createBingLayer", value: function () { - var _createBingLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee5(layerName, layerInfo, addedCallback) { + var _createBingLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee5(layerName, layerInfo, addedCallback) { var metaInfoUrl, metaInfo, resource, urls; - return WebMapV2_regenerator().w(function (_context5) { - while (1) switch (_context5.n) { + return WebMapV2_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { case 0: metaInfoUrl = "https://dev.virtualearth.net/REST/v1/Imagery/Metadata/RoadOnDemand?uriScheme=https&include=ImageryProviders&key=".concat(this.bingMapsKey, "&c=zh-cn"); - _context5.n = 1; + _context5.next = 3; return this._fetchRequest(metaInfoUrl, 'json', { withoutFormatSuffix: true }); - case 1: - metaInfo = _context5.v; + case 3: + metaInfo = _context5.sent; if (!(metaInfo.statusCode !== 200 || metaInfo.resourceSets.length !== 1 || metaInfo.resourceSets[0].resources.length !== 1)) { - _context5.n = 2; + _context5.next = 6; break; } - return _context5.a(2); - case 2: + return _context5.abrupt("return"); + case 6: resource = metaInfo.resourceSets[0].resources[0]; urls = resource.imageUrlSubdomains.map(function (subdomain) { var imageUrl = resource.imageUrl.replace('{subdomain}', subdomain); @@ -161364,8 +162077,9 @@ function createWebMapV2Extending(SuperClass, _ref) { bounds: INTERNET_MAP_BOUNDS['BING'] }); addedCallback && addedCallback(); - case 3: - return _context5.a(2); + case 10: + case "end": + return _context5.stop(); } }, _callee5, this); })); @@ -161551,10 +162265,10 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_createDynamicTiledLayer", value: function () { - var _createDynamicTiledLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee6(layerInfo, addedCallback) { + var _createDynamicTiledLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee6(layerInfo, addedCallback) { var url, layerId, minzoom, maxzoom, requestUrl, token, reqOptions, boundsRequestUrl, res, bounds, epsgCode, _this$_unproject, _this$_unproject2, left, bottom, _this$_unproject3, _this$_unproject4, right, top, nextBoundsRequestUrl; - return WebMapV2_regenerator().w(function (_context6) { - while (1) switch (_context6.n) { + return WebMapV2_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { case 0: url = layerInfo.url; layerId = layerInfo.layerID || layerInfo.name; @@ -161562,47 +162276,50 @@ function createWebMapV2Extending(SuperClass, _ref) { requestUrl = url; if (layerInfo.credential && layerInfo.credential.token) { token = layerInfo.credential.token; - requestUrl = Util.urlAppend(requestUrl, "token=".concat(token)); + requestUrl = Util_Util.urlAppend(requestUrl, "token=".concat(token)); } reqOptions = { withoutFormatSuffix: true, withCredentials: this.webMapService.handleWithCredentials('', requestUrl, false) }; - boundsRequestUrl = Util.handleUrlSuffix(requestUrl, '.json'); - _context6.n = 1; + boundsRequestUrl = Util_Util.handleUrlSuffix(requestUrl, '.json'); + _context6.next = 9; return this.getBounds(boundsRequestUrl, reqOptions); - case 1: - res = _context6.v; + case 9: + res = _context6.sent; bounds = null; if (!(res && res.bounds)) { - _context6.n = 4; + _context6.next = 26; break; } bounds = this._getBoundList(res); epsgCode = res.prjCoordSys.epsgCode; if (!(epsgCode !== 4326)) { - _context6.n = 4; + _context6.next = 26; break; } if (!("EPSG:".concat(epsgCode) === this.baseProjection || this._mapInfo.baseLayer.url === url)) { - _context6.n = 2; + _context6.next = 21; break; } _this$_unproject = this._unproject([res.bounds.left, res.bounds.bottom]), _this$_unproject2 = WebMapV2_slicedToArray(_this$_unproject, 2), left = _this$_unproject2[0], bottom = _this$_unproject2[1]; _this$_unproject3 = this._unproject([res.bounds.right, res.bounds.top]), _this$_unproject4 = WebMapV2_slicedToArray(_this$_unproject3, 2), right = _this$_unproject4[0], top = _this$_unproject4[1]; bounds = [left, bottom, right, top]; - _context6.n = 4; + _context6.next = 26; break; - case 2: - nextBoundsRequestUrl = Util.urlAppend(boundsRequestUrl, "prjCoordSys=".concat(JSON.stringify({ + case 21: + nextBoundsRequestUrl = Util_Util.urlAppend(boundsRequestUrl, "prjCoordSys=".concat(JSON.stringify({ epsgCode: 4326 }))); - _context6.n = 3; + _context6.next = 24; return this.getBounds(nextBoundsRequestUrl, reqOptions); - case 3: - res = _context6.v; + case 24: + res = _context6.sent; bounds = this._getBoundList(res); - case 4: + case 26: + if (bounds && !this._isValidBounds(bounds)) { + bounds = null; + } this._addBaselayer({ url: [requestUrl], layerID: layerId, @@ -161613,12 +162330,13 @@ function createWebMapV2Extending(SuperClass, _ref) { bounds: bounds }); addedCallback && addedCallback(); - case 5: - return _context6.a(2); + case 29: + case "end": + return _context6.stop(); } }, _callee6, this); })); - function _createDynamicTiledLayer(_x9, _x0) { + function _createDynamicTiledLayer(_x9, _x10) { return _createDynamicTiledLayer2.apply(this, arguments); } return _createDynamicTiledLayer; @@ -161626,12 +162344,12 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_createWMSLayer", value: function _createWMSLayer(layerInfo, addedCallback) { - var _this0 = this; + var _this10 = this; this.webMapService.getWmsInfo(layerInfo).then(function (result) { var layerId = layerInfo.layerID || layerInfo.name; if (result) { - var wmsUrl = _this0._getWMSUrl(layerInfo, result.version); - _this0._addBaselayer({ + var wmsUrl = _this10._getWMSUrl(layerInfo, result.version); + _this10._addBaselayer({ url: [wmsUrl], layerID: layerId, visibility: layerInfo.visible, @@ -161643,17 +162361,17 @@ function createWebMapV2Extending(SuperClass, _ref) { addedCallback && addedCallback(); throw new Error(error); })["catch"](function (error) { - _this0.fire('layercreatefailed', { + _this10.fire('layercreatefailed', { error: error, layer: layerInfo, - map: _this0.map + map: _this10.map }); }); } }, { key: "_createVectorLayer", value: function _createVectorLayer(layerInfo, features) { - var _this1 = this; + var _this11 = this; var type = layerInfo.featureType; var layerID = layerInfo.layerID, minzoom = layerInfo.minzoom, @@ -161692,13 +162410,13 @@ function createWebMapV2Extending(SuperClass, _ref) { } styleArr.forEach(function (element, index) { var layerStyle = { - style: _this1._transformStyleToMapBoxGl(element, type), + style: _this11._transformStyleToMapBoxGl(element, type), layout: { visibility: visible } }; var newLayerID = index === 0 ? layerID : "".concat(layerID, "-additional-").concat(index); - _this1._addOverlayToMap({ + _this11._addOverlayToMap({ type: type, source: layerID, layerID: newLayerID, @@ -161750,12 +162468,12 @@ function createWebMapV2Extending(SuperClass, _ref) { } else { options.srs = this.baseProjection; } - return Util.urlAppend(url, this._getParamString(options, url)); + return Util_Util.urlAppend(url, this._getParamString(options, url)); } }, { key: "_setLayerID", value: function _setLayerID(mapInfo) { - var _this10 = this; + var _this12 = this; var sumInfo = {}; var baseLayer = mapInfo.baseLayer, _mapInfo$layers = mapInfo.layers, @@ -161781,14 +162499,14 @@ function createWebMapV2Extending(SuperClass, _ref) { sumInfo[layer.name] = sumInfo[layer.name] + 1; } var layerID = sumInfo[layer.name] ? "".concat(layer.name, "-").concat(sumInfo[layer.name]) : layer.name; - if (!_this10.checkSameLayer || layer.layerType !== 'raster') { - var _this10$_generateUniq = _this10._generateUniqueLayerId({ + if (!_this12.checkSameLayer || layer.layerType !== 'raster') { + var _this12$_generateUniq = _this12._generateUniqueLayerId({ layerId: layerID, repeatIndex: sumInfo[layer.name], layerType: layer.layerType }), - newId = _this10$_generateUniq.newId, - newIndex = _this10$_generateUniq.newIndex; + newId = _this12$_generateUniq.newId, + newIndex = _this12$_generateUniq.newIndex; sumInfo[layer.name] = newIndex; layerID = newId; } @@ -161834,10 +162552,10 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_createRestMapLayer", value: function _createRestMapLayer(restMaps, layer) { - var _this11 = this; + var _this13 = this; restMaps.forEach(function (restMapInfo) { - layer = _this11.getRestMapLayerInfo(restMapInfo, layer); - _this11._initBaseLayer(layer); + layer = _this13.getRestMapLayerInfo(restMapInfo, layer); + _this13._initBaseLayer(layer); }); this._addLayerSucceeded(); } @@ -161918,14 +162636,14 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_addDataflowLayer", value: function () { - var _addDataflowLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee7(layerInfo, feature) { + var _addDataflowLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee7(layerInfo, feature) { var layerID, layerStyle, iconRotateExpression, labelSymbolLayerId, geometry, lineFeature; - return WebMapV2_regenerator().w(function (_context7) { - while (1) switch (_context7.n) { + return WebMapV2_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { case 0: layerID = layerInfo.layerID; if (!(layerInfo.layerType === 'DATAFLOW_HEAT')) { - _context7.n = 1; + _context7.next = 5; break; } if (!this.map.getSource(layerID)) { @@ -161933,33 +162651,33 @@ function createWebMapV2Extending(SuperClass, _ref) { } else { this._updateDataFlowFeature(layerID, feature, layerInfo); } - _context7.n = 7; + _context7.next = 20; break; - case 1: + case 5: layerStyle = layerInfo.pointStyle; layerInfo.style = layerStyle; if (this.map.getSource(layerID)) { - _context7.n = 5; + _context7.next = 17; break; } iconRotateExpression = this._getDataFlowRotateStyle([feature], layerInfo.directionField, layerInfo.identifyField); if (!['BASIC_POINT', 'SVG_POINT', 'IMAGE_POINT'].includes(layerStyle.type)) { - _context7.n = 3; + _context7.next = 14; break; } - _context7.n = 2; + _context7.next = 12; return this._createGraphicLayer(layerInfo, [feature], null, iconRotateExpression, false); - case 2: - _context7.n = 4; + case 12: + _context7.next = 15; break; - case 3: + case 14: this._createSymbolLayer(layerInfo, [feature], null, iconRotateExpression, false); - case 4: - _context7.n = 6; + case 15: + _context7.next = 18; break; - case 5: + case 17: this._updateDataFlowFeature(layerID, feature, layerInfo, 'point'); - case 6: + case 18: if (layerInfo.labelStyle && layerInfo.visible) { labelSymbolLayerId = this._getSymbolLabelLayerName(layerID); if (!this.map.getSource(labelSymbolLayerId)) { @@ -161990,12 +162708,13 @@ function createWebMapV2Extending(SuperClass, _ref) { this._updateDataFlowFeature(layerID + '-line', feature, layerInfo, 'line'); } } - case 7: - return _context7.a(2); + case 20: + case "end": + return _context7.stop(); } }, _callee7, this); })); - function _addDataflowLayer(_x1, _x10) { + function _addDataflowLayer(_x11, _x12) { return _addDataflowLayer2.apply(this, arguments); } return _addDataflowLayer; @@ -162260,7 +162979,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }, layout: layout, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24) }, layerInfo.layerID); } }, { @@ -162308,7 +163027,7 @@ function createWebMapV2Extending(SuperClass, _ref) { visibility: layerInfo.visible }, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24) }; if (filter) { layerOptions.filter = filter; @@ -162328,17 +163047,17 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_createGraphicLayer", value: function () { - var _createGraphicLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee8(layerInfo, features, iconSizeExpression, iconRotateExpression) { - var _this12 = this; + var _createGraphicLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee8(layerInfo, features, iconSizeExpression, iconRotateExpression) { + var _this14 = this; var addToMap, filter, _args8 = arguments; - return WebMapV2_regenerator().w(function (_context8) { - while (1) switch (_context8.n) { + return WebMapV2_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: addToMap = _args8.length > 4 && _args8[4] !== undefined ? _args8[4] : true; filter = _args8.length > 5 ? _args8[5] : undefined; - return _context8.a(2, new Promise(function (resolve) { + return _context8.abrupt("return", new Promise(function (resolve) { var layerID = layerInfo.layerID, minzoom = layerInfo.minzoom, maxzoom = layerInfo.maxzoom, @@ -162350,21 +163069,21 @@ function createWebMapV2Extending(SuperClass, _ref) { features: features } }; - if (!_this12.map.getSource(layerID)) { - _this12.map.addSource(layerID, source); + if (!_this14.map.getSource(layerID)) { + _this14.map.addSource(layerID, source); } else { - _this12.map.getSource(layerID).setData(source.data); + _this14.map.getSource(layerID).setData(source.data); } var iconID = "imageIcon-".concat(layerID); if (style.type === 'IMAGE_POINT') { var imageInfo = style.imageInfo; - _this12.map.loadImage(imageInfo.url, function (error, image) { + _this14.map.loadImage(imageInfo.url, function (error, image) { if (error) { console.error(error); return; } var iconSize = Number.parseFloat((style.radius / image.width).toFixed(2)) * 2; - !_this12.map.hasImage(iconID) && _this12.map.addImage(iconID, image); + !_this14.map.hasImage(iconID) && _this14.map.addImage(iconID, image); var layerOptions = { id: layerID, type: 'symbol', @@ -162379,14 +163098,14 @@ function createWebMapV2Extending(SuperClass, _ref) { 'icon-rotate': iconRotateExpression || (layerInfo.style.rotation || 0) * 180 / Math.PI }, minzoom: minzoom || 0, - maxzoom: maxzoom || _this12.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || _this14.map.getMaxZoom() + 1, 24) }; if (filter) { layerOptions.filter = filter; } - _this12._addLayer(layerOptions); + _this14._addLayer(layerOptions); if (addToMap) { - _this12._addLayerSucceeded({ + _this14._addLayerSucceeded({ layerInfo: layerInfo, features: features }); @@ -162395,14 +163114,14 @@ function createWebMapV2Extending(SuperClass, _ref) { }); } else if (style.type === 'SVG_POINT') { var svgUrl = style.url; - if (!_this12._svgDiv) { - _this12._svgDiv = document.createElement('div'); - document.body.appendChild(_this12._svgDiv); + if (!_this14._svgDiv) { + _this14._svgDiv = document.createElement('div'); + document.body.appendChild(_this14._svgDiv); } - _this12.getCanvasFromSVG(svgUrl, _this12._svgDiv, function (canvas) { + _this14.getCanvasFromSVG(svgUrl, _this14._svgDiv, function (canvas) { // this.handleSvgColor(style, canvas); var imgUrl = canvas.toDataURL('img/png'); - imgUrl && _this12.map.loadImage(imgUrl, function (error, image) { + imgUrl && _this14.map.loadImage(imgUrl, function (error, image) { if (error) { console.log(error); } @@ -162415,7 +163134,7 @@ function createWebMapV2Extending(SuperClass, _ref) { return item; }); } - !_this12.map.hasImage(svgUrl) && _this12.map.addImage(svgUrl, image, { + !_this14.map.hasImage(svgUrl) && _this14.map.addImage(svgUrl, image, { sdf: true }); var layerOptions = { @@ -162435,14 +163154,14 @@ function createWebMapV2Extending(SuperClass, _ref) { 'icon-color': style.fillColor }, minzoom: minzoom || 0, - maxzoom: maxzoom || _this12.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || _this14.map.getMaxZoom() + 1, 24) }; if (filter) { layerOptions.filter = filter; } - _this12._addLayer(layerOptions); + _this14._addLayer(layerOptions); if (addToMap) { - _this12._addLayerSucceeded({ + _this14._addLayerSucceeded({ layerInfo: layerInfo, features: features }); @@ -162452,12 +163171,12 @@ function createWebMapV2Extending(SuperClass, _ref) { }); } else { var layerStyle = { - style: _this12._transformStyleToMapBoxGl(style, layerInfo.featureType), + style: _this14._transformStyleToMapBoxGl(style, layerInfo.featureType), layout: { visibility: layerInfo.visible } }; - _this12._addOverlayToMap({ + _this14._addOverlayToMap({ type: 'POINT', source: layerID, layerID: layerID, @@ -162466,7 +163185,7 @@ function createWebMapV2Extending(SuperClass, _ref) { maxzoom: maxzoom }); if (addToMap) { - _this12._addLayerSucceeded({ + _this14._addLayerSucceeded({ layerInfo: layerInfo, features: features }); @@ -162474,10 +163193,13 @@ function createWebMapV2Extending(SuperClass, _ref) { resolve(); } })); + case 3: + case "end": + return _context8.stop(); } }, _callee8); })); - function _createGraphicLayer(_x11, _x12, _x13, _x14) { + function _createGraphicLayer(_x13, _x14, _x15, _x16) { return _createGraphicLayer2.apply(this, arguments); } return _createGraphicLayer; @@ -162485,11 +163207,11 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_createUniqueLayer", value: function () { - var _createUniqueLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regenerator().m(function _callee9(layerInfo, features) { - var _this13 = this; - var symbolConvertFunctionFactory, defaultValueFactory, styleGroup, layerID, minzoom, maxzoom, style, themeField, type, defultLayerStyle, expressionMap, customStyleMap, key, expression, defaultStyleItem, styleItem, fn, source, sourceID, visible, layerCreateFcuntion, lineDashExpression, defaultFilterExpression, handlerLine, fristName, filterField, tempLayerID, index, filterExpression, additionalLayerName, _defaultFilterExpression, unicodeExpression, classNameExpression, _additionalLayerName, _filterExpression, _index, target, symbolStyle, layerOptions, imageInfoExpression, urlExpression, imageList, imageExpresssion, svgExpresssion, imagefilterExpression, svgfilterExpression, _index2, element, _index3, _element, loadImagePromise, promiseList, _symbolStyle, tmpLayerInfo, _tmpLayerInfo, _t5, _t6; - return WebMapV2_regenerator().w(function (_context9) { - while (1) switch (_context9.n) { + var _createUniqueLayer2 = WebMapV2_asyncToGenerator(/*#__PURE__*/WebMapV2_regeneratorRuntime().mark(function _callee9(layerInfo, features) { + var _this15 = this; + var symbolConvertFunctionFactory, defaultValueFactory, styleGroup, layerID, minzoom, maxzoom, style, themeField, type, defultLayerStyle, expressionMap, customStyleMap, key, expression, defaultStyleItem, styleItem, fn, source, sourceID, visible, layerCreateFcuntion, lineDashExpression, defaultFilterExpression, handlerLine, fristName, filterField, tempLayerID, index, filterExpression, additionalLayerName, _defaultFilterExpression, unicodeExpression, classNameExpression, _additionalLayerName, _filterExpression, _index, target, symbolStyle, layerOptions, imageInfoExpression, urlExpression, imageList, imageExpresssion, svgExpresssion, imagefilterExpression, svgfilterExpression, _index2, element, _index3, _element, loadImagePromise, promiseList, _symbolStyle, tmpLayerInfo, _tmpLayerInfo; + return WebMapV2_regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { case 0: symbolConvertFunctionFactory = { unicode: function unicode(_ref5) { @@ -162517,13 +163239,13 @@ function createWebMapV2Extending(SuperClass, _ref) { strokeOpacity = _ref9.strokeOpacity; return ColorsPickerUtil.getColorWithOpacity(_strokeColor || 'rgba(0,0,0,0)', strokeOpacity); }, - strokeWidth: function strokeWidth(_ref0) { - var _strokeWidth = _ref0.strokeWidth; + strokeWidth: function strokeWidth(_ref10) { + var _strokeWidth = _ref10.strokeWidth; return _strokeWidth || 0; }, - offsetX: function offsetX(_ref1) { - var _offsetX = _ref1.offsetX, - offsetY = _ref1.offsetY; + offsetX: function offsetX(_ref11) { + var _offsetX = _ref11.offsetX, + offsetY = _ref11.offsetY; return [_offsetX / 2 || 0, offsetY / 2 || 0]; } }; @@ -162548,8 +163270,8 @@ function createWebMapV2Extending(SuperClass, _ref) { customStyleMap[style.value] = style; }); // 遍历要素,判断该要素是不是在自定义单值中,若是在对应样式match expression中增加改要素的索引 - features.forEach(function (_ref10) { - var properties = _ref10.properties; + features.forEach(function (_ref12) { + var properties = _ref12.properties; var customStyle = customStyleMap[properties[themeField]]; if (customStyle) { var itemStyle = customStyle.style; @@ -162567,24 +163289,24 @@ function createWebMapV2Extending(SuperClass, _ref) { } }); // 给每个expression增加最后一个默认值 - _t5 = _regeneratorKeys(expressionMap); - case 1: - if ((_t6 = _t5()).done) { - _context9.n = 4; + _context9.t0 = WebMapV2_regeneratorRuntime().keys(expressionMap); + case 13: + if ((_context9.t1 = _context9.t0()).done) { + _context9.next = 27; break; } - key = _t6.value; + key = _context9.t1.value; if (!Object.prototype.hasOwnProperty.call(expressionMap, key)) { - _context9.n = 3; + _context9.next = 25; break; } expression = expressionMap[key]; if (Array.isArray(expression)) { - _context9.n = 2; + _context9.next = 19; break; } - return _context9.a(3, 1); - case 2: + return _context9.abrupt("continue", 13); + case 19: defaultStyleItem = defultLayerStyle[key] || defaultValueFactory[key]; styleItem = WebMapV2_defineProperty({}, key, defaultStyleItem); // 从customsetting里取了透明度和color一起处理了,layerinfo.style里的透明度就不需要了 if (key === 'fillColor') { @@ -162597,10 +163319,10 @@ function createWebMapV2Extending(SuperClass, _ref) { } fn = symbolConvertFunctionFactory[key]; expression.push(defaultStyleItem === undefined ? null : fn && fn(styleItem) || defaultStyleItem); - case 3: - _context9.n = 1; + case 25: + _context9.next = 13; break; - case 4: + case 27: // Todo 图例相关 this._initLegendConfigInfo(layerInfo, styleGroup); source = { @@ -162617,23 +163339,23 @@ function createWebMapV2Extending(SuperClass, _ref) { this.map.getSource(sourceID).setData(source.data); } visible = layerInfo.visible; - layerCreateFcuntion = function layerCreateFcuntion(_ref11) { - var type = _ref11.type, - sourceID = _ref11.sourceID, - layerID = _ref11.layerID, - parentLayerId = _ref11.parentLayerId, - beforeId = _ref11.beforeId, - style = _ref11.style, - minzoom = _ref11.minzoom, - maxzoom = _ref11.maxzoom, - filter = _ref11.filter; + layerCreateFcuntion = function layerCreateFcuntion(_ref13) { + var type = _ref13.type, + sourceID = _ref13.sourceID, + layerID = _ref13.layerID, + parentLayerId = _ref13.parentLayerId, + beforeId = _ref13.beforeId, + style = _ref13.style, + minzoom = _ref13.minzoom, + maxzoom = _ref13.maxzoom, + filter = _ref13.filter; var layerStyle = { - style: _this13._transformStyleToMapBoxGl(WebMapV2_objectSpread({}, style), type), + style: _this15._transformStyleToMapBoxGl(WebMapV2_objectSpread({}, style), type), layout: { visibility: visible } }; - _this13._addOverlayToMap({ + _this15._addOverlayToMap({ type: type, source: sourceID, layerID: layerID, @@ -162646,7 +163368,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }); }; if (!['POLYGON', 'LINE'].includes(type)) { - _context9.n = 5; + _context9.next = 43; break; } // linedash不能用表达式处理,需用多个图层 @@ -162734,9 +163456,9 @@ function createWebMapV2Extending(SuperClass, _ref) { }); } } - _context9.n = 10; + _context9.next = 80; break; - case 5: + case 43: _defaultFilterExpression = ['all']; unicodeExpression = expressionMap.unicode; // SYMBOL_POINT if (unicodeExpression) { @@ -162774,7 +163496,7 @@ function createWebMapV2Extending(SuperClass, _ref) { visibility: visible }, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24) }; if (_filterExpression.length > 1) { layerOptions.filter = _filterExpression; @@ -162785,7 +163507,7 @@ function createWebMapV2Extending(SuperClass, _ref) { imageInfoExpression = expressionMap.imageInfo || []; urlExpression = expressionMap.url || []; if (!(imageInfoExpression.length > 0 || urlExpression.length > 0)) { - _context9.n = 6; + _context9.next = 66; break; } delete expressionMap.imageInfo; @@ -162816,33 +163538,33 @@ function createWebMapV2Extending(SuperClass, _ref) { loadImagePromise = function loadImagePromise(src) { return new Promise(function (resolve) { if (src.indexOf('svg') < 0) { - _this13.map.loadImage(src, function (error, image) { + _this15.map.loadImage(src, function (error, image) { if (error) { console.log(error); resolve(error); return; } - !_this13.map.hasImage(src) && _this13.map.addImage(src, image); + !_this15.map.hasImage(src) && _this15.map.addImage(src, image); resolve({ src: src, image: image }); }); } else { - if (!_this13._svgDiv) { - _this13._svgDiv = document.createElement('div'); - document.body.appendChild(_this13._svgDiv); + if (!_this15._svgDiv) { + _this15._svgDiv = document.createElement('div'); + document.body.appendChild(_this15._svgDiv); } - _this13.getCanvasFromSVG(src, _this13._svgDiv, function (canvas) { - _this13.handleSvgColor(defultLayerStyle, canvas); - _this13.map.loadImage(canvas.toDataURL('img/png'), function (error, image) { + _this15.getCanvasFromSVG(src, _this15._svgDiv, function (canvas) { + _this15.handleSvgColor(defultLayerStyle, canvas); + _this15.map.loadImage(canvas.toDataURL('img/png'), function (error, image) { if (error) { console.log(error); resolve(error); return; } // sdf: true 可以设置icon-color - !_this13.map.hasImage(src) && _this13.map.addImage(src, image, { + !_this15.map.hasImage(src) && _this15.map.addImage(src, image, { sdf: true }); resolve({ @@ -162859,7 +163581,7 @@ function createWebMapV2Extending(SuperClass, _ref) { promiseList.push(loadImagePromise(src)); }); _symbolStyle = WebMapV2_objectSpread(WebMapV2_objectSpread({}, style), expressionMap); - _context9.n = 6; + _context9.next = 66; return Promise.all(promiseList).then(function (images) { var imageSize = {}; var radiusMap = {}; @@ -162884,7 +163606,7 @@ function createWebMapV2Extending(SuperClass, _ref) { iconSizeExpression.push(iconSize); } iconSizeExpression.push(1); - _this13._addLayer({ + _this15._addLayer({ id: "".concat(layerID, "-additional-image"), type: 'symbol', source: sourceID, @@ -162898,7 +163620,7 @@ function createWebMapV2Extending(SuperClass, _ref) { 'icon-rotate': _symbolStyle.rotation || 0 }, minzoom: minzoom || 0, - maxzoom: maxzoom || _this13.map.getMaxZoom() + 1, + maxzoom: Math.min(maxzoom || _this15.map.getMaxZoom() + 1, 24), filter: imagefilterExpression }, layerID); } @@ -162912,7 +163634,7 @@ function createWebMapV2Extending(SuperClass, _ref) { _iconSizeExpression.push(_iconSize); } _iconSizeExpression.push(1); - _this13._addLayer({ + _this15._addLayer({ id: "".concat(layerID, "-additional-svg"), type: 'symbol', source: sourceID, @@ -162929,14 +163651,14 @@ function createWebMapV2Extending(SuperClass, _ref) { 'icon-color': _symbolStyle.fillColor }, minzoom: minzoom || 0, - maxzoom: maxzoom || _this13.map.getMaxZoom() + 1, + maxzoom: Math.min(maxzoom || _this15.map.getMaxZoom() + 1, 24), filter: svgfilterExpression }, layerID); } }); - case 6: + case 66: if (!(style.type === 'SYMBOL_POINT')) { - _context9.n = 7; + _context9.next = 72; break; } tmpLayerInfo = WebMapV2_objectSpread({}, layerInfo); @@ -162944,23 +163666,23 @@ function createWebMapV2Extending(SuperClass, _ref) { type: style.type }); this._createSymbolLayer(tmpLayerInfo, features, '', '', false, _defaultFilterExpression.length > 1 ? _defaultFilterExpression : undefined); - _context9.n = 10; + _context9.next = 80; break; - case 7: + case 72: if (!(style.type === 'IMAGE_POINT' || style.type === 'SVG_POINT')) { - _context9.n = 9; + _context9.next = 79; break; } _tmpLayerInfo = WebMapV2_objectSpread({}, layerInfo); _tmpLayerInfo.style = WebMapV2_objectSpread(WebMapV2_objectSpread(WebMapV2_objectSpread({}, style), expressionMap), {}, { type: style.type }); - _context9.n = 8; + _context9.next = 77; return this._createGraphicLayer(_tmpLayerInfo, features, '', '', false, _defaultFilterExpression.length > 1 ? _defaultFilterExpression : undefined); - case 8: - _context9.n = 10; + case 77: + _context9.next = 80; break; - case 9: + case 79: layerCreateFcuntion({ type: 'POINT', sourceID: sourceID, @@ -162970,17 +163692,18 @@ function createWebMapV2Extending(SuperClass, _ref) { maxzoom: maxzoom, filter: _defaultFilterExpression.length > 1 ? _defaultFilterExpression : undefined }); - case 10: + case 80: this._addLayerSucceeded({ layerInfo: layerInfo, features: features }); - case 11: - return _context9.a(2); + case 81: + case "end": + return _context9.stop(); } }, _callee9, this); })); - function _createUniqueLayer(_x15, _x16) { + function _createUniqueLayer(_x17, _x18) { return _createUniqueLayer2.apply(this, arguments); } return _createUniqueLayer; @@ -163003,12 +163726,12 @@ function createWebMapV2Extending(SuperClass, _ref) { tilerow: '{y}', tilecol: '{x}' }; - return Util.urlAppend(options.kvpResourceUrl, this._getParamString(obj, options.kvpResourceUrl)); + return Util_Util.urlAppend(options.kvpResourceUrl, this._getParamString(obj, options.kvpResourceUrl)); } }, { key: "_createMarkerLayer", value: function _createMarkerLayer(layerInfo, features) { - var _this14 = this; + var _this16 = this; var minzoom = layerInfo.minzoom, maxzoom = layerInfo.maxzoom; var markerLayerID = layerInfo.layerID; @@ -163024,7 +163747,7 @@ function createWebMapV2Extending(SuperClass, _ref) { var layerID = index === 0 ? markerLayerID : markerLayerID + '-' + geomType + '-' + index; if (geomType === 'POINT' && defaultStyle.src && defaultStyle.src.indexOf('http://') === -1 && defaultStyle.src.indexOf('https://') === -1) { // 说明地址不完整 - defaultStyle.src = _this14.serverUrl + defaultStyle.src; + defaultStyle.src = _this16.serverUrl + defaultStyle.src; } if (!markerSrc[layerID]) { markerSrc[layerID] = { @@ -163034,41 +163757,41 @@ function createWebMapV2Extending(SuperClass, _ref) { }; } }); - var loadImagePromise = function loadImagePromise(layerID, _ref12) { - var src = _ref12.src, - defaultStyle = _ref12.defaultStyle, - geomType = _ref12.geomType; + var loadImagePromise = function loadImagePromise(layerID, _ref14) { + var src = _ref14.src, + defaultStyle = _ref14.defaultStyle, + geomType = _ref14.geomType; return new Promise(function (resolve) { if (!src && geomType !== 'TEXT') { resolve(WebMapV2_defineProperty({}, layerID, undefined)); return; } if (src && src.indexOf('svg') < 0 && (src.startsWith('http://') || src.startsWith('https://'))) { - _this14.map.loadImage(src, function (error, image) { + _this16.map.loadImage(src, function (error, image) { if (error) { console.log(error); resolve(error); return; } - !_this14.map.hasImage(src) && _this14.map.addImage(src, image); + !_this16.map.hasImage(src) && _this16.map.addImage(src, image); resolve(WebMapV2_defineProperty({}, layerID, src)); }); } else { - if (!_this14._svgDiv) { - _this14._svgDiv = document.createElement('div'); - document.body.appendChild(_this14._svgDiv); + if (!_this16._svgDiv) { + _this16._svgDiv = document.createElement('div'); + document.body.appendChild(_this16._svgDiv); } - _this14.getCanvasFromSVG(src, _this14._svgDiv, function (canvas) { - _this14.handleSvgColor(defaultStyle, canvas); + _this16.getCanvasFromSVG(src, _this16._svgDiv, function (canvas) { + _this16.handleSvgColor(defaultStyle, canvas); var base64Url = canvas.toDataURL('img/png'); - _this14.map.loadImage(base64Url, function (error, image) { + _this16.map.loadImage(base64Url, function (error, image) { if (error) { console.log(error); resolve(error); return; } var srcUrl = src || base64Url; - !_this14.map.hasImage(srcUrl) && _this14.map.addImage(srcUrl, image); + !_this16.map.hasImage(srcUrl) && _this16.map.addImage(srcUrl, image); resolve(WebMapV2_defineProperty({}, layerID, srcUrl)); }); }); @@ -163088,7 +163811,7 @@ function createWebMapV2Extending(SuperClass, _ref) { // 说明是文字的feature类型 geomType = 'TEXT'; } - var featureInfo = _this14.setFeatureInfo(feature); + var featureInfo = _this16.setFeatureInfo(feature); feature.properties.useStyle = defaultStyle; feature.properties.featureInfo = featureInfo; var source = { @@ -163100,18 +163823,18 @@ function createWebMapV2Extending(SuperClass, _ref) { // image-marker svg-marker if (geomType === 'POINT' || geomType === 'TEXT') { if (!iconImageUrl) { - _this14._addLayer({ + _this16._addLayer({ id: _layerID, type: 'circle', source: source, - paint: _this14._transformStyleToMapBoxGl(defaultStyle, geomType), + paint: _this16._transformStyleToMapBoxGl(defaultStyle, geomType), layout: {}, minzoom: minzoom || 0, - maxzoom: maxzoom || _this14.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || _this16.map.getMaxZoom() + 1, 24) }, markerLayerID); continue; } - _this14._addLayer({ + _this16._addLayer({ id: _layerID, type: 'symbol', source: source, @@ -163122,14 +163845,14 @@ function createWebMapV2Extending(SuperClass, _ref) { visibility: layerInfo.visible }, minzoom: minzoom || 0, - maxzoom: maxzoom || _this14.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || _this16.map.getMaxZoom() + 1, 24) }, markerLayerID); } else { // line-polygon-marker var layerStyle = { layout: {}, // get style - style: _this14._transformStyleToMapBoxGl(defaultStyle, geomType) + style: _this16._transformStyleToMapBoxGl(defaultStyle, geomType) }; if (geomType === 'LINESTRING' && defaultStyle.lineCap) { geomType = 'LINE'; @@ -163139,7 +163862,7 @@ function createWebMapV2Extending(SuperClass, _ref) { } var _visible = layerInfo.visible; layerStyle.layout.visibility = _visible; - _this14._addOverlayToMap({ + _this16._addOverlayToMap({ type: geomType, source: source, layerID: _layerID, @@ -163149,7 +163872,7 @@ function createWebMapV2Extending(SuperClass, _ref) { maxzoom: maxzoom }); // 若面有边框 - geomType === 'POLYGON' && defaultStyle.strokeColor && _this14._addStrokeLineForPoly({ + geomType === 'POLYGON' && defaultStyle.strokeColor && _this16._addStrokeLineForPoly({ style: defaultStyle, source: _layerID, layerID: _layerID + '-strokeLine', @@ -163160,7 +163883,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }); } } - _this14._addLayerSucceeded({ + _this16._addLayerSucceeded({ layerInfo: layerInfo, features: features }); @@ -163187,10 +163910,10 @@ function createWebMapV2Extending(SuperClass, _ref) { layerOption.gradient.forEach(function (item, index) { color.push(step[index]); if (index === 0) { - item = Util.hexToRgba(item, 0); + item = Util_Util.hexToRgba(item, 0); } if (index === 1) { - item = Util.hexToRgba(item, 0.5); + item = Util_Util.hexToRgba(item, 0.5); } color.push(item); }); @@ -163226,7 +163949,7 @@ function createWebMapV2Extending(SuperClass, _ref) { visibility: layerInfo.visible }, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24) }); if (addToMap) { this._addLayerSucceeded({ @@ -163333,7 +164056,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "rectifyLayersOrder", value: function rectifyLayersOrder(appreciableLayers, topLayerBeforeId) { - var _this15 = this; + var _this17 = this; var exsitLayers = WebMapV2_superPropGet(WebMapV2, "rectifyLayersOrder", this, 3)([appreciableLayers, topLayerBeforeId]); var labelLayerIds = []; for (var index = exsitLayers.length - 1; index > -1; index--) { @@ -163344,7 +164067,7 @@ function createWebMapV2Extending(SuperClass, _ref) { } } labelLayerIds.reverse().forEach(function (layerId) { - _this15.map.moveLayer(layerId); + _this17.map.moveLayer(layerId); }); } }, { @@ -163437,16 +164160,16 @@ function createWebMapV2Extending(SuperClass, _ref) { */ }, { key: "_addOverlayToMap", - value: function _addOverlayToMap(_ref13) { - var type = _ref13.type, - source = _ref13.source, - layerID = _ref13.layerID, - parentLayerId = _ref13.parentLayerId, - beforeId = _ref13.beforeId, - layerStyle = _ref13.layerStyle, - minzoom = _ref13.minzoom, - maxzoom = _ref13.maxzoom, - filter = _ref13.filter; + value: function _addOverlayToMap(_ref15) { + var type = _ref15.type, + source = _ref15.source, + layerID = _ref15.layerID, + parentLayerId = _ref15.parentLayerId, + beforeId = _ref15.beforeId, + layerStyle = _ref15.layerStyle, + minzoom = _ref15.minzoom, + maxzoom = _ref15.maxzoom, + filter = _ref15.filter; var mbglTypeMap = { POINT: 'circle', LINE: 'line', @@ -163461,7 +164184,7 @@ function createWebMapV2Extending(SuperClass, _ref) { paint: layerStyle.style, layout: layerStyle.layout || {}, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24) }; if (filter) { style.filter = filter; @@ -163471,25 +164194,25 @@ function createWebMapV2Extending(SuperClass, _ref) { } }, { key: "_addBaselayer", - value: function _addBaselayer(_ref14) { - var url = _ref14.url, - layerID = _ref14.layerID, - parentLayerId = _ref14.parentLayerId, - _ref14$visibility = _ref14.visibility, - visibility = _ref14$visibility === void 0 ? true : _ref14$visibility, - _ref14$minzoom = _ref14.minzoom, - minzoom = _ref14$minzoom === void 0 ? 0 : _ref14$minzoom, - maxzoom = _ref14.maxzoom, - _ref14$isIserver = _ref14.isIserver, - isIserver = _ref14$isIserver === void 0 ? false : _ref14$isIserver, - _ref14$tileSize = _ref14.tileSize, - tileSize = _ref14$tileSize === void 0 ? 256 : _ref14$tileSize, - bounds = _ref14.bounds; + value: function _addBaselayer(_ref16) { + var url = _ref16.url, + layerID = _ref16.layerID, + parentLayerId = _ref16.parentLayerId, + _ref16$visibility = _ref16.visibility, + visibility = _ref16$visibility === void 0 ? true : _ref16$visibility, + _ref16$minzoom = _ref16.minzoom, + minzoom = _ref16$minzoom === void 0 ? 0 : _ref16$minzoom, + maxzoom = _ref16.maxzoom, + _ref16$isIserver = _ref16.isIserver, + isIserver = _ref16$isIserver === void 0 ? false : _ref16$isIserver, + _ref16$tileSize = _ref16.tileSize, + tileSize = _ref16$tileSize === void 0 ? 256 : _ref16$tileSize, + bounds = _ref16.bounds; var source = { type: 'raster', tiles: url, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1, + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24), tileSize: isIserver ? this.rasterTileSize : tileSize, rasterSource: isIserver ? 'iserver' : '', prjCoordSys: isIserver && !this.isOnlineBaseLayer(url[0], this.baseProjection) && +this.baseProjection.split(':')[1] > 0 ? { @@ -163510,7 +164233,7 @@ function createWebMapV2Extending(SuperClass, _ref) { type: 'raster', source: sourceId, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1, + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24), layout: { visibility: this._getVisibility(visibility) } @@ -163526,14 +164249,14 @@ function createWebMapV2Extending(SuperClass, _ref) { */ }, { key: "_addStrokeLineForPoly", - value: function _addStrokeLineForPoly(_ref15) { - var style = _ref15.style, - source = _ref15.source, - layerID = _ref15.layerID, - parentLayerId = _ref15.parentLayerId, - visible = _ref15.visible, - minzoom = _ref15.minzoom, - maxzoom = _ref15.maxzoom; + value: function _addStrokeLineForPoly(_ref17) { + var style = _ref17.style, + source = _ref17.source, + layerID = _ref17.layerID, + parentLayerId = _ref17.parentLayerId, + visible = _ref17.visible, + minzoom = _ref17.minzoom, + maxzoom = _ref17.maxzoom; var lineStyle = { style: this._transformStyleToMapBoxGl(style, 'LINE'), layout: { @@ -163561,7 +164284,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_initLegendConfigInfo", value: function _initLegendConfigInfo(layerInfo, style) { - var _this16 = this; + var _this18 = this; var legendItem = { layerId: layerInfo.layerID, layerTitle: layerInfo.layerID, @@ -163571,11 +164294,11 @@ function createWebMapV2Extending(SuperClass, _ref) { var commonStyleGroupMapping = function commonStyleGroupMapping(styleGroup, layerInfo) { var newStyleGroup = { style: { - shape: _this16._getShape(layerInfo.featureType), - type: _this16._getType(styleGroup.style.type) + shape: _this18._getShape(layerInfo.featureType), + type: _this18._getType(styleGroup.style.type) } }; - _this16._addProps(newStyleGroup, styleGroup); + _this18._addProps(newStyleGroup, styleGroup); return newStyleGroup; }; switch (layerInfo.layerType) { @@ -163712,7 +164435,7 @@ function createWebMapV2Extending(SuperClass, _ref) { visibility: layerInfo.visible ? 'visible' : 'none' }, minzoom: minzoom || 0, - maxzoom: maxzoom || this.map.getMaxZoom() + 1 + maxzoom: Math.min(maxzoom || this.map.getMaxZoom() + 1, 24) }); this._addLayerSucceeded(); } @@ -163761,6 +164484,38 @@ function createWebMapV2Extending(SuperClass, _ref) { // } return coor; } + + // 校验 bounds 是否为合法的经纬度范围(EPSG:4326) + // 不合法返回 false:值非数字/无穷、左>=右、下>=上、四个坐标都在 ±0.5 度内(认为退化为原点附近)、超出经纬度范围 + }, { + key: "_isValidBounds", + value: function _isValidBounds(bounds) { + if (!Array.isArray(bounds) || bounds.length !== 4) { + return false; + } + var _bounds = WebMapV2_slicedToArray(bounds, 4), + left = _bounds[0], + bottom = _bounds[1], + right = _bounds[2], + top = _bounds[3]; + if (![left, bottom, right, top].every(function (v) { + return typeof v === 'number' && Number.isFinite(v); + })) { + return false; + } + if (left >= right || bottom >= top) { + return false; + } + // 容差,吸收浮点计算误差(如 180.00000000000006) + var tolerance = 1e-6; + if (Math.abs(left) > 180 + tolerance || Math.abs(right) > 180 + tolerance || Math.abs(bottom) > 90 + tolerance || Math.abs(top) > 90 + tolerance) { + return false; + } + if (Math.abs(left) < 0.5 && Math.abs(right) < 0.5 && Math.abs(bottom) < 0.5 && Math.abs(top) < 0.5) { + return false; + } + return true; + } }, { key: "_getMapCenter", value: function _getMapCenter(mapInfo) { @@ -163818,7 +164573,7 @@ function createWebMapV2Extending(SuperClass, _ref) { width: 256, height: 256 }; - url = Util.urlAppend(url, this._getParamString(options, url) + '&tilematrix={z}&tilerow={y}&tilecol={x}'); + url = Util_Util.urlAppend(url, this._getParamString(options, url) + '&tilematrix={z}&tilerow={y}&tilecol={x}'); var tiandituUrl = url.replace('{layer}', layerType).replace('{proj}', tilematrixSet); var tiandituUrlArr = []; for (var i = 0; i < 8; i++) { @@ -163830,7 +164585,7 @@ function createWebMapV2Extending(SuperClass, _ref) { if (isLabel) { var labelLayer = layerLabelMap[layerType]; options.layer = labelLayer; - labelUrl = Util.urlAppend(labelUrl, this._getParamString(options, labelUrl) + '&tilematrix={z}&tilerow={y}&tilecol={x}'); + labelUrl = Util_Util.urlAppend(labelUrl, this._getParamString(options, labelUrl) + '&tilematrix={z}&tilerow={y}&tilecol={x}'); labelUrl = labelUrl.replace('{layer}', labelLayer).replace('{proj}', tilematrixSet); var labelUrlArr = []; for (var _i3 = 0; _i3 < 8; _i3++) { @@ -163915,14 +164670,14 @@ function createWebMapV2Extending(SuperClass, _ref) { } }, { key: "_setCacheLayer", - value: function _setCacheLayer(_ref16) { - var parentLayerId = _ref16.parentLayerId, - layerInfo = _ref16.layerInfo, - _ref16$reused = _ref16.reused, - reused = _ref16$reused === void 0 ? false : _ref16$reused, - beforeId = _ref16.beforeId, - subRenderLayers = _ref16.subRenderLayers, - metadata = _ref16.metadata; + value: function _setCacheLayer(_ref18) { + var parentLayerId = _ref18.parentLayerId, + layerInfo = _ref18.layerInfo, + _ref18$reused = _ref18.reused, + reused = _ref18$reused === void 0 ? false : _ref18$reused, + beforeId = _ref18.beforeId, + subRenderLayers = _ref18.subRenderLayers, + metadata = _ref18.metadata; var renderLayers = subRenderLayers || [{ layerId: layerInfo.id, reused: reused @@ -163959,7 +164714,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_findTopLayerBeforeId", value: function _findTopLayerBeforeId(selfAppreciableLayers) { - var _this17 = this; + var _this19 = this; // fix 追加图层,异步的图层回来排序错乱 var selfLayerIds = selfAppreciableLayers.filter(function (item) { return !item.reused; @@ -163967,7 +164722,7 @@ function createWebMapV2Extending(SuperClass, _ref) { return ids.concat(item.renderLayers); }, []); var firstSelfLayerIdOnMap = selfLayerIds.find(function (id) { - return _this17.map.style._layers[id]; + return _this19.map.style._layers[id]; }); if (!firstSelfLayerIdOnMap) { return; @@ -164011,7 +164766,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_changeSourceListModel", value: function _changeSourceListModel() { - var _this18 = this; + var _this20 = this; var layersFromMapInfo = []; var layerList = [this._mapInfo.baseLayer].concat(this._mapInfo.layers); if (this._graticuleLayer) { @@ -164028,7 +164783,7 @@ function createWebMapV2Extending(SuperClass, _ref) { layerList.forEach(function (layerInfo) { var targetLayerId = layerInfo.layerID || layerInfo.name; var targetLayerVisible = layerInfo.visible === void 0 || layerInfo.visible === 'visible' || layerInfo.visible === true; - var matchCacheData = _this18._cacheLayerId.get(targetLayerId); + var matchCacheData = _this20._cacheLayerId.get(targetLayerId); if (matchCacheData) { var renderLayers = matchCacheData.renderLayers.map(function (item) { return item.layerId; @@ -164054,7 +164809,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }); this._sourceListModel.on({ layerupdatechanged: function layerupdatechanged(params) { - _this18.fire('layerupdatechanged', params); + _this20.fire('layerupdatechanged', params); } }); return; @@ -164097,14 +164852,14 @@ function createWebMapV2Extending(SuperClass, _ref) { tileSize = tileSize || 512; var extent = crs.getExtent(); var unit = crs.unit; - var scaleBase = 1.0 / Util.getScaleFromResolutionDpi((extent[2] - extent[0]) / tileSize, 96, unit); + var scaleBase = 1.0 / Util_Util.getScaleFromResolutionDpi((extent[2] - extent[0]) / tileSize, 96, unit); var scaleDenominator = scale.split(':')[1]; return Math.min(23, +Math.log2(scaleBase / +scaleDenominator).toFixed(2)); } }, { key: "_updateLayer", value: function _updateLayer(layerInfo) { - var _this19 = this; + var _this21 = this; var id = layerInfo.id, paint = layerInfo.paint, _layerInfo$source = layerInfo.source, @@ -164116,7 +164871,7 @@ function createWebMapV2Extending(SuperClass, _ref) { if (source) { if (type === 'geojson' || source.type === 'geojson') { Object.keys(paint).forEach(function (name) { - _this19.map.setPaintProperty(id, name, paint[name]); + _this21.map.setPaintProperty(id, name, paint[name]); }); data && source.setData(data); } else if (type === 'raster') { @@ -164166,7 +164921,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }, { key: "_handleMultyPolygon", value: function _handleMultyPolygon(features) { - var _this20 = this; + var _this22 = this; features.forEach(function (feature) { if (feature.geometry.type !== 'Polygon') { return; @@ -164176,7 +164931,7 @@ function createWebMapV2Extending(SuperClass, _ref) { var coordinates = [[coords[0]]]; for (var index = 1; index < coords.length; index++) { var element = coords[index]; - var area = _this20.signedArea(element); + var area = _this22.signedArea(element); if (area === 0) { continue; } @@ -164246,7 +165001,7 @@ function createWebMapV2Extending(SuperClass, _ref) { }]); }(SuperClass); } -;// ./src/common/mapping/utils/SourceListModelV3.js +;// CONCATENATED MODULE: ./src/common/mapping/utils/SourceListModelV3.js function SourceListModelV3_typeof(o) { "@babel/helpers - typeof"; return SourceListModelV3_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SourceListModelV3_typeof(o); } function SourceListModelV3_slicedToArray(r, e) { return SourceListModelV3_arrayWithHoles(r) || SourceListModelV3_iterableToArrayLimit(r, e) || SourceListModelV3_unsupportedIterableToArray(r, e) || SourceListModelV3_nonIterableRest(); } function SourceListModelV3_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -164509,22 +165264,49 @@ var SourceListModelV3 = /*#__PURE__*/function (_AppreciableLayerBase) { var sourceOnMap = _this4.map.getSource(layer.source); if (!Object.keys(dataSource).length && sourceOnMap && sourceOnMap.type === 'vector') { var matchSource = _this4._mapInfo.sources[layer.source] || sourceOnMap; - if (matchSource.tiles && matchSource.tiles[0].includes('/rest/maps/')) { + if (matchSource.tiles && matchSource.tiles.length > 0) { var tileUrl = matchSource.tiles[0]; - var _tileUrl$split = tileUrl.split('/rest/maps/'), - _tileUrl$split2 = SourceListModelV3_slicedToArray(_tileUrl$split, 2), - _serverUrl = _tileUrl$split2[0], - leftParts = _tileUrl$split2[1]; - var _leftParts$split = leftParts.split('/tileFeature'), - _leftParts$split2 = SourceListModelV3_slicedToArray(_leftParts$split, 1), - mapName = _leftParts$split2[0]; - dataSource.url = "".concat(_serverUrl, "/rest/maps"); - dataSource.mapName = mapName; - dataSource.type = 'REST_MAP'; - dataSource.layerName = serviceLayerId; - } - } - layerInfo.dataSource = dataSource; + switch (true) { + case tileUrl.includes('/rest/maps/'): + { + var _tileUrl$split = tileUrl.split('/rest/maps/'), + _tileUrl$split2 = SourceListModelV3_slicedToArray(_tileUrl$split, 2), + _serverUrl = _tileUrl$split2[0], + leftParts = _tileUrl$split2[1]; + var _leftParts$split = leftParts.split('/tileFeature'), + _leftParts$split2 = SourceListModelV3_slicedToArray(_leftParts$split, 1), + mapName = _leftParts$split2[0]; + dataSource.url = "".concat(_serverUrl, "/rest/maps"); + dataSource.mapName = mapName; + dataSource.type = 'REST_MAP'; + dataSource.layerName = serviceLayerId; + break; + } + case tileUrl.includes('/restjsr/v1/'): + { + var _tileUrl$split3 = tileUrl.split('/restjsr/v1/'), + _tileUrl$split4 = SourceListModelV3_slicedToArray(_tileUrl$split3, 2), + _serverUrl2 = _tileUrl$split4[0], + _leftParts = _tileUrl$split4[1]; + var _leftParts$split3 = _leftParts.split('/tiles/'), + _leftParts$split4 = SourceListModelV3_slicedToArray(_leftParts$split3, 1), + _mapName = _leftParts$split4[0]; + dataSource.url = "".concat(_serverUrl2, "/restjsr/v1/vectortile/maps"); + dataSource.mapName = _mapName; + dataSource.type = 'RESTJSR'; + break; + } + default: + { + dataSource.url = tileUrl; + dataSource.type = 'VECTOR_OTHER'; + } + } + } + } + layerInfo.dataSource = Object.assign(dataSource, { + serviceLayerId: serviceLayerId + }); if (_this4._l7LayerUtil.isL7Layer(layer)) { layerInfo.CLASS_NAME = 'L7Layer'; } @@ -164639,7 +165421,7 @@ var SourceListModelV3 = /*#__PURE__*/function (_AppreciableLayerBase) { } }]); }(AppreciableLayerBase); -;// ./src/common/mapping/WebMapV3.js +;// CONCATENATED MODULE: ./src/common/mapping/WebMapV3.js function WebMapV3_toConsumableArray(r) { return WebMapV3_arrayWithoutHoles(r) || WebMapV3_iterableToArray(r) || WebMapV3_unsupportedIterableToArray(r) || WebMapV3_nonIterableSpread(); } function WebMapV3_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function WebMapV3_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } @@ -164647,8 +165429,7 @@ function WebMapV3_arrayWithoutHoles(r) { if (Array.isArray(r)) return WebMapV3_a function WebMapV3_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = WebMapV3_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function WebMapV3_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return WebMapV3_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? WebMapV3_arrayLikeToArray(r, a) : void 0; } } function WebMapV3_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } -function WebMapV3_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return WebMapV3_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (WebMapV3_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, WebMapV3_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, WebMapV3_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), WebMapV3_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", WebMapV3_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), WebMapV3_regeneratorDefine2(u), WebMapV3_regeneratorDefine2(u, o, "Generator"), WebMapV3_regeneratorDefine2(u, n, function () { return this; }), WebMapV3_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (WebMapV3_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function WebMapV3_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } WebMapV3_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { WebMapV3_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, WebMapV3_regeneratorDefine2(e, r, n, t); } +function WebMapV3_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ WebMapV3_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == WebMapV3_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(WebMapV3_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function WebMapV3_typeof(o) { "@babel/helpers - typeof"; return WebMapV3_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebMapV3_typeof(o); } function WebMapV3_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function WebMapV3_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? WebMapV3_ownKeys(Object(t), !0).forEach(function (r) { WebMapV3_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : WebMapV3_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -164661,7 +165442,7 @@ function WebMapV3_callSuper(t, o, e) { return o = WebMapV3_getPrototypeOf(o), We function WebMapV3_possibleConstructorReturn(t, e) { if (e && ("object" == WebMapV3_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return WebMapV3_assertThisInitialized(t); } function WebMapV3_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function WebMapV3_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (WebMapV3_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function WebMapV3_superPropGet(t, o, e, r) { var p = WebMapV3_get(WebMapV3_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function WebMapV3_superPropGet(t, e, o, r) { var p = WebMapV3_get(WebMapV3_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function WebMapV3_get() { return WebMapV3_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = WebMapV3_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, WebMapV3_get.apply(null, arguments); } function WebMapV3_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = WebMapV3_getPrototypeOf(t));); return t; } function WebMapV3_getPrototypeOf(t) { return WebMapV3_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, WebMapV3_getPrototypeOf(t); } @@ -164764,7 +165545,8 @@ var LEGEND_SYMBOL_DEFAULT = WebMapV3_defineProperty(WebMapV3_defineProperty(WebM var LegendType = { LINEAR: 'LINEAR', UNIQUE: 'UNIQUE', - RANGE: 'RANGE' + RANGE: 'RANGE', + CUSTOM: 'CUSTOM' }; var SymbolType = { line: 'line', @@ -164797,7 +165579,8 @@ function createWebMapV3Extending(SuperClass, _ref) { var MapManager = _ref.MapManager, mapRepo = _ref.mapRepo, crsManager = _ref.crsManager, - l7LayerUtil = _ref.l7LayerUtil; + l7LayerUtil = _ref.l7LayerUtil, + webMapService = _ref.webMapService; return /*#__PURE__*/function (_SuperClass) { function WebMapV3(mapId, options) { var _this; @@ -164836,6 +165619,10 @@ function createWebMapV3Extending(SuperClass, _ref) { sprite: sprite }); } + if (this.map.addLocalIdeographFontFamily) { + var fontFamilys = this._getLabelFontFamily(mapInfo); + this.map.addLocalIdeographFontFamily(fontFamilys); + } this._initLayers(); return; } @@ -164876,7 +165663,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "copyLayer", value: function () { - var _copyLayer = WebMapV3_asyncToGenerator(/*#__PURE__*/WebMapV3_regenerator().m(function _callee(id) { + var _copyLayer = WebMapV3_asyncToGenerator(/*#__PURE__*/WebMapV3_regeneratorRuntime().mark(function _callee(id) { var layerInfo, matchLayer, copyLayerId, @@ -164884,42 +165671,45 @@ function createWebMapV3Extending(SuperClass, _ref) { layers, params, _args = arguments; - return WebMapV3_regenerator().w(function (_context) { - while (1) switch (_context.n) { + return WebMapV3_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: layerInfo = _args.length > 1 && _args[1] !== undefined ? _args[1] : {}; matchLayer = this._mapInfo.layers.find(function (layer) { return layer.id === id; }); if (!(!matchLayer || this._getLayerOnMap(layerInfo.id))) { - _context.n = 1; + _context.next = 4; break; } - return _context.a(2); - case 1: + return _context.abrupt("return"); + case 4: copyLayerId = layerInfo.id || "".concat(matchLayer.id, "_copy"); copyLayer = WebMapV3_objectSpread(WebMapV3_objectSpread(WebMapV3_objectSpread({}, matchLayer), layerInfo), {}, { id: copyLayerId }); if (!l7LayerUtil.isL7Layer(copyLayer)) { - _context.n = 3; + _context.next = 13; break; } layers = [copyLayer]; params = this._getAddL7LayersParams(layers, this._mapInfo.sources, layers); - _context.n = 2; + _context.next = 11; return l7LayerUtil.addL7Layers(params); - case 2: - _context.n = 4; + case 11: + _context.next = 15; break; - case 3: + case 13: if (WebMapV3_typeof(copyLayer.source) === 'object') { this.map.addSource(copyLayer.id, copyLayer.source); copyLayer.source = copyLayer.id; } this.map.addLayer(copyLayer); - case 4: - return _context.a(2, copyLayer); + case 15: + return _context.abrupt("return", copyLayer); + case 16: + case "end": + return _context.stop(); } }, _callee, this); })); @@ -165111,6 +165901,42 @@ function createWebMapV3Extending(SuperClass, _ref) { }); return res; } + }, { + key: "_getLegendInfoByCatalog", + value: function _getLegendInfoByCatalog(catalog) { + var _this6 = this; + var res = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var catalogType = catalog.catalogType, + children = catalog.children, + showLegend = catalog.showLegend, + title = catalog.title, + id = catalog.id; + if (catalogType === 'group' && children) { + children.forEach(function (child) { + _this6._getLegendInfoByCatalog(child, res); + }); + } + if (catalogType === 'layer') { + res.push({ + showLegend: showLegend !== false, + id: id, + title: title + }); + } + } + }, { + key: "_getLegendInfos", + value: function _getLegendInfos() { + var _this7 = this; + var _mapResourceInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._mapResourceInfo; + var _mapResourceInfo$cata2 = _mapResourceInfo.catalogs, + catalogs = _mapResourceInfo$cata2 === void 0 ? [] : _mapResourceInfo$cata2; + var res = []; + catalogs.forEach(function (item) { + _this7._getLegendInfoByCatalog(item, res); + }); + return res; + } /** * @private @@ -165120,16 +165946,16 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_initLayers", value: (function () { - var _initLayers2 = WebMapV3_asyncToGenerator(/*#__PURE__*/WebMapV3_regenerator().m(function _callee2() { - var _this6 = this; - return WebMapV3_regenerator().w(function (_context2) { - while (1) switch (_context2.n) { + var _initLayers2 = WebMapV3_asyncToGenerator(/*#__PURE__*/WebMapV3_regeneratorRuntime().mark(function _callee2() { + var _this8 = this; + return WebMapV3_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: - _context2.n = 1; + _context2.next = 2; return this._getSpriteDatas(); - case 1: + case 2: if (!(Object.prototype.toString.call(this.mapId) === '[object Object]')) { - _context2.n = 2; + _context2.next = 8; break; } this.mapParams = { @@ -165142,25 +165968,26 @@ function createWebMapV3Extending(SuperClass, _ref) { } this._createMapRelatedInfo(); this._addLayersToMap(); - return _context2.a(2); - case 2: + return _context2.abrupt("return"); + case 8: this._getMapRelatedInfo().then(function (relatedInfo) { - _this6.mapParams = { - title: _this6._mapInfo.name, + _this8.mapParams = { + title: _this8._mapInfo.name, description: relatedInfo.description }; - _this6._mapResourceInfo = JSON.parse(relatedInfo.projectInfo); - _this6._changeMapInfoFilter(); - _this6._createMapRelatedInfo(); - _this6._addLayersToMap(); + _this8._mapResourceInfo = JSON.parse(relatedInfo.projectInfo); + _this8._changeMapInfoFilter(); + _this8._createMapRelatedInfo(); + _this8._addLayersToMap(); })["catch"](function (error) { - _this6.fire('mapcreatefailed', { + _this8.fire('mapcreatefailed', { error: error }); console.error(error); }); - case 3: - return _context2.a(2); + case 9: + case "end": + return _context2.stop(); } }, _callee2, this); })); @@ -165218,7 +166045,7 @@ function createWebMapV3Extending(SuperClass, _ref) { url: "".concat(this.options.server, "web/maps/").concat(this.mapId) }, this.options)); return FetchRequest.get(mapResourceUrl, null, { - withCredentials: this.options.withCredentials + withCredentials: webMapService.handleUrlWithCredentials(mapResourceUrl) }).then(function (response) { return response.json(); }); @@ -165232,13 +166059,13 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_addLayersToMap", value: (function () { - var _addLayersToMap2 = WebMapV3_asyncToGenerator(/*#__PURE__*/WebMapV3_regenerator().m(function _callee3() { - var _this7 = this; - var _this$_setUniqueId, sources, layers, layerCatalog, catalogs, mapboxglLayers, mapboxSourceIds, _iterator, _step, sourceId, source, l7Layers, params, _t, _t2; - return WebMapV3_regenerator().w(function (_context3) { - while (1) switch (_context3.p = _context3.n) { + var _addLayersToMap2 = WebMapV3_asyncToGenerator(/*#__PURE__*/WebMapV3_regeneratorRuntime().mark(function _callee3() { + var _this9 = this; + var _this$_setUniqueId, sources, layers, layerCatalog, catalogs, mapboxglLayers, mapboxSourceIds, _iterator, _step, sourceId, source, l7Layers, params; + return WebMapV3_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: - _context3.p = 0; + _context3.prev = 0; _this$_setUniqueId = this._setUniqueId(this._mapInfo, this._mapResourceInfo), sources = _this$_setUniqueId.sources, layers = _this$_setUniqueId.layers, layerCatalog = _this$_setUniqueId.layerCatalog, catalogs = _this$_setUniqueId.catalogs; Object.assign(this._mapInfo, { sources: sources, @@ -165257,79 +166084,80 @@ function createWebMapV3Extending(SuperClass, _ref) { return layer.source; }); _iterator = WebMapV3_createForOfIteratorHelper(mapboxSourceIds); - _context3.p = 1; + _context3.prev = 7; _iterator.s(); - case 2: + case 9: if ((_step = _iterator.n()).done) { - _context3.n = 5; + _context3.next = 18; break; } sourceId = _step.value; source = sources[sourceId]; if (!(source && source.type === 'geojson' && source.data && source.data.type === 'supermap-rest-data')) { - _context3.n = 4; + _context3.next = 16; break; } - _context3.n = 3; + _context3.next = 15; return l7LayerUtil.getRestDataGeojsonByWebMap(source.data, { iportalServiceProxyUrlPrefix: this.options.server, withoutFormatSuffix: true }); - case 3: - source.data = _context3.v; - case 4: - _context3.n = 2; + case 15: + source.data = _context3.sent; + case 16: + _context3.next = 9; break; - case 5: - _context3.n = 7; + case 18: + _context3.next = 23; break; - case 6: - _context3.p = 6; - _t = _context3.v; - _iterator.e(_t); - case 7: - _context3.p = 7; + case 20: + _context3.prev = 20; + _context3.t0 = _context3["catch"](7); + _iterator.e(_context3.t0); + case 23: + _context3.prev = 23; _iterator.f(); - return _context3.f(7); - case 8: + return _context3.finish(23); + case 26: mapboxglLayers.forEach(function (layer) { if (layer.metadata && layer.metadata.reused) { return; } - layer.source && !_this7.map.getSource(layer.source) && _this7.map.addSource(layer.source, sources[layer.source]); + layer.source && !_this9.map.getSource(layer.source) && _this9.map.addSource(layer.source, sources[layer.source]); // L7才会用到此属性 if (layer.type === 'symbol' && layer.layout['text-z-offset'] === 0) { delete layer.layout['text-z-offset']; } - _this7.map.addLayer(layer); + _this9.map.addLayer(layer); }); l7Layers = layers.filter(function (layer) { return l7LayerUtil.isL7Layer(layer); }); if (!(l7Layers.length > 0)) { - _context3.n = 9; + _context3.next = 32; break; } params = this._getAddL7LayersParams(layers, sources, l7Layers); - _context3.n = 9; + _context3.next = 32; return l7LayerUtil.addL7Layers(params); - case 9: + case 32: this._createLegendInfo(); this._sendMapToUser(); - _context3.n = 11; + _context3.next = 40; break; - case 10: - _context3.p = 10; - _t2 = _context3.v; + case 36: + _context3.prev = 36; + _context3.t1 = _context3["catch"](0); this.fire('mapcreatefailed', { - error: _t2, + error: _context3.t1, map: this.map }); - console.error(_t2); - case 11: - return _context3.a(2); + console.error(_context3.t1); + case 40: + case "end": + return _context3.stop(); } - }, _callee3, this, [[1, 6, 7, 8], [0, 10]]); + }, _callee3, this, [[0, 36], [7, 20, 23, 26]]); })); function _addLayersToMap() { return _addLayersToMap2.apply(this, arguments); @@ -165500,7 +166328,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_updateLayerCatalogsId", value: function _updateLayerCatalogsId(_ref2) { - var _this8 = this; + var _this10 = this; var loopData = _ref2.loopData, catalogs = _ref2.catalogs, layerIdMapList = _ref2.layerIdMapList, @@ -165513,7 +166341,7 @@ function createWebMapV3Extending(SuperClass, _ref) { var id = loopItem.id, children = loopItem.children; if (loopItem[catalogTypeField] === 'group') { - _this8._updateLayerCatalogsId({ + _this10._updateLayerCatalogsId({ loopData: children, catalogs: catalogs, layerIdMapList: layerIdMapList, @@ -165528,18 +166356,18 @@ function createWebMapV3Extending(SuperClass, _ref) { return item.originId === renderLayers[0]; }); if (matchLayer) { - var catalog = _this8._findLayerCatalog(catalogs, id); + var catalog = _this10._findLayerCatalog(catalogs, id); catalog.id = matchLayer.renderId; catalog.reused = matchLayer.reused; if (catalog[layerIdsField]) { - catalog[layerIdsField] = _this8._renameLayerIdsContent(catalog[layerIdsField], layerIdMapList); + catalog[layerIdsField] = _this10._renameLayerIdsContent(catalog[layerIdsField], layerIdMapList); } return; } if (unspportedLayers.includes(id) || renderLayers.some(function (layerId) { return unspportedLayers.includes(layerId); })) { - _this8._deleteLayerCatalog(catalogs, id); + _this10._deleteLayerCatalog(catalogs, id); } }); } @@ -165552,7 +166380,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_sendMapToUser", value: function _sendMapToUser() { - var _this9 = this; + var _this11 = this; this._sourceListModel = new SourceListModelV3({ map: this.map, appendLayers: this._appendLayers, @@ -165563,7 +166391,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }); this._sourceListModel.on({ layerupdatechanged: function layerupdatechanged(params) { - _this9.fire('layerupdatechanged', params); + _this11.fire('layerupdatechanged', params); } }); this.fire('mapcreatesucceeded', { @@ -165603,8 +166431,9 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_getLabelFontFamily", value: function _getLabelFontFamily() { + var mapInfo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this._mapInfo; var fonts = ['sans-serif']; - var layers = this._mapInfo.layers; + var layers = mapInfo.layers; if (layers && layers.length > 0) { layers.forEach(function (layer) { var textFont = layer.layout && layer.layout['text-font'] || []; @@ -165623,7 +166452,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_getSpriteDatas", value: function _getSpriteDatas() { - var _this0 = this; + var _this12 = this; var sprite = this._sprite; if (!sprite) { return; @@ -165637,10 +166466,10 @@ function createWebMapV3Extending(SuperClass, _ref) { }); } return Promise.all(spriteUrls.map(function (url) { - return _this0._getSpriteData(url); + return _this12._getSpriteData(url); })).then(function (allResults) { allResults.forEach(function (result) { - _this0._spriteDatas = WebMapV3_objectSpread(WebMapV3_objectSpread({}, _this0._spriteDatas), result); + _this12._spriteDatas = WebMapV3_objectSpread(WebMapV3_objectSpread({}, _this12._spriteDatas), result); }); return; }); @@ -165650,7 +166479,7 @@ function createWebMapV3Extending(SuperClass, _ref) { value: function _getSpriteData(sprite) { var url = sprite.replace(/.+(web\/maps\/.+)/, "".concat(this.options.server, "$1")); return FetchRequest.get(url, null, { - withCredentials: this.options.withCredentials + withCredentials: webMapService.handleUrlWithCredentials(url) }).then(function (response) { return response.json(); }); @@ -165658,7 +166487,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_createLegendInfo", value: function _createLegendInfo() { - var _this1 = this; + var _this13 = this; var _this$_mapResourceInf2 = this._mapResourceInfo.catalogs, catalogs = _this$_mapResourceInf2 === void 0 ? [] : _this$_mapResourceInf2; var originLayers = getLayerInfosFromCatalogs(catalogs, 'catalogType'); @@ -165666,7 +166495,7 @@ function createWebMapV3Extending(SuperClass, _ref) { _step5; try { var _loop = function _loop() { - var _this1$_legendList; + var _this13$_legendList; var layer = _step5.value; var _ref3 = layer.visualization || {}, renderer = _ref3.renderer, @@ -165674,9 +166503,9 @@ function createWebMapV3Extending(SuperClass, _ref) { if (!renderer) { return 1; // continue } - var layerFromMapInfo = getMainLayerFromCatalog(layer.layersContent, layer.id, _this1._mapInfo.layers); + var layerFromMapInfo = getMainLayerFromCatalog(layer.layersContent, layer.id, _this13._mapInfo.layers); var themeField; - var sourceInfo = _this1._mapInfo.sources[layerFromMapInfo.source]; + var sourceInfo = _this13._mapInfo.sources[layerFromMapInfo.source]; if ('clusterField' in sourceInfo) { themeField = sourceInfo.clusterField; } @@ -165684,7 +166513,7 @@ function createWebMapV3Extending(SuperClass, _ref) { title: layer.title, themeField: themeField }); - var styleSettings = _this1._parseRendererStyleData(renderer); + var styleSettings = _this13._parseRendererStyleData(renderer); // 线面文本标签 if (label) { styleSettings.push(WebMapV3_objectSpread(WebMapV3_objectSpread({}, label), {}, { @@ -165703,11 +166532,11 @@ function createWebMapV3Extending(SuperClass, _ref) { })); } var layerLegends = styleSettings.reduce(function (legends, styleSetting) { - var legendItems = _this1._createLayerLegendList(nextLayer, styleSetting); + var legendItems = _this13._createLayerLegendList(nextLayer, styleSetting); legendItems && legends.push.apply(legends, WebMapV3_toConsumableArray(legendItems)); return legends; }, []); - (_this1$_legendList = _this1._legendList).push.apply(_this1$_legendList, WebMapV3_toConsumableArray(layerLegends)); + (_this13$_legendList = _this13._legendList).push.apply(_this13$_legendList, WebMapV3_toConsumableArray(layerLegends)); }; for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { if (_loop()) continue; @@ -165729,9 +166558,9 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_transStyleKeys", value: function _transStyleKeys(renderType, keys) { - var _this10 = this; + var _this14 = this; return keys.map(function (key) { - return _this10._getAliasKey(renderType, key); + return _this14._getAliasKey(renderType, key); }); } }, { @@ -165875,7 +166704,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_isAllPicturePoint", value: function _isAllPicturePoint(symbolsContent, spriteJson) { - var _this11 = this; + var _this15 = this; if (symbolsContent.type === 'simple') { return !this._getSymbolSDFStatus(symbolsContent.value.symbolId, spriteJson); } else { @@ -165884,14 +166713,14 @@ function createWebMapV3Extending(SuperClass, _ref) { }]).filter(function (v) { return v.value.symbolId; }).every(function (v) { - return !_this11._getSymbolSDFStatus(v.value.symbolId, spriteJson); + return !_this15._getSymbolSDFStatus(v.value.symbolId, spriteJson); }); } } }, { key: "_isAllPictureSymbolSaved", value: function _isAllPictureSymbolSaved(symbolType, symbolsContent, spriteJson) { - var _this12 = this; + var _this16 = this; if (!symbolsContent) { return false; } @@ -165902,11 +166731,15 @@ function createWebMapV3Extending(SuperClass, _ref) { if (currentType === 'simple') { return !!this._getImageIdFromValue(symbolsContent.value.style, SymbolType[symbolType]).length; } + if (currentType === 'custom') { + // 表达式暂不支持图例显示 + return false; + } var styles = symbolsContent.values.map(function (v) { return v.value; }).concat(symbolsContent.defaultValue); return styles.every(function (v) { - return !!_this12._getImageIdFromValue(v.style, SymbolType[symbolType]).length; + return !!_this16._getImageIdFromValue(v.style, SymbolType[symbolType]).length; }); } }, { @@ -165922,7 +166755,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_createLayerLegendList", value: function _createLayerLegendList(layer, styleSetting) { - var _this13 = this; + var _this17 = this; var layerId = layer.id; var layerTitle = layer.title; var textFieldName = styleSetting.type === 'text' && styleSetting.textField && styleSetting.textField.value.replace(/^\{|\}$/g, ''); @@ -165998,10 +166831,10 @@ function createWebMapV3Extending(SuperClass, _ref) { } return resultList.concat(dataKeys.map(function (styleField) { var subStyleSetting = styleSetting[styleField]; - var defaultSetting = _this13._getSettingStyle(styleField, subStyleSetting.defaultValue, simpleStyle); + var defaultSetting = _this17._getSettingStyle(styleField, subStyleSetting.defaultValue, simpleStyle); var styleGroup = []; - var custom = _this13._getSettingCustom(subStyleSetting); - var interpolateInfo = _this13._getSettingInterpolateInfo(subStyleSetting); + var custom = _this17._getSettingCustom(subStyleSetting); + var interpolateInfo = _this17._getSettingInterpolateInfo(subStyleSetting); var params = { legendRenderType: legendRenderType, styleField: styleField, @@ -166012,20 +166845,20 @@ function createWebMapV3Extending(SuperClass, _ref) { interpolateInfo: interpolateInfo, shape: shape }; - switch (_this13._getLegendStyleType({ + switch (_this17._getLegendStyleType({ styleField: styleField, currentType: subStyleSetting.type, custom: custom, interpolateInfo: interpolateInfo })) { case LegendType.LINEAR: - styleGroup = _this13._parseLinearStyle(params); + styleGroup = _this17._parseLinearStyle(params); break; case LegendType.RANGE: - styleGroup = _this13._parseRangeStyle(params); + styleGroup = _this17._parseRangeStyle(params); break; case LegendType.UNIQUE: - styleGroup = _this13._parseUniqueStyle(params); + styleGroup = _this17._parseUniqueStyle(params); break; } var legendItem = WebMapV3_objectSpread(WebMapV3_objectSpread({}, commonStyleOptions), {}, { @@ -166085,6 +166918,9 @@ function createWebMapV3Extending(SuperClass, _ref) { } return LegendType.UNIQUE; } + if (currentType === 'custom') { + return LegendType.CUSTOM; + } return LegendType.RANGE; } }, { @@ -166110,7 +166946,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_parseUniqueStyle", value: function _parseUniqueStyle(_ref6) { - var _this14 = this; + var _this18 = this; var legendRenderType = _ref6.legendRenderType, styleField = _ref6.styleField, simpleStyle = _ref6.simpleStyle, @@ -166119,8 +166955,8 @@ function createWebMapV3Extending(SuperClass, _ref) { interpolateInfo = _ref6.interpolateInfo, shape = _ref6.shape; var styleGroup = custom.map(function (c) { - var itemStyle = _this14._getSettingStyle(styleField, c.value, simpleStyle); - var resData = _this14._parseLegendtyle({ + var itemStyle = _this18._getSettingStyle(styleField, c.value, simpleStyle); + var resData = _this18._parseLegendtyle({ legendRenderType: legendRenderType, customValue: itemStyle }); @@ -166148,7 +166984,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_parseRangeStyle", value: function _parseRangeStyle(_ref7) { - var _this15 = this; + var _this19 = this; var legendRenderType = _ref7.legendRenderType, styleField = _ref7.styleField, simpleStyle = _ref7.simpleStyle, @@ -166156,8 +166992,8 @@ function createWebMapV3Extending(SuperClass, _ref) { custom = _ref7.custom, shape = _ref7.shape; var styleGroup = custom.map(function (c) { - var itemStyle = _this15._getSettingStyle(styleField, c.value, simpleStyle); - var resData = _this15._parseLegendtyle({ + var itemStyle = _this19._getSettingStyle(styleField, c.value, simpleStyle); + var resData = _this19._parseLegendtyle({ legendRenderType: legendRenderType, customValue: itemStyle }); @@ -166192,7 +167028,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }, { key: "_parseLegendtyle", value: function _parseLegendtyle(_ref8) { - var _this16 = this; + var _this20 = this; var legendRenderType = _ref8.legendRenderType, customValue = _ref8.customValue; var cssStyle = WebMapV3_objectSpread({}, LEGEND_CSS_DEFAULT[legendRenderType]); @@ -166255,7 +167091,7 @@ function createWebMapV3Extending(SuperClass, _ref) { var defaultStyle = WebMapV3_objectSpread({}, LEGEND_CSS_DEFAULT['LINE']); var symbolStyles = style instanceof Array ? style : [style]; var hasImageLine = symbolStyles.some(function (v) { - return !!_this16._getImageIdByLegendType(v, legendRenderType); + return !!_this20._getImageIdByLegendType(v, legendRenderType); }); // 图片线符号都是单图层(动画线符号的symbol也只有一个) var imageLineSymbol = symbolStyles[0]; @@ -166280,7 +167116,7 @@ function createWebMapV3Extending(SuperClass, _ref) { if (customValue.symbolsContent) { var oldWidth = this._getLineWidth(symbolStyles); var lineStyles = symbolStyles.map(function (l) { - return _this16._transformLineStyle({ + return _this20._transformLineStyle({ oldWidth: oldWidth, symbol: l, defaultStyle: defaultStyle, @@ -166404,11 +167240,11 @@ function createWebMapV3Extending(SuperClass, _ref) { } }, { key: "_transformLineStyle", - value: function _transformLineStyle(_ref0) { - var oldWidth = _ref0.oldWidth, - symbol = _ref0.symbol, - defaultStyle = _ref0.defaultStyle, - customValue = _ref0.customValue; + value: function _transformLineStyle(_ref10) { + var oldWidth = _ref10.oldWidth, + symbol = _ref10.symbol, + defaultStyle = _ref10.defaultStyle, + customValue = _ref10.customValue; var _symbol$paint = symbol.paint, paint = _symbol$paint === void 0 ? {} : _symbol$paint; var newSymbol; @@ -166527,7 +167363,7 @@ function createWebMapV3Extending(SuperClass, _ref) { }]); }(SuperClass); } -;// ./src/common/mapping/MapBase.js +;// CONCATENATED MODULE: ./src/common/mapping/MapBase.js function MapBase_typeof(o) { "@babel/helpers - typeof"; return MapBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MapBase_typeof(o); } function MapBase_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = MapBase_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function MapBase_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return MapBase_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? MapBase_arrayLikeToArray(r, a) : void 0; } } @@ -166583,6 +167419,11 @@ function createMapClassExtending() { value: function getLegends() { return this._legendList; } + }, { + key: "setLegends", + value: function setLegends(legendList) { + this._legendList = legendList || []; + } }, { key: "getSelfAppreciableLayers", value: function getSelfAppreciableLayers() { @@ -166673,13 +167514,15 @@ function createMapClassExtending() { _iterator.f(); } Array.from(new Set(sourceList)).forEach(function (sourceId) { - _this3.map.removeSource(sourceId); + if (_this3.map.getSource(sourceId)) { + _this3.map.removeSource(sourceId); + } }); } }]); }(SuperClass); } -;// ./src/common/mapping/MapStyle.js +;// CONCATENATED MODULE: ./src/common/mapping/MapStyle.js function MapStyle_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = MapStyle_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } function MapStyle_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return MapStyle_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? MapStyle_arrayLikeToArray(r, a) : void 0; } } function MapStyle_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } @@ -166950,9 +167793,9 @@ function createMapStyleExtending(SuperClass, _ref) { }]); }(SuperClass); } -;// ./node_modules/@mapbox/mapbox-gl-style-spec/reference/v8.json -var v8_namespaceObject = /*#__PURE__*/JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8],"doc":"Style specification version number. Must be 8.","example":8},"fragment":{"type":"boolean","doc":"Indicates that a style is a fragment style.","example":true},"name":{"type":"string","doc":"A human-readable name for the style.","example":"Bright"},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"center":{"type":"array","value":"number","doc":"Default map center in longitude and latitude. The style center will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":[-73.9749,40.7736]},"zoom":{"type":"number","doc":"Default zoom level. The style zoom will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":12.5},"bearing":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Default bearing, in degrees. The bearing is the compass direction that is \\"up\\"; for example, a bearing of 90° orients the map so that east is up. This value will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":29},"pitch":{"type":"number","default":0,"units":"degrees","doc":"Default pitch, in degrees. Zero is perpendicular to the surface, for a look straight down at the map, while a greater value like 60 looks ahead towards the horizon. The style pitch will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":50},"light":{"type":"light","doc":"The global light source. Note: This API is deprecated. Prefer using `flat` light type instead in the `lights` API.","example":{"anchor":"viewport","color":"white","intensity":0.4}},"lights":{"required":false,"type":"array","value":"light-3d","doc":"Array of light sources affecting the whole map and the default for 3D style, mutually exclusive with the light property","example":[{"id":"environment","type":"ambient","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4}},{"id":"sun_light","type":"directional","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4,"direction":[200,40],"cast-shadows":true,"shadow-intensity":0.2}}],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"terrain":{"type":"terrain","optional":true,"doc":"A global modifier that elevates layers and markers based on a DEM data source."},"fog":{"type":"fog","doc":"A global effect that fades layers and markers based on their distance to the camera. The fog can be used to approximate the effect of atmosphere on distant objects and enhance the depth perception of the map when used with terrain or 3D features. Note: fog is renamed to atmosphere in the Android and iOS SDKs and planned to be changed in GL-JS v.3.0.0."},"snow":{"type":"snow","doc":"Global precipitation particle-based snow. Having snow present in the style forces constant map repaint mode","experimental":true},"rain":{"type":"rain","doc":"Global precipitation particle-based rain effect. Having rain present in the style forces constant map repaint mode.","experimental":true},"camera":{"type":"camera","doc":"Global setting to control additional camera intrinsics parameters, e.g. projection type (perspective / orthographic)."},"color-theme":{"type":"colorTheme","doc":"A global modifier for the colors of the style."},"indoor":{"type":"indoor","private":true,"experimental":true,"doc":"Controls the behaviour of indoor features."},"imports":{"type":"array","value":"import","doc":"Imports other styles into this style.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"iconsets":{"experimental":true,"type":"iconsets","doc":"A collection of icon sets","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.11.0","ios":"11.11.0"}}},"schema":{"type":"schema","doc":"Definition of the schema for configuration options.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"sources":{"required":true,"type":"sources","doc":"Data source specifications.","example":{"mapbox-streets":{"type":"vector","url":"mapbox://mapbox.mapbox-streets-v6"}}},"sprite":{"type":"string","doc":"A base URL for retrieving the sprite image and metadata. The extensions `.png`, `.json` and scale factor `@2x.png` will be automatically appended. This property is required if any layer uses the `background-pattern`, `fill-pattern`, `line-pattern`, `fill-extrusion-pattern`, or `icon-image` properties. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright-v8"},"glyphs":{"type":"string","doc":"A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include `{fontstack}` and `{range}` tokens. This property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","default":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf","example":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"},"transition":{"type":"transition","doc":"A global transition definition to use as a default across properties, to be used for timing transitions between one value and the next when no property-specific transition is set. Collision-based symbol fading is controlled independently of the style\'s `transition` property.","example":{"duration":300,"delay":0}},"projection":{"type":"projection","doc":"The projection the map should be rendered in. Supported projections are Mercator, Globe, Albers, Equal Earth, Equirectangular (WGS84), Lambert conformal conic, Natural Earth, and Winkel Tripel. Terrain, sky and fog are supported by only Mercator and globe. CustomLayerInterface is not supported outside of Mercator.","example":{"name":"albers","center":[-154,50],"parallels":[55,65]}},"layers":{"required":true,"type":"array","value":"layer","doc":"Layers will be drawn in the order of this array.","example":[{"id":"water","source":"mapbox-streets","source-layer":"water","type":"fill","paint":{"fill-color":"#00ffff"}}]},"models":{"type":"models","doc":"Specification of models used in the style.","example":{"spruce1-lod0":"asset://spruce1-lod0.glb","spruce1-lod1":"asset://spruce1-lod1.glb","spruce1-lod2":"asset://spruce1-lod2.glb"}},"featuresets":{"experimental":true,"type":"featuresets","doc":"Defines sets of features for querying, interaction, and state management on the map, referencing individual layers or subsets of layers within the map\'s style.","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"example":{"poi":{"selectors":[{"layer":"poi","properties":{"type":["get","type"],"name":["get","name"],"brand":"ABC"}}]}}}},"featuresets":{"experimental":true,"*":{"type":"featureset","doc":"Defines a combined set of features from one or more underlying layers within the current style. Features in a style featureset can be queried, interacted with, and their states can be queried and updated."}},"featureset":{"experimental":true,"metadata":{"experimental":true,"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"selectors":{"experimental":true,"type":"array","value":"selector","doc":"A collection of categorized selectors."}},"selector":{"experimental":true,"layer":{"experimental":true,"type":"string","doc":"The ID of a layer that exists in the current style.","required":true},"properties":{"experimental":true,"type":"selectorProperty","required":false,"doc":"Properties accessible to the end user through queried feautures. If properties are empty, no feature properties are exposed. If undefined, all original feature properties will be accessible."},"featureNamespace":{"experimental":true,"type":"string","required":false,"doc":"An optional field that represents the feature namespace defined by the selector within a featureset to which this feature belongs. If the underlying source is the same for multiple selectors within a featureset, the same featureNamespace should be used across those selectors."},"_uniqueFeatureID":{"experimental":true,"type":"boolean","private":true,"required":false,"doc":"Internal flag used for standard style, in case multiple features sharing the same featureId, only one feature will be returned for feature query."}},"selectorProperty":{"experimental":true,"*":{"experimental":true,"type":"*","doc":"The value of the property. It can be an expression that generates the returned value from the feature, or a constant value specifying the returned value."}},"model":{"type":"string","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`.","required":true},"import":{"id":{"type":"string","doc":"Unique import name.","required":true},"url":{"type":"string","doc":"The URL of the style.","required":true},"config":{"type":"config","doc":"Configuration values for the imported style\'s options."},"data":{"type":"$root","doc":"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{"type":"colorTheme","optional":true,"doc":"If specified, it overrides the color-theme of the imported style."}},"config":{"*":{"type":"*","doc":"Value of the imported style\'s configuration option."}},"schema":{"*":{"type":"option","doc":"Specification of a configuration option."}},"option":{"default":{"type":"*","doc":"Default configuration value for this option.","property-type":"data-constant","expression":{"interpolated":false},"required":true},"type":{"type":"enum","doc":"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.","values":{"string":{"doc":"The result will be coerced to a string."},"number":{"doc":"The result will be coerced to a number."},"boolean":{"doc":"The result will be coerced to a boolean."},"color":{"doc":"The result will be coerced to a color."}}},"array":{"type":"boolean","doc":"If true, this option is returned as an array"},"minValue":{"type":"number","doc":"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},"maxValue":{"type":"number","doc":"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},"stepValue":{"type":"number","doc":"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},"values":{"type":"array","value":"*","doc":"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."}},"models":{"*":{"type":"model","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}},"light-3d":{"id":{"type":"string","doc":"Unique light name.","required":true},"properties":{"type":"properties","doc":"Properties of the light."},"type":{"type":"enum","doc":"Type of the light to be added","values":{"ambient":{"doc":"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"directional":{"doc":"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"flat":{"doc":"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}}},"properties":["properties_light_directional","properties_light_ambient","properties_light_flat"],"properties_light_directional":{"direction":{"type":"array","default":[210,30],"minimum":[0,0],"maximum":[360,90],"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).","example":[90,40],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"cast-shadows":{"type":"boolean","default":false,"doc":"Enable/Disable shadow casting for this light","transition":false,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-quality":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":false,"parameters":["zoom"]},"transition":false,"doc":"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"experimental":true},"shadow-intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.","transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-draw-before-layer":{"type":"string","property-type":"data-constant","doc":"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"experimental":true}},"properties_light_ambient":{"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"properties_light_flat":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"iconsets":{"*":{"type":"iconset","doc":"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}},"iconset":["iconset_sprite","iconset_source"],"iconset_sprite":{"type":{"required":true,"type":"enum","values":{"sprite":{"doc":"A sprite icon set."}},"doc":"The type of the icon set."},"url":{"required":true,"type":"string","doc":"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright"}},"iconset_source":{"type":{"required":true,"type":"enum","values":{"source":{"doc":"A source icon set."}},"doc":"The type of the icon set."},"source":{"required":true,"type":"string","doc":"Name of a source of `raster-array` type to be used for the icon set."}},"sources":{"*":{"type":"source","doc":"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}},"source":["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{"doc":"A vector tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{"doc":"A raster tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{"doc":"A RGB-encoded raster DEM source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"encoding":{"type":"enum","values":{"terrarium":{"doc":"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},"mapbox":{"doc":"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},"default":"mapbox","doc":"The encoding used by this source. Mapbox Terrain RGB is used by default"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_array":{"experimental":true,"type":{"required":true,"type":"enum","values":{"raster-array":{"doc":"A raster array source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"rasterLayers":{"type":"*","doc":"Contains the description of the raster data layers and the bands contained within the tiles."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{"doc":"A GeoJSON data source."}},"doc":"The data type of the GeoJSON source."},"data":{"type":"*","doc":"A URL to a GeoJSON file, or inline GeoJSON."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level at which to create vector tiles"},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0,"doc":"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},"filter":{"type":"*","doc":"An expression for filtering features prior to processing them for rendering."},"tolerance":{"type":"number","default":0.375,"doc":"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},"cluster":{"type":"boolean","default":false,"doc":"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\\n * `cluster` Is `true` if the point is a cluster \\n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\\n * `point_count` Number of original points grouped into this cluster\\n * `point_count_abbreviated` An abbreviated point count"},"clusterRadius":{"type":"number","default":50,"minimum":0,"doc":"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},"clusterMaxZoom":{"type":"number","doc":"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},"clusterMinPoints":{"type":"number","doc":"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},"clusterProperties":{"type":"*","doc":"An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\\"property_name\\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\\"+\\"` or `\\"max\\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\\n\\nExample: `{\\"sum\\": [\\"+\\", [\\"get\\", \\"scalerank\\"]]}`.\\n\\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\\"accumulated\\"]` value, e.g.:\\n`{\\"sum\\": [[\\"+\\", [\\"accumulated\\"], [\\"get\\", \\"sum\\"]], [\\"get\\", \\"scalerank\\"]]}`"},"lineMetrics":{"type":"boolean","default":false,"doc":"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},"generateId":{"type":"boolean","default":false,"doc":"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},"dynamic":{"type":"boolean","default":false,"doc":"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{"js":"3.4.0"}}}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{"doc":"A video data source."}},"doc":"The data type of the video source."},"urls":{"required":true,"type":"array","value":"string","doc":"URLs to video content in order of preferred format."},"coordinates":{"required":true,"doc":"Corners of video specified in longitude, latitude pairs.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{"doc":"An image data source."}},"doc":"The data type of the image source."},"url":{"required":false,"type":"string","doc":"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},"coordinates":{"required":true,"doc":"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"modelNodeOverride":{"orientation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","doc":"Override the orientation of the model node in euler angles [x, y, z]."}},"modelNodeOverrides":{"*":{"type":"modelNodeOverride","doc":"An object defining model node properties to override. Object key is the node name as defined in the model."}},"modelMaterialOverride":{"model-color":{"type":"color","doc":"Override the tint color of the material."},"model-color-mix-intensity":{"type":"number","doc":"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors."},"model-opacity":{"type":"number","doc":"Override the opacity of the material."},"model-emissive-strength":{"type":"number","units":"intensity","doc":"Override strength of the emission of material."}},"modelMaterialOverrides":{"*":{"type":"modelMaterialOverride","doc":"An object defining material properties to override. Object key is the material name as defined in the model."}},"modelSourceModel":{"uri":{"type":"string","required":true,"doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},"position":{"type":"array","value":"number","length":2,"required":false,"default":[0,0],"minimum":[-180,-90],"maximum":[180,90],"doc":"Position of the model in longitude and latitude [lng, lat]."},"orientation":{"type":"array","value":"number","length":3,"required":false,"default":[0,0,0],"period":360,"units":"degrees","doc":"Orientation of the model in euler angles [x, y, z]."},"nodeOverrides":{"type":"modelNodeOverrides","required":false,"doc":"A collection of node overrides."},"materialOverrides":{"type":"modelMaterialOverrides","required":false,"doc":"A collection of material overrides."},"nodeOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model node names whose transform will be overridden from model layer paint properties.","required":false},"materialOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model material names whose properties will be overridden from model layer paint properties.","required":false},"featureProperties":{"type":"*","doc":"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.","required":false}},"modelSourceModels":{"*":{"type":"modelSourceModel","doc":"A 3D model and its properties."}},"source_model":{"type":{"required":true,"type":"enum","values":{"model":{"doc":"A collection of 3D models"},"batched-model":{"doc":"A collection of 3D models with anchor data"}},"doc":"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which batched-model tiles are available"},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},"models":{"type":"modelSourceModels","doc":"Defines properties of 3D models in collection. Requires `model` source type."}},"layer":{"id":{"type":"string","doc":"Unique layer name.","required":true},"type":{"type":"enum","values":{"fill":{"doc":"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"line":{"doc":"A stroked line.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"symbol":{"doc":"An icon or a text label.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"circle":{"doc":"A filled circle.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"heatmap":{"doc":"A heatmap.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"fill-extrusion":{"doc":"An extruded (3D) polygon.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"building":{"doc":"A procedural 3D building.","sdk-support":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"private":true},"raster":{"doc":"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"raster-particle":{"experimental":true,"doc":"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"hillshade":{"doc":"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}}},"model":{"doc":"A 3D model","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"background":{"doc":"The background color or pattern of the map.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"sky":{"doc":"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"slot":{"doc":"Marks the position of a slot.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"clip":{"doc":"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}}}},"doc":"Rendering type of this layer.","required":true},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"source":{"type":"string","doc":"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{"type":"string","doc":"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},"slot":{"type":"string","doc":"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"minzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},"maxzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},"filter":{"type":"filter","doc":"An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `[\\"feature-state\\", ...]` expression is not supported in filter expressions. The `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions are supported only for filter expressions on the symbol layer."},"layout":{"type":"layout","doc":"Layout properties for the layer."},"paint":{"type":"paint","doc":"Default paint properties for this layer."},"appearances":{"type":"array","value":"appearance","supported-layer-types":["symbol"],"experimental":true,"doc":"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with \'Works with appearances\' are supported."}},"appearance":{"condition":{"type":"boolean","doc":"A boolean expression that determines when this appearance should be applied.","expression":{"interpolated":true,"parameters":["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},"name":{"type":"string","doc":"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},"properties":{"type":"*","doc":"Style properties to apply when the condition is met."}},"layout":["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_model":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"model-id":{"type":"string","default":"","doc":"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":false,"requires":[{"source":["geojson","vector"]}]},"model-allow-density-reduction":{"type":"boolean","default":true,"transition":false,"experimental":true,"doc":"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"property-type":"data-constant"}},"layout_clip":{"clip-layer-types":{"type":"array","value":"enum","values":{"model":{"doc":"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},"symbol":{"doc":"If present the clip layer would remove all symbol layers below it."}},"default":[],"doc":"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"clip-layer-scope":{"type":"array","value":"string","default":[],"doc":"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"layout_fill":{"fill-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-elevation-reference":{"type":"enum","doc":"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-base":{"doc":"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as \'hatched areas\' that should exist only on top of road polygons."}},"default":"none","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{"type":"boolean","doc":"Determines whether bridge guard rails are added for elevated roads.","default":"true","transition":false,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"layout_circle":{"circle-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"},"data-driven styling":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{"type":"enum","doc":"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","experimental":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"source-max-zoom":{"type":"number","minimum":0,"maximum":24,"private":true,"experimental":true,"doc":"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}},"property-type":"constant"}},"layout_building":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"constant"},"building-facade":{"type":"boolean","default":false,"doc":"Whether to render facade details on the buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-facade-floors":{"type":"number","minimum":1,"maximum":200,"default":3,"doc":"Number of floors created when building-facade is enabled.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-unit-width":{"type":"number","minimum":1,"maximum":20,"default":3.1,"doc":"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-window":{"type":"array","length":2,"value":"number","minimum":0.1,"maximum":1,"default":[0.9,0.9],"doc":"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-roof-shape":{"type":"enum","values":{"flat":{"doc":"Use flat roof for the procedurally generated buildings."},"hipped":{"doc":"Use hipped roof for the procedurally generated buildings."},"gabled":{"doc":"Use gabled roof for the procedurally generated buildings."},"parapet":{"doc":"Use parapet roof for the procedurally generated buildings."},"mansard":{"doc":"Use mansard roof for the procedurally generated buildings."},"skillion":{"doc":"Use skillion roof for the procedurally generated buildings."},"pyramidal":{"doc":"Use pyramidal roof for the procedurally generated buildings."}},"default":"flat","doc":"Roof type to use for the procedural buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height of the procedural buildings.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.","transition":true,"requires":["building-height"],"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven","type":"boolean","private":true,"units":"meters","default":false,"doc":"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.","transition":true,"requires":["building-roof-shape"],"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{"doc":"A cap with a squared-off end which is drawn to the exact endpoint of the line."},"round":{"doc":"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"square":{"doc":"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."}},"default":"butt","doc":"The display of line endings.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{"doc":"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."},"round":{"doc":"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"miter":{"doc":"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},"none":{"doc":"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can\'t be used with data-driven styling."}},"default":"miter","doc":"The display of lines when joining.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"`none` value":{"js":"3.4.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"doc":"Used to automatically convert miter joins to bevel joins for sharp angles.","requires":[{"line-join":"miter"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"doc":"Used to automatically convert round joins to miter joins for shallow angles.","requires":[{"line-join":"round"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{"type":"number","doc":"Vertical offset from ground, in meters. Not supported for globe projection at the moment.","default":0,"requires":["line-elevation-reference"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{"type":"enum","doc":"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","transition":false,"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"line-cross-slope":{"type":"number","experimental":true,"doc":"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\\n * Vertical lines don\'t support line caps \\n * `line-join: round` is not supported with this property","requires":["line-z-offset"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"line-width-unit":{"type":"enum","doc":"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.","values":{"pixels":{"doc":"Width is rendered in pixels."},"meters":{"doc":"Width is rendered in meters."}},"default":"pixels","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"},"data-driven styling":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","line-progress"]},"requires":["line-z-offset"],"transition":true,"property-type":"data-driven"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{"doc":"The label is placed at the point where the geometry is located."},"line":{"doc":"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{"doc":"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},"default":"point","doc":"Label placement relative to its geometry.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`line-center` value":{"js":"0.47.0","android":"6.4.0","ios":"4.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","doc":"Distance between two symbol anchors.","requires":[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"doc":"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don\'t have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"},"data-driven styling":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{"doc":"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},"source":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},"default":"auto","doc":"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{"js":"0.49.0","android":"6.6.0","ios":"4.5.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{"type":"boolean","default":false,"doc":"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"requires":[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{"type":"enum","doc":"Selects the base of symbol-elevation.","values":{"sea":{"doc":"Elevate symbols relative to the sea level."},"ground":{"doc":"Elevate symbols relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},"default":"ground","experimental":true,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the icon will be visible even if it collides with other previously drawn symbols.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the icon.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"doc":"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},"viewport":{"doc":"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of icons.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","doc":"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{"type":"enum","values":{"none":{"doc":"The icon is displayed at its intrinsic aspect ratio."},"width":{"doc":"The icon is scaled in the x-dimension to fit the width of the text."},"height":{"doc":"The icon is scaled in the y-dimension to fit the height of the text."},"both":{"doc":"The icon is scaled in both x- and y-dimensions."}},"default":"none","doc":"Scales the icon to fit around the associated text.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"stretchable icons":{"js":"1.6.0","android":"9.2.0","ios":"5.8.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","doc":"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-image":{"type":"resolvedImage","doc":"Name of image in sprite to use for drawing an image background.","tokens":true,"appearance":true,"use-theme":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the icon clockwise.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the icon bounding box used for detecting symbol collisions.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"doc":"If true, the icon may be flipped to prevent it from being rendered upside-down.","requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"doc":"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{"doc":"The center of the icon is placed closest to the anchor."},"left":{"doc":"The left side of the icon is placed closest to the anchor."},"right":{"doc":"The right side of the icon is placed closest to the anchor."},"top":{"doc":"The top of the icon is placed closest to the anchor."},"bottom":{"doc":"The bottom of the icon is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the icon is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the icon is placed closest to the anchor."}},"default":"center","doc":"Part of the icon placed closest to the anchor.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The icon is aligned to the plane of the map."},"viewport":{"doc":"The icon is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `icon-rotation-alignment`."}},"default":"auto","doc":"Orientation of icon when map is pitched.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The text is aligned to the plane of the map."},"viewport":{"doc":"The text is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `text-rotation-alignment`."}},"default":"auto","doc":"Orientation of text when map is pitched.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},"viewport":{"doc":"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"doc":"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"doc":"Font stack to use for displaying text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","doc":"Font size.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","doc":"The maximum line width for text wrapping.","requires":["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","doc":"Text leading value for multi-line text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0","android":"10.0.0","ios":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","doc":"Text tracking amount.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{"doc":"The text is aligned towards the anchor position."},"left":{"doc":"The text is aligned to the left."},"center":{"doc":"The text is centered."},"right":{"doc":"The text is aligned to the right."}},"default":"center","doc":"Text justification options.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"},"auto":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"doc":"Radial offset of text, in the direction of the symbol\'s anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"},"data-driven styling":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"requires":["text-field",{"symbol-placement":["point"]}],"doc":"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"default":"center","doc":"Part of the text placed closest to the anchor.","requires":["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","doc":"Maximum angle change between adjacent characters.","requires":["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{"doc":"If a text\'s language supports horizontal writing mode, symbols would be laid out horizontally."},"vertical":{"doc":"If a text\'s language supports vertical writing mode, symbols would be laid out vertically."}},"doc":"The property allows control over a symbol\'s orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single \'vertical\' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either [\'horizontal\', \'vertical\'] or [\'vertical\', \'horizontal\'], the order doesn\'t affect the placement.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"1.3.0","android":"8.3.0","ios":"5.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the text clockwise.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the text bounding box used for detecting symbol collisions.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"doc":"If true, the text may be flipped vertically to prevent it from being rendered upside-down.","requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{"doc":"The text is not altered."},"uppercase":{"doc":"Forces all letters to be displayed in uppercase."},"lowercase":{"doc":"Forces all letters to be displayed in lowercase."}},"default":"none","doc":"Specifies how to capitalize text, similar to the CSS `text-transform` property.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","doc":"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the text will be visible even if it collides with other previously drawn symbols.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"doc":"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.","requires":["text-field","icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster-particle":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"expressions support":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"filter":{"type":"array","value":"*","doc":"A filter selects specific features from a layer."},"filter_symbol":{"type":"boolean","doc":"Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","doc":"Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_hillshade":{"type":"boolean","doc":"Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster-particle":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_clip":{"type":"boolean","doc":"Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_model":{"type":"boolean","doc":"Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","doc":"Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_building":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","doc":"Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{"doc":"`[\\"==\\", key, value]` equality: `feature[key] = value`"},"!=":{"doc":"`[\\"!=\\", key, value]` inequality: `feature[key] ≠ value`"},">":{"doc":"`[\\">\\", key, value]` greater than: `feature[key] > value`"},">=":{"doc":"`[\\">=\\", key, value]` greater than or equal: `feature[key] ≥ value`"},"<":{"doc":"`[\\"<\\", key, value]` less than: `feature[key] < value`"},"<=":{"doc":"`[\\"<=\\", key, value]` less than or equal: `feature[key] ≤ value`"},"in":{"doc":"`[\\"in\\", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`"},"!in":{"doc":"`[\\"!in\\", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`"},"all":{"doc":"`[\\"all\\", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`"},"any":{"doc":"`[\\"any\\", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`"},"none":{"doc":"`[\\"none\\", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`"},"has":{"doc":"`[\\"has\\", key]` `feature[key]` exists"},"!has":{"doc":"`[\\"!has\\", key]` `feature[key]` does not exist"}},"doc":"The filter operator."},"geometry_type":{"type":"enum","values":{"Point":{"doc":"Filter to point geometries."},"LineString":{"doc":"Filter to line geometries."},"Polygon":{"doc":"Filter to polygon geometries."}},"doc":"The geometry type for the filter to select."},"function":{"expression":{"type":"expression","doc":"An expression."},"stops":{"type":"array","doc":"An array of stops.","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0,"doc":"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},"property":{"type":"string","doc":"The name of a feature property to use as the function input.","default":"$zoom"},"type":{"type":"enum","values":{"identity":{"doc":"Return the input value as the output value."},"exponential":{"doc":"Generate an output by interpolating between stops just less than and just greater than the function input."},"interval":{"doc":"Return the output value of the stop just less than the function input."},"categorical":{"doc":"Return the output value of the stop equal to the function input."}},"doc":"The interpolation strategy to use in function evaluation.","default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{"doc":"Use the RGB color space to interpolate color values"},"lab":{"doc":"Use the LAB color space to interpolate color values."},"hcl":{"doc":"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},"doc":"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.","default":"rgb"},"default":{"type":"*","required":false,"doc":"A value to serve as a fallback function result when a value isn\'t otherwise available. It is used in the following circumstances:\\n* In categorical functions, when the feature value does not match any of the stop domain values.\\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\\nIf no default is provided, the style property\'s default is used in these circumstances."}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2,"doc":"Zoom level and value pair."},"expression":{"type":"array","value":"*","minimum":1,"doc":"An expression defines a function that can be used for data-driven style properties or feature filters."},"expression_name":{"doc":"","type":"enum","values":{"let":{"doc":"Binds expressions to named variables, which can then be referenced in the result expression using [\\"var\\", \\"variable_name\\"].","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"var":{"doc":"References variable bound using \\"let\\".","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"config":{"doc":"Retrieves the configuration value for the given option. Returns null if the requested option is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"literal":{"doc":"Provides a literal array or object value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"array":{"doc":"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at":{"doc":"Retrieves an item from an array.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at-interpolated":{"doc":"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.12.0","ios":"11.12.0"}}},"in":{"doc":"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.6.0","android":"9.1.0","ios":"5.8.0"}}},"index-of":{"doc":"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"slice":{"doc":"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"split":{"doc":"Returns an array of substrings from a string, split by a delimiter parameter.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.14.0","android":"11.14.0","ios":"11.14.0"}}},"case":{"doc":"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"match":{"doc":"Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `[\\"get\\", \\"building_type\\"]`). Each label must be unique, and must be either:\\n - a single literal value; or\\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `[\\"c\\", \\"b\\"]`).\\n\\nThe input matches if any of the values in the array matches using strict equality, similar to the `\\"in\\"` operator.\\nIf the input type does not match the type of the labels, the result will be the fallback value.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"coalesce":{"doc":"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`\'image\'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"step":{"doc":"Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\\n\\nInterpolation types:\\n- `[\\"linear\\"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\\n- `[\\"exponential\\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\\n- `[\\"cubic-bezier\\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate-hcl":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"interpolate-lab":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"ln2":{"doc":"Returns mathematical constant ln(2).","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pi":{"doc":"Returns the mathematical constant pi.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"e":{"doc":"Returns the mathematical constant e.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"typeof":{"doc":"Returns a string describing the type of the given value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"string":{"doc":"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"number":{"doc":"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"boolean":{"doc":"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"object":{"doc":"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"collator":{"doc":"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.","group":"Types","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"format":{"doc":"Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\\n- `\\"text-font\\"`: Overrides the font stack specified by the root layout property.\\n- `\\"text-color\\"`: Overrides the color specified by the root paint property.\\n- `\\"font-scale\\"`: Applies a scaling factor on `text-size` as specified by the root layout property.","group":"Types","sdk-support":{"basic functionality":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-font":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"font-scale":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-color":{"js":"1.3.0","android":"7.3.0","ios":"4.10.0"},"image":{"js":"1.6.0","android":"8.6.0","ios":"5.7.0"}}},"image":{"doc":"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`\'format\'`](#types-format) expression.\\n\\nA [`\'coalesce\'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `\'image\'` argument.\\n\\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\\n\\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `\'image\'` expression.","group":"Types","sdk-support":{"basic functionality":{"js":"1.4.0","android":"8.6.0","ios":"5.7.0"}}},"number-format":{"doc":"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.","group":"Types","sdk-support":{"basic functionality":{"js":"0.54.0","android":"8.4.0","ios":"5.4.0"}}},"to-string":{"doc":"Converts the input value to a string. If the input is `null`, the result is `\\"\\"`. If the input is a [`boolean`](#types-boolean), the result is `\\"true\\"` or `\\"false\\"`. If the input is a number, it is converted to a string as specified by the [\\"NumberToString\\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `\\"rgba(r,g,b,a)\\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`\'image\'`](#types-image) expression, `\'to-string\'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-number":{"doc":"Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the [\\"ToNumber Applied to the String Type\\" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-boolean":{"doc":"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-rgba":{"doc":"Returns a four-element array containing the input color\'s red, green, blue, and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-hsla":{"doc":"Returns a four-element array containing the input color\'s Hue, Saturation, Luminance and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}}},"to-color":{"doc":"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgb":{"doc":"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgba":{"doc":"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"hsl":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"hsla":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"get":{"doc":"Retrieves a property value from the current feature\'s properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"has":{"doc":"Tests for the presence of an property value in the current feature\'s properties, or from another object if a second argument is provided.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"length":{"doc":"Returns the length of an array or string.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"properties":{"doc":"Returns the feature properties object. Note that in some cases, it may be more efficient to use `[\\"get\\", \\"property_name\\"]` directly.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"feature-state":{"doc":"Retrieves a property value from the current feature\'s state. Returns `null` if the requested property is not present on the feature\'s state. A feature\'s state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\\"feature-state\\"] can only be used with paint properties that support data-driven styling.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.46.0","android":"10.0.0","ios":"10.0.0"}}},"geometry-type":{"doc":"Returns the feature\'s geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"worldview":{"doc":"Returns the current worldview being used.","group":"Lookup","experimental":true,"sdk-support":{"basic functionality":{"js":"3.13.0","android":"11.13.0","ios":"11.13.0"}}},"id":{"doc":"Returns the feature\'s id, if it has one.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"zoom":{"doc":"Returns the current zoom level. Note that in style layout and paint properties, [\\"zoom\\"] may only appear as the input to a top-level \\"step\\" or \\"interpolate\\" expression.","group":"Camera","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pitch":{"doc":"Returns the current pitch in degrees. `[\\"pitch\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"distance-from-center":{"doc":"Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `[\\"distance-from-center\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"measure-light":{"doc":"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"heatmap-density":{"doc":"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.","group":"Heatmap","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"line-progress":{"doc":"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.6.0"}}},"sky-radial-progress":{"doc":"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.","group":"sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"accumulated":{"doc":"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.53.0","android":"8.4.0","ios":"5.5.0"}}},"+":{"doc":"Returns the sum of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"*":{"doc":"Returns the product of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"-":{"doc":"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"/":{"doc":"Returns the result of floating point division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"%":{"doc":"Returns the remainder after integer division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"^":{"doc":"Returns the result of raising the first input to the power specified by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sqrt":{"doc":"Returns the square root of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"log10":{"doc":"Returns the base-ten logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"ln":{"doc":"Returns the natural logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"log2":{"doc":"Returns the base-two logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sin":{"doc":"Returns the sine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"cos":{"doc":"Returns the cosine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"tan":{"doc":"Returns the tangent of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"asin":{"doc":"Returns the arcsine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"acos":{"doc":"Returns the arccosine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"atan":{"doc":"Returns the arctangent of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"min":{"doc":"Returns the minimum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"max":{"doc":"Returns the maximum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"round":{"doc":"Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `[\\"round\\", -1.5]` evaluates to -2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"abs":{"doc":"Returns the absolute value of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"ceil":{"doc":"Returns the smallest integer that is greater than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"floor":{"doc":"Returns the largest integer that is less than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"distance":{"doc":"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"9.2.0","ios":"5.9.0"}}},"==":{"doc":"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"!=":{"doc":"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">":{"doc":"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<":{"doc":"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">=":{"doc":"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<=":{"doc":"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"all":{"doc":"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"any":{"doc":"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"!":{"doc":"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"within":{"doc":"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line\'s endpoint is on the boundary.","group":"Decision","sdk-support":{"basic functionality":{"js":"1.9.0","android":"9.1.0","ios":"5.8.0"}}},"is-supported-script":{"doc":"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.6.0","ios":"4.1.0"}}},"upcase":{"doc":"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"downcase":{"doc":"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"concat":{"doc":"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"resolved-locale":{"doc":"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"raster-value":{"doc":"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.","group":"Raster Colorization","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-particle-speed":{"doc":"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.","group":"Raster Particle Animation","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"is-active-floor":{"doc":"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.","group":"Indoor","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"random":{"doc":"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"vertical-range":{"type":"array","default":[0,0],"minimum":0,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"snow":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.85],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow particles color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.3],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.4,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,50],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main snow particles direction. Azimuth and polar angles","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"flake-size":{"type":"number","property-type":"data-constant","default":0.71,"minimum":0,"maximum":5,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"rain":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.5],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",0.3,"#a8adbc"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,0.88,1,0.7],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,1],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#001736",0.3,"#464646"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.57,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,80],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main rain particles direction. Azimuth and polar angles.","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"droplet-size":{"type":"array","default":[2.6,18.2],"minimum":0,"maximum":50,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Rain droplet size. x - normal to direction, y - along direction","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"distortion-strength":{"type":"number","property-type":"data-constant","default":0.7,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"camera":{"camera-projection":{"doc":"Camera projection describes how 3D world geometry get projected into 2D screen","type":"enum","values":{"perspective":{"doc":"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},"orthographic":{"doc":"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"perspective","property-type":"data-constant"}},"colorTheme":{"data":{"type":"string","doc":"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.","transition":false,"property-type":"data-constant","expression":{"interpolated":false}}},"indoor_source":{"sourceId":{"type":"string","doc":"Source ID of a source to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"},"sourceLayers":{"type":"array","value":"string","doc":"An array of source layers to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"}},"indoor":{"*":{"type":"indoor_source","private":true,"experimental":true,"doc":"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}}},"projection":{"name":{"type":"enum","values":{"albers":{"doc":"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"equalEarth":{"doc":"An Equal Earth projection."},"equirectangular":{"doc":"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},"lambertConformalConic":{"doc":"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"mercator":{"doc":"The Mercator projection is the default projection."},"naturalEarth":{"doc":"A Natural Earth projection."},"winkelTripel":{"doc":"A Winkel Tripel projection."},"globe":{"doc":"A globe projection."}},"default":"mercator","doc":"The name of the projection to be used for rendering the map.","required":true,"sdk-support":{"basic functionality":{"js":"2.6.0","ios":"10.5.0","android":"10.5.0"}}},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"doc":"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].","example":[-96,37.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"doc":"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).","example":[29.5,45.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}}},"terrain":{"source":{"type":"string","doc":"Name of a source of `raster_dem` type to be used for terrain elevation.","required":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.","requires":["source"],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"doc":"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","doc":"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color\'s opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","doc":"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill is translated relative to the map."},"viewport":{"doc":"The fill is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-translate`.","default":"map","requires":["fill-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{"type":"number","doc":"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.7.0"},"data-driven styling":{"js":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of bridge guard rail.","experimental":true,"private":true,"use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":true,"transition":true,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","doc":"The base color of the extruded fill. The extrusion\'s surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill extrusion is translated relative to the map."},"viewport":{"doc":"The fill extrusion is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-extrusion-translate`.","default":"map","requires":["fill-extrusion-translate"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude this layer.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.","transition":true,"requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion height follows terrain slope."},"flat":{"doc":"The fill extrusion height is flat over terrain."}},"doc":"Controls the behavior of fill extrusion height over terrain","default":"flat","requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion base follows terrain slope."},"flat":{"doc":"The fill extrusion base is flat over terrain."}},"doc":"Controls the behavior of fill extrusion base over terrain","default":"terrain","requires":["fill-extrusion-base"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"doc":"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.","transition":false,"sdk-support":{"basic functionality":{"js":"0.50.0","android":"7.0.0","ios":"4.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.","requires":["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.","requires":["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant","type":"color","experimental":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the extruded buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant","type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the extruded buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant","type":"number","experimental":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant","type":"boolean","default":true,"experimental":true,"doc":"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.","requires":["fill-extrusion-edge-radius"],"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.10.0","ios":"10.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]}},"fill-extrusion-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"fill-extrusion-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{"type":"number","default":0,"minimum":0,"transition":true,"experimental":true,"units":"meters","doc":"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"}},"paint_building":{"building-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":false,"parameters":[]},"transition":true,"doc":"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant","type":"number","private":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base and height of the procedural buildings.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-color":{"type":"color","default":"rgba(193, 154, 127, 1)","doc":"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).","private":true,"use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{"type":"number","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{"type":"number","default":0.35,"minimum":0,"maximum":1,"doc":"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.","private":true,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["measure-light","zoom"]}},"building-cutoff-fade-range":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant","type":"color","private":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"paint_line":{"line-opacity":{"type":"number","doc":"The opacity at which the line will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{"type":"color","doc":"The color with which the line will be drawn.","default":"#000000","use-theme":true,"transition":true,"requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.23.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{"doc":"The line is translated relative to the map."},"viewport":{"doc":"The line is translated relative to the viewport."}},"doc":"Controls the frame of reference for `line-translate`.","default":"map","requires":["line-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","doc":"Stroke thickness.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"doc":"Draws a line casing outside of a line\'s actual path. Value indicates the width of the inner gap.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"doc":"The line\'s offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.12.1","android":"3.0.0","ios":"3.1.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","doc":"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won\'t render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{"type":"color","doc":"A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature\'s total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `\\"lineMetrics\\": true`.","example":["interpolate",["linear"],["line-progress"],0,"blue",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"use-theme":true,"transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","doc":"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.5.0","ios":"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{"type":"array","value":"number","doc":"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.","experimental":true,"length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{"type":"color","doc":"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.","experimental":true,"default":"transparent","use-theme":true,"transition":true,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.17.0","android":"11.17.0","ios":"11.17.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{"type":"number","private":true,"doc":"The width of the line border. A value of zero means no border.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{"type":"color","private":true,"doc":"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"property-type":"data-constant"},"line-blend-mode":{"type":"enum","values":{"default":{"doc":"Normal non-blended rendering mode."},"multiply":{"doc":"Line features are composited using multiply blending."},"additive":{"doc":"Line features are composited using additive density accumulation with tone mapping."}},"doc":"Controls the blend mode used for rendering line features.","default":"default","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.21.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-blend-additive-clamp":{"type":"number","default":0,"minimum":0,"doc":"Controls the brightness of lines in additive blend mode. When set to 0 (the default), brightness is adjusted automatically based on the density of lines visible on screen. Increase this value if the lines appear too bright, or decrease it if they appear too faint.","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.21.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","doc":"Circle radius.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","doc":"The fill color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"doc":"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","doc":"The opacity at which the circle will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{"doc":"The circle is translated relative to the map."},"viewport":{"doc":"The circle is translated relative to the viewport."}},"doc":"Controls the frame of reference for `circle-translate`.","default":"map","requires":["circle-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{"doc":"Circles are scaled according to their apparent distance to the camera."},"viewport":{"doc":"Circles are not scaled."}},"default":"map","doc":"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The circle is aligned to the plane of the map."},"viewport":{"doc":"The circle is aligned to the plane of the viewport."}},"default":"viewport","doc":"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The width of the circle\'s stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","doc":"The stroke color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","doc":"The opacity of the circle\'s stroke.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","doc":"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"doc":"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"doc":"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"doc":"Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `[\\"heatmap-density\\"]` as input.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","doc":"The global opacity at which the heatmap layer will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"doc":"The opacity at which the icon will be drawn.","type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-occlusion-opacity":{"doc":"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","type":"number","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"text-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"doc":"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the icon\'s halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the icon outline.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Fade out the halo towards the outside.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the icon\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{"doc":"Icons are translated relative to the map."},"viewport":{"doc":"Icons are translated relative to the viewport."}},"doc":"Controls the frame of reference for `icon-translate`.","default":"map","requires":["icon-image","icon-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"doc":"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{"type":"number","doc":"The opacity at which the text will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-occlusion-opacity":{"type":"number","doc":"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-color":{"type":"color","doc":"The color with which the text will be drawn.","default":"#000000","use-theme":true,"transition":true,"overridable":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the text\'s halo, which helps it stand out from backgrounds.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The halo\'s fadeout distance towards the outside.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the text\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{"doc":"The text is translated relative to the map."},"viewport":{"doc":"The text is translated relative to the viewport."}},"doc":"Controls the frame of reference for `text-translate`.","default":"map","requires":["text-field","text-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"symbol-z-offset":{"type":"number","doc":"Specifies an uniform elevation from the ground, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"appearance":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_raster":{"raster-opacity":{"type":"number","doc":"The opacity at which the image will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-color":{"type":"color","doc":"Defines a color map by which to colorize a raster layer, parameterized by the `[\\"raster-value\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{"type":"array","default":[0.2126,0.7152,0.0722,0],"length":4,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.","example":[0.2126,0.7152,0.0722,0],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-color-range":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source\'s stated data range is used.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","doc":"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","doc":"Increase or reduce the saturation of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","doc":"Increase or reduce the contrast of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","doc":"The resampling/interpolation method to use for overscaling, also known as texture magnification filter","values":{"linear":{"doc":"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},"nearest":{"doc":"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},"default":"linear","sdk-support":{"basic functionality":{"js":"0.47.0","android":"6.3.0","ios":"4.2.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","doc":"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{"type":"string","required":false,"experimental":true,"property-type":"data-constant","transition":false,"requires":[{"source":"raster-array"}],"doc":"Displayed band of raster array source layer. Defaults to the first band if not set.","example":"band-name","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}}},"raster-elevation":{"type":"number","doc":"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.2.0","ios":"11.2.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{"type":"enum","doc":"Selects the base of raster-elevation.","values":{"sea":{"doc":"Use this mode to elevate raster layers relative to the sea level."},"ground":{"doc":"Use this mode to elevate raster layers relative to the ground\'s height below them."}},"default":"sea","transition":false,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"paint_raster-particle":{"raster-particle-array-band":{"type":"string","required":false,"property-type":"data-constant","transition":false,"doc":"Displayed band of raster array source layer","example":"\\"1713348000\\"","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"raster-particle-count":{"type":"number","doc":"Defines the amount of particles per tile.","default":512,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{"type":"color","doc":"Defines a color map by which to colorize a raster particle layer, parameterized by the `[\\"raster-particle-speed\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{"type":"number","doc":"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.","default":1,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{"type":"number","doc":"Defines a coefficient for the speed of particles’ motion.","default":0.2,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{"type":"number","doc":"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.","default":0.98,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{"type":"number","doc":"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).","default":0.8,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{"type":"number","doc":"Defines an uniform elevation from sea level, in meters.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"doc":"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.","transition":false,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{"doc":"The hillshade illumination is relative to the north direction."},"viewport":{"doc":"The hillshade illumination is relative to the top of the viewport."}},"default":"viewport","doc":"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","doc":"Intensity of the hillshade","default":0.5,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","doc":"The shading color of areas that face away from the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","doc":"The shading color of areas that faces towards the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","doc":"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_background":{"background-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The background is aligned to the plane of the map."},"viewport":{"doc":"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},"default":"map","doc":"Orientation of background layer.","sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":false,"parameters":[]},"experimental":true,"property-type":"data-constant"},"background-color":{"type":"color","default":"#000000","doc":"The color with which the background will be drawn.","use-theme":true,"transition":true,"requires":[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity at which the background will be drawn.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{"doc":"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},"atmosphere":{"doc":"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},"default":"atmosphere","doc":"The type of the sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"doc":"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"doc":"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"doc":"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":true,"transition":false,"requires":[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","doc":"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","doc":"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire sky layer.","transition":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_model":{"model-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.","transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"property-type":"data-driven"},"model-rotation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{"type":"array","value":"number","length":3,"default":[1,1,1],"doc":"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-translation":{"type":"array","value":"number","length":3,"default":[0,0,0],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{"type":"color","default":"#ffffff","doc":"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"use-theme":true,"transition":true},"model-color-mix-intensity":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":1,"doc":"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-type":{"type":"enum","values":{"common-3d":{"doc":"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{"doc":"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"common-3d","doc":"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow receiving for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Intensity of the ambient occlusion if present in the 3D model.","expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant","transition":true},"model-emissive-strength":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-roughness":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-height-based-emissive-strength-multiplier":{"type":"array","default":[1,1,1,1,0],"length":5,"value":"number","doc":"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{"type":"array","private":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.5.0"}}},"model-elevation-reference":{"type":"enum","doc":"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.","values":{"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"ground","transition":false,"expression":{"interpolated":false},"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.17.0","android":"11.10.0","ios":"11.10.0"}}},"model-ignore-line-cutout":{"type":"boolean","doc":"When set to true, the layer is not going to be affected by the line cutout effect.","default":false,"transition":false,"expression":{"interpolated":false},"property-type":"data-constant","experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.21.0","ios":"11.21.0"}}}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds","doc":"Time allotted for transitions to complete."},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds","doc":"Length of time before a transition begins."}},"property-type":{"data-driven":{"type":"property-type","doc":"Property is interpolable and can be represented using a property expression."},"color-ramp":{"type":"property-type","doc":"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{"type":"property-type","doc":"Property is interpolable but cannot be represented using a property expression."},"constant":{"type":"property-type","doc":"Property is constant across all zoom levels and property values."}},"promoteId":{"*":{"type":"*","doc":"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}},"$doc":{"transition":{"type":"transition","doc":"Controls how a property transitions to a new value. Overrides the style\'s root `transition` for this property."},"use-theme":{"type":"enum","doc":"Controls whether the associated color property is affected by the global color theme. When set to \\"none\\", the color theme is ignored for this property. When set to \\"default\\", the color theme is applied.","values":{"default":{"doc":"The color theme is applied to this property (default behavior)."},"none":{"doc":"The color theme is ignored for this property."}},"default":"default"}}}'); -;// ./src/mapboxgl/mapping/webmap/MapManager.js +;// CONCATENATED MODULE: ./node_modules/@mapbox/mapbox-gl-style-spec/reference/v8.json +var v8_namespaceObject = /*#__PURE__*/JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8],"doc":"Style specification version number. Must be 8.","example":8},"fragment":{"type":"boolean","doc":"Indicates that a style is a fragment style.","example":true},"name":{"type":"string","doc":"A human-readable name for the style.","example":"Bright"},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"center":{"type":"array","value":"number","doc":"Default map center in longitude and latitude. The style center will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":[-73.9749,40.7736]},"zoom":{"type":"number","doc":"Default zoom level. The style zoom will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":12.5},"bearing":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Default bearing, in degrees. The bearing is the compass direction that is \\"up\\"; for example, a bearing of 90° orients the map so that east is up. This value will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":29},"pitch":{"type":"number","default":0,"units":"degrees","doc":"Default pitch, in degrees. Zero is perpendicular to the surface, for a look straight down at the map, while a greater value like 60 looks ahead towards the horizon. The style pitch will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":50},"light":{"type":"light","doc":"The global light source. Note: This API is deprecated. Prefer using `flat` light type instead in the `lights` API.","example":{"anchor":"viewport","color":"white","intensity":0.4}},"lights":{"required":false,"type":"array","value":"light-3d","doc":"Array of light sources affecting the whole map and the default for 3D style, mutually exclusive with the light property","example":[{"id":"environment","type":"ambient","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4}},{"id":"sun_light","type":"directional","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4,"direction":[200,40],"cast-shadows":true,"shadow-intensity":0.2}}],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"terrain":{"type":"terrain","optional":true,"doc":"A global modifier that elevates layers and markers based on a DEM data source."},"fog":{"type":"fog","doc":"A global effect that fades layers and markers based on their distance to the camera. The fog can be used to approximate the effect of atmosphere on distant objects and enhance the depth perception of the map when used with terrain or 3D features. Note: fog is renamed to atmosphere in the Android and iOS SDKs and planned to be changed in GL-JS v.3.0.0."},"snow":{"type":"snow","doc":"Global precipitation particle-based snow. Having snow present in the style forces constant map repaint mode","experimental":true},"rain":{"type":"rain","doc":"Global precipitation particle-based rain effect. Having rain present in the style forces constant map repaint mode.","experimental":true},"camera":{"type":"camera","doc":"Global setting to control additional camera intrinsics parameters, e.g. projection type (perspective / orthographic)."},"color-theme":{"type":"colorTheme","doc":"A global modifier for the colors of the style."},"indoor":{"type":"indoor","private":true,"experimental":true,"doc":"Controls the behaviour of indoor features."},"imports":{"type":"array","value":"import","doc":"Imports other styles into this style.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"iconsets":{"experimental":true,"type":"iconsets","doc":"A collection of icon sets","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.11.0","ios":"11.11.0"}}},"schema":{"type":"schema","doc":"Definition of the schema for configuration options.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"sources":{"required":true,"type":"sources","doc":"Data source specifications.","example":{"mapbox-streets":{"type":"vector","url":"mapbox://mapbox.mapbox-streets-v6"}}},"sprite":{"type":"string","doc":"A base URL for retrieving the sprite image and metadata. The extensions `.png`, `.json` and scale factor `@2x.png` will be automatically appended. This property is required if any layer uses the `background-pattern`, `fill-pattern`, `line-pattern`, `fill-extrusion-pattern`, or `icon-image` properties. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright-v8"},"glyphs":{"type":"string","doc":"A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include `{fontstack}` and `{range}` tokens. This property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","default":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf","example":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"},"transition":{"type":"transition","doc":"A global transition definition to use as a default across properties, to be used for timing transitions between one value and the next when no property-specific transition is set. Collision-based symbol fading is controlled independently of the style\'s `transition` property.","example":{"duration":300,"delay":0}},"projection":{"type":"projection","doc":"The projection the map should be rendered in. Supported projections are Mercator, Globe, Albers, Equal Earth, Equirectangular (WGS84), Lambert conformal conic, Natural Earth, and Winkel Tripel. Terrain, sky and fog are supported by only Mercator and globe. CustomLayerInterface is not supported outside of Mercator.","example":{"name":"albers","center":[-154,50],"parallels":[55,65]}},"layers":{"required":true,"type":"array","value":"layer","doc":"Layers will be drawn in the order of this array.","example":[{"id":"water","source":"mapbox-streets","source-layer":"water","type":"fill","paint":{"fill-color":"#00ffff"}}]},"models":{"type":"models","doc":"Specification of models used in the style.","example":{"spruce1-lod0":"asset://spruce1-lod0.glb","spruce1-lod1":"asset://spruce1-lod1.glb","spruce1-lod2":"asset://spruce1-lod2.glb"}},"featuresets":{"experimental":true,"type":"featuresets","doc":"Defines sets of features for querying, interaction, and state management on the map, referencing individual layers or subsets of layers within the map\'s style.","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"example":{"poi":{"selectors":[{"layer":"poi","properties":{"type":["get","type"],"name":["get","name"],"brand":"ABC"}}]}}}},"featuresets":{"experimental":true,"*":{"type":"featureset","doc":"Defines a combined set of features from one or more underlying layers within the current style. Features in a style featureset can be queried, interacted with, and their states can be queried and updated."}},"featureset":{"experimental":true,"metadata":{"experimental":true,"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"selectors":{"experimental":true,"type":"array","value":"selector","doc":"A collection of categorized selectors."}},"selector":{"experimental":true,"layer":{"experimental":true,"type":"string","doc":"The ID of a layer that exists in the current style.","required":true},"properties":{"experimental":true,"type":"selectorProperty","required":false,"doc":"Properties accessible to the end user through queried feautures. If properties are empty, no feature properties are exposed. If undefined, all original feature properties will be accessible."},"featureNamespace":{"experimental":true,"type":"string","required":false,"doc":"An optional field that represents the feature namespace defined by the selector within a featureset to which this feature belongs. If the underlying source is the same for multiple selectors within a featureset, the same featureNamespace should be used across those selectors."},"_uniqueFeatureID":{"experimental":true,"type":"boolean","private":true,"required":false,"doc":"Internal flag used for standard style, in case multiple features sharing the same featureId, only one feature will be returned for feature query."}},"selectorProperty":{"experimental":true,"*":{"experimental":true,"type":"*","doc":"The value of the property. It can be an expression that generates the returned value from the feature, or a constant value specifying the returned value."}},"model":{"type":"string","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`.","required":true},"import":{"id":{"type":"string","doc":"Unique import name.","required":true},"url":{"type":"string","doc":"The URL of the style.","required":true},"config":{"type":"config","doc":"Configuration values for the imported style\'s options."},"data":{"type":"$root","doc":"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{"type":"colorTheme","optional":true,"doc":"If specified, it overrides the color-theme of the imported style."}},"config":{"*":{"type":"*","doc":"Value of the imported style\'s configuration option."}},"schema":{"*":{"type":"option","doc":"Specification of a configuration option."}},"option":{"default":{"type":"*","doc":"Default configuration value for this option.","property-type":"data-constant","expression":{"interpolated":false},"required":true},"type":{"type":"enum","doc":"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.","values":{"string":{"doc":"The result will be coerced to a string."},"number":{"doc":"The result will be coerced to a number."},"boolean":{"doc":"The result will be coerced to a boolean."},"color":{"doc":"The result will be coerced to a color."}}},"array":{"type":"boolean","doc":"If true, this option is returned as an array"},"minValue":{"type":"number","doc":"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},"maxValue":{"type":"number","doc":"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},"stepValue":{"type":"number","doc":"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},"values":{"type":"array","value":"*","doc":"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."}},"models":{"*":{"type":"model","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}},"light-3d":{"id":{"type":"string","doc":"Unique light name.","required":true},"properties":{"type":"properties","doc":"Properties of the light."},"type":{"type":"enum","doc":"Type of the light to be added","values":{"ambient":{"doc":"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"directional":{"doc":"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"flat":{"doc":"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}}},"properties":["properties_light_directional","properties_light_ambient","properties_light_flat"],"properties_light_directional":{"direction":{"type":"array","default":[210,30],"minimum":[0,0],"maximum":[360,90],"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).","example":[90,40],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"cast-shadows":{"type":"boolean","default":false,"doc":"Enable/Disable shadow casting for this light","transition":false,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-quality":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":false,"parameters":["zoom"]},"transition":false,"doc":"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"experimental":true},"shadow-intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.","transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-draw-before-layer":{"type":"string","property-type":"data-constant","doc":"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"experimental":true}},"properties_light_ambient":{"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"properties_light_flat":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"iconsets":{"*":{"type":"iconset","doc":"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}},"iconset":["iconset_sprite","iconset_source"],"iconset_sprite":{"type":{"required":true,"type":"enum","values":{"sprite":{"doc":"A sprite icon set."}},"doc":"The type of the icon set."},"url":{"required":true,"type":"string","doc":"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright"}},"iconset_source":{"type":{"required":true,"type":"enum","values":{"source":{"doc":"A source icon set."}},"doc":"The type of the icon set."},"source":{"required":true,"type":"string","doc":"Name of a source of `raster-array` type to be used for the icon set."}},"sources":{"*":{"type":"source","doc":"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}},"source":["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{"doc":"A vector tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{"doc":"A raster tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{"doc":"A RGB-encoded raster DEM source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"encoding":{"type":"enum","values":{"terrarium":{"doc":"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},"mapbox":{"doc":"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},"default":"mapbox","doc":"The encoding used by this source. Mapbox Terrain RGB is used by default"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_array":{"experimental":true,"type":{"required":true,"type":"enum","values":{"raster-array":{"doc":"A raster array source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"rasterLayers":{"type":"*","doc":"Contains the description of the raster data layers and the bands contained within the tiles."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{"doc":"A GeoJSON data source."}},"doc":"The data type of the GeoJSON source."},"data":{"type":"*","doc":"A URL to a GeoJSON file, or inline GeoJSON."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level at which to create vector tiles"},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0,"doc":"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},"filter":{"type":"*","doc":"An expression for filtering features prior to processing them for rendering."},"tolerance":{"type":"number","default":0.375,"doc":"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},"cluster":{"type":"boolean","default":false,"doc":"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\\n * `cluster` Is `true` if the point is a cluster \\n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\\n * `point_count` Number of original points grouped into this cluster\\n * `point_count_abbreviated` An abbreviated point count"},"clusterRadius":{"type":"number","default":50,"minimum":0,"doc":"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},"clusterMaxZoom":{"type":"number","doc":"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},"clusterMinPoints":{"type":"number","doc":"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},"clusterProperties":{"type":"*","doc":"An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\\"property_name\\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\\"+\\"` or `\\"max\\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\\n\\nExample: `{\\"sum\\": [\\"+\\", [\\"get\\", \\"scalerank\\"]]}`.\\n\\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\\"accumulated\\"]` value, e.g.:\\n`{\\"sum\\": [[\\"+\\", [\\"accumulated\\"], [\\"get\\", \\"sum\\"]], [\\"get\\", \\"scalerank\\"]]}`"},"lineMetrics":{"type":"boolean","default":false,"doc":"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},"generateId":{"type":"boolean","default":false,"doc":"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},"dynamic":{"type":"boolean","default":false,"doc":"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{"js":"3.4.0"}}}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{"doc":"A video data source."}},"doc":"The data type of the video source."},"urls":{"required":true,"type":"array","value":"string","doc":"URLs to video content in order of preferred format."},"coordinates":{"required":true,"doc":"Corners of video specified in longitude, latitude pairs.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{"doc":"An image data source."}},"doc":"The data type of the image source."},"url":{"required":false,"type":"string","doc":"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},"coordinates":{"required":true,"doc":"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"modelNodeOverride":{"orientation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","doc":"Override the orientation of the model node in euler angles [x, y, z]."}},"modelNodeOverrides":{"*":{"type":"modelNodeOverride","doc":"An object defining model node properties to override. Object key is the node name as defined in the model."}},"modelMaterialOverride":{"model-color":{"type":"color","doc":"Override the tint color of the material."},"model-color-mix-intensity":{"type":"number","doc":"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors."},"model-opacity":{"type":"number","doc":"Override the opacity of the material."},"model-emissive-strength":{"type":"number","units":"intensity","doc":"Override strength of the emission of material."}},"modelMaterialOverrides":{"*":{"type":"modelMaterialOverride","doc":"An object defining material properties to override. Object key is the material name as defined in the model."}},"modelSourceModel":{"uri":{"type":"string","required":true,"doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},"position":{"type":"array","value":"number","length":2,"required":false,"default":[0,0],"minimum":[-180,-90],"maximum":[180,90],"doc":"Position of the model in longitude and latitude [lng, lat]."},"orientation":{"type":"array","value":"number","length":3,"required":false,"default":[0,0,0],"period":360,"units":"degrees","doc":"Orientation of the model in euler angles [x, y, z]."},"nodeOverrides":{"type":"modelNodeOverrides","required":false,"doc":"A collection of node overrides."},"materialOverrides":{"type":"modelMaterialOverrides","required":false,"doc":"A collection of material overrides."},"nodeOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model node names whose transform will be overridden from model layer paint properties.","required":false},"materialOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model material names whose properties will be overridden from model layer paint properties.","required":false},"featureProperties":{"type":"*","doc":"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.","required":false}},"modelSourceModels":{"*":{"type":"modelSourceModel","doc":"A 3D model and its properties."}},"source_model":{"type":{"required":true,"type":"enum","values":{"model":{"doc":"A collection of 3D models"},"batched-model":{"doc":"A collection of 3D models with anchor data"}},"doc":"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which batched-model tiles are available"},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},"models":{"type":"modelSourceModels","doc":"Defines properties of 3D models in collection. Requires `model` source type."}},"layer":{"id":{"type":"string","doc":"Unique layer name.","required":true},"type":{"type":"enum","values":{"fill":{"doc":"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"line":{"doc":"A stroked line.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"symbol":{"doc":"An icon or a text label.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"circle":{"doc":"A filled circle.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"heatmap":{"doc":"A heatmap.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"fill-extrusion":{"doc":"An extruded (3D) polygon.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"building":{"doc":"A procedural 3D building.","sdk-support":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"private":true},"raster":{"doc":"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"raster-particle":{"experimental":true,"doc":"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"hillshade":{"doc":"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}}},"model":{"doc":"A 3D model","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"background":{"doc":"The background color or pattern of the map.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"sky":{"doc":"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"slot":{"doc":"Marks the position of a slot.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"clip":{"doc":"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}}}},"doc":"Rendering type of this layer.","required":true},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"source":{"type":"string","doc":"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{"type":"string","doc":"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},"slot":{"type":"string","doc":"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"minzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},"maxzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},"filter":{"type":"filter","doc":"An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `[\\"feature-state\\", ...]` expression is not supported in filter expressions. The `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions are supported only for filter expressions on the symbol layer."},"layout":{"type":"layout","doc":"Layout properties for the layer."},"paint":{"type":"paint","doc":"Default paint properties for this layer."},"appearances":{"type":"array","value":"appearance","supported-layer-types":["symbol"],"experimental":true,"doc":"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with \'Works with appearances\' are supported."}},"appearance":{"condition":{"type":"boolean","doc":"A boolean expression that determines when this appearance should be applied.","expression":{"interpolated":true,"parameters":["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},"name":{"type":"string","doc":"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},"properties":{"type":"*","doc":"Style properties to apply when the condition is met."}},"layout":["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_model":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"model-id":{"type":"string","default":"","doc":"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":false,"requires":[{"source":["geojson","vector"]}]},"model-allow-density-reduction":{"type":"boolean","default":true,"transition":false,"experimental":true,"doc":"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"property-type":"data-constant"}},"layout_clip":{"clip-layer-types":{"type":"array","value":"enum","values":{"model":{"doc":"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},"symbol":{"doc":"If present the clip layer would remove all symbol layers below it."}},"default":[],"doc":"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"clip-layer-scope":{"type":"array","value":"string","default":[],"doc":"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"layout_fill":{"fill-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-elevation-reference":{"type":"enum","doc":"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-base":{"doc":"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as \'hatched areas\' that should exist only on top of road polygons."}},"default":"none","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{"type":"boolean","doc":"Determines whether bridge guard rails are added for elevated roads.","default":"true","transition":false,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"layout_circle":{"circle-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"},"data-driven styling":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{"type":"enum","doc":"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","experimental":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"source-max-zoom":{"type":"number","minimum":0,"maximum":24,"private":true,"experimental":true,"doc":"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}},"property-type":"constant"}},"layout_building":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"constant"},"building-facade":{"type":"boolean","default":false,"doc":"Whether to render facade details on the buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-facade-floors":{"type":"number","minimum":1,"maximum":200,"default":3,"doc":"Number of floors created when building-facade is enabled.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-unit-width":{"type":"number","minimum":1,"maximum":20,"default":3.1,"doc":"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-window":{"type":"array","length":2,"value":"number","minimum":0.1,"maximum":1,"default":[0.9,0.9],"doc":"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-roof-shape":{"type":"enum","values":{"flat":{"doc":"Use flat roof for the procedurally generated buildings."},"hipped":{"doc":"Use hipped roof for the procedurally generated buildings."},"gabled":{"doc":"Use gabled roof for the procedurally generated buildings."},"parapet":{"doc":"Use parapet roof for the procedurally generated buildings."},"mansard":{"doc":"Use mansard roof for the procedurally generated buildings."},"skillion":{"doc":"Use skillion roof for the procedurally generated buildings."},"pyramidal":{"doc":"Use pyramidal roof for the procedurally generated buildings."}},"default":"flat","doc":"Roof type to use for the procedural buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height of the procedural buildings.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.","transition":true,"requires":["building-height"],"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven","type":"boolean","private":true,"units":"meters","default":false,"doc":"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.","transition":true,"requires":["building-roof-shape"],"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{"doc":"A cap with a squared-off end which is drawn to the exact endpoint of the line."},"round":{"doc":"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"square":{"doc":"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."}},"default":"butt","doc":"The display of line endings.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{"doc":"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."},"round":{"doc":"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"miter":{"doc":"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},"none":{"doc":"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can\'t be used with data-driven styling."}},"default":"miter","doc":"The display of lines when joining.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"`none` value":{"js":"3.4.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"doc":"Used to automatically convert miter joins to bevel joins for sharp angles.","requires":[{"line-join":"miter"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"doc":"Used to automatically convert round joins to miter joins for shallow angles.","requires":[{"line-join":"round"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{"type":"number","doc":"Vertical offset from ground, in meters. Not supported for globe projection at the moment.","default":0,"requires":["line-elevation-reference"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{"type":"enum","doc":"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","transition":false,"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"line-cross-slope":{"type":"number","experimental":true,"doc":"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\\n * Vertical lines don\'t support line caps \\n * `line-join: round` is not supported with this property","requires":["line-z-offset"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"line-width-unit":{"type":"enum","doc":"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.","values":{"pixels":{"doc":"Width is rendered in pixels."},"meters":{"doc":"Width is rendered in meters."}},"default":"pixels","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"},"data-driven styling":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","line-progress"]},"requires":["line-z-offset"],"transition":true,"property-type":"data-driven"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{"doc":"The label is placed at the point where the geometry is located."},"line":{"doc":"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{"doc":"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},"default":"point","doc":"Label placement relative to its geometry.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`line-center` value":{"js":"0.47.0","android":"6.4.0","ios":"4.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","doc":"Distance between two symbol anchors.","requires":[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"doc":"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don\'t have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"},"data-driven styling":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{"doc":"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},"source":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},"default":"auto","doc":"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{"js":"0.49.0","android":"6.6.0","ios":"4.5.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{"type":"boolean","default":false,"doc":"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"requires":[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{"type":"enum","doc":"Selects the base of symbol-elevation.","values":{"sea":{"doc":"Elevate symbols relative to the sea level."},"ground":{"doc":"Elevate symbols relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},"default":"ground","experimental":true,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the icon will be visible even if it collides with other previously drawn symbols.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the icon.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"doc":"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},"viewport":{"doc":"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of icons.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","doc":"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{"type":"enum","values":{"none":{"doc":"The icon is displayed at its intrinsic aspect ratio."},"width":{"doc":"The icon is scaled in the x-dimension to fit the width of the text."},"height":{"doc":"The icon is scaled in the y-dimension to fit the height of the text."},"both":{"doc":"The icon is scaled in both x- and y-dimensions."}},"default":"none","doc":"Scales the icon to fit around the associated text.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"stretchable icons":{"js":"1.6.0","android":"9.2.0","ios":"5.8.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","doc":"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-image":{"type":"resolvedImage","doc":"Name of image in sprite to use for drawing an image background.","tokens":true,"appearance":true,"use-theme":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the icon clockwise.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the icon bounding box used for detecting symbol collisions.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"doc":"If true, the icon may be flipped to prevent it from being rendered upside-down.","requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"doc":"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{"doc":"The center of the icon is placed closest to the anchor."},"left":{"doc":"The left side of the icon is placed closest to the anchor."},"right":{"doc":"The right side of the icon is placed closest to the anchor."},"top":{"doc":"The top of the icon is placed closest to the anchor."},"bottom":{"doc":"The bottom of the icon is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the icon is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the icon is placed closest to the anchor."}},"default":"center","doc":"Part of the icon placed closest to the anchor.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The icon is aligned to the plane of the map."},"viewport":{"doc":"The icon is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `icon-rotation-alignment`."}},"default":"auto","doc":"Orientation of icon when map is pitched.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The text is aligned to the plane of the map."},"viewport":{"doc":"The text is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `text-rotation-alignment`."}},"default":"auto","doc":"Orientation of text when map is pitched.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},"viewport":{"doc":"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"doc":"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"doc":"Font stack to use for displaying text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","doc":"Font size.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","doc":"The maximum line width for text wrapping.","requires":["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","doc":"Text leading value for multi-line text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0","android":"10.0.0","ios":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","doc":"Text tracking amount.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{"doc":"The text is aligned towards the anchor position."},"left":{"doc":"The text is aligned to the left."},"center":{"doc":"The text is centered."},"right":{"doc":"The text is aligned to the right."}},"default":"center","doc":"Text justification options.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"},"auto":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"doc":"Radial offset of text, in the direction of the symbol\'s anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"},"data-driven styling":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"requires":["text-field",{"symbol-placement":["point"]}],"doc":"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"default":"center","doc":"Part of the text placed closest to the anchor.","requires":["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","doc":"Maximum angle change between adjacent characters.","requires":["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{"doc":"If a text\'s language supports horizontal writing mode, symbols would be laid out horizontally."},"vertical":{"doc":"If a text\'s language supports vertical writing mode, symbols would be laid out vertically."}},"doc":"The property allows control over a symbol\'s orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single \'vertical\' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either [\'horizontal\', \'vertical\'] or [\'vertical\', \'horizontal\'], the order doesn\'t affect the placement.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"1.3.0","android":"8.3.0","ios":"5.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the text clockwise.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the text bounding box used for detecting symbol collisions.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"doc":"If true, the text may be flipped vertically to prevent it from being rendered upside-down.","requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{"doc":"The text is not altered."},"uppercase":{"doc":"Forces all letters to be displayed in uppercase."},"lowercase":{"doc":"Forces all letters to be displayed in lowercase."}},"default":"none","doc":"Specifies how to capitalize text, similar to the CSS `text-transform` property.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","doc":"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the text will be visible even if it collides with other previously drawn symbols.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"doc":"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.","requires":["text-field","icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster-particle":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"expressions support":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"filter":{"type":"array","value":"*","doc":"A filter selects specific features from a layer."},"filter_symbol":{"type":"boolean","doc":"Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","doc":"Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_hillshade":{"type":"boolean","doc":"Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster-particle":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_clip":{"type":"boolean","doc":"Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_model":{"type":"boolean","doc":"Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","doc":"Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_building":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","doc":"Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{"doc":"`[\\"==\\", key, value]` equality: `feature[key] = value`"},"!=":{"doc":"`[\\"!=\\", key, value]` inequality: `feature[key] ≠ value`"},">":{"doc":"`[\\">\\", key, value]` greater than: `feature[key] > value`"},">=":{"doc":"`[\\">=\\", key, value]` greater than or equal: `feature[key] ≥ value`"},"<":{"doc":"`[\\"<\\", key, value]` less than: `feature[key] < value`"},"<=":{"doc":"`[\\"<=\\", key, value]` less than or equal: `feature[key] ≤ value`"},"in":{"doc":"`[\\"in\\", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`"},"!in":{"doc":"`[\\"!in\\", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`"},"all":{"doc":"`[\\"all\\", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`"},"any":{"doc":"`[\\"any\\", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`"},"none":{"doc":"`[\\"none\\", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`"},"has":{"doc":"`[\\"has\\", key]` `feature[key]` exists"},"!has":{"doc":"`[\\"!has\\", key]` `feature[key]` does not exist"}},"doc":"The filter operator."},"geometry_type":{"type":"enum","values":{"Point":{"doc":"Filter to point geometries."},"LineString":{"doc":"Filter to line geometries."},"Polygon":{"doc":"Filter to polygon geometries."}},"doc":"The geometry type for the filter to select."},"function":{"expression":{"type":"expression","doc":"An expression."},"stops":{"type":"array","doc":"An array of stops.","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0,"doc":"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},"property":{"type":"string","doc":"The name of a feature property to use as the function input.","default":"$zoom"},"type":{"type":"enum","values":{"identity":{"doc":"Return the input value as the output value."},"exponential":{"doc":"Generate an output by interpolating between stops just less than and just greater than the function input."},"interval":{"doc":"Return the output value of the stop just less than the function input."},"categorical":{"doc":"Return the output value of the stop equal to the function input."}},"doc":"The interpolation strategy to use in function evaluation.","default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{"doc":"Use the RGB color space to interpolate color values"},"lab":{"doc":"Use the LAB color space to interpolate color values."},"hcl":{"doc":"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},"doc":"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.","default":"rgb"},"default":{"type":"*","required":false,"doc":"A value to serve as a fallback function result when a value isn\'t otherwise available. It is used in the following circumstances:\\n* In categorical functions, when the feature value does not match any of the stop domain values.\\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\\nIf no default is provided, the style property\'s default is used in these circumstances."}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2,"doc":"Zoom level and value pair."},"expression":{"type":"array","value":"*","minimum":1,"doc":"An expression defines a function that can be used for data-driven style properties or feature filters."},"expression_name":{"doc":"","type":"enum","values":{"let":{"doc":"Binds expressions to named variables, which can then be referenced in the result expression using [\\"var\\", \\"variable_name\\"].","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"var":{"doc":"References variable bound using \\"let\\".","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"config":{"doc":"Retrieves the configuration value for the given option. Returns null if the requested option is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"literal":{"doc":"Provides a literal array or object value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"array":{"doc":"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at":{"doc":"Retrieves an item from an array.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at-interpolated":{"doc":"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.12.0","ios":"11.12.0"}}},"in":{"doc":"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.6.0","android":"9.1.0","ios":"5.8.0"}}},"index-of":{"doc":"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"slice":{"doc":"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"split":{"doc":"Returns an array of substrings from a string, split by a delimiter parameter.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.14.0","android":"11.14.0","ios":"11.14.0"}}},"case":{"doc":"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"match":{"doc":"Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `[\\"get\\", \\"building_type\\"]`). Each label must be unique, and must be either:\\n - a single literal value; or\\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `[\\"c\\", \\"b\\"]`).\\n\\nThe input matches if any of the values in the array matches using strict equality, similar to the `\\"in\\"` operator.\\nIf the input type does not match the type of the labels, the result will be the fallback value.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"coalesce":{"doc":"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`\'image\'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"step":{"doc":"Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\\n\\nInterpolation types:\\n- `[\\"linear\\"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\\n- `[\\"exponential\\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\\n- `[\\"cubic-bezier\\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate-hcl":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"interpolate-lab":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"ln2":{"doc":"Returns mathematical constant ln(2).","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pi":{"doc":"Returns the mathematical constant pi.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"e":{"doc":"Returns the mathematical constant e.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"typeof":{"doc":"Returns a string describing the type of the given value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"string":{"doc":"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"number":{"doc":"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"boolean":{"doc":"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"object":{"doc":"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"collator":{"doc":"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.","group":"Types","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"format":{"doc":"Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\\n- `\\"text-font\\"`: Overrides the font stack specified by the root layout property.\\n- `\\"text-color\\"`: Overrides the color specified by the root paint property.\\n- `\\"font-scale\\"`: Applies a scaling factor on `text-size` as specified by the root layout property.","group":"Types","sdk-support":{"basic functionality":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-font":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"font-scale":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-color":{"js":"1.3.0","android":"7.3.0","ios":"4.10.0"},"image":{"js":"1.6.0","android":"8.6.0","ios":"5.7.0"}}},"image":{"doc":"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`\'format\'`](#types-format) expression.\\n\\nA [`\'coalesce\'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `\'image\'` argument.\\n\\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\\n\\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `\'image\'` expression.","group":"Types","sdk-support":{"basic functionality":{"js":"1.4.0","android":"8.6.0","ios":"5.7.0"}}},"number-format":{"doc":"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.","group":"Types","sdk-support":{"basic functionality":{"js":"0.54.0","android":"8.4.0","ios":"5.4.0"}}},"to-string":{"doc":"Converts the input value to a string. If the input is `null`, the result is `\\"\\"`. If the input is a [`boolean`](#types-boolean), the result is `\\"true\\"` or `\\"false\\"`. If the input is a number, it is converted to a string as specified by the [\\"NumberToString\\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `\\"rgba(r,g,b,a)\\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`\'image\'`](#types-image) expression, `\'to-string\'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-number":{"doc":"Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the [\\"ToNumber Applied to the String Type\\" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-boolean":{"doc":"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-rgba":{"doc":"Returns a four-element array containing the input color\'s red, green, blue, and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-hsla":{"doc":"Returns a four-element array containing the input color\'s Hue, Saturation, Luminance and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}}},"to-color":{"doc":"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgb":{"doc":"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgba":{"doc":"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"hsl":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"hsla":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"get":{"doc":"Retrieves a property value from the current feature\'s properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"has":{"doc":"Tests for the presence of an property value in the current feature\'s properties, or from another object if a second argument is provided.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"length":{"doc":"Returns the length of an array or string.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"properties":{"doc":"Returns the feature properties object. Note that in some cases, it may be more efficient to use `[\\"get\\", \\"property_name\\"]` directly.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"feature-state":{"doc":"Retrieves a property value from the current feature\'s state. Returns `null` if the requested property is not present on the feature\'s state. A feature\'s state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\\"feature-state\\"] can only be used with paint properties that support data-driven styling.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.46.0","android":"10.0.0","ios":"10.0.0"}}},"geometry-type":{"doc":"Returns the feature\'s geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"worldview":{"doc":"Returns the current worldview being used.","group":"Lookup","experimental":true,"sdk-support":{"basic functionality":{"js":"3.13.0","android":"11.13.0","ios":"11.13.0"}}},"id":{"doc":"Returns the feature\'s id, if it has one.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"zoom":{"doc":"Returns the current zoom level. Note that in style layout and paint properties, [\\"zoom\\"] may only appear as the input to a top-level \\"step\\" or \\"interpolate\\" expression.","group":"Camera","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pitch":{"doc":"Returns the current pitch in degrees. `[\\"pitch\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"distance-from-center":{"doc":"Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `[\\"distance-from-center\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"measure-light":{"doc":"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"heatmap-density":{"doc":"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.","group":"Heatmap","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"line-progress":{"doc":"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.6.0"}}},"sky-radial-progress":{"doc":"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.","group":"sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"accumulated":{"doc":"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.53.0","android":"8.4.0","ios":"5.5.0"}}},"+":{"doc":"Returns the sum of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"*":{"doc":"Returns the product of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"-":{"doc":"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"/":{"doc":"Returns the result of floating point division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"%":{"doc":"Returns the remainder after integer division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"^":{"doc":"Returns the result of raising the first input to the power specified by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sqrt":{"doc":"Returns the square root of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"log10":{"doc":"Returns the base-ten logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"ln":{"doc":"Returns the natural logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"log2":{"doc":"Returns the base-two logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sin":{"doc":"Returns the sine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"cos":{"doc":"Returns the cosine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"tan":{"doc":"Returns the tangent of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"asin":{"doc":"Returns the arcsine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"acos":{"doc":"Returns the arccosine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"atan":{"doc":"Returns the arctangent of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"min":{"doc":"Returns the minimum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"max":{"doc":"Returns the maximum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"round":{"doc":"Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `[\\"round\\", -1.5]` evaluates to -2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"abs":{"doc":"Returns the absolute value of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"ceil":{"doc":"Returns the smallest integer that is greater than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"floor":{"doc":"Returns the largest integer that is less than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"distance":{"doc":"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"9.2.0","ios":"5.9.0"}}},"==":{"doc":"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"!=":{"doc":"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">":{"doc":"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<":{"doc":"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">=":{"doc":"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<=":{"doc":"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"all":{"doc":"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"any":{"doc":"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"!":{"doc":"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"within":{"doc":"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line\'s endpoint is on the boundary.","group":"Decision","sdk-support":{"basic functionality":{"js":"1.9.0","android":"9.1.0","ios":"5.8.0"}}},"is-supported-script":{"doc":"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.6.0","ios":"4.1.0"}}},"upcase":{"doc":"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"downcase":{"doc":"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"concat":{"doc":"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"resolved-locale":{"doc":"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"raster-value":{"doc":"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.","group":"Raster Colorization","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-particle-speed":{"doc":"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.","group":"Raster Particle Animation","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"is-active-floor":{"doc":"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.","group":"Indoor","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"random":{"doc":"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"vertical-range":{"type":"array","default":[0,0],"minimum":0,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"snow":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.85],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow particles color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.3],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.4,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,50],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main snow particles direction. Azimuth and polar angles","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"flake-size":{"type":"number","property-type":"data-constant","default":0.71,"minimum":0,"maximum":5,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"rain":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.5],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",0.3,"#a8adbc"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,0.88,1,0.7],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,1],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#001736",0.3,"#464646"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.57,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,80],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main rain particles direction. Azimuth and polar angles.","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"droplet-size":{"type":"array","default":[2.6,18.2],"minimum":0,"maximum":50,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Rain droplet size. x - normal to direction, y - along direction","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"distortion-strength":{"type":"number","property-type":"data-constant","default":0.7,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"camera":{"camera-projection":{"doc":"Camera projection describes how 3D world geometry get projected into 2D screen","type":"enum","values":{"perspective":{"doc":"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},"orthographic":{"doc":"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"perspective","property-type":"data-constant"}},"colorTheme":{"data":{"type":"string","doc":"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.","transition":false,"property-type":"data-constant","expression":{"interpolated":false}}},"indoor_source":{"sourceId":{"type":"string","doc":"Source ID of a source to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"},"sourceLayers":{"type":"array","value":"string","doc":"An array of source layers to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"}},"indoor":{"*":{"type":"indoor_source","private":true,"experimental":true,"doc":"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}}},"projection":{"name":{"type":"enum","values":{"albers":{"doc":"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"equalEarth":{"doc":"An Equal Earth projection."},"equirectangular":{"doc":"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},"lambertConformalConic":{"doc":"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"mercator":{"doc":"The Mercator projection is the default projection."},"naturalEarth":{"doc":"A Natural Earth projection."},"winkelTripel":{"doc":"A Winkel Tripel projection."},"globe":{"doc":"A globe projection."}},"default":"mercator","doc":"The name of the projection to be used for rendering the map.","required":true,"sdk-support":{"basic functionality":{"js":"2.6.0","ios":"10.5.0","android":"10.5.0"}}},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"doc":"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].","example":[-96,37.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"doc":"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).","example":[29.5,45.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}}},"terrain":{"source":{"type":"string","doc":"Name of a source of `raster_dem` type to be used for terrain elevation.","required":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.","requires":["source"],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"doc":"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","doc":"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color\'s opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","doc":"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill is translated relative to the map."},"viewport":{"doc":"The fill is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-translate`.","default":"map","requires":["fill-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{"type":"number","doc":"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.7.0"},"data-driven styling":{"js":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of bridge guard rail.","experimental":true,"private":true,"use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":true,"transition":true,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","doc":"The base color of the extruded fill. The extrusion\'s surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill extrusion is translated relative to the map."},"viewport":{"doc":"The fill extrusion is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-extrusion-translate`.","default":"map","requires":["fill-extrusion-translate"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude this layer.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.","transition":true,"requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion height follows terrain slope."},"flat":{"doc":"The fill extrusion height is flat over terrain."}},"doc":"Controls the behavior of fill extrusion height over terrain","default":"flat","requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion base follows terrain slope."},"flat":{"doc":"The fill extrusion base is flat over terrain."}},"doc":"Controls the behavior of fill extrusion base over terrain","default":"terrain","requires":["fill-extrusion-base"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"doc":"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.","transition":false,"sdk-support":{"basic functionality":{"js":"0.50.0","android":"7.0.0","ios":"4.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.","requires":["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.","requires":["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant","type":"color","experimental":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the extruded buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant","type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the extruded buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant","type":"number","experimental":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant","type":"boolean","default":true,"experimental":true,"doc":"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.","requires":["fill-extrusion-edge-radius"],"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.10.0","ios":"10.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]}},"fill-extrusion-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"fill-extrusion-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{"type":"number","default":0,"minimum":0,"transition":true,"experimental":true,"units":"meters","doc":"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"}},"paint_building":{"building-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":false,"parameters":[]},"transition":true,"doc":"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant","type":"number","private":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base and height of the procedural buildings.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-color":{"type":"color","default":"rgba(193, 154, 127, 1)","doc":"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).","private":true,"use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{"type":"number","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{"type":"number","default":0.35,"minimum":0,"maximum":1,"doc":"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.","private":true,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["measure-light","zoom"]}},"building-cutoff-fade-range":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant","type":"color","private":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"paint_line":{"line-opacity":{"type":"number","doc":"The opacity at which the line will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{"type":"color","doc":"The color with which the line will be drawn.","default":"#000000","use-theme":true,"transition":true,"requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.23.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{"doc":"The line is translated relative to the map."},"viewport":{"doc":"The line is translated relative to the viewport."}},"doc":"Controls the frame of reference for `line-translate`.","default":"map","requires":["line-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","doc":"Stroke thickness.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"doc":"Draws a line casing outside of a line\'s actual path. Value indicates the width of the inner gap.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"doc":"The line\'s offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.12.1","android":"3.0.0","ios":"3.1.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","doc":"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won\'t render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{"type":"color","doc":"A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature\'s total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `\\"lineMetrics\\": true`.","example":["interpolate",["linear"],["line-progress"],0,"blue",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"use-theme":true,"transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","doc":"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.5.0","ios":"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{"type":"array","value":"number","doc":"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.","experimental":true,"length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{"type":"color","doc":"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.","experimental":true,"default":"transparent","use-theme":true,"transition":true,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.17.0","android":"11.17.0","ios":"11.17.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{"type":"number","private":true,"doc":"The width of the line border. A value of zero means no border.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{"type":"color","private":true,"doc":"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"property-type":"data-constant"},"line-blend-mode":{"type":"enum","values":{"default":{"doc":"Normal non-blended rendering mode."},"multiply":{"doc":"Line features are composited using multiply blending."},"additive":{"doc":"Line features are composited using additive density accumulation with tone mapping."}},"doc":"Controls the blend mode used for rendering line features.","default":"default","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.21.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","doc":"Circle radius.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","doc":"The fill color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"doc":"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","doc":"The opacity at which the circle will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{"doc":"The circle is translated relative to the map."},"viewport":{"doc":"The circle is translated relative to the viewport."}},"doc":"Controls the frame of reference for `circle-translate`.","default":"map","requires":["circle-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{"doc":"Circles are scaled according to their apparent distance to the camera."},"viewport":{"doc":"Circles are not scaled."}},"default":"map","doc":"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The circle is aligned to the plane of the map."},"viewport":{"doc":"The circle is aligned to the plane of the viewport."}},"default":"viewport","doc":"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The width of the circle\'s stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","doc":"The stroke color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","doc":"The opacity of the circle\'s stroke.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","doc":"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"doc":"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"doc":"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"doc":"Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `[\\"heatmap-density\\"]` as input.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","doc":"The global opacity at which the heatmap layer will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"doc":"The opacity at which the icon will be drawn.","type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-occlusion-opacity":{"doc":"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","type":"number","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"text-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"doc":"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the icon\'s halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the icon outline.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Fade out the halo towards the outside.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the icon\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{"doc":"Icons are translated relative to the map."},"viewport":{"doc":"Icons are translated relative to the viewport."}},"doc":"Controls the frame of reference for `icon-translate`.","default":"map","requires":["icon-image","icon-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"doc":"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{"type":"number","doc":"The opacity at which the text will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-occlusion-opacity":{"type":"number","doc":"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-color":{"type":"color","doc":"The color with which the text will be drawn.","default":"#000000","use-theme":true,"transition":true,"overridable":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the text\'s halo, which helps it stand out from backgrounds.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The halo\'s fadeout distance towards the outside.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the text\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{"doc":"The text is translated relative to the map."},"viewport":{"doc":"The text is translated relative to the viewport."}},"doc":"Controls the frame of reference for `text-translate`.","default":"map","requires":["text-field","text-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"symbol-z-offset":{"type":"number","doc":"Specifies an uniform elevation from the ground, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"appearance":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_raster":{"raster-opacity":{"type":"number","doc":"The opacity at which the image will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-color":{"type":"color","doc":"Defines a color map by which to colorize a raster layer, parameterized by the `[\\"raster-value\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{"type":"array","default":[0.2126,0.7152,0.0722,0],"length":4,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.","example":[0.2126,0.7152,0.0722,0],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-color-range":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source\'s stated data range is used.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","doc":"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","doc":"Increase or reduce the saturation of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","doc":"Increase or reduce the contrast of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","doc":"The resampling/interpolation method to use for overscaling, also known as texture magnification filter","values":{"linear":{"doc":"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},"nearest":{"doc":"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},"default":"linear","sdk-support":{"basic functionality":{"js":"0.47.0","android":"6.3.0","ios":"4.2.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","doc":"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{"type":"string","required":false,"experimental":true,"property-type":"data-constant","transition":false,"requires":[{"source":"raster-array"}],"doc":"Displayed band of raster array source layer. Defaults to the first band if not set.","example":"band-name","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}}},"raster-elevation":{"type":"number","doc":"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.2.0","ios":"11.2.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{"type":"enum","doc":"Selects the base of raster-elevation.","values":{"sea":{"doc":"Use this mode to elevate raster layers relative to the sea level."},"ground":{"doc":"Use this mode to elevate raster layers relative to the ground\'s height below them."}},"default":"sea","transition":false,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"paint_raster-particle":{"raster-particle-array-band":{"type":"string","required":false,"property-type":"data-constant","transition":false,"doc":"Displayed band of raster array source layer","example":"\\"1713348000\\"","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"raster-particle-count":{"type":"number","doc":"Defines the amount of particles per tile.","default":512,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{"type":"color","doc":"Defines a color map by which to colorize a raster particle layer, parameterized by the `[\\"raster-particle-speed\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{"type":"number","doc":"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.","default":1,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{"type":"number","doc":"Defines a coefficient for the speed of particles’ motion.","default":0.2,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{"type":"number","doc":"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.","default":0.98,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{"type":"number","doc":"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).","default":0.8,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{"type":"number","doc":"Defines an uniform elevation from sea level, in meters.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"doc":"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.","transition":false,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{"doc":"The hillshade illumination is relative to the north direction."},"viewport":{"doc":"The hillshade illumination is relative to the top of the viewport."}},"default":"viewport","doc":"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","doc":"Intensity of the hillshade","default":0.5,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","doc":"The shading color of areas that face away from the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","doc":"The shading color of areas that faces towards the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","doc":"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_background":{"background-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The background is aligned to the plane of the map."},"viewport":{"doc":"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},"default":"map","doc":"Orientation of background layer.","sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":false,"parameters":[]},"experimental":true,"property-type":"data-constant"},"background-color":{"type":"color","default":"#000000","doc":"The color with which the background will be drawn.","use-theme":true,"transition":true,"requires":[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity at which the background will be drawn.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{"doc":"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},"atmosphere":{"doc":"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},"default":"atmosphere","doc":"The type of the sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"doc":"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"doc":"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"doc":"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":true,"transition":false,"requires":[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","doc":"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","doc":"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire sky layer.","transition":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_model":{"model-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.","transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"property-type":"data-driven"},"model-rotation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{"type":"array","value":"number","length":3,"default":[1,1,1],"doc":"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-translation":{"type":"array","value":"number","length":3,"default":[0,0,0],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{"type":"color","default":"#ffffff","doc":"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"use-theme":true,"transition":true},"model-color-mix-intensity":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":1,"doc":"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-type":{"type":"enum","values":{"common-3d":{"doc":"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{"doc":"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"common-3d","doc":"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow receiving for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Intensity of the ambient occlusion if present in the 3D model.","expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant","transition":true},"model-emissive-strength":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-roughness":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-height-based-emissive-strength-multiplier":{"type":"array","default":[1,1,1,1,0],"length":5,"value":"number","doc":"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{"type":"array","private":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.5.0"}}},"model-elevation-reference":{"type":"enum","doc":"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.","values":{"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"ground","transition":false,"expression":{"interpolated":false},"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.17.0","android":"11.10.0","ios":"11.10.0"}}},"model-ignore-line-cutout":{"type":"boolean","doc":"When set to true, the layer is not going to be affected by the line cutout effect.","default":false,"transition":false,"expression":{"interpolated":false},"property-type":"data-constant","experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.21.0","ios":"11.21.0"}}}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds","doc":"Time allotted for transitions to complete."},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds","doc":"Length of time before a transition begins."}},"property-type":{"data-driven":{"type":"property-type","doc":"Property is interpolable and can be represented using a property expression."},"color-ramp":{"type":"property-type","doc":"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{"type":"property-type","doc":"Property is interpolable but cannot be represented using a property expression."},"constant":{"type":"property-type","doc":"Property is constant across all zoom levels and property values."}},"promoteId":{"*":{"type":"*","doc":"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}},"$doc":{"transition":{"type":"transition","doc":"Controls how a property transitions to a new value. Overrides the style\'s root `transition` for this property."},"use-theme":{"type":"enum","doc":"Controls whether the associated color property is affected by the global color theme. When set to \\"none\\", the color theme is ignored for this property. When set to \\"default\\", the color theme is applied.","values":{"default":{"doc":"The color theme is applied to this property (default behavior)."},"none":{"doc":"The color theme is ignored for this property."}},"default":"default"}}}'); +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/webmap/MapManager.js function MapManager_typeof(o) { "@babel/helpers - typeof"; return MapManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, MapManager_typeof(o); } function MapManager_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function MapManager_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, MapManager_toPropertyKey(o.key), o); } } @@ -166963,7 +167806,7 @@ function MapManager_callSuper(t, o, e) { return o = MapManager_getPrototypeOf(o) function MapManager_possibleConstructorReturn(t, e) { if (e && ("object" == MapManager_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return MapManager_assertThisInitialized(t); } function MapManager_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function MapManager_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (MapManager_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } -function MapManager_superPropGet(t, o, e, r) { var p = MapManager_get(MapManager_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function MapManager_superPropGet(t, e, o, r) { var p = MapManager_get(MapManager_getPrototypeOf(1 & r ? t.prototype : t), e, o); return 2 & r && "function" == typeof p ? function (t) { return p.apply(o, t); } : p; } function MapManager_get() { return MapManager_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = MapManager_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, MapManager_get.apply(null, arguments); } function MapManager_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = MapManager_getPrototypeOf(t));); return t; } function MapManager_getPrototypeOf(t) { return MapManager_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, MapManager_getPrototypeOf(t); } @@ -166991,7 +167834,7 @@ var MapManager = /*#__PURE__*/function (_mapboxgl$Map) { }]); }((external_mapboxgl_default()).Map); -;// ./src/mapboxgl/mapping/webmap/CRSManager.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/webmap/CRSManager.js function CRSManager_typeof(o) { "@babel/helpers - typeof"; return CRSManager_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, CRSManager_typeof(o); } function CRSManager_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function CRSManager_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, CRSManager_toPropertyKey(o.key), o); } } @@ -167047,7 +167890,7 @@ var CRSManager = /*#__PURE__*/function () { } }]); }(); -;// ./src/mapboxgl/mapping/WebMap.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/WebMap.js function WebMap_typeof(o) { "@babel/helpers - typeof"; return WebMap_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, WebMap_typeof(o); } function WebMap_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function WebMap_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? WebMap_ownKeys(Object(t), !0).forEach(function (r) { WebMap_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : WebMap_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -167199,14 +168042,16 @@ var WebMap = /*#__PURE__*/function (_createWebMapBaseExte) { spec: v8_namespaceObject, L7Layer: L7Layer, L7: external_function_try_return_L7_catch_e_return_namespaceObject, - proj4: this._crsManager.getProj4() + proj4: this._crsManager.getProj4(), + webMapService: this.webMapService }); switch (type) { case 'MapStyle': return createMapStyleExtending(createMapClassExtending((external_mapboxgl_default()).Evented), commonFactoryOptions); case 'WebMap3': return createWebMapV3Extending(createMapClassExtending((external_mapboxgl_default()).Evented), WebMap_objectSpread(WebMap_objectSpread({}, commonFactoryOptions), {}, { - l7LayerUtil: l7LayerUtil + l7LayerUtil: l7LayerUtil, + webMapService: this.webMapService })); default: return createWebMapV2Extending(createWebMapV2BaseExtending(createMapClassExtending((external_mapboxgl_default()).Evented), 'fire'), commonFactoryOptions); @@ -167216,7 +168061,7 @@ var WebMap = /*#__PURE__*/function (_createWebMapBaseExte) { }(createWebMapBaseExtending((external_mapboxgl_default()).Evented, { mapRepo: (external_mapboxgl_default()) })); -;// ./src/common/iServer/InitMapServiceBase.js +;// CONCATENATED MODULE: ./src/common/iServer/InitMapServiceBase.js function InitMapServiceBase_typeof(o) { "@babel/helpers - typeof"; return InitMapServiceBase_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InitMapServiceBase_typeof(o); } function InitMapServiceBase_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function InitMapServiceBase_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, InitMapServiceBase_toPropertyKey(o.key), o); } } @@ -167425,10 +168270,9 @@ function getZoom(_ref, extent) { var resolutions = extentToResolutions(extent); return getZoomByResolution(scaleToResolution(scale, dpi, coordUnit), resolutions); } -;// ./src/mapboxgl/mapping/InitMap.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/InitMap.js function InitMap_typeof(o) { "@babel/helpers - typeof"; return InitMap_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, InitMap_typeof(o); } -function InitMap_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return InitMap_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (InitMap_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, InitMap_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, InitMap_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), InitMap_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", InitMap_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), InitMap_regeneratorDefine2(u), InitMap_regeneratorDefine2(u, o, "Generator"), InitMap_regeneratorDefine2(u, n, function () { return this; }), InitMap_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (InitMap_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function InitMap_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } InitMap_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { InitMap_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, InitMap_regeneratorDefine2(e, r, n, t); } +function InitMap_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ InitMap_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == InitMap_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(InitMap_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function InitMap_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function InitMap_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? InitMap_ownKeys(Object(t), !0).forEach(function (r) { InitMap_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : InitMap_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } function InitMap_defineProperty(e, r, t) { return (r = InitMap_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } @@ -167476,37 +168320,37 @@ function initMap(url) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var initMapService = new InitMapServiceBase(MapService, url, options); return initMapService.getMapInfo(/*#__PURE__*/function () { - var _ref = InitMap_asyncToGenerator(/*#__PURE__*/InitMap_regenerator().m(function _callee(res, resolve, reject) { - var _res$result, dynamicProjection, _res$result$prjCoordS, epsgCode, type, mapOptions, map, _t; - return InitMap_regenerator().w(function (_context) { - while (1) switch (_context.p = _context.n) { + var _ref = InitMap_asyncToGenerator(/*#__PURE__*/InitMap_regeneratorRuntime().mark(function _callee(res, resolve, reject) { + var _res$result, dynamicProjection, _res$result$prjCoordS, epsgCode, type, mapOptions, map; + return InitMap_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - _context.p = 0; + _context.prev = 0; if (!(res.type === 'processCompleted')) { - _context.n = 4; + _context.next = 15; break; } _res$result = res.result, dynamicProjection = _res$result.dynamicProjection, _res$result$prjCoordS = _res$result.prjCoordSys, epsgCode = _res$result$prjCoordS.epsgCode, type = _res$result$prjCoordS.type; if (!isPlaneProjection(type)) { - _context.n = 1; + _context.next = 6; break; } reject(new Error('mapbox-gl cannot support plane coordinate system.')); - return _context.a(2); - case 1: + return _context.abrupt("return"); + case 6: if (!(epsgCode !== 3857 && !dynamicProjection && !(external_mapboxgl_default()).CRS)) { - _context.n = 2; + _context.next = 9; break; } reject(new Error("The EPSG code ".concat(epsgCode, " needs to include mapbox-gl-enhance.js. Refer to the example: https://iclient.supermap.io/examples/mapboxgl/editor.html#mvtVectorTile_2362"))); - return _context.a(2); - case 2: - _context.n = 3; + return _context.abrupt("return"); + case 9: + _context.next = 11; return createMapOptions(url, res.result, InitMap_objectSpread(InitMap_objectSpread({}, options), {}, { initMapService: initMapService })); - case 3: - mapOptions = _context.v; + case 11: + mapOptions = _context.sent; map = new (external_mapboxgl_default()).Map(mapOptions); if (!map.loaded()) { map.on('load', function () { @@ -167519,19 +168363,20 @@ function initMap(url) { map: map }); } - return _context.a(2); - case 4: + return _context.abrupt("return"); + case 15: reject(new Error('Fetch mapService is failed.')); - _context.n = 6; + _context.next = 21; break; - case 5: - _context.p = 5; - _t = _context.v; - reject(_t); - case 6: - return _context.a(2); - } - }, _callee, null, [[0, 5]]); + case 18: + _context.prev = 18; + _context.t0 = _context["catch"](0); + reject(_context.t0); + case 21: + case "end": + return _context.stop(); + } + }, _callee, null, [[0, 18]]); })); return function (_x, _x2, _x3) { return _ref.apply(this, arguments); @@ -167614,48 +168459,51 @@ function getVectorTileCRSExtent(_x4, _x5) { * @returns {Object} mapParams。 */ function _getVectorTileCRSExtent() { - _getVectorTileCRSExtent = InitMap_asyncToGenerator(/*#__PURE__*/InitMap_regenerator().m(function _callee2(vectorStyleUrl, restMapUrl) { - var vectorStyleDataRes, vectorStyleData, vectorExtentDataRes, vectorExtentData, _t2; - return InitMap_regenerator().w(function (_context2) { - while (1) switch (_context2.p = _context2.n) { + _getVectorTileCRSExtent = InitMap_asyncToGenerator(/*#__PURE__*/InitMap_regeneratorRuntime().mark(function _callee2(vectorStyleUrl, restMapUrl) { + var vectorStyleDataRes, vectorStyleData, vectorExtentDataRes, vectorExtentData; + return InitMap_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: - _context2.p = 0; - _context2.n = 1; + _context2.prev = 0; + _context2.next = 3; return FetchRequest.get(vectorStyleUrl); - case 1: - vectorStyleDataRes = _context2.v; - _context2.n = 2; + case 3: + vectorStyleDataRes = _context2.sent; + _context2.next = 6; return vectorStyleDataRes.json(); - case 2: - vectorStyleData = _context2.v; + case 6: + vectorStyleData = _context2.sent; if (!(vectorStyleData.metadata && vectorStyleData.metadata.indexbounds)) { - _context2.n = 3; + _context2.next = 9; break; } - return _context2.a(2, { + return _context2.abrupt("return", { extent: vectorStyleData.metadata.indexbounds }); - case 3: - _context2.n = 4; - return FetchRequest.get(Util.urlPathAppend(restMapUrl, 'prjCoordSys/projection/extent.json')); - case 4: - vectorExtentDataRes = _context2.v; - _context2.n = 5; + case 9: + _context2.next = 11; + return FetchRequest.get(Util_Util.urlPathAppend(restMapUrl, 'prjCoordSys/projection/extent.json')); + case 11: + vectorExtentDataRes = _context2.sent; + _context2.next = 14; return vectorExtentDataRes.json(); - case 5: - vectorExtentData = _context2.v; - return _context2.a(2, { + case 14: + vectorExtentData = _context2.sent; + return _context2.abrupt("return", { extent: vectorExtentData, center: vectorStyleData.center }); - case 6: - _context2.p = 6; - _t2 = _context2.v; - return _context2.a(2, { + case 18: + _context2.prev = 18; + _context2.t0 = _context2["catch"](0); + return _context2.abrupt("return", { extent: [] }); + case 21: + case "end": + return _context2.stop(); } - }, _callee2, null, [[0, 6]]); + }, _callee2, null, [[0, 18]]); })); return _getVectorTileCRSExtent.apply(this, arguments); } @@ -167663,48 +168511,48 @@ function createMapOptions(_x6, _x7, _x8) { return _createMapOptions.apply(this, arguments); } function _createMapOptions() { - _createMapOptions = InitMap_asyncToGenerator(/*#__PURE__*/InitMap_regenerator().m(function _callee3(url, resetServiceInfo, options) { + _createMapOptions = InitMap_asyncToGenerator(/*#__PURE__*/InitMap_regeneratorRuntime().mark(function _callee3(url, resetServiceInfo, options) { var sourceType, mapOptions, epsgCode, bounds, center, _resetServiceInfo$dpi, dpi, coordUnit, scale, mapCenter, crs, extent, tileUrl, nonEnhanceExtraInfo, enhanceExtraInfo, zoom, tileSize, tileFormat, baseProjection, wkt, vectorTileInfo, tilesets, tileset, maxWidth, tileCount, closestTileCount, width, crsBounds, _tileSize, transparent; - return InitMap_regenerator().w(function (_context3) { - while (1) switch (_context3.n) { + return InitMap_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: if (!(options.type && !['raster', 'vector-tile'].includes(options.type))) { - _context3.n = 1; + _context3.next = 2; break; } - return _context3.a(2, Promise.reject(new Error('type must be "raster" or "vector-tile".'))); - case 1: + return _context3.abrupt("return", Promise.reject(new Error('type must be "raster" or "vector-tile".'))); + case 2: sourceType = options.type || 'raster'; mapOptions = options.mapOptions || {}; epsgCode = resetServiceInfo.prjCoordSys.epsgCode, bounds = resetServiceInfo.bounds, center = resetServiceInfo.center, _resetServiceInfo$dpi = resetServiceInfo.dpi, dpi = _resetServiceInfo$dpi === void 0 ? 96 : _resetServiceInfo$dpi, coordUnit = resetServiceInfo.coordUnit, scale = resetServiceInfo.scale; mapCenter = center ? [center.x, center.y] : [0, 0]; crs = "EPSG:".concat(epsgCode); extent = bounds; - tileUrl = sourceType === 'vector-tile' ? Util.urlAppend(Util.urlPathAppend(url, 'tileFeature/vectorstyles.json'), 'type=MapBox_GL&styleonly=true&tileURLTemplate=ZXY') : url; + tileUrl = sourceType === 'vector-tile' ? Util_Util.urlAppend(Util_Util.urlPathAppend(url, 'tileFeature/vectorstyles.json'), 'type=MapBox_GL&styleonly=true&tileURLTemplate=ZXY') : url; tileUrl = SecurityManager.appendCredential(tileUrl); nonEnhanceExtraInfo = {}; enhanceExtraInfo = {}; tileSize = 512; tileFormat = 'png'; if (!(external_mapboxgl_default()).CRS) { - _context3.n = 6; + _context3.next = 34; break; } baseProjection = crs; - _context3.n = 2; + _context3.next = 18; return options.initMapService.getWKT(); - case 2: - wkt = _context3.v; + case 18: + wkt = _context3.sent; if (!(sourceType === 'vector-tile')) { - _context3.n = 4; + _context3.next = 24; break; } - _context3.n = 3; + _context3.next = 22; return getVectorTileCRSExtent(tileUrl, url); - case 3: - vectorTileInfo = _context3.v; + case 22: + vectorTileInfo = _context3.sent; extent = vectorTileInfo.extent; - case 4: + case 24: crs = defineCRSByWKT(baseProjection, wkt, extent); if (sourceType === 'raster') { enhanceExtraInfo.rasterSource = 'iserver'; @@ -167715,10 +168563,10 @@ function _createMapOptions() { } else { mapCenter = transformMapCenter(mapCenter, baseProjection); } - _context3.n = 5; + _context3.next = 29; return options.initMapService.getTilesets(); - case 5: - tilesets = _context3.v; + case 29: + tilesets = _context3.sent; tileset = getTileset(tilesets.result, { prjCoordSys: resetServiceInfo.prjCoordSys, tileType: 'Image' @@ -167735,18 +168583,18 @@ function _createMapOptions() { zoom = zoom - 1; tileSize = tileset.tileWidth; } - _context3.n = 7; + _context3.next = 37; break; - case 6: + case 34: crs = 'EPSG:3857'; mapCenter = transformMapCenter(mapCenter, crs); if (sourceType === 'raster') { _tileSize = 256; nonEnhanceExtraInfo.tileSize = _tileSize; transparent = mapOptions.transparent !== false; - tileUrl = Util.urlAppend(Util.urlPathAppend(tileUrl, 'zxyTileImage.png'), "z={z}&x={x}&y={y}&width=".concat(_tileSize, "&height=").concat(_tileSize, "&transparent=").concat(transparent)); + tileUrl = Util_Util.urlAppend(Util_Util.urlPathAppend(tileUrl, 'zxyTileImage.png'), "z={z}&x={x}&y={y}&width=".concat(_tileSize, "&height=").concat(_tileSize, "&transparent=").concat(transparent)); } - case 7: + case 37: if (zoom === undefined) { zoom = getZoom({ scale: scale, @@ -167754,7 +168602,7 @@ function _createMapOptions() { coordUnit: coordUnit }, extent); } - return _context3.a(2, InitMap_objectSpread({ + return _context3.abrupt("return", InitMap_objectSpread({ container: 'map', crs: crs, center: mapCenter, @@ -167778,12 +168626,15 @@ function _createMapOptions() { }] } : tileUrl }, mapOptions)); + case 39: + case "end": + return _context3.stop(); } }, _callee3); })); return _createMapOptions.apply(this, arguments); } -;// ./src/mapboxgl/mapping/layers/VideoMapLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/layers/VideoMapLayer.js function VideoMapLayer_typeof(o) { "@babel/helpers - typeof"; return VideoMapLayer_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VideoMapLayer_typeof(o); } function VideoMapLayer_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function VideoMapLayer_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, VideoMapLayer_toPropertyKey(o.key), o); } } @@ -167816,7 +168667,7 @@ var VideoMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { var _this; VideoMapLayer_classCallCheck(this, VideoMapLayer); _this = VideoMapLayer_callSuper(this, VideoMapLayer); - _this.id = Util.createUniqueID('videoLayer_'); + _this.id = Util_Util.createUniqueID('videoLayer_'); _this.videoMap = videoMap; _this.loop = _this.videoMap.loop; _this.autoplay = _this.videoMap.autoplay; @@ -167902,6 +168753,7 @@ var VideoMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { if (this.autoplay) { this.map.getSource(this.id).play(); } + this._bindTimeUpdates(); this.fire('loaded', { originCoordsRightBottom: this.originCoordsRightBottom, originCoordsLeftTop: this.originCoordsLeftTop, @@ -167909,10 +168761,63 @@ var VideoMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { videoHeight: this.videoHeight }); } + }, { + key: "_bindTimeUpdates", + value: function _bindTimeUpdates() { + var _this3 = this; + var videoElement = this.video.tech && this.video.tech().el(); + if (!videoElement) { + return; + } + this._statsStartTime = performance.now(); + this._statsFrameCount = 0; + this._statsLastMediaTime = 0; + if (videoElement.requestVideoFrameCallback) { + var _update = function update(now, metadata) { + _this3._statsFrameCount++; + _this3._statsLastMediaTime = metadata.mediaTime; + _this3.fire('timeupdate', { + time: metadata.mediaTime + }); + if (_this3._statsFrameCount % 30 === 0) { + _this3._fireVideoStats(videoElement, metadata.mediaTime); + } + _this3.frameCallbackId = videoElement.requestVideoFrameCallback(_update); + }; + this.frameCallbackId = videoElement.requestVideoFrameCallback(_update); + } else { + this.timeUpdateHandler = function () { + _this3._statsFrameCount++; + _this3._statsLastMediaTime = _this3.video.currentTime(); + _this3.fire('timeupdate', { + time: _this3.video.currentTime() + }); + if (_this3._statsFrameCount % 30 === 0) { + _this3._fireVideoStats(videoElement, _this3._statsLastMediaTime); + } + }; + this.video.on('timeupdate', this.timeUpdateHandler); + } + } + }, { + key: "_fireVideoStats", + value: function _fireVideoStats(videoElement, mediaTime) { + var elapsed = (performance.now() - this._statsStartTime) / 1000; + var quality = videoElement.getVideoPlaybackQuality ? videoElement.getVideoPlaybackQuality() : null; + this.fire('videostats', { + mediaTime: mediaTime, + decodedFrames: quality ? quality.totalVideoFrames : videoElement.webkitDecodedFrameCount, + droppedFrames: quality ? quality.droppedVideoFrames : videoElement.webkitDroppedFrameCount, + measuredFps: elapsed ? this._statsFrameCount / elapsed : 0, + videoWidth: this.videoWidth, + videoHeight: this.videoHeight, + duration: this.video.duration() + }); + } }, { key: "_calcCoords", value: function _calcCoords(videoMap) { - var _this3 = this; + var _this4 = this; var width = videoMap.width, height = videoMap.height, videoHeight = videoMap.videoHeight, @@ -167932,7 +168837,7 @@ var VideoMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { var cy = realHeight / 2; var pos = [[center.x - cx, center.y - cy], [center.x + cx, center.y - cy], [center.x + cx, center.y + cy], [center.x - cx, center.y + cy]]; var coords = pos.map(function (coord) { - return _this3.map.unproject(coord); + return _this4.map.unproject(coord); }); this.originCoordsLeftTop = coords[0]; this.originCoordsRightBottom = coords[2]; @@ -167964,6 +168869,13 @@ var VideoMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { key: "remove", value: function remove() { if (this.id) { + var videoElement = this.video && this.video.tech && this.video.tech().el(); + if (videoElement && this.frameCallbackId && videoElement.cancelVideoFrameCallback) { + videoElement.cancelVideoFrameCallback(this.frameCallbackId); + } + if (this.timeUpdateHandler) { + this.video.off('timeupdate', this.timeUpdateHandler); + } this.map.removeLayer(this.id); this.map.removeSource(this.id); document.body.removeChild(document.getElementById(this.id)); @@ -167972,7 +168884,7 @@ var VideoMapLayer = /*#__PURE__*/function (_mapboxgl$Evented) { }]); }((external_mapboxgl_default()).Evented); -;// ./src/mapboxgl/mapping/layers/GeojsonLayer.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/layers/GeojsonLayer.js function GeojsonLayer_toConsumableArray(r) { return GeojsonLayer_arrayWithoutHoles(r) || GeojsonLayer_iterableToArray(r) || GeojsonLayer_unsupportedIterableToArray(r) || GeojsonLayer_nonIterableSpread(); } function GeojsonLayer_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function GeojsonLayer_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return GeojsonLayer_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? GeojsonLayer_arrayLikeToArray(r, a) : void 0; } } @@ -168081,7 +168993,7 @@ var GeojsonLayer = /*#__PURE__*/function () { }]); }(); -;// ./src/mapboxgl/mapping/GeojsonSource.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/GeojsonSource.js function GeojsonSource_typeof(o) { "@babel/helpers - typeof"; return GeojsonSource_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, GeojsonSource_typeof(o); } function GeojsonSource_toConsumableArray(r) { return GeojsonSource_arrayWithoutHoles(r) || GeojsonSource_iterableToArray(r) || GeojsonSource_unsupportedIterableToArray(r) || GeojsonSource_nonIterableSpread(); } function GeojsonSource_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -168109,6 +169021,7 @@ function GeojsonSource_toPrimitive(t, r) { if ("object" != GeojsonSource_typeof( var GeojsonSource = /*#__PURE__*/function () { function GeojsonSource(videoMap) { GeojsonSource_classCallCheck(this, GeojsonSource); + this.videoMap = videoMap; var coordTransfer = videoMap.coordTransfer, originCoordsRightBottom = videoMap.originCoordsRightBottom, originCoordsLeftTop = videoMap.originCoordsLeftTop, @@ -168132,27 +169045,50 @@ var GeojsonSource = /*#__PURE__*/function () { return GeojsonSource_createClass(GeojsonSource, [{ key: "add", value: function add(id, source) { - var _this = this; if (this.map.getSource(id)) { return; } - var newData = lodash_clonedeep_default()(source.data); + this.id = id; + this.source = source; + this.originalData = lodash_clonedeep_default()(source.data); + var newData = this._transformData(this.originalData); + source.data = newData; + this.map.addSource(id, source); + } + }, { + key: "update", + value: function update() { + var source = this.map.getSource(this.id); + if (!source || !this.originalData) { + return; + } + source.setData(this._transformData(this.originalData)); + } + }, { + key: "_transformData", + value: function _transformData(data) { + var _this$videoMap = this.videoMap, + coordTransfer = _this$videoMap.coordTransfer, + originCoordsRightBottom = _this$videoMap.originCoordsRightBottom, + originCoordsLeftTop = _this$videoMap.originCoordsLeftTop, + videoWidth = _this$videoMap.videoWidth, + videoHeight = _this$videoMap.videoHeight; + var newData = lodash_clonedeep_default()(data); featureEach(newData, function (currentFeature) { coordEach(currentFeature, function (curCoords) { var transCurCoords = lib('EPSG:4326', 'EPSG:3857', curCoords); - var transCoords = _this.coordTransfer.toVideoCoordinate(transCurCoords); + var transCoords = coordTransfer.toVideoCoordinate(transCurCoords); curCoords.length = 0; curCoords.push.apply(curCoords, GeojsonSource_toConsumableArray(transformCoord({ videoPoint: transCoords.data64F, - videoWidth: _this.videoWidth, - videoHeight: _this.videoHeight, - originCoordsRightBottom: _this.originCoordsRightBottom, - originCoordsLeftTop: _this.originCoordsLeftTop + videoWidth: videoWidth, + videoHeight: videoHeight, + originCoordsRightBottom: originCoordsRightBottom, + originCoordsLeftTop: originCoordsLeftTop }))); }); }); - source.data = newData; - this.map.addSource(id, source); + return newData; } /** * @function GeojsonSource.prototype.remove @@ -168162,16 +169098,17 @@ var GeojsonSource = /*#__PURE__*/function () { */ }, { key: "remove", - value: function remove(id) { - this.map.addSource(id); + value: function remove() { + if (this.id && this.map.getSource(this.id)) { + this.map.removeSource(this.id); + } } }]); }(); -;// ./src/mapboxgl/mapping/VideoMap.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/VideoMap.js function VideoMap_typeof(o) { "@babel/helpers - typeof"; return VideoMap_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, VideoMap_typeof(o); } -function VideoMap_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return VideoMap_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (VideoMap_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, VideoMap_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, VideoMap_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), VideoMap_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", VideoMap_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), VideoMap_regeneratorDefine2(u), VideoMap_regeneratorDefine2(u, o, "Generator"), VideoMap_regeneratorDefine2(u, n, function () { return this; }), VideoMap_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (VideoMap_regenerator = function _regenerator() { return { w: i, m: f }; })(); } -function VideoMap_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } VideoMap_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { VideoMap_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, VideoMap_regeneratorDefine2(e, r, n, t); } +function VideoMap_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ VideoMap_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == VideoMap_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(VideoMap_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } function VideoMap_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } function VideoMap_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { VideoMap_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { VideoMap_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } function VideoMap_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } @@ -168197,6 +169134,35 @@ function VideoMap_setPrototypeOf(t, e) { return VideoMap_setPrototypeOf = Object var MAP_EVENTS = ['resize', 'webglcontextlost', 'webglcontextrestored', 'remove', 'movestart', 'load', 'contextmenu', 'dblclick', 'click', 'touchcancel', 'touchmove', 'touchend', 'touchstart', 'dataloading', 'mousemove', 'mouseup', 'mousedown', 'sourcedataloading', 'error', 'data', 'styledata', 'sourcedata', 'mouseout', 'styledataloading', 'moveend', 'move', 'render', 'zoom', 'zoomstart', 'zoomend', 'boxzoomstart', 'boxzoomcancel', 'boxzoomend', 'rotate', 'rotatestart', 'rotateend', 'dragend', 'drag', 'dragstart', 'pitch', 'idle']; +/** + * @typedef {Object} VideoMap.VideoParameters - 视频地图配准参数(静态配准,相机位置固定)。 + * @property {number} pitch - 相机俯仰角,单位:度。 + * @property {number} roll - 相机侧偏角,单位:度。 + * @property {number} yaw - 相机偏航角,单位:度。 + * @property {number} x - 相机位置 x 坐标(投影至 EPSG:3857 后的横坐标)。 + * @property {number} y - 相机位置 y 坐标(投影至 EPSG:3857 后的纵坐标)。 + * @property {number} z - 相机位置 z 坐标(投影至 EPSG:3857 后的高程)。 + * @property {number} fovX - 相机水平视场角,单位:度。内部通过 videoWidth 与该值换算为水平焦距 fx。 + * @property {number} fovY - 相机垂直视场角,单位:度。内部通过 videoHeight 与该值换算为垂直焦距 fy。 + * @property {number} centerX - 相机主点(光轴与图像平面交点)的水平像素坐标。 + * @property {number} centerY - 相机主点(光轴与图像平面交点)的垂直像素坐标。 + */ + +/** + * @typedef {Object} VideoMap.VideoTimeParameters - 动态视频配准参数(按视频时间动态更新相机位置)。 + * @property {number} time - 视频时间戳,单位秒。用于按视频播放时间匹配对应的相机参数。 + * @property {number} pitch - 相机俯仰角,单位:度。 + * @property {number} roll - 相机侧偏角,单位:度。 + * @property {number} yaw - 相机偏航角,单位:度。 + * @property {number} x - 相机位置 x 坐标(投影至 EPSG:3857 后的横坐标)。 + * @property {number} y - 相机位置 y 坐标(投影至 EPSG:3857 后的纵坐标)。 + * @property {number} z - 相机位置 z 坐标(投影至 EPSG:3857 后的高程)。 + * @property {number} fovX - 相机水平视场角,单位:度。内部通过 videoWidth 与该值换算为水平焦距 fx。 + * @property {number} fovY - 相机垂直视场角,单位:度。内部通过 videoHeight 与该值换算为垂直焦距 fy。 + * @property {number} centerX - 相机主点(光轴与图像平面交点)的水平像素坐标。 + * @property {number} centerY - 相机主点(光轴与图像平面交点)的垂直像素坐标。 + */ + /** * @class VideoMap * @classdesc 视频地图 @@ -168204,25 +169170,19 @@ var MAP_EVENTS = ['resize', 'webglcontextlost', 'webglcontextrestored', 'remove' * @version 11.2.0 * @modulecategory Mapping * @param {Object} options - 参数 - * @param {string} options.url - 视频 或 流链接。支持 flv, m3u8, map4 格式。 - * @param {string} options.videoParameters - 视频地图配准参数 - * @param {number} options.videoParameters.pitch - 俯仰角。 - * @param {number} options.videoParameters.roll - 侧偏角。 - * @param {number} options.videoParameters.yaw - 偏航角。 - * @param {number} options.videoParameters.x - 视频 x 坐标。 - * @param {number} options.videoParameters.y - 视频 y 坐标。 - * @param {number} options.videoParameters.z - 视频 z 坐标。 - * @param {number} options.videoParameters.fovX - 水平方向上以像素为单位的焦距。 - * @param {number} options.videoParameters.fovY - 垂直方向上以像素为单位的焦距。 - * @param {number} options.videoParameters.centerX - 相机中心的水平坐标。 - * @param {number} options.videoParameters.centerY - 相机中心的垂直坐标。 - * @param {string} [options.container='map'] - 地图容器id - * @param {string} [options.opencv] - opencv 实例 - * @param {function} [options.videoWidth] - 视频地图宽度,没设置时默认获取视频宽度 - * @param {function} [options.videoHeight] - 视频地图高度,没设置时默认获取视频高度 - * @param {Object} [options.styleOptions] - 视频地图风格配置 - * @param {string} [options.autoplay=true] - 视频是否自动播放 - * @param {string} [options.loop=true] - 视频是否循环播放 + * @param {string} options.url - 视频 或 流链接。支持 flv, m3u8, mp4 格式。 + * @param {VideoMap.VideoParameters|Array} options.videoParameters - 视频地图配准参数。传入对象时为静态配准(相机位置固定);传入数组时为动态配准,按视频时间动态更新相机参数。 + * @param {string|HTMLElement} [options.container='map'] - 地图容器 id 或 DOM 元素。 + * @param {Object} [options.opencv] - opencv.js 实例。未传入时取 window.cv;若均不存在将抛出异常。 + * @param {number} [options.videoWidth] - 视频宽度,单位像素。未设置时默认读取视频实际宽度。 + * @param {number} [options.videoHeight] - 视频高度,单位像素。未设置时默认读取视频实际高度。 + * @param {Object} [options.styleOptions] - 视频地图风格配置,对应 mapbox-gl 的 style 对象(sprite、glyphs 等)。 + * @param {boolean} [options.autoplay=true] - 视频是否自动播放。 + * @param {boolean} [options.loop=true] - 视频是否循环播放。 + * @param {number} [options.interval=0.1] - 动态配准参数的时间重采样间隔,单位秒。仅当 videoParameters 为数组时生效:对原始相机参数序列按该间隔做插值或抽稀,决定相机位置随时间变化的精度。 + * @param {number} [options.vectorUpdateInterval] - 矢量要素重投影的节流间隔,单位秒。默认等于 interval。仅当 videoParameters 为数组时生效:值越大矢量刷新越省性能但与视频背景错位越明显;设为小于 interval 无意义。 + * @fires VideoMap#load + * @fires VideoMap#vectorupdate * @extends {mapboxgl.Evented} * @usage *``` @@ -168255,7 +169215,9 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { videoWidth = options.videoWidth, videoHeight = options.videoHeight, opencv = options.opencv, - styleOptions = options.styleOptions; + styleOptions = options.styleOptions, + interval = options.interval, + vectorUpdateInterval = options.vectorUpdateInterval; _this.container = container || 'map'; _this.layerCache = {}; _this.sourceCache = {}; @@ -168271,7 +169233,15 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { if (!videoParameters) { throw new Error('videoParameters must be config!'); } - _this.videoParameters = videoParameters; + _this.interval = interval || 0.1; + _this.vectorUpdateInterval = vectorUpdateInterval || _this.interval; + _this.isTimeVarying = Array.isArray(videoParameters); + _this.videoParameters = _this.isTimeVarying ? smartTimeProcessor(_this.interval, videoParameters, ['yaw', 'pitch', 'roll', 'x', 'y', 'z']) : videoParameters; + if (_this.isTimeVarying) { + _this.timeSearcher = new FastRangeSearcher(_this.videoParameters.map(function (item) { + return item.time; + })); + } _this._createMap().then(function (map) { _this.map = map; _this._addVideoLayer(url); @@ -168330,6 +169300,118 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { this.sourceCache[id] = geojsonSource; } + /** + * @function VideoMap.prototype.updateAtTime + * @description 使用视频时间更新相机参数并重新投影已添加的 GeoJSON 数据源。 + * @param {number} time - 视频时间,单位秒。 + */ + }, { + key: "updateAtTime", + value: function updateAtTime(time) { + var _this2 = this; + if (!this.isTimeVarying || !this.timeSearcher || !this.coordTransfer) { + return; + } + if (time < this.currentTime) { + this.lastVectorUpdateTime = -Infinity; + } + this.currentTime = time; + if (this.pendingVectorUpdate || time - (this.lastVectorUpdateTime || -Infinity) < this.vectorUpdateInterval) { + return; + } + var range = this.timeSearcher.findRange(time); + if (!range) { + console.warn('[VideoMap] findRange 返回 null,time=', time, 'timeSearcher.data=', this.timeSearcher && this.timeSearcher.data); + return; + } + var index = range.index, + ratio = range.ratio; + var prev = this.videoParameters[index]; + var next = this.videoParameters[index + 1] || prev; + var lerp = function lerp(a, b) { + return a + (b - a) * ratio; + }; + this.coordTransfer.setCameraLocation({ + pitch: lerp(prev.pitch, next.pitch), + roll: lerp(prev.roll, next.roll), + yaw: lerp(prev.yaw, next.yaw), + x: lerp(prev.x, next.x), + y: lerp(prev.y, next.y), + z: lerp(prev.z, next.z), + fx: fovXToFx(lerp(prev.fovX, next.fovX), this.videoWidth), + fy: fovYToFy(lerp(prev.fovY, next.fovY), this.videoHeight), + centerX: lerp(prev.centerX, next.centerX), + centerY: lerp(prev.centerY, next.centerY) + }); + this.pendingVectorUpdate = true; + var update = function update() { + _this2.pendingVectorUpdate = false; + _this2.lastVectorUpdateTime = _this2.currentTime; + Object.keys(_this2.sourceCache).forEach(function (id) { + _this2.sourceCache[id].update(); + }); + /** + * @event VideoMap#vectorupdate + * @description 矢量要素重投影完成时触发。已打开的弹窗可监听此事件跟随要素位置更新。 + */ + _this2.fire('vectorupdate', { + time: _this2.currentTime + }); + }; + if (typeof window.requestAnimationFrame === 'function') { + window.requestAnimationFrame(update); + } else { + update(); + } + } + + /** + * @function VideoMap.prototype.toSpatialCoordinate + * @description 将视频地图坐标(lngLat)转换为真实地理坐标(EPSG:3857)。 + * @param {mapboxgl.LngLat} lngLat - 视频地图坐标。 + * @returns {Array|null} 真实地理坐标 [x, y, z](EPSG:3857),无法转换时返回 null。 + */ + }, { + key: "toSpatialCoordinate", + value: function toSpatialCoordinate(lngLat) { + if (!this.coordTransfer || !this.originCoordsLeftTop || !this.originCoordsRightBottom || !this.videoWidth || !this.videoHeight) { + return null; + } + var videoPixel = transformCoordReverse({ + coord: [lngLat.lng, lngLat.lat], + originCoordsRightBottom: this.originCoordsRightBottom, + originCoordsLeftTop: this.originCoordsLeftTop, + videoHeight: this.videoHeight, + videoWidth: this.videoWidth + }); + return this.coordTransfer.toSpatialCoordinate(videoPixel); + } + + /** + * @function VideoMap.prototype.toVideoMapCoordinate + * @description 将真实地理坐标(EPSG:3857)按当前相机参数投影到视频地图坐标。 + * @param {Array} spatialPoint - 真实地理坐标 [x, y] 或 [x, y, z](EPSG:3857)。 + * @returns {Array|null} 视频地图坐标 [lng, lat],无法转换时返回 null。 + */ + }, { + key: "toVideoMapCoordinate", + value: function toVideoMapCoordinate(spatialPoint) { + if (!this.coordTransfer || !this.originCoordsLeftTop || !this.originCoordsRightBottom || !this.videoWidth || !this.videoHeight) { + return null; + } + var videoCoord = this.coordTransfer.toVideoCoordinate(spatialPoint); + if (!videoCoord.data64F || videoCoord.data64F.length < 2) { + return null; + } + return transformCoord({ + videoPoint: videoCoord.data64F, + originCoordsRightBottom: this.originCoordsRightBottom, + originCoordsLeftTop: this.originCoordsLeftTop, + videoHeight: this.videoHeight, + videoWidth: this.videoWidth + }); + } + /** * @function VideoMap.prototype.removeLayer * @description 移除图层。 @@ -168402,17 +169484,17 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { }, { key: "_createMap", value: function _createMap() { - var _this2 = this; + var _this3 = this; return new Promise(function (resolve) { - var container = typeof _this2.container === 'string' ? window.document.getElementById(_this2.container) : _this2.container; + var container = typeof _this3.container === 'string' ? window.document.getElementById(_this3.container) : _this3.container; if (!container) { throw new Error("Container '".concat(container, "' not found.")); } - _this2.width = container.clientWidth || 400; - _this2.height = container.clientHeight || 300; + _this3.width = container.clientWidth || 400; + _this3.height = container.clientHeight || 300; var map = new (external_mapboxgl_default()).Map({ - container: _this2.container, - style: VideoMap_objectSpread(VideoMap_objectSpread({}, _this2.styleOptions), {}, { + container: _this3.container, + style: VideoMap_objectSpread(VideoMap_objectSpread({}, _this3.styleOptions), {}, { version: 8, sources: {}, layers: [] @@ -168434,35 +169516,49 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { }, { key: "_bindEvents", value: function _bindEvents() { - var _this3 = this; + var _this4 = this; this.videoMapLayer.on('loaded', /*#__PURE__*/function () { - var _ref2 = VideoMap_asyncToGenerator(/*#__PURE__*/VideoMap_regenerator().m(function _callee(_ref) { - var originCoordsLeftTop, originCoordsRightBottom, videoWidth, videoHeight; - return VideoMap_regenerator().w(function (_context) { - while (1) switch (_context.n) { + var _ref2 = VideoMap_asyncToGenerator(/*#__PURE__*/VideoMap_regeneratorRuntime().mark(function _callee(_ref) { + var originCoordsLeftTop, originCoordsRightBottom, videoWidth, videoHeight, initialParameters; + return VideoMap_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: originCoordsLeftTop = _ref.originCoordsLeftTop, originCoordsRightBottom = _ref.originCoordsRightBottom, videoWidth = _ref.videoWidth, videoHeight = _ref.videoHeight; - _this3.originCoordsLeftTop = originCoordsLeftTop; - _this3.originCoordsRightBottom = originCoordsRightBottom; - if (_this3.videoWidth === undefined) { - _this3.videoWidth = videoWidth; + _this4.originCoordsLeftTop = originCoordsLeftTop; + _this4.originCoordsRightBottom = originCoordsRightBottom; + if (_this4.videoWidth === undefined) { + _this4.videoWidth = videoWidth; } - if (_this3.videoHeight === undefined) { - _this3.videoHeight = videoHeight; + if (_this4.videoHeight === undefined) { + _this4.videoHeight = videoHeight; } - _context.n = 1; - return _this3._initParameters(_this3.videoParameters); - case 1: - _this3.coordTransfer = _context.v; - _this3._bindMapEventFn = _this3._bindMapEvent.bind(_this3); + initialParameters = _this4.isTimeVarying ? _this4.videoParameters[0] : _this4.videoParameters; + _context.next = 8; + return _this4._initParameters(initialParameters); + case 8: + _this4.coordTransfer = _context.sent; + if (_this4.isTimeVarying) { + _this4.currentTime = initialParameters.time; + _this4.videoMapLayer.on('timeupdate', function (_ref3) { + var time = _ref3.time; + _this4.updateAtTime(time); + }); + } + _this4._bindMapEventFn = _this4._bindMapEvent.bind(_this4); MAP_EVENTS.forEach(function (eventName) { - _this3.map.on(eventName, _this3._bindMapEventFn); + _this4.map.on(eventName, _this4._bindMapEventFn); }); - _this3.fire('load', { - map: _this3.map + /** + * @event VideoMap#load + * @description 视频地图加载完成时触发。此时可调用 addSource/addLayer 叠加矢量数据。 + * @property {mapboxgl.Map} map - 底层 mapbox-gl 地图实例。 + */ + _this4.fire('load', { + map: _this4.map }); - case 2: - return _context.a(2); + case 13: + case "end": + return _context.stop(); } }, _callee); })); @@ -168474,9 +169570,9 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { }, { key: "_clearEvents", value: function _clearEvents() { - var _this4 = this; + var _this5 = this; MAP_EVENTS.forEach(function (eventName) { - _this4.map.off(eventName, _this4._bindMapEventFn); + _this5.map.off(eventName, _this5._bindMapEventFn); }); } }, { @@ -168503,11 +169599,11 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { } }]); }((external_mapboxgl_default()).Evented); -;// ./src/mapboxgl/mapping/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/mapping/index.js -;// ./src/mapboxgl/index.js +;// CONCATENATED MODULE: ./src/mapboxgl/index.js /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ @@ -168517,7 +169613,7 @@ var VideoMap = /*#__PURE__*/function (_mapboxgl$Evented) { -;// ./src/mapboxgl/namespace.js +;// CONCATENATED MODULE: ./src/mapboxgl/namespace.js function mapboxgl_namespace_typeof(o) { "@babel/helpers - typeof"; return mapboxgl_namespace_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, mapboxgl_namespace_typeof(o); } function mapboxgl_namespace_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function mapboxgl_namespace_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? mapboxgl_namespace_ownKeys(Object(t), !0).forEach(function (r) { mapboxgl_namespace_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : mapboxgl_namespace_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } @@ -168541,7 +169637,7 @@ function mapboxgl_namespace_toPrimitive(t, r) { if ("object" != mapboxgl_namespa (external_mapboxgl_default()).supermap.map = (external_mapboxgl_default()).supermap.map || {}; (external_mapboxgl_default()).supermap.LogoControl = Logo; (external_mapboxgl_default()).supermap.Logo = Logo; -(external_mapboxgl_default()).supermap.Util = Util_Util; +(external_mapboxgl_default()).supermap.Util = core_Util_Util; (external_mapboxgl_default()).supermap.decryptSources = decryptSources; (external_mapboxgl_default()).supermap.WebMap = WebMap; (external_mapboxgl_default()).supermap.createWebMapV2BaseExtending = createWebMapV2BaseExtending; @@ -168604,7 +169700,7 @@ function mapboxgl_namespace_toPrimitive(t, r) { if ("object" != mapboxgl_namespa (external_mapboxgl_default()).supermap.Components.ChartView = ChartView; // 处理命名空间重名 -(external_mapboxgl_default()).supermap.CommonUtil = Util; +(external_mapboxgl_default()).supermap.CommonUtil = Util_Util; /***/ }), @@ -168846,19 +169942,19 @@ module.exports = function (O, key, value, options) { "use strict"; -var globalThis = __webpack_require__(4638); +var global = __webpack_require__(1697); // eslint-disable-next-line es/no-object-defineproperty -- safe var defineProperty = Object.defineProperty; module.exports = function (key, value) { try { - defineProperty(globalThis, key, { + defineProperty(global, key, { value: value, configurable: true, writable: true }); } catch (error) { - globalThis[key] = value; + global[key] = value; } return value; }; @@ -168891,9 +169987,9 @@ module.exports = !fails(function () { "use strict"; -var globalThis = __webpack_require__(4638); +var global = __webpack_require__(1697); var isObject = __webpack_require__(6220); -var document = globalThis.document; +var document = global.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { @@ -168902,40 +169998,26 @@ module.exports = function (it) { /***/ }), -/***/ 1009: +/***/ 8762: /***/ (function(module) { "use strict"; -// IE8- don't enum bug keys -module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']; +module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; /***/ }), -/***/ 1289: +/***/ 5950: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; -var globalThis = __webpack_require__(4638); -var navigator = globalThis.navigator; -var userAgent = navigator && navigator.userAgent; -module.exports = userAgent ? String(userAgent) : ''; - -/***/ }), - -/***/ 5161: -/***/ (function(module, __unused_webpack_exports, __webpack_require__) { - -"use strict"; - - -var globalThis = __webpack_require__(4638); -var userAgent = __webpack_require__(1289); -var process = globalThis.process; -var Deno = globalThis.Deno; +var global = __webpack_require__(1697); +var userAgent = __webpack_require__(8762); +var process = global.process; +var Deno = global.Deno; var versions = process && process.versions || Deno && Deno.version; var v8 = versions && versions.v8; var match, version; @@ -168959,6 +170041,17 @@ module.exports = version; /***/ }), +/***/ 1009: +/***/ (function(module) { + +"use strict"; + + +// IE8- don't enum bug keys +module.exports = ['constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf']; + +/***/ }), + /***/ 3768: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { @@ -168966,7 +170059,7 @@ module.exports = version; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } -var globalThis = __webpack_require__(4638); +var global = __webpack_require__(1697); var getOwnPropertyDescriptor = (__webpack_require__(1805).f); var createNonEnumerableProperty = __webpack_require__(5233); var defineBuiltIn = __webpack_require__(5414); @@ -168995,11 +170088,11 @@ module.exports = function (options, source) { var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { - target = globalThis; + target = global; } else if (STATIC) { - target = globalThis[TARGET] || defineGlobalProperty(TARGET, {}); + target = global[TARGET] || defineGlobalProperty(TARGET, {}); } else { - target = globalThis[TARGET] && globalThis[TARGET].prototype; + target = global[TARGET] && global[TARGET].prototype; } if (target) for (key in source) { sourceProperty = source[key]; @@ -169063,7 +170156,6 @@ module.exports = !fails(function () { var NATIVE_BIND = __webpack_require__(8574); var call = Function.prototype.call; -// eslint-disable-next-line es/no-function-prototype-bind -- safe module.exports = NATIVE_BIND ? call.bind(call) : function () { return call.apply(call, arguments); }; @@ -169102,7 +170194,6 @@ module.exports = { var NATIVE_BIND = __webpack_require__(8574); var FunctionPrototype = Function.prototype; var call = FunctionPrototype.call; -// eslint-disable-next-line es/no-function-prototype-bind -- safe var uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call); module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { return function () { @@ -169118,13 +170209,13 @@ module.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) { "use strict"; -var globalThis = __webpack_require__(4638); +var global = __webpack_require__(1697); var isCallable = __webpack_require__(2631); var aFunction = function aFunction(argument) { return isCallable(argument) ? argument : undefined; }; module.exports = function (namespace, method) { - return arguments.length < 2 ? aFunction(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method]; + return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; }; /***/ }), @@ -169147,7 +170238,7 @@ module.exports = function (V, P) { /***/ }), -/***/ 4638: +/***/ 1697: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { "use strict"; @@ -169273,7 +170364,7 @@ module.exports = store.inspectSource; var NATIVE_WEAK_MAP = __webpack_require__(5032); -var globalThis = __webpack_require__(4638); +var global = __webpack_require__(1697); var isObject = __webpack_require__(6220); var createNonEnumerableProperty = __webpack_require__(5233); var hasOwn = __webpack_require__(2791); @@ -169281,8 +170372,8 @@ var shared = __webpack_require__(4243); var sharedKey = __webpack_require__(109); var hiddenKeys = __webpack_require__(8551); var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; -var TypeError = globalThis.TypeError; -var WeakMap = globalThis.WeakMap; +var TypeError = global.TypeError; +var WeakMap = global.WeakMap; var set, get, has; var enforce = function enforce(it) { return has(it) ? get(it) : set(it, {}); @@ -169593,7 +170684,6 @@ module.exports = !$assign || fails(function () { var symbol = Symbol('assign detection'); var alphabet = 'abcdefghijklmnopqrst'; A[symbol] = 7; - // eslint-disable-next-line es/no-array-prototype-foreach -- safe alphabet.split('').forEach(function (chr) { B[chr] = chr; }); @@ -169865,8 +170955,8 @@ module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { "use strict"; -var globalThis = __webpack_require__(4638); -module.exports = globalThis; +var global = __webpack_require__(1697); +module.exports = global; /***/ }), @@ -169910,15 +171000,15 @@ module.exports = function (key) { var IS_PURE = __webpack_require__(497); -var globalThis = __webpack_require__(4638); +var globalThis = __webpack_require__(1697); var defineGlobalProperty = __webpack_require__(6507); var SHARED = '__core-js_shared__'; var store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {}); (store.versions || (store.versions = [])).push({ - version: '3.49.0', + version: '3.37.1', mode: IS_PURE ? 'pure' : 'global', - copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.', - license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE', + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE', source: 'https://github.com/zloirock/core-js' }); @@ -169944,10 +171034,10 @@ module.exports = function (key, value) { /* eslint-disable es/no-symbol -- required for testing */ -var V8_VERSION = __webpack_require__(5161); +var V8_VERSION = __webpack_require__(5950); var fails = __webpack_require__(4877); -var globalThis = __webpack_require__(4638); -var $String = globalThis.String; +var global = __webpack_require__(1697); +var $String = global.String; // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing module.exports = !!Object.getOwnPropertySymbols && !fails(function () { @@ -170128,7 +171218,7 @@ module.exports = function (argument) { var uncurryThis = __webpack_require__(398); var id = 0; var postfix = Math.random(); -var toString = uncurryThis(1.1.toString); +var toString = uncurryThis(1.0.toString); module.exports = function (key) { return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); }; @@ -170175,9 +171265,9 @@ module.exports = DESCRIPTORS && fails(function () { "use strict"; -var globalThis = __webpack_require__(4638); +var global = __webpack_require__(1697); var isCallable = __webpack_require__(2631); -var WeakMap = globalThis.WeakMap; +var WeakMap = global.WeakMap; module.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap)); /***/ }), @@ -170218,13 +171308,13 @@ exports.f = wellKnownSymbol; "use strict"; -var globalThis = __webpack_require__(4638); +var global = __webpack_require__(1697); var shared = __webpack_require__(4499); var hasOwn = __webpack_require__(2791); var uid = __webpack_require__(606); var NATIVE_SYMBOL = __webpack_require__(7161); var USE_SYMBOL_AS_UID = __webpack_require__(5970); -var _Symbol = globalThis.Symbol; +var _Symbol = global.Symbol; var WellKnownSymbolsStore = shared('wks'); var createWellKnownSymbol = USE_SYMBOL_AS_UID ? _Symbol['for'] || _Symbol : _Symbol && _Symbol.withoutSetter || uid; module.exports = function (name) { @@ -170380,14 +171470,6 @@ module.exports = parent; /******/ }; /******/ }(); /******/ -/******/ /* webpack/runtime/set anonymous default export name */ -/******/ !function() { -/******/ // set .name for anonymous default exports per ES spec -/******/ __webpack_require__.dn = function(x) { -/******/ (Object.getOwnPropertyDescriptor(x, "name") || {}).writable || Object.defineProperty(x, "name", { value: "default", configurable: true }); -/******/ }; -/******/ }(); -/******/ /************************************************************************/ /******/ /******/ // startup @@ -170395,7 +171477,7 @@ module.exports = parent; /******/ // This entry module is referenced by other modules so it can't be inlined /******/ __webpack_require__(9784); /******/ __webpack_require__(961); -/******/ __webpack_require__(2880); +/******/ __webpack_require__(8099); /******/ var __webpack_exports__ = __webpack_require__(4539); /******/ /******/ })() diff --git a/dist/mapboxgl/iclient-mapboxgl.min.css b/dist/mapboxgl/iclient-mapboxgl.min.css index 094a33c06e..17450f36b0 100644 --- a/dist/mapboxgl/iclient-mapboxgl.min.css +++ b/dist/mapboxgl/iclient-mapboxgl.min.css @@ -3,6 +3,6 @@ * iclient-mapboxgl * Copyright© 2000 - 2026 SuperMap Software Co.Ltd * license: Apache-2.0 - * version: v12.1.0-r + * version: v12.1.1-dev * - */@font-face{font-family:supermapol-icons;src:url(data:application/vnd.ms-fontobject;base64,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AAAAPwAA5nwAAOZ8AAAAQAAA5n0AAOZ9AAAAQQAA5n4AAOZ+AAAAQgAA5n8AAOZ/AAAAQwAA5oAAAOaAAAAARAAA5oEAAOaBAAAARQAA5oIAAOaCAAAARgAA5oMAAOaDAAAARwAA5oQAAOaEAAAASAAA5oUAAOaFAAAASQAA5oYAAOaGAAAASgAA5ocAAOaHAAAASwAA5ogAAOaIAAAATAAA5okAAOaJAAAATQAA5ooAAOaKAAAATgAA5osAAOaLAAAATwAA5owAAOaMAAAAUAAA5o0AAOaNAAAAUQAA5o4AAOaOAAAAUgAA5o8AAOaPAAAAUwAA5pAAAOaQAAAAVAAA5pEAAOaRAAAAVQAA5pIAAOaSAAAAVgAA5pMAAOaTAAAAVwAA5pQAAOaUAAAAWAAA5pUAAOaVAAAAWQAA5pYAAOaWAAAAWgAA5pcAAOaXAAAAWwAA5pgAAOaYAAAAXAAA5pkAAOaZAAAAXQAA5poAAOaaAAAAXgAA5psAAOabAAAAXwAA5pwAAOacAAAAYAAA5p0AAOadAAAAYQAA5p4AAOaeAAAAYgAA5p8AAOafAAAAZQAA5qAAAOagAAAAYwAA5qEAAOahAAAAZAAA5qIAAOaiAAAAZgAA5qMAAOajAAAAZwAA5qQAAOakAAAAaAAA5qUAAOalAAAAaQAA5qYAAOamAAAAagAA5qcAAOanAAAAawAA5qgAAOaoAAAAbAAA5qkAAOapAAAAbQAA5qoAAOaqAAAAbgAA5qsAAOarAAAAbwAA5qwAAOasAAAAcAAA5q0AAOatAAAAcQAA5q4AAOauAAAAcgAA5q8AAOavAAAAcwAA5rAAAOawAAAAdAAA5rEAAOaxAAAAdQAA5rIAAOayAAAAdgAA5rMAAOazAAAAdwAA5rQAAOa0AAAAeAAA5rUAAOa1AAAAeQAA5rYAAOa2AAAAegAA5rcAAOa3AAAAewAA5rgAAOa4AAAAfAAA5rkAAOa5AAAAfQAA5roAAOa6AAAAfgAA5rsAAOa7AAAAfwAA5rwAAOa8AAAAgAAA5r0AAOa9AAAAgQAA5r4AAOa+AAAAggAA5r8AAOa/AAAAgwAA5sAAAObAAAAAhAAA5sEAAObBAAAAhQAA5sIAAObCAAAAhgAA5sMAAObDAAAAhwAA5sQAAObEAAAAiAAA5sUAAObFAAAAiQAA5sYAAObG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dABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUABG1vcmUGZGVsZXRlB3Zpc2libGUHem9vbS10bwZvdXRwdXQHb3BhY2l0eQpsYXllci1pbmZvBHNhdmULbGF5ZXItc3R5bGUKbGluZS1sYXllcgRza2luDG1hcmtlci1sYXllcgtwb2ludC1sYXllcg1wb2x5Z29uLWxheWVyCWludmlzaWJsZQZzZWFyY2gEZWRpdAZsYXllcnMJYmFzZWxheWVyB3NldHRpbmcDYWRkB3ByZXZpZXcHcmVmcmVzaA5zb2xpZC10cmlhbmdsZQtyb2FkbmV0d29yawZyZXR1cm4GcGFja3VwBXNoYXJlDGJhY2tob21lcGFnZQZNeU1hcHMJQ3JlYXRlTWFwCGZlZWRiYWNrBXNraW4xBlNoYXBlLQdhY2NvdW50B1NoYXBlLTEHU2hhcGUtMgdTaGFwZS0zB1NoYXBlLTQHU2hhcGUtNQdTaGFwZS02B1NoYXBlLTcHU2hhcGUtOAdTaGFwZS05CFNoYXBlLTEwCFNoYXBlLTExCFNoYXBlLTEyCFNoYXBlLTEzCFNoYXBlLTE0CFNoYXBlLTE1CFNoYXBlLTE2CFNoYXBlLTE3CFNoYXBlLTE4CFNoYXBlLTE5CFNoYXBlLTIwCFNoYXBlLTIxCFNoYXBlLTIyCFNoYXBlLTIzCFNoYXBlLTI0CFNoYXBlLTI1CFNoYXBlLTI2CFNoYXBlLTI3CFNoYXBlLTI4CFNoYXBlLTI5CFNoYXBlLTMwCFNoYXBlLTMxCFNoYXBlLTMyCFNoYXBlLTMzCFNoYXBlLTM0CFNoYXBlLTM1CFNoYXBlLTM2CFNoYXBlLTM3CFNoYXBlLTM4CFNoYXBlLTM5CFNoYXBlLTQwCFNoYXBlLTQxCFNoYXBlLTQyCFNoYXBlLTQzCFNoYXBlLTQ0CFNoYXBlLTQ1CFNoYXBlLTQ2CFNoYXBlLTQ3CFNoYXBlLTQ4CFNoYXBlLTQ5CFNoYXBlLTUwCFNoYXBlLTUxCFNoYXBlLTUyCFNoYXBlLTUzCFNoYXBlLTU0CFNoYXBlLTU1CFNoYXBlLTU2CFNoYXBlLTU3CFNoYXBlLTU4CFNoYXBlLTU5BE92YWwJUmVjdGFuZ2xlBFN0YXIIVHJpYW5nbGUOcmVzdG9yZWRlZmF1bHQJdXBsb2FkaW5nBWVycm9yBnpvb21pbgd6b29tb3V0BWZpcnN0BG5leHQEbGFzdARwcmV2CHBvaS1sb2FkCHBvaS1zYXZlBGZvbGQMbGFiZWwtZGVsZXRlBnVwbG9hZAZ1bmZvbGQFY2xvc2UEbWFyawd0cmFmZmljC2Z1bGwtZmlndXJlB21lYXN1cmUMZGlzcGxheS1saXN0CWhpZGUtbGlzdAZyZW5hbWUEY29weQdxcS16b25lCnNpbmEtd2VpYm8MY29sb3ItY2hhbmdlEGNyZWF0LWN1c3RvbS1tYXAKY3VzdG9tLW1hcAtsZWdlbmQtZm9sZA1sZWdlbmQtdW5mb2xkCmxlZ2VuZC1iaWcJYXR0cmlidXRlDGxlZ2VuZC1zbWFsbAxjbG9zZS1sZWdlbmQKZm9udC1jb2xvcgRib2xkB2l0YWxpY3MEZm9udA1qdXN0aWZ5LWFsaWduD21pZGRsZS1hbGlnbm1lbglmb250LXNpemUJc3RyaWtlb3V0CnRleHQtbGF5ZXIPcmlnaHQtYWxpZ25tZW50DmxlZnQtYWxpZ25tZW50FHRyYW5zcGFyZW50LWJhY2tncm91CXVuZGVybGluZQVxdWVyeQAAAAA=);src:url(data:application/vnd.ms-fontobject;base64,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AAAAPwAA5nwAAOZ8AAAAQAAA5n0AAOZ9AAAAQQAA5n4AAOZ+AAAAQgAA5n8AAOZ/AAAAQwAA5oAAAOaAAAAARAAA5oEAAOaBAAAARQAA5oIAAOaCAAAARgAA5oMAAOaDAAAARwAA5oQAAOaEAAAASAAA5oUAAOaFAAAASQAA5oYAAOaGAAAASgAA5ocAAOaHAAAASwAA5ogAAOaIAAAATAAA5okAAOaJAAAATQAA5ooAAOaKAAAATgAA5osAAOaLAAAATwAA5owAAOaMAAAAUAAA5o0AAOaNAAAAUQAA5o4AAOaOAAAAUgAA5o8AAOaPAAAAUwAA5pAAAOaQAAAAVAAA5pEAAOaRAAAAVQAA5pIAAOaSAAAAVgAA5pMAAOaTAAAAVwAA5pQAAOaUAAAAWAAA5pUAAOaVAAAAWQAA5pYAAOaWAAAAWgAA5pcAAOaXAAAAWwAA5pgAAOaYAAAAXAAA5pkAAOaZAAAAXQAA5poAAOaaAAAAXgAA5psAAOabAAAAXwAA5pwAAOacAAAAYAAA5p0AAOadAAAAYQAA5p4AAOaeAAAAYgAA5p8AAOafAAAAZQAA5qAAAOagAAAAYwAA5qEAAOahAAAAZAAA5qIAAOaiAAAAZgAA5qMAAOajAAAAZwAA5qQAAOakAAAAaAAA5qUAAOalAAAAaQAA5qYAAOamAAAAagAA5qcAAOanAAAAawAA5qgAAOaoAAAAbAAA5qkAAOapAAAAbQAA5qoAAOaqAAAAbgAA5qsAAOarAAAAbwAA5qwAAOasAAAAcAAA5q0AAOatAAAAcQAA5q4AAOauAAAAcgAA5q8AAOavAAAAcwAA5rAAAOawAAAAdAAA5rEAAOaxAAAAdQAA5rIAAOayAAAAdgAA5rMAAOazAAAAdwAA5rQAAOa0AAAAeAAA5rUAAOa1AAAAeQAA5rYAAOa2AAAAegAA5rcAAOa3AAAAewAA5rgAAOa4AAAAfAAA5rkAAOa5AAAAfQAA5roAAOa6AAAAfgAA5rsAAOa7AAAAfwAA5rwAAOa8AAAAgAAA5r0AAOa9AAAAgQAA5r4AAOa+AAAAggAA5r8AAOa/AAAAgwAA5sAAAObAAAAAhAAA5sEAAObBAAAAhQAA5sIAAObCAAAAhgAA5sMAAObDAAAAhwAA5sQAAObEAAAAiAAA5sUAAObFAAAAiQAA5sYAAObG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dABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUABG1vcmUGZGVsZXRlB3Zpc2libGUHem9vbS10bwZvdXRwdXQHb3BhY2l0eQpsYXllci1pbmZvBHNhdmULbGF5ZXItc3R5bGUKbGluZS1sYXllcgRza2luDG1hcmtlci1sYXllcgtwb2ludC1sYXllcg1wb2x5Z29uLWxheWVyCWludmlzaWJsZQZzZWFyY2gEZWRpdAZsYXllcnMJYmFzZWxheWVyB3NldHRpbmcDYWRkB3ByZXZpZXcHcmVmcmVzaA5zb2xpZC10cmlhbmdsZQtyb2FkbmV0d29yawZyZXR1cm4GcGFja3VwBXNoYXJlDGJhY2tob21lcGFnZQZNeU1hcHMJQ3JlYXRlTWFwCGZlZWRiYWNrBXNraW4xBlNoYXBlLQdhY2NvdW50B1NoYXBlLTEHU2hhcGUtMgdTaGFwZS0zB1NoYXBlLTQHU2hhcGUtNQdTaGFwZS02B1NoYXBlLTcHU2hhcGUtOAdTaGFwZS05CFNoYXBlLTEwCFNoYXBlLTExCFNoYXBlLTEyCFNoYXBlLTEzCFNoYXBlLTE0CFNoYXBlLTE1CFNoYXBlLTE2CFNoYXBlLTE3CFNoYXBlLTE4CFNoYXBlLTE5CFNoYXBlLTIwCFNoYXBlLTIxCFNoYXBlLTIyCFNoYXBlLTIzCFNoYXBlLTI0CFNoYXBlLTI1CFNoYXBlLTI2CFNoYXBlLTI3CFNoYXBlLTI4CFNoYXBlLTI5CFNoYXBlLTMwCFNoYXBlLTMxCFNoYXBlLTMyCFNoYXBlLTMzCFNoYXBlLTM0CFNoYXBlLTM1CFNoYXBlLTM2CFNoYXBlLTM3CFNoYXBlLTM4CFNoYXBlLTM5CFNoYXBlLTQwCFNoYXBlLTQxCFNoYXBlLTQyCFNoYXBlLTQzCFNoYXBlLTQ0CFNoYXBlLTQ1CFNoYXBlLTQ2CFNoYXBlLTQ3CFNoYXBlLTQ4CFNoYXBlLTQ5CFNoYXBlLTUwCFNoYXBlLTUxCFNoYXBlLTUyCFNoYXBlLTUzCFNoYXBlLTU0CFNoYXBlLTU1CFNoYXBlLTU2CFNoYXBlLTU3CFNoYXBlLTU4CFNoYXBlLTU5BE92YWwJUmVjdGFuZ2xlBFN0YXIIVHJpYW5nbGUOcmVzdG9yZWRlZmF1bHQJdXBsb2FkaW5nBWVycm9yBnpvb21pbgd6b29tb3V0BWZpcnN0BG5leHQEbGFzdARwcmV2CHBvaS1sb2FkCHBvaS1zYXZlBGZvbGQMbGFiZWwtZGVsZXRlBnVwbG9hZAZ1bmZvbGQFY2xvc2UEbWFyawd0cmFmZmljC2Z1bGwtZmlndXJlB21lYXN1cmUMZGlzcGxheS1saXN0CWhpZGUtbGlzdAZyZW5hbWUEY29weQdxcS16b25lCnNpbmEtd2VpYm8MY29sb3ItY2hhbmdlEGNyZWF0LWN1c3RvbS1tYXAKY3VzdG9tLW1hcAtsZWdlbmQtZm9sZA1sZWdlbmQtdW5mb2xkCmxlZ2VuZC1iaWcJYXR0cmlidXRlDGxlZ2VuZC1zbWFsbAxjbG9zZS1sZWdlbmQKZm9udC1jb2xvcgRib2xkB2l0YWxpY3MEZm9udA1qdXN0aWZ5LWFsaWduD21pZGRsZS1hbGlnbm1lbglmb250LXNpemUJc3RyaWtlb3V0CnRleHQtbGF5ZXIPcmlnaHQtYWxpZ25tZW50DmxlZnQtYWxpZ25tZW50FHRyYW5zcGFyZW50LWJhY2tncm91CXVuZGVybGluZQVxdWVyeQAAAAA=#iefix) format('embedded-opentype'),url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff'),url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzI8mUjKAAABfAAAAFZjbWFwfcBs8QAABCQAAAmUZ2x5ZtwLMZ8AAA7kAABlIGhlYWQT9jKMAAAA4AAAADZoaGVhCKcE0gAAALwAAAAkaG10eFI+/8gAAAHUAAACUGxvY2HC6afsAAANuAAAASptYXhwAa0BBwAAARgAAAAgbmFtZX5D7ioAAHQEAAACzXBvc3RaE1x4AAB21AAABoIAAQAAA4D/gABcBNv/7P/iBNwAAQAAAAAAAAAAAAAAAAAAAJQAAQAAAAEAALflHxpfDzz1AAsEAAAAAADYB3dIAAAAANgHd0j/7P96BNwDhQAAAAgAAgAAAAAAAAABAAAAlAD7AA8AAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQQEAZAABQAIAokCzAAAAI8CiQLMAAAB6wAyAQgAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA5h3mzwOA/4AAXAOFAIYAAAABAAAAAAAABAAAAAQAAAAEAAAABAD/+AQA//8EAP//BAAAAAQA//oEAAAABAD//wQA//8EwAAABAAAAAQA//8EAAAABAD/+AQ/AAAEAAAABDgAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA//4EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQA/+wEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAP/+BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAATbAAAEAAAABAAAAAQA//0EAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEH///BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAD//wQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAUAAAADAAAALAAAAAQAAAKgAAEAAAAAAZoAAwABAAAALAADAAoAAAKgAAQBbgAAAA4ACAACAAbmHeYi5iXmMOY+5s///wAA5h3mH+Yl5ifmM+ZZ//8AAAAAAAAAAAAAAAAAAQAOAA4AFAAUACYAPAAAAAEAAgADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAWABUAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBlAGMAZABmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AH8AgACBAIIAgwCEAIUAhgCHAIgAiQCKAIsAjACNAI4AjwCQAJEAkgCTAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAb0AAAAAAAAAJMAAOYdAADmHQAAAAEAAOYfAADmHwAAAAIAAOYgAADmIAAAAAMAAOYhAADmIQAAAAQAAOYiAADmIgAAAAUAAOYlAADmJQAAAAYAAOYnAADmJwAAAAcAAOYoAADmKAAAAAgAAOYpAADmKQAAAAkAAOYqAADmKgAAAAoAAOYrAADmKwAAAAsAAOYsAADmLAAAAAwAAOYtAADmLQAAAA0AAOYuAADmLgAAAA4AAOYvAADmLwAAAA8AAOYwAADmMAAAABAAAOYzAADmMwAAABEAAOY0AADmNAAAABIAAOY1AADmNQAAABMAAOY2AADmNgAAABQAAOY3AADmNwAAABYAAOY4AADmOAAAABUAAOY5AADmOQAAABcAAOY6AADmOgAAABgAAOY7AADmOwAAABkAAOY8AADmPAAAABoAAOY9AADmPQAAABsAAOY+AADmPgAAABwAAOZZAADmWQAAAB0AAOZaAADmWgAAAB4AAOZbAADmWwAAAB8AAOZcAADmXAAAACAAAOZdAADmXQAAACEAAOZeAADmXgAAACIAAOZfAADmXwAAACMAAOZgAADmYAAAACQAAOZhAADmYQAAACUAAOZiAADmYgAAACYAAOZjAADmYwAAACcAAOZkAADmZAAAACgAAOZlAADmZQAAACkAAOZmAADmZgAAACoAAOZnAADmZwAAACsAAOZoAADmaAAAACwAAOZpAADmaQAAAC0AAOZqAADmagAAAC4AAOZrAADmawAAAC8AAOZsAADmbAAAADAAAOZtAADmbQAAADEAAOZuAADmbgAAADIAAOZvAADmbwAAADMAAOZwAADmcAAAADQAAOZxAADmcQAAADUAAOZyAADmcgAAADYAAOZzAADmcwAAADcAAOZ0AADmdAAAADgAAOZ1AADmdQAAADkAAOZ2AADmdgAAADoAAOZ3AADmdwAAADsAAOZ4AADmeAAAADwAAOZ5AADmeQAAAD0AAOZ6AADmegAAAD4AAOZ7AADmewAAAD8AAOZ8AADmfAAAAEAAAOZ9AADmfQAAAEEAAOZ+AADmfgAAAEIAAOZ/AADmfwAAAEMAAOaAAADmgAAAAEQAAOaBAADmgQAAAEUAAOaCAADmggAAAEYAAOaDAADmgwAAAEcAAOaEAADmhAAAAEgAAOaFAADmhQAAAEkAAOaGAADmhgAAAEoAAOaHAADmhwAAAEsAAOaIAADmiAAAAEwAAOaJAADmiQAAAE0AAOaKAADmigAAAE4AAOaLAADmiwAAAE8AAOaMAADmjAAAAFAAAOaNAADmjQAAAFEAAOaOAADmjgAAAFIAAOaPAADmjwAAAFMAAOaQAADmkAAAAFQAAOaRAADmkQAAAFUAAOaSAADmkgAAAFYAAOaTAADmkwAAAFcAAOaUAADmlAAAAFgAAOaVAADmlQAAAFkAAOaWAADmlgAAAFoAAOaXAADmlwAAAFsAAOaYAADmmAAAAFwAAOaZAADmmQAAAF0AAOaaAADmmgAAAF4AAOabAADmmwAAAF8AAOacAADmnAAAAGAAAOadAADmnQAAAGEAAOaeAADmngAAAGIAAOafAADmnwAAAGUAAOagAADmoAAAAGMAAOahAADmoQAAAGQAAOaiAADmogAAAGYAAOajAADmowAAAGcAAOakAADmpAAAAGgAAOalAADmpQAAAGkAAOamAADmpgAAAGoAAOanAADmpwAAAGsAAOaoAADmqAAAAGwAAOapAADmqQAAAG0AAOaqAADmqgAAAG4AAOarAADmqwAAAG8AAOasAADmrAAAAHAAAOatAADmrQAAAHEAAOauAADmrgAAAHIAAOavAADmrwAAAHMAAOawAADmsAAAAHQAAOaxAADmsQAAAHUAAOayAADmsgAAAHYAAOazAADmswAAAHcAAOa0AADmtAAAAHgAAOa1AADmtQAAAHkAAOa2AADmtgAAAHoAAOa3AADmtwAAAHsAAOa4AADmuAAAAHwAAOa5AADmuQAAAH0AAOa6AADmugAAAH4AAOa7AADmuwAAAH8AAOa8AADmvAAAAIAAAOa9AADmvQAAAIEAAOa+AADmvgAAAIIAAOa/AADmvwAAAIMAAObAAADmwAAAAIQAAObBAADmwQAAAIUAAObCAADmwgAAAIYAAObDAADmwwAAAIcAAObEAADmxAAAAIgAAObFAADmxQAAAIkAAObGAADmxgAAAIoAAObHAADmxwAAAIsAAObIAADmyAAAAIwAAObJAADmyQAAAI0AAObKAADmygAAAI4AAObLAADmywAAAI8AAObMAADmzAAAAJAAAObNAADmzQAAAJEAAObOAADmzgAAAJIAAObPAADmzwAAAJMAAAAAAC4AuAEcAXYByAH2AmACogMOAz4DxgP2BDgEqAUcBWgFsgXiBrAHLgdCB7QIYgh8COIJAglICYwKBgpaCqwK/gt8C6AMRAywDPANYA3KDgYOeA7e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AUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAARtb3JlBmRlbGV0ZQd2aXNpYmxlB3pvb20tdG8Gb3V0cHV0B29wYWNpdHkKbGF5ZXItaW5mbwRzYXZlC2xheWVyLXN0eWxlCmxpbmUtbGF5ZXIEc2tpbgxtYXJrZXItbGF5ZXILcG9pbnQtbGF5ZXINcG9seWdvbi1sYXllcglpbnZpc2libGUGc2VhcmNoBGVkaXQGbGF5ZXJzCWJhc2VsYXllcgdzZXR0aW5nA2FkZAdwcmV2aWV3B3JlZnJlc2gOc29saWQtdHJpYW5nbGULcm9hZG5ldHdvcmsGcmV0dXJuBnBhY2t1cAVzaGFyZQxiYWNraG9tZXBhZ2UGTXlNYXBzCUNyZWF0ZU1hcAhmZWVkYmFjawVza2luMQZTaGFwZS0HYWNjb3VudAdTaGFwZS0xB1NoYXBlLTIHU2hhcGUtMwdTaGFwZS00B1NoYXBlLTUHU2hhcGUtNgdTaGFwZS03B1NoYXBlLTgHU2hhcGUtOQhTaGFwZS0xMAhTaGFwZS0xMQhTaGFwZS0xMghTaGFwZS0xMwhTaGFwZS0xNAhTaGFwZS0xNQhTaGFwZS0xNghTaGFwZS0xNwhTaGFwZS0xOAhTaGFwZS0xOQhTaGFwZS0yMAhTaGFwZS0yMQhTaGFwZS0yMghTaGFwZS0yMwhTaGFwZS0yNAhTaGFwZS0yNQhTaGFwZS0yNghTaGFwZS0yNwhTaGFwZS0yOAhTaGFwZS0yOQhTaGFwZS0zMAhTaGFwZS0zMQhTaGFwZS0zMghTaGFwZS0zMwhTaGFwZS0zNAhTaGFwZS0zNQhTaGFwZS0zNghTaGFwZS0zNwhTaGFwZS0zOAhTaGFwZS0zOQhTaGFwZS00MAhTaGFwZS00MQhTaGFwZS00MghTaGFwZS00MwhTaGFwZS00NAhTaGFwZS00NQhTaGFwZS00NghTaGFwZS00NwhTaGFwZS00OAhTaGFwZS00OQhTaGFwZS01MAhTaGFwZS01MQhTaGFwZS01MghTaGFwZS01MwhTaGFwZS01NAhTaGFwZS01NQhTaGFwZS01NghTaGFwZS01NwhTaGFwZS01OAhTaGFwZS01OQRPdmFsCVJlY3RhbmdsZQRTdGFyCFRyaWFuZ2xlDnJlc3RvcmVkZWZhdWx0CXVwbG9hZGluZwVlcnJvcgZ6b29taW4Hem9vbW91dAVmaXJzdARuZXh0BGxhc3QEcHJldghwb2ktbG9hZAhwb2ktc2F2ZQRmb2xkDGxhYmVsLWRlbGV0ZQZ1cGxvYWQGdW5mb2xkBWNsb3NlBG1hcmsHdHJhZmZpYwtmdWxsLWZpZ3VyZQdtZWFzdXJlDGRpc3BsYXktbGlzdAloaWRlLWxpc3QGcmVuYW1lBGNvcHkHcXEtem9uZQpzaW5hLXdlaWJvDGNvbG9yLWNoYW5nZRBjcmVhdC1jdXN0b20tbWFwCmN1c3RvbS1tYXALbGVnZW5kLWZvbGQNbGVnZW5kLXVuZm9sZApsZWdlbmQtYmlnCWF0dHJpYnV0ZQxsZWdlbmQtc21hbGwMY2xvc2UtbGVnZW5kCmZvbnQtY29sb3IEYm9sZAdpdGFsaWNzBGZvbnQNanVzdGlmeS1hbGlnbg9taWRkbGUtYWxpZ25tZW4JZm9udC1zaXplCXN0cmlrZW91dAp0ZXh0LWxheWVyD3JpZ2h0LWFsaWdubWVudA5sZWZ0LWFsaWdubWVudBR0cmFuc3BhcmVudC1iYWNrZ3JvdQl1bmRlcmxpbmUFcXVlcnkAAAAA) format('truetype'),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPCEtLQoyMDEzLTktMzA6IENyZWF0ZWQuCi0tPgo8c3ZnPgo8bWV0YWRhdGE+CkNyZWF0ZWQgYnkgaWNvbmZvbnQKPC9tZXRhZGF0YT4KPGRlZnM+Cgo8Zm9udCBpZD0ic3VwZXJtYXBvbC1pY29ucyIgaG9yaXotYWR2LXg9IjEwMjQiID4KICA8Zm9udC1mYWNlCiAgICBmb250LWZhbWlseT0ic3VwZXJtYXBvbC1pY29ucyIKICAgIGZvbnQtd2VpZ2h0PSI1MDAiCiAgICBmb250LXN0cmV0Y2g9Im5vcm1hbCIKICAgIHVuaXRzLXBlci1lbT0iMTAyNCIKICAgIGFzY2VudD0iODk2IgogICAgZGVzY2VudD0iLTEyOCIKICAvPgogICAgPG1pc3NpbmctZ2x5cGggLz4KICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Im1vcmUiIHVuaWNvZGU9IiYjNTg5MDk7IiBkPSJNNTMwLjI4NTcxNCAxMjhhOTEuNDI4NTcxIDkxLjQyODU3MSAwIDEgMSAwLTE4Mi44NTcxNDMgOTEuNDI4NTcxIDkxLjQyODU3MSAwIDAgMSAwIDE4Mi44NTcxNDN6IG0wIDM2NS42NDExNDNhOTEuNDI4NTcxIDkxLjQyODU3MSAwIDEgMSAwLTE4Mi44NTcxNDMgOTEuNDI4NTcxIDkxLjQyODU3MSAwIDAgMSAwIDE4Mi44NTcxNDN6IG0wIDE4Mi44NTcxNDNhOTEuNDI4NTcxIDkxLjQyODU3MSAwIDEgMSAwIDE4Mi44NTcxNDMgOTEuNDI4NTcxIDkxLjQyODU3MSAwIDAgMSAwLTE4Mi44NTcxNDN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZGVsZXRlIiB1bmljb2RlPSImIzU4OTExOyIgZD0iTTEzNS44ODE0OC0xMTQuOTgyNDMxYTEwNy41MDQ2NDIgMTA3LjUwNDY0MiAwIDAgMC04LjU1NjQ5MiA4LjU1NjQ5MmMzLjE0NDY5NC0zLjA3MTU2MSA1LjcwNDMyOC02LjA2OTk5IDguNTU2NDkyLTguNTU2NDkyeiBtLTEwLjk2OTg2MSA0LjY4MDQ3NGMtMi45MjUyOTYgMi43NzkwMzItNS44NTA1OTMgNS40ODQ5MzEtOC42Mjk2MjUgOC41NTY0OTIgMi43MDU4OTktMy4wNzE1NjEgNS42MzExOTYtNS44NTA1OTMgOC41NTY0OTItOC41NTY0OTJ6TTEwMTEuNzg4MzUgNzM3LjA4MzI3NGE0Mi45Mjg3MjQgNDIuOTI4NzI0IDAgMCAxLTI5Ljk4NDI4OCAxMi4yMTMxMTJoLTIxMC4xODI1NDV2NjUuODE5MTY5Qzc3MS42OTQ2NSA4NTkuNzk5NDU3IDczNS42NDAzNzIgODk2IDY5MS4zOTUyNjQgODk2SDMzMi4zODgyNjVDMjg4LjE0MzE1NyA4OTYgMjUyLjA4ODg3OSA4NTkuNzk5NDU3IDI1Mi4wODg4NzkgODE1LjE4ODY4N3YtNjUuODkyMzAxSDQwLjczNjIxNUE0MC45NTQxNDkgNDAuOTU0MTQ5IDAgMCAxIDAuMDAxNDYzIDcwOC4xOTU5NzJjMC0yMi42NzEwNDcgMTguMjgzMTAyLTQwLjk1NDE0OSA0MC44MDc4ODQtNDAuOTU0MTQ5aDM1Ljk4MTE0NnYtNzE0LjI4NDI0NmMwLTQ0LjYxMDc3IDM1Ljk4MTE0Ni04MC44MTEzMTMgODAuMjk5Mzg2LTgwLjgxMTMxMmg3MjEuMDg1NTU5YzQ0LjMxODI0IDAgODAuMjk5Mzg2IDM2LjIwMDU0MyA4MC4yOTkzODYgODAuODExMzEyVjY2Ny4xNjg2OWgyMy40MDIzNzFjMjIuNTI0NzgyIDAgNDEuOTc4MDAzIDE4LjI4MzEwMiA0MS45NzgwMDMgNDEuMDI3MjgyYTQwLjY2MTYyIDQwLjY2MTYyIDAgMCAxLTExLjk5MzcxNSAyOC44ODczMDJ6TTMzMi4yNDIgODE0Ljk2OTI5aDM1OC43MTQ0Njl2LTY2LjMzMTA5NUgzMzIuMjQyeiBtNTQ1Ljc4NzE3My04NjEuODY1NDQ4SDE1Ny4wODk4NzlWNjY3LjI0MTgyM2g3MjAuOTM5Mjk0ek01MTEuMzQzMjcxIDUyOS42MDY2MjhjLTIyLjY3MTA0NyAwLTQwLjk1NDE0OS0xOC41MDI1LTQwLjk1NDE0OS00MS4zMTk4MTJ2LTM4Mi44NDgxNjRjMC0yMi43NDQxNzkgMTguMjgzMTAyLTQxLjI0NjY3OSA0MC45NTQxNDktNDEuMjQ2Njc5czQxLjAyNzI4MiAxOC41MDI1IDQxLjAyNzI4MiA0MS4yNDY2NzlWNDg4LjM1OTk0OWE0MS4xMDA0MTQgNDEuMTAwNDE0IDAgMCAxLTQwLjk1NDE0OSA0MS4zMTk4MTF6IG0tMjIyLjEwMzEyOCAwYy0yMi42NzEwNDcgMC00MC45NTQxNDktMTguNTAyNS00MC45NTQxNDktNDEuMzE5ODEydi0zODIuODQ4MTY0YzAtMjIuNzQ0MTc5IDE4LjI4MzEwMi00MS4yNDY2NzkgNDAuOTU0MTQ5LTQxLjI0NjY3OXM0MC45NTQxNDkgMTguNTAyNSA0MC45NTQxNDkgNDEuMjQ2Njc5VjQ4OC4zNTk5NDlhNDEuMTAwNDE0IDQxLjEwMDQxNCAwIDAgMS00MC45NTQxNDkgNDEuMzE5ODExeiBtNDQyLjAxMjI4NCAwYy0yMi42NzEwNDcgMC00MS4wMjcyODItMTguNTAyNS00MS4wMjcyODItNDEuMzE5ODEydi0zODIuODQ4MTY0YzAtMjIuNzQ0MTc5IDE4LjI4MzEwMi00MS4yNDY2NzkgNDAuOTU0MTUtNDEuMjQ2Njc5czQxLjAyNzI4MiAxOC41MDI1IDQxLjAyNzI4MSA0MS4yNDY2NzlWNDg4LjM1OTk0OWE0MS4xMDA0MTQgNDEuMTAwNDE0IDAgMCAxLTQwLjk1NDE0OSA0MS4zMTk4MTF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idmlzaWJsZSIgdW5pY29kZT0iJiM1ODkxMjsiIGQ9Ik01MTIuMDM4MDM0LTU0Ljg1NzE0M0MxNzkuNzUwMDM0LTU0Ljg1NzE0MyA0My4wNDYwMzQgMjIzLjUyNDU3MSA3LjM1MjMyIDMwOC44MDkxNDNhMTA1LjEwNjI4NiAxMDUuMTA2Mjg2IDAgMCAwIDAgNzcuMjM4ODU3QzQzLjExOTE3NyA0NzEuMzMyNTcxIDE3OS44MjMxNzcgNzQ5LjcxNDI4NiA1MTIuMDM4MDM0IDc0OS43MTQyODZjMzMwLjc1MiAwIDQ2OS4wNjUxNDMtMjc4LjM4MTcxNCA1MDQuNjg1NzE1LTM2My42NjYyODYgOS44MDExNDMtMjUuMjM0Mjg2IDkuODAxMTQzLTUyLjAwNDU3MSAwLTc3LjIzODg1N0M5ODEuMTAzMTc3IDIyMy41MjQ1NzEgODQyLjc5MDAzNC01NC44NTcxNDMgNTEyLjAzODAzNC01NC44NTcxNDN6TTc1LjQ0ODMyIDM2MC41OTQyODZhMzQuNzQyODU3IDM0Ljc0Mjg1NyAwIDAgMSAwLTI0Ljc5NTQyOUMxMDUuMzYzNzQ5IDI2MC4wOTYgMjI1LjkwMzE3NyAxOC4yODU3MTQgNTEyLjAzODAzNCAxOC4yODU3MTRjMjg2LjIwOCAwIDQwNi42NzQyODYgMjQxLjczNzE0MyA0MzYuNTg5NzE1IDMxNS45NzcxNDNhMzQuNzQyODU3IDM0Ljc0Mjg1NyAwIDAgMSAwIDI0Ljc5NTQyOUM5MTguNzEyMzIgNDM0Ljc2MTE0MyA3OTguMjQ2MDM0IDY3Ni41NzE0MjkgNTEyLjAzODAzNCA2NzYuNTcxNDI5IDIyNS45MDMxNzcgNjc2LjU3MTQyOSAxMDUuMzYzNzQ5IDQzNC44MzQyODYgNzUuNDQ4MzIgMzYwLjU5NDI4NnpNNTEyLjAzODAzNCAxNjQuNTcxNDI5Yy0xMDAuNzkwODU3IDAtMTgyLjg1NzE0MyA4Mi42NTE0MjktMTgyLjg1NzE0MyAxODIuODU3MTQyUzQxMS4yNDcxNzcgNTMwLjI4NTcxNCA1MTIuMDM4MDM0IDUzMC4yODU3MTRzMTgyLjg1NzE0My04Mi42NTE0MjkgMTgyLjg1NzE0My0xODIuODU3MTQzUzYxMi44Mjg4OTEgMTY0LjU3MTQyOSA1MTIuMDM4MDM0IDE2NC41NzE0Mjl6IG0wIDI5Mi41NzE0MjhjLTYwLjEyMzQyOSAwLTEwOS43MTQyODYtNDkuMDA1NzE0LTEwOS43MTQyODUtMTA5LjcxNDI4NlM0NTEuMzI5NDYzIDIzNy43MTQyODYgNTEyLjAzODAzNCAyMzcuNzE0Mjg2czEwOS43MTQyODYgNDkuMDA1NzE0IDEwOS43MTQyODYgMTA5LjcxNDI4NVM1NzIuMTYxNDYzIDQ1Ny4xNDI4NTcgNTEyLjAzODAzNCA0NTcuMTQyODU3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Inpvb20tdG8iIHVuaWNvZGU9IiYjNTg5MTM7IiBkPSJNODcxLjQ5NzE0MyA4MzcuNDg1NzE0YzQzLjg4NTcxNCAwIDc5LjM2LTM1LjU0NzQyOSA3OS4zNi03OS4zNlY0NDEuNzgyODU3aC04MC40NTcxNDNWNjgyLjY0MjI4NmMwIDQxLjEwNjI4Ni0zMy4yOCA3NC4zODYyODYtNzQuMzg2Mjg2IDc0LjM4NjI4NUg1NTMuNjkxNDI5TDU1My4zMjU3MTQgODM3LjQ4NTcxNHogbS03NS40ODM0MjktODg1Ljc2YzQxLjEwNjI4NiAwIDc0LjM4NjI4NiAzMy4yOCA3NC4zODYyODYgNzQuMzg2Mjg2VjI3Ny4yMTE0MjlIOTUwLjg1NzE0M3YtMzMwLjgyNTE0M2MwLTQxLjEwNjI4Ni0zMy4yOC03NC4zODYyODYtNzQuMzg2Mjg2LTc0LjM4NjI4Nkg1NTMuMzI1NzE0djc5LjcyNTcxNHpNMC4wNzMxNDMgNzU4LjEyNTcxNEMwIDgwMi4wMTE0MjkgMzUuNTQ3NDI5IDgzNy40ODU3MTQgNzkuMzYgODM3LjQ4NTcxNGgzMTYuNDE2di04MC40NTcxNDNIMTU0LjExMmMtNDEuMTA2Mjg2IDAtNzQuMzg2Mjg2LTMzLjI4LTc0LjM4NjI4Ni03NC4zODYyODV2LTI0MC45MzI1NzJIMHpNNzkuMzYgMjc3LjIxMTQyOXYtMjUxLjA5OTQyOWMwLTQxLjEwNjI4NiAzMy4yOC03NC4zODYyODYgNzQuMzg2Mjg2LTc0LjM4NjI4NkgzOTUuNzAyODU3Vi0xMjhINzQuMzg2Mjg2QTc0LjM4NjI4NiA3NC4zODYyODYgMCAwIDAgMC01My42MTM3MTRWMjc3LjIxMTQyOXpNNjc4Ljc2NTcxNCA0MDguNzIyMjg2di04OS42SDUxOS40NjA1NzF2LTE1NC4xODUxNDNINDI5Ljc4NzQyOVYzMTkuMTIyMjg2SDI3Mi4zODRWNDA4LjcyMjI4NmgxNTcuNDAzNDI5VjU2My45MzE0MjloODkuNjczMTQydi0xNTUuMjA5MTQzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Im91dHB1dCIgdW5pY29kZT0iJiM1ODkxNDsiIGQ9Ik0zMjUuNDEyNTcxIDQxMy40NzY1NzFhNDQuMzI0NTcxIDQ0LjMyNDU3MSAwIDAgMS0zMS42NzA4NTctMTMuMTY1NzE0IDQ0LjMyNDU3MSA0NC4zMjQ1NzEgMCAwIDEgMC02My4wNDkxNDNsMTgyLjI3Mi0xODEuMTc0ODU3YTQ0LjgzNjU3MSA0NC44MzY1NzEgMCAwIDEgNjMuMzQxNzE1IDBMNzIxLjYyNzQyOSAzMzcuMTg4NTcxYTQ0LjMyNDU3MSA0NC4zMjQ1NzEgMCAwIDEgMCA2My4xMjIyODYgNDQuOTgyODU3IDQ0Ljk4Mjg1NyAwIDAgMS02My40ODggMEw1NTIuNDQ4IDI5NS4yMDQ1NzFWODUxLjM4Mjg1N0M1NTIuNDQ4IDg3Ni4wMzIgNTMyLjQ4IDg5NiA1MDcuNjExNDI5IDg5NnMtNDQuNzYzNDI5LTE5Ljk2OC00NC43NjM0MjktNDQuNjE3MTQzdi01NTYuMTc4Mjg2bC0xMDUuNjkxNDI5IDEwNS4zMjU3MTVhNDUuMjAyMjg2IDQ1LjIwMjI4NiAwIDAgMS0zMS43NDQgMTIuOTQ2Mjg1eiBtNjU5LjAxNzE0My0xNzguMTAyODU3YTM5LjQ5NzE0MyAzOS40OTcxNDMgMCAwIDEtMzkuNDk3MTQzLTM5LjM1MDg1N3YtMjIyLjIwOGMwLTEyLjg3MzE0My0xMC41MzI1NzEtMjMuNDA1NzE0LTIzLjU1Mi0yMy40MDU3MTRIMTAyLjU0NjI4NmEyMy41NTIgMjMuNTUyIDAgMCAwLTIzLjU1MiAyMy40MDU3MTR2MjIyLjM1NDI4NmEzOS40OTcxNDMgMzkuNDk3MTQzIDAgMCAxLTc4Ljk5NDI4NiAwdi0yNTMuNTEzMTQzYzAtMzkuMDU4Mjg2IDMxLjg5MDI4Ni03MC42NTYgNzAuOTQ4NTcxLTcwLjY1Nmg4ODIuMTAyODU4YzM5LjIwNDU3MSAwIDcwLjk0ODU3MSAzMS43NDQgNzAuOTQ4NTcxIDcwLjY1NlYxOTYuMDIyODU3YTM5LjQ5NzE0MyAzOS40OTcxNDMgMCAwIDEtMzkuNDk3MTQzIDM5LjI3NzcxNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJvcGFjaXR5IiB1bmljb2RlPSImIzU4OTE3OyIgZD0iTTY1NC4yNTA2NjcgMjQxLjc0OTMzM0g5MzguNjY2NjY3Vi00Mi42NjY2NjdINjU0LjI1MDY2N3pNMzY5Ljc0OTMzMyA1MjYuMjUwNjY3aDI4NC41MDEzMzR2LTI4NC41MDEzMzRIMzY5Ljc0OTMzM3pNNjU0LjI1MDY2NyA4MTAuNjY2NjY3SDkzOC42NjY2Njd2LTI4NC40MTZINjU0LjI1MDY2N3pNODUuMzMzMzMzIDI0MS43NDkzMzNoMjg0LjQxNlYtNDIuNjY2NjY3SDg1LjMzMzMzM3pNODUuMzMzMzMzIDgxMC42NjY2NjdoMjg0LjQxNnYtMjg0LjQxNkg4NS4zMzMzMzN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGF5ZXItaW5mbyIgdW5pY29kZT0iJiM1ODkxOTsiIGQ9Ik01MTIgODk1LjA2MTMzM0E1MTEuMTQ2NjY3IDUxMS4xNDY2NjcgMCAxIDEgNTEyLTEyNy4xNDY2NjcgNTExLjE0NjY2NyA1MTEuMTQ2NjY3IDAgMCAxIDUxMiA4OTUuMTQ2NjY3eiBtMC05MjguNDI2NjY2YTQxNy4yOCA0MTcuMjggMCAxIDAgMCA4MzQuNTYgNDE3LjI4IDQxNy4yOCAwIDAgMCAwLTgzNC41NnpNNDg4Ljc4OTMzMyA2MjQuODk2YTYwLjE2IDYwLjE2IDAgMSAxIDEyMC4zMiAwIDYwLjE2IDYwLjE2IDAgMCAxLTEyMC4zMiAwek01MzEuNjI2NjY3IDcwLjgyNjY2N2MtNDQuMzczMzMzLTExLjA5MzMzMy0xMDUuODEzMzMzLTEwLjA2OTMzMy0xMzYuNTMzMzM0IDIuMjE4NjY2LTMwLjcyIDEyLjM3MzMzMy00MS44OTg2NjcgNTcuMTczMzMzLTI0LjgzMiA5OS42NjkzMzRsNzYuNTQ0IDE5MC44MDUzMzNhNzIuOTYgNzIuOTYgMCAwIDEtNDkuMTUyIDk5LjQ5ODY2N2wtMTQuNjc3MzMzIDQuMDk2Yy00NC4wMzIgMTIuMjAyNjY3LTQzLjE3ODY2NyAyOC4yNDUzMzMgMS45NjI2NjcgMzUuNTg0bDQzLjg2MTMzMyA3LjE2OGM0NS4yMjY2NjcgNy4zMzg2NjcgMTA3LjI2NCAzLjI0MjY2NyAxMzcuOTg0LTkuMDQ1MzM0IDMwLjcyLTEyLjM3MzMzMyA0MS44MTMzMzMtNTcuMTczMzMzIDI0Ljc0NjY2Ny05OS41ODRsLTcxLjUwOTMzNC0xNzYuODEwNjY2Yy0xNy4wNjY2NjctNDIuNDk2IDQuMzUyLTg3Ljg5MzMzMyA0Ny43MDEzMzQtMTAxLjAzNDY2NyA0My4zNDkzMzMtMTMuMDU2IDQyLjQ5Ni0zMi44NTMzMzMtMS44NzczMzQtNDQuMDMybC0zNC4xMzMzMzMtOC41MzMzMzN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ic2F2ZSIgdW5pY29kZT0iJiM1ODkyMDsiIGQ9Ik03MzIuOCA4MTAuNjg4bDIwNS44ODgtMjA1Ljg4OHYtNjQ3LjQ4OEg4NS4zMTJWODEwLjY4OHpNNzY4IDg5Nkg4NS4zMTJDMzguNCA4OTYgMCA4NTcuNiAwIDgxMC42ODh2LTg1My4zNzZDMC04OS42IDM4LjQtMTI4IDg1LjMxMi0xMjhoODUzLjM3NkM5ODUuNi0xMjggMTAyNC04OS42IDEwMjQtNDIuNjg4VjY0MHpNMTcwLjY4OCA3MjUuMzEyaDQyNi42MjR2LTE3MC42MjRIMTcwLjY4OHpNNTEyIDQyLjY4OGExNzEuMiAxNzEuMiAwIDAgMC0xNzAuNjg4IDE3MC42MjRDMzQxLjMxMiAzMDcuMiA0MTguMTEyIDM4NCA1MTIgMzg0czE3MC42ODgtNzYuOCAxNzAuNjg4LTE3MC42ODhjMC05My44MjQtNzYuOC0xNzAuNjI0LTE3MC42ODgtMTcwLjYyNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYXllci1zdHlsZSIgdW5pY29kZT0iJiM1ODkyMTsiIGQ9Ik05OTMuNzI4ODUzIDMzMy41Njh2LTAuMDg1MzMzTDUzMC40NTQxODcgMTE0LjM0NjY2N2wtMC4xNzA2NjctMC4wODUzMzQtMC4yNTYtMC4wODUzMzNhNDIuODM3MzMzIDQyLjgzNzMzMyAwIDAgMC0zNi42OTMzMzMgMEg0OTMuMjQ4ODUzYy0wLjA4NTMzMyAwLTAuMTcwNjY3IDAtMC4yNTYgMC4xNzA2NjdMMjkuNzE4MTg3IDMzMy40ODI2NjdBNTUuMzgxMzMzIDU1LjM4MTMzMyAwIDAgMCAwLjAyMjE4NyAzODQuMjU2YzAgMzAuMjkzMzMzIDIxLjUwNCA1NC43ODQgNDcuOTU3MzMzIDU0Ljc4NCA2LjU3MDY2NyAwIDEyLjgtMS41MzYgMTguNDMyLTQuMDk2bDAuMTcwNjY3LTAuMDg1MzMzIDAuMTcwNjY2LTAuMDg1MzM0IDQ0NS4wMTMzMzQtMjEwLjUxNzMzMyA0NDQuOTI4IDIxMC41MTczMzNoMC4yNTZsMC4xNzA2NjYgMC4yNTZ2LTAuMDg1MzMzYTQyLjkyMjY2NyA0Mi45MjI2NjcgMCAwIDAgMTguMjYxMzM0IDQuMDk2YzI2LjQ1MzMzMyAwIDQ3Ljk1NzMzMy0yNC40OTA2NjcgNDcuOTU3MzMzLTU0Ljc4NGE1NS4zODEzMzMgNTUuMzgxMzMzIDAgMCAwLTI5LjYxMDY2Ny01MC42MDI2Njd6IG0wIDIzNy41NjhMNTMwLjQ1NDE4NyAzNTEuOTE0NjY3aC0wLjE3MDY2N2wtMC4yNTYtMC4xNzA2NjdhNDMuOTQ2NjY3IDQzLjk0NjY2NyAwIDAgMC0xOC4yNjEzMzMtNC4yNjY2NjcgNDMuODYxMzMzIDQzLjg2MTMzMyAwIDAgMC0xOC40MzIgNC4yNjY2NjdsLTAuMTcwNjY3IDAuMDg1MzMzLTAuMjU2IDAuMDg1MzM0LTQ2My4xODkzMzMgMjE5LjMwNjY2NkE1NS4zODEzMzMgNTUuMzgxMzMzIDAgMCAwIDAuMDIyMTg3IDYyMS42NTMzMzNjMCAyMi44NjkzMzMgMTIuMzczMzMzIDQyLjQ5NiAyOS42OTYgNTAuNjg4TDQ5Mi45MDc1MiA4OTEuNTYyNjY3IDQ5My4yNDg4NTMgODkxLjczMzMzM2gwLjE3MDY2N2E0Mi40OTYgNDIuNDk2IDAgMCAwIDM2LjY5MzMzMyAwaDAuNDI2NjY3bDQ2My4yNzQ2NjctMjE5LjMwNjY2NmMxNy4zMjI2NjctOC4xOTIgMjkuNjEwNjY3LTI3LjgxODY2NyAyOS42MTA2NjYtNTAuNjAyNjY3YTU1LjM4MTMzMyA1NS4zODEzMzMgMCAwIDAtMjkuNjEwNjY2LTUwLjY4OHpNNDcuOTc5NTIgMjAxLjM4NjY2N2M2LjU3MDY2NyAwIDEyLjgtMS41MzYgMTguNDMyLTQuMjY2NjY3SDY2LjU4MjE4N3MwLjE3MDY2NyAwIDAuMTcwNjY2LTAuMTcwNjY3bDQ0NS4wMTMzMzQtMjEwLjQzMiA0NDQuOTI4IDIxMC40MzIgMC4yNTYgMC4wODUzMzQgMC4xNzA2NjYgMC4wODUzMzNhNDEuODEzMzMzIDQxLjgxMzMzMyAwIDAgMCAxOC4yNjEzMzQgNC4yNjY2NjdjMjYuNDUzMzMzIDAgNDcuOTU3MzMzLTI0LjU3NiA0Ny45NTczMzMtNTQuODY5MzM0IDAtMjIuNzg0LTEyLjI4OC00Mi40MTA2NjctMjkuNjEwNjY3LTUwLjY4OGwtNDYzLjI3NDY2Ni0yMTkuMTM2cy0wLjE3MDY2NyAwLTAuMTcwNjY3LTAuMTcwNjY2SDUyOS45NDIxODdhNDEuNzI4IDQxLjcyOCAwIDAgMC0zNi42OTMzMzQgMEg0OTMuMjQ4ODUzbC0wLjI1NiAwLjE3MDY2NkwyOS43MTgxODcgOTUuODI5MzMzQTU1LjQ2NjY2NyA1NS40NjY2NjcgMCAwIDAgMC4wMjIxODcgMTQ2LjUxNzMzM2MwIDMwLjI5MzMzMyAyMS41MDQgNTQuODY5MzMzIDQ3Ljk1NzMzMyA1NC44NjkzMzR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGluZS1sYXllciIgdW5pY29kZT0iJiM1ODkyMjsiIGQ9Ik03NjcuMzA2OTA4IDU3Ny44NDg1MTFMMzE4LjEzMDU4MyAxMjguNjcyMTg2YTE3MC42NTk2OTggMTcwLjY1OTY5OCAwIDEgMC00NS41NjYxMzkgNTAuOTQxOTJsNDQzLjcxNTIxNSA0NDMuODg1ODc0YTE3MC42NTk2OTggMTcwLjY1OTY5OCAwIDEgMCA1MC45NDE5MTktNDUuNTY2MTM5eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNraW4iIHVuaWNvZGU9IiYjNTg5MjM7IiBkPSJNOTIwLjkwMzA0IDgxNi4yNTZoLTU0Ljg0OGMtNTMuNTA0LTU3LjQ3Mi0xNjcuNDI0LTkzLjQ0LTI1Ny45ODQtOTMuNDQtOTAuNTYgMC0yMDQuNDggMzUuOTY4LTI1Ny45MiA5My40NGgtNTQuOTEyTDk1LjYyMzA0IDYxMS4ybDg5LjI4LTkxLjcxMmE4Ny44NzIgODcuODcyIDAgMCAwIDExOS41NTItODIuMTEydi00ODUuNjMyaDYwNy4xNjhWNDM3LjM3NmE4Ny44NzIgODcuODcyIDAgMCAwIDExOS42MTYgODIuMTEybDg5LjI4IDkxLjcxMnpNMjI0LjcxMTA0IDM2Ni4zMzZ2NzEuMDRhOC4xMjggOC4xMjggMCAwIDEtOC4wNjQgOC4zMiA3LjgwOCA3LjgwOCAwIDAgMS01LjYzMi0yLjQzMmwtNC42NzItNC44YTM3LjQ0IDM3LjQ0IDAgMCAwLTUzLjgyNCAwTDExLjIwNzA0IDU4My41NTJhMzkuODcyIDM5Ljg3MiAwIDAgMCAwIDU1LjI5NkwyNDIuODg3MDQgODc2LjhBNjMuMTA0IDYzLjEwNCAwIDAgMCAyODguMDcxMDQgODk2aDY5LjYzMmMxOC40OTYgMCAzNi4yMjQtOC4wNjQgNDguMTkyLTIyLjQ2NCAzNS43MTItNDMuMDcyIDEzNy44NTYtNzAuOTc2IDIwMi4xNzYtNzAuOTc2czE2Ni40IDI3LjkwNCAyMDIuMjQgNzAuOTc2QTYyLjQ2NCA2Mi40NjQgMCAwIDAgODU4LjM3NTA0IDg5Nkg5MjguMDcxMDRjMTYuOTYgMCAzMy4yOC02LjkxMiA0NS4yNDgtMTkuMmwyMzEuNjE2LTIzNy45NTJhMzkuODcyIDM5Ljg3MiAwIDAgMCAwLTU1LjI5NmwtMTQxLjMxMi0xNDUuMDg4YTM3LjQ0IDM3LjQ0IDAgMCAwLTUzLjgyNCAwbC00LjY3MiA0LjhhNy43NDQgNy43NDQgMCAwIDEtNS42MzIgMi40MzIgOC4xMjggOC4xMjggMCAwIDEtOC4wNjQtOC4zMnYtNTA1Ljg1NmMwLTMyLjg5Ni0yNS45ODQtNTkuNTItNTcuOTg0LTU5LjUySDI4Mi42OTUwNGE1OC43NTIgNTguNzUyIDAgMCAwLTU3Ljk4NCA1OS41MlYzNTYuMzUyek00MjUuOTI3MDQgNTAzLjY4aDI2Mi45MTJjMjQuMjU2IDAgNDMuODQtMTMuODg4IDQzLjg0LTMxLjA0di0yNDguMzJjMC0xNy4xNTItMTkuNTg0LTMxLjA0LTQzLjg0LTMxLjA0SDQyNS45MjcwNGMtMjQuMTkyIDAtNDMuNzc2IDEzLjg4OC00My43NzYgMzEuMDR2MjQ4LjMyYzAgMTcuMTUyIDE5LjU4NCAzMS4wNCA0My43NzYgMzEuMDR6IiAgaG9yaXotYWR2LXg9IjEyMTYiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibWFya2VyLWxheWVyIiB1bmljb2RlPSImIzU4OTI0OyIgZD0iTTUxMiA4OTZDMjc2LjM5NDY2NyA4OTYgODUuMzMzMzMzIDcwOS43MTczMzMgODUuMzMzMzMzIDQ4MFM1MTItMTI4IDUxMi0xMjhzNDI2LjY2NjY2NyAzNzguMjgyNjY3IDQyNi42NjY2NjcgNjA4Uzc0Ny42MDUzMzMgODk2IDUxMiA4OTZ6IG0wLTU5Ny4zMzMzMzNhMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMSAwIDAgMzQxLjMzMzMzMyAxNzAuNjY2NjY3IDE3MC42NjY2NjcgMCAwIDAgMC0zNDEuMzMzMzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InBvaW50LWxheWVyIiB1bmljb2RlPSImIzU4OTI1OyIgZD0iTTY4Mi42NjY2NjcgMzg0YTI1NiAyNTYgMCAxIDAgMCA1MTIgMjU2IDI1NiAwIDAgMCAwLTUxMnpNMTcwLjY2NjY2NyAxMjhhMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMSAwIDAgMzQxLjMzMzMzMyAxNzAuNjY2NjY3IDE3MC42NjY2NjcgMCAwIDAgMC0zNDEuMzMzMzMzeiBtNTU0LjY2NjY2Ni0xNzAuNjY2NjY3YTEyOCAxMjggMCAxIDAgMCAyNTYgMTI4IDEyOCAwIDAgMCAwLTI1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwb2x5Z29uLWxheWVyIiB1bmljb2RlPSImIzU4OTI2OyIgZD0iTTE2MCA1NzZhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiBtNzA0IDBhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiBtMC03MDRhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiBtLTcwNCAwYTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHpNMzIwIDc2OGgzODR2LTY0aC0zODR6IG0wLTcwNGgzODR2LTY0aC0zODR6IG0tMTI4IDUxMnYtMzg0SDEyOHYzODR6IG03MDQgMHYtMzg0aC02NHYzODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iaW52aXNpYmxlIiB1bmljb2RlPSImIzU4OTI3OyIgZD0iTTMwNi4xNDA4OTEgMjIuODkzNzE0bDU2LjUzOTQyOSA1Ni42MTI1NzJBNDQ2LjAyNTE0MyA0NDYuMDI1MTQzIDAgMCAxIDUxMi4wMzgwMzQgNTQuODU3MTQzYzI4Ni4yMDggMCA0MDYuNjc0Mjg2IDI0MS43MzcxNDMgNDM2LjU4OTcxNSAzMTUuOTc3MTQzYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMCAyNC43OTU0MjggNTc4Ljg1MjU3MSA1NzguODUyNTcxIDAgMCAxLTEwMi45ODUxNDMgMTY2Ljc2NTcxNWw1MS4xMjY4NTcgNTEuMmE2ODkuNjY0IDY4OS42NjQgMCAwIDAgMTE5Ljk1NDI4Ni0xOTAuOTc2YzkuODAxMTQzLTI1LjIzNDI4NiA5LjgwMTE0My01Mi4wMDQ1NzEgMC03Ny4yMzg4NThDOTgxLjEwMzE3NyAyNjAuMDk2IDg0Mi43OTAwMzQtMTguMjg1NzE0IDUxMi4wMzgwMzQtMTguMjg1NzE0YTUxMS4wNDkxNDMgNTExLjA0OTE0MyAwIDAgMC0yMDUuODk3MTQzIDQxLjI1MjU3MXogbS0xNzkuMTI2ODU3IDEzMS4yOTE0MjlBNjg4LjU2Njg1NyA2ODguNTY2ODU3IDAgMCAwIDcuMzUyMzIgMzQ1LjM4MDU3MWExMDUuMTA2Mjg2IDEwNS4xMDYyODYgMCAwIDAgMCA3Ny4yMzg4NThDNDIuOTcyODkxIDUwNy45MDQgMTc5Ljc1MDAzNCA3ODYuMjg1NzE0IDUxMi4wMzgwMzQgNzg2LjI4NTcxNGM3OS4yMTM3MTQgMCAxNDcuMzgyODU3LTE1Ljk0NTE0MyAyMDUuNjc3NzE1LTQxLjM5ODg1N2wtNTYuMzItNTYuMzkzMTQzQTQ0Ni4wMjUxNDMgNDQ2LjAyNTE0MyAwIDAgMSA1MTIuMDM4MDM0IDcxMy4xNDI4NTdjLTI4Ni4yMDggMC00MDYuNjc0Mjg2LTI0MS43MzcxNDMtNDM2LjU4OTcxNC0zMTUuOTc3MTQzYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMC0yNC43OTU0MjhjMTMuNTMxNDI5LTM0LjIzMDg1NyA0NS40OTQ4NTctMTAyLjQgMTAyLjk4NTE0My0xNjYuNzY1NzE1eiBtMzU5LjEzMTQyOSA0OC43ODYyODZsMTAxLjAxMDI4NiAxMDEuMDEwMjg1IDQuOTAwNTcxIDQuODI3NDI5IDEwMS4wMTAyODYgMTAxLjAxMDI4NmExODMuNTE1NDI5IDE4My41MTU0MjkgMCAwIDAtMjA2LjkyMTE0My0yMDYuOTIxMTQzek0zMzEuMDA5NDYzIDM1OC4xMDc0MjlhMTgzLjUxNTQyOSAxODMuNTE1NDI5IDAgMCAwIDIwNi45MjExNDMgMjA2LjkyMTE0MnogbTUxNy4xOTMxNDMgMzYyLjA1NzE0MmEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAwIDAtNTEuNzEybC02MjAuNjE3MTQzLTYyMC42MTcxNDJhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMC01MS43MTIgNTEuNzEybDYyMC42MTcxNDMgNjIwLjYxNzE0MmEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAwIDUxLjcxMiAweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNlYXJjaCIgdW5pY29kZT0iJiM1ODkyODsiIGQ9Ik03NzAuNjU5NTgyIDY4Mi4zMTE4OGEzNTAuNzA3MDY4IDM1MC43MDcwNjggMCAwIDEtNDk4LjkyNTYwMiAwIDM1Ny43NDY4MDggMzU3Ljc0NjgwOCAwIDAgMSAwLTUwMy4wMjE0NTEgMzUwLjc3MTA2NSAzNTAuNzcxMDY1IDAgMCAxIDQ5OC45MjU2MDIgMCAzNTcuNzQ2ODA4IDM1Ny43NDY4MDggMCAwIDEgMCA1MDMuMDIxNDUxeiBtLTU3NS43MjI3Ny01ODAuNDU4NTk2Yy0xODAuMTUzMzU3IDE4MS43NTMyOTgtMTgwLjE1MzM1NyA0NzYuMjA2NDQgMCA2NTcuODk1NzRhNDU4Ljg2MzA3OSA0NTguODYzMDc5IDAgMCAwIDY1Mi41ODM5MzYgMGMxODAuMTUzMzU3LTE4MS42ODkzIDE4MC4xNTMzNTctNDc2LjE0MjQ0MiAwLTY1Ny44OTU3NGE0NTguODYzMDc5IDQ1OC44NjMwNzkgMCAwIDAtNjUyLjU4MzkzNiAweiBtODYyLjA0ODIxMi0yMTEuMTkyMjEyYTYyLjcxNzY4NyA2Mi43MTc2ODcgMCAwIDAtODkuMTQ4NzEzIDBsLTg5LjE0ODcxMyA4OS44NTI2ODdhNjMuOTMzNjQyIDYzLjkzMzY0MiAwIDAgMCAwIDg5Ljg1MjY4NiA2Mi43MTc2ODcgNjIuNzE3Njg3IDAgMCAwIDg5LjE0ODcxMyAwbDg5LjE0ODcxMy04OS44NTI2ODZhNjMuODY5NjQ1IDYzLjg2OTY0NSAwIDAgMCAwLTg5Ljg1MjY4N3oiICBob3Jpei1hZHYteD0iMTA4NyIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJlZGl0IiB1bmljb2RlPSImIzU4OTMxOyIgZD0iTTk3OC4yMjE1NjQtMzYuNjMyNTE3MDAwMDAwMDFINDUuNzc4NDM2YTQ1LjcyNjM5NyA0NS43MjYzOTcgMCAwIDEgMC05MS4zNjc0ODNoOTMyLjQ0MzEyOGE0NS43MjYzOTcgNDUuNzI2Mzk3IDAgMCAxIDAgOTEuMzY3NDgzek0yNzUuODYwNjk3IDEwMC40NjEzNjNhNTEuNTI3NTA3IDUxLjUyNzUwNyAwIDAgMSAxOC44NTM2MDggMy44Mzg5N2gwLjQyNjU1MmwyNTkuNjg0OTg1IDEyMi4xNjQ1NTIgMi42NDQ2MjMgMS4yNzk2NTcgNDQxLjczNzQ2OCA0NDIuNTA1MjYxYTc5LjU5NDY0MiA3OS41OTQ2NDIgMCAwIDEgMCAxMTIuOTUxMDI1TDkxMC4wNTg1MjEgODcyLjQzNTU1YTc5Ljc2NTI2MyA3OS43NjUyNjMgMCAwIDEtMTEyLjk1MTAyNS0wLjE3MDYyMWwtNDM5Ljk0NTk0OC00NDAuMjAxODc5LTIuMDQ3NDUtMS45NjIxNC0xLjE5NDM0Ni0yLjU1OTMxNC0xMjEuNDgyMDY5LTI1OC40OTA2MzhhNDcuMjYxOTg1IDQ3LjI2MTk4NSAwIDAgMSAyLjkwMDU1NS00Ni40MDg4OGM4Ljk1NzU5Ni0xMy42NDk2NzEgMjQuMzk4Nzg2LTIyLjE4MDcxNSA0MC41MjI0NTktMjIuMTgwNzE1eiBtNTI0LjY1OTIxNyA2NDYuMjI2NTk2bDUyLjg5MjQ3NCA1Mi45Nzc3ODQgNzMuMDI1NzM4LTczLjExMTA0OS01Mi44OTI0NzQtNTIuOTc3Nzg0ek0zNjUuOTQ4NTI0IDIzOC44MzQ4OTg5OTk5OTk5NWw2NC44MzU5MzYgMTM3Ljk0Njk4NSAzMDUuMDcwMTM5IDMwNS4zMjYwNyA3My4wMjU3MzgtNzMuMTExMDQ4TDUwMy44OTU1MDggMzAzLjY3MDgzNXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYXllcnMiIHVuaWNvZGU9IiYjNTg5MzI7IiBkPSJNNTQwLjQ0NDQ0NCAyNTEuMDUwNjY3TDEuMDgwODg5IDU3My4xNTU1NTYgNTQwLjQ0NDQ0NCA4OTUuMjAzNTU2bDUzOS4zNjM1NTYtMzIyLjA0OHpNMTAxMi4zOTQ2NjcgNDMzLjA5NTExMWwtNjcuNDEzMzM0LTQxLjk4NEw1NDAuNDQ0NDQ0IDE1My4wMzExMTEgNjguNDk0MjIyIDQzMy4wOTUxMTFsLTY3LjQxMzMzMy00MS45ODRMNTQwLjQ0NDQ0NCA2OS4wMDYyMjJsNTM5LjM2MzU1NiAzMjIuMTA0ODg5ek0xMDEyLjM5NDY2NyAyMzcuMDU2bC02Ny40MTMzMzQtNDIuMDQwODg5TDU0MC40NDQ0NDQtNDMuMDA4di02Ljk5NzMzM2wtNDcxLjk1MDIyMiAyODAuMDY0LTY3LjQxMzMzMy0zNS4wNDM1NTZMNTQwLjQ0NDQ0NC0xMjcuMDMyODg5bDUzOS4zNjM1NTYgMzIyLjA0OHoiICBob3Jpei1hZHYteD0iMTA4MCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJiYXNlbGF5ZXIiIHVuaWNvZGU9IiYjNTg5MzM7IiBkPSJNMTAyMi45NzYgMzg0LjM5ODIyMkMxMDIyLjk3NiA2NjYuMzk2NDQ0IDc5NC4xNjg4ODkgODk0Ljk3NiA1MTIgODk0Ljk3NiAyMjkuODMxMTExIDg5NC45NzYgMS4wMjQgNjY2LjM5NjQ0NCAxLjAyNCAzODQuMzk4MjIyYzAtMjYwLjQzNzMzMyAxOTUuMjQyNjY3LTQ3NS4zNjM1NTYgNDQ3LjQzMTExMS01MDYuNTk1NTU1YTI1NS4yNjA0NDQgMjU1LjI2MDQ0NCAwIDAgMSA2OC44OTI0NDUtMy45MjUzMzRjMjc5LjcyMjY2NyAyLjkwMTMzMyA1MDUuNjI4NDQ0IDIzMC40IDUwNS42Mjg0NDQgNTEwLjUyMDg4OXogbS03My4xMDIyMjItNy4yMjQ4ODlhNDk5LjgyNTc3OCA0OTkuODI1Nzc4IDAgMCAxLTkuOTU1NTU2IDc0LjYzODIyM2MwLjQ1NTExMSA4LjY0NzExMSAwLjU2ODg4OSAxNi44OTYgMC4zNDEzMzQgMjQuNDYyMjIyYTQzOS4wMTE1NTYgNDM5LjAxMTU1NiAwIDAgMCA5LjY3MTExMS05OS4xMDA0NDV6TTc0LjA2OTMzMyAzODQuMzk4MjIyYzAgMzAuOTQ3NTU2IDMuMTg1Nzc4IDYxLjE1NTU1NiA5LjMyOTc3OCA5MC4yODI2NjcgMTguODg3MTExLTIwLjI1MjQ0NCA2My40ODgtMTkuNzQwNDQ0IDc0LjM1Mzc3OCAxMC40Njc1NTUgMTkuNDU2LTExLjYwNTMzMyA0NS41NjgtMTMuNjUzMzMzIDQ1LjU2OC0zNi44NjQgMC03Ni40NTg2NjcgMi43MzA2NjctMTU4LjQzNTU1NiA3Mi4yNDg4ODktMTU5Ljc0NCAxLjkzNDIyMiAwIDM4LjY4NDQ0NC0xMy45Mzc3NzggNTYuMjA2MjIyLTU5LjMzNTExMSA2LjA4NzExMS0xNS43MDEzMzMgMzAuMDM3MzMzIDAgNTYuMzIgMCAxMy4wODQ0NDQgMCAwLTIyLjA3Mjg4OSAwLTY5Ljg1OTU1NSAwLTQ3LjU1OTExMSAxMDIuNTcwNjY3LTEyMC44MzIgMTAyLjU3MDY2Ny0xMjAuODMyYTU1MC41MTM3NzggNTUwLjUxMzc3OCAwIDAgMSAzLjQxMzMzMy03Ny4zMTIgMTcxLjc0NzU1NiAxNzEuNzQ3NTU2IDAgMCAxLTU4LjAyNjY2Ny03Ljg1MDY2N2MtMjA1LjY1MzMzMyAzNS45NTM3NzgtMzYxLjk4NCAyMTUuMjY3NTU2LTM2MS45ODQgNDMxLjA0NzExMXogbTU0NS43MzUxMTEtNDI0LjIyMDQ0NGMtMi4yNzU1NTYgMTEuMDkzMzMzLTEyLjE3NDIyMiAxNy4xODA0NDQtMzAuMzIxNzc3IDEyLjQ1ODY2NiAxNC40NDk3NzggNjEuNTUzNzc4IDIxLjUwNCA5Ni4wMjg0NDQgNTEuNzEyIDEyMi4yNTQyMjMgNDMuNjMzNzc4IDM3LjgzMTExMSA1LjE3Njg4OSA3OS45Mjg4ODktMjguMDQ2MjIzIDc0Ljk3OTU1NS0yNi4xNjg4ODktMy45ODIyMjItOS42NzExMTEgMzIuNDI2NjY3LTMyLjk5NTU1NSAzNC40MTc3NzgtMjMuNDM4MjIyIDEuOTkxMTExLTUzLjkzMDY2NyA0OC40NjkzMzMtODcuNjA4ODg5IDY0LjUxMi0xNy44MDYyMjIgOC40MTk1NTYtMzUuMzg0ODg5IDMxLjExODIyMi02Mi44NjIyMjIgMzIuMTQyMjIyLTI0LjQwNTMzMyAwLjk2NzExMS02MC4wMTc3NzgtMjAuNTkzNzc4LTYwLjAxNzc3OC0zLjk4MjIyMiAwIDUzLjUzMjQ0NC01LjQwNDQ0NCA5MS43NjE3NzgtNi41NDIyMjIgMTA2Ljk1MTExMS0wLjkxMDIyMiAxMi4yODgtNy45NjQ0NDQgNC4xNTI4ODkgMjQuOTc0MjIyIDMuNDEzMzMzIDE3LjkyLTAuNTEyIDkuMTAyMjIyIDM2LjAxMDY2NyAyNi45MDg0NDQgMzcuNDMyODg5IDE3LjQ2NDg4OSAxLjM2NTMzMyA1OC45OTM3NzgtMTYuMzI3MTExIDY5LjU3NTExMi05LjI3Mjg4OSA5Ljg0MTc3OCA2LjU0MjIyMiA3Mi4zMDU3NzgtMTYzLjk1Mzc3OCA3Mi4zMDU3NzctMjguMTYgMCAxNi4wOTk1NTYtOC4zNjI2NjcgNDQuMDg4ODg5IDAgNTkuMzM1MTEyIDMyLjk5NTU1NiA2MC4zMDIyMjIgNjMuODg2MjIyIDEwOS40NTQyMjIgNjEuMDk4NjY3IDExNi42MjIyMjItMS41MzYgNC4wMzkxMTEtMzMuNzM1MTExIDcuMzk1NTU2LTU5LjUwNTc3OC0xLjI1MTU1Ni04LjcwNC0yLjkwMTMzMyAyLjc4NzU1Ni0xNi40OTc3NzgtOS42NzExMTEtMTkuMzk5MTExLTQ2LjgxOTU1Ni0xMC44MDg4ODktODguMTc3Nzc4IDEyLjU3MjQ0NC03My42NzExMTEgMzQuNTg4NDQ1IDE0Ljc5MTExMSAyMi41MjggNjguNDk0MjIyIDkuODQxNzc4IDczLjIxNiA1NS4wNjg0NDQgMi43MzA2NjcgMjUuODg0NDQ0IDQuOTQ5MzMzIDU1LjkyMTc3OCA2LjQ4NTMzMyA3OC4yMjIyMjIgNjIuOTE5MTExLTkuODQxNzc4IDU1Ljk3ODY2NyA4MS42OTI0NDQtMzcuNTQ2NjY2IDkxLjQ3NzMzNGE0MzguMTAxMzMzIDQzOC4xMDEzMzMgMCAwIDAgNDA4LjYzMjg4OS0yOTQuMTcyNDQ1IDE3Ljg2MzExMSAxNy44NjMxMTEgMCAwIDEtMTAuNDY3NTU2IDQuNzc4NjY3Yy0yOC4yNzM3NzggNzAuNjU2LTk2Ljk5NTU1NiAxOS41MTI4ODktNzMuNjcxMTExLTQyLjgzNzMzNC0xMjQuODcxMTExLTk1Ljk3MTU1Ni05Mi44OTk1NTYtMTYyLjg3Mjg4OS01MS44ODI2NjctMjAxLjIxNiAyMS42MTc3NzgtMjAuMTM4NjY3IDQyLjE1NDY2Ny01MC40MDM1NTYgNTUuNTgwNDQ1LTcyLjE5Mi0xNC42MjA0NDQtNDIuNDk2IDUzLjcwMzExMS0yNS40ODYyMjIgODcuMzgxMzMzIDQ2LjY0ODg4OWE0MzguNjEzMzMzIDQzOC42MTMzMzMgMCAwIDAtMzEzLjA1OTU1Ni0zMDIuODE5NTU1eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNldHRpbmciIHVuaWNvZGU9IiYjNTg5MzQ7IiBkPSJNOTUwLjg0MDg4OSA0NTcuMTU5MTExaC04MS4xODA0NDVhMzY0LjgyODQ0NCAzNjQuODI4NDQ0IDAgMCAxLTUzLjM2MTc3NyAxMjcuMjYwNDQ1bDU3Ljc0MjIyMiA1Ny43OTkxMTFhNzIuODE3Nzc4IDcyLjgxNzc3OCAwIDEgMS0xMDMuMTM5NTU2IDEwMy4xMzk1NTVsLTU3Ljc0MjIyMi01Ny43OTkxMTFhMzUwLjQzNTU1NiAzNTAuNDM1NTU2IDAgMCAxLTEyOCA1NC44NDA4ODlWODIyLjg0MDg4OUM1ODUuMTU5MTExIDg2My4wNjEzMzMgNTUyLjIyMDQ0NCA4OTYgNTEyIDg5NlM0MzguODQwODg5IDg2My4wNjEzMzMgNDM4Ljg0MDg4OSA4MjIuODQwODg5Vjc0Mi40YTM2MS45MjcxMTEgMzYxLjkyNzExMSAwIDAgMS0xMjgtNTQuMTAxMzMzTDI1My4xNTU1NTYgNzQ2LjA0MDg4OWE3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxLTEwMy4xMzk1NTYgMCA3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxIDAtMTAzLjEzOTU1NkwyMDcuNjQ0NDQ0IDU4NS4xNTkxMTFhMzc0LjM4NTc3OCAzNzQuMzg1Nzc4IDAgMCAxLTUzLjM2MTc3Ny0xMjhINzMuMTU5MTExQzMyLjkzODY2NyA0NTcuMTU5MTExIDAgNDI0LjIyMDQ0NCAwIDM4NHMzMi45Mzg2NjctNzMuMTU5MTExIDczLjE1OTExMS03My4xNTkxMTFoODEuMTgwNDQ1YzkuNTAwNDQ0LTQ2LjgxOTU1NiAyOC41MDEzMzMtODkuMjAxNzc4IDUzLjM2MTc3Ny0xMjcuMjYwNDQ1bC01Ny43NDIyMjItNTcuNzk5MTExYTcyLjgxNzc3OCA3Mi44MTc3NzggMCAwIDEgMC0xMDMuMDgyNjY2IDcyLjgxNzc3OCA3Mi44MTc3NzggMCAwIDEgMTAzLjEzOTU1NiAwbDU3Ljc0MjIyMiA1Ny43NDIyMjJhMzUwLjQzNTU1NiAzNTAuNDM1NTU2IDAgMCAxIDEyOC01NC44NDA4ODl2LTgwLjQ0MDg4OUM0MzguODQwODg5LTk1LjA2MTMzMyA0NzEuNzc5NTU2LTEyOCA1MTItMTI4czczLjE1OTExMSAzMi45Mzg2NjcgNzMuMTU5MTExIDczLjE1OTExMVYyNS42YTM2MS45MjcxMTEgMzYxLjkyNzExMSAwIDAgMSAxMjggNTQuMTAxMzMzbDU3Ljc0MjIyMi01Ny43NDIyMjJjMjguNTU4MjIyLTI4LjU1ODIyMiA3NC42MzgyMjItMjguNTU4MjIyIDEwMy4xMzk1NTYgMHMyOC41NTgyMjIgNzQuNTgxMzMzIDAgMTAzLjEzOTU1NmwtNTcuNzQyMjIyIDU3Ljc0MjIyMmEzNzAuNzQ0ODg5IDM3MC43NDQ4ODkgMCAwIDEgNTMuMzYxNzc3IDEyNy4yNjA0NDRoODEuMTgwNDQ1YTczLjUwMDQ0NCA3My41MDA0NDQgMCAwIDEgMCAxNDcuMDAwODg5ek01MTIgMjM3LjczODY2N0ExNDYuNzE2NDQ0IDE0Ni43MTY0NDQgMCAwIDAgMzY1LjczODY2NyAzODQgMTQ2LjcxNjQ0NCAxNDYuNzE2NDQ0IDAgMCAwIDUxMiA1MzAuMjYxMzMzIDE0Ni43MTY0NDQgMTQ2LjcxNjQ0NCAwIDAgMCA2NTguMjYxMzMzIDM4NCAxNDYuNzE2NDQ0IDE0Ni43MTY0NDQgMCAwIDAgNTEyIDIzNy43Mzg2Njd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYWRkIiB1bmljb2RlPSImIzU4OTM2OyIgZD0iTTAgNDY5LjMzMzMzM2gxMDI0di0xNzAuNjY2NjY2SDB6TTQyNi42NjY2NjcgODk2aDE3MC42NjY2NjZ2LTEwMjRINDI2LjY2NjY2N3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwcmV2aWV3IiB1bmljb2RlPSImIzU4OTM1OyIgZD0iTTc3Mi4zNTIgMTk3LjYzMmM5Mi4xNiAxMjYuNTQ5MzMzIDgwLjA0MjY2NyAzMDEuOTk0NjY3LTMxLjA2MTMzMyA0MTIuNDE2QTMxNi4zMzA2NjcgMzE2LjMzMDY2NyAwIDAgMSA1MTUuNzU0NjY3IDcwMy4xNDY2NjdjLTg1LjE2MjY2NyAwLTE2NS4xMi0zMy4zNjUzMzMtMjI1LjUzNi05My4xODRhMzIwLjQyNjY2NyAzMjAuNDI2NjY3IDAgMCAxLTkyLjY3Mi0yMjUuNTM2QTMxOC40NjQgMzE4LjQ2NCAwIDAgMSA1MTYuMjY2NjY3IDY1Ljk2MjY2N2M2Ny4yNDI2NjcgMCAxMzEuNzU0NjY3IDIxLjMzMzMzMyAxODYuOTY1MzMzIDYyLjEyMjY2NmwxNjUuNzE3MzMzLTE2NS4xMmE0OC4yOTg2NjcgNDguMjk4NjY3IDAgMCAxIDY5LjEyIDAgNDguOTgxMzMzIDQ4Ljk4MTMzMyAwIDAgMSAwIDY5LjEyeiBtLTQxMi41ODY2NjcgMzAuNDY0YTIyMC42NzIgMjIwLjY3MiAwIDAgMCAxNTYuNTg2NjY3IDM3Ni43NDY2NjcgMjIwLjY3MiAyMjAuNjcyIDAgMCAwIDE1Ni41MDEzMzMtMzc2LjY2MTMzNGMtODMuNDU2LTgyLjg1ODY2Ny0yMjkuNTQ2NjY3LTgyLjg1ODY2Ny0zMTMuMDg4IDB6TTc2Mi41Mzg2NjcgODk1LjMxNzMzM0gyNjEuOTczMzMzYTI2MS4zNzYgMjYxLjM3NiAwIDAgMS0yNjEuMjA1MzMzLTI2MS4xMnYtNTAwLjM5NDY2NmEyNjEuMzc2IDI2MS4zNzYgMCAwIDEgMjYxLjEyLTI2MS4xMmgyNzEuNzAxMzMzYTQ4LjgxMDY2NyA0OC44MTA2NjcgMCAxIDEgMCA5Ny43OTJIMjYxLjk3MzMzM2ExNjIuOTg2NjY3IDE2Mi45ODY2NjcgMCAwIDAtMTYyLjgxNiAxNjIuNzMwNjY2VjYzMy42QTE2Mi45ODY2NjcgMTYyLjk4NjY2NyAwIDAgMCAyNjEuOTczMzMzIDc5Ni4zMzA2NjdoNTAwLjU2NTMzNGExNjIuOTg2NjY3IDE2Mi45ODY2NjcgMCAwIDAgMTYyLjk4NjY2Ni0xNjIuNzMwNjY3di0yNjYuMjRhNDguODEwNjY3IDQ4LjgxMDY2NyAwIDEgMSA5Ny43MDY2NjcgMFY2MzQuNjI0QTI2MC43Nzg2NjcgMjYwLjc3ODY2NyAwIDAgMSA3NjIuNTM4NjY3IDg5NS4zMTczMzN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icmVmcmVzaCIgdW5pY29kZT0iJiM1ODkzNzsiIGQ9Ik02OTguMDAyMjg2IDExMS4xNzcxNDNhMzE2LjU2MjI4NiAzMTYuNTYyMjg2IDAgMCAwLTE4OS44Nzg4NTctNTkuOTc3MTQzYy04Ljk5NjU3MSAwLjA3MzE0My0xNy43NzM3MTQgMC43MzE0MjktMjYuNTUwODU4IDEuNDYyODU3LTMuNjU3MTQzIDAuMzY1NzE0LTcuMTY4IDAuOTUwODU3LTEwLjc1MiAxLjQ2Mjg1N2EyNjEuMTIgMjYxLjEyIDAgMCAwLTIwLjQ4IDMuMjE4Mjg2Yy00LjE2OTE0MyAwLjczMTQyOS04LjI2NTE0MyAxLjk3NDg1Ny0xMi4yODggMi45MjU3MTQtNi41ODI4NTcgMS40NjI4NTctMTMuMTY1NzE0IDIuOTI1NzE0LTE5LjY3NTQyOCA0LjkwMDU3Mi0yLjk5ODg1NyAxLjI0MzQyOS01LjkyNDU3MSAyLjE5NDI4Ni04Ljk5NjU3MiAzLjQzNzcxNGEyNDMuMzQ2Mjg2IDI0My4zNDYyODYgMCAwIDAtMjIuMDE2IDguMTkybC00LjgyNzQyOCAxLjk3NDg1N2E1NDguNTcxNDI5IDU0OC41NzE0MjkgMCAwIDAtMjQuNzIyMjg2IDEyLjM2MTE0M2wtMS4wMjQgMC41ODUxNDNhMzI0LjQ2MTcxNCAzMjQuNDYxNzE0IDAgMCAwLTczLjg3NDI4NiA1Ni44MzJsLTEuMDI0IDEuMjQzNDI4YTI3NS4wOTAyODYgMjc1LjA5MDI4NiAwIDAgMC0xOS4zODI4NTcgMjEuODY5NzE1QTMzNi44MjI4NTcgMzM2LjgyMjg1NyAwIDAgMCAxODcuNzU3NzE0IDM4NGg4NS40MzA4NTdMMTM2LjYzMDg1NyA1OTQuMjg1NzE0IDAuMDczMTQzIDM4NGg4NS4yODQ1NzFjMC05Mi4wODY4NTcgMjguMDg2ODU3LTE3Ny41MTc3MTQgNzUuNTU2NTcyLTI0OC4yNDY4NTcgMC41ODUxNDMtMS4wOTcxNDMgMC45NTA4NTctMi4xOTQyODYgMS42MDkxNDMtMy4wNzIgNC45MDA1NzEtNy4zMTQyODYgMTAuMzg2Mjg2LTEzLjk3MDI4NiAxNS42NTI1NzEtMjAuNjk5NDI5IDIuMDQ4LTIuNDg2ODU3IDMuNzMwMjg2LTUuMDQ2ODU3IDUuODUxNDI5LTcuNzUzMTQzIDcuNzUzMTQzLTkuNTgxNzE0IDE2LjA5MTQyOS0xOC43MjQ1NzEgMjQuNTAyODU3LTI3LjY0OGwyLjM0MDU3MS0yLjQ4Njg1N2MyOC41OTg4NTctMjkuNDAzNDI5IDYwLjg1NDg1Ny01NC4xMjU3MTQgOTUuOTYzNDI5LTczLjk0NzQyOGwyLjg1MjU3MS0xLjYwOTE0M2MxMC4wOTM3MTQtNS41NTg4NTcgMjAuNDgtMTAuNzUyIDMwLjkzOTQyOS0xNS4zNmw3LjgyNjI4NS0zLjU4NGE2OTIuODA5MTQzIDY5Mi44MDkxNDMgMCAwIDEgNDAuODg2ODU4LTE1LjA2NzQyOWM4LjExODg1Ny0yLjQxMzcxNCAxNi4zODQtNC42MDggMjQuODY4NTcxLTYuNTgyODU3IDUuNTU4ODU3LTEuMjQzNDI5IDEwLjk3MTQyOS0yLjc3OTQyOSAxNi42NzY1NzEtMy44MDM0MjggMi4zNDA1NzEtMC41ODUxNDMgNC41MzQ4NTctMS4zODk3MTQgNi44NzU0MjktMS42MDkxNDMgOC4wNDU3MTQtMS40NjI4NTcgMTUuOTQ1MTQzLTIuMTk0Mjg2IDIzLjc3MTQyOS0zLjIxODI4NiAyLjkyNTcxNC0wLjUxMiA1Ljc3ODI4Ni0xLjAyNCA4LjYzMDg1Ny0xLjMxNjU3MSAxNC4xODk3MTQtMS40NjI4NTcgMjguMzc5NDI5LTIuMzQwNTcxIDQyLjU2OTE0My0yLjM0MDU3MmE0MTUuNzQ0IDQxNS43NDQgMCAwIDEgMjQzLjkzMTQyOCA3OS41MDYyODYgNTMuNTQwNTcxIDUzLjU0MDU3MSAwIDAgMSAxMi42NTM3MTQgNzMuMTQyODU3IDUwLjAyOTcxNCA1MC4wMjk3MTQgMCAwIDEtNzEuMzE0Mjg1IDEyLjk0NjI4NnpNOTM4LjQ5NiAzODRhNDQyLjg4IDQ0Mi44OCAwIDAgMS03NS4wNDQ1NzEgMjQ3LjY2MTcxNGMtMC43MzE0MjkgMS4xNzAyODYtMS4wOTcxNDMgMi40MTM3MTQtMS42ODIyODYgMy41MTA4NTdhNTM1Ljk5MDg1NyA1MzUuOTkwODU3IDAgMCAxLTE4Ljg3MDg1NyAyNC44Njg1NzIgMzAuNjQ2ODU3IDMwLjY0Njg1NyAwIDAgMC0yLjEyMTE0MyAyLjkyNTcxNCA0MjcuNzM5NDI5IDQyNy43Mzk0MjkgMCAwIDEtMTU5LjMwNTE0MyAxMjIuODhsLTUuMTIgMi4yNjc0MjlhNTA0LjUzOTQyOSA1MDQuNTM5NDI5IDAgMCAxLTMwLjIwOCAxMS40MTAyODVsLTEwLjgyNTE0MyAzLjY1NzE0M2E0MTYuNDAyMjg2IDQxNi40MDIyODYgMCAwIDEtMjYuNzcwMjg2IDcuMTY4bC0xNS4xNDA1NzEgMy41MTA4NTdjLTIuNDg2ODU3IDAuNDM4ODU3LTQuNzU0Mjg2IDEuMTcwMjg2LTcuMzE0Mjg2IDEuNjgyMjg2LTYuODAyMjg2IDEuMDk3MTQzLTEzLjM4NTE0MyAxLjgyODU3MS0yMC4xODc0MjggMi42MzMxNDMtNC42ODExNDMgMC41MTItOS4yMTYgMS4yNDM0MjktMTMuODk3MTQzIDEuNzU1NDI5YTQzMS4wMzA4NTcgNDMxLjAzMDg1NyAwIDAgMS0zMy45MzgyODYgMS44Mjg1NzFjLTIuMDQ4IDAtNC4wOTYgMC4yOTI1NzEtNi4xNDQgMC4yOTI1NzFhNDE1LjE1ODg1NyA0MTUuMTU4ODU3IDAgMCAxLTI0NC41ODk3MTQtNzkuMjg2ODU3IDUzLjM5NDI4NiA1My4zOTQyODYgMCAwIDEtMTIuNTA3NDI5LTczLjIxNmMxNi4wOTE0MjktMjMuNjk4Mjg2IDQ4LjEyOC0yOS41NDk3MTQgNzEuMzE0Mjg2LTEyLjhhMzE1LjYxMTQyOSAzMTUuNjExNDI5IDAgMCAwIDIxNi43OTU0MjkgNTguNTE0Mjg2YzIuOTI1NzE0LTAuMjE5NDI5IDUuNzA1MTQzLTAuNzMxNDI5IDguNTU3NzE0LTEuMTcwMjg2IDcuNzUzMTQzLTAuOTUwODU3IDE1LjM2LTEuOTc0ODU3IDIyLjk2Njg1Ny0zLjY1NzE0MyAzLjIxODI4Ni0wLjU4NTE0MyA2LjU4Mjg1Ny0xLjQ2Mjg1NyA5LjcyOC0yLjE5NDI4NSA3LjQ2MDU3MS0xLjc1NTQyOSAxNC43NzQ4NTctMy41MTA4NTcgMjEuOTQyODU3LTUuNzc4Mjg2IDIuNDEzNzE0LTAuNzMxNDI5IDQuNjA4LTEuNDYyODU3IDYuODAyMjg2LTIuNDEzNzE0IDguMzM4Mjg2LTIuNzc5NDI5IDE2LjQ1NzE0My01LjYzMiAyNC4zNTY1NzEtOS4wNjk3MTUgMC44Nzc3MTQtMC4yMTk0MjkgMS42ODIyODYtMC45NTA4NTcgMi40ODY4NTctMS4yNDM0MjhhMzI2LjIxNzE0MyAzMjYuMjE3MTQzIDAgMCAwIDEyMi44OC05NC43OTMxNDNBMzM3LjMzNDg1NyAzMzcuMzM0ODU3IDAgMCAwIDgzNi4yNDIyODYgMzg0aC04NS41MDRsMTM2Ljc3NzE0My0yMTAuMzU4ODU3TDEwMjMuOTI2ODU3IDM4NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzb2xpZC10cmlhbmdsZSIgdW5pY29kZT0iJiM1ODkzODsiIGQ9Ik00NzEuMTQyNCAxMjIuMTYzMmMyMi41MjgtMjUuMDg4IDU4LjY3NTItMjUuNiA4MS43MTUyIDBsMjQ1Ljk2NDggMjczLjQwOGM0NS4xNTg0IDUwLjE3NiAyNi40MTkyIDkwLjgyODgtNDEuNTc0NCA5MC44Mjg4aC00OTAuNDk2Yy02OC4wOTYgMC04Ni43MzI4LTQwLjc1NTItNDEuNTc0NC05MC45MzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InJvYWRuZXR3b3JrIiB1bmljb2RlPSImIzU4OTM5OyIgZD0iTTUwMi43MTA4NTcgODE4LjQ2ODU3MWEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjYyMDU3MS0zNy4zMDI4NTd2LTE2Mi4yMzA4NTdhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42MjA1NzEtMzcuMzAyODU3IDM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjkzNzE0IDM3LjMwMjg1N1Y3ODEuMTY1NzE0YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjkzNzE0IDM3LjMwMjg1N3ogbS0xLjYwOTE0My0zNTIuNzY4YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjkzNzE0LTM3LjMwMjg1N3YtMTYyLjMwNGEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjY5MzcxNC0zNy4zMDI4NTcgMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42MjA1NzIgMzcuMzAyODU3VjQyOC4zOTc3MTRhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42MjA1NzIgMzcuMzAyODU3eiBtMC0zNTMuMjhhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42OTM3MTQtMzcuMzAyODU3di0xNjIuMzc3MTQzYTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjkzNzE0LTM3LjMwMjg1NyAzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjYyMDU3MiAzNy4zMDI4NTd2MTYyLjM3NzE0M2EzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjYyMDU3MiAzNy4zMDI4NTd6IG01MDYuNzMzNzE1LTE5My4wOTcxNDJsLTE4OS4xNDc0MjkgODczLjMyNTcxNGMtNC40NjE3MTQgMjAuNzcyNTcxLTIzLjY5ODI4NiAzMy43MTg4NTctNDIuODYxNzE0IDI5LjAzNzcxNC0xOS4yMzY1NzEtNC43NTQyODYtMzEuMTU4ODU3LTI1LjM4MDU3MS0yNi42OTcxNDMtNDYuMDhsMTg5LjE0NzQyOC04NzMuMzk4ODU3YzQuNTM0ODU3LTIwLjc3MjU3MSAyMy42OTgyODYtMzMuNzE4ODU3IDQyLjkzNDg1OC0yOS4wMzc3MTQgMTkuMjM2NTcxIDQuNzU0Mjg2IDMxLjE1ODg1NyAyNS4zODA1NzEgMjYuNjI0IDQ2LjA4ek0yMzMuODM3NzE0IDgyMS42ODY4NTdjLTE5LjE2MzQyOSA0LjY4MTE0My0zOC40LTguMjY1MTQzLTQyLjg2MTcxNC0yOS4wMzc3MTRMMS44Mjg1NzEtODAuNjc2NTcxYy00LjUzNDg1Ny0yMC43NzI1NzEgNy4zODc0MjktNDEuMzk4ODU3IDI2LjYyNC00Ni4wOCAxOS4yMzY1NzEtNC43NTQyODYgMzguNCA4LjE5MiA0Mi45MzQ4NTggMjguOTY0NTcxbDE4OS4xNDc0MjggODczLjMyNTcxNGM0LjQ2MTcxNCAyMC43NzI1NzEtNy40NjA1NzEgNDEuMzk4ODU3LTI2LjY5NzE0MyA0Ni4wOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyZXR1cm4iIHVuaWNvZGU9IiYjNTg5NDA7IiBkPSJNOTQxLjMxMiAzNDIuNzg0SDI0MC4zODRsMzQ3LjItMzQ3LjItNTguMjQtNTguMjRMODIuNjg4IDM4NGw0NDYuNzIgNDQ2LjY1NiA1OC4yNC01OC4yNC0zNDcuMjY0LTM0Ny4yaDcwMC45Mjh6TTE5OS4yMzIgMzgxLjQ0bDMuNjQ4LTMuMnY2LjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icGFja3VwIiB1bmljb2RlPSImIzU4OTQxOyIgZD0iTTEwNi40OTYgODAwaDgyMC40MTZjMjIuNjU2IDAgNDAuOTYgMjEuNTA0IDQwLjk2IDQ4cy0xOC4zMDQgNDgtNDAuOTYgNDhIMTA2LjQ5NmMtMjIuNTkyIDAtNDAuOTYtMjEuNTA0LTQwLjk2LTQ4czE4LjM2OC00OCA0MC45Ni00OHpNNTQwLjIyNCA0NDhIOTkuNzc2QzgwIDQ0OCA2NCA0MjYuNDk2IDY0IDQwMHMxNi00OCAzNS44NC00OGg0NDAuMzJjMTkuODQgMCAzNS44NCAyMS41MDQgMzUuODQgNDhTNTYwIDQ0OCA1NDAuMTYgNDQ4eiBtMzg1LjE1Mi00NDhIMTA1LjAyNGMtMjIuNjU2IDAtNDEuMDI0LTIxLjUwNC00MS4wMjQtNDhzMTguMzY4LTQ4IDQwLjk2LTQ4aDgyMC40OGMyMi41OTIgMCA0MC45NiAyMS41MDQgNDAuOTYgNDhzLTE4LjM2OCA0OC00MC45NiA0OHogbTMxLjQyNCA2MDcuOTM2bC0yNDAtMjA4IDI0MC0yMDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ic2hhcmUiIHVuaWNvZGU9IiYjNTg5NDI7IiBkPSJNOTE1LjUyIDIzOC43MnYtMjE3LjcyOGMwLTM3LjQ0LTMwLjcyLTY4Ljg2NC02Ni44MTYtNjguODY0bC03MDYuNTYtMS4yOGMtMzYuMDk2IDAtNjUuNiAzMC40LTY1LjYgNjcuODRsMS4yMTYgNzI4LjA2NGMwIDM3LjMxMiAzMC43MiA2OC45MjggNjYuODggNjguOTI4aDM5MC43ODRWODk1LjgwOEgxNDQuNjRDNjIuMDE2IDg5NS44MDggMC4xOTIgODA5LjY2NCAwLjE5MiA3MzIuNjA4di03MTMuODU2YzAtODAuNzY4IDYzLjYxNi0xNDYuNTYgMTQyLjIwOC0xNDYuNTZoNjkyLjczNmM4Mi44MTYgMCAxNTguMTQ0IDcwLjk3NiAxNTguMTQ0IDE0OC44VjIzOC43MnogbS0xODMuMTY4IDU1My40NzJsMjkxLjQ1Ni0yODIuMTEyLTI5MS40NTYtMjgxLjk4NFYzODkuMjQ4cy0yODkuMjggMzEuMDQtNDU4LjA0OC0yMDEuNmMwIDAgNTMuMTIgNDQzLjM5MiA0NTguMDQ4IDQ0My4zOTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYmFja2hvbWVwYWdlIiB1bmljb2RlPSImIzU4OTY5OyIgZD0iTTcyOS4yNDggNDguMTI4aC0xMzkuOTY4YTE5Ljg0IDE5Ljg0IDAgMCAwLTE5Ljg0IDE5Ljg0djI2OS4xMmExOC4wNDggMTguMDQ4IDAgMCAxLTE4LjA0OCAxOC4wMTZoLTc2LjczNmExOC4wNDggMTguMDQ4IDAgMCAxLTE4LjA0OC0xOC4wMTZ2LTI2OS4xMmExOS44NCAxOS44NCAwIDAgMC0xOS44NC0xOS44NEgyOTIuNDhhNTguNDY0IDU4LjQ2NCAwIDAgMC01OC40NjQgNTguNDY0djI0Ny4zNmExMy40NCAxMy40NCAwIDAgMS0xMy40NCAxMy40NEgxODMuNzQ0Yy0zNC40IDAtNTEuODcyIDQxLjI4LTI3Ljk2OCA2NS45ODRsMzI4LjMyIDMzOS4wNGEzOC45MTIgMzguOTEyIDAgMCAwIDU1LjY0OCAwLjMyTDg3Mi41MTIgNDM2LjQ4YzI1LjM3Ni0yNS42IDcuMi02OS4xMi0yOC44MzItNjkuMTJIODA0LjE2YTE0LjQ2NCAxNC40NjQgMCAwIDEtMTQuNDY0LTE0LjQ2NHYtMjQ0LjM1MmE2MC40OCA2MC40OCAwIDAgMC02MC40OC02MC40OHogbS04NS42NjQgNDkuODg4aDcxLjk2OGMxMy40MDggMCAyNC4yNTYgMTAuODggMjQuMjU2IDI0LjI1NnYyNzAuMjA4YzAgMTMuNjk2IDExLjEwNCAyNC44IDI0LjggMjQuOGg0Ni40OTZhNC4yODggNC4yODggMCAwIDEgMy4wNCA3LjI5Nkw1MjMuOTY4IDcxNy43NmExNi4zODQgMTYuMzg0IDAgMCAxLTIzLjQyNC0wLjEyOGwtMjkwLjg4LTMwMC4zODRoNDkuNDcyYzEzLjY5NiAwIDI0LjgtMTEuMTA0IDI0LjgtMjQuOHYtMjcwLjIwOGMwLTEzLjQwOCAxMC44OC0yNC4yNTYgMjQuMjU2LTI0LjI1Nmg3NC4yNGMxMy40NCAwIDI0LjMyIDEwLjg4IDI0LjMyIDI0LjI1NlYzMzQuNzJjMCAzOC44NDggMzEuNDU2IDcwLjMwNCA3MC4yNzIgNzAuMzA0aDcyYzM4LjgxNiAwIDcwLjMwNC0zMS40NTYgNzAuMzA0LTcwLjMwNHYtMjEyLjQxNmMwLTEzLjQwOCAxMC44OC0yNC4yNTYgMjQuMjU2LTI0LjI1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJNeU1hcHMiIHVuaWNvZGU9IiYjNTg5NzA7IiBkPSJNODMwLjU5MiA3MjguNTc2Yy01LjE1MiAwLTEwLjQzMi0wLjg2NC0xNS41ODQtMi44MTZsLTE3Mi44OTYtNjIuODE2YTQ1LjI0OCA0NS4yNDggMCAwIDAtMTUuNTg0LTIuNzJjLTUuNzYgMC0xMS40NTYgMS4wNTYtMTYuODY0IDMuMjY0bC0xOTUuMiA3OC4xMTJhNDUuNiA0NS42IDAgMCAxLTMyLjQ0OCAwLjUxMkwxNzcuOTg0IDY2Ny45NjhhNDUuNDQgNDUuNDQgMCAwIDEtMjkuOTItNDIuNzg0di01NDAuMTZhNDUuNTA0IDQ1LjUwNCAwIDAgMSA2MC45OTItNDIuNjg4bDE3Mi44OTYgNjIuODQ4YzQuOTkyIDEuODI0IDEwLjMwNCAyLjY4OCAxNS41NTIgMi42ODggNS43NiAwIDExLjQ4OC0xLjA1NiAxNi44OTYtMy4ybDE5NS4yLTc4LjE3NmE0NS4yNDggNDUuMjQ4IDAgMCAxIDMyLjQ4LTAuNTEybDIwMy45NjggNzQuMjA4YTQ1LjQ0IDQ1LjQ0IDAgMCAxIDI5LjkyIDQyLjc4NFY2ODMuMTA0YzAgMjUuOTUyLTIxLjM0NCA0NS40NzItNDUuNDQgNDUuNDcyek0xOTMuNDcyIDg0LjkyOFY2MjUuMTUybDE4Mi4wMTYgNjYuMTQ0di01NDAuNzM2YTgzLjkzNiA4My45MzYgMCAwIDEtOS4wODgtMi44MTZ6IG0yMjcuNTIgNjUuMjhWNjg5Ljg4OGwxNzEuNzc2LTY4LjY3MmMzLjM5Mi0xLjMxMiA2LjgxNi0yLjQ2NCAxMC4yNC0zLjQyNHYtNTM5LjY4bC0xNzEuNzc2IDY4LjY3MmE3MC4yNCA3MC4yNCAwIDAgMS0xMC4yNCAzLjQyNHogbTQwOS41MDQtNy4zNmwtMTgxLjk4NC02Ni4xNDRWNjE3LjQ0YzMuMDQgMC44IDYuMTEyIDEuNjY0IDkuMDg4IDIuODE2bDE3Mi44OTYgNjIuODE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IkNyZWF0ZU1hcCIgdW5pY29kZT0iJiM1ODk3MTsiIGQ9Ik01MTIgNzM2QzMwMC4wMzIgNzM2IDEyOCA1NjMuOTY4IDEyOCAzNTJzMTcyLjAzMi0zODQgMzg0LTM4NCAzODQgMTcyLjAzMiAzODQgMzg0UzcyMy45NjggNzM2IDUxMiA3MzZ6IG0wLTcxNC4yNGMtMTgyLjAxNiAwLTMzMC4yNCAxNDguMjI0LTMzMC4yNCAzMzAuMjRTMzI5Ljk4NCA2ODIuMjQgNTEyIDY4Mi4yNCA4NDIuMjQgNTM0Ljc4NCA4NDIuMjQgMzUyIDY5NC4wMTYgMjEuNzYgNTEyIDIxLjc2ek02NjcuMTM2IDM4NS43OTJoLTEyMS4zNDR2MTIxLjM0NGMwIDE0LjU5Mi0xMi4yODggMjYuODgtMjYuODggMjYuODhzLTI2Ljg4LTEyLjI4OC0yNi44OC0yNi44OHYtMTIxLjM0NGgtMTIxLjM0NGMtMTQuNTkyIDAtMjYuODgtMTIuMjg4LTI2Ljg4LTI2Ljg4czEyLjI4OC0yNi44OCAyNi44OC0yNi44OGgxMjEuMzQ0di0xMjEuMzQ0YzAtMTQuNTkyIDEyLjI4OC0yNi44OCAyNi44OC0yNi44OHMyNi44OCAxMi4yODggMjYuODggMjYuODh2MTIxLjM0NGgxMjEuMzQ0YzE0LjU5MiAwIDI2Ljg4IDEyLjI4OCAyNi44OCAyNi44OHMtMTIuMjg4IDI2Ljg4LTI2Ljg4IDI2Ljg4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImZlZWRiYWNrIiB1bmljb2RlPSImIzU4OTcyOyIgZD0iTTQxMC4zMDQgMTUyLjg5NmwtMTc1LjY0OC0xMzguNjg4djEzOC42ODhoLTI4LjQ0OGE2NCA2NCAwIDAgMC02NCA2NFY2NDMuNTJhNjQgNjQgMCAwIDAgNjQgNjRoNjExLjU4NGE2NCA2NCAwIDAgMCA2NC02NHYtNDI2LjY1NmE2NCA2NCAwIDAgMC02NC02NHogbS03LjM2IDQ2LjIwOGg0MDAuNjRhMzIgMzIgMCAwIDEgMzIgMzJWNjI5LjM0NGEzMiAzMiAwIDAgMS0zMiAzMkgyMjAuNDE2YTMyIDMyIDAgMCAxLTMyLTMydi0zOTguMjRhMzIgMzIgMCAwIDEgMzItMzJoMjguNDQ4YTMyIDMyIDAgMCAwIDMyLTMydi01NS44MDhsMTAyLjIwOCA4MC44OTZhMzIgMzIgMCAwIDAgMTkuODQgNi45MTJ6TTI4MC44OTYgMzg0aDQ2Mi4yMDh2LTQ2LjIwOEgyODAuODk2eiBtMCAxMzguNjU2aDQ2Mi4yMDh2LTQ2LjIwOEgyODAuODk2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNraW4xIiB1bmljb2RlPSImIzU4OTczOyIgZD0iTTc0MC4xOTIgNzgwdi01NmwxNDIuODE2LTE0MS40MDgtNzkuODA4LTc5Ljc3NmE1NS4yIDU1LjIgMCAwIDEtMzcuNzkyIDEzLjk4NCA1Ni43NjggNTYuNzY4IDAgMCAxLTU3LjQwOC01Ny40MDh2LTI5NS4zOTJjMC0zMC44MTYtMjUuMTg0LTU2LTU2LTU2aC0yODBjLTMwLjc4NCAwLTU2IDI1LjE4NC01NiA1NnYyOTUuMzkyYTU2Ljc2OCA1Ni43NjggMCAwIDEtNTcuNDA4IDU3LjQwOGMtMTMuOTg0IDAtMjgtNS42LTM3Ljc5Mi0xNC4wMTZMMTQwLjk5MiA1ODIuNTkybDE0MS40MDggMTQxLjQwOGgzNS4wMDhsMS40MDgtMS40MDhDMzU4LjAxNiA2NjMuODA4IDQzMi4xOTIgNjI1Ljk4NCA1MTIgNjI1Ljk4NHMxNTQuMDE2IDM2LjQxNiAxOTMuMTg0IDk2LjY0YzAgMS4zNzYgMS40MDggMS4zNzYgMS40MDggMS4zNzZoMzMuNnogbS00MjEuMzc2IDBIMjg4Yy0xOS41ODQgMC0zMy42LTUuNi00My4zOTItMTYuOEwxMDEuNzYgNjIxLjc5MmMtMjIuNC0yMi40LTIyLjQtNTcuNDA4IDAtNzguNEwxODQuNDE2IDQ2MC44YzkuNzkyLTkuNzkyIDIzLjc3Ni0xNS4zOTIgMzYuMzg0LTE1LjM5MnMyNi41OTIgNS42IDM2LjQxNiAxNS4zOTJoMS4zNzZjMS40MDggMCAxLjQwOCAwIDEuNDA4LTEuNDA4di0yOTUuMzkyYTExMi4zMiAxMTIuMzIgMCAwIDEgMTEyLTExMmgyODBhMTEyLjMyIDExMi4zMiAwIDAgMSAxMTIgMTEydjI5NS4zOTJjMCAxLjQwOCAwIDEuNDA4IDEuNDA4IDEuNDA4aDEuMzc2YzkuODI0LTkuNzkyIDIzLjgwOC0xNS4zOTIgMzYuNDE2LTE1LjM5MiAxMy45ODQgMCAyNi41OTIgNS42IDM2LjM4NCAxNS4zOTJsODIuNjI0IDgyLjU5MmMyMi40IDIyLjQgMjIuNCA1Ny40MDggMCA3OC40TDc4MC44IDc2My4yYTU2LjA2NCA1Ni4wNjQgMCAwIDEtNDAuNjA4IDE2LjhoLTM1LjAwOGMtMTkuNTg0IDAtMzYuMzg0LTkuNzkyLTQ3LjU4NC0yNi41OTItMjkuNDA4LTQzLjQyNC04NC03MS40MjQtMTQ3LjAwOC03MS40MjRzLTExNy42IDI5LjQ0LTE0Ny4wMDggNzEuNDI0Yy04LjM4NCAxNi44LTI2LjU2IDI2LjU5Mi00NC44IDI2LjU5MnpNMzg0IDQ4MGgxMjh2LTE2MGgtMTI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLSIgdW5pY29kZT0iJiM1ODk3NDsiIGQ9Ik02MTMuNjMyIDgzOS4zNmMxNC41MjggMTguNDMyIDIxLjY5NiAxNS4wNCAxNS44MDgtOEw1NTUuMzkyIDU0MC40OCA3OTguNzg0IDQ2Ny4yYzExLjItMy4zMjggMTQuNTkyLTEzLjYzMiA3LjQ4OC0yMy4wNGwtMzg3LjUyLTUxNi4wOTZjLTE0LjE0NC0xOC45NDQtMjAuODY0LTE1LjgwOC0xNC45MTIgNy4xMDRMNDgyLjI0IDIzNi44IDIwMC45NiAyODYuMjcyYy0xMS41ODQgMi4wNDgtMTUuMTY4IDExLjA3Mi03Ljc0NCAyMC40OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJhY2NvdW50IiB1bmljb2RlPSImIzU4OTc1OyIgZD0iTTg0Ny42OCA2NjEuNDRjMTcuNiAwIDMxLjg3Mi0xNC4yNzIgMzEuODcyLTMxLjg0di00OTEuMmMwLTE3LjU2OC0xNC4yNzItMzEuODcyLTMxLjg3Mi0zMS44NzJIMTc2LjMyYTMxLjkwNCAzMS45MDQgMCAwIDAtMzEuODcyIDMxLjg3MlY2MjkuNmMwIDE3LjU2OCAxNC4yNzIgMzEuODcyIDMxLjg3MiAzMS44NzJ6IG0wIDUyLjUxMkgxNzYuMzJhODQuMzg0IDg0LjM4NCAwIDAgMS04NC4zODQtODQuMzUydi00OTEuMkE4NC4zODQgODQuMzg0IDAgMCAxIDE3Ni4zMiA1NC4wOGg2NzEuMzZhODQuMzg0IDg0LjM4NCAwIDAgMSA4NC4zODQgODQuMzUyVjYyOS42QTg0LjM4NCA4NC4zODQgMCAwIDEgODQ3LjY4IDcxMy45MnpNODEyLjQ0OCA1MzcuNzZjMC0xNC40MzItMTEuODQtMjYuMjQtMjYuMjQtMjYuMjRoLTE3Mi40OGMtMTQuNDMyIDAtMjYuMjQgMTEuODA4LTI2LjI0IDI2LjI0czExLjgwOCAyNi4yNCAyNi4yNCAyNi4yNGgxNzIuNDhjMTQuNCAwIDI2LjI0LTExLjg0IDI2LjI0LTI2LjI0eiBtMC0xMjMuNzQ0YzAtMTQuNDMyLTExLjg0LTI2LjI0LTI2LjI0LTI2LjI0aC0xMTYuOTZhMjYuMzM2IDI2LjMzNiAwIDAgMC0yNi4yNCAyNi4yNGMwIDE0LjQzMiAxMS44MDggMjYuMjQgMjYuMjQgMjYuMjRoMTE2LjkyOGMxNC40NjQgMCAyNi4yNC0xMS44MDggMjYuMjQtMjYuMjR6IG0wLTEyMy43NDRjMC0xNC40LTExLjg0LTI2LjI0LTI2LjI0LTI2LjI0aC02NS43NmMtMTQuNDMyIDAtMjYuMjQgMTEuODQtMjYuMjQgMjYuMjRzMTEuODA4IDI2LjI0IDI2LjI0IDI2LjI0aDY1LjcyOGMxNC40NjQgMCAyNi4yNC0xMS43NzYgMjYuMjQtMjYuMjR6TTQ4MS4wMjQgMzc0LjA4YTE4Ny41MiAxODcuNTIgMCAwIDAgMTA2LjQ2NC0xNjkuMTUyaC01Mi41MTJhMTM0LjExMiAxMzQuMTEyIDAgMCAxLTM5LjU1MiA5NS40NTYgMTM0LjAxNiAxMzQuMDE2IDAgMCAxLTg4Ljg5NiAzOS4zOTIgMTE0LjE3NiAxMTQuMTc2IDAgMCAwLTEzLjEyIDBjLTMzLjYtMS42LTY0Ljk2LTE1LjQyNC04OC44OTYtMzkuMzZhMTM0LjExMiAxMzQuMTEyIDAgMCAxLTM5LjUyLTk1LjQ4OEgyMTIuNDhhMTg3LjUyIDE4Ny41MiAwIDAgMCAxMDYuNDY0IDE2OS4xMiAxMTIuNTEyIDExMi41MTIgMCAxIDAgMTYyLjA4IDB6IG0tMTQxLjA1NiA3OC4wMTZjMC0zMS4yMzIgMjQtNTYuOTYgNTQuNDY0LTU5Ljc0NGExOTAuMTEyIDE5MC4xMTIgMCAwIDAgMTEuMDcyIDAgNjAuMDY0IDYwLjA2NCAwIDAgMSA1NC40NjQgNTkuNzQ0YzAgMzMuMDU2LTI2Ljg4IDYwLTYwIDYwcy02MC0yNi45NDQtNjAtNjB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMSIgdW5pY29kZT0iJiM1ODk3NjsiIGQ9Ik04MjMuMjMyIDUxMkg3MDRWNjcyYzAgMTcuNi0xNC40IDMyLTMyIDMyaC01NzZjLTE3LjYgMC0zMi0xNC40LTMyLTMydi00NDhjMC0xNy42IDE0LjQtMzIgMzItMzJIMTI4YzAtNzAuNCA1Ny42LTEyOCAxMjgtMTI4czEyOCA1Ny42IDEyOCAxMjhoMjU2YzAtNzAuNCA1Ny42LTEyOCAxMjgtMTI4czEyOCA1Ny42IDEyOCAxMjhoMzJjMTcuNiAwIDMyIDE0LjQgMzIgMzJWMzE0LjQzMmMwIDMuMi0wLjgzMiA2LjQtMi4zNjggOC43NjhsLTEyMC44MzIgMTgxLjU2OEExNS43NDQgMTUuNzQ0IDAgMCAxIDgyMy4yMzIgNTEyek0yNjguOCAxMjkuNmE2NCA2NCAwIDEgMC0yNC43NjggMTI1LjYzMiA2NCA2NCAwIDAgMCA3NS4yLTc1LjJjLTUuNjMyLTI1LjYtMjUuNi00NS42MzItNTAuNDMyLTUwLjQzMnogbTUxMiAwYTY0IDY0IDAgMSAwLTI0Ljc2OCAxMjUuNjMyIDY0IDY0IDAgMCAwIDc1LjEzNi03NS4yYy01LjU2OC0yNS42LTI1LjYtNDUuNjMyLTUwLjM2OC01MC40MzJ6TTcwNCAzMjBWNDQ4aDk1LjIzMmM1LjU2OCAwIDEwLjM2OC0yLjM2OCAxMi44LTcuMjMyTDg5NiAzMjB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMiIgdW5pY29kZT0iJiM1ODk3NzsiIGQ9Ik05MjggNTEyYTMyIDMyIDAgMCAwLTE0LjA4IDMuMkw1NDQgNzA0IDE3NC4wOCA1MTYuNDhBMzIuODk2IDMyLjg5NiAwIDAgMCAxNDUuOTIgNTc2TDU0NCA3NzMuMTIgOTQyLjA4IDU3NmEzMi43NjggMzIuNzY4IDAgMCAwLTE0LjA4LTY0ek0zODQgMTkySDE5MnYtMTkyaDE5MnogbTI1NiAwSDQ0OHYtMTkyaDE5MnogbTI1NiAwaC0xOTJ2LTE5MmgxOTJ6IG0tMTI4IDI1Nkg1NzZ2LTE5MmgxOTJ6TTUxMiA0NDhIMzIwdi0xOTJoMTkyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTMiIHVuaWNvZGU9IiYjNTg5Nzg7IiBkPSJNNjk2LjMyIDM2MC40NDhjMC0yNi42MjQtNC45MjgtNTEuNTItMTQuODQ4LTc0Ljc1MnMtMjMuNTUyLTQzLjUyLTQwLjk2LTYwLjkyOC0zNy43Ni0zMS4wNC02MC45MjgtNDAuOTYtNDguMTI4LTE0Ljg0OC03NC43NTItMTQuODQ4LTUxLjUyIDQuOTI4LTc0Ljc1MiAxNC44NDgtNDMuNTIgMjMuNTUyLTYwLjkyOCA0MC45Ni0zMS4wNCAzNy43Ni00MC45NiA2MC45MjgtMTQuODQ4IDQ4LjEyOC0xNC44NDggNzQuNzUyIDQuOTI4IDUxLjUyIDE0Ljg0OCA3NC43NTIgMjMuNTUyIDQzLjUyIDQwLjk2IDYwLjkyOCAzNy43NiAzMS4wNCA2MC45MjggNDAuOTYgNDguMTI4IDE0Ljg0OCA3NC43NTIgMTQuODQ4IDUxLjUyLTQuOTI4IDc0Ljc1Mi0xNC44NDggNDMuNTItMjMuNTUyIDYwLjkyOC00MC45NiAzMS4wNC0zNy43NiA0MC45Ni02MC45MjggMTQuODQ4LTQ4LjEyOCAxNC44NDgtNzQuNzUyeiBtNjQuNTEyLTM3Ny44NTZjMC03LjQ4OC0zLjA3Mi0xNC4zMzYtOS4yMTYtMjAuNDhzLTE0LjAxNi0xMS40NTYtMjMuNTUyLTE1Ljg3Mi0yMC44LTgtMzMuNzkyLTEwLjc1Mi0yNS45Mi00LjA5Ni0zOC45MTItNC4wOTZIMzQ3LjEzNmMtMTEuNTg0IDAtMjMuMjMyIDEuMzQ0LTM0LjgxNiA0LjA5NnMtMjIuMDE2IDYuMzM2LTMxLjIzMiAxMC43NTItMTYuNzA0IDkuNzI4LTIyLjUyOCAxNS44NzItOC43MDQgMTIuOTkyLTguNzA0IDIwLjQ4eiBtOS4yMTYgODY1LjI4YzI5LjM3NiAwIDUwLjY4OC04LjUxMiA2NC0yNS42czE5Ljk2OC0zNy41NjggMTkuOTY4LTYxLjQ0di02NTcuNDA4YzAtMjMuODcyLTguNTEyLTQ0LjM1Mi0yNS42LTYxLjQ0cy0zOC41OTItMjUuNi02NC41MTItMjUuNkgyNDUuNzZjLTI2LjYyNCAwLTQ4LjEyOCA4LjUxMi02NC41MTIgMjUuNnMtMjQuNTc2IDM3LjU2OC0yNC41NzYgNjEuNDRWNzYwLjgzMmMwIDIzLjg3MiA3LjQ4OCA0NC4xNiAyMi41MjggNjAuOTI4czM1LjUyIDI1LjA4OCA2MS40NCAyNS4wODh6TTIyNS4yOCA3MjguMDY0YzAtNy40ODggMi41Ni0xNC41MjggNy42OC0yMC45OTJzMTMuNDQtOS43MjggMjUuMDg4LTkuNzI4aDc3LjgyNGMxMS41ODQgMCAyMC4xNiAzLjkwNCAyNS42IDExLjc3NnM4LjE5MiAxNS41NTIgOC4xOTIgMjMuMDR2MTUuMzZjMCA3LjQ4OC0zLjA3MiAxNC4zMzYtOS4yMTYgMjAuNDhzLTE0LjcyIDkuMjE2LTI1LjYgOS4yMTZIMjYwLjA5NmMtMTEuNTg0IDAtMjAuMjg4LTMuMi0yNi4xMTItOS43MjhzLTguNzA0LTEzLjQ0LTguNzA0LTIwLjk5MnogbTI3OS41NTItNjIzLjYxNmMzNS41MiAwIDY4LjggNi42NTYgOTkuODQgMTkuOTY4czU4LjI0IDMxLjU1MiA4MS40MDggNTQuNzg0IDQxLjQ3MiA1MC4zNjggNTQuNzg0IDgxLjQwOGEyNTAuNzUyIDI1MC43NTIgMCAwIDEgMTkuOTY4IDk5Ljg0YzAgMzQuODE2LTYuNjU2IDY3Ljc3Ni0xOS45NjggOTguODE2cy0zMS41NTIgNTguMjQtNTQuNzg0IDgxLjQwOC01MC4zNjggNDEuNDcyLTgxLjQwOCA1NC43ODQtNjQuMzIgMTkuOTY4LTk5Ljg0IDE5Ljk2OGMtMzQuODE2IDAtNjcuNzc2LTYuNjU2LTk4LjgxNi0xOS45NjhzLTU4LjI0LTMxLjU1Mi04MS40MDgtNTQuNzg0LTQxLjQ3Mi01MC4zNjgtNTQuNzg0LTgxLjQwOC0xOS45NjgtNjQtMTkuOTY4LTk4LjgxNmMwLTM1LjUyIDYuNjU2LTY4LjggMTkuOTY4LTk5Ljg0IDEzLjMxMi0zMS4wNCAzMS41NTItNTguMjQgNTQuNzg0LTgxLjQwOHM1MC4zNjgtNDEuNDcyIDgxLjQwOC01NC43ODQgNjQtMTkuOTY4IDk4LjgxNi0xOS45Njh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNCIgdW5pY29kZT0iJiM1ODk3OTsiIGQ9Ik02NzcuNzYgMTg0Ljc2OGExOC43NTIgMTguNzUyIDAgMCAwLTUuMTg0IDEyLjU0NGMwIDkuNDcyIDcuNjggMTcuMjE2IDE3LjA4OCAxNy4zNDRoMTAwLjQxNmM5LjYgMCAxNy4zNDQgNy44MDggMTcuMzQ0IDE3LjQwOGExNy45ODQgMTcuOTg0IDAgMCAxLTUuNTA0IDEyLjQ4TDY1Mi44IDM5NC40OTZhMjAuOTI4IDIwLjkyOCAwIDAgMC00LjI4OCAxMS44NCAxNy40MDggMTcuNDA4IDAgMCAwIDE3LjI4IDE3LjI4aDc5LjM2YzkuNiAwLjEyOCAxNy4zNDQgNy45MzYgMTcuMzQ0IDE3LjUzNmExNy4yOCAxNy4yOCAwIDAgMS01LjMxMiAxMi40MTZMNjA4LjU3NiA2MDIuNDMybC0wLjk2IDAuOTZhMTcuNDA4IDE3LjQwOCAwIDAgMCAxMi42MDggMjkuMjQ4aDYwLjE2YzkuNiAwIDE3LjI4IDcuODA4IDE3LjI4IDE3LjQ3MmExNy4xNTIgMTcuMTUyIDAgMCAxLTQuNjcyIDExLjM5MmgwLjM4NEw1NTcuNzYgODI1LjA4OEExNy4yOCAxNy4yOCAwIDAgMSA1NDMuODcyIDgzMmExNy4yOCAxNy4yOCAwIDAgMS0xMy44ODgtNi45MTJMMzk0Ljg4IDY2MS41MDRhMTcuMTUyIDE3LjE1MiAwIDAgMS00LjczNi0xMS4zOTJjMC05LjYgNy43NDQtMTcuNDA4IDE3LjM0NC0xNy40MDhoNjAuMTZhMTYuODMyIDE2LjgzMiAwIDAgMCAxMi44LTI5LjI0OGwtMS4wMjQtMS4wMjQtMTQ4LjQ4LTE0OC44NjRhMTcuMjggMTcuMjggMCAwIDEtNS4zNzYtMTIuNDE2YzAtOS41MzYgNy42MTYtMTcuMjggMTcuMDg4LTE3LjQ3Mmg3OS40ODhhMTcuMjggMTcuMjggMCAwIDAgMTcuMzQ0LTE3LjM0NCAyMC45MjggMjAuOTI4IDAgMCAwLTQuMzUyLTExLjg0TDI4NS44MjQgMjQ0LjQ4YTE3Ljk4NCAxNy45ODQgMCAwIDEtNS42OTYtMTIuNDhjMC05LjYgNy44MDgtMTcuNDA4IDE3LjM0NC0xNy40MDhoMTAwLjY3MmExNy40MDggMTcuNDA4IDAgMCAwIDE3LjIxNi0xNy4yOCAxOC43NTIgMTguNzUyIDAgMCAwLTUuMTItMTIuNjA4bC0xNDguNTQ0LTE0OC40OC0wLjY0LTAuNjRhMTcuMjggMTcuMjggMCAwIDEgMC0yNC40NDggMTcuNzI4IDE3LjcyOCAwIDAgMSAxMi40OC01LjUwNGgyMzUuNjQ4Vi02NGw2OS4zNzYgMC41NzZ2NjkuMTJoMjM1LjM5MmExOC4zMDQgMTguMzA0IDAgMCAxIDE4LjA0OCAxNy42NjQgMTcuMjggMTcuMjggMCAwIDEtNC45MjggMTIuMzUyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUiIHVuaWNvZGU9IiYjNTg5ODA7IiBkPSJNMjk0LjE0NCAzMjcuMTA0bDEuMzQ0LTEuNjY0IDE1NC41Ni0xNjQuOTI4YzMzLjkyLTM5LjkzNiA5MC42ODgtMzkuOTM2IDEyNS4xMiAwLjUxMmwxNTMuNiAxNjQuODY0IDMuNzc2IDQuMDMyIDIuMjQgMi40MzJBMTQ2LjY4OCAxNDYuNjg4IDAgMCAxIDc2OCA0MjcuNTg0YTE0OC40OCAxNDguNDggMCAwIDEtMjU2IDEwMi4yNzIgMTQ4LjQ4IDE0OC40OCAwIDAgMS0yNTYtMTAyLjI3MmMwLTM3LjEyIDE0LjA4LTczLjQwOCAzOC4xNDQtMTAwLjQ4ek01MTItMzJhNDE2IDQxNiAwIDEgMCAwIDgzMiA0MTYgNDE2IDAgMCAwIDAtODMyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTYiIHVuaWNvZGU9IiYjNTg5ODE7IiBkPSJNNjA4IDMyMGEyMi40IDIyLjQgMCAwIDAgMC00NC44SDUzNC40di0xOS4yYTIyLjQgMjIuNCAwIDEgMC00NC44IDB2MTkuMkg0MTZhMjIuNCAyMi40IDAgMSAwIDAgNDQuOGg3My42djUxLjJINDE2YTIyLjQgMjIuNCAwIDAgMCAwIDQ0LjhoNjQuMzg0bC0wLjI1NiAwLjE5Mi02NCA2NGEyMi40IDIyLjQgMCAwIDAgMzEuNzQ0IDMxLjY4bDY0LTY0TDUxMiA0NDcuNjE2bDAuMTkyIDAuMjU2IDY0IDY0YTIyLjQgMjIuNCAwIDEgMCAzMS42MTYtMzEuNjhsLTY0LTY0LTAuMTkyLTAuMTkySDYwOGEyMi40IDIyLjQgMCAwIDAgMC00NC44SDUzNC40VjMyMHogbTI1NiAxNjBoMzJWNjQwLjE5MkE2NCA2NCAwIDAgMSA4MzEuOTM2IDcwNEgxOTIuMDY0QTY0IDY0IDAgMCAxIDEyOCA2NDAuMTkyVjQ4MGgzMkMyMTIuOTI4IDQ4MCAyNTYgNDM2LjkyOCAyNTYgMzg0cy00My4wNzItOTYtOTYtOTZIMTI4di0xNjAuMTkyQTY0IDY0IDAgMCAxIDE5Mi4wNjQgNjRoNjM5Ljg3MkE2NCA2NCAwIDAgMSA4OTYgMTI3LjgwOFYyODhoLTMyYy01Mi45MjggMC05NiA0My4wNzItOTYgOTZzNDMuMDcyIDk2IDk2IDk2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTciIHVuaWNvZGU9IiYjNTg5ODI7IiBkPSJNMTY0Ljk5MiAyODcuMzZjLTIzLjY4LTQyLjgxNi02Ny4xMzYtMTIwLjgzMiA5LjY2NC0xNzIuOTkyIDI0LjEyOC0xNi4xOTIgNTEuMi0yNy40NTYgNzkuNTUyLTMzLjAyNCAyMS42MzItMy4yIDIyLjcyLTM3LjEyLTIuNjg4LTM2LjI4OC0yNy4wNzIgMS40MDgtMTU4LjkxMiAxMy44MjQtMTgwLjA5NiAxMTQuNDMyLTEwLjk0NCA1OC43NTIgMS40MDggMTExLjM2IDM1LjQ1NiAxNjguNTEybDQ5LjAyNCA4OC4xMjhMNjQgNDY5LjMxMmwyNDQuOCAxNDcuOTY4di0yODYuMDhMMjE2Ljk2IDM4MC44eiBtMjk4LjU2IDQ3MC41MjhjODEuMjE2IDQ0LjkyOCAxMjguMTkyLTMwLjcyIDE1NC4wNDgtNzJsNTYuNzA0LTkwLjM2OC04OS4wMjQtNTcuNzkyIDI1MS4wMDgtMTM0LjAxNi0xMy44MjQgMjg4LTg4Ljk2LTU3LjcyOC01My40NCA4NC45OTJjLTM2LjY3MiA1My4zNzYtNjMuNTUyIDkyLjgtMTI5LjAyNCAxMTAuNTI4LTExNS4yIDIyLjQtMTg1LjkyLTExMy40NzItMTg1LjIxNi0xMTIuNTc2LTExLjUyLTIwLjQ4IDE1LjE2OC0zOC41OTIgMzEuNzQ0LTE1LjA0YTIyMS4xODQgMjIxLjE4NCAwIDAgMCA2NS45MiA1NnogbTQ2My43NDQtNDQyLjQ5NmMtNi4xNDQgMTMuNTY4LTM4LjU5MiAxMC4xMTItMjkuNDQtMTkuMTM2IDkuMjE2LTI3Ljg0IDEyLjkyOC01Ny4yMTYgMTEuMDA4LTg2LjUyOC02LjUyOC05My44MjQtOTQuNzg0LTkzLjEyLTE0Mi45MTItOTMuMTJINjYwLjQ4djEwNy4yNjRsLTI0Ni4yMDgtMTQzLjA0TDY1OS41ODQtNjRsMC4zODQgMTA5LjA1NmgxMDUuOTg0YzYyLjY1Ni0xLjA4OCAxMTIuNTEyIDEyLjYwOCAxNTQuNzUyIDUxLjAwOCA4NC40MTYgNzUuOTA0IDYuNTkyIDIxOS4zMjggNi41OTIgMjE5LjMyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS04IiB1bmljb2RlPSImIzU4OTgzOyIgZD0iTTQ5MC4xNzYgNjM0LjI0YzEwLjMwNCAwIDE5LjMyOC0zLjcxMiAyNy4xMzYtMTEuMDA4czExLjU4NC0xNi4zODQgMTEuNTg0LTI3LjA3MmMwLTEwLjY4OC0zLjg0LTE5LjcxMi0xMS41ODQtMjcuMDcycy0xNi44MzItMTAuOTQ0LTI3LjEzNi0xMC45NDRhMzcuODI0IDM3LjgyNCAwIDAgMC0zOC43ODQgMzguMDE2YzAgMTAuNjg4IDMuNzEyIDE5LjcxMiAxMS4yIDI3LjA3MnMxNi42NCAxMC45NDQgMjcuNTIgMTAuOTQ0ek0xOTIgMzg0YzAgMjkuMzEyIDEuOTg0IDU3LjYgNi4wMTYgODQuOTI4IDQuMDMyIDI3LjMyOCAxMC4wNDggNTMuNjk2IDE4LjExMiA3OS4wNGw2NDcuMTA0LTM1My4yOGE0NzguNDY0IDQ3OC40NjQgMCAwIDAtNTQuMjcyLTEwNC44MzIgNDAxLjYgNDAxLjYgMCAwIDAtNzQuMTEyLTgxLjZjLTI3LjUyLTIyLjc4NC01Ny42LTQwLjU3Ni05MC4wNDgtNTMuMjQ4QTI3NS44NCAyNzUuODQgMCAwIDAgNTQzLjU1Mi02NGMtNDguMjU2IDAtOTMuNzYgMTEuNzEyLTEzNi41NzYgMzUuMDcycy04MC4xMjggNTUuMzYtMTEyIDk2LTU2Ljk2IDg4LTc1LjM5MiAxNDIuNEE1NDEuNTA0IDU0MS41MDQgMCAwIDAgMTkyIDM4NHogbTY3Mi45NiAxODMuNDI0YzkuNzkyLTI4LjE2IDE3LjQwOC01Ny42IDIyLjg0OC04OC4zMlM4OTYgNDE2LjY0IDg5NiAzODRjMC01MC42ODgtNi41OTItOTkuNDU2LTE5Ljg0LTE0Ni4yNEw2MDQuOCAzODYuNTZ6TTU2NC4yMjQgNDA4LjUxMkwyMzEuNjggNTkwLjI3MmMxNC40IDM2LjAzMiAzMi40NDggNjguODY0IDU0LjMzNiA5OC40MzJzNDYuMDggNTQuOTc2IDcyLjc2OCA3Ni4wOTYgNTUuNjggMzcuNjMyIDg3LjA0IDQ5LjQ3MkM0NzcuMTIgODI2LjExMiA1MDkuNjk2IDgzMiA1NDMuNTUyIDgzMmMzMi43NjggMCA2NC4wNjQtNS4zNzYgOTMuOTUyLTE2YTMyMi41NiAzMjIuNTYgMCAwIDAgODQuMDMyLTQ1LjMxMmMyNi4xMTItMTkuMzkyIDQ5Ljc5Mi00Mi44MTYgNzEuMDQtNzAuMTQ0IDIxLjI0OC0yNy4zMjggMzkuNjgtNTcuNiA1NS4xNjgtOTAuODhMNTYyLjQ5NiA0MTEuMDcyeiBtLTExLjIgNTcuNDcyTDczNi42NCA1ODYuODhhMjM3LjQ0IDIzNy40NCAwIDAgMS0zOC43ODQgNzEuMDQgMTc3LjQwOCAxNzcuNDA4IDAgMCAxLTI0Ljk2IDI2LjE3NiAxODkuNTY4IDE4OS41NjggMCAwIDEtMzMuMjE2IDIyLjc4NCAxNzkuNTIgMTc5LjUyIDAgMCAxLTQxLjM0NCAxNi4wNjQgMjAwLjgzMiAyMDAuODMyIDAgMCAxLTUwLjM2OCA1Ljk1MmMtMTcuMjggMC0zMy4wODgtMi4xMTItNDcuMzYtNi40YTE5MS4xMDQgMTkxLjEwNCAwIDAgMS03Mi44OTYtMzkuNjggMjk5LjU4NCAyOTkuNTg0IDAgMCAxLTI3LjEzNi0yNi42MjQgMjg3LjQ4OCAyODcuNDg4IDAgMCAxLTQ2LjUyOC03MS44NzJ6IG00NC44IDE2OC4xOTJhMzcuODI0IDM3LjgyNCAwIDAgMCAzOC43ODQtMzguMDE2IDM3LjgyNCAzNy44MjQgMCAwIDAtMzguNzg0LTM4LjAxNiAzNy44MjQgMzcuODI0IDAgMCAwLTM4LjcyIDM4LjAxNmMwIDEwLjY4OCAzLjcxMiAxOS43MTIgMTEuMiAyNy4wNzJzMTYuNjQgMTAuOTQ0IDI3LjUyIDEwLjk0NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS05IiB1bmljb2RlPSImIzU4OTg0OyIgZD0iTTYzMS44MDggNjIzLjYxNmMwLTM1LjUyLTYuMzM2LTY4LjkyOC0xOC45NDQtMTAwLjM1MnMtMjkuNTA0LTU4Ljg4LTUwLjY4OC04Mi40MzItNDUuNTY4LTQyLjE3Ni03My4yMTYtNTUuODA4LTU2LjgzMi0yMC40OC04Ny41NTItMjAuNDhTMzQxLjMxMiAzNzEuMDA4IDMxMy4zNDQgMzg0cy01Mi41NDQgMzEuMjMyLTczLjcyOCA1NC43ODQtMzguMDggNTEuNTItNTAuNjg4IDgzLjk2OC0xOC45NDQgNjguMDk2LTE4Ljk0NCAxMDcuMDA4YzAgMzAuNzIgNi4xNDQgNTkuOTA0IDE4LjQzMiA4Ny41NTJBMjQ1Ljc2IDI0NS43NiAwIDAgMCAzMTAuMjcyIDg0MS4yMTZjMjcuMzI4IDEyLjYwOCA1Ni4zMiAxOC45NDQgODcuMDQgMTguOTQ0czYwLjA5Ni02LjY1NiA4OC4wNjQtMTkuOTY4IDUyLjkyOC0zMC45MTIgNzQuNzUyLTUyLjczNiAzOS4yMzItNDYuOTEyIDUyLjIyNC03NS4yNjQgMTkuNDU2LTU3Ljg1NiAxOS40NTYtODguNTc2eiBtLTI3MS4zNi0zMzAuNzUybC0xLjAyNC0zNjMuNTIgMzYuODY0IDQ4LjEyOCAzOC45MTItNDguMTI4djM2My41MnpNNjA0LjE2IDgxMS4wMDhjMTQuMzM2LTE3LjA4OCAyNy4zMjgtMzUuNTIgMzguOTEyLTU1LjI5NiA5LjYtMTcuMDg4IDE4LjQzMi0zNi40OCAyNi42MjQtNTguMzY4czEyLjI4OC00NC43MzYgMTIuMjg4LTY4LjYwOGMtMS4zNDQtNDEuNi01Ljk1Mi03Ni40OC0xMy44MjQtMTA0LjQ0OHMtMTYuNTc2LTUwLjU2LTI2LjExMi02Ny41ODRjLTExLjU4NC0xOS44NC0yNC4yNTYtMzUuNTItMzcuODg4LTQ3LjEwNCAxOS44NCAyLjA0OCAzOS42MTYgNS4xMiA1OS4zOTIgOS4yMTYgMTcuMDg4IDMuMzkyIDM1LjUyIDcuODcyIDU1LjI5NiAxMy4zMTJzMzguNTkyIDEyLjk5MiA1Ni4zMiAyMi41MjhjMTUuNjggOC4xOTIgMzAuNTI4IDE4Ljk0NCA0NC41NDQgMzIuMjU2czI1LjkyIDI5LjE4NCAzNS44NCA0Ny42MTYgMTYuODk2IDM5LjA0IDIwLjk5MiA2MS45NTIgNC4wOTYgNDguMzIgMCA3Ni4yODhjLTQuMDk2IDI4LjY3Mi0xNiA1NC4yNzItMzUuODQgNzYuOHMtNDMuMzI4IDQwLjQ0OC03MC42NTYgNTMuNzYtNTUuODA4IDIxLjEyLTg1LjUwNCAyMy41NTItNTYuNTEyLTIuODgtODAuMzg0LTE1Ljg3MnogbTEuMDI0LTQ1OC43NTJMNjA0LjE2IDUuMTJsMzUuODQgNDcuMTA0IDM4LjkxMi00Ny4xMDRWMzUyLjI1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xMCIgdW5pY29kZT0iJiM1ODk4NTsiIGQ9Ik0yNTYuNTEyIDgzMmwtNjQtMzUyYy05LjM0NC01MS41MiAxMTMuOTg0LTc1LjU4NCAxMTItMTI4bC0xNi00MTZjLTIuNDMyLTY0IDY0LTY0IDY0LTY0czY2LjQzMiAwIDY0IDY0bC0xNiA0MTZjLTEuOTg0IDUyLjM1MiAxMTAuOTEyIDc1LjUyIDExMiAxMjhsLTY0IDM1MmgtMzJsMTYtMjU2LTQ4LTMyLTE2IDI4OGgtMzJsLTE2LTI4OC00OCAzMiAxNiAyNTZ6IG01NDQgMGMtNDcuMTA0IDAtMTI1LjY5Ni00MS45Mi0xNTcuMTItMTA0Ljc2OC0yNi4yNC00Ny4xMDQtMzQuODgtMTUyLjM4NC0zNC44OC0yMTUuMjMydi0xNjBjMC01Mi4zNTIgNjkuNzYtNjQgOTYtNjRsLTMyLTM1MmMtNS43Ni02My43NDQgNjQtNjQgNjQtNjRzNjQgMCA2NCA2NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xMSIgdW5pY29kZT0iJiM1ODk4NjsiIGQ9Ik01MTMuNjY0IDUyNS4zMTJhMTE3LjEyIDExNy4xMiAwIDAgMCAxMTYuOTI4IDExNi45OTJjNjQuNTEyIDAgMTE2LjkyOC01Mi40OCAxMTYuOTI4LTExNi45OTJTNjk1LjA0IDQwOC4zMiA2MzAuNTkyIDQwOC4zMmExMTcuMTIgMTE3LjEyIDAgMCAwLTExNi45MjggMTE2Ljk5Mm0zNzcuNiAxNzEuNzEyYzAgMzYuOC0yOS44MjQgNjYuNjg4LTY1LjM0NCA2Ni42ODhoLTAuMDY0QzgyNC43MDQgNzYzLjcxMiA3MDkuMjQ4IDc2OCA2MjIuMDggNzY4Yy0xMDAuNDE2IDAtMTA5LjQ0LTQuODY0LTEyMC4zMi0xNS43NDRMMzQ2LjY4OCA1OTYuOTI4IDE0Ny41MiAzOTcuNjk2YTY3LjA3MiA2Ny4wNzIgMCAwIDEgMC4xMjgtOTQuNzJsMjgzLjItMjgzLjMyOGMxMi42NzItMTIuNjcyIDI5LjQ0LTE5LjY0OCA0Ny40MjQtMTkuNjQ4IDE3LjkyIDAgMzQuNjg4IDYuOTEyIDQ3LjE2OCAxOS40NTZsMjIxLjU2OCAyMjEuNjk2IDEzMi44IDEzMi45MjhjMTEuNzEyIDExLjY0OCAyMi43MiAyMi43MiAxMS41MiAzMjIuOTQ0IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTIiIHVuaWNvZGU9IiYjNTg5ODc7IiBkPSJNODM5LjkzNiA1MDYuNjg4YzAgMTc5Ljg0LTE0Ny4wMDggMzI1Ljc2LTMyOC41NzYgMzI1Ljc2LTE4MS40NCAwLTMyOC41MTItMTQ1LjkyLTMyOC41MTItMzI1Ljc2IDAtNTkuNTIgMTYuMjU2LTExNS4wMDggNDQuMjg4LTE2Mi45NDRoLTAuMzg0bDI4NC42MDgtNDA3LjM2IDI4NC42NzIgNDA3LjM2aC0wLjM4NGMyOC4xNiA0OCA0NC4yODggMTAzLjQ4OCA0NC4yODggMTYyLjk0NE01MTEuNDI0IDM0My44MDhhMTYzLjU4NCAxNjMuNTg0IDAgMCAwLTE2NC4yODggMTYyLjg4IDE2My42NDggMTYzLjY0OCAwIDAgMCAxNjQuMjg4IDE2Mi45NDQgMTYzLjU4NCAxNjMuNTg0IDAgMCAwIDE2NC4yODgtMTYyLjk0NEExNjMuNTIgMTYzLjUyIDAgMCAwIDUxMS4zNiAzNDMuODA4IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTMiIHVuaWNvZGU9IiYjNTg5ODg7IiBkPSJNOTQwLjggNDgwVjEyOGE2NCA2NCAwIDAgMC02NC02NGgtNzA0YTY0IDY0IDAgMCAwLTY0IDY0VjQ4MGEzMiAzMiAwIDAgMCAzMiAzMiAzMS4zNiAzMS4zNiAwIDAgMCAxMy40NCAwbDM3MC41Ni0yNTZMODk2IDUxMmEzMS4yMzIgMzEuMjMyIDAgMCAwIDEyLjggMCAzMiAzMiAwIDAgMCAzMi0zMnpNMTI0LjggNjQ1LjEybDUuMTItNS4xMkw1MjQuOCAzODRsMzk2LjE2IDI1NmgzLjg0YTMxLjM2IDMxLjM2IDAgMCAxIDE2IDMyIDMyIDMyIDAgMCAxLTMyIDMyaC03NjhhMzIgMzIgMCAwIDEtMzItMzIgMzEuMzYgMzEuMzYgMCAwIDEgMTYtMjYuODh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTQiIHVuaWNvZGU9IiYjNTg5ODk7IiBkPSJNMTg4LjE2IDQxMi4yMjRjMTAuNjI0IDIuNzUyIDc4LjIwOCAzMiA4OC44OTYgMzQuNzUyLTI4LjQ4IDMxLjY4LTQ5LjYgNzMuMTUyLTc2LjA5NiAxMzMuNzYtMzUuMDcyLTguNzY4LTk1LjkzNi0yNi44OC05NS45MzYtMjYuODhTMTgzLjgwOCA0MjAuNDggMTg4LjE2IDQxMi4xNnogbTM5MS4wNC0xMTMuNTM2bDcyLjQ0OC04MS45MmMxMjQuMTYgNDEuODU2IDI4OS40NzIgMjA3LjM2IDI4OS40NzIgMjA3LjM2TDg1OC4wNDggNTA4LjhTNzc3LjAyNCAzODMuMzYgNTc5LjIgMjk4LjY4OHpNNDI5LjgyNCA0NjAuMjI0bDY3LjAwOC0zNS4yYzYyLjkxMiA2Mi44NDggMTE1LjIgMTYyLjMwNCAxMTUuMiAxNjIuMzA0bC0xMDQuNTEyIDM5LjA0cy00MC45Ni0xMTMuMTUyLTc3LjY5Ni0xNjYuMTQ0eiBtMjMxLjU1Mi0zMC4zMzZjMTA0Ljk2IDUxLjg0IDI0Ni43ODQgMjI4LjczNiAyNDYuNzg0IDIyOC43MzZMODI2LjE3NiA3MzZzLTExOC42NTYtMTc0LjkxMi0yMzEuMTY4LTIzMy42NjR6IG0tNDkuNDA4LTI1Ny40NzJMNDIwLjE2IDI3My42NjRINjA4LjY0djExMS4zNkg0MTEuNjQ4djUxLjM5MkgyODMuMTM2di01MS4zOTJINjkuMTJ2LTExMS4zNkgyMzEuNjhjLTQ4LjMyLTY1LjQwOC03Mi44MzItOTIuOTkyLTE2Mi41Ni0xNDguMzUybDY1LjcyOC05Ny4yOGM4MS4yOCA1OS45NjggMTEyLjgzMiA5Ny41MzYgMTQ4LjIyNCAxNDIuODQ4di0xOTYuOTkyaDEyOC41MTJWMTcwLjg4bDE0MC40OC04Mi4wNDh6IG0yNjUuOTg0IDEyMS41MzZzLTg5LjQ3Mi0xNjAtMzU2LjQxNi0yMzMuMjhsMzkuMDQtODYuNzg0YzI2NS40NzIgNjQuNzY4IDM3Ni4zMiAyMDUuNjMyIDM5OS4xNjggMjI4LjE2eiBtLTU2My4yIDE3MS45NjhzODEuMjgtMC41NzYgOTQuNTI4IDBjLTkuMjggNDkuMzQ0LTExLjQ1NiA3MC45MTItMTguODggMTMyLjQ4bC0xMTMuODU2LTE4LjI0YzE1LjY4LTM3LjgyNCAzMC43Mi02NS45ODQgMzguMjcyLTExNC4yNHogbTI4OC44OTYgMjA4LjEyOGwtMzIuNDQ4IDExMy41MzZzLTc4LjE0NC03MC4yNzItNDg0LjM1Mi03OC4wOGw0LjkyOC05My44MjRjNDgyLjExMi05LjcyOCA1MTEuODcyIDU4LjM2OCA1MTEuODcyIDU4LjM2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xNSIgdW5pY29kZT0iJiM1ODk5MDsiIGQ9Ik04MzUuMiA1NTQuNjg4aC01ODIuNGMtNzAuNzIgMC0xMjQuOC01NS40ODgtMTI0LjgtMTI4di0yNTZoMTY2LjRWMGg0OTkuMnYxNzAuNjg4SDk2MHYyNTZjMCA3Mi41MTItNTQuMTQ0IDEyOC0xMjQuOCAxMjh6IG0tMTI0LjgtNDY5LjM3NkgzNzcuNlYyOTguNjI0aDMzMi44ek04MzUuMiAzODRjLTI0Ljk2IDAtNDEuNiAxNy4wODgtNDEuNiA0Mi42ODhzMTYuNjQgNDIuNjI0IDQxLjYgNDIuNjI0IDQxLjYtMTcuMDI0IDQxLjYtNDIuNjI0LTE2LjY0LTQyLjY4OC00MS42LTQyLjY4OHogbS00MS42IDM4NEgyOTQuNHYtMTcwLjY4OGg0OTkuMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0xNiIgdW5pY29kZT0iJiM1ODk5MTsiIGQ9Ik05MjEuNiA2NTAuNTZsLTI0Ljk2IDIyLjAxNiAyMS4zMTIgMjQuNDQ4YTM1LjU4NCAzNS41ODQgMCAwIDEgMy41ODQgNTAuMzY4bC0zNy43NiA0Mi44OGEzNi4wOTYgMzYuMDk2IDAgMCAxLTUwLjY4OCAzLjJsLTMwMS40NC0yMzMuNkEzMDMuMjMyIDMwMy4yMzIgMCAwIDEgMjAzLjI2NCA1MTJjLTEyNi41OTItMTExLjIzMi0xNDAuMTYtMzAzLjc0NC0zMC4zMzYtNDMwLjA4IDEwOS43Ni0xMjYuMjA4IDMwMS40NC0xMzguNDMyIDQyNy45NjgtMjcuMmEzMDYuODE2IDMwNi44MTYgMCAwIDEgNzQuMTEyIDM2My43NzZsNDguODk2IDU2IDMwLjIwOC0yNi44OGMxMC44MTYtOS42IDI3Ljg0LTcuNjggMzguMDE2IDQuMjI0bDI5LjYzMiAzNC43NTJjMTAuMjQgMTEuOTY4IDkuNzI4IDI5LjUwNC0xLjA4OCAzOS4xNjhsLTI5LjMxMiAyNi4xMTIgMzcuNjMyIDQzLjIgMjcuMDA4LTIzLjY4YzEwLjg4LTkuNiAyNy44NC03LjU1MiAzNy45NTIgNC42MDhsMjkuMTIgMzUuMmMxMC4xMTIgMTIuMTYgOS40MDggMjkuNzYtMS40NzIgMzkuMzZ6IG0tNTExLjQ4OC01MDkuNjk2YTEwNi4xNzYgMTA2LjE3NiAwIDAgMC0xNTAuNTI4IDkuNiAxMDcuNzc2IDEwNy43NzYgMCAwIDAgMTAuNzUyIDE1MS4zNiAxMDYuMTc2IDEwNi4xNzYgMCAwIDAgMTUwLjUyOC05LjYgMTA3Ljc3NiAxMDcuNzc2IDAgMCAwLTEwLjc1Mi0xNTEuMzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTciIHVuaWNvZGU9IiYjNTg5OTI7IiBkPSJNOTYwIDU3NmgtMjU2di0yMjRhMTI4IDEyOCAwIDAgMSA5Ni0xMjMuNTJWMEg3NjhhMzIgMzIgMCAwIDEgMC02NGgxMjhhMzIgMzIgMCAwIDEgMCA2NGgtMzJ2MjI4LjQ4QTEyOCAxMjggMCAwIDEgOTYwIDM1MnYzLjg0eiBtLTY0LTIyNGE2NCA2NCAwIDEgMC0xMjggMFY1MTJoMTI4eiBtLTQ4MCAzMjBWNzA0YTMyIDMyIDAgMCAxIDAgNjR2MzJBMzIgMzIgMCAwIDEgMzg0IDgzMkgzMjBhMzIgMzIgMCAwIDEtMzItMzJWNzY4YTMyIDMyIDAgMCAxIDAtNjR2LTMyQzI4OCA1ODAuNDggMTI4IDQ3NS41MiAxMjggMzg0di0zODRhNjQgNjQgMCAwIDEgNjQtNjRoMzIwYTcwLjQgNzAuNCAwIDAgMSA2NCA2NFYzODRjMCA4Ni40LTE2MCAyMDEuNi0xNjAgMjg4eiBtLTY0LTYwOGExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAwIDAgMC0zMjB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTgiIHVuaWNvZGU9IiYjNTg5OTM7IiBkPSJNODMyIDQyMS42MzJjMzcuNjMyIDEyLjggNjQgNDguNzY4IDY0IDkwLjM2OCAwIDUuNTY4LTMwLjQgMjQxLjYtMzAuNCAyNDEuNmExNi4zODQgMTYuMzg0IDAgMCAxLTE2IDE0LjRIMTc0LjRjLTggMC0xNS4yMzItNi40LTE2LTE0LjQgMCAwLTMwLjQtMjM2LjgtMzAuNC0yNDEuNiAwLTQxLjYgMjYuMzY4LTc3LjU2OCA2NC05MC40MzJ2LTQwNS41NjhjMC04LjgzMiA3LjE2OC0xNiAxNi0xNmg2MDhhMTYgMTYgMCAwIDEgMTYgMTZ6TTcyMC43NjggNzA0bDIxLjYzMi0xOTJoLTMybC0yMS42MzIgMTkyek01OTIgNzA0bDcuMjMyLTE5MmgtMzJMNTYwIDcwNHogbS0xNjAgMGgzMmwtNy4yMzItMTkyaC0zMnpNMzAzLjE2OCA3MDRoMzJMMzEzLjYgNTEyaC0zMnpNNjA4IDY0aC0xOTJ2MTYwaDE5MnpNNzY4IDM1MkgyNTZWNDIxLjU2OGMxNS4xNjggNS42MzIgMjkuNjMyIDE1LjIzMiA0MCAyNy4yNjRhOTUuNjE2IDk1LjYxNiAwIDAgMSAxNDQgMCA5NS42MTYgOTUuNjE2IDAgMCAxIDE0NCAwIDk1LjYxNiA5NS42MTYgMCAwIDEgMTQ0IDBjMTAuNDMyLTEyLjAzMiAyNC44MzItMjEuNjMyIDQwLTI3LjJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTkiIHVuaWNvZGU9IiYjNTg5OTQ7IiBkPSJNOTA4LjggODAwcy04OS4wMjQgMi42MjQtMTI0LjU0NC0zMmMtMzQuMTc2LTMzLjI4LTQ4LjI1Ni01OC43NTItNDguMjU2LTEyOEgxNDAuOGw4OS4yMTYtMzA4LjA5NmMwLjE5Mi0wLjUxMiAwLjY0LTAuOTYgMC44MzItMS40MDggMTUuMDQtNDIuMDQ4IDU0LjI3Mi03Mi4zMiAxMDEuMDU2LTc0LjExMmwwLjgzMi0wLjM4NGg0MTZ2LTEyLjhzMC4wNjQtMTkuMi0xMi43MzYtNDQuOC0xOS4yLTM4LjQtNzAuNC0zOC40SDI0OS42Yy02NCAwLTY0LTk2IDAtOTZINjU5LjJjNzYuOCAwIDEzNC40IDQ0LjggMTUzLjYgODkuNnMxOS4yIDgzLjIgMTkuMiA4My4yVjY0MGMwIDMzLjUzNiAxNC42NTYgNjQgNDQuOCA2NGgzNS4yYTQ4IDQ4IDAgMCAxIDAgOTZ6IG0tMjU2LTczNmMtMzguNCAwLTY0LTI1LjYtNjQtNjRzMjUuNi02NCA2NC02NCA2NCAyNS42IDY0IDY0LTI1LjYgNjQtNjQgNjR6IG0tMzIwIDBjLTM4LjQgMC02NC0yNS42LTY0LTY0czI1LjYtNjQgNjQtNjQgNjQgMjUuNiA2NCA2NC0yNS42IDY0LTY0IDY0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIwIiB1bmljb2RlPSImIzU4OTk1OyIgZD0iTTk1MS41NjYwOCAwLjM4NGwtOTAxLjc2IDAuNDQ4cy05Ny4wODgtNC40OC0yMC4xNiA3MC43ODRhNDczLjc5MiA0NzMuNzkyIDAgMCAwIDcwLjQ2NCAzMS43NDQgMTI3Ljg3MiAxMjcuODcyIDAgMCAwLTEwLjQzMiA1MC42ODhjMCA2NC44OTYgNDcuMjMyIDExNy41MDQgMTA1LjUzNiAxMTcuNTA0czEwNS41MzYtNTIuNjA4IDEwNS41MzYtMTE3LjUwNGMwLTEuNDA4LTAuMTI4LTIuNzUyLTAuMTkyLTQuMDk2IDYuNzg0IDAuODk2IDEzLjY5NiAxLjc5MiAyMC42MDggMi41NlY3NjAuNDQ4QzMyMS4xNjYwOCA4MDAuMzg0IDM0OS44MzgwOCA4MzIgMzg4LjY4NjA4IDgzMmg0MDQuNTQ0YzM4Ljg0OCAwIDY1LjkyLTMxLjYxNiA2NS45Mi03MS42MTZ2LTY0MS45MmM0Ny4yOTYtMTMuNjMyIDg3Ljg3Mi0yOS44ODggMTE5LjY4LTQ4LjE5MiAxMTUuNzEyLTc5LjYxNi0yNy4zMjgtNjkuODg4LTI3LjMyOC02OS44ODh6TTU0Ni43NjYwOCA2NzAuOTEyYTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4IDM1Ljg0SDQ0Mi42MzgwOGEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OC0zNS44NHYtOTguNDMyYzAtMTkuOTY4IDIzLjkzNi0zNS44NCA0My4zOTItMzUuODRoNjAuOGEzNC45NDQgMzQuOTQ0IDAgMCAxIDM0LjYyNCAzNS44NFY2NzAuOTEyeiBtMC0yNTkuNTJhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODggMzUuODRINDQyLjYzODA4YTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4LTM1Ljg0VjMxMi45NmMwLTE5LjkwNCAyMy45MzYtMzUuNzc2IDQzLjM5Mi0zNS43NzZoNjAuOGEzNC45NDQgMzQuOTQ0IDAgMCAxIDM0LjYyNCAzNS44NFY0MTEuMzI4eiBtMjI1LjY2NCAyNTkuNTJhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODggMzUuODRoLTY5LjQ0YTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNzUyLTM1Ljg0di05OC40MzJjMC0xOS45NjggMjQtMzUuODQgNDMuMzkyLTM1Ljg0aDYwLjhhMzUuMDA4IDM1LjAwOCAwIDAgMSAzNC42ODggMzUuODR6IG0wLTI1OS41MmEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OCAzNS44NGgtNjkuNDRhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC43NTItMzUuODRWMzEyLjk2YzAtMTkuOTA0IDI0LTM1Ljc3NiA0My4zOTItMzUuNzc2aDYwLjhhMzUuMDA4IDM1LjAwOCAwIDAgMSAzNC42ODggMzUuODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjEiIHVuaWNvZGU9IiYjNTg5OTY7IiBkPSJNNTEyIDc2OGMtMjAuNjcyIDAtMjcuNTItMTMuOTUyLTQxLjM0NC0yNy45MDRMNzAuOTEyIDc2LjhDNjQgNjkuNzYgNjQgNTUuODcyIDY0IDQ4Ljg5NmMwLTM0Ljk0NCAyNy41Mi00OC44OTYgNDguMjU2LTQ4Ljg5Nmg3OTkuNDg4YzI3LjUyIDAgNDguMjU2IDEzLjk1MiA0OC4yNTYgNDguODk2IDAgMTMuOTUyIDAgMTMuOTUyLTYuOTEyIDI3LjkwNEw1NjAuMjU2IDc0MC4wOTZDNTQ2LjQzMiA3NTQuMDQ4IDUzMi43MzYgNzY4IDUxMiA3Njh6IG0wLTEwNC43MDRsMjI3LjQ1Ni0zODRoLTU1LjE2OEw1ODAuOTI4IDM4NCA1MTIgMjc5LjI5NiA0NDMuMDcyIDM4NCAzMzkuNzEyIDI3OS4yOTZoLTYyLjA4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIyIiB1bmljb2RlPSImIzU4OTk3OyIgZD0iTTg0OCA0MzguODQ4TDc5MiAzODRsNTEuNjQ4LTM1My45ODRhMjYuNDk2IDI2LjQ5NiAwIDAgMC0yNi41Ni0zMC4wMTZoLTY0YTI2Ljg4IDI2Ljg4IDAgMCAwLTI0IDE0LjUyOGwtNDEuMzQ0IDgwLjc2OGE5NC41MjggOTQuNTI4IDAgMCAxLTE4LjExMiAyNC41MTJsLTM4LjIwOCAzNy4zNzZhMjIuMTQ0IDIyLjE0NCAwIDAgMS0xNS40ODggNi4yNzJoLTE0OS4xMmEyMi4xNDQgMjIuMTQ0IDAgMCAxLTE1LjQ4OC02LjI3MmwtMzguMjcyLTM3LjM3NmMtNy4yOTYtNy4xNjgtMTMuNDQtMTUuNDI0LTE4LjA0OC0yNC41MTJsLTQxLjM0NC04MC43NjhhMjYuODggMjYuODggMCAwIDAtMjQtMTQuNTI4aC01Mi40OGEyNi4zMDQgMjYuMzA0IDAgMCAwLTI0LjE5MiAzNy41NjhsMjQuOTYgNTEuMzkyYzYuNTkyIDEzLjYzMiAxMC4wNDggMjguNjA4IDEwLjA0OCA0My43NzZWMzg0bDE2OCAxMDkuNjk2LTI0IDIzLjU1Mi0zMi0yMy41NTItMzMuNiAzMi45Ni0xMzQuNC04Ny44MDhMMjg4IDM4NHMtMjIuMTQ0IDE5Ljk2OC01NiA1NC44NDhjMC4xOTIgNDUuNDQtNzUuNDU2IDkwLjI0LTEwMi41MjggMTA0LjgzMmE0MS4yMTYgNDEuMjE2IDAgMCAxLTE5LjUyIDQuODY0aC0yNEEyMS43NiAyMS43NiAwIDAgMCA2NCA1NzAuMTEydjE5LjQ1NmMwIDguNDQ4IDUuMDU2IDE2LjEyOCAxMi45MjggMTkuNTg0bDE5MC43ODQgODQuNTQ0TDMwNC4xMjggNzY4bDQ2LjIwOC02NS40NzJjOS4yMTYtMTMuMDU2IDE1LjkzNi0yNy43MTIgMTkuNjQ4LTQzLjJsMTguODE2LTc3LjgyNEw1NjggNzY4bDU2LTU0Ljg0OC0xOTItMTk1LjkwNCA2Ni41Ni02NS4yMTZhNDYuNDY0IDQ2LjQ2NCAwIDAgMSAzMi41MTItMTMuMTg0aDEzNi4wNjRhNDYuNzIgNDYuNzIgMCAwIDEgMjMuODcyIDYuNTkybDI0Ni41MjggMTQ3LjAwOGExNS40ODggMTUuNDg4IDAgMCAwIDIyLjQ2NC0xMy42MzJ2LTYuNTI4YTU2LjY0IDU2LjY0IDAgMCAwLTE3LjA4OC00MC40NDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjMiIHVuaWNvZGU9IiYjNTg5OTg7IiBkPSJNNjkwLjI0IDc2OGMtNy42OCAwLTI5LjY5Ni0xMC4yNC0yOS42OTYtMTAuMjRMNDMzLjcyOCA2NDAuNTEyYy0zMC4yMDgtMTIuMjg4LTQyLjE3Ni02MS41NjgtMjQtODYuMjA4bDY2LjMwNC05OC4zMDQtMjcxLjEwNC0xNDEuNjk2IDEzNi4zODQtMTA0LjcwNCAxNzAuODggMTA0LjcwNCAxNzAuNjI0LTEwNC43MDQgNjguNDE2IDY5Ljk1Mi0yMDQuOCAyNzkuMjk2TDcyMC45NiA2NjUuNmMzNi4wMzIgMTguNTYgMzAuMjcyIDQ5LjIxNiAzMC4yNzIgNjcuNzc2LTAuMzIgMTQuNjU2LTI0LjY0IDM0LjYyNC02MC45OTIgMzQuNjI0eiBtMTQ2LjE3Ni0yMDkuNDcyYy02Ni4wNDggMC0xMTkuNjE2LTU0LjY1Ni0xMTkuNjE2LTEyMi4xNzYgMC02Ny41MiA1My41NjgtMTIyLjMwNCAxMTkuNjE2LTEyMi4zMDRzMTE5LjQyNCA1NC43ODQgMTE5LjQyNCAxMjIuMzA0YzAgNjcuNTItNTMuNDQgMTIyLjI0LTExOS40MjQgMTIyLjI0ek0xNzAuNjg4IDIwOS40NzJMMCAxMDQuNzA0VjBsMTcwLjY4OCAxMDQuNzA0TDM0MS4zMTIgMGwxNzAuODggMTA0LjcwNEw2ODIuNzUyIDBsMTM2LjM4NCAxMDQuNzA0TDEwMjQgMHYxMDQuNzA0bC0yMDQuOCAxMDQuNzY4LTEzNi4zODQtMTA0Ljc2OC0xNzAuNjg4IDEwNC43NjgtMTcwLjgxNi0xMDQuNzY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI0IiB1bmljb2RlPSImIzU4OTk5OyIgZD0iTTcyOC4zMiA2NjguMzUyYTIyMS4yNDggMjIxLjI0OCAwIDAgMS03NC4xMTIgMTEuMzkyIDI3MiAyNzIgMCAwIDEtNjIuNDY0LTguMzJjLTYuMDE2LTEuNjY0LTEyLjE2LTMuMDcyLTE3LjkyLTQuOTI4IDQuMTYgMi4zNjggOC4zODQgNC4yODggMTIuNjA4IDYuMDE2IDMwLjU5MiAxMi45OTIgNjMuMjMyIDE0LjcyIDg4LjMyIDEyLjE2LTI3LjkwNCAxOC44OC03OC4yNzIgMTkuNzc2LTExMC45NzYtMC44OTZsLTAuMTkyIDAuNDQ4YzcuMzYgNC40OCAxNS4yMzIgOC44OTYgMjMuNTUyIDEyLjk5MiAzNi45OTIgMTguMTc2IDgxLjQ3MiAyNi45NDQgMTEyLjM4NCAxNC41OTJhMTI4LjM4NCAxMjguMzg0IDAgMCAxLTQ1Ljk1MiAyMi41OTJjMzMuNiA2LjU5MiA2OC4yMjQgMS45MiA5Ny4xNTItNi4wMTYtMTUuMjk2IDE1LjQyNC0zOC41OTIgMjMuNTUyLTYzLjM2IDI1LjZhMTc0LjA4IDE3NC4wOCAwIDAgMCAxMDAuMDMyLTQuOTI4IDE1NC4yNCAxNTQuMjQgMCAwIDEtNTEuNTIgMzUuOTY4YzQxLjkyIDEuMDI0IDg0LjYwOC0xNS4zNiAxMTYuMjg4LTM1Ljk2OGExOTQuNTYgMTk0LjU2IDAgMCAxLTU5LjY0OCA1MS45NjhjNDcuMjMyLTAuNjQgOTkuNDU2LTIwLjg2NCAxMzAuNTYtNTAuMzY4LTQwLjgzMiA2My44NzItMTEyLjI1NiA4OS41MzYtMTg4LjczNiA3Ni45MjgtNzUuMjY0LTExLjY0OC0xNTcuNDQtNjQuNTc2LTE5OC4xNDQtMTQ0LjU3Ni0xLjUzNi0yLjk0NC0zLjItNi4yNzItNC42NzItOS42YTI3OS45MzYgMjc5LjkzNiAwIDAgMS0zMC43ODQgMzcuNTY4Yy02MC45OTIgNjIuOTc2LTEyNy42OCA3OC41OTItMTc0LjI3MiA2MC41NDQtMzguNC0xMy42OTYtNjguNTQ0LTYxLjUwNC02MC4wOTYtMTE3LjYzMi0yLjg4IDI5Ljc2IDE1LjI5NiA2My4zNiAzNS44NCA3Ny4yNDgtOC44MzItMTcuNTM2LTE0LjMzNi0zOS42OC0xNi40NDgtNTcuMzQ0IDguNzY4IDI1LjI4IDI2LjExMiA1MC4zNjggNDcuNjggNjIuMjA4LTkuMDg4LTEzLjQ0LTE2LjEyOC0zMC4xNDQtMTkuODQtNDQuNTQ0YTgyLjU2IDgyLjU2IDAgMCAwIDUzLjYzMiAzMi44MzIgNzUuNzc2IDc1Ljc3NiAwIDAgMS0zMS4zNi00MC41NzZjMTQuNDY0IDE0LjcyIDM0LjI0IDI4LjggNTcuMDg4IDMzLjkyYTExNi41NDQgMTE2LjU0NCAwIDAgMS0yNC41MTItMzUuMTM2YzE3LjAyNCAyMC40OCA0OS42NjQgMjYuNTYgODMuMDcyIDIyLjQgOC4wNjQtMC45NiAxNi4wNjQtMi4zMDQgMjMuOTM2LTQuMTZ2LTAuNjRjLTI5LjEyIDcuMDQtNjAuOTI4LTUuODI0LTc4LjQ2NC0yNi43NTItMTAzLjQ4OC0zLjY0OC0yMDQuOTI4LTQ3LjE2OC0yNDEuNi0xNDguNzM2IDI0LjE5MiAzNC41NiA2NS45MiA2Ny41MiAxMDUuNzkyIDg2LjAxNmEyMjYuMzY4IDIyNi4zNjggMCAwIDEtMzQuODE2LTY2Ljg4YzIyLjg0OCAyOC45OTIgNTQuMjA4IDU4LjY4OCA4OC43MDQgNzYuMjI0YTE2OS45MiAxNjkuOTIgMCAwIDEtMjguOC01Mi4yODggMjIzLjM2IDIyMy4zNiAwIDAgMCA3OC43MiA0OC42NCAyNjAuNDggMjYwLjQ4IDAgMCAxLTI5LjI0OC0yNC44OTZjLTQ5Ljg1Ni01MC4yNC04Ny44MDgtMTE5LjE2OC0xMDMuNDI0LTIxNC4wOCAyMy4zNiA1NC4yMDggNTYuNTc2IDExMS4yOTYgODYuOTEyIDE0OS45NTItNi45NzYtMjkuNDQtMTAuMTEyLTYyLjUyOC05LjYtODcuODcyIDEzLjQ0IDQyLjI0IDMwLjA4IDg3LjY4IDUyLjczNiAxMjAuNTEyYTI0NS4xMiAyNDUuMTIgMCAwIDEtNS41NjgtNjUuMjE2IDI1NC4wOCAyNTQuMDggMCAwIDAgNDcuMzYgODMuMTM2Yy05LjA4OC0yMC42NzItMTUuMjMyLTQzLjg0LTEzLjI0OC02NS40NzJhNDA4Ljk2IDQwOC45NiAwIDAgMCAyNS41MzYgNjAuMjg4di0wLjEyOGwtMC42NC0xLjY2NCAwLjk2IDAuNzA0YTQzLjY0OCA0My42NDggMCAwIDEgNy42OC0xMy44MjRjMC00LjU0NCAwLTguNzY4IDAuMTkyLTEyLjkyOCAwLjcwNCAzLjMyOCAxLjUzNiA2LjY1NiAyLjQ5NiA5Ljk4NCA2LjY1Ni02Ljc4NCAxNS4zNi0xMS41MiAyNS4xNTItMTMuMDU2LTQ5LjAyNC0xMDguNjA4LTg3LjM2LTIzOC4wOC04OS4yOC0zNjMuMi0xMjEuNDA4LTE4LjQzMi0yMDYuNDY0LTk2LjA2NC0yMDYuNDY0LTEyMS45ODQgMC0yNC45NiAxMDAuNDgtNjEuMjQ4IDI1Ny45Mi02MS4yNDggMTU3LjU2OCAwIDI1OC4wNDggMzYuMjI0IDI1OC4wNDggNjEuMjQ4IDAgMjguOTI4LTEwNi40MzIgMTIyLjU2LTI1MC44OCAxMjUuNzYgMy4wNzIgOTIuNjA4IDI4LjI4OCAyMDAuMzg0IDcwLjIwOCAzMDMuMDRBNDUuMjQ4IDQ1LjI0OCAwIDAgMSA1NTguMDggNTI1LjQ0YzAgMS43MjgtMC4xMjggMy41ODQtMC4zMiA1LjU2OGE0NS4yNDggNDUuMjQ4IDAgMCAxIDYyLjk3NiA0MS40NzJjMCAyLjM2OC0wLjMyIDQuODY0LTAuNTc2IDcuNDI0IDcuMDQtMTUuMDQgMTAuOTQ0LTMwLjQgMTIuNjA4LTQzLjcxMiAxMC4yNCAyNy4wMDggMC41MTIgNjkuNzYtMjYuMDQ4IDkyLjE2YTIwLjA5NiAyMC4wOTYgMCAwIDEgMS40NzItMC43MDRjNS41MDQtNC43MzYgMTAuNjg4LTkuOTg0IDE1Ljg3Mi0xNS40ODggMjQuNzY4LTI2Ljg4IDQwLjcwNC02My4xMDQgMzYuMDMyLTkxLjI2NGExMDguOCAxMDguOCAwIDAgMSAxMC4yNCA0My4wMDhjMTIuMTYtMjcuMiAxNC40LTU3LjE1MiAxMi4xNi04Mi44OCAxMC43NTIgMTUuMzYgMTMuNjk2IDM2LjQ4IDEwLjc1MiA1Ny43OTIgMTMuMzEyLTI2LjgxNiAxNy40NzItNTguMTc2IDExLjk2OC04NS4xMiA5LjkyIDEyLjM1MiAxOS4wMDggMzAuMjcyIDIzLjA0IDQ5LjE1MiA3LjY4LTM1Ljg0LTAuNzY4LTc0LjYyNC0xNi0xMDIuNTI4IDE0LjI3MiAxMy4wNTYgMjkuODg4IDMzLjYgMzcuODI0IDU2LjEyOCA2LjA4LTQwLjUxMi04LTg4LjA2NC0zNS43MTItMTA5LjMxMiA1Ny45MiAyOS4xMiA3My43OTIgOTkuMDA4IDQ5LjkyIDE2My4wMDgtOS40MDggMjYuMzA0LTI1LjUzNiA1Mi40OC00Ni43MiA3NS4xMzZhMTM2LjMyIDEzNi4zMiAwIDAgMS04LjI1NiAyOC41NDRjMjYuNTYtMjMuNzQ0IDQzLjg0LTU0LjcyIDU0LjQtODMuOTY4IDMuODQgMjIuMDgtMy4zMjggNDYuNDY0LTE3LjIxNiA2OC4xNiAyOC4wMzItMjIuNDY0IDQ3LjYxNi01NC43MiA1Ni4zODQtODYuNCAzLjk2OCAxOC40MzIgNC4yODggNDIuMjQtMC41MTIgNjQuODk2IDI1Ljk4NC0zNS4wNzIgMzcuMzc2LTgwLjI1NiAzOS42OC0xMTkuNTUyIDYuNzIgMjIuMDggMTEuMDA4IDUzLjE4NCA3LjU1MiA4MS4xNTJhMjUxLjUyIDI1MS41MiAwIDAgMCA0MS4wODgtMTQwLjYwOGMyMi4xNDQgNzUuMiAzLjAwOCAxNDguNDgtNTMuNTA0IDIwNS4yNDhhMjYyLjI3MiAyNjIuMjcyIDAgMCAxLTEwOC44IDY1LjY2NHogbS0yMjQuNjQtNS4xMmE0MTQuOTc2IDQxNC45NzYgMCAwIDEtOTEuMiAxMC4zNjggMTE1Ljk2OCAxMTUuOTY4IDAgMCAwIDEwMS4xMi0xMi41NDRsLTkuOTIgMi4yNHogbTEwOS41NjgtMTYuMzJhNTIuMTYgNTIuMTYgMCAwIDEtNS41MDQgMi44MTZsMC4xMjggMC43MDQgMTMuMTItNi40Yy0yLjU2IDEuMDI0LTUuMTIgMS45Mi03Ljc0NCAyLjg4eiBtNjkuMTItNTgwLjkyOGMxLjI4LTMuMzkyIDEuOTItNi41OTIgMS45Mi05LjQwOCAwLTQwLjMyLTEyMC43NjgtNzIuOTYtMjY5LjY5Ni03Mi45Ni0xNDguOTkyIDAtMjY5LjY5NiAzMi42NC0yNjkuNjk2IDcyLjk2IDAgMi44MTYgMC42NCA2LjAxNiAxLjg1NiA5LjQwOC0yOS4xMi0xMi43MzYtNDUuODI0LTI3Ljg0LTQ1LjgyNC00NC4wOTYgMC00Ni41OTIgMTQwLjQxNi04NC42MDggMzEzLjYtODQuNjA4IDE3My4yNDggMCAzMTMuNzI4IDM4LjAxNiAzMTMuNzI4IDg0LjYwOCAwIDE2LjI1Ni0xNi44MzIgMzEuMzYtNDUuOTUyIDQ0LjA5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yNSIgdW5pY29kZT0iJiM1OTAwMDsiIGQ9Ik02NCAzODguMjg4YzAgNTMuMDU2IDE5LjU4NCAxMDAuNDggNTguODE2IDE0Mi40IDguMzg0IDguMzIgMTYuNzY4IDE5LjUyIDIyLjQgMjcuOTA0IDUzLjE4NCA2Ny4wMDggMTE0Ljc1MiAxMjUuNjMyIDE3OS4yIDE4MS40NCAxOS41ODQgMTYuNzY4IDM2LjM1MiAzMy41MzYgNTYgNDcuNDg4IDI3Ljk2OCAyMi4zMzYgNjEuNTY4IDM2LjI4OCAxMDAuOCA0MS44NTYgNjcuMiA4LjM4NCAxMjUuOTUyLTExLjEzNiAxNzYuMzg0LTU4LjYyNCAxOS41ODQtMTYuNzY4IDM5LjIzMi0zMy40NzIgNjEuNjMyLTUwLjI0IDY0LjM4NC01NS44NzIgMTIzLjItMTE0LjQ5NiAxNzMuNTY4LTE4MS41MDQgOC4zODQtMTEuMTM2IDE5LjU4NC0yMi4zMzYgMjguMDMyLTM2LjI4OCAzMC43Mi00NC42NzIgNDEuOTg0LTk3LjY2NCAzMy42LTE1MC43Mi01LjYzMi00NC42NzItMjUuMjE2LTgwLjk2LTU2LTExNC40OTZsLTUwLjQzMi01OC42MjRjLTM2LjQxNi00MS44NTYtNzIuNzY4LTgwLjk2LTExNC44MTYtMTE3LjI0OC0yMi40LTE5LjUyLTQ0LjgtMzYuMjg4LTY3LjItNTUuODA4LTEzLjk1Mi0xMS4yLTI1LjE1Mi0yMi40LTM5LjE2OC0zMC43MmEyMTQuNTkyIDIxNC41OTIgMCAwIDAtMTUzLjk4NC0zMy41MzZjLTQ0LjggNS41NjgtODEuMjggMjUuMTUyLTExNC44MTYgNTUuODcyLTguMzg0IDguMzItMTYuODMyIDEzLjk1Mi0yOC4wMzIgMjIuMzM2YTExMzkuNTIgMTEzOS41MiAwIDAgMC0xNTYuOCAxNTAuNzJjLTE2Ljc2OCAyMi40LTM2LjM1MiA0MS45Mi01My4xODQgNjQuMjU2LTIuODE2IDguMzItMTQuMDE2IDIyLjMzNi0yMi40IDM2LjI4OEM3NS4yIDMwNC41MTIgNjQgMzQzLjYxNiA2NCAzODguMjg4eiBtMzcyLjQxNi04MC45NnYtMTc1Ljg3MmMwLTE5LjU4NCAxMS4yLTMwLjcyIDMwLjc4NC0zMC43Mmg4OS42YTIxLjQ0IDIxLjQ0IDAgMCAxIDE0LjAxNiA1LjU2OCA1Ni43MDQgNTYuNzA0IDAgMCAxIDE2Ljc2OCA0MS44NTZ2MTUzLjZjMCA1LjU2OCAwIDUuNTY4IDUuNjMyIDUuNTY4aDE3Ni4zODRjMTQuMDE2IDAgMjUuMjE2IDExLjEzNiAyNy45NjggMjUuMDg4djkyLjE2YzAgNS41NjgtMi43NTIgMTEuMTM2LTUuNTY4IDE2Ljc2OC01LjYzMiA4LjMyLTE2LjgzMiAxMS4xMzYtMjguMDMyIDExLjEzNkg1ODcuNTg0VjYyOC4zNTJjMCAyMi40LTExLjIgMzMuNTM2LTMzLjYgMzMuNTM2SDQ3MC4wMTZjLTUuNjMyIDAtMTEuMiAwLTE2LjgzMi0yLjgxNmEzMC43MiAzMC43MiAwIDAgMS0xNi43NjgtMjcuOTA0di0xNzUuODcySDI1OS45NjhjLTE5LjU4NCAwLTMwLjcyLTExLjItMzAuNzItMzAuNzJ2LTg2LjUyOGMwLTguMzg0IDIuNzUyLTE0LjAxNiA1LjU2OC0xOS41ODQgNS41NjgtOC4zMiAxNi43NjgtMTEuMTM2IDI3Ljk2OC0xMS4xMzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjYiIHVuaWNvZGU9IiYjNTkwMDE7IiBkPSJNMzI1LjMxMjM1IDQ1Mi45MjY5MTFjLTEwMy4wMzk4MDcgMC0xODYuNjIzNjUgODIuNjIzODQ1LTE4Ni42MjM2NSAxODQuNjM5NjU0Vjc4NS4yMTQyODhhMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDAgMzcuMzExOTMgMzYuOTI3OTNoMzcuMzExOTNhMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDEgMzcuMzc1OTMgMzYuOTI3OTMxQTM3LjExOTkzIDM3LjExOTkzIDAgMCAxIDIxMy4zMTI1NiA4OTUuOTk4MDhIMTc2LjAwMDYzQTExMS4zNTk3OTEgMTExLjM1OTc5MSAwIDAgMSA2NC4wMDA4NCA3ODUuMjc4Mjg4di0xNDcuNzExNzIzQTI1Ni45NTk1MTggMjU2Ljk1OTUxOCAwIDAgMSAxNzYuNzY4NjI5IDQyNS41OTg5NjIgMzI0LjI4NzM5MiAzMjQuMjg3MzkyIDAgMCAwIDI4OC4wMDA0MiAxOTQuNDMxMzk1QzI4OC4wMDA0MiA1MS43MTE2NjMgNDA0Ljk5MjIwMS02NC4wMDAxMiA1NDkuMzExOTMtNjQuMDAwMTJzMjYxLjM3NTUxIDExNS43MTE3ODMgMjYxLjM3NTUxIDI1OC40MzE1MTV2NDIuMTExOTIxYTE0Ny41ODM3MjMgMTQ3LjU4MzcyMyAwIDAgMSAxMDcuMjYzNzk5IDE3OS45Njc2NjNjLTIwLjY3MTk2MSA3OC45NzU4NTItMTAyLjA3OTgwOSAxMjYuNDYzNzYzLTE4MS45NTE2NTkgMTA2LjA0NzgwMWExNDcuNTgzNzIzIDE0Ny41ODM3MjMgMCAwIDEtMTA3LjI2Mzc5OS0xNzkuOTAzNjYyIDE0OC40Nzk3MjIgMTQ4LjQ3OTcyMiAwIDAgMSAxMDcuMjYzNzk5LTEwNi4xMTE4MDJ2LTQyLjExMTkyMWMwLTEwMS45NTE4MDktODMuNTgzODQzLTE4NC41NzU2NTQtMTg2LjY4NzY1LTE4NC41NzU2NTMtMTAzLjAzOTgwNyAwLTE4Ni42MjM2NSA4Mi42MjM4NDUtMTg2LjYyMzY1IDE4NC41NzU2NTNhMzI0LjI4NzM5MiAzMjQuMjg3MzkyIDAgMCAwIDExMS45OTk3OSAyMzEuMTY3NTY3IDI1Ni44OTU1MTggMjU2Ljg5NTUxOCAwIDAgMSAxMTEuOTk5NzkgMjExLjk2NzYwM1Y3ODUuMjE0Mjg4QTExMS4zNTk3OTEgMTExLjM1OTc5MSAwIDAgMSA0NzQuNjg4MDcgODk1Ljk5ODA4aC0zNy4zNzU5M2EzNy4xMTk5MyAzNy4xMTk5MyAwIDAgMS0zNy4zMTE5My0zNi45Mjc5MzEgMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDEgMzcuMzExOTMtMzYuOTI3OTMxaDM3LjM3NTkzQTM3LjExOTkzIDM3LjExOTkzIDAgMCAwIDUxMiA3ODUuMjc4Mjg4di0xNDcuNjQ3NzI0YzAtMTAyLjAxNTgwOS04My41ODM4NDMtMTg0LjYzOTY1NC0xODYuNjg3NjUtMTg0LjYzOTY1M3ogbTQ0Ny45OTkxNi0xNDcuNzExNzIzYy00MS4yMTU5MjMgMC03NC42MjM4NiAzMy4wODc5MzgtNzQuNjIzODYgNzMuODU1ODYxczMzLjQwNzkzNyA3My44NTU4NjIgNzQuNjIzODYgNzMuODU1ODYyIDc0LjY4Nzg2LTMzLjA4NzkzOCA3NC42ODc4Ni03My44NTU4NjItMzMuNDA3OTM3LTczLjg1NTg2Mi03NC42ODc4Ni03My44NTU4NjF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjciIHVuaWNvZGU9IiYjNTkwMDI7IiBkPSJNODEwLjYyNCAyMzkuMTA0YTI5Ny42IDI5Ny42IDAgMCAxLTI0MS45Mi0xMjQuMDk2Yy04LjM4NC0xMS42NDgtMjYuODgtNS40NC0yNi44OCA4Ljk2djYyLjY1NmEzMC43MiAzMC43MiAwIDAgMCAxNS44MDggMjYuMjRjMzAuMjA4IDE3Ljg1NiA0Ny4yMzIgNTEuNzEyIDQzLjQ1NiA4Ni41OTIgMS45Mi0yLjQzMiAzLjY0OC01LjA1NiA1Ljk1Mi03LjI5NmE4OS42IDg5LjYgMCAwIDEgMTI2LjcyIDEyNi43MmMtMi4zMDQgMi4yNC00Ljg2NCAzLjk2OC03LjI5NiA1Ljk1MiAxOC44OC0xLjk4NCAzOS4yMzIgMS4yMTYgNjEuOTUyIDE5LjMyOCAyMy40ODggMTguODE2IDM5LjIzMiA0Ni43MiAzNi45MjggNzYuNjcyYTg5LjYgODkuNiAwIDAgMS05OC44OCA4Mi4xNzZjMi40MzIgMS45MiA0Ljk5MiAzLjY0OCA3LjI5NiA1Ljk1MmE4OS42IDg5LjYgMCAwIDEtMTI2LjcyIDEyNi43MmMtMi4zMDQtMi4zMDQtMy45NjgtNC44NjQtNS45NTItNy4yOTYgMi4xNzYgMjAuNDgtMS43OTIgNDIuODgtMjQuNDQ4IDY3Ljg0LTE2LjY0IDE4LjMwNC0zOS40MjQgMzEuMTY4LTY0LjEyOCAzMS4yOTZhODkuNiA4OS42IDAgMCAxLTg5LjYtOTkuMmMtMS45MiAyLjQ5Ni0zLjY0OCA1LjEyLTUuOTUyIDcuMzZhODkuNiA4OS42IDAgMCAxLTEyNi43Mi0xMjYuNzJjMi4zMDQtMi4zMDQgNC44NjQtNC4wMzIgNy4yOTYtNS45NTItMjAuNDggMi4xNzYtNDIuODgtMS44NTYtNjcuODQtMjQuNTEyLTE4LjMwNC0xNi42NC0zMS4xNjgtMzkuMzYtMzEuMjk2LTY0LjA2NGE4OS42IDg5LjYgMCAwIDEgOTkuMi04OS42Yy0yLjQ5Ni0xLjkyLTUuMTItMy43MTItNy4zNi01Ljk1MmE4OS42IDg5LjYgMCAwIDEgMTI2LjcyLTEyNi43MmMyLjMwNCAyLjI0IDMuOTY4IDQuODY0IDUuOTUyIDcuMjk2YTg5LjM0NCA4OS4zNDQgMCAwIDEgNDMuNTItODYuNTkyIDMwLjc4NCAzMC43ODQgMCAwIDAgMTUuNjgtMjYuMjR2LTYyLjcyYzAtMTQuMzM2LTE4LjQzMi0yMC41NDQtMjYuODE2LTguOTZhMjk3LjYgMjk3LjYgMCAwIDEtMzIzLjM5MiAxMTIuODMyIDMwLjE0NCAzMC4xNDQgMCAwIDEtMTkuMi00Mi40OTZBNDQ3LjkzNiA0NDcuOTM2IDAgMCAxIDUxMi01OS41Mkg1MTJhNDQ3LjkzNiA0NDcuOTM2IDAgMCAxIDM5OS4xNjggMjQ0LjggMzAuMTQ0IDMwLjE0NCAwIDAgMS0xOS4yIDQyLjQ5NiAyOTcuMzQ0IDI5Ny4zNDQgMCAwIDEtODEuNDA4IDExLjMyOHogbS00MDMuMiAyNzQuODE2YTEwNC41MTIgMTA0LjUxMiAwIDEgMCAyMDkuMDg4IDAgMTA0LjUxMiAxMDQuNTEyIDAgMCAwLTIwOS4wMjQgMHogbTEwNS4wMjQtNTc3LjM0NGMwIDIuMTEyLTAuMzg0IDQuMjI0LTAuNTEyIDYuNGgxLjA4OGMtMC4xMjgtMi4yNC0wLjU3Ni00LjI4OC0wLjU3Ni02LjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjgiIHVuaWNvZGU9IiYjNTkwMDM7IiBkPSJNNTEyIDgzMkMyNjQuODMyIDgzMiA2NCA2MzEuMTY4IDY0IDM4NHMyMDAuODMyLTQ0OCA0NDgtNDQ4IDQ0OCAyMDAuODMyIDQ0OCA0NDgtMjAwLjgzMiA0NDgtNDQ4IDQ0OHogbTIyNC02NTQuNGMwLTE0LjQtMTEuMi0yNS42LTI0LjgzMi0yNS42LTIzNS45NjggMC00MjcuMTM2IDE5Ni4wMzItNDI3LjEzNiA0MzguNCAwIDE0LjQgMTEuMiAyNS42IDI0Ljc2OCAyNS42SDM5Ni44YzEzLjYzMiAwIDI0LjgzMi0xMS4yIDI0LjgzMi0yNS42IDAtMzIgNC44LTYzLjIzMiAxNC40LTkyLjggMi4zNjgtOC44MzIgMC43NjgtMTkuMi02LjQtMjYuNDMybC01NS4yMzItNTYuNzY4YTM4MS41MDQgMzgxLjUwNCAwIDAgMSAxNjUuNjMyLTE2OS42bDU1LjE2OCA1Ni43NjhjNi40IDcuMjMyIDE2LjgzMiA5LjYgMjUuNiA2LjQgMjguMDMyLTkuNiA1OC40MzItMTQuNCA4OS42LTE0LjRhMjUuNiAyNS42IDAgMCAwIDI0LjgzMi0yNS42di05MC4zNjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjkiIHVuaWNvZGU9IiYjNTkwMDQ7IiBkPSJNNTYzLjc3NiAzMTAuNTkySDQ2NS40MDh2LTE5Ni4zNTJIMzY3LjEwNFY2MDUuMTg0aDE5Ni42NzJjOTcuMDg4IDAgMTQ0LjM4NC02Ny40NTYgMTQ0LjM4NC0xNDcuMiAwLTc5Ljg3Mi0zNy4yNDgtMTQ3LjMyOC0xMzQuNC0xNDcuMzI4aC05Ljk4NHpNNTEyIDgzMy45MkMyNjMuMTY4IDgzMy45MiA2MS40NCA2MzIuNTEyIDYxLjQ0IDM4NGMwLTI0OC41MTIgMjAxLjcyOC00NDkuOTg0IDQ1MC41Ni00NDkuOTg0czQ1MC41NiAyMDEuNDcyIDQ1MC41NiA0NDkuOTJDOTYyLjU2IDYzMi41MTIgNzYwLjgzMiA4MzMuOTIgNTEyIDgzMy45MnogbTUxLjc3Ni0zMjYuODQ4SDQ2NS40MDh2LTk4LjI0SDU2My44NGM0MS42IDAgNDkuMDg4IDEwLjg4IDQ5LjA4OCA0OS4wODggMCAzOC4yNzIgMi4zNjggNDkuMTUyLTM5LjI5NiA0OS4xNTJINTYzLjg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTMwIiB1bmljb2RlPSImIzU5MDA1OyIgZD0iTTMxNy42OTYgNTQ0LjE5MlY2OTEuNzEySDE2MC44MzJ6IG0zODguNjA4IDE0Ny41MnYtMTQ3LjQ1NmwxNTYuODY0IDE0Ny40NTZ6TTMxNy42OTYgMzI5LjI4VjQ3Ni42NzJIMTYwLjgzMnogbTM4OC42MDggMGwxNTYuODY0IDE0Ny40NTZoLTE1Ni44NjR6TTMxOC40LTY0aDM4Ny41ODRWODMySDMxOC40ek01MDkuMzc2IDc2OS45ODRjNjEuNzYgMCAxMTEuODcyLTQ5LjY2NCAxMTEuODcyLTExMC45NzZzLTUwLjExMi0xMTAuOTc2LTExMS44NzItMTEwLjk3Ni0xMTEuODcyIDQ5LjY2NC0xMTEuODcyIDExMC45NzYgNTAuMTEyIDExMC45NzYgMTExLjg3MiAxMTAuOTc2eiBtMC0yNzUuNTJhMTExLjM2IDExMS4zNiAwIDAgMCAxMTEuODcyLTExMC45MTJjMC02MS4zMTItNTAuMTEyLTExMC45NzYtMTExLjg3Mi0xMTAuOTc2cy0xMTEuODcyIDQ5LjYtMTExLjg3MiAxMTAuOTEyIDUwLjExMiAxMTAuOTc2IDExMS44NzIgMTEwLjk3NnogbTAtMjc1LjUyYzYxLjc2IDAgMTExLjg3Mi00OS42NjQgMTExLjg3Mi0xMTAuOTc2IDAtNjEuMjQ4LTUwLjExMi0xMTAuOTEyLTExMS44NzItMTEwLjkxMnMtMTExLjg3MiA0OS42NjQtMTExLjg3MiAxMTAuOTEyYzAgNjEuMzEyIDUwLjExMiAxMTAuOTc2IDExMS44NzIgMTEwLjk3NnogbTE5Ni45MjgtMTA0LjcwNGwxNTYuODY0IDE0Ny40NTZoLTE1Ni44NjR6IG0tMzg4LjYwOCAwVjI2MS42OTZIMTYwLjgzMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMSIgdW5pY29kZT0iJiM1OTAwNjsiIGQ9Ik02NTguNDMyIDQyNi42ODhBNDIuNjg4IDQyLjY4OCAwIDEgMCA2NTYuNTEyIDUxMmE0Mi42ODggNDIuNjg4IDAgMCAwIDEuOTItODUuMzEyeiBtLTI5OC42ODggMEE0Mi42ODggNDIuNjg4IDAgMSAwIDM1Ny44MjQgNTEyYTQyLjY4OCA0Mi42ODggMCAwIDAgMS45Mi04NS4zMTJ6IG0wLjk2IDI1MS4zOTJDMzYwLjcwNCA3NjMuMiA0MjcuNDU2IDgzMiA1MDkuNTY4IDgzMmM4Mi4wNDggMCAxNDguODY0LTY4LjggMTQ4Ljg2NC0xNTMuOTJ2LTM4Ljc4NEwzNjAuNzA0IDY0MHogbTU1Ni42NzItMTAwLjM1MkE2Ny45MDQgNjcuOTA0IDAgMCAxIDg1MC40MzIgNjQwaC0xNDkuMzc2djM4LjA4YzAgMTA4LjQxNi04NS41NjggMTk2LjYwOC0xOTEuNDg4IDE5Ni42MDhTMzE4LjAxNiA3ODYuNDk2IDMxOC4wMTYgNjc4LjA4VjY0MEgxNjcuNzQ0Yy0zNC44MTYgMC02NC41MTItMjcuNjQ4LTY3LjAwOC02Mi4yNzJsLTM2LjU0NC01MTIuMzg0QTYwLjQ4IDYwLjQ4IDAgMCAxIDEyNC45OTIgMGg3NjguMTI4YTYwLjM1MiA2MC4zNTIgMCAwIDEgNjAuODY0IDY1LjM0NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMiIgdW5pY29kZT0iJiM1OTAwNzsiIGQ9Ik0yMjAuNDE2IDgxNS41NTJ2LTE0LjY1NmMwLTI5LjI0OCAyMS4zNzYtNTEuMiA0OS43OTItNTEuMiAyMS4zMTIgMCAzNS41ODQgMTQuNjU2IDQyLjY4OCAzNi42MDhsMTQuMjA4IDM2LjU0NCAzOTguMjA4LTE2OC4xOTJMNDQ4IDQ1Ny4xNTJjLTI4LjQxNi0yMS45NTItMjguNDE2LTUxLjItMjEuMzEyLTgwLjQ0OGw2NC0xNTMuNi05Mi40OC0yODUuMjQ4QTQ3LjE2OCA0Ny4xNjggMCAwIDEgNDQwLjk2LTEyOGMyMS4zMTIgMCAzNS41MiA3LjI5NiA0Mi42ODggMzYuNTQ0bDk5LjUyIDI5Mi42MDggNy4xMDQtMjEuOTUydi0yNTZzMC01MS4yIDQ5Ljc5Mi01MS4yIDQ5Ljc5MiA1MS4yIDQ5Ljc5MiA1MS4ydjI0MS4zNDRjMCAxNC42NTYgMCAyMS45NTItNy4xMDQgMzYuNjA4TDU4My4wNCA0NDkuODU2bDE5MiAxMzguOTQ0YzE0LjIwOCAxNC42NTYgMjguNDggMjEuOTUyIDI4LjQ4IDQzLjkwNHMtMTQuMjcyIDM2LjU0NC0yOC40OCA0My44NGwtNTEyIDIxMi4xNmMtNi4yMDggMC04LjM4NC0xLjI4LTE0LjIwOC03LjM2ek0zNjkuNzkyIDY3Ni40OGMtNTYuOTYgMC0xMDYuNjg4LTUxLjItMTA2LjY4OC0xMDkuNjk2IDAtNTguNDk2IDQ5Ljc5Mi0xMDkuNjk2IDEwNi42ODgtMTA5LjY5NnMxMDYuNjI0IDUxLjIgMTA2LjYyNCAxMDkuNjk2YzAgNTguNDk2LTQ5LjcyOCAxMDkuNjk2LTEwNi42MjQgMTA5LjY5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMyIgdW5pY29kZT0iJiM1OTAwODsiIGQ9Ik03NjggODAwYTk2IDk2IDAgMSAwLTE5MiAwIDk2IDk2IDAgMCAwIDE5MiAweiBtMC02MDhhNjQgNjQgMCAxIDEgMC0xMjggNjQgNjQgMCAwIDEgMCAxMjh6IG0xMTcuNzYgMzE0LjI0bC0xMjIuMjQgMTIyLjI0YTMwLjcyIDMwLjcyIDAgMCAxLTIzLjY4IDExLjUySDI4OGEzMiAzMiAwIDAgMSAwLTY0aDE3Mi44TDI1NiAxNzIuOGEzMS4yMzIgMzEuMjMyIDAgMCAxIDAtMTIuOCAzMi43MDQgMzIuNzA0IDAgMCAxIDY0LTEzLjQ0TDM4NCAyNTZoMTI4bC0xMjMuNTItMjcxLjM2YTMxLjM2IDMxLjM2IDAgMCAxLTQuNDgtMTYuNjQgMzIuNjQgMzIuNjQgMCAwIDEgNjQtMTIuOGwzMDAuOCA2MDAuMzIgOTIuMTYtOTQuNzJhMzIgMzIgMCAwIDEgNDQuOCA0NS40NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNCIgdW5pY29kZT0iJiM1OTAwOTsiIGQ9Ik04MzYuOTI4IDQ3Mi42NHYtMzI0LjkyOGEyOS41NjggMjkuNTY4IDAgMCAwLTU5LjA3MiAwVjI2NS44NTZjMCA0OC45Ni0zOS42OCA4OC41NzYtODguNjQgODguNTc2SDYwMC42NFY3MDguOTI4QTU5LjA3MiA1OS4wNzIgMCAwIDEgNTQxLjU2OCA3NjhIMTg3LjA3MkE1OS4wNzIgNTkuMDcyIDAgMCAxIDEyOCA3MDguOTI4di02NDkuODU2YzAtMzIuNjQgMjYuNDMyLTU5LjA3MiA1OS4wNzItNTkuMDcyaDM1NC40OTZjMzIuNjQgMCA1OS4wNzIgMjYuNDMyIDU5LjA3MiA1OS4wNzJWMjk1LjM2aDg4LjU3NmMxNi4zMiAwIDI5LjU2OC0xMy4xODQgMjkuNTY4LTI5LjUwNHYtMTE4LjE0NGE4OC42NCA4OC42NCAwIDAgMSAxNzcuMjE2IDB2Mzg0YTU5LjA3MiA1OS4wNzIgMCAwIDEtNTkuMDcyIDU5LjA3MlY2ODBhMjkuNTA0IDI5LjUwNCAwIDAgMS0yOS41NjggMjguOTI4IDMwLjA4IDMwLjA4IDAgMCAxLTI5LjUwNC0zMi41MTJ2LTE0NC43MDRhNTkuMDcyIDU5LjA3MiAwIDEgMSA1OS4wNzIgNTkuMDcyeiBtLTI5NS4zNi0yOS41NjhBMjkuNTY4IDI5LjU2OCAwIDAgMCA1MTIgNDEzLjU2OEgyMTYuNjRhMjkuNTY4IDI5LjU2OCAwIDAgMC0yOS41NjggMjkuNTA0djE3Ny4yOGMwIDE2LjI1NiAxMy4yNDggMjkuNDQgMjkuNTY4IDI5LjQ0SDUxMmMxNi4zMiAwIDI5LjU2OC0xMy4xODQgMjkuNTY4LTI5LjQ0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTM1IiB1bmljb2RlPSImIzU5MDEwOyIgZD0iTTMwOC41NDQgNjkyLjU0NGMzMC43ODQgNS4xMiAyOS4wNTYgMzIuNTEyIDEwOS40NCA1MS4zMjggMCAwIDM0LjE3NiA0Mi42ODggNzYuOTI4IDM5LjI5NiAwIDAgNDcuODcyLTYuODQ4IDM1Ljg0IDEzLjY5NlM0OTMuMjQ4IDg2OC42NzIgNTM3LjcyOCA4ODUuNzZzNjYuNjI0LTMuNDU2IDc1LjItMTEuOTY4YzguNTc2LTguNTc2IDguNTc2LTIzLjkzNiA4LjU3Ni0yMy45MzZzMy4zOTItMjcuMzkyIDEuNjY0LTM0LjE3NmMtMS42NjQtNi44NDgtMjMuOTM2LTIwLjU0NC0xMS45NjgtMjcuMzkyIDExLjk2OC02Ljg0OCA5Mi4zNTIgNS4xMiA5NS43NDQtNzAuMDggMCAwIDM5LjI5Ni01NC43MiA1Mi45OTItNzguNjU2IDAgMCA1NC43Mi00NC40MTYgNjguNDE2LTcwLjA4IDAgMCA1Mi45OTItNDQuNDE2IDU2LjM4NC00Ny44NzIgMS43MjgtMy4zOTIgNjYuNjg4LTUxLjI2NCAzNy42MzItNTYuMzg0IDAgMCAxLjY2NC0zNC4xNzYtMTUuMzYtNi44NDgtMTUuNDI0IDI3LjMyOC0xMy42OTYgOC41MTItMTMuNjk2IDUuMTIgMC0zLjM5MiAxMC4yNC0zNS44NC0yMC40OC0xNy4wODgtMjkuMTIgMTguODE2LTI0IDQ0LjQxNi0yNCA0NC40MTZzMTEuOTY4IDYuODQ4LTEzLjY5NiAyMi4yNzJjLTI1LjYgMTUuMzYtNjYuNjI0IDQ2LjA4LTY2LjYyNCA1NC42NTYgMCAwLTQ5LjYgMzUuOTA0LTU2LjQ0OCA1Mi45OTItNi44NDggMTUuMzYtNi44NDggMC0xMC4yNC02Ljc4NCAwIDAtMjUuNi00Mi43NTItMjAuNDgtNjEuNTY4IDMuMzkyLTE4LjgxNiAyOC45OTItOTkuMiAyNS42LTExOS42OC0zLjM5Mi0yMC40OC0xOC44MTYtODUuNDQtMTcuMDg4LTg4Ljg5NiAxLjcyOC0zLjM5MiAyMi4yMDgtODAuMzItMjUuNi0xMTEuMTA0IDAgMC04Mi4xMTItMTU3LjI0OC04MC4zODQtMTc0LjMzNiAxLjcyOC0xOC44MTYgMS43MjgtMjkuMTIgMS43MjgtMjkuMTJsMS42NjQtMjUuNmMtNi44NDgtOC41NzYgNS4xMi02My4yOTYgMTguODE2LTc1LjI2NCAxMy42OTYtMTEuOTY4IDMyLjUxMi02NC45Ni0yNy4zMjgtNDIuNjg4QzUxOC44NDgtOTMuODI0IDUxMi0zOS4xMDQgNTEyLTM5LjEwNHMtNDYuMTQ0IDIwLjQ4LTE1LjM2IDU2LjM4NGMyOS4wNTYgMzUuOTA0IDM5LjI5NiAzNC4yNCAzOS4yOTYgMzQuMjRzMS43MjggMjAuNDggNi44NDggMTcuMDg4YzMuMzkyLTEuNzI4IDE4LjgxNiAyMTMuNjk2IDcwLjA4IDIwNi44NDhsLTEwLjI0IDIwLjQ4cy0xNy4wODgtMzUuODQtMjUuNjY0LTQyLjY4OGMtOC41NzYtNi44NDgtNi44NDgtMzAuNzg0LTM3LjYzMi00Mi43NTItMzAuNzItMTEuOTY4LTg1LjQ0LTU2LjQ0OC0xMjkuOTItODcuMTY4IDAgMC02Ljg0OC0zNy42MzItMTEuOTY4LTM5LjM2LTMuMzkyLTEuNzI4LTMwLjcyLTUxLjI2NC0yNS42LTYxLjUwNCA2Ljg0OC0xMS45NjgtMjIuMjcyLTgwLjM4NC00Ny44NzItOC41NzYtMjUuNiA3MC4wOC02Ljg0OCA3Ni45MjgtNi44NDggNzYuOTI4cy0yMC40OCA1OS44NCA1LjEyIDYxLjU2OCA0Ny44NzItMS43MjggNTEuMjY0IDBjMy40NTYgMS42NjQgOC41NzYgMy4zOTIgOC41NzYgMy4zOTJzODMuNzc2IDExNy45NTIgMTIxLjM0NCAxMTQuNTZjMCAwLTYuNzg0IDE1Mi4xMjggMTAuMjQgMTYwLjY0IDAgMC01Ni4zMiA5MC42MjQtNi43ODQgMTQxLjk1MiAwIDAtMzQuMTc2IDgzLjcxMi0yMi4yMDggOTQuMDE2IDAgMC0yNS42NjQgMTguODE2LTE4LjgxNiAyNS42IDAgMC03OC42NTYtMzIuNDQ4LTExNi4yODgtMzIuNDQ4IDAgMC0yMC40OC01LjEyLTI3LjMyOC0xMS45NjggMCAwLTExOC4yNzItMjUuNi0xMzAuMjQtOC41NzYtMTAuMjQgMTUuMzYgNTMuMzEyIDM3LjYzMiA1My4zMTIgMzcuNjMyczMyLjUxMiAxMC4yNCA2My4yMzIgMTUuMzZ6IG0tMjEzLjY5Ni0xLjY2NGE3My41MzYgNzMuNTM2IDAgMSAxIDE0Ny4wNzIgMCA3My41MzYgNzMuNTM2IDAgMCAxLTE0Ny4wNzIgMHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNiIgdW5pY29kZT0iJiM1OTAxMTsiIGQ9Ik02ODIuNjg4IDc2OGMtMzcuNzYgMC02OC4yODgtMzEuMDQtNjguMjg4LTY5LjMxMnMzMC41OTItNjkuMzc2IDY4LjI4OC02OS4zNzYgNjguMjI0IDMxLjA0IDY4LjIyNCA2OS4zNzZTNzIwLjM4NCA3NjggNjgyLjY4OCA3Njh6IG0tMTI2LjcyLTEzOC4yNGEzMy45MiAzMy45MiAwIDAgMS0yMy42OC05LjkyTDM1MiA0NDYuNTI4YTM1LjAwOCAzNS4wMDggMCAwIDEgMi45NDQtNTIuOTI4bDEyMi44OC05My41Njh2LTE5MC43MmMtMC42NC00Ni44NDggNjguOTkyLTQ2Ljg0OCA2OC4yODggMHYyMDhhMzQuODggMzQuODggMCAwIDEtMTMuNTY4IDI3Ljc3NmwtNTIuNDE2IDM5LjkzNiAxMjQuMTYgMTE5LjM2IDUxLjA3Mi02OS4yNDhhMzMuOTIgMzMuOTIgMCAwIDEgMjcuMzI4LTEzLjgyNGgxMDIuNGM0Ni4wOC0wLjY0IDQ2LjA4IDcwLjAxNiAwIDY5LjM3NmgtODUuMzc2bC01MS4yIDY5LjMxMi00MC45NiA1NS41NTJhMzMuOTg0IDMzLjk4NCAwIDAgMS0yNi4yNCAxNC4yMDh6TTIwNC44IDM1MkM5MS43MTIgMzUyIDAgMjU4Ljg4IDAgMTQ0UzkxLjcxMi02NCAyMDQuOC02NHMyMDQuOCA5My4xMiAyMDQuOCAyMDhTMzE3Ljg4OCAzNTIgMjA0LjggMzUyeiBtNjE0LjQgMGMtMTEzLjA4OCAwLTIwNC44LTkzLjEyLTIwNC44LTIwOFM3MDYuMTEyLTY0IDgxOS4yLTY0czIwNC44IDkzLjEyIDIwNC44IDIwOC05MS43MTIgMjA4LTIwNC44IDIwOHpNMjA0LjggMjgyLjY4OGM3NS4zOTIgMCAxMzYuNTEyLTYyLjA4IDEzNi41MTItMTM4LjY4OHMtNjEuMTItMTM4LjY4OC0xMzYuNTEyLTEzOC42ODgtMTM2LjUxMiA2Mi4wOC0xMzYuNTEyIDEzOC42ODggNjEuMTIgMTM4LjY4OCAxMzYuNTEyIDEzOC42ODh6IG02MTQuNCAwYzc1LjM5MiAwIDEzNi41MTItNjIuMDggMTM2LjUxMi0xMzguNjg4cy02MS4xMi0xMzguNjg4LTEzNi41MTItMTM4LjY4OC0xMzYuNTEyIDYyLjA4LTEzNi41MTIgMTM4LjY4OCA2MS4xMiAxMzguNjg4IDEzNi41MTIgMTM4LjY4OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNyIgdW5pY29kZT0iJiM1OTAxMjsiIGQ9Ik01MTIgNzY4QzQwOS42IDc2OCAzMzIuOCA2ODcuNzQ0IDMzMi44IDU4OC44YTE3OC43NTIgMTc4Ljc1MiAwIDAgMSAxMjgtMTcwLjg4di0zMDkuMjQ4Yy00Ny42MTYgOC40NDgtOTYgMjguMTYtMTM1LjYxNiA2NS4wMjQtNTMuODg4IDUwLjE3Ni05NC43MiAxMzAuMDQ4LTk0LjcyIDI2MS42MzJhNTEuMiA1MS4yIDAgMSAxLTEwMi40NjQgMGMwLTE1My43OTIgNTEuODQtMjY2LjA0OCAxMjcuNDg4LTMzNi41MTJTNDI2Ljg4IDAgNTEyIDBjODUuMjQ4IDAgMTgwLjk5MiAyOC42NzIgMjU2LjY0IDk5LjMyOHMxMjcuMjMyIDE4Mi45NzYgMTI3LjIzMiAzMzZjMy4zMjggNzEuNDI0LTEwNS42IDcxLjQyNC0xMDIuMjcyIDAgMC0xMzAuNzUyLTQwLjk2LTIxMC42ODgtOTQuOTEyLTI2MS4xMi0zOS42MTYtMzYuOTkyLTg3LjkzNi01Ni44OTYtMTM1LjQ4OC02NS40MDhWNDE3LjcyOGExNzguODggMTc4Ljg4IDAgMCAxIDEyOCAxNzEuMDcyQzY5MS4yIDY4Ny43NDQgNjE0LjQgNzY4IDUxMiA3Njh6IG0wLTEwMi40QTc2LjggNzYuOCAwIDEgMCA1MTIgNTEyYTc2LjggNzYuOCAwIDAgMCAwIDE1My42eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTM4IiB1bmljb2RlPSImIzU5MDEzOyIgZD0iTTM4My44MDggMTczLjE4NGMzOS44NzItMC41NzYgNzguMzM2LTE0LjcyIDEwOS4zMTItNDAuMzJsMTUuMzYtMTMuODg4aDIuOTQ0bDE4LjMwNCAxNi44MzJhMTY4LjEyOCAxNjguMTI4IDAgMCAwIDIwMy4yIDEwLjg4bDEzMy41MDQgMjY3LjQ1Ni04OC41NzYgNjAuMTZWNjg4LjI1NmE5MS44NCA5MS44NCAwIDAgMS04OC42NCA4Ny4zNmgtMjkuNTA0YTU2LjI1NiA1Ni4yNTYgMCAwIDEtNTkuMDcyIDYwLjE2aC0xNzcuMjhhNTUuOTM2IDU1LjkzNiAwIDAgMS01OS4wNzItNjAuMTZoLTI5LjUwNGE5MS44NCA5MS44NCAwIDAgMS04OC42NC04Ny4zNnYtMjEzLjgyNGwtODguNTc2LTYwLjIyNCAxMzIuODY0LTI3Mi44OTZhMTcwLjg4IDE3MC44OCAwIDAgMCA5My4zNzYgMzEuOTM2ek0zMDUuMjE2IDY4OC4xOTJhMjcuOTY4IDI3Ljk2OCAwIDAgMCAyOC44NjQgMjcuMTM2aDM1NS4yYTI3Ljk2OCAyNy45NjggMCAwIDAgMjkuNDQtMzAuMTQ0di0xODAuNzM2TDUxMiA2MjQuOTYgMzA1LjI4IDUwNy40NTZ6TTg5NiA1Mi42NzJ2LTYwLjE2YTU4LjY4OCA1OC42ODggMCAwIDEtNDAuMTkyLTIwLjQ4Yy0xNi0xNy40MDgtMzYuNDgtMjkuODg4LTU5LjA3Mi0zNi4xNi0zNi4yODgtMTAuOTQ0LTc1LjUyLTIuNTYtMTA0LjU3NiAyMi4yNzJsLTIzLjA0IDIxLjEyYTQ1LjQ0IDQ1LjQ0IDAgMCAxLTY0Ljk2IDBjLTguMzItNy4yOTYtMTYtMTUuMTA0LTI0LjgzMi0yMi4zMzZhMTExLjc0NCAxMTEuNzQ0IDAgMCAwLTE0Ni40OTYgNC4yMjRsLTIzLjA0IDIxLjEyYTQ0LjIyNCA0NC4yMjQgMCAwIDEtNTkuMDcyIDBjLTExLjItOS4wODgtMjEuMjQ4LTE5LjMyOC0zMi41MTItMjguMzUyLTQxLjYtMzEuMzYtOTguODE2LTI5Ljk1Mi0xMzguODE2IDMuNTg0bC0xOC4zMDQgMTYuMzJBNTUuMjMyIDU1LjIzMiAwIDAgMSAxMjgtNy41NTJ2NjAuMjg4YzE1LjI5NiAxLjkyIDMwLjcyLTEuMDI0IDQ0LjI4OC04LjQ0OCAxNi40NDgtMTAuMzY4IDMyLjA2NC0yMi4wOCA0Ni43Mi0zNC45NDQgMTIuMDk2LTEzLjQ0IDMwLjQtMTkuMiA0Ny44MDgtMTUuMDRhNTQuNTkyIDU0LjU5MiAwIDAgMSAxOC4zMDQgOS42YzkuNDcyIDcuMjMyIDE3LjE1MiAxNS42OCAyNi42MjQgMjMuNDg4YTExMS43NDQgMTExLjc0NCAwIDAgMCAxNDQuNzA0IDBjOS40NzItNy44MDggMTguMzA0LTE2LjgzMiAyNy43NzYtMjQuNzA0YTQ0LjIyNCA0NC4yMjQgMCAwIDEgNTkuMDcyIDBjOS40NzIgNy44NzIgMTguMzA0IDE2Ljg5NiAyNy43NzYgMjQuNzA0YTExMS43NDQgMTExLjc0NCAwIDAgMCAxNDUuMjggMGM4Ljk2LTcuODA4IDE3LjIxNi0xNi4yNTYgMjYuMDQ4LTIzLjQ4OGE0NC4yMjQgNDQuMjI0IDAgMCAxIDU5LjA3MiAwbDI3Ljc3NiAyNC43MDRBMTA0LjUxMiAxMDQuNTEyIDAgMCAwIDg5NiA1Mi43MzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzkiIHVuaWNvZGU9IiYjNTkwMTQ7IiBkPSJNNzE1LjYzNTI3MyA3MzguNDQxODQ3YzQ0Ljk4OTE4OCAwIDgxLjQ2NjkwOCAzNS4yNjE3OTYgODEuNDY2OTA4IDc4Ljc3OTA3N1M3NjAuNjI0NDYxIDg5NiA3MTUuNjM1MjczIDg5NiA2MzQuMTY4MzY0IDg2MC43MzgyMDQgNjM0LjE2ODM2NCA4MTcuMjg0OTJjMC00My41MTcyOCAzNi40Nzc3Mi03OC44NDMwNzIgODEuNDY2OTA5LTc4Ljg0MzA3M3ogbS02MTAuOTA1ODE5LTU1MS4zMjU1NDJoMjAzLjYzNTI3M2w4MS40NjY5MDkgMjM2LjI3MzIzM0w0NzEuMjk4NTQ0IDU2MS4zMDA5MTkgMzg5Ljc2NzY0IDU4MC45NDc2OTFsLTE4Ny4zMTYyOTMtNzguNzE1MDgxYTQ0LjM0OTIyOCA0NC4zNDkyMjggMCAwIDAtNTcuMDIwNDM2IDIzLjU1MDUyOSA0MS45ODEzNzYgNDEuOTgxMzc2IDAgMCAwIDI0LjQ0NjQ3MiA1NS4xNjQ1NTJsMjE5Ljg5MDI1NyA3OC43MTUwOGgxNjIuODY5ODJsMTYyLjkzMzgxNy03OC43MTUwOCA4MS40NjY5MDgtNzguNzE1MDgxaDEyMi4xNjgzNjVjMjIuNDYyNTk2IDAgNDAuNzAxNDU2LTE3LjY2Mjg5NiA0MC43MDE0NTYtMzkuNDIxNTM2IDAtMjEuNzU4NjQtMTguMjM4ODYtMzkuNDIxNTM2LTQwLjcwMTQ1Ni0zOS40MjE1MzZoLTIwMy42MzUyNzNMNjM0LjE2ODM2NCA1MDIuMTY4NjE0IDU1Mi43MDE0NTYgMzQ0LjY3NDQ1OGwxNjIuOTMzODE3LTE1Ny41NTgxNTN2LTI3NS42OTQ3NjljMC0yMS43NTg2NC0xOC4yMzg4Ni0zOS4zNTc1NC00MC43NjU0NTItMzkuMzU3NTRzLTQwLjcwMTQ1NiAxNy42NjI4OTYtNDAuNzAxNDU3IDM5LjM1NzU0djI0NC45NzY2ODlsLTE2Mi44Njk4MiAxMDkuNDMzMTYxLTgxLjQ2NjkwOC0xNTcuNDMwMTYxSDEwNC43Mjk0NTRjLTIyLjQ2MjU5NiAwLTQwLjcwMTQ1NiAxNy41OTg5LTQwLjcwMTQ1NiAzOS4zNTc1NHMxOC4yMzg4NiAzOS4zNTc1NCA0MC43MDE0NTYgMzkuMzU3NTR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDAiIHVuaWNvZGU9IiYjNTkwMTU7IiBkPSJNMTI4IDY0MGMtMzUuNDU2IDAtNjQtMjguNTQ0LTY0LTY0di00NDhjMC0zNS40NTYgMjguNTQ0LTY0IDY0LTY0aDgzMmMzNS40NTYgMCA2NCAyOC41NDQgNjQgNjRWNTc2YzAgMzUuNDU2LTI4LjU0NCA2NC02NCA2NHogbTAtNjRoOTZhMzIgMzIgMCAxIDAtMzItMzJsLTMyLTMyYTMyIDMyIDAgMSAwLTMyLTMyeiBtNDE2IDBDNjMyLjMyIDU3NiA3MDQgNDc1LjcxMiA3MDQgMzUyUzYzMi4zMiAxMjggNTQ0IDEyOCAzODQgMjI4LjI4OCAzODQgMzUyIDQ1NS42OCA1NzYgNTQ0IDU3NnogbTMyMCAwSDk2MHYtOTZhMzIgMzIgMCAxIDAtMzIgMzJsLTMyIDMyYTMyIDMyIDAgMSAwLTMyIDMyeiBtLTMyMC05NmMtMjAuNjcyIDAtMzQuMTc2LTYuOTc2LTQzLjY0OC0xNmg4Ny4yOTZjLTkuNDcyIDkuMDI0LTIyLjk3NiAxNi00My42NDggMTZ6IG0tNTYtMzJjLTIuODgtNS44MjQtMy45NjgtMTAuOTQ0LTUuMTItMTZoMTIyLjI0Yy0xLjE1MiA1LjA1Ni0yLjI0IDEwLjE3Ni01LjEyIDE2eiBtLTgtMzJ2LTE2aDEyOFY0MTZ6IG0wLTMydi0xNmgxMjhWMzg0eiBtMC0zMnYtMTZoMTI4VjM1MnogbTAtMzJsLTE2LTE2aDEyOEw2MDggMzIweiBtLTMyLTMyczIuMjQtNi41MjggNi41MjgtMTZoMTQ1LjQ3Mkw1NzYgMjg4eiBtLTI4OC0zMmEzMiAzMiAwIDAgMCAwLTY0bDMyLTMyYTMyIDMyIDAgMSAwIDMyLTMySDEyOHY5NmEzMiAzMiAwIDAgMCAzMiAzMnogbTMwMy4yMzIgMGMyLjk0NC01LjUwNCA0Ljg2NC0xMC4xNzYgOC43NjgtMTZoMTQ1LjE1MmM0LjIyNCA4LjgzMiA2Ljg0OCAxNiA2Ljg0OCAxNnogbTQ2NC43NjggMGEzMiAzMiAwIDAgMCAzMi0zMlYxMjhoLTk2YTMyIDMyIDAgMSAwIDMyIDMybDMyIDMyYTMyIDMyIDAgMCAwIDAgNjR6IG0tNDQzLjc3Ni0zMmM1LjA1Ni01LjgyNCAxMC41Ni0xMS4yNjQgMTYuNjQtMTZoOTAuODhjNi40IDQuOTI4IDEyLjAzMiAxMC4zNjggMTYuMjU2IDE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQxIiB1bmljb2RlPSImIzU5MDE2OyIgZD0iTTUxMiA3NjhjLTExNy4wNTYgMC00MDkuNi0xNC43Mi0zODAuMzUyLTQ0LjI4OGwzNTEuMTA0LTM2OS4yOHYtMjM2LjI4OGMwLTU5LjA3Mi0xNzUuNTUyLTI5LjUwNC0xNzUuNTUyLTExOC4xNDRoNDA5LjZjMCA4OC42NC0xNzUuNTUyIDU5LjA3Mi0xNzUuNTUyIDExOC4xNDRWMzU0LjQzMmwzNTEuMTA0IDM2OS4yOEM5MjEuNiA3NTMuMjE2IDYyOS4wNTYgNzY4IDUxMiA3Njh6IG0wLTU5LjA3MmMxNDYuMzA0IDAgMjc3Ljk1Mi0xNC43MiAyNzcuOTUyLTE0LjcybC00My45MDQtNDQuMzUySDI3Ny45NTJsLTQzLjkwNCA0NC4yODhzMTMxLjY0OCAxNC43MiAyNzcuOTUyIDE0LjcyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQyIiB1bmljb2RlPSImIzU5MDE3OyIgZD0iTTg4NS4zMTIgNTYzLjJoLTEzOC42MjRWNzA0SDE5MnYtMjgxLjZjMC44OTYtMTU1LjUyIDEyNS44MjQtMjgwLjgzMiAyNzkuMDQtMjc5Ljg3MkEyNzYuNjA4IDI3Ni42MDggMCAwIDEgNzA4LjQ4IDI4MS42aDE3Ni44MzJDOTYxLjkyIDI4MS42IDEwMjQgMzQ0LjY0IDEwMjQgNDIyLjRzLTYyLjA4IDE0MC44LTEzOC42ODggMTQwLjh6IG0wLTIxMS4yaC0xNDguMzUyYzYuMTQ0IDIyLjk3NiA5LjQwOCA0Ni41OTIgOS43MjggNzAuNFY0OTIuOGgxMzguNjI0YzM4LjMzNiAwIDY5LjM3Ni0zMS40ODggNjkuMzc2LTcwLjRzLTMxLjA0LTcwLjQtNjkuMzc2LTcwLjR6IG0tMTM4LjYyNC0zMTYuOGMwLTE5LjQ1Ni0xNS41NTItMzUuMi0zNC42ODgtMzUuMkgyMjYuNjg4Yy0xOS4yIDAtMzQuNjg4IDE1Ljc0NC0zNC42ODggMzUuMnMxNS41NTIgMzUuMiAzNC42ODggMzUuMmg0ODUuMzEyYzE5LjIgMCAzNC42ODgtMTUuNzQ0IDM0LjY4OC0zNS4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQzIiB1bmljb2RlPSImIzU5MDE4OyIgZD0iTTk3Mi41NDQgNDA5LjI4aC0xNTAuMDE2di0yNTMuNjMyaDgzLjMyOHYtNjcuNjQ4aDUwLjA0OHYtNjcuNjQ4SDg5LjI4djY3LjY0OGg0OS45ODR2NjcuNjQ4aDk5Ljk2OFY0MDkuMjhINzYuOGwyMjkuMTIgMTUyLjE5MkgxNDMuNDg4TDUwNS45MiA3OTguMDhWODMyaDMzLjI4di0zMy44NTZsMzgzLjM2LTIzNi42NzJoLTE2OC4xOTJ6IG0tNjgzLjI2NCAwdi0yMDIuODhoODMuMzI4djIwMi44OHogbTIxNi42NCAwSDQyMi41OTJ2LTIwMi44OGg4My4zMjh6IG0xMzMuMzEyIDBINTU1LjkwNHYtMjAyLjg4aDgzLjMyOHogbTQ5Ljk4NC0yMDIuODhoODMuMzI4djIwMi44OEg2ODkuMjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDQiIHVuaWNvZGU9IiYjNTkwMTk7IiBkPSJNOTYgNzM2Yy0xOS4yIDAtMzItMTIuOC0zMi0zMnYtNjA4YzAtMTkuMiAxMi44LTMyIDMyLTMyczMyIDEyLjggMzIgMzJWMTkyaDgzMnYtOTZjMC0xOS4yIDEyLjgtMzIgMzItMzJzMzIgMTIuOCAzMiAzMnYxMjhjMCAxOS4yLTEyLjggMzItMzIgMzJIMTI4VjcwNGMwIDE5LjItMTIuOCAzMi0zMiAzMnogbTE5Mi0zMkMyMzYuOCA3MDQgMTkyIDY1OS4yIDE5MiA2MDhTMjM2LjggNTEyIDI4OCA1MTIgMzg0IDU1Ni44IDM4NCA2MDggMzM5LjIgNzA0IDI4OCA3MDR6TTUxMiA2NDBDNDE2IDY0MCA0MTYgNTQ0IDQxNiA1NDRWNDQ4aC0xOTJjLTE5LjIgMC0zMi0xMi44LTMyLTMydi02NGMwLTE5LjIgMTIuOC0zMiAzMi0zMkgxMDI0VjQ4MEMxMDI0IDY0MCA4NjQgNjQwIDg2NCA2NDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDUiIHVuaWNvZGU9IiYjNTkwMjA7IiBkPSJNODk0LjI3MiAzNC44OGMtNDAuOTYtMjAuOTI4LTk1LjU1Mi02Ljk3Ni0xMjIuODggMzQuOTQ0bC03NS4wNzIgOTcuNzI4SDMyNy42OGwtNzUuMDcyLTk3LjcyOGMtMzQuMTc2LTQ4Ljg5Ni05NS42MTYtNTUuODcyLTE0My4zNi0yMC45MjgtMzQuMTc2IDI3LjkwNC00Ny44MDggNjkuNzYtNDAuOTYgMTA0LjcwNGw0Ny43NDQgMjU4LjMwNEMxMjkuNzI4IDQ5NS43NDQgMjA0LjggNTU4LjUyOCAyODYuNzIgNTU4LjUyOGgxOTEuMTY4VjY2My4yOTZDNDc3Ljg4OCA3MTkuMTA0IDUxOC44NDggNzY4IDU3My40NCA3NjhoMjExLjY0OGMyMC40OCAwIDM0LjExMi0xMy45NTIgMzQuMTEyLTM0Ljg4IDAtMjAuOTkyLTEzLjYzMi0zNC45NDQtMzQuMTEyLTM0Ljk0NGgtMjA0LjhjLTIwLjQ4IDAtMzQuMTc2LTEzLjk1Mi0zNC4xNzYtMjcuOTA0di0xMTEuNzQ0aDE5MS4xNjhjODEuOTIgMCAxNTYuOTkyLTYyLjg0OCAxNzAuNjg4LTE0Ni41Nmw0Ny43NDQtMjU4LjM2OGM2Ljg0OC00OC44OTYtMTMuNjMyLTk3LjcyOC02MS40NC0xMTguNzJ6TTQwOS42IDM4NGMwIDU1Ljg3Mi00Ny44MDggMTA0LjcwNC0xMDIuNCAxMDQuNzA0UzIwNC44IDQzOS44NzIgMjA0LjggMzg0czQ3LjgwOC0xMDQuNzA0IDEwMi40LTEwNC43MDRTNDA5LjYgMzI4LjEyOCA0MDkuNiAzODR6IG00MDkuNiAwYzAgMjAuOTI4LTEzLjYzMiAzNC44OC0zNC4xMTIgMzQuODhoLTM0LjE3NnYzNC45NDRjMCAyMC45MjgtMTMuNjMyIDM0Ljg4LTM0LjExMiAzNC44OHMtMzQuMTEyLTEzLjk1Mi0zNC4xMTItMzQuODh2LTM0Ljk0NGgtMzQuMTc2Yy0yMC40OCAwLTM0LjExMi0xMy45NTItMzQuMTEyLTM0Ljg4czEzLjYzMi0zNC44OCAzNC4xMTItMzQuODhoMzQuMTc2di0zNC45NDRjMC0yMC45MjggMTMuNjMyLTM0Ljg4IDM0LjExMi0zNC44OHMzNC4xMTIgMTMuOTUyIDM0LjExMiAzNC44OHYzNC45NDRoMzQuMTc2YzIwLjQ4IDAgMzQuMTEyIDEzLjk1MiAzNC4xMTIgMzQuODh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDYiIHVuaWNvZGU9IiYjNTkwMjE7IiBkPSJNMzQxLjEyIDc2OEg2NHYtNjg1LjMxMmgyNTkuMDcyYzQ2LjkxMiAwIDE0OC4wMzItMjcuMDcyIDE0OC4wMzItODIuNjg4VjY0My45NjhDNDcxLjEwNCA2OTAuMTEyIDQwMC4xOTIgNzY4IDM0MS4xMiA3Njh6IG0zNDEuNTA0IDBjLTU5LjEzNiAwLTEzMC4wNDgtNzcuODg4LTEzMC4wNDgtMTI0LjAzMlYwYzAgNTUuNjE2IDEwMS4xMiA4Mi42ODggMTQ3Ljk2OCA4Mi42ODhoMjU5LjEzNlY3Njh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNDciIHVuaWNvZGU9IiYjNTkwMjI7IiBkPSJNMTAyNCAzNzQuNHYtMTY2LjRjMC0yMi45NzYtMTcuOTItNDEuNi00MC00MS42cy00MCAxOC42MjQtNDAgNDEuNmMwIDAgNC44IDQxLjYtODAgNDEuNmgtODB2LTIwOGMwLTIyLjk3Ni0xNy45Mi00MS42LTQwLTQxLjZoLTY0MEE0MC44MzIgNDAuODMyIDAgMCAwIDY0IDQxLjZ2MzMyLjhjMCAyMi45NzYgMTcuOTIgNDEuNiA0MCA0MS42aDY0MGMyMi4wOCAwIDQwLTE4LjYyNCA0MC00MS42di00MS42aDgwYzg0LjggMCA4MCA0MS42IDgwIDQxLjYgMCAyMi45NzYgMTcuOTIgNDEuNiA0MCA0MS42czQwLTE4LjYyNCA0MC00MS42ek0yMjQgNzQ4LjhDMTM1LjY4IDc0OC44IDY0IDY3NC4zMDQgNjQgNTgyLjRzNzEuNjgtMTY2LjQgMTYwLTE2Ni40UzM4NCA0OTAuNDk2IDM4NCA1ODIuNCAzMTIuMzIgNzQ4LjggMjI0IDc0OC44eiBtMC0yNDkuNmMtNDQuMTYgMC04MCAzNy4yNDgtODAgODMuMnMzNS44NCA4My4yIDgwIDgzLjIgODAtMzcuMjQ4IDgwLTgzLjItMzUuODQtODMuMi04MC04My4yek01ODQgODMyQzQ3My41MzYgODMyIDM4NCA3MzguODggMzg0IDYyNFM0NzMuNiA0MTYgNTg0IDQxNnMyMDAgOTMuMTIgMjAwIDIwOFM2OTQuNCA4MzIgNTg0IDgzMnogbTAtMzMyLjhjLTY2LjMwNCAwLTEyMCA1NS44NzItMTIwIDEyNC44UzUxNy43NiA3NDguOCA1ODQgNzQ4LjggNzA0IDY5Mi45MjggNzA0IDYyNCA2NTAuMjQgNDk5LjIgNTg0IDQ5OS4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ4IiB1bmljb2RlPSImIzU5MDIzOyIgZD0iTTg5MS45MDQgNzYwYTIyNS45ODQgMjI1Ljk4NCAwIDAgMS0zODYuNDk2LTE0OC42MDhsMjM3LjY5Ni0yMzcuNjk2YTIyNS45ODQgMjI1Ljk4NCAwIDAgMSAxNDguOCAzODYuMzA0ek0zMzAuMTEyIDM1OC45MTJMMTY5LjYgMTk4LjRhNzUuNjQ4IDc1LjY0OCAwIDAgMSAwLTEwNi45NDRsNTMuNTA0LTUzLjUwNGMyOS41MDQtMjkuNTA0IDc3LjQ0LTI5LjUwNCAxMDYuODggMEw0OTAuNDk2IDE5OC40bDE2MC41MTIgMTYwLjUxMi0xNjAuNDQ4IDE2MC4zODR6IG01Ni4wNjQtMTU3Ljg4OGwtNTMuNTA0IDUzLjUwNCAxNTcuODI0IDE1Ny44MjQgNTMuNTA0LTUzLjQ0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ5IiB1bmljb2RlPSImIzU5MDI0OyIgZD0iTTk1MS4wNCA0MDAuNDQ4TDE1Mi4wNjQgODMwLjIwOGMtMTEuNTIgNS43Ni0yNS42LTMuMzI4LTIzLjkzNi0xNS44MDhsNjEuOTUyLTc0Mi4zMzZjMC44MzItMTEuNjQ4IDEyLjQxNi0xOC4zMDQgMjMuMTY4LTE0LjA4bDI1Ny43MjggMTA4LjggMTQxLjMxMi0xNjEuMjE2YzkuMDg4LTkuOTg0IDI0Ljc2OC01Ljc2IDI4LjA5NiA2LjY1Nmw2Ny43MTIgMjU1LjIzMiAyNDIuOTQ0IDEwMy4wNGExNi45NiAxNi45NiAwIDAgMSAwIDI5Ljk1MnogbS0zMzguNzUyLTMxNy41NjhsLTc0LjM2OCAxMzIuOTkyLTM4MC4wMzIgNTkwLjIwOCA1MDMuOTM2LTUyMy43MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTAiIHVuaWNvZGU9IiYjNTkwMjU7IiBkPSJNOTYwIDIxNnY4MGwtMzY2LjU5MiAyNDBWODE2UzU5My40MDggODk2IDUxMiA4OTZDNDMwLjUyOCA4OTYgNDMwLjUyOCA4MTYgNDMwLjUyOCA4MTZ2LTI4MEw2NCAyOTZ2LTgwbDM2Ni41MjggMTIwLjA2NHYtMjI0LjA2NGwtMTIyLjE3Ni05NlYtNjRMNTEyIDE2IDcxNS42NDgtNjR2ODBsLTEyMi4yNCA5NnYyMjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTEiIHVuaWNvZGU9IiYjNTkwMjY7IiBkPSJNOTgwLjczNiA1MjQuMDk2di0xNzEuNzEybDM1LjY0OC0zNi4wOTYtNzQuMzY4LTc4LjQ2NC03NS4yNjQgNzYuMTYgNTEuNTg0IDQ3LjQ4OFY0OTYuOTZDNjk5LjUyIDQwNS41NjggNjI5LjUwNCAzNzcuMTUyIDU4MC45OTIgMzU1LjAwOHMtODMuNDU2LTIyLjA4LTEzMS41ODQtMy43MTJDNDAxLjM0NCAzNjkuNjY0IDE3Mi4yODggNDU0LjQgNTguNTYgNTA5LjU2OGMtNzUuODQgMzYuOC04MC43NjggNjAuMTYgMS4yOCA5MS4zMjggMTA3LjEzNiA0MS4yOCAyODQuMTYgMTA3LjI2NCAzNzguMDQ4IDE0My4zNiA1NS41NTIgMjIuNzg0IDg0LjkyOCAzNS4yIDEzNS44NzIgOS4yMTYgOTEuMDcyLTM4LjA4IDI5OS4xMzYtMTE3LjE4NCA0MDIuNTYtMTYwLjUxMiA5MC4wNDgtMzkuODA4IDI5LjUwNC01Mi45MjggNC40MTYtNjguODY0ek01OTEuNTUyIDI4Ny4wNGM1Mi44NjQgMjIuMTQ0IDEyNC4xNiA1OC42ODggMjAxLjkyIDkyLjQ4di0yNzEuMTA0UzY5Mi45MjggMCA1MTYuMTYgMGMtMTkwLjQgMC0yOTMuMjQ4IDEwOC40MTYtMjkzLjI0OCAxMDguNDE2VjM2MS40NzJjNTkuOTY4LTI0LjgzMiAxMjcuMzYtNDYuMDggMjA4Ljk2LTc0LjQzMiA1MC4yNC0xOC4xMTIgMTE0LjA0OC0yNC4zODQgMTU5LjY4IDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTIiIHVuaWNvZGU9IiYjNTkwMjc7IiBkPSJNNzc3LjM0NCA2NTAuNDk2SDg3Ni44YzQ0Ljg2NC0wLjA2NCA4MS4yOC0zNS4wMDggODEuNTM2LTc4LjIwOEw5NjAgMTQyLjAxNmMwLjEyOC0yMC43MzYtOC4zODQtNDAuNjQtMjMuNjgtNTUuMjk2cy0zNS44NC0yMi44NDgtNTcuNDA4LTIyLjcybC03MzEuNjQ4IDEuNjY0Yy00NC45OTIgMC4xMjgtODEuNDA4IDM1LjItODEuNjY0IDc4LjRMNjQgNTcyLjIyNGMtMC4xMjggMjAuNzM2IDguMzg0IDQwLjY0IDIzLjYxNiA1NS4zNnMzNS44NCAyMi45MTIgNTcuMzQ0IDIyLjkxMmgxMjQuMjg4YTM2LjU0NCAzNi41NDQgMCAwIDEgMjkuNjMyIDE3LjZsMzMuMjggNjMuNjE2YzkuOTIgMTkuMiAzNi4yODggMzQuOTQ0IDU4LjY4OCAzNS4wNzJMNjU0LjcyIDc2OGMyMi41MjggMC4xMjggNDguNzY4LTE1LjQ4OCA1OC44OC0zNC44MTZsMzQuMjQtNjUuMzQ0YzUuMDU2LTkuNiAxOC4yNC0xNy4zNDQgMjkuNDQtMTcuMzQ0eiBtLTI2Ni40MzItMzguODQ4Yy0xMzQuNzg0IDAtMjQzLjkwNC0xMDUuMDg4LTI0My45MDQtMjM0Ljc1MiAwLTEyOS43MjggMTA5LjEyLTIzNC44OCAyNDMuODQtMjM0Ljg4IDEzNC43ODQgMCAyNDMuOTY4IDEwNS4xNTIgMjQzLjk2OCAyMzQuODggMCAxMjkuNjY0LTEwOS4xODQgMjM0Ljc1Mi0yNDMuOTA0IDIzNC43NTJ6IG0tNS4xMi0zODEuNTA0YzgxLjQwOCAwIDE0Ny4zOTIgNjMuNDg4IDE0Ny4zOTIgMTQxLjgyNGExOS45NjggMTkuOTY4IDAgMCAxLTIwLjM1MiAxOS41ODQgMTkuOTY4IDE5Ljk2OCAwIDAgMS0yMC4yODgtMTkuNTg0YzAtNTYuNzA0LTQ3LjgwOC0xMDIuNzItMTA2Ljc1Mi0xMDIuNzJhMTkuOTY4IDE5Ljk2OCAwIDAgMS0yMC4yODgtMTkuNTg0YzAtMTAuODE2IDkuMDg4LTE5LjUyIDIwLjI4OC0xOS41MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01MyIgdW5pY29kZT0iJiM1OTAyODsiIGQ9Ik01MTIgNzY4YTM4NCAzODQgMCAxIDEgMC03NjhBMzg0IDM4NCAwIDAgMSA1MTIgNzY4eiBtMC02ODIuNjg4YTI5OC42ODggMjk4LjY4OCAwIDEgMCAwIDU5Ny4zNzYgMjk4LjY4OCAyOTguNjg4IDAgMCAwIDAtNTk3LjM3NnogbTAgNDY5LjMxMmExNzAuNjg4IDE3MC42ODggMCAxIDAgMC0zNDEuMzEyIDE3MC42ODggMTcwLjY4OCAwIDAgMCAwIDM0MS4zMTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTQiIHVuaWNvZGU9IiYjNTkwMjk7IiBkPSJNNTE3LjQ0IDY5OS4wNzJjLTg0LjA5NiAwLTE0OS41NjgtOTUuMTA0LTE3NS4xMDQtMTI1LjQ0YTMzLjc5MiAzMy43OTIgMCAwIDEtNy41NTItMjIuMDh2LTMwMy4yMzJhMzAuMzM2IDMwLjMzNiAwIDAgMSA0OS42LTI0LjgzMiAyMDYuNzIgMjA2LjcyIDAgMCAwIDEzMy4wNTYgODAuNjRjOTcuMTUyIDAgMTM0LjQtODcuNDg4IDIzNS43MTItODcuNDg4YTM2My45NjggMzYzLjk2OCAwIDAgMSAxODguMTYgNzUuMDcyYzguNzY4IDYuNDY0IDEzLjg4OCAxNi43MDQgMTMuNzYgMjcuNTg0VjY2OC4xNmEzMC4zMzYgMzAuMzM2IDAgMCAxLTQyLjc1MiAzMC45NzYgMzk2LjM1MiAzOTYuMzUyIDAgMCAwLTE1OS4xNjgtNzMuMDI0Yy0xMDEuMzEyLTEuNDA4LTEzNC40IDczLjAyNC0yMzUuNzEyIDczLjAyNHogbS0yODYuMDgtNjguOTI4YTY4LjkyOCA2OC45MjggMCAxIDAgMCAxMzcuODU2IDY4LjkyOCA2OC45MjggMCAwIDAgMC0xMzcuODU2eiBtMzQuNDk2LTY4LjkyOFYtOTIuMTZhMzQuNDk2IDM0LjQ5NiAwIDAgMC02OC45MjggMFY1NjEuMjhhMzQuNDk2IDM0LjQ5NiAwIDAgMCA2OC45MjggMHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01NSIgdW5pY29kZT0iJiM1OTAzMDsiIGQ9Ik00NzQuMjQxMDYyIDc2OC42Nzg3ODFoLTEzNC4zOTYyMmEzMS43NDMxMDcgMzEuNzQzMTA3IDAgMCAwLTIxLjQzOTM5NyA2LjQ2MzgxOCAzNC4yMzkwMzcgMzQuMjM5MDM3IDAgMCAwLTEwLjQzMTcwNyAxNi40NDc1MzhjLTEuOTgzOTQ0IDYuNTkxODE1LTMuMDA3OTE1IDE0LjA3OTYwNC0zLjAwNzkxNSAyMi4zOTkzN3MwLjYzOTk4MiAxNi4wNjM1NDggMi4wNDc5NDIgMjMuMzU5MzQzYzAuNjM5OTgyIDcuMjk1Nzk1IDEuOTE5OTQ2IDE1LjI5NTU3IDMuOTY3ODg5IDIzLjg3MTMyOEE3My41OTc5MyA3My41OTc5MyAwIDAgMCAzMTkuMzY1NDE4IDg4My4xNzE1NjFhMjYuNTU5MjUzIDI2LjU1OTI1MyAwIDAgMCAxNC4zOTk1OTUgMTEuOTY3NjYzYzYuMDE1ODMxIDEuOTgzOTQ0IDEzLjMxMTYyNiAwLjMxOTk5MSAyMS45NTEzODItNC45OTE4NTkgOS45MTk3MjEtNS45NTE4MzMgMjEuMTgzNDA0LTEyLjQxNTY1MSAzMy43OTEwNS0xOS4zOTE0NTUgMTIuNjA3NjQ1LTYuOTc1ODA0IDI0Ljg5NTMtMTMuOTUxNjA4IDM2Ljg2Mjk2My0yMC45Mjc0MTEgMTEuOTAzNjY1LTYuOTExODA2IDIzLjAzOTM1Mi0xMy4yNDc2MjcgMzMuMjc5MDY0LTE4Ljg3OTQ2OSAxMC4zMDM3MS01LjYzMTg0MiAxOC4xMTE0OTEtMTAuMTExNzE2IDIzLjQyMzM0Mi0xMy40Mzk2MjIgNi42NTU4MTMtNC42NzE4NjkgMTEuNTgzNjc0LTkuNzkxNzI1IDE0LjkxMTU4LTE1LjQyMzU2N3M0LjY3MTg2OS0xMC45NDM2OTIgMy45Njc4ODktMTUuOTM1NTUxLTMuMjYzOTA4LTkuMDg3NzQ0LTcuOTM1Nzc3LTEyLjQxNTY1MWEzMy45MTkwNDYgMzMuOTE5MDQ2IDAgMCAwLTE5LjgzOTQ0Mi00Ljk5MTg2eiBtNzcuNTY1ODE4IDEuMDIzOTcxaDEzMy4zNzIyNDlhMzEuNzQzMTA3IDMxLjc0MzEwNyAwIDAgMSAyMS4zNzUzOTkgNi4zOTk4MiAzNC4yMzkwMzcgMzQuMjM5MDM3IDAgMCAxIDEwLjQzMTcwNyAxNi40NDc1MzhjMi4wNDc5NDIgNi42NTU4MTMgMy4wMDc5MTUgMTQuMDc5NjA0IDMuMDA3OTE1IDIyLjM5OTM3cy0wLjMxOTk5MSAxNi4xMjc1NDYtMC45NTk5NzMgMjMuNDIzMzQxYTEzNjEuODgxNjk3IDEzNjEuODgxNjk3IDAgMCAxLTQuNDc5ODc0IDIzLjM1OTM0M0E2NS4yNzgxNjQgNjUuMjc4MTY0IDAgMCAxIDcwNi41NTQ1MjggODgzLjE3MTU2MWEyNi41NTkyNTMgMjYuNTU5MjUzIDAgMCAxLTE0LjM5OTU5NSAxMS45Njc2NjNjLTYuMDE1ODMxIDEuOTgzOTQ0LTEzLjMxMTYyNiAwLjYzOTk4Mi0yMS44ODczODQtMy45Njc4ODgtOS45ODM3MTktNi4wMTU4MzEtMjEuMjQ3NDAyLTEyLjQ3OTY0OS0zMy45MTkwNDYtMTkuMzkxNDU1cy0yNC45NTkyOTgtMTMuOTUxNjA4LTM3LjI0Njk1My0yMC45Mjc0MTFjLTEyLjI4NzY1NC02Ljk3NTgwNC0yMy41NTEzMzgtMTMuMjQ3NjI3LTMzLjg1NTA0OC0xOC44Nzk0NjktMTAuMjM5NzEyLTUuNjk1ODQtMTcuNzI3NTAxLTEwLjE3NTcxNC0yMi4zOTkzNy0xMy40Mzk2MjItNy4yOTU3OTUtNC42NzE4NjktMTIuNjA3NjQ1LTkuNzkxNzI1LTE1LjkzNTU1MS0xNS40MjM1NjZzLTQuNjA3ODctMTAuOTQzNjkyLTMuOTY3ODg5LTE1Ljk5OTU1IDMuMzI3OTA2LTkuMDg3NzQ0IDcuOTM1Nzc3LTEyLjQxNTY1MSAxMS42NDc2NzItNC45Mjc4NjEgMjAuOTI3NDExLTQuOTI3ODYyek00NjAuMjg5NDU0IDcwMy45NzY2MDFoLTI4OC42MzE4ODJjLTIxLjI0NzQwMiAwLTM1LjAwNzAxNS0zLjQ1NTkwMy00MS4zNDI4MzctMTAuNDMxNzA3LTYuMjcxODI0LTYuOTc1ODA0LTkuNDA3NzM1LTE4LjA0NzQ5Mi05LjQwNzczNi0zMy4yNzkwNjR2LTg3LjY3NzUzNGMwLTE2LjU3NTUzNCAzLjQ1NTkwMy0yOC43OTkxOSAxMC40MzE3MDctMzYuNzk4OTY1IDYuOTc1ODA0LTcuOTM1Nzc3IDIwLjczNTQxNy0xMS45MDM2NjUgNDEuMjc4ODM5LTExLjkwMzY2NWgyODcuNjA3OTExeiBtMTA4LjQxMjk1MSAwaDI4NC42NjM5OTRjMjEuMjQ3NDAyIDAgMzUuNjQ2OTk3LTQuMTU5ODgzIDQzLjI2Mjc4My0xMi40MTU2NTEgNy42Nzk3ODQtOC4zMTk3NjYgMTEuNTE5Njc2LTIwLjA5NTQzNSAxMS41MTk2NzYtMzUuMzI3MDA3di04NS41NjU1OTNjMC0xNS45OTk1NS0zLjUxOTkwMS0yNy43MTEyMjEtMTAuNDk1NzA0LTM1LjM5MTAwNS02Ljk3NTgwNC03LjYxNTc4Ni0yMC43MzU0MTctMTEuMzkxNjgtNDEuMjc4ODQtMTEuMzkxNjc5SDU2OC43MDI0MDV6TTQ2MC4yMjU0NTYgNDcxLjA4NzE1MUgxNTQuNjk4MDQ5di0zNzYuMTgxNDJjMC0zMy43OTEwNSA5LjU5OTczLTYwLjAzMDMxMiAyOC44NjMxODgtNzguNTg5NzkgMTkuMjYzNDU4LTE4LjU1OTQ3OCA0OS4wODY2MTktMjcuOTAzMjE1IDg5LjU5NzQ4LTI3LjkwMzIxNUg0NjAuMTYxNDU4eiBtMTA4LjQ3Njk0OSAwaDMwNC41Njc0MzR2LTM3My4xNzM1MDVjLTAuNjM5OTgyLTMzLjg1NTA0OC0xMC4yMzk3MTItNjAuNTQyMjk3LTI4Ljg2MzE4OC04MC4xMjU3NDYtMTguNTU5NDc4LTE5LjU4MzQ0OS00OC4xMjY2NDYtMjkuMzc1MTc0LTg4LjU3MzUwOS0yOS4zNzUxNzRINTY4LjcwMjQwNXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01NiIgdW5pY29kZT0iJiM1OTAzMTsiIGQ9Ik05MTUuMiA3NjUuMzEyYTI5LjQ0IDI5LjQ0IDAgMCAxLTIxLjg4OCAyMS45NTJBNDkzLjE4NCA0OTMuMTg0IDAgMCAxIDM4NC43MDQgNTk5LjA0YTI5Ljc2IDI5Ljc2IDAgMCAwLTE2Ljk2LTExLjMyOCAzODUuNiAzODUuNiAwIDAgMS0xNzkuOTY4LTEwMi4yNzIgMzk0LjA0OCAzOTQuMDQ4IDAgMCAxLTYwLjQxNi03Ny42OTZjLTE0LjI3Mi0yNC4wNjQgMTAuMTEyLTUyLjQ4IDM2LjM1Mi00Mi43NTJhMzgxLjUwNCAzODEuNTA0IDAgMCAwIDEzMi4xNiAyMi44NDhjLTAuNjQtMy45MDQtMS41MzYtNy44MDgtMi4xMTItMTEuNzEyQTE5ODcuMzI4IDE5ODcuMzI4IDAgMCAxIDM5NC44OCAyNjYuODhhMTk4MS45NTIgMTk4MS45NTIgMCAwIDEgMTA5LjI0OC0xMDEuMTJjMy44NCAwLjUxMiA3LjgwOCAxLjQwOCAxMS43MTIgMi4wNDggMC00Ni4wOC03LjU1Mi05MC43NTItMjIuODQ4LTEzMi4xNi05LjY2NC0yNi4yNCAxOC42ODgtNTAuNjI0IDQyLjc1Mi0zNi4zNTIgMjguMjg4IDE2Ljc2OCA1NC40IDM3LjEyIDc3LjY5NiA2MC40MTZhMzg1LjY2NCAzODUuNjY0IDAgMCAxIDEwMi4yNzIgMTc5Ljk2OCAyOS44MjQgMjkuODI0IDAgMCAwIDExLjI2NCAxNi45NiA0OTMuMjQ4IDQ5My4yNDggMCAwIDEgMTg4LjI4OCA1MDguNjA4eiBtLTIwMC45Ni0zMjAuMTI4YTk5Ljc3NiA5OS43NzYgMCAxIDAtMTQxLjA1NiAxNDEuMTIgOTkuNzc2IDk5Ljc3NiAwIDAgMCAxNDEuMTItMTQxLjEyek0yMjQuNTc2IDIyOC42NzJjLTMwLjI3Mi0zMC4yMDgtMTU4LjQ2NC0yMTcuNi0xMjEuOTg0LTI1NC4wOCAzNi40OC0zNi40OCAyMjMuODcyIDkxLjcxMiAyNTQuMDggMTIxLjkyIDMwLjI3MiAzMC4yNzIgMjUuMjE2IDg0LjM1Mi0xMS4zMjggMTIwLjgzMi0zNi40OCAzNi40OC05MC41NiA0MS42LTEyMC43NjggMTEuMzI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU3IiB1bmljb2RlPSImIzU5MDMyOyIgZD0iTTMwNS4yOCA4MzJDMjI0LjY0IDgzMiAxMjggNzg3LjU4NCAxMjggNjY3Ljk2OFYxMTUuMnMwLTU5LjcxMiA1OS4wNzItNTkuNzEydi01OS43NzZzMC01OS43MTIgNTkuMDcyLTU5LjcxMiA1OS4wNzIgNTkuNzEyIDU5LjA3MiA1OS43MTJ2NTkuNzc2aDQxMy41Njh2LTU5Ljc3NnMwLTU5LjcxMiA1OS4wNzItNTkuNzEyIDU5LjA3MiA1OS43MTIgNTkuMDcyIDU5LjcxMnY1OS43NzZzNTkuMDcyIDAgNTkuMDcyIDU5LjcxMlY2NjcuOTY4Qzg5NiA3OTAuMjA4IDgyMy4wNCA4MzIgNzQyLjQgODMyek0zMjAgNzQyLjRoMzg0YzguMTkyIDAgMTQuNzItNi42NTYgMTQuNzItMTQuOTEyIDAtOC4zMi02LjUyOC0xNC45NzYtMTQuNzItMTQuOTc2SDMyMGExNC44NDggMTQuODQ4IDAgMCAwLTE0LjcyIDE0Ljk3NmMwIDguMjU2IDYuNTI4IDE0LjkxMiAxNC43MiAxNC45MTJ6TTI0Ni4xNDQgNjUyLjhoNTMxLjcxMmM1OS4wNzIgMCA1OS4wNzItNTcuNzI4IDU5LjA3Mi01Ny43Mjh2LTE4MS4xODRzMC01OS43NzYtNTkuMDcyLTU5Ljc3NkgyNDYuMTQ0Yy01OS4wNzIgMC01OS4wNzIgNTkuNzc2LTU5LjA3MiA1OS43NzZ2MTc5LjJzMCA1OS43MTIgNTkuMDcyIDU5LjcxMnogbTAtNDE4LjExMmMzMi42NCAwIDU5LjA3Mi0yNi43NTIgNTkuMDcyLTU5Ljc3NnMtMjYuNDMyLTU5LjcxMi01OS4wNzItNTkuNzEyLTU5LjA3MiAyNi43NTItNTkuMDcyIDU5LjcxMiAyNi40MzIgNTkuNzc2IDU5LjA3MiA1OS43NzZ6IG01MzEuNzEyIDBjMzIuNjQgMCA1OS4wNzItMjYuNzUyIDU5LjA3Mi01OS43NzZzLTI2LjQzMi01OS43MTItNTkuMDcyLTU5LjcxMi01OS4wNzIgMjYuNzUyLTU5LjA3MiA1OS43MTIgMjYuNDMyIDU5Ljc3NiA1OS4wNzIgNTkuNzc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU4IiB1bmljb2RlPSImIzU5MDMzOyIgZD0iTTk2MCA0MTguODhhMTA0LjQ0OCAxMDQuNDQ4IDAgMCAxLTc5LjIzMiAxMDEuMjQ4bC05NS44MDggMjI2LjI0QTM0LjQzMiAzNC40MzIgMCAwIDEgNzUzLjIxNiA3NjhIMjcwLjc4NGEzNC40MzIgMzQuNDMyIDAgMCAxLTMwLjMzNi0xOS41MkwxNDMuMjMyIDUyMC44MzJBMTA0LjQ0OCAxMDQuNDQ4IDAgMCAxIDY0IDQxOC44OHYtMjQ0LjM1Mmg2OC45Mjh2LTY5Ljc2YzAtMzguNTkyIDMwLjg0OC02OS44ODggNjguOTI4LTY5Ljg4OHM2OC45MjggMzEuMjk2IDY4LjkyOCA2OS44MjR2NjkuODI0aDQ4Mi40MzJ2LTY5Ljc2YzAtMzguNTkyIDMwLjg0OC02OS44ODggNjguOTI4LTY5Ljg4OHM2OC45MjggMzEuMjk2IDY4LjkyOCA2OS44MjR2NjkuODI0SDk2MHpNMjkxLjQ1NiA2OTguMjRoNDQxLjA4OGw3Mi4zMi0xNzQuNTI4SDIxOS4xMzZ6IG0tODkuNi00MTguODhhNjkuMzc2IDY5LjM3NiAwIDAgMC02OC45MjggNjkuNzZjMCAzOC41OTIgMzAuODQ4IDY5LjgyNCA2OC45MjggNjkuODI0czY4LjkyOC0zMS4yMzIgNjguOTI4LTY5Ljc2YzAtMzguNTkyLTMwLjg0OC02OS44MjQtNjguOTI4LTY5LjgyNHogbTYyMC4yODggMGE2OS4zNzYgNjkuMzc2IDAgMCAwLTY4LjkyOCA2OS43NmMwIDM4LjU5MiAzMC44NDggNjkuODI0IDY4LjkyOCA2OS44MjRzNjguOTI4LTMxLjIzMiA2OC45MjgtNjkuNzZjMC0zOC41OTItMzAuODQ4LTY5LjgyNC02OC45MjgtNjkuODI0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU5IiB1bmljb2RlPSImIzU5MDM0OyIgZD0iTTI1NiA4MzJhNjQgNjQgMCAwIDEtNjQtNjR2LTUxMmE2NCA2NCAwIDAgMSA2NC02NGg1NzZhNjQgNjQgMCAwIDEgNjQgNjRWNzY4YTY0IDY0IDAgMCAxLTY0IDY0eiBtMTc2LTMyaDIyNC42NGExNiAxNiAwIDEgMCAwLTMySDQzMmExNiAxNiAwIDEgMCAwIDMyek0yODggNzA0SDUxMnYtMjU2SDI4OGEzMiAzMiAwIDAgMC0zMiAzMnYxOTJhMzIgMzIgMCAwIDAgMzIgMzJ6TTU3NiA3MDRoMjI0YTMyIDMyIDAgMCAwIDMyLTMydi0xOTJhMzIgMzIgMCAwIDAtMzItMzJINTc2ek0zODQgMzg0YTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMCAwIDAgMTI4eiBtMzIwIDBhNjQgNjQgMCAxIDAgMC0xMjggNjQgNjQgMCAwIDAgMCAxMjh6IG0yOC40OC0yNTUuNjE2YTMyLjI1NiAzMi4yNTYgMCAwIDEtMjcuMi00My4yNjRsMTAuODgtMjEuMTJIMzcxLjg0bDguMzIgMTcuMjhhMzIgMzIgMCAwIDEtNTguMjQgMjYuMjRsLTY0LTEyOGEzMS4xNjggMzEuMTY4IDAgMCAxLTEuOTItMTEuNTIgMzIgMzIgMCAwIDEgMzItMzIgMzEuMzYgMzEuMzYgMCAwIDEgMjcuNTIgMTYuNjR2My4ySDMyMGwxOS44NCA0NC4xNmg0MDguMzJsMTkuODQtNDQuMTZ2LTMuMmEzMS4zNiAzMS4zNiAwIDAgMSAyNy41Mi0xNi42NCAzMiAzMiAwIDAgMSAzMiAzMiAzMS4zNiAzMS4zNiAwIDAgMSAwIDE1LjM2bC02NCAxMjhhMzIgMzIgMCAwIDEtMzEuMDQgMTcuMDI0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Ik92YWwiIHVuaWNvZGU9IiYjNTkwMzU7IiBkPSJNNTEyIDM4NG0tMzIwIDBhMzIwIDMyMCAwIDEgMSA2NDAgMCAzMjAgMzIwIDAgMSAxLTY0MCAwWiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9IlJlY3RhbmdsZSIgdW5pY29kZT0iJiM1OTAzNjsiIGQ9Ik0xOTIgNzA0aDY0MHYtNjQwSDE5MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTdGFyIiB1bmljb2RlPSImIzU5MDM3OyIgZD0iTTUxMiAxNjBsLTI2My4yOTYtMTM4LjQzMiA1MC4yNCAyOTMuMTg0LTIxMi45OTIgMjA3LjY4IDI5NC40IDQyLjgxNkw1MTIgODMybDEzMS42NDgtMjY2Ljc1MiAyOTQuNC00Mi44MTYtMjEyLjk5Mi0yMDcuNjggNTAuMjQtMjkzLjE4NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJUcmlhbmdsZSIgdW5pY29kZT0iJiM1OTAzODsiIGQ9Ik01MTIgNzA0bDM4NC02NDBIMTI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InJlc3RvcmVkZWZhdWx0IiB1bmljb2RlPSImIzU5MDQwOyIgZD0iTTg4MC44Njc1NTYgMzI1LjQwNDQ0NGEzNzIuNTA4NDQ0IDM3Mi41MDg0NDQgMCAwIDAtMTk4LjcxMjg4OS0xOTYuNzc4NjY2Yy00Ni4wOC0xOS4zNDIyMjItOTQuNzItMjkuMDcwMjIyLTE0NS40NjQ4ODktMjkuMDcwMjIydjcxLjczNjg4OGMxNjUuNzE3MzMzIDAgMzAwLjk0MjIyMiAxMzMuNjg4ODg5IDMwMC45NDIyMjIgMjk4LjA0MDg4OXMtMTM0LjgyNjY2NyAyOTguMDQwODg5LTMwMC43MTQ2NjcgMjk4LjA0MDg4OWMtMTY1Ljg4OCAwLTMwMC44ODUzMzMtMTMzLjY4ODg4OS0zMDAuODg1MzMzLTI5OC4wNDA4ODkgMC0zMS40MDI2NjcgNC44MzU1NTYtNjIuMDA4ODg5IDE0LjM5Mjg4OS05MS4yNDk3NzdsNjguMjY2NjY3IDM3LjQzMjg4OC0yLjEwNDg4OS0xMTUuOTk2NDQ0LTIuMTA0ODg5LTExNS45OTY0NDQtMTAwLjM1MiA1OS43OTAyMjJMMTEzLjc3Nzc3OCAzMDMuMjE3Nzc4bDcyLjI0ODg4OSAzOS41OTQ2NjZBMzY0LjIwMjY2NyAzNjQuMjAyNjY3IDAgMCAwIDE2My42NjkzMzMgNDY5LjMzMzMzM2MwIDQ5Ljg5MTU1NiA5Ljg5ODY2NyA5OC4zNjA4ODkgMjkuMzU0NjY3IDE0My45Mjg4ODlBMzcyLjIyNCAzNzIuMjI0IDAgMCAwIDM5MS42MjMxMTEgODEwLjA5Nzc3OCAzNzQuMTAxMzMzIDM3NC4xMDEzMzMgMCAwIDAgNTM2LjkxNzMzMyA4MzkuMTExMTExYTM3NC4wNDQ0NDQgMzc0LjA0NDQ0NCAwIDAgMCAyNjMuOTY0NDQ1LTEwOC4zMTY0NDQgMzY4LjI5ODY2NyAzNjguMjk4NjY3IDAgMCAwIDc5Ljk4NTc3OC0xMTcuNTMyNDQ1YzE5LjUxMjg4OS00NS41NjggMjkuMzU0NjY3LTk0LjAzNzMzMyAyOS4zNTQ2NjYtMTQzLjkyODg4OXMtOS44OTg2NjctOTguMzYwODg5LTI5LjM1NDY2Ni0xNDMuOTI4ODg5ek05Ni43MTExMTEtMjUuNmg4MzAuNTc3Nzc4YTM5LjgyMjIyMiAzOS44MjIyMjIgMCAwIDAgMzkuODIyMjIyLTM5LjgyMjIyMnYtNS42ODg4ODlhMzkuODIyMjIyIDM5LjgyMjIyMiAwIDAgMC0zOS44MjIyMjItMzkuODIyMjIySDk2LjcxMTExMUEzOS44MjIyMjIgMzkuODIyMjIyIDAgMCAwIDU2Ljg4ODg4OS03MS4xMTExMTF2NS42ODg4ODlhMzkuODIyMjIyIDM5LjgyMjIyMiAwIDAgMCAzOS44MjIyMjIgMzkuODIyMjIyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InVwbG9hZGluZyIgdW5pY29kZT0iJiM1OTA0MTsiIGQ9Ik03ODQgMTE1LjJhNDguNDQ4IDQ4LjQ0OCAwIDAgMC00OCA0OC44OTZjMCAyNi45NDQgMjEuNTA0IDQ4LjgzMiA0OCA0OC44MzIgNzkuNTUyIDAgMTQ0IDY1LjY2NCAxNDQgMTQ2LjYyNGExNDcuMjY0IDE0Ny4yNjQgMCAwIDEtNTguMTc2IDExNy41MDRsLTAuNjQgMC41MTJhMTQ4LjY3MiAxNDguNjcyIDAgMCAxLTkuNiA2LjU5MmwtMS40NzIgMC45NmExNDYuODE2IDE0Ni44MTYgMCAwIDEtOS40NzIgNS4zMTJsLTIuNjg4IDEuMjhhMTUwLjcyIDE1MC43MiAwIDAgMS04Ljk2IDQuMDk2bC00LjAzMiAxLjQ3MmExNDcuMDA4IDE0Ny4wMDggMCAwIDEtOC4zMiAyLjg4Yy0xLjg1NiAwLjU3Ni0zLjcxMiAwLjk2LTUuNjMyIDEuNDcyLTIuNDMyIDAuNjQtNC44NjQgMS4yOC03LjI5NiAxLjc5Mi0yLjU2IDAuNTEyLTUuMjQ4IDAuODMyLTcuOTM2IDEuMjE2LTEuOTIgMC4yNTYtMy43NzYgMC42NC01LjY5NiAwLjgzMmExNDQuNTEyIDE0NC41MTIgMCAwIDEtMTQuMDggMC43MDRjLTEuNDcyIDAtMi45NDQtMC4xOTItNC40OC0wLjE5MmEyNzEuOTM2IDI3MS45MzYgMCAwIDEtNS40NCAyNC41NzZjLTAuNTEyIDEuOTg0LTEuMjggMy44NC0xLjg1NiA1LjgyNGEyNzQuMDQ4IDI3NC4wNDggMCAwIDEtNS43NiAxOC4xMTJjLTAuNjQgMS43OTItMS41MzYgMy41Mi0yLjE3NiA1LjMxMmEyOTQuNTI4IDI5NC41MjggMCAwIDEtNy42MTYgMTcuNzkyYy0wLjY0IDEuNDA4LTEuNDA4IDIuNzUyLTIuMTEyIDQuMDk2YTI4NC4yMjQgMjg0LjIyNCAwIDAgMS05LjYgMTcuOTJDNjk3LjUzNiA2ODAuMjU2IDYxMS4xMzYgNzM0LjI3MiA1MTIgNzM0LjI3MnMtMTg1LjQ3Mi01NC4wOC0yMzIuOTYtMTM0LjY1NmMtMy40NTYtNS44MjQtNi41OTItMTEuODQtOS42LTE3LjkyLTAuNjQtMS4zNDQtMS40NzItMi42ODgtMi4xMTItNC4wOTYtMi43NTItNS43Ni01LjI0OC0xMS43NzYtNy42MTYtMTcuNzkyLTAuNjQtMS43OTItMS40NzItMy41Mi0yLjExMi01LjMxMmEyNzQuMDQ4IDI3NC4wNDggMCAwIDEtNS44MjQtMTguMTEybC0xLjg1Ni01Ljc2YTI3MS40MjQgMjcxLjQyNCAwIDAgMS01LjQ0LTI0LjY0Yy0xLjUzNiAwLTMuMDA4IDAuMTkyLTQuNDggMC4xOTItNC44IDAtOS40NzItMC4yNTYtMTQuMDgtMC43MDQtMS45Mi0wLjE5Mi0zLjg0LTAuNTc2LTUuNzYtMC44MzItMi41Ni0wLjM4NC01LjI0OC0wLjcwNC03Ljg3Mi0xLjI4LTIuNDk2LTAuNDQ4LTQuODY0LTEuMDg4LTcuMjk2LTEuNzI4LTEuOTItMC41MTItMy44NC0wLjg5Ni01LjY5Ni0xLjQ3MmExNDcuMzkyIDE0Ny4zOTIgMCAwIDEtOC4zMi0yLjg4bC0zLjk2OC0xLjQ3MmMtMy4wNzItMS4yOC02LjA4LTIuNTYtOC45Ni00LjAzMmwtMi42ODgtMS4yOGMtMy4yLTEuNjY0LTYuNC0zLjQ1Ni05LjQwOC01LjM3NmwtMS41MzYtMC45NmExNTIuMDY0IDE1Mi4wNjQgMCAwIDEtOS42LTYuNTkybC0wLjY0LTAuNTEyQTE0Ny4zMjggMTQ3LjMyOCAwIDAgMSA5NiAzNTkuNTUyYzAtODAuOTYgNjQuNDQ4LTE0Ni41NiAxNDQtMTQ2LjU2IDI2LjQ5NiAwIDQ4LTIxLjk1MiA0OC00OC44OTZhNDguNDQ4IDQ4LjQ0OCAwIDAgMC00OC00OC44OTZDMTA3LjQ1NiAxMTUuMiAwIDIyNC42NCAwIDM1OS41NTJjMCAxMTAuMDggNzEuNTUyIDIwMy4xMzYgMTY5Ljg1NiAyMzMuNzI4QzIyMy4yMzIgNzMyLjggMzU1Ljk2OCA4MzIgNTEyIDgzMnMyODguNzY4LTk5LjIgMzQyLjIwOC0yMzguNzJDOTUyLjQ0OCA1NjIuNjg4IDEwMjQgNDY5LjYzMiAxMDI0IDM1OS41NTJjMC0xMzQuOTEyLTEwNy40NTYtMjQ0LjM1Mi0yNDAtMjQ0LjM1MnogbS00NTEuNjQ4IDExNC4xNzZ2MC4wNjRjMC4xMjggMCAwLjEyOCAwLjA2NCAwLjEyOCAwLjEyOEw0NzYuMzUyIDM5Mi4zMmwwLjEyOC0wLjEyOEE0Ny4zNiA0Ny4zNiAwIDAgMCA1MTIgNDA4LjQ0OGMxNC4xNDQgMCAyNi43NTItNi40IDM1LjU4NC0xNi4zMmwwLjA2NCAwLjEyOCAxNDMuODcyLTE2Mi42ODh2LTAuMDY0bDAuMTI4LTAuMTI4YzYuNzItNy42MTYgMTEuMTM2LTE3LjI4IDEyLjE2LTI4LjAzMnYtMC4xMjhhNDguNDQ4IDQ4LjQ0OCAwIDAgMC00Ny44MDgtNTMuNDRoLTEuNTM2bC0wLjk2IDAuMDY0LTEuMDI0IDAuMDY0LTEuNiAwLjE5MmgtMC41MTJsLTIuMTEyIDAuMzJhNDcuNjE2IDQ3LjYxNiAwIDAgMC0yNy45MDQgMTUuNTUybC02MC4zNTIgNjguMjI0di0yNDcuMjk2QTQ4LjQ0OCA0OC40NDggMCAwIDAgNTEyLTY0YTQ4LjQ0OCA0OC40NDggMCAwIDAtNDggNDguODk2djI0Ny4yOTZsLTYwLjM1Mi02OC4yMjRhNDcuNDI0IDQ3LjQyNCAwIDAgMC0yNy44NC0xNS40ODhjLTAuNzA0LTAuMTkyLTEuNDA4LTAuMjU2LTIuMTEyLTAuMzJhMTAuNjI0IDEwLjYyNCAwIDAgMC0wLjY0LTAuMDY0bC0xLjUzNi0wLjE5MkgzNzAuNTZsLTAuODk2LTAuMDY0SDM2OGE0Ny44NzIgNDcuODcyIDAgMCAwLTQyLjI0IDI1LjUzNiA0OS4yOCA0OS4yOCAwIDAgMCA2LjU5MiA1NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJlcnJvciIgdW5pY29kZT0iJiM1OTAzOTsiIGQ9Ik01MTItMTI4QTUxMiA1MTIgMCAxIDAgNTEyIDg5NmE1MTIgNTEyIDAgMCAwIDAtMTAyNHogbTAgMjI3LjU4NEE1Ni45MTczMzMgNTYuOTE3MzMzIDAgMSAxIDUxMiAyMTMuMzMzMzMzYTU2LjkxNzMzMyA1Ni45MTczMzMgMCAwIDEgMC0xMTMuNzQ5MzMzeiBtMCA1NjguODMyYTU2LjkxNzMzMyA1Ni45MTczMzMgMCAwIDEtNTYuOTE3MzMzLTU2LjgzMnYtMjg0LjUwMTMzM2E1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxIDExMy44MzQ2NjYgMFY2MTEuNTg0QTU2LjkxNzMzMyA1Ni45MTczMzMgMCAwIDEgNTEyIDY2OC40MTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iem9vbWluIiB1bmljb2RlPSImIzU5MDQyOyIgZD0iTTU4NS4xNDI4NTcgNDU3LjE0Mjg1N2gzNjUuNzE0Mjg2di0xNDYuMjg1NzE0SDU4NS4xNDI4NTd2LTM2NS43MTQyODZINDM4Ljg1NzE0M1YzMTAuODU3MTQzSDczLjE0Mjg1N1Y0NTcuMTQyODU3aDM2NS43MTQyODZWODIyLjg1NzE0M2gxNDYuMjg1NzE0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Inpvb21vdXQiIHVuaWNvZGU9IiYjNTkwNDM7IiBkPSJNNzMuMTQyODU3IDQ1Ny4xNDI4NTdoODc3LjcxNDI4NnYtMTQ2LjI4NTcxNEg3My4xNDI4NTd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZmlyc3QiIHVuaWNvZGU9IiYjNTkwNDQ7IiBkPSJNMjg0LjQ0NDQ0NCA2MTEuNTU1NTU2aDU2Ljg4ODg4OXYtNTEySDI4NC40NDQ0NDR6IG00MjYuNDk2LTUxMS4zMTczMzRhMjkuNDExNTU2IDI5LjQxMTU1NiAwIDAgMC0xOC4yMDQ0NDQgNi40Mjg0NDVMNDEwLjYyNCAzMzMuNDgyNjY3YTI5LjEyNzExMSAyOS4xMjcxMTEgMCAwIDAgMCA0NS4zNDA0NDRsMjgwLjgwMzU1NiAyMjUuNjc4MjIyYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDAgMzYuNDA4ODg4LTQ1LjM0MDQ0NGwtMjUyLjU4NjY2Ni0yMDIuOTc5NTU2IDI1My44MzgyMjItMjA0LjIzMTExMWEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwLTE4LjIwNDQ0NC01MS43MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibmV4dCIgdW5pY29kZT0iJiM1OTA0NTsiIGQ9Ik0zNzAuNDAzNTU2IDEwMC45MjA4ODg5OTk5OTk5OWEyOS40MTE1NTYgMjkuNDExNTU2IDAgMCAxIDE4LjIwNDQ0NCA2LjQyODQ0NGwyODIuMDU1MTExIDIyNi44MTZhMjkuMTI3MTExIDI5LjEyNzExMSAwIDAgMSAwIDQ1LjM0MDQ0NUwzODkuODU5NTU2IDYwNS4xMjcxMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMS0zNi40MDg4ODktNDUuMjgzNTU1bDI1Mi41ODY2NjYtMjAyLjk3OTU1Ni0yNTMuODM4MjIyLTIwNC4yMzExMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMSAxOC4yMDQ0NDUtNTEuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Imxhc3QiIHVuaWNvZGU9IiYjNTkwNDY7IiBkPSJNNzA5LjUxODIyMiA2MTEuNTU1NTU2YTI4LjQ0NDQ0NCAyOC40NDQ0NDQgMCAwIDAgMjguNDQ0NDQ1LTI4LjQ0NDQ0NXYtNDU1LjExMTExMWEyOC40NDQ0NDQgMjguNDQ0NDQ0IDAgMSAwLTU2Ljg4ODg4OSAwdjQ1NS4xMTExMTFhMjguNDQ0NDQ0IDI4LjQ0NDQ0NCAwIDAgMCAyOC40NDQ0NDQgMjguNDQ0NDQ1eiBtLTM5NS45NDY2NjYtNTExLjMxNzMzNGEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwLTE4LjIwNDQ0NSA1MS43MTJsMjUzLjgzODIyMiAyMDQuMjMxMTExLTI1Mi41ODY2NjYgMjAyLjk3OTU1NmEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwIDM2LjM1MiA0NS4zNDA0NDRsMjgwLjgwMzU1NS0yMjUuNjc4MjIyYTI5LjAxMzMzMyAyOS4wMTMzMzMgMCAwIDAgMC00NS4zNDA0NDRsLTI4MS45OTgyMjItMjI2LjgxNmEyOS40MTE1NTYgMjkuNDExNTU2IDAgMCAwLTE4LjIwNDQ0NC02LjQyODQ0NXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwcmV2IiB1bmljb2RlPSImIzU5MDQ3OyIgZD0iTTY1Mi40NTg2NjcgMTAwLjkyMDg4ODk5OTk5OTk5YTI5LjQxMTU1NiAyOS40MTE1NTYgMCAwIDAtMTguMjA0NDQ1IDYuNDI4NDQ0TDM1Mi4xNDIyMjIgMzM0LjE2NTMzMzAwMDAwMDAzYTI5LjEyNzExMSAyOS4xMjcxMTEgMCAwIDAgMCA0NS4zNDA0NDVsMjgwLjgwMzU1NiAyMjUuNjIxMzMzYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDAgMzYuNDA4ODg5LTQ1LjI4MzU1NWwtMjUyLjU4NjY2Ny0yMDIuOTc5NTU2IDI1My44MzgyMjItMjA0LjIzMTExMWEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwLTE4LjIwNDQ0NC01MS43MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icG9pLWxvYWQiIHVuaWNvZGU9IiYjNTkwNDg7IiBkPSJNMjEyLjMzMzcxNCA1NjYuODU3MTQzaDQzOC4zNDUxNDNjMjEuOTQyODU3IDAgMzYuNTcxNDI5IDE0LjYyODU3MSAzNi41NzE0MjkgMzYuNTcxNDI4cy0xNC42Mjg1NzEgMzYuNTcxNDI5LTM2LjU3MTQyOSAzNi41NzE0MjlIMjEyLjMzMzcxNGMtMjEuOTQyODU3IDAtMzYuNTcxNDI5LTE0LjYyODU3MS0zNi41NzE0MjgtMzYuNTcxNDI5czE0LjYyODU3MS0zNi41NzE0MjkgMzYuNTcxNDI4LTM2LjU3MTQyOHpNNjg3LjI1MDI4NiAzODRjMCAyMS45NDI4NTctMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjkgMzYuNTcxNDI5SDIxMi4zMzM3MTRjLTIxLjk0Mjg1NyAwLTM2LjU3MTQyOS0xNC42Mjg1NzEtMzYuNTcxNDI4LTM2LjU3MTQyOXMxNC42Mjg1NzEtMzYuNTcxNDI5IDM2LjU3MTQyOC0zNi41NzE0MjloNDM4LjM0NTE0M2MyMS45NDI4NTcgMCAzNi41NzE0MjkgMTQuNjI4NTcxIDM2LjU3MTQyOSAzNi41NzE0Mjl6TTIxMi4zMzM3MTQgMjAxLjE0Mjg1N2MtMjEuOTQyODU3IDAtMzYuNTcxNDI5LTE0LjYyODU3MS0zNi41NzE0MjgtMzYuNTcxNDI4czE0LjYyODU3MS0zNi41NzE0MjkgMzYuNTcxNDI4LTM2LjU3MTQyOWgyNTUuNzA3NDI5YzIxLjk0Mjg1NyAwIDM2LjU3MTQyOSAxNC42Mjg1NzEgMzYuNTcxNDI4IDM2LjU3MTQyOXMtMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjggMzYuNTcxNDI4ek0xMDA4LjY0IDE1Ny4yNTcxNDNjLTE0LjU1NTQyOSAxNC42Mjg1NzEtMzYuNDk4Mjg2IDE0LjYyODU3MS01MS4wNTM3MTQgMGwtODAuNDU3MTQzLTgwLjQ1NzE0M1Y3NDkuNzE0Mjg2YzAgODAuNDU3MTQzLTY1LjY4MjI4NiAxNDYuMjg1NzE0LTE0Ni4wNjYyODYgMTQ2LjI4NTcxNEgxNDYuNTc4Mjg2QzY2LjE5NDI4NiA4OTYgMC40Mzg4NTcgODMwLjE3MTQyOSAwLjQzODg1NyA3NDkuNzE0Mjg2di03MzEuNDI4NTcyYzAtODAuNDU3MTQzIDY1LjgyODU3MS0xNDYuMjg1NzE0IDE0Ni4xMzk0MjktMTQ2LjI4NTcxNGg1MDQuMTAwNTcxYzIxLjk0Mjg1NyAwIDM2LjU3MTQyOSAxNC42Mjg1NzEgMzYuNTcxNDI5IDM2LjU3MTQyOXMtMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjkgMzYuNTcxNDI4SDE0Ni41NzgyODZjLTQzLjg4NTcxNCAwLTczLjA2OTcxNCAzNi41NzE0MjktNzMuMDY5NzE1IDczLjE0Mjg1N1Y3NDkuNzE0Mjg2YzAgNDMuODg1NzE0IDM2LjU3MTQyOSA3My4xNDI4NTcgNzMuMDY5NzE1IDczLjE0Mjg1N2g1ODQuNDg0NTcxYzQzLjg4NTcxNCAwIDczLjA2OTcxNC0yOS4yNTcxNDMgNzMuMDY5NzE0LTczLjE0Mjg1N3YtNjgwLjIyODU3MmwtODAuMzg0IDgwLjQ1NzE0M2MtMTQuNjI4NTcxIDE0LjYyODU3MS0zNi41NzE0MjkgMTQuNjI4NTcxLTUxLjEyNjg1NyAwLTE0LjYyODU3MS0xNC42Mjg1NzEtMTQuNjI4NTcxLTM2LjU3MTQyOSAwLTUxLjJsMTQ2LjEzOTQyOS0xNDYuMjg1NzE0czcuMzE0Mjg2LTcuMzE0Mjg2IDE0LjYyODU3MS03LjMxNDI4NmgyOS4yNTcxNDNjNy4yNDExNDMgMCA3LjI0MTE0MyA3LjMxNDI4NiAxNC41NTU0MjkgNy4zMTQyODZsMTQ2LjEzOTQyOCAxNDYuMjg1NzE0Yy03LjMxNDI4NiAxNC42Mjg1NzEtNy4zMTQyODYgNDMuODg1NzE0LTE0LjYyODU3MSA1OC41MTQyODZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icG9pLXNhdmUiIHVuaWNvZGU9IiYjNTkwNDk7IiBkPSJNODY3LjY5MzcxNCA4MjIuMjcySDIyOS40NDkxNDNjLTg2LjAxNiAwLTE1NS43OTQyODYtNjkuNzA1MTQzLTE1NS43OTQyODYtMTU1Ljc5NDI4NnYtNjM4LjY4MzQyOGMwLTg2LjA4OTE0MyA2OS43NzgyODYtMTU1Ljc5NDI4NiAxNTUuNzk0Mjg2LTE1NS43OTQyODZoNjM4LjI0NDU3MWM4Ni4wMTYgMCAxNTUuNzk0Mjg2IDY5LjcwNTE0MyAxNTUuNzk0Mjg2IDE1NS43OTQyODZWNjY2LjU1MDg1N2MwIDg2LjAxNi02OS43NzgyODYgMTU1Ljc5NDI4Ni0xNTUuNzk0Mjg2IDE1NS43OTQyODZ6IG0tNTg0Ljg1MDI4NS02OC4wMjI4NTdoNTMxLjQ1NnYtMjM3LjQ5NDg1N2MwLTMyLjEwOTcxNC0zMy4yMDY4NTctNTguMjIxNzE0LTc0LjAyMDU3Mi01OC4yMjE3MTVIMzU2Ljg2NGMtNDAuODEzNzE0IDAtNzQuMDIwNTcxIDI2LjExMi03NC4wMjA1NzEgNTguMjIxNzE1eiBtNjcyLjU0ODU3MS03MjUuOTQyODU3YzAtNDguNDkzNzE0LTM5LjIwNDU3MS04Ny42OTgyODYtODcuNzcxNDI5LTg3LjY5ODI4NkgyMjkuNTIyMjg2YTg3LjYyNTE0MyA4Ny42MjUxNDMgMCAwIDAtODcuNjk4Mjg2IDg3Ljc3MTQyOVY2NjYuNDc3NzE0YzAgNDMuNTIgMzEuNTk3NzE0IDc5LjUwNjI4NiA3Mi45OTY1NzEgODYuMDE2di0yMzYuMzI0NTcxYzAtNjkuNzA1MTQzIDYzLjcwNzQyOS0xMjYuMzE3NzE0IDE0Mi4xMTY1NzItMTI2LjMxNzcxNGgzODMuNDE0ODU3Yzc4LjQwOTE0MyAwIDE0Mi4xMTY1NzEgNTYuNjEyNTcxIDE0Mi4xMTY1NzEgMTI2LjMxNzcxNFY3NTMuMTUyYzQxLjM5ODg1Ny03LjA5NDg1NyA3Mi45OTY1NzEtNDMuMDgxMTQzIDcyLjk5NjU3Mi04Ni4wODkxNDN6TTcwNS45NzQ4NTcgNTA5LjczMjU3MWEzMy42NDU3MTQgMzMuNjQ1NzE0IDAgMCAxIDMzLjcxODg1NyAzMy43MTg4NThWNjYwLjU1MzE0M2EzMy42NDU3MTQgMzMuNjQ1NzE0IDAgMCAxLTMzLjcxODg1NyAzMy43OTIgMzQuMDg0NTcxIDM0LjA4NDU3MSAwIDAgMS0zNC4zNzcxNDMtMzMuNzkydi0xMTcuMDI4NTcyYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMzQuMzc3MTQzLTMzLjc5MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmb2xkIiB1bmljb2RlPSImIzU5MDUwOyIgZD0iTTUxMi0xMjhBNTEyIDUxMiAwIDEgMSA1MTIgODk2YTUxMiA1MTIgMCAwIDEgMC0xMDI0ek0yNzMuNTc4NjY3IDQyNC4yNzczMzNsMTk1LjQxMzMzMyAxNTguMjkzMzM0QTY3LjkyNTMzMyA2Ny45MjUzMzMgMCAwIDAgNTEyIDU5Ni45MDY2NjdjMTUuNTMwNjY3IDAgMzEuMTQ2NjY3LTQuNjkzMzMzIDQzLjAwOC0xNC4zMzZsMTk1LjQxMzMzMy0xNTguMjkzMzM0YzIzLjQ2NjY2Ny0xOS4xMTQ2NjcgMjMuNDY2NjY3LTUwLjAwNTMzMyAwLTY5LjEyYTcwLjU3MDY2NyA3MC41NzA2NjcgMCAwIDAtODUuMzMzMzMzIDBMNTEyIDQ3OS4yMzIgMzU4LjkxMiAzNTUuMTU3MzMzYTcwLjY1NiA3MC42NTYgMCAwIDAtODUuMzMzMzMzIDBjLTIzLjQ2NjY2NyAxOS4xMTQ2NjctMjMuNDY2NjY3IDUwLjAwNTMzMyAwIDY5LjEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImxhYmVsLWRlbGV0ZSIgdW5pY29kZT0iJiM1OTA1MTsiIGQ9Ik04NzQuMDY5MzMzIDgxNy4xNTJINjg5LjE1MmMwIDM1LjY2OTMzMy0yNy4wNTA2NjcgNzguNjc3MzMzLTYwLjU4NjY2NyA3OC42NzczMzNINDE2LjkzODY2N2MtMzMuNDUwNjY3IDAtNjAuNTg2NjY3LTQzLjAwOC02MC41ODY2NjctNzguNjc3MzMzSDE3MS41MmMtNDAuODc0NjY3IDAtODUuODQ1MzMzLTYuMjI5MzMzLTg1Ljg0NTMzMy00OC4wNDI2Njd2LTY0Ljc2OEg5MzguNjY2NjY3djY0Ljc2OGMwIDQxLjgxMzMzMy0yMy42MzczMzMgNDguMDQyNjY3LTY0LjUxMiA0OC4wNDI2Njd6TTE2MS4wMjQgNjI4LjY1MDY2N3YtNjE2LjM2MjY2N2MwLTYyLjYzNDY2NyA2MC4wNzQ2NjctMTM5LjA5MzMzMyAxMjEuMzQ0LTEzOS4wOTMzMzNoNDgwLjc2OGM2MS4yNjkzMzMgMCAxMDEuNDYxMzMzIDc2LjQ1ODY2NyAxMDEuNDYxMzMzIDEzOS4wOTMzMzNWNjI4LjY1MDY2N3ogbTIwMi4wNjkzMzMtNjI5LjI0OGgtNzQuMDY5MzMzVjU0NC44NTMzMzNoNzQuMDY5MzMzeiBtMTg1LjM0NCAwSDQ3NC40NTMzMzNWNTQ0Ljg1MzMzM2g3My45ODR6IG0xODUuNDI5MzM0IDBoLTc0LjA2OTMzNFY1NDQuODUzMzMzSDczMy44NjY2Njd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idXBsb2FkIiB1bmljb2RlPSImIzU5MDUyOyIgZD0iTTk1Mi4wMjc0MjkgNzYuOGMtMzIuMTgyODU3IDAtNTguMjk0ODU3IDI1LjAxNDg1Ny01OC4yOTQ4NTggNTUuODgxMTQzIDAgMzAuNzkzMTQzIDI2LjExMiA1NS44MDggNTguMjk0ODU4IDU1LjgwOCA5Ni41NDg1NzEgMCAxNzQuODExNDI5IDc1LjA0NDU3MSAxNzQuODExNDI4IDE2Ny41NzAyODZhMTY0LjEzMjU3MSAxNjQuMTMyNTcxIDAgMCAxLTcwLjU4Mjg1NyAxMzQuMjkwMjg1bC0wLjczMTQyOSAwLjU4NTE0M2ExODEuMzk0Mjg2IDE4MS4zOTQyODYgMCAwIDEtMTEuNzAyODU3IDcuNTMzNzE0bC0xLjkwMTcxNCAxLjA5NzE0M2ExODEuNjEzNzE0IDE4MS42MTM3MTQgMCAwIDEtMTEuNDEwMjg2IDYuMDcwODU3bC0zLjIxODI4NSAxLjQ2Mjg1OGExODguODU0ODU3IDE4OC44NTQ4NTcgMCAwIDEtMTAuOTcxNDI5IDQuNjgxMTQybC00LjgyNzQyOSAxLjY4MjI4NmExODYuMjIxNzE0IDE4Ni4yMjE3MTQgMCAwIDEtMTAuMDkzNzE0IDMuMjkxNDI5Yy0yLjI2NzQyOSAwLjY1ODI4Ni00LjYwOCAxLjA5NzE0My02Ljg3NTQyOCAxLjY4MjI4NS0yLjkyNTcxNCAwLjczMTQyOS01Ljg1MTQyOSAxLjQ2Mjg1Ny04Ljg1MDI4NiAyLjA0OC0zLjIxODI4NiAwLjU4NTE0My02LjQzNjU3MSAwLjk1MDg1Ny05LjY1NDg1NyAxLjM4OTcxNS0yLjI2NzQyOSAwLjI5MjU3MS00LjUzNDg1NyAwLjczMTQyOS02Ljg3NTQyOSAwLjk1MDg1N2ExODYuMzY4IDE4Ni4zNjggMCAwIDEtMTcuMTE1NDI4IDAuODA0NTcxYy0xLjgyODU3MSAwLTMuNjU3MTQzLTAuMjE5NDI5LTUuNDEyNTcyLTAuMjE5NDI4YTI5NS4yMDQ1NzEgMjk1LjIwNDU3MSAwIDAgMS02LjY1NiAyOC4wODY4NTdjLTAuNjU4Mjg2IDIuMjY3NDI5LTEuNDYyODU3IDQuMzg4NTcxLTIuMTk0Mjg2IDYuNjU2LTIuMTk0Mjg2IDcuMDIxNzE0LTQuMzg4NTcxIDEzLjg5NzE0My03LjA5NDg1NyAyMC42OTk0MjgtMC44MDQ1NzEgMi4wNDgtMS44Mjg1NzEgNC4wMjI4NTctMi42MzMxNDMgNi4wNzA4NThhMzI2LjIxNzE0MyAzMjYuMjE3MTQzIDAgMCAxLTkuMjE2IDIwLjMzMzcxNGMtMC43MzE0MjkgMS42MDkxNDMtMS43NTU0MjkgMy4xNDUxNDMtMi41NiA0LjY4MTE0M2EzMTguOTc2IDMxOC45NzYgMCAwIDEtMTEuNjI5NzE0IDIwLjQ4Yy01Ny42MzY1NzEgOTIuMTYtMTYyLjY2OTcxNCAxNTMuODkyNTcxLTI4Mi45MTY1NzEgMTUzLjg5MjU3MS0xMjAuMzIgMC0yMjUuMjgtNjEuODA1NzE0LTI4Mi45MTY1NzItMTUzLjg5MjU3MS00LjE2OTE0My02LjY1Ni03Ljk3MjU3MS0xMy41MzE0MjktMTEuNzAyODU3LTIwLjQ4LTAuNzMxNDI5LTEuNTM2LTEuNjgyMjg2LTMuMDcyLTIuNDg2ODU3LTQuNjgxMTQzYTMxNi43MDg1NzEgMzE2LjcwODU3MSAwIDAgMS05LjIxNi0yMC4zMzM3MTRjLTAuODA0NTcxLTIuMDQ4LTEuODI4NTcxLTQuMDIyODU3LTIuNjMzMTQzLTYuMDcwODU4YTMwMC4xMDUxNDMgMzAwLjEwNTE0MyAwIDAgMS03LjA5NDg1Ny0yMC42OTk0MjhsLTIuMTk0Mjg2LTYuNTgyODU3YTI5NC42MTk0MjkgMjk0LjYxOTQyOSAwIDAgMS02LjU4Mjg1Ny0yOC4xNmMtMS45MDE3MTQgMC0zLjY1NzE0MyAwLjIxOTQyOS01LjQ4NTcxNCAwLjIxOTQyOC01Ljc3ODI4NiAwLTExLjQ4MzQyOS0wLjI5MjU3MS0xNy4xMTU0MjktMC44MDQ1NzEtMi4zNDA1NzEtMC4yMTk0MjktNC42MDgtMC42NTgyODYtNi44NzU0MjgtMC45NTA4NTctMy4yMTgyODYtMC40Mzg4NTctNi40MzY1NzEtMC44MDQ1NzEtOS42NTQ4NTctMS40NjI4NTctMi45MjU3MTQtMC41MTItNS44NTE0MjktMS4yNDM0MjktOC43NzcxNDMtMS45NzQ4NTgtMi4zNDA1NzEtMC41ODUxNDMtNC42ODExNDMtMS4wMjQtNi45NDg1NzItMS42ODIyODVhMTg2LjY2MDU3MSAxODYuNjYwNTcxIDAgMCAxLTEwLjA5MzcxNC0zLjI5MTQyOWwtNC45MDA1NzEtMS42ODIyODZjLTMuNjU3MTQzLTEuNDYyODU3LTcuMzE0Mjg2LTIuOTI1NzE0LTEwLjg5ODI4Ni00LjYwOGwtMy4yMTgyODYtMS40NjI4NTdhMTczLjg2MDU3MSAxNzMuODYwNTcxIDAgMCAxLTExLjQxMDI4Ni02LjE0NGwtMS45MDE3MTQtMS4wOTcxNDNhMTg1LjU2MzQyOSAxODUuNTYzNDI5IDAgMCAxLTExLjcwMjg1Ny03LjUzMzcxNGwtMC43MzE0MjktMC41ODUxNDNhMTY0LjIwNTcxNCAxNjQuMjA1NzE0IDAgMCAxLTcwLjU4Mjg1Ny0xMzQuMjkwMjg1YzAtOTIuNTI1NzE0IDc4LjI2Mjg1Ny0xNjcuNDk3MTQzIDE3NC44MTE0MjktMTY3LjQ5NzE0MyAzMi4xODI4NTcgMCA1OC4yOTQ4NTctMjUuMDg4IDU4LjI5NDg1Ny01NS44ODExNDMgMC0zMC44NjYyODYtMjYuMTEyLTU1Ljg4MTE0My01OC4yOTQ4NTctNTUuODgxMTQzQzEzMC40ODY4NTcgNzYuOCAwIDIwMS44NzQyODYgMCAzNTYuMDU5NDI5YzAgMTI1LjgwNTcxNCA4Ni44MjA1NzEgMjMyLjE1NTQyOSAyMDYuMjYyODU3IDI2Ny4xMTc3MTRDMjcwLjk5NDI4NiA3ODIuNjI4NTcxIDQzMi4yNzQyODYgODk2IDYyMS43MTQyODYgODk2czM1MC42NDY4NTctMTEzLjM3MTQyOSA0MTUuNTI0NTcxLTI3Mi44MjI4NTdDMTE1Ni42MDggNTg4LjIxNDg1NyAxMjQzLjQyODU3MSA0ODEuODY1MTQzIDEyNDMuNDI4NTcxIDM1Ni4wNTk0MjljMC0xNTQuMTg1MTQzLTEzMC40ODY4NTctMjc5LjI1OTQyOS0yOTEuNDAxMTQyLTI3OS4yNTk0Mjl6TTQwMy41MjkxNDMgMjA3LjI4Njg1N2wwLjA3MzE0MyAwLjA3MzE0MyAwLjE0NjI4NSAwLjE0NjI4Nkw1NzguNDEzNzE0IDM5My41MDg1NzFsMC4xNDYyODYtMC4xNDYyODVhNTkuMDk5NDI5IDU5LjA5OTQyOSAwIDAgMCA4Ni4zMDg1NzEgMGwwLjE0NjI4NiAwLjE0NjI4NSAxNzQuNjY1MTQzLTE4NS45MjkxNDJ2LTAuMDczMTQzbDAuMjE5NDI5LTAuMTQ2Mjg2YzguMTE4ODU3LTguNzA0IDEzLjQ1ODI4Ni0xOS43NDg1NzEgMTQuNjI4NTcxLTMyLjAzNjU3MXYtMC4xNDYyODZhNDguNDIwNTcxIDQ4LjQyMDU3MSAwIDAgMCAwLjM2NTcxNC01LjEyYzAtMzAuOTM5NDI5LTI2LjExMi01NS45NTQyODYtNTguMjk0ODU3LTU1Ljk1NDI4NmgtMS45MDE3MTRsLTEuMTcwMjg2IDAuMDczMTQzLTEuMjQzNDI4IDAuMDczMTQzLTEuOTAxNzE1IDAuMjE5NDI4aC0wLjczMTQyOGwtMi40ODY4NTcgMC4zNjU3MTVhNTguODA2ODU3IDU4LjgwNjg1NyAwIDAgMC0zMy45MzgyODYgMTcuNzczNzE0TDY4MC4wMDkxNDMgMjEwLjUwNTE0M3YtMjgyLjYyNGMwLTMwLjg2NjI4Ni0yNi4xMTItNTUuODgxMTQzLTU4LjI5NDg1Ny01NS44ODExNDMtMzIuMTgyODU3IDAtNTguMjk0ODU3IDI1LjAxNDg1Ny01OC4yOTQ4NTcgNTUuODgxMTQzVjIxMC41MDUxNDNsLTczLjIxNi03Ny45NzAyODZhNTguNTg3NDI5IDU4LjU4NzQyOSAwIDAgMC0zMy44NjUxNDMtMTcuNzAwNTcxYy0wLjg3NzcxNC0wLjIxOTQyOS0xLjY4MjI4Ni0wLjI5MjU3MS0yLjU2LTAuMzY1NzE1YTEzLjY3NzcxNCAxMy42Nzc3MTQgMCAwIDAtMC43MzE0MjktMC4wNzMxNDJsLTEuOTAxNzE0LTAuMjE5NDI5aC0xLjI0MzQyOWwtMS4wOTcxNDMtMC4wNzMxNDNoLTEuOTc0ODU3YTU4LjY2MDU3MSA1OC42NjA1NzEgMCAwIDAtNTEuMiAyOS4xODQgNTMuNjg2ODU3IDUzLjY4Njg1NyAwIDAgMCA3Ljg5OTQyOSA2NHoiICBob3Jpei1hZHYteD0iMTI0MyIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ1bmZvbGQiIHVuaWNvZGU9IiYjNTkwNTM7IiBkPSJNNTEyIDg5NmE1MTIgNTEyIDAgMSAwIDAtMTAyNEE1MTIgNTEyIDAgMCAwIDUxMiA4OTZ6TTI3My41Nzg2NjcgMzQzLjcyMjY2N2wxOTUuNDEzMzMzLTE1OC4yOTMzMzRBNjcuOTI1MzMzIDY3LjkyNTMzMyAwIDAgMSA1MTIgMTcxLjA5MzMzM2E2OC4wMTA2NjcgNjguMDEwNjY3IDAgMCAxIDQzLjAwOCAxNC4zMzZsMTk1LjQxMzMzMyAxNTguMjkzMzM0YzIzLjQ2NjY2NyAxOS4xMTQ2NjcgMjMuNDY2NjY3IDUwLjAwNTMzMyAwIDY5LjEyYTcwLjU3MDY2NyA3MC41NzA2NjcgMCAwIDEtODUuMzMzMzMzIDBMNTEyIDI4OC43NjggMzU4LjkxMiA0MTIuODQyNjY3YTcwLjY1NiA3MC42NTYgMCAwIDEtODUuMzMzMzMzIDBjLTIzLjQ2NjY2Ny0xOS4xMTQ2NjctMjMuNDY2NjY3LTUwLjAwNTMzMyAwLTY5LjEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImNsb3NlIiB1bmljb2RlPSImIzU5MDU0OyIgZD0iTTY0MS4zNjUzMzMgMzg0bDM1NS40MTMzMzQtMzU1LjMyOGMzNi4wMTA2NjctMzYuMDEwNjY3IDM2LjQzNzMzMy05My44NjY2NjcgMC40MjY2NjYtMTI5Ljg3NzMzM2E5MS43MzMzMzMgOTEuNzMzMzMzIDAgMCAwLTEyOS44NzczMzMgMC40MjY2NjZMNTEyIDI1NC42MzQ2NjdsLTM1NS4zMjgtMzU1LjQxMzMzNGMtMzYuMDEwNjY3LTM2LjAxMDY2Ny05My44NjY2NjctMzYuNDM3MzMzLTEyOS44NzczMzMtMC40MjY2NjZhOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMCAwLjQyNjY2NiAxMjkuODc3MzMzTDM4Mi42MzQ2NjcgMzg0IDI3LjIyMTMzMyA3MzkuMzI4QTkxLjY0OCA5MS42NDggMCAwIDAgMjYuNzk0NjY3IDg2OS4yMDUzMzNhOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMCAxMjkuODc3MzMzLTAuNDI2NjY2TDUxMiA1MTMuMzY1MzMzIDg2Ny4zMjggODY4Ljc3ODY2N2E5MS42NDggOTEuNjQ4IDAgMCAwIDEyOS44NzczMzMgMC40MjY2NjYgOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMC0wLjQyNjY2Ni0xMjkuODc3MzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9Im1hcmsiIHVuaWNvZGU9IiYjNTkwNTU7IiBkPSJNMjU2IDE4LjY1MTQyOWE1MS4zNDYyODYgNTEuMzQ2Mjg2IDAgMCAwLTQ0LjM5NzcxNCAyNS4zODA1NzFMNy42OCAzOTQuMzg2Mjg2Yy0xNC4xMTY1NzEgMjQuMTM3MTQzLTUuNDg1NzE0IDU0Ljg1NzE0MyAxOS4wMTcxNDMgNjguNjgxMTQzczU1Ljg4MTE0MyA1LjQxMjU3MSA2OS45MjQ1NzEtMTguNzI0NTcybDE3MC40OTYtMjkzLjE1NjU3MSA2MjguNTE2NTcyIDYxOS4xNTQyODVhNTEuOTMxNDI5IDUxLjkzMTQyOSAwIDAgMCA3Mi40MTE0MjggMC4wNzMxNDMgNDkuNzM3MTQzIDQ5LjczNzE0MyAwIDAgMCAwLjE0NjI4Ni03MS4xNjhMMjk0LjYxOTQyOSAzNS44NGwtMi40MTM3MTUtMi40MTM3MTRhNTEuNjM4ODU3IDUxLjYzODg1NyAwIDAgMC0zNi4yMDU3MTQtMTQuNjI4NTcyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InRyYWZmaWMiIHVuaWNvZGU9IiYjNTkwNTY7IiBkPSJNNTEyIDY5MS4yYy04NC44Mzg0IDAtMTUzLjYtNDkuNjY0LTE1My42LTExMC45NTA0di00NDMuNjk5MkMzNTguNCA3NS4yNjQgNDI3LjE2MTYgMjUuNiA1MTIgMjUuNnMxNTMuNiA0OS42NjQgMTUzLjYgMTEwLjk1MDRWNTgwLjI0OTZDNjY1LjYgNjQxLjUzNiA1OTYuODM4NCA2OTEuMiA1MTIgNjkxLjJ6IG0wIDEwMi40YzE0MS4zNjMyIDAgMjU2LTk3LjQzMzYgMjU2LTIxNy42di00MzUuMmMwLTEyMC4xNjY0LTExNC42MzY4LTIxNy42LTI1Ni0yMTcuNnMtMjU2IDk3LjQzMzYtMjU2IDIxNy42djQzNS4yQzI1NiA2OTYuMTY2NCAzNzAuNjM2OCA3OTMuNiA1MTIgNzkzLjZ6TTUxMiA1NjMuMm0tNzYuOCAwYTc2LjggNzYuOCAwIDEgMSAxNTMuNiAwIDc2LjggNzYuOCAwIDEgMS0xNTMuNiAwWk01MTIgMzU4LjRtLTc2LjggMGE3Ni44IDc2LjggMCAxIDEgMTUzLjYgMCA3Ni44IDc2LjggMCAxIDEtMTUzLjYgMFpNNTEyIDE1My42bS03Ni44IDBhNzYuOCA3Ni44IDAgMSAxIDE1My42IDAgNzYuOCA3Ni44IDAgMSAxLTE1My42IDBaIiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZnVsbC1maWd1cmUiIHVuaWNvZGU9IiYjNTkwNTc7IiBkPSJNMjYwLjYwOCA2NDBDMjI5LjgzNjggNjQwIDIwNC44IDYxNC41NTM2IDIwNC44IDU4My4xMTY4di0zOTguMjMzNkMyMDQuOCAxNTMuNDQ2NCAyMjkuNzg1NiAxMjggMjYwLjYwOCAxMjhoNTAyLjc4NGMzMC44MjI0IDAgNTUuODA4IDI1LjQ0NjQgNTUuODA4IDU2Ljg4MzJWNTgzLjE2OEM4MTkuMiA2MTQuNTUzNiA3OTQuMjE0NCA2NDAgNzYzLjM5MiA2NDB6IG01LjYzMiAxMDIuNGg0OTEuNTJDODQ4LjIzMDQgNzQyLjQgOTIxLjYgNjY4LjM2NDggOTIxLjYgNTc3LjAyNHYtMzg2LjA0OGMwLTkxLjM0MDgtNzMuMzY5Ni0xNjUuMzc2LTE2My44NC0xNjUuMzc2SDI2Ni4yNEMxNzUuNzY5NiAyNS42IDEwMi40IDk5LjYzNTIgMTAyLjQgMTkwLjk3NlY1NzcuMDI0QzEwMi40IDY2OC4zMTM2IDE3NS43Njk2IDc0Mi40IDI2Ni4yNCA3NDIuNHpNMzIzLjg5MTIgNDE4LjY2MjRhMzUuODQgMzUuODQgMCAwIDAtMzUuODQgMzUuNDMwNFY1MjUuMDA0OGEzNS44NCAzNS44NCAwIDAgMCAzNS44NCAzNS40MzA0bDcxLjY4LTAuNjE0NGMxOS42MDk2IDAgMzUuNzg4OC0xNS4zNiAzNS43ODg4LTM0LjgxNnMtMTYuMTc5Mi0zNS40MzA0LTM1Ljg0LTM1LjQzMDRoLTM1Ljg0di0zNS40ODE2YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljc4ODgtMzUuNDMwNHogbTcxLjY4LTIxMi42ODQ4aC03MS42OGEzNS44NCAzNS44NCAwIDAgMC0zNS44NCAzNS40ODE2VjMxMi4zMmEzNS44NCAzNS44NCAwIDAgMCA3MS42OCAwdi0zNS40MzA0aDM1Ljg0YzE5LjYwOTYgMCAzNS43ODg4LTE2LjAyNTYgMzUuNzg4OC0zNS40MzA0cy0xNi4xNzkyLTM1LjQ4MTYtMzUuODQtMzUuNDgxNnogbTMxMC4zNzQ0IDIxMi42ODQ4YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljg0IDM1LjQzMDR2MzUuNDgxNmgtMzUuNzg4OGMtMTkuNjYwOCAwLTM1Ljg0IDE1Ljk3NDQtMzUuODQgMzUuNDMwNHMxNi4xNzkyIDM1LjQzMDQgMzUuODQgMzUuNDMwNGg3MS42OGEzNS44NCAzNS44NCAwIDAgMCAzNS43ODg4LTM1LjQzMDR2LTcwLjkxMmEzNS44NCAzNS44NCAwIDAgMC0zNS44NC0zNS40MzA0eiBtMC0yMTIuNjg0OEg2MzQuMzY4Yy0xOS42NjA4IDAtMzUuODQgMTYuMDI1Ni0zNS44NCAzNS40ODE2czE2LjE3OTIgMzUuNDMwNCAzNS44NCAzNS40MzA0aDM1Ljg0VjMxMi4zMmEzNS44NCAzNS44NCAwIDAgMCA3MS42Mjg4IDB2LTcwLjg2MDhhMzUuODQgMzUuODQgMCAwIDAtMzUuODQtMzUuNDgxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtZWFzdXJlIiB1bmljb2RlPSImIzU5MDU4OyIgZD0iTTEyOS4xMjY0IDIwMy4wMDhhMTAyLjI5NzYgMTAyLjI5NzYgMCAwIDAtMC4yMDQ4IDE0NC41ODg4bDQzNC44NDE2IDQzNC44NDE2YTEwMS45OTA0IDEwMS45OTA0IDAgMCAwIDE0NC41ODg4LTAuMjA0OGwyMTcuMjQxNi0yMTcuMjQxNmMzOS45ODcyLTM5LjkzNiA0MC4wMzg0LTEwNC43NTUyIDAuMjA0OC0xNDQuNTg4OEw0OTEuMDA4LTE0LjQzODRhMTAxLjk5MDQgMTAxLjk5MDQgMCAwIDAtMTQ0LjU4ODggMC4yMDQ4eiBtMTA4LjI4OCAzNi41MDU2bDE0NS40NTkyLTE0NS40NTkyYTUxLjI1MTIgNTEuMjUxMiAwIDAgMSA3Mi4xOTIgMC40MDk2bDM2MS44MzA0IDM2MS44MzA0YTUxLjI1MTIgNTEuMjUxMiAwIDAgMSAwLjQwOTYgNzIuMTkybC0xNDUuNDU5MiAxNDUuNDU5MmE1MS4yNTEyIDUxLjI1MTIgMCAwIDEtNzIuMTkyLTAuNDA5NmwtMzYxLjgzMDQtMzYxLjgzMDRhNTEuMjUxMiA1MS4yNTEyIDAgMCAxLTAuNDA5Ni03Mi4xOTJ6TTI0Ny45NjE2IDMyNi45NjMybDM2LjE5ODQgMzYuMTk4NCAxMDguNjQ2NC0xMDguNTk1Mi0zNi4yNDk2LTM2LjI0OTZ6TTMyMC4zNTg0IDM5OS4zNmwzNi4xOTg0IDM2LjE5ODQgMTQ0Ljg0NDgtMTQ0Ljc5MzYtMzYuMTk4NC0zNi4xOTg0eiBtNzIuNDQ4IDcyLjM5NjhsMzYuMTk4NCAzNi4xOTg0TDUzNy42IDM5OS4zNmwtMzYuMTk4NC0zNi4xOTg0ek01MzcuNiA2MTYuNjAxNmwzNi4xOTg0IDM2LjE5ODQgMTA4LjU5NTItMTA4LjY0NjQtMzYuMTk4NC0zNi4xOTg0ek00NjUuMjAzMiA1NDQuMTUzNmwzNi4xOTg0IDM2LjI0OTYgMTQ0Ljc5MzYtMTQ0Ljg0NDgtMzYuMTk4NC0zNi4xOTg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImRpc3BsYXktbGlzdCIgdW5pY29kZT0iJiM1OTA1OTsiIGQ9Ik0wIDc5LjI3NDY2N2gyNTZWLTQyLjY2NjY2N0gweiBtMzg0IDBoMjU2Vi00Mi42NjY2NjdoLTI1NnogbTM4NCAwaDI1NlYtNDIuNjY2NjY3SDc2OHpNMCAzMjMuMDcyaDI1NnYtMTIxLjk0MTMzM0gweiBtMzg0IDBoMjU2di0xMjEuOTQxMzMzaC0yNTZ6IG0zODQgMGgyNTZ2LTEyMS45NDEzMzNINzY4ek01MTIgNjg4LjY0TDAgNDQ0LjkyOFY1NjYuODY5MzMzTDUxMiA4MTAuNjY2NjY3eiBtNTEyLTI0My43OTczMzNMNTEyIDY4OC43MjUzMzNWODEwLjY2NjY2N2w1MTItMjQzLjc5NzMzNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJoaWRlLWxpc3QiIHVuaWNvZGU9IiYjNTkwNjA7IiBkPSJNMCA2ODguNzI1MzMzaDI1NlY4MTAuNjY2NjY3SDB6IG0zODQgMGgyNTZWODEwLjY2NjY2N2gtMjU2eiBtMzg0IDBoMjU2VjgxMC42NjY2NjdINzY4ek0wIDQ0NC45MjhoMjU2VjU2Ni44NjkzMzNIMHogbTM4NCAwaDI1NlY1NjYuODY5MzMzaC0yNTZ6IG0zODQgMGgyNTZWNTY2Ljg2OTMzM0g3Njh6TTUxMiA3OS4zNkwwIDMyMy4wNzJ2LTEyMS45NDEzMzNMNTEyLTQyLjY2NjY2N3ogbTUxMiAyNDMuNzk3MzMzTDUxMiA3OS4yNzQ2NjdWLTQyLjY2NjY2N2w1MTIgMjQzLjc5NzMzNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyZW5hbWUiIHVuaWNvZGU9IiYjNTkwNjE7IiBkPSJNOTYwIDY4Mi42NjY2NjdoLTk5LjU4NHYtOTkuNTg0aDQ5LjgzNDY2N3YtMzk4LjE2NTMzNGgtNDkuODM0NjY3Vjg1LjMzMzMzM2g5OS41ODRhNDkuNzQ5MzMzIDQ5Ljc0OTMzMyAwIDAgMSA0OS43NDkzMzMgNDkuNzQ5MzM0VjYzMi45MTczMzNhNDkuNzQ5MzMzIDQ5Ljc0OTMzMyAwIDAgMS00OS43NDkzMzMgNDkuNzQ5MzM0eiBtLTg5Ni01OTcuMzMzMzM0aDQ5Ny43NDkzMzNWMTg0LjkxNzMzM2gtNDQ4VjU4My4wODI2NjdoNDQ4VjY4Mi42NjY2NjdINjRhNDkuNzQ5MzMzIDQ5Ljc0OTMzMyAwIDAgMS00OS43NDkzMzMtNDkuNzQ5MzM0di00OTcuODM0NjY2YzAtMjcuNDc3MzMzIDIyLjE4NjY2Ny00OS43NDkzMzMgNDkuNzQ5MzMzLTQ5Ljc0OTMzNHpNMjEzLjMzMzMzMyA0ODMuNTg0aDM0OC40MTZ2LTE5OS4xNjhIMjEzLjMzMzMzM3pNNzYwLjkxNzMzMyA2ODEuNDcyYzAuNTk3MzMzIDE2LjgxMDY2NyAxMC45MjI2NjcgMTAwLjY5MzMzMyAxNDkuMzMzMzM0IDEwMC42OTMzMzNWODgxLjgzNDY2N2MtOTguOTAxMzMzIDAtMTYxLjI4LTMzLjI4LTE5OC44MjY2NjctNzUuMTc4NjY3QzY3NC4xMzMzMzMgODQ4LjM4NCA2MTEuNTg0IDg4MS43NDkzMzMgNTEyIDg4MS43NDkzMzN2LTk5LjQ5ODY2NmMxMzkuMzQ5MzMzIDAgMTQ4LjgyMTMzMy04My42MjY2NjcgMTQ5LjMzMzMzMy05OS41ODR2LTU5Ny4yNDhjMC00LjA5Ni0xLjg3NzMzMy05OS42NjkzMzMtMTQ5LjMzMzMzMy05OS42NjkzMzR2LTk5LjQ5ODY2NmM5OS42NjkzMzMgMCAxNjIuMTMzMzMzIDMzLjQ1MDY2NyAxOTkuNjggNzUuNTIgMi4zODkzMzMtMi43MzA2NjcgNC4zNTItNS41NDY2NjcgNy4wODI2NjctOC4yNzczMzQgNDQuNDU4NjY3LTQ0LjYyOTMzMyAxMDguODg1MzMzLTY3LjI0MjY2NyAxOTEuNDg4LTY3LjI0MjY2NnY5OS40OTg2NjZjLTEzOS41MiAwLTE0OC45MDY2NjcgODMuNDU2LTE0OS4zMzMzMzQgOTkuNDk4NjY3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImNvcHkiIHVuaWNvZGU9IiYjNTkwNjI7IiBkPSJNNjM5Ljg3MiA2MzkuNjhIMTkyLjM4NGMtMzUuMiAwLTYzLjg3Mi0yOC44LTYzLjg3Mi02My44NzJ2LTU3NS4zNmMwLTM1LjIgMjguOC02NCA2My44NzItNjRoNDQ3LjQ4OGMzNS4yIDAgNjMuOTM2IDI4LjggNjMuOTM2IDY0djU3NS4zNmMwIDM1LjA3Mi0yOC44IDYzLjg3Mi02My45MzYgNjMuODcyeiBtMC02MzkuMjk2SDE5Mi4zODR2NTc1LjM2aDQ0Ny40ODh2LTU3NS4zNnogbTE5MS43NDQgODMxLjEwNEgzODQuMTI4Yy0zNS4yIDAtNjMuOTM2LTI4LjgtNjMuOTM2LTYzLjg3MnYtNjMuOTM2aDYzLjkzNnY2My45MzZoNDQ3LjQ4OHYtNTc1LjM2aC02My45MzZ2LTY0aDYzLjkzNmMzNS4yIDAgNjMuODcyIDI4LjggNjMuODcyIDY0djU3NS4zNmE2NCA2NCAwIDAgMS02My44NzIgNjMuODcyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InFxLXpvbmUiIHVuaWNvZGU9IiYjNTkwNjM7IiBkPSJNNTEyIDg5NkMyMjkuMDE3NiA4OTYgMCA2NjYuOTgyNCAwIDM4NHMyMjkuMDE3Ni01MTIgNTEyLTUxMiA1MTIgMjI5LjAxNzYgNTEyIDUxMlM3OTQuOTgyNCA4OTYgNTEyIDg5NnogbTM1NC4xNTA0LTQxOC44MTZsLTE4My42NTQ0LTE1NS40OTQ0IDYuMjQ2NC0yNC42Nzg0Yy0xMjkuNTM2LTEuMjI4OC0yMTUuMDkxMiAxMS4xMTA0LTIxNS4wOTEyIDExLjExMDRsMjEzLjg2MjQgMTQ5LjI5OTJjLTE3My42MTkyIDM1Ljc4ODgtNDA4Ljg4MzItNi4xNDQtMzkwLjA0MTYtNy40MjQgMjY1LjQ3Mi04LjY1MjggMjczLjA0OTYtMjIuMjIwOCAyNzMuMDQ5Ni0yMi4yMjA4TDM1Ny44ODggMjc4LjUyOGMyOTMuMTItMTguNTM0NCAzNzQuODg2NCAxOS43MTIgMzc0Ljg4NjQgMTkuNzEycy0yMC4xMjE2LTE2LjAyNTYtMzguOTYzMi0yNC42Nzg0bDQ0LjAzMi0xODIuNTc5MmMxLjIyODgtMy42ODY0LTEuMjgtOC42NTI4LTMuNzg4OC0xMS4xMTA0LTIuNTYtMS4yMjg4LTMuNzg4OC0yLjQ1NzYtNi4yOTc2LTIuNDU3NnMtMy43ODg4IDAtNi4yOTc2IDEuMjI4OGwtMjA4Ljg0NDggMTIyLjE2MzItMjA4Ljg0NDgtMTIyLjE2MzJhMTEuNjIyNCAxMS42MjI0IDAgMCAwLTEyLjU0NCAwIDkuODMwNCA5LjgzMDQgMCAwIDAtMy43ODg4IDExLjExMDRsNTUuMzQ3MiAyMzEuOTM2TDE1Ny44NDk2IDQ3Ny4xODRjLTMuNzg4OCAyLjQ1NzYtNS4wMTc2IDcuNDI0LTMuNzg4OCAxMS4xMTA0czUuMDY4OCA3LjQyNCAxMC4wODY0IDcuNDI0bDI0Mi43OTA0IDE5LjcxMkw1MDIuNTc5MiA3MzYuMjU2YzEuMjI4OCAzLjY4NjQgNi4yOTc2IDYuMTQ0IDEwLjAzNTIgNi4xNDQgNS4wNjg4IDAgOC44MDY0LTIuNDU3NiAxMC4wODY0LTYuMTQ0bDk0LjM2MTYtMjE4LjQxOTIgMjQyLjc5MDQtMTkuNzEyYzUuMDE3NiAwIDguODA2NC0zLjY4NjQgMTAuMDg2NC03LjQyNCAxLjIyODgtMy42ODY0IDAtMTEuMTEwNC0zLjc4ODgtMTMuNTY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InNpbmEtd2VpYm8iIHVuaWNvZGU9IiYjNTkwNjQ7IiBkPSJNMzk5Ljg3MiAyODAuMDY0Yy0yMi44MzUyIDAtNDMuODI3Mi0xOC43OTA0LTQ0LjE4NTYtMzkuNDc1Mi0wLjMwNzItMTcuNjY0IDE0LjU0MDgtMzEuMTI5NiAzNC40NTc2LTMxLjEyOTYgMjMuNjU0NCAwIDQzLjUyIDE3LjgxNzYgNDMuNjIyNCAzOS4yMTkyIDAuMjA0OCAxOC4yNzg0LTE0LjA4IDMxLjM4NTYtMzMuOTQ1NiAzMS4zODU2eiBtNTYuNzI5NiAxNS43MTg0Yy02Ljc1ODQtMy4zMjgtMTMuMzEyLTguMTkyLTE3Ljk3MTItMTQuMTMxMi0xLjAyNC0xLjI4IDUuOTM5Mi04LjgwNjQgMTEuNTcxMi0xNi44OTYgNy4yMTkyIDcuOTM2IDEzLjc3MjggMTIuNDkyOCAxNi4xNzkyIDE4LjY4OCAxLjAyNCAyLjYxMTItOC42NTI4IDEyLjk1MzYtOS43MjggMTIuMzM5MnogbTE0My4zMDg4IDg5LjgwNDhhMjI1LjY4OTYgMjI1LjY4OTYgMCAwIDEtMzQuOTY5NiAxNy41MTA0Yy00MC40NDggMTYuMTc5Mi04Mi45NDQgMjAuOTkyLTEyNi4xMDU2IDE3LjIwMzItNjUuMjgtNS42MzItMTI1LjU0MjQtMjQuODgzMi0xNzIuNDQxNi03My4zMTg0LTU0LjM3NDQtNTYuMDY0LTQ3LjAwMTYtMTI3LjA3ODQgMTYuOTk4NC0xNzEuNTcxMiA0My4zMTUyLTMwLjEwNTYgOTIuNTE4NC00MC40NDggMTQ0LjQ4NjQtMzkuMTY4IDkuNDIwOCAwIDE4Ljk0NC0wLjc2OCAyOC4yNjI0IDAuMTAyNCA1OS4xODcyIDUuNjMyIDExMy42NjQgMjMuNjAzMiAxNTguODIyNCA2My42NDE2IDY1Ljk5NjggNTguMzY4IDU5LjM5MiAxMzguODAzMi0xNS4wNTI4IDE4NS42eiBtLTczLjIxNi0xNjQuOTE1MmMtMjIuNDc2OC0zNC4wNDgtNjIuMjU5Mi01NC43MzI4LTEwNS40NzItNTQuOTM3Ni01NC40MjU2LTAuMzU4NC05NS4yODMyIDMwLjIwOC0xMDIuNTUzNiA3Ny44MjRhNzkuMjA2NCA3OS4yMDY0IDAgMCAwIDEuMDc1MiAyOS45NTJjMTAuOTU2OCA0Ni42OTQ0IDQzLjMxNTIgNzIuNzU1MiA4Ny4yOTYgODQuNTMxMiA0My40Njg4IDExLjUyIDgzLjg2NTYgMy45OTM2IDExNS41MDcyLTMwLjUxNTIgMjYuMTEyLTI4LjU2OTYgMjcuMTg3Mi03Mi4xNDA4IDQuMDk2LTEwNi44NTQ0ek01MTIgODk2QzIyOS4yMjI0IDg5NiAwIDY2Ni43Nzc2IDAgMzg0czIyOS4yMjI0LTUxMiA1MTItNTEyYzI4Mi43MjY0IDAgNTEyIDIyOS4yMjI0IDUxMiA1MTIgMCAyODIuNzI2NC0yMjkuMjIyNCA1MTItNTEyIDUxMnogbTI0NC4xMjE2LTY2NC44ODMyYy00My43MjQ4LTY3LjI3NjgtMTEwLjk1MDQtMTAwLjY1OTItMTg2LjAwOTYtMTE5LjA0LTM2LjM1Mi04Ljk2LTc0LjI0LTExLjcyNDgtOTMuOTUyLTE0Ljc0NTYtOTMuMDgxNiAyLjMwNC0xNjUuMDY4OCAxNi4wNzY4LTIyOS45OTA0IDU2LjQyMjQtODEuODE3NiA1MC44NDE2LTEwNS42NzY4IDEyNy4wMjcyLTYyLjg3MzYgMjEzLjQ1MjggNDUuOTI2NCA5Mi42NzIgMTE3LjQwMTYgMTYxLjIyODggMjExLjI1MTIgMjA1LjMxMiAxNy40MDggOC4xNDA4IDM3LjIyMjQgMTIuOCA1Ni4zMiAxNS4xMDQgMzkuMzcyOCA0LjkxNTIgNjIuMzEwNC0xNy40MDggNjEuMzM3Ni01Ny4wMzY4LTAuMjA0OC04LjcwNC0yLjIwMTYtMTcuMjAzMi0yLjY2MjQtMjUuOTU4NC0wLjQwOTYtNy40MjQgMC4xNTM2LTE1LjA1MjggMC4zMDcyLTIyLjUyOCA3LjY4IDEuMjggMTUuMzYgMi4wNDggMjIuODg2NCAzLjczNzYgMzAuMzEwNCA2LjUwMjQgNjAuMzEzNiAxNy4zMDU2IDkwLjg4IDE4Ljk0NCA1My4wOTQ0IDIuODE2IDc2LjgtMjkuMjg2NCA2MC43MjMyLTc5LjcxODQtNi45NjMyLTIxLjQ1MjgtMS43NDA4LTI4LjY3MiAxOC4yNzg0LTM1Ljg0IDc1LjQ2ODgtMjcuMjM4NCA5Ny4yMjg4LTkwLjkzMTIgNTMuNTA0LTE1OC4xMDU2eiBtLTM5LjU3NzYgMjgyLjU3MjhjLTEyLjQ5MjggMTUuODcyLTQwLjgwNjQgMTkuNTA3Mi00OS43NjY0IDE5LjYwOTZhMjMuOTYxNiAyMy45NjE2IDAgMCAwIDAuMTUzNiA0Ny45NzQ0aDAuMjA0OGM1LjgzNjggMCA1OC4zNjgtMS41MzYgODcuMDQtMzcuOTM5MiAxMS40MTc2LTE0LjQzODQgMjMuMDkxMi00MC4wODk2IDEzLjgyNC04MC4wMjU2YTI0LjAxMjggMjQuMDEyOCAwIDEgMC00Ni42OTQ0IDEwLjc1MmM0LjA5NiAxNy41MTA0IDIuNDU3NiAzMC40NjQtNC43NjE2IDM5LjYyODh6TTg1Ny43MDI0IDQzNS4yYTI0LjA2NCAyNC4wNjQgMCAwIDAtMjcuNDQzMi0xOS45NjggMjMuOTYxNiAyMy45NjE2IDAgMCAwLTE5Ljk2OCAyNy40NDMyYzguOTA4OCA1Ni41NzYtMC4xNTM2IDEwMC42MDgtMjcuMDMzNiAxMzAuNzEzNi00Ni43OTY4IDUyLjQyODgtMTMyLjU1NjggNDkuMzA1Ni0xMzMuNDI3MiA0OS4zMDU2YTIzLjk2MTYgMjMuOTYxNiAwIDEgMC0yLjA0OCA0Ny45MjMyYzQuNDU0NCAwLjE1MzYgMTA5LjQxNDQgMy44NCAxNzEuMjY0LTY1LjI4IDM2Ljg2NC00MS4zNjk2IDQ5Ljg2ODgtOTguNjExMiAzOC42NTYtMTcwLjEzNzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY29sb3ItY2hhbmdlIiB1bmljb2RlPSImIzU5MDY1OyIgZD0iTTQ4LjcxMzE0MyA0NzEuNzcxNDI5aDkyNi45Mzk0MjhhNDkuMDA1NzE0IDQ5LjAwNTcxNCAwIDEgMSAzMC4xMzQ4NTggODcuMjU5NDI4IDQ4Ljg1OTQyOSA0OC44NTk0MjkgMCAwIDEtMTAuMzg2Mjg2IDkuODc0Mjg2bC0zNDYuMjU4Mjg2IDI0NS4wMjg1NzFhNDguMjAxMTQzIDQ4LjIwMTE0MyAwIDAgMS00OC40MjA1NzEgNC4zODg1NzIgNDkuMDc4ODU3IDQ5LjA3ODg1NyAwIDAgMS03LjMxNDI4Ni04NC40OGwyMzIuMDA5MTQzLTE2NC4yMDU3MTVINDguNjRjLTI2Ljc3MDI4NiAwLTQ4LjQ5MzcxNC0yMS45NDI4NTctNDguNDkzNzE0LTQ4LjkzMjU3MSAwLTI3LjA2Mjg1NyAyMS43MjM0MjktNDguOTMyNTcxIDQ4LjU2Njg1Ny00OC45MzI1NzF6IG05MjYuOTM5NDI4LTE3NS41NDI4NThINDguNjRhNDguMjc0Mjg2IDQ4LjI3NDI4NiAwIDAgMS0zNC4zMDQtMTQuMzM2IDQ5LjE1MiA0OS4xNTIgMCAwIDEgNC4yNDIyODYtNzIuOTIzNDI4YzIuODUyNTcxLTMuNjU3MTQzIDYuMjkwMjg2LTcuMDIxNzE0IDEwLjI0LTkuODc0Mjg2bDM0Ni4zMzE0MjgtMjQ1LjAyODU3MWE0OC4yMDExNDMgNDguMjAxMTQzIDAgMCAxIDY3LjU4NCAxMS45MjIyODUgNDkuMjI1MTQzIDQ5LjIyNTE0MyAwIDAgMS0xMS44NDkxNDMgNjguMTY5MTQzTDE5OC44NzU0MjkgMTk4LjM2MzQyOWg3NzYuNzc3MTQyYzI2Ljc3MDI4NiAwIDQ4LjQ5MzcxNCAyMS45NDI4NTcgNDguNDkzNzE1IDQ4LjkzMjU3MWE0OC43MTMxNDMgNDguNzEzMTQzIDAgMCAxLTQ4LjQ5MzcxNSA0OC45MzI1NzF6IiAgaG9yaXotYWR2LXg9IjEwNTUiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY3JlYXQtY3VzdG9tLW1hcCIgdW5pY29kZT0iJiM1OTA2NjsiIGQ9Ik03NzAuOTI1NzE0LTU0LjcxMDg1N0gyNTMuMDc0Mjg2YTE3OS45MzE0MjkgMTc5LjkzMTQyOSAwIDAgMC0xNzkuNzEyIDE3OS43MTJWNjQyLjkyNTcxNGExNzkuOTMxNDI5IDE3OS45MzE0MjkgMCAwIDAgMTc5LjcxMiAxNzkuNzEyaDI1MS4zOTJhNTAuMTc2IDUwLjE3NiAwIDEgMCAwLTEwMC40MjUxNDNIMjUzLjAwMTE0M2MtNDMuNzM5NDI5IDAtNzkuMjg2ODU3LTM1LjU0NzQyOS03OS4yODY4NTctNzkuMjg2ODU3di01MTcuOTk3NzE0YzAtNDMuNzM5NDI5IDM1LjU0NzQyOS03OS4yODY4NTcgNzkuMjg2ODU3LTc5LjI4Njg1N2g1MTcuOTk3NzE0YzQzLjczOTQyOSAwIDc5LjI4Njg1NyAzNS41NDc0MjkgNzkuMjg2ODU3IDc5LjI4Njg1N1YzODguMTY5MTQzYTUwLjE3NiA1MC4xNzYgMCAxIDAgMTAwLjQyNTE0MyAwdi0yNjMuMTY4YTE3OS45MzE0MjkgMTc5LjkzMTQyOSAwIDAgMC0xNzkuNzEyLTE3OS43MTJ6TTkwMC41MzQ4NTcgNTUyLjM3NDg1N0g1NjAuNTY2ODU3YTUwLjE3NiA1MC4xNzYgMCAwIDAgMCAxMDAuMzUyaDMzOS45NjhhNTAuMjQ5MTQzIDUwLjI0OTE0MyAwIDAgMCAwLTEwMC4zNTJ6TTczMC41NTA4NTcgMzgyLjM5MDg1N2E1MC4xNzYgNTAuMTc2IDAgMCAwLTUwLjE3NiA1MC4xNzZWNzcyLjUzNDg1N2E1MC4xNzYgNTAuMTc2IDAgMSAwIDEwMC4zNTIgMHYtMzM5Ljk2OGE1MC4yNDkxNDMgNTAuMjQ5MTQzIDAgMCAwLTUwLjE3Ni01MC4xNzZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY3VzdG9tLW1hcCIgdW5pY29kZT0iJiM1OTA2NzsiIGQ9Ik05MzYuNTUwNCA3ODMuMzZMNzUyLjUzNzYgODMwLjcyYTI4LjA1NzYgMjguMDU3NiAwIDAgMS0xOS43NjMyLTIuMjI3MmwtMjE1LjYyODgtMTEwLjA4LTE5OC40IDkyLjI4OGEyOC4wNTc2IDI4LjA1NzYgMCAwIDEtMjMuMDY1NiAwLjMwNzJMODIuMTc2IDcxOC4xODI0Yy0xMS44NTI4LTUuMTQ1Ni0xOS42MDk2LTE3LjkyLTE5LjYwOTYtMzIuMDUxMnYtNjUzLjUxNjhjMC0xMS4zNjY0IDQuOTkyLTIyLjAxNiAxMy40MTQ0LTI4LjQxNiA4LjM5NjgtNi40IDE5LjA5NzYtNy43MzEyIDI4LjU2OTYtMy42MzUybDIwMS45MzI4IDg3Ljc4MjQgMTk5LjM0NzItOTIuNzc0NGMzLjc4ODgtMS43NDA4IDcuODMzNi0yLjYzNjggMTEuODc4NC0yLjYzNjggNC4zNzc2IDAgOC43NTUyIDEuMDQ5NiAxMi44NTEyIDMuMTIzMmwxNS45NzQ0IDguMTY2NC0yNy4zNDA4IDYxLjY5Ni0yLjA0OC0xLjA0OTYtMTk4LjQgOTIuMjg4YTI4LjE2IDI4LjE2IDAgMCAxLTIzLjA2NTYgMC4zMzI4TDEyNC4yMTEyIDgyLjk0NFY2NjIuNjA0OGwxODIuMjcyIDc5LjI1NzYgMTk5LjM0NzItOTIuNzQ4OGM3LjkzNi0zLjcxMiAxNi44OTYtMy41MzI4IDI0LjcyOTYgMC40NjA4bDIxOC4zNDI0IDExMS40NjI0IDE0OS44ODgtMzguNTUzNnYtNTgyLjkxMmwtMjkuMDMwNCA3LjQ0OTYtMTQuNjY4OC0zMy4wNzUyYy0yLjMwNC01Ljc4NTYtNC44NjQtMTEuNTItNy42MDMyLTE3LjA3NTJsLTAuNDYwOC0xLjEwMDgtNS4zNzYtMTIuMTA4OCA4MS4wNDk2LTIwLjgzODRhMjguNDE2IDI4LjQxNiAwIDAgMSAyNi4xMTIgNi42MDQ4YzcuMzcyOCA2LjUwMjQgMTEuNjQ4IDE2LjQwOTYgMTEuNjQ4IDI2LjkzMTJWNzQ5LjgyNGMwIDE2LjAyNTYtOS45MDcyIDI5LjkwMDgtMjMuOTEwNCAzMy41MzZ6TTI4Ny44MjA4IDY1My4yODY0di00MTQuNzJjMC03LjYwMzIgOC41NTA0LTEzLjc0NzIgMTkuMDQ2NC0xMy43NDcyczE5LjA0NjQgNi4xNDQgMTkuMDQ2NCAxMy43NDcydjQxNC43MmMwIDcuNjAzMi04LjU1MDQgMTMuNzcyOC0xOS4wNDY0IDEzLjc3MjhzLTE5LjA0NjQtNi4xNjk2LTE5LjA0NjQtMTMuNzcyOHogbTIxMC44NDE2LTkxLjYyMjR2LTIwOC42OTEyYzAtNy42MDMyIDguNTUwNC0xMy43NzI4IDE5LjA0NjQtMTMuNzcyOHMxOS4wNDY0IDYuMTQ0IDE5LjA0NjQgMTMuNzcyOHYyMDguNjkxMmMwIDcuNjAzMi04LjU1MDQgMTMuNzk4NC0xOS4wNDY0IDEzLjc5ODRzLTE5LjA0NjQtNi4xOTUyLTE5LjA0NjQtMTMuNzk4NHogbTI3MC4wOC0xMzAuOTY5NlY2ODIuNzAwOGMwIDcuNjAzMi04LjUyNDggMTMuNzcyOC0xOS4wNDY0IDEzLjc3MjgtMTAuNTQ3MiAwLTE5LjA0NjQtNi4xNjk2LTE5LjA0NjQtMTYuNjE0NHYtMjUyLjAzMmMwLTQuNzM2IDguNDk5Mi0xMC45MzEyIDE5LjA0NjQtMTAuOTMxMiAxMC41MjE2IDAgMTkuMDcyIDYuMTk1MiAxOS4wNzIgMTMuNzcyOHogbS0xNzguNTA4OC00OTAuOTA1Nmw4MS40MDggNTkuOTA0LTYzLjg5NzYgNDguNDM1Mi0xNy41MTA0LTEwOC4zMzkyeiBtMjI0LjIzMDQgMjg1LjQxNDRsLTY2LjQ1NzYgNTIuOTY2NC0xMzIuOTQwOC0yMTEuNDA0OCA2OS4xMi01NS40NDk2IDEzMC4yNzg0IDIxMy44ODh6IG0zMy40ODQ4IDg2LjM0ODhzLTE3Ljc5MiAxNS4yNTc2LTM3LjEyIDI1LjY3NjhjLTE5LjMwMjQgMTAuNDE5Mi0zMC4xMzEyLTYuMTQ0LTMwLjEzMTItNi4xNDRsLTIzLjU1Mi0zOC4wNDE2IDY5LjE3MTItNTMuMTQ1NnMyMC4xNDcyIDMyLjgxOTIgMjYuMTg4OCA0My44NTI4YzYuMDQxNiAxMS4wNTkyLTQuNTU2OCAyNy44MDE2LTQuNTU2OCAyNy44MDE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImxlZ2VuZC1mb2xkIiB1bmljb2RlPSImIzU5MDY4OyIgZD0iTTUxMiA2NzYuNTcxNDI5YTYwLjYzNTQyOSA2MC42MzU0MjkgMCAwIDEtNDMuNDQ2ODU3LTE4LjQzMmwtMzc3LjQxNzE0My0zODYuMTk0Mjg2YTYzLjkyNjg1NyA2My45MjY4NTcgMCAwIDEgMC04OC45NDE3MTQgNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMSA4Ni45NjY4NTcgMEw1MTIgNTI0LjcyNjg1N2wzMzMuODk3MTQzLTM0MS43MjM0MjhhNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMSA4Ni45NjY4NTcgMCA2My45MjY4NTcgNjMuOTI2ODU3IDAgMCAxIDAgODguOTQxNzE0bC0zNzcuNDE3MTQzIDM4Ni4xOTQyODZBNjAuNTYyMjg2IDYwLjU2MjI4NiAwIDAgMSA1MTIgNjc2LjU3MTQyOXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWdlbmQtdW5mb2xkIiB1bmljb2RlPSImIzU5MDY5OyIgZD0iTTUxMiA5MS40Mjg1NzFhNjAuNjM1NDI5IDYwLjYzNTQyOSAwIDAgMC00My40NDY4NTcgMTguNDMybC0zNzcuNDE3MTQzIDM4Ni4xOTQyODZhNjMuOTI2ODU3IDYzLjkyNjg1NyAwIDAgMCAwIDg4Ljk0MTcxNCA2MC40ODkxNDMgNjAuNDg5MTQzIDAgMCAwIDg2Ljk2Njg1NyAwTDUxMiAyNDMuMjczMTQzbDMzMy44OTcxNDMgMzQxLjcyMzQyOGE2MC40ODkxNDMgNjAuNDg5MTQzIDAgMCAwIDg2Ljk2Njg1NyAwIDYzLjkyNjg1NyA2My45MjY4NTcgMCAwIDAgMC04OC45NDE3MTRsLTM3Ny40MTcxNDMtMzg2LjE5NDI4NkE2MC41NjIyODYgNjAuNTYyMjg2IDAgMCAwIDUxMiA5MS40Mjg1NzF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGVnZW5kLWJpZyIgdW5pY29kZT0iJiM1OTA3MDsiIGQ9Ik0zMDcuMiA0ODYuNGgxMDIuNFY1ODguOEgzMDcuMnogbTAtMTUzLjZoMTAyLjRWNDM1LjJIMzA3LjJ6IG0wLTE1My42aDEwMi40djEwMi40SDMwNy4yeiBtMTUzLjYgMzA3LjJoMjU2VjU4OC44SDQ2MC44eiBtMzA3LjIgMzA3LjJIMjU2YTE1My42IDE1My42IDAgMCAxLTE1My42LTE1My42di01MTJhMTUzLjYgMTUzLjYgMCAwIDEgMTUzLjYtMTUzLjZoNTEyYTE1My42IDE1My42IDAgMCAxIDE1My42IDE1My42VjY0MGExNTMuNiAxNTMuNiAwIDAgMS0xNTMuNiAxNTMuNnogbTUxLjItNjY1LjZhNTEuMiA1MS4yIDAgMCAwLTUxLjItNTEuMkgyNTZhNTEuMiA1MS4yIDAgMCAwLTUxLjIgNTEuMlY2NDBhNTEuMiA1MS4yIDAgMCAwIDUxLjIgNTEuMmg1MTJhNTEuMiA1MS4yIDAgMCAwIDUxLjItNTEuMnogbS0zNTguNCAyMDQuOGgyNTZWNDM1LjJINDYwLjh6IG0wLTE1My42aDI1NnYxMDIuNEg0NjAuOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJhdHRyaWJ1dGUiIHVuaWNvZGU9IiYjNTkwNzE7IiBkPSJNMTAyNCA1MTEuMzQxNzE0VjcyNC42MjYyODZDMTAyNCA4MDMuMTA4NTcxIDk1OC40NjQgODY2Ljc0Mjg1NyA4NzcuNzE0Mjg2IDg2Ni43NDI4NTdIMTQ2LjI4NTcxNEM2NS41MzYgODY2Ljc0Mjg1NyAwIDgwMy4xMDg1NzEgMCA3MjQuNjI2Mjg2di03MTAuNTA5NzE1QzAtNjQuMzY1NzE0IDY1LjUzNi0xMjggMTQ2LjI4NTcxNC0xMjhoNzMxLjQyODU3MmM4MC43NDk3MTQgMCAxNDYuMjg1NzE0IDYzLjYzNDI4NiAxNDYuMjg1NzE0IDE0Mi4xMTY1NzF6TTk0LjU3MzcxNCA3NzQuODc1NDI5YzEzLjY3NzcxNCAxMy4zODUxNDMgMzIuMzI5MTQzIDIwLjkxODg1NyA1MS43ODUxNDMgMjAuODQ1NzE0aDczMS41MDE3MTRjMTkuNDU2IDAgMzguMDM0Mjg2LTcuNTMzNzE0IDUxLjcxMi0yMC44NDU3MTQgMTMuNzUwODU3LTEzLjM4NTE0MyAyMS4zNTc3MTQtMzEuNDUxNDI5IDIxLjM1NzcxNS01MC4zMjIyODZ2LTE0Mi4xODk3MTRINzMuMDY5NzE0VjcyNC41NTMxNDNjMCAxOC44NzA4NTcgNy42OCAzNy4wMTAyODYgMjEuNTA0IDUwLjMyMjI4NnogbTMwNy41NjU3MTUtNTEyLjIxOTQyOXYyNDguNjg1NzE0aDIxOS43MjExNDJ2LTI0OC42ODU3MTR6IG0yMTkuNzIxMTQyLTcwLjk0ODU3MXYtMjQ4LjY4NTcxNUg0MDIuMTM5NDI5djI0OC42ODU3MTV6IG0tMjkyLjc5MDg1NyA3MC45NDg1NzFINzMuMTQyODU3djI0OC42ODU3MTRoMjU2eiBtLTIzNC40OTYtMjk4LjkzNDg1N2E2OS40ODU3MTQgNjkuNDg1NzE0IDAgMCAwLTIxLjUwNCA1MC4xNzZWMTkxLjYzNDI4NmgyNTZ2LTI0OC42ODU3MTVIMTQ2LjM1ODg1N2E3My44NzQyODYgNzMuODc0Mjg2IDAgMCAwLTUxLjc4NTE0MyAyMC43NzI1NzJ6TTk1MC44NTcxNDMgMTMuODk3MTQzYzAtMTguNzk3NzE0LTcuNjgtMzYuODY0LTIxLjM1NzcxNC01MC4xNzZzLTMyLjMyOTE0My0yMC43NzI1NzEtNTEuNzEyLTIwLjY5OTQyOUg2OTQuOTMwMjg2djI0OC42ODU3MTVIOTUwLjg1NzE0M3ogbTAgMjQ4Ljc1ODg1N0g2OTQuODU3MTQzdjI0OC42ODU3MTRIOTUwLjg1NzE0M3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWdlbmQtc21hbGwiIHVuaWNvZGU9IiYjNTkwNzI7IiBkPSJNMjczLjM0Njg1MSAxODUuNTY0Mjc5Yy0xOS4wMTcwNjEgMC0zOC4xMDcyNjUtMTkuMTYzMzQ2LTM4LjEwNzI2NS0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xMDcyNjUtMzguMzk5ODM2IDM4LjEwNzI2NSAxOS4yMzY0ODkgMzguMTA3MjY2IDM4LjM5OTgzNmMwIDI1LjU5OTg5LTEyLjY1MzY2IDM4LjM5OTgzNS0zOC4xMDcyNjYgMzguMzk5ODM1eiBtMCA0NzMuNTk3OTdjLTE5LjAxNzA2MSAwLTM4LjEwNzI2NS0xOS4xNjMzNDYtMzguMTA3MjY1LTM4LjM5OTgzNXMxOS4wMTcwNjEtMzguMzk5ODM1IDM4LjEwNzI2NS0zOC4zOTk4MzYgMzguMTA3MjY1IDE5LjIzNjQ4OSAzOC4xMDcyNjYgMzguMzk5ODM2LTEyLjY1MzY2IDM4LjM5OTgzNS0zOC4xMDcyNjYgMzguMzk5ODM1eiBtMC0yMzYuNzYyNDE0Yy0xOS4wMTcwNjEgMC0zOC4xMDcyNjUtMTkuMjM2NDg5LTM4LjEwNzI2NS0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xMDcyNjUtMzguMzk5ODM1IDM4LjEwNzI2NSAxOS4xNjMzNDYgMzguMTA3MjY2IDM4LjM5OTgzNS0xMi42NTM2NiAzOC4zOTk4MzUtMzguMTA3MjY2IDM4LjM5OTgzNXpNODU4LjEyMTQ4OCA4OTUuOTk3ODA2aC02OTkuMjQyNzE3QTE1Ny45MTQ3NTIgMTU3LjkxNDc1MiAwIDAgMSAwLjAxMzE2NiA3MzUuOTYxOTJWMjUuNjAxNTM2QzAuMDEzMTY2LTU3LjYzNDY3OSA2OS45Mzc0MzctMTI3Ljk5NzgwNiAxNTguOTUxOTEzLTEyNy45OTc4MDZoNzA1LjUzMjk3NmExNTcuOTE0NzUyIDE1Ny45MTQ3NTIgMCAwIDEgMTU4LjkzODc0OCAxNTkuOTYyNzQzVjczNS45NjE5MkMxMDE3LjA2MDIzNiA4MjUuNTYxNTM2IDk0Ny4xMzU5NjQgODk1Ljk5NzgwNiA4NTguMTIxNDg4IDg5NS45OTc4MDZ6IG04Mi42NTEwNzQtODY0LjAzMjg2OWE3Ny41MzEwOTYgNzcuNTMxMDk2IDAgMCAwLTc2LjI4NzY3My03Ni43OTk2NzFIMTU4Ljk1MTkxM2MtNDQuNTQzODA5IDAtNzYuMjg3NjczIDM4LjM5OTgzNS03Ni4yODc2NzMgNzYuNzk5NjcxVjczNi4wMzUwNjNjMCA0NC43NjMyMzcgMzguMTA3MjY1IDc2Ljc5OTY3MSA3Ni4yODc2NzMgNzYuNzk5NjcxaDcwNS41MzI5NzZjNDQuNTQzODA5IDAgNzYuMjg3NjczLTM4LjM5OTgzNSA3Ni4yODc2NzMtNzYuNzk5NjcxeiBtLTE5Ny4wNDYwMTIgNjI3LjE5NzMxMkg0MzIuMjg1NTk5Yy0yNS40NTM2MDUgMC0zOC4xODA0MDgtMTkuMTYzMzQ2LTM4LjE4MDQwOC0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xODA0MDgtMzguMzk5ODM2aDMxMS40NDA5NTFjMTkuMDE3MDYxIDAgMzguMTA3MjY1IDE5LjIzNjQ4OSAzOC4xMDcyNjUgMzguMzk5ODM2cy0xOS4wMTcwNjEgMzguMzk5ODM1LTM4LjEwNzI2NSAzOC4zOTk4MzV6IG0wLTIzNi43NjI0MTRINDMyLjI4NTU5OWMtMjUuNDUzNjA1IDAtMzguMTgwNDA4LTE5LjIzNjQ4OS0zOC4xODA0MDgtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTgwNDA4LTM4LjM5OTgzNWgzMTEuNDQwOTUxYzE5LjAxNzA2MSAwIDM4LjEwNzI2NSAxOS4xNjMzNDYgMzguMTA3MjY1IDM4LjM5OTgzNXMtMTkuMDE3MDYxIDM4LjM5OTgzNS0zOC4xMDcyNjUgMzguMzk5ODM1eiBtMC0yMzYuODM1NTU2SDQzMi4yODU1OTljLTE5LjA5MDIwNCAwLTM4LjE4MDQwOC0xOS4xNjMzNDYtMzguMTgwNDA4LTM4LjM5OTgzNXMxOS4wMTcwNjEtMzguMzk5ODM1IDM4LjE4MDQwOC0zOC4zOTk4MzZoMzExLjQ0MDk1MWMxOS4wMTcwNjEgMCAzOC4xMDcyNjUgMTkuMjM2NDg5IDM4LjEwNzI2NSAzOC4zOTk4MzYgMCAyNS41OTk4OS0xOS4wMTcwNjEgMzguMzk5ODM1LTM4LjEwNzI2NSAzOC4zOTk4MzV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iY2xvc2UtbGVnZW5kIiB1bmljb2RlPSImIzU5MDczOyIgZD0iTTY0My4xNDUxNDMgNTg2Ljg5ODI4Nkw1MTIgNDU1LjY4IDM4MC44NTQ4NTcgNTg2Ljg5ODI4NmwtNzEuNjgtNzEuNzUzMTQzTDQ0MC4xNzM3MTQgMzg0IDMwOS4xMDE3MTQgMjUyLjg1NDg1N2w3MS43NTMxNDMtNzEuNjhMNTEyIDMxMi4xNzM3MTRsMTMxLjE0NTE0My0xMzEuMTQ1MTQzIDcxLjY4IDcxLjc1MzE0M0w1ODMuODI2Mjg2IDM4NGwxMzEuMTQ1MTQzIDEzMS4xNDUxNDN6TTUxMiA4OTEuMTcyNTcxQTUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSA0Ljc1NDI4NiAzODQgNTA3LjA5OTQyOSA1MDcuMDk5NDI5IDAgMCAxIDUxMi0xMjMuMjQ1NzE0IDUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSAxMDE5LjI0NTcxNCAzODQgNTA3LjA5OTQyOSA1MDcuMDk5NDI5IDAgMCAxIDUxMiA4OTEuMjQ1NzE0eiBtMC05MTIuOTY5MTQyQTQwNi4zMDg1NzEgNDA2LjMwODU3MSAwIDAgMCAxMDYuMjAzNDI5IDM4NCA0MDYuMzA4NTcxIDQwNi4zMDg1NzEgMCAwIDAgNTEyIDc4OS43OTY1NzEgNDA2LjMwODU3MSA0MDYuMzA4NTcxIDAgMCAwIDkxNy43OTY1NzEgMzg0IDQwNi4zMDg1NzEgNDA2LjMwODU3MSAwIDAgMCA1MTItMjEuNzk2NTcxeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImZvbnQtY29sb3IiIHVuaWNvZGU9IiYjNTkwNzQ7IiBkPSJNNDk1Ljg3MiA4MzJMMjQ0LjIyNCAxNjBoMTE5LjY4bDUyLjIyNCAxNTYuOGgyNTUuNzQ0bDU2LjMyLTE1Ni44aDExOS42OEw1OTYuMjg4IDgzMkg0OTUuODcyek01NDQgNjg5LjE1Mmw5Mi4xNi0yNzguNTI4SDQ0Ny43NDRMNTQ0IDY4OS4yMTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYm9sZCIgdW5pY29kZT0iJiM1OTA3NTsiIGQ9Ik0zODQgMzk3LjgyNGgyMDguODk2YzMwLjcyIDAgNTYuMzIgOC43MDQgNzYuOCAyNi4xMTIgMjAuNDggMTcuNDA4IDMwLjcyIDQyLjQ5NiAzMC43MiA3NS4yNjQgMCAzNi44NjQtOS4yMTYgNjIuNzg0LTI3LjY0OCA3Ny44MjQtMTguNDMyIDE1LjA0LTQ1LjA1NiAyMi41MjgtNzkuODcyIDIyLjUyOEgzODR2LTIwMS43Mjh6TTI1NiA3MDRoMzU1LjMyOGM2NS41MzYgMCAxMTguMDgtMTUuMDQgMTU3LjY5Ni00NS4wNTYgMzkuNjE2LTMwLjA4IDU5LjM5Mi03NS40NTYgNTkuMzkyLTEzNi4xOTIgMC0zNi44NjQtOS4wMjQtNjguNDgtMjcuMTM2LTk0LjcyLTE4LjExMi0yNi4yNC00My44NC00Ni41OTItNzcuMzEyLTYwLjkyOHYtMi4wNDhjNDUuMDU2LTkuNiA3OS4xNjgtMzAuOTEyIDEwMi40LTY0czM0LjgxNi03NC41NiAzNC44MTYtMTI0LjQxNmMwLTI4LjY3Mi01LjEyLTU1LjQ4OC0xNS4zNi04MC4zODQtMTAuMjQtMjQuOTYtMjYuMjQtNDYuNC00OC4xMjgtNjQuNTEyLTIxLjgyNC0xOC4xMTItNDkuODU2LTMyLjQ0OC04My45NjgtNDMuMDA4LTM0LjExMi0xMC41Ni03NC43NTItMTUuODcyLTEyMS44NTYtMTUuODcySDI1NlY3MDR6IG0xMjgtNjI2LjY4OGgyMjYuMzA0YzM4LjkxMiAwIDY5LjEyIDEwLjA0OCA5MC42MjQgMzAuMjA4IDIxLjUwNCAyMC4xNiAzMi4yNTYgNDguNjQgMzIuMjU2IDg1LjUwNCAwIDM2LjE2LTEwLjc1MiA2NC0zMi4yNTYgODMuNDU2LTIxLjUwNCAxOS40NTYtNTEuNzEyIDI5LjE4NC05MC42MjQgMjkuMTg0SDM4NHYtMjI4LjM1MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJpdGFsaWNzIiB1bmljb2RlPSImIzU5MDc2OyIgZD0iTTYxNi41MTIgNTc2bC03OS4wNC00NDhINzA0di0xMjhIMjU2djEyOGgxNTEuNDg4bDc5LjA0IDQ0OEgzMjBWNzA0aDQ0OHYtMTI4SDYxNi41MTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZm9udCIgdW5pY29kZT0iJiM1OTA3NzsiIGQ9Ik04NzUuMjY0IDBoLTEwNi42ODhhMjAuNjA4IDIwLjYwOCAwIDAgMC0xOS4zMjggMTMuNTY4bC03Ny40NCAyMDYuMjA4SDQwNC40OGwtNzIuODMyLTIwNS43NmEyMC43MzYgMjAuNzM2IDAgMCAwLTE5LjQ1Ni0xNC4wMTZIMjEyLjczNmEyMC44IDIwLjggMCAwIDAtMTcuMTUyIDkuMjE2IDIxLjY5NiAyMS42OTYgMCAwIDAtMi4xNzYgMTkuNjQ4TDQ2NS4yMTYgNzU0LjQzMkEyMC42NzIgMjAuNjcyIDAgMCAwIDQ4NC42MDggNzY4aDEwMC45MjhjOC4zMiAwIDE2LTUuMTg0IDE5LjItMTMuMTg0bDI4OS43MjgtNzI1LjUwNGEyMS40NCAyMS40NCAwIDAgMC0xLjk4NC0xOS44NCAyMC42NzIgMjAuNjcyIDAgMCAwLTE3LjIxNi05LjQ3MnpNNDQ2Ljg0OCAzNDAuNDE2aDE4MC4yMjRsLTYzLjM2IDE3Mi4yMjRjLTEwLjU2IDI4LjgtMTkuOTY4IDU1LjI5Ni0yOC4wOTYgNzkuMzYtNi4yNzItMjIuNTI4LTEzLjQ0LTQ0Ljk5Mi0yMS40NC02Ny4zMjhsLTY3LjMyOC0xODQuMzJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ianVzdGlmeS1hbGlnbiIgdW5pY29kZT0iJiM1OTA3ODsiIGQ9Ik0xMjggMzg0VjUxMmg3Njh2LTEyOEgxMjh6IG0wIDE5MlY3MDRoNzY4di0xMjhIMTI4eiBtMC01NzZ2MTI4aDc2OHYtMTI4SDEyOHogbTc2OCAzMjB2LTEyOEgxMjhWMzIwaDc2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtaWRkbGUtYWxpZ25tZW4iIHVuaWNvZGU9IiYjNTkwNzk7IiBkPSJNMjU2IDM4NFY1MTJoNTEydi0xMjhIMjU2ek0xMjggNTc2VjcwNGg3Njh2LTEyOEgxMjh6IG0wLTU3NnYxMjhoNzY4di0xMjhIMTI4eiBtNjQwIDMyMHYtMTI4SDI1NlYzMjBoNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImZvbnQtc2l6ZSIgdW5pY29kZT0iJiM1OTA4MDsiIGQ9Ik0yNjEuNTA0IDI5My42MzJsMTAzLjY4IDM0Mi44NDggMTA0LjA2NC0zNDIuODQ4SDI2MS41MDRNNDU4LjY4OCA3NjhoLTE1OC4wOEw2NCAwaDEwOS42MzJsNTUuOTM2IDE4Mi43ODRINTAzLjY4TDU2MC42NCAwaDEzNy4yOEw0NTguNjg4IDc2OG0yNDguNTc2LTU5MC4wOGw2MC4xNiAxNjMuODQgNjAuMjI0LTE2My44NGgtMTIwLjM4NG0xMTQuMzA0IDI0MC4xMjhoLTkxLjU4NGwtNzMuNi0yMDMuNDU2IDMxLjg3Mi0xMDIuNDY0IDAuNTEyIDEuNDcyaDE1OC43ODRsMzMuMDI0LTEwNS43OTJIOTYwbC0xMzguNDMyIDQxMC4yNCIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InN0cmlrZW91dCIgdW5pY29kZT0iJiM1OTA4MTsiIGQ9Ik0zMzIuNDggMzg0QzI4NS41MDQgNDI0LjE5MiAyNTYgNDgwLjQ0OCAyNTYgNTQ0IDI1NiA2NzAuNTI4IDM3Mi45MjggNzY4IDUxMiA3NjhzMjU2LTk3LjQ3MiAyNTYtMjI0aC0xMjhDNjQwIDU5NC4xNzYgNTg0Ljk2IDY0MCA1MTIgNjQwYy03Mi45NiAwLTEyOC00NS44MjQtMTI4LTk2UzQzOS4wNCA0NDggNTEyIDQ0OGM2OS4yNDggMCAxMzIuOTI4LTI0LjEyOCAxNzkuNTItNjRIODMydi02NGgtODguMzJjMTUuNTUyLTI4Ljg2NCAyNC4zMi02MS4zNzYgMjQuMzItOTYgMC0xMjYuNTI4LTExNi45MjgtMjI0LTI1Ni0yMjRzLTI1NiA5Ny40NzItMjU2IDIyNGgxMjhjMC01MC4xNzYgNTUuMDQtOTYgMTI4LTk2IDcyLjk2IDAgMTI4IDQ1LjgyNCAxMjggOTZTNTg0Ljk2IDMyMCA1MTIgMzIwSDI1NlYzODRoNzYuNDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idGV4dC1sYXllciIgdW5pY29kZT0iJiM1OTA4MjsiIGQ9Ik01NzYgNjQwdi03NjhINDQ4VjY0MEg2NFY4MzJoODk2di0xOTJINTc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InJpZ2h0LWFsaWdubWVudCIgdW5pY29kZT0iJiM1OTA4MzsiIGQ9Ik0zODQgNTc2VjcwNGg1MTJ2LTEyOEgzODR6IG0xMjgtMTkyVjUxMmgzODR2LTEyOEg1MTJ6IG0tMzg0LTM4NHYxMjhoNzY4di0xMjhIMTI4eiBtNzY4IDMyMHYtMTI4SDM4NFYzMjBoNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9ImxlZnQtYWxpZ25tZW50IiB1bmljb2RlPSImIzU5MDg0OyIgZD0iTTEyOCA1NzZWNzA0aDUxMnYtMTI4SDEyOHogbTAtMTkyVjUxMmgzODR2LTEyOEgxMjh6IG0wLTM4NHYxMjhoNzY4di0xMjhIMTI4eiBtNTEyIDMyMHYtMTI4SDEyOFYzMjBoNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPgoKICAgIAogICAgPGdseXBoIGdseXBoLW5hbWU9InRyYW5zcGFyZW50LWJhY2tncm91IiB1bmljb2RlPSImIzU5MDg1OyIgZD0iTTIyMC44IDgzMkw2NCA2NzUuMnYtNzEuMTY4TDI5MS45NjggODMySDIyMC44NjR6IG0xOTMuMzQ0IDBMNjQgNDgxLjg1NnYtNzEuMTY4TDQ4NS4zMTIgODMySDQxNC4wOHogbTE5My4yOCAwTDY0IDI4OC41MTJ2LTcxLjEwNEw2NzguNTkyIDgzMkg2MDcuNDg4eiBtMTkzLjM0NCAwTDY0IDk1LjIzMnYtNzEuMTY4TDg3MS45MzYgODMyaC03MS4xNjh6TTk2MCA3OTUuMzkyYTQ0LjggNDQuOCAwIDAgMS05Ljc5Mi03LjI5NkwxMDAuNjcyLTYxLjQ0Yy0wLjgzMi0wLjc2OC0xLjIxNi0xLjcyOC0xLjkyLTIuNTZoNzAuNDY0TDk2MCA3MjYuNzg0Vjc5NS4zOTJ6IG0wLTE5MC43ODRMMjkxLjM5Mi02NGg3MS4xNjhMOTYwIDUzMy40NFY2MDQuNjA4eiBtMC0xOTMuMjhMNDg0LjczNi02NGg3MS4xMDRMOTYwIDM0MC4xNlY0MTEuMjY0eiBtMC0xOTMuMzQ0TDY3OC4wMTYtNjRoNzEuMTY4TDk2MCAxNDYuODE2djcxLjE2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ1bmRlcmxpbmUiIHVuaWNvZGU9IiYjNTkwODY7IiBkPSJNNjQwIDcwNGgxMjh2LTM1OC40YzAtMTE5LjI5Ni05Mi4xNi0yMTcuNi0yMDgtMjE3LjZoLTk2QzM0OC4xNiAxMjggMjU2IDIyNi4zMDQgMjU2IDM0NS42VjcwNGgxMjh2LTM1OC40YzAtNTAuMzY4IDM2LjgtODkuNiA4MC04OS42aDk2QzYwMy4yIDI1NiA2NDAgMjk1LjIzMiA2NDAgMzQ1LjZWNzA0ek0yNTYgNjRoNTEydi02NEgyNTZ2NjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+CgogICAgCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icXVlcnkiIHVuaWNvZGU9IiYjNTkwODc7IiBkPSJNNTEyIDg5NC45NzZDMjI5LjIyOTcxNCA4OTQuOTc2IDAgNjY2LjE4NTE0MyAwIDM4NGMwLTI4Mi4xODUxNDMgMjI5LjIyOTcxNC01MTAuOTc2IDUxMi01MTAuOTc2UzEwMjQgMTAxLjgxNDg1NyAxMDI0IDM4NEMxMDI0IDY2Ni4xODUxNDMgNzk0Ljc3MDI4NiA4OTQuOTc2IDUxMiA4OTQuOTc2eiBtNDkuNzM3MTQzLTgwNS44MTQ4NTdhMjUuNiAyNS42IDAgMCAwLTI1LjYtMjUuNkg0NTkuMzM3MTQzYTI1LjYgMjUuNiAwIDAgMC0yNS42IDI1LjZWMTY1LjgxNDg1N2EyNS42IDI1LjYgMCAwIDAgMjUuNiAyNS41MjY4NTdoNzYuOGEyNS42IDI1LjYgMCAwIDAgMjUuNi0yNS42di03Ni41ODA1NzF6IG0xMjYuODI5NzE0IDM1MS42NzA4NTdjLTEwLjI0LTE0LjYyODU3MS0zMy42NDU3MTQtMzMuMjgtNjIuOTAyODU3LTU2LjAyNzQyOWwtMzIuNDAyMjg2LTIyLjM4MTcxNGMtMTUuNzI1NzE0LTEyLjE0MTcxNC0yOS42OTYtMjYuMzMxNDI5LTM0LjgxNi00Mi41NjkxNDNhMTMwLjE5NDI4NiAxMzAuMTk0Mjg2IDAgMCAxLTMuOTQ5NzE0LTI0LjQyOTcxNGMtMC41MTItNC45NzM3MTQtNC45MDA1NzEtMTUuMDY3NDI5LTE1LjI4Njg1Ny0xNS4wNjc0MjloLTgzLjM4Mjg1N2MtMTMuNDU4Mjg2IDAtMTUuODcyIDEwLjYwNTcxNC0xNS42NTI1NzIgMTUuNzk4ODU4IDEuNDYyODU3IDMzLjkzODI4NiA0LjYwOCA2NC4wNzMxNDMgMTguNDMyIDgwLjMxMDg1NyAyOC4wODY4NTcgMzIuODQxMTQzIDkxLjk0MDU3MSA3My43MjggOTEuOTQwNTcyIDczLjcyOCA5LjcyOCA3LjMxNDI4NiAxNy41NTQyODYgMTUuMjg2ODU3IDIzLjU1MiAyMy45MTc3MTQgMTAuODI1MTQzIDE0LjkyMTE0MyAxOS43NDg1NzEgMzEuMjMyIDE5Ljc0ODU3MSA0OS4xNTIgMCAyMC40OC01Ljk5NzcxNCAzOS4yNzc3MTQtMTguMDY2Mjg2IDU2LjE3MzcxNC0xMi4wNjg1NzEgMTYuODk2LTM0LjA4NDU3MSAyNS4zODA1NzEtNjYuMDQ4IDI1LjM4MDU3Mi0zMS40NTE0MjkgMC01My42ODY4NTctMTAuNDU5NDI5LTY2Ljg1MjU3MS0zMS4yMzItOS43MjgtMTUuMzYtMTUuNzk4ODU3LTI5LjU0OTcxNC0xOC4yODU3MTQtNDQuOTA5NzE1LTAuOTUwODU3LTUuNDg1NzE0LTQuMzg4NTcxLTE2Ljk2OTE0My0xNi4wOTE0MjktMTYuOTY5MTQySDMyNy4xNjhjLTE3LjI2MTcxNCAwLTIxLjA2NTE0MyAxMS4xOTA4NTctMjAuNjI2Mjg2IDE2LjYwMzQyOCA2LjI5MDI4NiA2OC4wMjI4NTcgMzIuOTE0Mjg2IDExNC40Njg1NzEgODAuMDE4Mjg2IDE0NC4zMTA4NTcgMzEuOTYzNDI5IDIwLjQ4IDcxLjM4NzQyOSAzMC44NjYyODYgMTE4LjEyNTcxNCAzMC44NjYyODYgNjEuMzY2ODU3IDAgMTEyLjM0NzQyOS0xNC42Mjg1NzEgMTUyLjk0MTcxNS00My44ODU3MTQgNDAuNTk0Mjg2LTI5LjI1NzE0MyA2MC45MjgtNzIuNDg0NTcxIDYwLjkyOC0xMjkuOTAxNzE1IDAtMzUuMTA4NTcxLTEyLjQzNDI4Ni02NC44MDQ1NzEtMjkuOTg4NTcyLTg4Ljg2ODU3MXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4KCiAgICAKCgogIDwvZm9udD4KPC9kZWZzPjwvc3ZnPgo=#supermapol-icons) format('svg')}[class*=" supermapol-icons-"],[class^=supermapol-icons-]{font-family:supermapol-icons!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.supermapol-icons-map:before{content:""}.supermapol-icons-more:before{content:"\e61d"}.supermapol-icons-delete:before{content:"\e61f"}.supermapol-icons-visible:before{content:"\e620"}.supermapol-icons-zoom-to:before{content:"\e621"}.supermapol-icons-output:before{content:"\e622"}.supermapol-icons-opacity:before{content:"\e625"}.supermapol-icons-layer-info:before{content:"\e627"}.supermapol-icons-save:before{content:"\e628"}.supermapol-icons-layer-style:before{content:"\e629"}.supermapol-icons-line-layer:before{content:"\e62a"}.supermapol-icons-skin:before{content:"\e62b"}.supermapol-icons-marker-layer:before{content:"\e62c"}.supermapol-icons-point-layer:before{content:"\e62d"}.supermapol-icons-polygon-layer:before{content:"\e62e"}.supermapol-icons-invisible:before{content:"\e62f"}.supermapol-icons-search:before{content:"\e630"}.supermapol-icons-edit:before{content:"\e633"}.supermapol-icons-layers:before{content:"\e634"}.supermapol-icons-baselayer:before{content:"\e635"}.supermapol-icons-setting:before{content:"\e636"}.supermapol-icons-add:before{content:"\e638"}.supermapol-icons-preview:before{content:"\e637"}.supermapol-icons-refresh:before{content:"\e639"}.supermapol-icons-solid-triangle:before{content:"\e63a"}.supermapol-icons-roadnetwork:before{content:"\e63b"}.supermapol-icons-return:before{content:"\e63c"}.supermapol-icons-packup:before{content:"\e63d"}.supermapol-icons-share:before{content:"\e63e"}.supermapol-icons-backhomepage:before{content:"\e659"}.supermapol-icons-MyMaps:before{content:"\e65a"}.supermapol-icons-CreateMap:before{content:"\e65b"}.supermapol-icons-feedback:before{content:"\e65c"}.supermapol-icons-skin1:before{content:"\e65d"}.supermapol-icons-Shape-:before{content:"\e65e"}.supermapol-icons-account:before{content:"\e65f"}.supermapol-icons-Shape-1:before{content:"\e660"}.supermapol-icons-Shape-2:before{content:"\e661"}.supermapol-icons-Shape-3:before{content:"\e662"}.supermapol-icons-Shape-4:before{content:"\e663"}.supermapol-icons-Shape-5:before{content:"\e664"}.supermapol-icons-Shape-6:before{content:"\e665"}.supermapol-icons-Shape-7:before{content:"\e666"}.supermapol-icons-Shape-8:before{content:"\e667"}.supermapol-icons-Shape-9:before{content:"\e668"}.supermapol-icons-Shape-10:before{content:"\e669"}.supermapol-icons-Shape-11:before{content:"\e66a"}.supermapol-icons-Shape-12:before{content:"\e66b"}.supermapol-icons-Shape-13:before{content:"\e66c"}.supermapol-icons-Shape-14:before{content:"\e66d"}.supermapol-icons-Shape-15:before{content:"\e66e"}.supermapol-icons-Shape-16:before{content:"\e66f"}.supermapol-icons-Shape-17:before{content:"\e670"}.supermapol-icons-Shape-18:before{content:"\e671"}.supermapol-icons-Shape-19:before{content:"\e672"}.supermapol-icons-Shape-20:before{content:"\e673"}.supermapol-icons-Shape-21:before{content:"\e674"}.supermapol-icons-Shape-22:before{content:"\e675"}.supermapol-icons-Shape-23:before{content:"\e676"}.supermapol-icons-Shape-24:before{content:"\e677"}.supermapol-icons-Shape-25:before{content:"\e678"}.supermapol-icons-Shape-26:before{content:"\e679"}.supermapol-icons-Shape-27:before{content:"\e67a"}.supermapol-icons-Shape-28:before{content:"\e67b"}.supermapol-icons-Shape-29:before{content:"\e67c"}.supermapol-icons-Shape-30:before{content:"\e67d"}.supermapol-icons-Shape-31:before{content:"\e67e"}.supermapol-icons-Shape-32:before{content:"\e67f"}.supermapol-icons-Shape-33:before{content:"\e680"}.supermapol-icons-Shape-34:before{content:"\e681"}.supermapol-icons-Shape-35:before{content:"\e682"}.supermapol-icons-Shape-36:before{content:"\e683"}.supermapol-icons-Shape-37:before{content:"\e684"}.supermapol-icons-Shape-38:before{content:"\e685"}.supermapol-icons-Shape-39:before{content:"\e686"}.supermapol-icons-Shape-40:before{content:"\e687"}.supermapol-icons-Shape-41:before{content:"\e688"}.supermapol-icons-Shape-42:before{content:"\e689"}.supermapol-icons-Shape-43:before{content:"\e68a"}.supermapol-icons-Shape-44:before{content:"\e68b"}.supermapol-icons-Shape-45:before{content:"\e68c"}.supermapol-icons-Shape-46:before{content:"\e68d"}.supermapol-icons-Shape-47:before{content:"\e68e"}.supermapol-icons-Shape-48:before{content:"\e68f"}.supermapol-icons-Shape-49:before{content:"\e690"}.supermapol-icons-Shape-50:before{content:"\e691"}.supermapol-icons-Shape-51:before{content:"\e692"}.supermapol-icons-Shape-52:before{content:"\e693"}.supermapol-icons-Shape-53:before{content:"\e694"}.supermapol-icons-Shape-54:before{content:"\e695"}.supermapol-icons-Shape-55:before{content:"\e696"}.supermapol-icons-Shape-56:before{content:"\e697"}.supermapol-icons-Shape-57:before{content:"\e698"}.supermapol-icons-Shape-58:before{content:"\e699"}.supermapol-icons-Shape-59:before{content:"\e69a"}.supermapol-icons-Oval:before{content:"\e69b"}.supermapol-icons-Rectangle:before{content:"\e69c"}.supermapol-icons-Star:before{content:"\e69d"}.supermapol-icons-Triangle:before{content:"\e69e"}.supermapol-icons-restoredefault:before{content:"\e6a0"}.supermapol-icons-uploading:before{content:"\e6a1"}.supermapol-icons-error:before{content:"\e69f"}.supermapol-icons-zoomin:before{content:"\e6a2"}.supermapol-icons-zoomout:before{content:"\e6a3"}.supermapol-icons-first:before{content:"\e6a4"}.supermapol-icons-next:before{content:"\e6a5"}.supermapol-icons-last:before{content:"\e6a6"}.supermapol-icons-prev:before{content:"\e6a7"}.supermapol-icons-poi-load:before{content:"\e6a8"}.supermapol-icons-poi-save:before{content:"\e6a9"}.supermapol-icons-fold:before{content:"\e6aa"}.supermapol-icons-label-delete:before{content:"\e6ab"}.supermapol-icons-upload:before{content:"\e6ac"}.supermapol-icons-unfold:before{content:"\e6ad"}.supermapol-icons-close:before{content:"\e6ae"}.supermapol-icons-mark:before{content:"\e6af"}.supermapol-icons-traffic:before{content:"\e6b0"}.supermapol-icons-full-figure:before{content:"\e6b1"}.supermapol-icons-measure:before{content:"\e6b2"}.supermapol-icons-display-list:before{content:"\e6b3"}.supermapol-icons-hide-list:before{content:"\e6b4"}.supermapol-icons-rename:before{content:"\e6b5"}.supermapol-icons-copy:before{content:"\e6b6"}.supermapol-icons-qq-zone:before{content:"\e6b7"}.supermapol-icons-sina-weibo:before{content:"\e6b8"}.supermapol-icons-color-change:before{content:"\e6b9"}.supermapol-icons-creat-custom-map:before{content:"\e6ba"}.supermapol-icons-custom-map:before{content:"\e6bb"}.supermapol-icons-legend-fold:before{content:"\e6bc"}.supermapol-icons-legend-unfold:before{content:"\e6bd"}.supermapol-icons-legend-big:before{content:"\e6be"}.supermapol-icons-attribute:before{content:"\e6bf"}.supermapol-icons-legend-small:before{content:"\e6c0"}.supermapol-icons-close-legend:before{content:"\e6c1"}.supermapol-icons-font-color:before{content:"\e6c2"}.supermapol-icons-bold:before{content:"\e6c3"}.supermapol-icons-italics:before{content:"\e6c4"}.supermapol-icons-font:before{content:"\e6c5"}.supermapol-icons-justify-align:before{content:"\e6c6"}.supermapol-icons-middle-alignmen:before{content:"\e6c7"}.supermapol-icons-font-size:before{content:"\e6c8"}.supermapol-icons-strikeout:before{content:"\e6c9"}.supermapol-icons-text-layer:before{content:"\e6ca"}.supermapol-icons-right-alignment:before{content:"\e6cb"}.supermapol-icons-left-alignment:before{content:"\e6cc"}.supermapol-icons-transparent-backgrou:before{content:"\e6cd"}.supermapol-icons-underline:before{content:"\e6ce"}.supermapol-icons-query:before{content:"\e6cf"}.component-messageboxcontainer{position:absolute;top:20px;left:0;right:0;margin:auto;min-height:50px;max-width:500px;border-radius:2px;background-color:#fff;z-index:1000}.component-border-bottom-orange{border-bottom:orange solid 1.5px}.component-border-bottom-red{border-bottom:red solid 1.5px}.component-border-bottom-green{border-bottom:green solid 1.5px}.component-messageboxcontainer .icon{float:left;font-size:24px;margin-left:20px;margin-top:6px;display:inline-block}.component-messageboxcontainer .supermapol-icons-message-success{color:green}.component-messageboxcontainer .supermapol-icons-message-failure{color:red}.component-messageboxcontainer .supermapol-icons-message-warning{color:orange}.component-messagebox{float:left;color:#595959;font-size:12px;margin:15px 10px}.component-messagebox__cancelbtncontainer{position:relative;height:5px}.component-messagebox__cancelBtn{position:absolute;top:15px;right:5px;border:none;background:0 0;color:#a4a4a4;cursor:pointer}.component-messagebox__cancelBtn:hover{border:none;font-weight:600} \ No newline at end of file + */@font-face{font-family:supermapol-icons;src:url(data:application/vnd.ms-fontobject;base64,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AAAAPwAA5nwAAOZ8AAAAQAAA5n0AAOZ9AAAAQQAA5n4AAOZ+AAAAQgAA5n8AAOZ/AAAAQwAA5oAAAOaAAAAARAAA5oEAAOaBAAAARQAA5oIAAOaCAAAARgAA5oMAAOaDAAAARwAA5oQAAOaEAAAASAAA5oUAAOaFAAAASQAA5oYAAOaGAAAASgAA5ocAAOaHAAAASwAA5ogAAOaIAAAATAAA5okAAOaJAAAATQAA5ooAAOaKAAAATgAA5osAAOaLAAAATwAA5owAAOaMAAAAUAAA5o0AAOaNAAAAUQAA5o4AAOaOAAAAUgAA5o8AAOaPAAAAUwAA5pAAAOaQAAAAVAAA5pEAAOaRAAAAVQAA5pIAAOaSAAAAVgAA5pMAAOaTAAAAVwAA5pQAAOaUAAAAWAAA5pUAAOaVAAAAWQAA5pYAAOaWAAAAWgAA5pcAAOaXAAAAWwAA5pgAAOaYAAAAXAAA5pkAAOaZAAAAXQAA5poAAOaaAAAAXgAA5psAAOabAAAAXwAA5pwAAOacAAAAYAAA5p0AAOadAAAAYQAA5p4AAOaeAAAAYgAA5p8AAOafAAAAZQAA5qAAAOagAAAAYwAA5qEAAOahAAAAZAAA5qIAAOaiAAAAZgAA5qMAAOajAAAAZwAA5qQAAOakAAAAaAAA5qUAAOalAAAAaQAA5qYAAOamAAAAagAA5qcAAOanAAAAawAA5qgAAOaoAAAAbAAA5qkAAOapAAAAbQAA5qoAAOaqAAAAbgAA5qsAAOarAAAAbwAA5qwAAOasAAAAcAAA5q0AAOatAAAAcQAA5q4AAOauAAAAcgAA5q8AAOavAAAAcwAA5rAAAOawAAAAdAAA5rEAAOaxAAAAdQAA5rIAAOayAAAAdgAA5rMAAOazAAAAdwAA5rQAAOa0AAAAeAAA5rUAAOa1AAAAeQAA5rYAAOa2AAAAegAA5rcAAOa3AAAAewAA5rgAAOa4AAAAfAAA5rkAAOa5AAAAfQAA5roAAOa6AAAAfgAA5rsAAOa7AAAAfwAA5rwAAOa8AAAAgAAA5r0AAOa9AAAAgQAA5r4AAOa+AAAAggAA5r8AAOa/AAAAgwAA5sAAAObAAAAAhAAA5sEAAObBAAAAhQAA5sIAAObCAAAAhgAA5sMAAObDAAAAhwAA5sQAAObEAAAAiAAA5sUAAObFAAAAiQAA5sYAAObG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dABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUABG1vcmUGZGVsZXRlB3Zpc2libGUHem9vbS10bwZvdXRwdXQHb3BhY2l0eQpsYXllci1pbmZvBHNhdmULbGF5ZXItc3R5bGUKbGluZS1sYXllcgRza2luDG1hcmtlci1sYXllcgtwb2ludC1sYXllcg1wb2x5Z29uLWxheWVyCWludmlzaWJsZQZzZWFyY2gEZWRpdAZsYXllcnMJYmFzZWxheWVyB3NldHRpbmcDYWRkB3ByZXZpZXcHcmVmcmVzaA5zb2xpZC10cmlhbmdsZQtyb2FkbmV0d29yawZyZXR1cm4GcGFja3VwBXNoYXJlDGJhY2tob21lcGFnZQZNeU1hcHMJQ3JlYXRlTWFwCGZlZWRiYWNrBXNraW4xBlNoYXBlLQdhY2NvdW50B1NoYXBlLTEHU2hhcGUtMgdTaGFwZS0zB1NoYXBlLTQHU2hhcGUtNQdTaGFwZS02B1NoYXBlLTcHU2hhcGUtOAdTaGFwZS05CFNoYXBlLTEwCFNoYXBlLTExCFNoYXBlLTEyCFNoYXBlLTEzCFNoYXBlLTE0CFNoYXBlLTE1CFNoYXBlLTE2CFNoYXBlLTE3CFNoYXBlLTE4CFNoYXBlLTE5CFNoYXBlLTIwCFNoYXBlLTIxCFNoYXBlLTIyCFNoYXBlLTIzCFNoYXBlLTI0CFNoYXBlLTI1CFNoYXBlLTI2CFNoYXBlLTI3CFNoYXBlLTI4CFNoYXBlLTI5CFNoYXBlLTMwCFNoYXBlLTMxCFNoYXBlLTMyCFNoYXBlLTMzCFNoYXBlLTM0CFNoYXBlLTM1CFNoYXBlLTM2CFNoYXBlLTM3CFNoYXBlLTM4CFNoYXBlLTM5CFNoYXBlLTQwCFNoYXBlLTQxCFNoYXBlLTQyCFNoYXBlLTQzCFNoYXBlLTQ0CFNoYXBlLTQ1CFNoYXBlLTQ2CFNoYXBlLTQ3CFNoYXBlLTQ4CFNoYXBlLTQ5CFNoYXBlLTUwCFNoYXBlLTUxCFNoYXBlLTUyCFNoYXBlLTUzCFNoYXBlLTU0CFNoYXBlLTU1CFNoYXBlLTU2CFNoYXBlLTU3CFNoYXBlLTU4CFNoYXBlLTU5BE92YWwJUmVjdGFuZ2xlBFN0YXIIVHJpYW5nbGUOcmVzdG9yZWRlZmF1bHQJdXBsb2FkaW5nBWVycm9yBnpvb21pbgd6b29tb3V0BWZpcnN0BG5leHQEbGFzdARwcmV2CHBvaS1sb2FkCHBvaS1zYXZlBGZvbGQMbGFiZWwtZGVsZXRlBnVwbG9hZAZ1bmZvbGQFY2xvc2UEbWFyawd0cmFmZmljC2Z1bGwtZmlndXJlB21lYXN1cmUMZGlzcGxheS1saXN0CWhpZGUtbGlzdAZyZW5hbWUEY29weQdxcS16b25lCnNpbmEtd2VpYm8MY29sb3ItY2hhbmdlEGNyZWF0LWN1c3RvbS1tYXAKY3VzdG9tLW1hcAtsZWdlbmQtZm9sZA1sZWdlbmQtdW5mb2xkCmxlZ2VuZC1iaWcJYXR0cmlidXRlDGxlZ2VuZC1zbWFsbAxjbG9zZS1sZWdlbmQKZm9udC1jb2xvcgRib2xkB2l0YWxpY3MEZm9udA1qdXN0aWZ5LWFsaWduD21pZGRsZS1hbGlnbm1lbglmb250LXNpemUJc3RyaWtlb3V0CnRleHQtbGF5ZXIPcmlnaHQtYWxpZ25tZW50DmxlZnQtYWxpZ25tZW50FHRyYW5zcGFyZW50LWJhY2tncm91CXVuZGVybGluZQVxdWVyeQAAAAA=);src:url(data:application/vnd.ms-fontobject;base64,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AAAAPwAA5nwAAOZ8AAAAQAAA5n0AAOZ9AAAAQQAA5n4AAOZ+AAAAQgAA5n8AAOZ/AAAAQwAA5oAAAOaAAAAARAAA5oEAAOaBAAAARQAA5oIAAOaCAAAARgAA5oMAAOaDAAAARwAA5oQAAOaEAAAASAAA5oUAAOaFAAAASQAA5oYAAOaGAAAASgAA5ocAAOaHAAAASwAA5ogAAOaIAAAATAAA5okAAOaJAAAATQAA5ooAAOaKAAAATgAA5osAAOaLAAAATwAA5owAAOaMAAAAUAAA5o0AAOaNAAAAUQAA5o4AAOaOAAAAUgAA5o8AAOaPAAAAUwAA5pAAAOaQAAAAVAAA5pEAAOaRAAAAVQAA5pIAAOaSAAAAVgAA5pMAAOaTAAAAVwAA5pQAAOaUAAAAWAAA5pUAAOaVAAAAWQAA5pYAAOaWAAAAWgAA5pcAAOaXAAAAWwAA5pgAAOaYAAAAXAAA5pkAAOaZAAAAXQAA5poAAOaaAAAAXgAA5psAAOabAAAAXwAA5pwAAOacAAAAYAAA5p0AAOadAAAAYQAA5p4AAOaeAAAAYgAA5p8AAOafAAAAZQAA5qAAAOagAAAAYwAA5qEAAOahAAAAZAAA5qIAAOaiAAAAZgAA5qMAAOajAAAAZwAA5qQAAOakAAAAaAAA5qUAAOalAAAAaQAA5qYAAOamAAAAagAA5qcAAOanAAAAawAA5qgAAOaoAAAAbAAA5qkAAOapAAAAbQAA5qoAAOaqAAAAbgAA5qsAAOarAAAAbwAA5qwAAOasAAAAcAAA5q0AAOatAAAAcQAA5q4AAOauAAAAcgAA5q8AAOavAAAAcwAA5rAAAOawAAAAdAAA5rEAAOaxAAAAdQAA5rIAAOayAAAAdgAA5rMAAOazAAAAdwAA5rQAAOa0AAAAeAAA5rUAAOa1AAAAeQAA5rYAAOa2AAAAegAA5rcAAOa3AAAAewAA5rgAAOa4AAAAfAAA5rkAAOa5AAAAfQAA5roAAOa6AAAAfgAA5rsAAOa7AAAAfwAA5rwAAOa8AAAAgAAA5r0AAOa9AAAAgQAA5r4AAOa+AAAAggAA5r8AAOa/AAAAgwAA5sAAAObAAAAAhAAA5sEAAObBAAAAhQAA5sIAAObCAAAAhgAA5sMAAObDAAAAhwAA5sQAAObEAAAAiAAA5sUAAObFAAAAiQAA5sYAAObG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dABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsBbAFtAW4BbwFwAXEBcgFzAXQBdQF2AXcBeAF5AXoBewF8AX0BfgF/AYABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUABG1vcmUGZGVsZXRlB3Zpc2libGUHem9vbS10bwZvdXRwdXQHb3BhY2l0eQpsYXllci1pbmZvBHNhdmULbGF5ZXItc3R5bGUKbGluZS1sYXllcgRza2luDG1hcmtlci1sYXllcgtwb2ludC1sYXllcg1wb2x5Z29uLWxheWVyCWludmlzaWJsZQZzZWFyY2gEZWRpdAZsYXllcnMJYmFzZWxheWVyB3NldHRpbmcDYWRkB3ByZXZpZXcHcmVmcmVzaA5zb2xpZC10cmlhbmdsZQtyb2FkbmV0d29yawZyZXR1cm4GcGFja3VwBXNoYXJlDGJhY2tob21lcGFnZQZNeU1hcHMJQ3JlYXRlTWFwCGZlZWRiYWNrBXNraW4xBlNoYXBlLQdhY2NvdW50B1NoYXBlLTEHU2hhcGUtMgdTaGFwZS0zB1NoYXBlLTQHU2hhcGUtNQdTaGFwZS02B1NoYXBlLTcHU2hhcGUtOAdTaGFwZS05CFNoYXBlLTEwCFNoYXBlLTExCFNoYXBlLTEyCFNoYXBlLTEzCFNoYXBlLTE0CFNoYXBlLTE1CFNoYXBlLTE2CFNoYXBlLTE3CFNoYXBlLTE4CFNoYXBlLTE5CFNoYXBlLTIwCFNoYXBlLTIxCFNoYXBlLTIyCFNoYXBlLTIzCFNoYXBlLTI0CFNoYXBlLTI1CFNoYXBlLTI2CFNoYXBlLTI3CFNoYXBlLTI4CFNoYXBlLTI5CFNoYXBlLTMwCFNoYXBlLTMxCFNoYXBlLTMyCFNoYXBlLTMzCFNoYXBlLTM0CFNoYXBlLTM1CFNoYXBlLTM2CFNoYXBlLTM3CFNoYXBlLTM4CFNoYXBlLTM5CFNoYXBlLTQwCFNoYXBlLTQxCFNoYXBlLTQyCFNoYXBlLTQzCFNoYXBlLTQ0CFNoYXBlLTQ1CFNoYXBlLTQ2CFNoYXBlLTQ3CFNoYXBlLTQ4CFNoYXBlLTQ5CFNoYXBlLTUwCFNoYXBlLTUxCFNoYXBlLTUyCFNoYXBlLTUzCFNoYXBlLTU0CFNoYXBlLTU1CFNoYXBlLTU2CFNoYXBlLTU3CFNoYXBlLTU4CFNoYXBlLTU5BE92YWwJUmVjdGFuZ2xlBFN0YXIIVHJpYW5nbGUOcmVzdG9yZWRlZmF1bHQJdXBsb2FkaW5nBWVycm9yBnpvb21pbgd6b29tb3V0BWZpcnN0BG5leHQEbGFzdARwcmV2CHBvaS1sb2FkCHBvaS1zYXZlBGZvbGQMbGFiZWwtZGVsZXRlBnVwbG9hZAZ1bmZvbGQFY2xvc2UEbWFyawd0cmFmZmljC2Z1bGwtZmlndXJlB21lYXN1cmUMZGlzcGxheS1saXN0CWhpZGUtbGlzdAZyZW5hbWUEY29weQdxcS16b25lCnNpbmEtd2VpYm8MY29sb3ItY2hhbmdlEGNyZWF0LWN1c3RvbS1tYXAKY3VzdG9tLW1hcAtsZWdlbmQtZm9sZA1sZWdlbmQtdW5mb2xkCmxlZ2VuZC1iaWcJYXR0cmlidXRlDGxlZ2VuZC1zbWFsbAxjbG9zZS1sZWdlbmQKZm9udC1jb2xvcgRib2xkB2l0YWxpY3MEZm9udA1qdXN0aWZ5LWFsaWduD21pZGRsZS1hbGlnbm1lbglmb250LXNpemUJc3RyaWtlb3V0CnRleHQtbGF5ZXIPcmlnaHQtYWxpZ25tZW50DmxlZnQtYWxpZ25tZW50FHRyYW5zcGFyZW50LWJhY2tncm91CXVuZGVybGluZQVxdWVyeQAAAAA=#iefix) format('embedded-opentype'),url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff'),url(data:font/ttf;base64,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AADmIgAAAAUAAOYlAADmJQAAAAYAAOYnAADmJwAAAAcAAOYoAADmKAAAAAgAAOYpAADmKQAAAAkAAOYqAADmKgAAAAoAAOYrAADmKwAAAAsAAOYsAADmLAAAAAwAAOYtAADmLQAAAA0AAOYuAADmLgAAAA4AAOYvAADmLwAAAA8AAOYwAADmMAAAABAAAOYzAADmMwAAABEAAOY0AADmNAAAABIAAOY1AADmNQAAABMAAOY2AADmNgAAABQAAOY3AADmNwAAABYAAOY4AADmOAAAABUAAOY5AADmOQAAABcAAOY6AADmOgAAABgAAOY7AADmOwAAABkAAOY8AADmPAAAABoAAOY9AADmPQAAABsAAOY+AADmPgAAABwAAOZZAADmWQAAAB0AAOZaAADmWgAAAB4AAOZbAADmWwAAAB8AAOZcAADmXAAAACAAAOZdAADmXQAAACEAAOZeAADmXgAAACIAAOZfAADmXwAAACMAAOZgAADmYAAAACQAAOZhAADmYQAAACUAAOZiAADmYgAAACYAAOZjAADmYwAAACcAAOZkAADmZAAAACgAAOZlAADmZQAAACkAAOZmAADmZgAAACoAAOZnAADmZwAAACsAAOZoAADmaAAAACwAAOZpAADmaQAAAC0AAOZqAADmagAAAC4AAOZrAADmawAAAC8AAOZsAADmbAAAADAAAOZtAADmbQAAADEAAOZuAADmbgAAADIAAOZvAADmbwAAADMAAOZwAADmcAAAADQAAOZxAADmcQAAADUAAOZyAADmcgAAADYAAOZzAADmcwAAADcAAOZ0AADmdAAAADgAAOZ1AADmdQAAADkAAOZ2AADmdgAAADoAAOZ3AADmdwAAADsAAOZ4AADmeAAAADwAAOZ5AADmeQAAAD0AAOZ6AADmegAAAD4AAOZ7AADmewAAAD8AAOZ8AADmfAAAAEAAAOZ9AADmfQAAAEEAAOZ+AADmfgAAAEIAAOZ/AADmfwAAAEMAAOaAAADmgAAAAEQAAOaBAADmgQAAAEUAAOaCAADmggAAAEYAAOaDAADmgwAAAEcAAOaEAADmhAAAAEgAAOaFAADmhQAAAEkAAOaGAADmhgAAAEoAAOaHAADmhwAAAEsAAOaIAADmiAAAAEwAAOaJAADmiQAAAE0AAOaKAADmigAAAE4AAOaLAADmiwAAAE8AAOaMAADmjAAAAFAAAOaNAADmjQAAAFEAAOaOAADmjgAAAFIAAOaPAADmjwAAAFMAAOaQAADmkAAAAFQAAOaRAADmkQAAAFUAAOaSAADmkgAAAFYAAOaTAADmkwAAAFcAAOaUAADmlAAAAFgAAOaVAADmlQAAAFkAAOaWAADmlgAAAFoAAOaXAADmlwAAAFsAAOaYAADmmAAAAFwAAOaZAADmmQAAAF0AAOaaAADmmgAAAF4AAOabAADmmwAAAF8AAOacAADmnAAAAGAAAOadAADmnQAAAGEAAOaeAADmngAAAGIAAOafAADmnwAAAGUAAOagAADmoAAAAGMAAOahAADmoQAAAGQAAOaiAADmogAAAGYAAOajAADmowAAAGcAAOakAADmpAAAAGgAAOalAADmpQAAAGkAAOamAADmpgAAAGoAAOanAADmpwAAAGsAAOaoAADmqAAAAGwAAOapAADmqQAAAG0AAOaqAADmqgAAAG4AAOarAADmqwAAAG8AAOasAADmrAAAAHAAAOatAADmrQAAAHEAAOauAADmrgAAAHIAAOavAADmrwAAAHMAAOawAADmsAAAAHQAAOaxAADmsQAAAHUAAOayAADmsgAAAHYAAOazAADmswAAAHcAAOa0AADmtAAAAHgAAOa1AADmtQAAAHkAAOa2AADmtgAAAHoAAOa3AADmtwAAAHsAAOa4AADmuAAAAHwAAOa5AADmuQAAAH0AAOa6AADmugAAAH4AAOa7AADmuwAAAH8AAOa8AADmvAAAAIAAAOa9AADmvQAAAIEAAOa+AADmvgAAAIIAAOa/AADmvwAAAIMAAObAAADmwAAAAIQAAObBAADmwQAAAIUAAObCAADmwgAAAIYAAObDAADmwwAAAIcAAObEAADmxAAAAIgAAObFAADmxQAAAIkAAObGAADmxgAAAIoAAObHAADmxwAAAIsAAObIAADmyAAAAIwAAObJAADmyQAAAI0AAObKAADmygAAAI4AAObLAADmywAAAI8AAObMAADmzAAAAJAAAObNAADmzQAAAJEAAObOAADmzgAAAJIAAObPAADmzwAAAJMAAAAAAC4AuAEcAXYByAH2AmACogMOAz4DxgP2BDgEqAUcBWgFsgXiBrAHLgdCB7QIYgh8COIJAglICYwKBgpaCqwK/gt8C6AMRAywDPANYA3KDgYOeA7e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AUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAARtb3JlBmRlbGV0ZQd2aXNpYmxlB3pvb20tdG8Gb3V0cHV0B29wYWNpdHkKbGF5ZXItaW5mbwRzYXZlC2xheWVyLXN0eWxlCmxpbmUtbGF5ZXIEc2tpbgxtYXJrZXItbGF5ZXILcG9pbnQtbGF5ZXINcG9seWdvbi1sYXllcglpbnZpc2libGUGc2VhcmNoBGVkaXQGbGF5ZXJzCWJhc2VsYXllcgdzZXR0aW5nA2FkZAdwcmV2aWV3B3JlZnJlc2gOc29saWQtdHJpYW5nbGULcm9hZG5ldHdvcmsGcmV0dXJuBnBhY2t1cAVzaGFyZQxiYWNraG9tZXBhZ2UGTXlNYXBzCUNyZWF0ZU1hcAhmZWVkYmFjawVza2luMQZTaGFwZS0HYWNjb3VudAdTaGFwZS0xB1NoYXBlLTIHU2hhcGUtMwdTaGFwZS00B1NoYXBlLTUHU2hhcGUtNgdTaGFwZS03B1NoYXBlLTgHU2hhcGUtOQhTaGFwZS0xMAhTaGFwZS0xMQhTaGFwZS0xMghTaGFwZS0xMwhTaGFwZS0xNAhTaGFwZS0xNQhTaGFwZS0xNghTaGFwZS0xNwhTaGFwZS0xOAhTaGFwZS0xOQhTaGFwZS0yMAhTaGFwZS0yMQhTaGFwZS0yMghTaGFwZS0yMwhTaGFwZS0yNAhTaGFwZS0yNQhTaGFwZS0yNghTaGFwZS0yNwhTaGFwZS0yOAhTaGFwZS0yOQhTaGFwZS0zMAhTaGFwZS0zMQhTaGFwZS0zMghTaGFwZS0zMwhTaGFwZS0zNAhTaGFwZS0zNQhTaGFwZS0zNghTaGFwZS0zNwhTaGFwZS0zOAhTaGFwZS0zOQhTaGFwZS00MAhTaGFwZS00MQhTaGFwZS00MghTaGFwZS00MwhTaGFwZS00NAhTaGFwZS00NQhTaGFwZS00NghTaGFwZS00NwhTaGFwZS00OAhTaGFwZS00OQhTaGFwZS01MAhTaGFwZS01MQhTaGFwZS01MghTaGFwZS01MwhTaGFwZS01NAhTaGFwZS01NQhTaGFwZS01NghTaGFwZS01NwhTaGFwZS01OAhTaGFwZS01OQRPdmFsCVJlY3RhbmdsZQRTdGFyCFRyaWFuZ2xlDnJlc3RvcmVkZWZhdWx0CXVwbG9hZGluZwVlcnJvcgZ6b29taW4Hem9vbW91dAVmaXJzdARuZXh0BGxhc3QEcHJldghwb2ktbG9hZAhwb2ktc2F2ZQRmb2xkDGxhYmVsLWRlbGV0ZQZ1cGxvYWQGdW5mb2xkBWNsb3NlBG1hcmsHdHJhZmZpYwtmdWxsLWZpZ3VyZQdtZWFzdXJlDGRpc3BsYXktbGlzdAloaWRlLWxpc3QGcmVuYW1lBGNvcHkHcXEtem9uZQpzaW5hLXdlaWJvDGNvbG9yLWNoYW5nZRBjcmVhdC1jdXN0b20tbWFwCmN1c3RvbS1tYXALbGVnZW5kLWZvbGQNbGVnZW5kLXVuZm9sZApsZWdlbmQtYmlnCWF0dHJpYnV0ZQxsZWdlbmQtc21hbGwMY2xvc2UtbGVnZW5kCmZvbnQtY29sb3IEYm9sZAdpdGFsaWNzBGZvbnQNanVzdGlmeS1hbGlnbg9taWRkbGUtYWxpZ25tZW4JZm9udC1zaXplCXN0cmlrZW91dAp0ZXh0LWxheWVyD3JpZ2h0LWFsaWdubWVudA5sZWZ0LWFsaWdubWVudBR0cmFuc3BhcmVudC1iYWNrZ3JvdQl1bmRlcmxpbmUFcXVlcnkAAAAA) format('truetype'),url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg0KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIiA+DQo8IS0tDQoyMDEzLTktMzA6IENyZWF0ZWQuDQotLT4NCjxzdmc+DQo8bWV0YWRhdGE+DQpDcmVhdGVkIGJ5IGljb25mb250DQo8L21ldGFkYXRhPg0KPGRlZnM+DQoNCjxmb250IGlkPSJzdXBlcm1hcG9sLWljb25zIiBob3Jpei1hZHYteD0iMTAyNCIgPg0KICA8Zm9udC1mYWNlDQogICAgZm9udC1mYW1pbHk9InN1cGVybWFwb2wtaWNvbnMiDQogICAgZm9udC13ZWlnaHQ9IjUwMCINCiAgICBmb250LXN0cmV0Y2g9Im5vcm1hbCINCiAgICB1bml0cy1wZXItZW09IjEwMjQiDQogICAgYXNjZW50PSI4OTYiDQogICAgZGVzY2VudD0iLTEyOCINCiAgLz4NCiAgICA8bWlzc2luZy1nbHlwaCAvPg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtb3JlIiB1bmljb2RlPSImIzU4OTA5OyIgZD0iTTUzMC4yODU3MTQgMTI4YTkxLjQyODU3MSA5MS40Mjg1NzEgMCAxIDEgMC0xODIuODU3MTQzIDkxLjQyODU3MSA5MS40Mjg1NzEgMCAwIDEgMCAxODIuODU3MTQzeiBtMCAzNjUuNjQxMTQzYTkxLjQyODU3MSA5MS40Mjg1NzEgMCAxIDEgMC0xODIuODU3MTQzIDkxLjQyODU3MSA5MS40Mjg1NzEgMCAwIDEgMCAxODIuODU3MTQzeiBtMCAxODIuODU3MTQzYTkxLjQyODU3MSA5MS40Mjg1NzEgMCAxIDEgMCAxODIuODU3MTQzIDkxLjQyODU3MSA5MS40Mjg1NzEgMCAwIDEgMC0xODIuODU3MTQzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImRlbGV0ZSIgdW5pY29kZT0iJiM1ODkxMTsiIGQ9Ik0xMzUuODgxNDgtMTE0Ljk4MjQzMWExMDcuNTA0NjQyIDEwNy41MDQ2NDIgMCAwIDAtOC41NTY0OTIgOC41NTY0OTJjMy4xNDQ2OTQtMy4wNzE1NjEgNS43MDQzMjgtNi4wNjk5OSA4LjU1NjQ5Mi04LjU1NjQ5MnogbS0xMC45Njk4NjEgNC42ODA0NzRjLTIuOTI1Mjk2IDIuNzc5MDMyLTUuODUwNTkzIDUuNDg0OTMxLTguNjI5NjI1IDguNTU2NDkyIDIuNzA1ODk5LTMuMDcxNTYxIDUuNjMxMTk2LTUuODUwNTkzIDguNTU2NDkyLTguNTU2NDkyek0xMDExLjc4ODM1IDczNy4wODMyNzRhNDIuOTI4NzI0IDQyLjkyODcyNCAwIDAgMS0yOS45ODQyODggMTIuMjEzMTEyaC0yMTAuMTgyNTQ1djY1LjgxOTE2OUM3NzEuNjk0NjUgODU5Ljc5OTQ1NyA3MzUuNjQwMzcyIDg5NiA2OTEuMzk1MjY0IDg5NkgzMzIuMzg4MjY1QzI4OC4xNDMxNTcgODk2IDI1Mi4wODg4NzkgODU5Ljc5OTQ1NyAyNTIuMDg4ODc5IDgxNS4xODg2ODd2LTY1Ljg5MjMwMUg0MC43MzYyMTVBNDAuOTU0MTQ5IDQwLjk1NDE0OSAwIDAgMSAwLjAwMTQ2MyA3MDguMTk1OTcyYzAtMjIuNjcxMDQ3IDE4LjI4MzEwMi00MC45NTQxNDkgNDAuODA3ODg0LTQwLjk1NDE0OWgzNS45ODExNDZ2LTcxNC4yODQyNDZjMC00NC42MTA3NyAzNS45ODExNDYtODAuODExMzEzIDgwLjI5OTM4Ni04MC44MTEzMTJoNzIxLjA4NTU1OWM0NC4zMTgyNCAwIDgwLjI5OTM4NiAzNi4yMDA1NDMgODAuMjk5Mzg2IDgwLjgxMTMxMlY2NjcuMTY4NjloMjMuNDAyMzcxYzIyLjUyNDc4MiAwIDQxLjk3ODAwMyAxOC4yODMxMDIgNDEuOTc4MDAzIDQxLjAyNzI4MmE0MC42NjE2MiA0MC42NjE2MiAwIDAgMS0xMS45OTM3MTUgMjguODg3MzAyek0zMzIuMjQyIDgxNC45NjkyOWgzNTguNzE0NDY5di02Ni4zMzEwOTVIMzMyLjI0MnogbTU0NS43ODcxNzMtODYxLjg2NTQ0OEgxNTcuMDg5ODc5VjY2Ny4yNDE4MjNoNzIwLjkzOTI5NHpNNTExLjM0MzI3MSA1MjkuNjA2NjI4Yy0yMi42NzEwNDcgMC00MC45NTQxNDktMTguNTAyNS00MC45NTQxNDktNDEuMzE5ODEydi0zODIuODQ4MTY0YzAtMjIuNzQ0MTc5IDE4LjI4MzEwMi00MS4yNDY2NzkgNDAuOTU0MTQ5LTQxLjI0NjY3OXM0MS4wMjcyODIgMTguNTAyNSA0MS4wMjcyODIgNDEuMjQ2Njc5VjQ4OC4zNTk5NDlhNDEuMTAwNDE0IDQxLjEwMDQxNCAwIDAgMS00MC45NTQxNDkgNDEuMzE5ODExeiBtLTIyMi4xMDMxMjggMGMtMjIuNjcxMDQ3IDAtNDAuOTU0MTQ5LTE4LjUwMjUtNDAuOTU0MTQ5LTQxLjMxOTgxMnYtMzgyLjg0ODE2NGMwLTIyLjc0NDE3OSAxOC4yODMxMDItNDEuMjQ2Njc5IDQwLjk1NDE0OS00MS4yNDY2NzlzNDAuOTU0MTQ5IDE4LjUwMjUgNDAuOTU0MTQ5IDQxLjI0NjY3OVY0ODguMzU5OTQ5YTQxLjEwMDQxNCA0MS4xMDA0MTQgMCAwIDEtNDAuOTU0MTQ5IDQxLjMxOTgxMXogbTQ0Mi4wMTIyODQgMGMtMjIuNjcxMDQ3IDAtNDEuMDI3MjgyLTE4LjUwMjUtNDEuMDI3MjgyLTQxLjMxOTgxMnYtMzgyLjg0ODE2NGMwLTIyLjc0NDE3OSAxOC4yODMxMDItNDEuMjQ2Njc5IDQwLjk1NDE1LTQxLjI0NjY3OXM0MS4wMjcyODIgMTguNTAyNSA0MS4wMjcyODEgNDEuMjQ2Njc5VjQ4OC4zNTk5NDlhNDEuMTAwNDE0IDQxLjEwMDQxNCAwIDAgMS00MC45NTQxNDkgNDEuMzE5ODExeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InZpc2libGUiIHVuaWNvZGU9IiYjNTg5MTI7IiBkPSJNNTEyLjAzODAzNC01NC44NTcxNDNDMTc5Ljc1MDAzNC01NC44NTcxNDMgNDMuMDQ2MDM0IDIyMy41MjQ1NzEgNy4zNTIzMiAzMDguODA5MTQzYTEwNS4xMDYyODYgMTA1LjEwNjI4NiAwIDAgMCAwIDc3LjIzODg1N0M0My4xMTkxNzcgNDcxLjMzMjU3MSAxNzkuODIzMTc3IDc0OS43MTQyODYgNTEyLjAzODAzNCA3NDkuNzE0Mjg2YzMzMC43NTIgMCA0NjkuMDY1MTQzLTI3OC4zODE3MTQgNTA0LjY4NTcxNS0zNjMuNjY2Mjg2IDkuODAxMTQzLTI1LjIzNDI4NiA5LjgwMTE0My01Mi4wMDQ1NzEgMC03Ny4yMzg4NTdDOTgxLjEwMzE3NyAyMjMuNTI0NTcxIDg0Mi43OTAwMzQtNTQuODU3MTQzIDUxMi4wMzgwMzQtNTQuODU3MTQzek03NS40NDgzMiAzNjAuNTk0Mjg2YTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMC0yNC43OTU0MjlDMTA1LjM2Mzc0OSAyNjAuMDk2IDIyNS45MDMxNzcgMTguMjg1NzE0IDUxMi4wMzgwMzQgMTguMjg1NzE0YzI4Ni4yMDggMCA0MDYuNjc0Mjg2IDI0MS43MzcxNDMgNDM2LjU4OTcxNSAzMTUuOTc3MTQzYTM0Ljc0Mjg1NyAzNC43NDI4NTcgMCAwIDEgMCAyNC43OTU0MjlDOTE4LjcxMjMyIDQzNC43NjExNDMgNzk4LjI0NjAzNCA2NzYuNTcxNDI5IDUxMi4wMzgwMzQgNjc2LjU3MTQyOSAyMjUuOTAzMTc3IDY3Ni41NzE0MjkgMTA1LjM2Mzc0OSA0MzQuODM0Mjg2IDc1LjQ0ODMyIDM2MC41OTQyODZ6TTUxMi4wMzgwMzQgMTY0LjU3MTQyOWMtMTAwLjc5MDg1NyAwLTE4Mi44NTcxNDMgODIuNjUxNDI5LTE4Mi44NTcxNDMgMTgyLjg1NzE0MlM0MTEuMjQ3MTc3IDUzMC4yODU3MTQgNTEyLjAzODAzNCA1MzAuMjg1NzE0czE4Mi44NTcxNDMtODIuNjUxNDI5IDE4Mi44NTcxNDMtMTgyLjg1NzE0M1M2MTIuODI4ODkxIDE2NC41NzE0MjkgNTEyLjAzODAzNCAxNjQuNTcxNDI5eiBtMCAyOTIuNTcxNDI4Yy02MC4xMjM0MjkgMC0xMDkuNzE0Mjg2LTQ5LjAwNTcxNC0xMDkuNzE0Mjg1LTEwOS43MTQyODZTNDUxLjMyOTQ2MyAyMzcuNzE0Mjg2IDUxMi4wMzgwMzQgMjM3LjcxNDI4NnMxMDkuNzE0Mjg2IDQ5LjAwNTcxNCAxMDkuNzE0Mjg2IDEwOS43MTQyODVTNTcyLjE2MTQ2MyA0NTcuMTQyODU3IDUxMi4wMzgwMzQgNDU3LjE0Mjg1N3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ6b29tLXRvIiB1bmljb2RlPSImIzU4OTEzOyIgZD0iTTg3MS40OTcxNDMgODM3LjQ4NTcxNGM0My44ODU3MTQgMCA3OS4zNi0zNS41NDc0MjkgNzkuMzYtNzkuMzZWNDQxLjc4Mjg1N2gtODAuNDU3MTQzVjY4Mi42NDIyODZjMCA0MS4xMDYyODYtMzMuMjggNzQuMzg2Mjg2LTc0LjM4NjI4NiA3NC4zODYyODVINTUzLjY5MTQyOUw1NTMuMzI1NzE0IDgzNy40ODU3MTR6IG0tNzUuNDgzNDI5LTg4NS43NmM0MS4xMDYyODYgMCA3NC4zODYyODYgMzMuMjggNzQuMzg2Mjg2IDc0LjM4NjI4NlYyNzcuMjExNDI5SDk1MC44NTcxNDN2LTMzMC44MjUxNDNjMC00MS4xMDYyODYtMzMuMjgtNzQuMzg2Mjg2LTc0LjM4NjI4Ni03NC4zODYyODZINTUzLjMyNTcxNHY3OS43MjU3MTR6TTAuMDczMTQzIDc1OC4xMjU3MTRDMCA4MDIuMDExNDI5IDM1LjU0NzQyOSA4MzcuNDg1NzE0IDc5LjM2IDgzNy40ODU3MTRoMzE2LjQxNnYtODAuNDU3MTQzSDE1NC4xMTJjLTQxLjEwNjI4NiAwLTc0LjM4NjI4Ni0zMy4yOC03NC4zODYyODYtNzQuMzg2Mjg1di0yNDAuOTMyNTcySDB6TTc5LjM2IDI3Ny4yMTE0Mjl2LTI1MS4wOTk0MjljMC00MS4xMDYyODYgMzMuMjgtNzQuMzg2Mjg2IDc0LjM4NjI4Ni03NC4zODYyODZIMzk1LjcwMjg1N1YtMTI4SDc0LjM4NjI4NkE3NC4zODYyODYgNzQuMzg2Mjg2IDAgMCAwIDAtNTMuNjEzNzE0VjI3Ny4yMTE0Mjl6TTY3OC43NjU3MTQgNDA4LjcyMjI4NnYtODkuNkg1MTkuNDYwNTcxdi0xNTQuMTg1MTQzSDQyOS43ODc0MjlWMzE5LjEyMjI4NkgyNzIuMzg0VjQwOC43MjIyODZoMTU3LjQwMzQyOVY1NjMuOTMxNDI5aDg5LjY3MzE0MnYtMTU1LjIwOTE0M3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJvdXRwdXQiIHVuaWNvZGU9IiYjNTg5MTQ7IiBkPSJNMzI1LjQxMjU3MSA0MTMuNDc2NTcxYTQ0LjMyNDU3MSA0NC4zMjQ1NzEgMCAwIDEtMzEuNjcwODU3LTEzLjE2NTcxNCA0NC4zMjQ1NzEgNDQuMzI0NTcxIDAgMCAxIDAtNjMuMDQ5MTQzbDE4Mi4yNzItMTgxLjE3NDg1N2E0NC44MzY1NzEgNDQuODM2NTcxIDAgMCAxIDYzLjM0MTcxNSAwTDcyMS42Mjc0MjkgMzM3LjE4ODU3MWE0NC4zMjQ1NzEgNDQuMzI0NTcxIDAgMCAxIDAgNjMuMTIyMjg2IDQ0Ljk4Mjg1NyA0NC45ODI4NTcgMCAwIDEtNjMuNDg4IDBMNTUyLjQ0OCAyOTUuMjA0NTcxVjg1MS4zODI4NTdDNTUyLjQ0OCA4NzYuMDMyIDUzMi40OCA4OTYgNTA3LjYxMTQyOSA4OTZzLTQ0Ljc2MzQyOS0xOS45NjgtNDQuNzYzNDI5LTQ0LjYxNzE0M3YtNTU2LjE3ODI4NmwtMTA1LjY5MTQyOSAxMDUuMzI1NzE1YTQ1LjIwMjI4NiA0NS4yMDIyODYgMCAwIDEtMzEuNzQ0IDEyLjk0NjI4NXogbTY1OS4wMTcxNDMtMTc4LjEwMjg1N2EzOS40OTcxNDMgMzkuNDk3MTQzIDAgMCAxLTM5LjQ5NzE0My0zOS4zNTA4NTd2LTIyMi4yMDhjMC0xMi44NzMxNDMtMTAuNTMyNTcxLTIzLjQwNTcxNC0yMy41NTItMjMuNDA1NzE0SDEwMi41NDYyODZhMjMuNTUyIDIzLjU1MiAwIDAgMC0yMy41NTIgMjMuNDA1NzE0djIyMi4zNTQyODZhMzkuNDk3MTQzIDM5LjQ5NzE0MyAwIDAgMS03OC45OTQyODYgMHYtMjUzLjUxMzE0M2MwLTM5LjA1ODI4NiAzMS44OTAyODYtNzAuNjU2IDcwLjk0ODU3MS03MC42NTZoODgyLjEwMjg1OGMzOS4yMDQ1NzEgMCA3MC45NDg1NzEgMzEuNzQ0IDcwLjk0ODU3MSA3MC42NTZWMTk2LjAyMjg1N2EzOS40OTcxNDMgMzkuNDk3MTQzIDAgMCAxLTM5LjQ5NzE0MyAzOS4yNzc3MTR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ib3BhY2l0eSIgdW5pY29kZT0iJiM1ODkxNzsiIGQ9Ik02NTQuMjUwNjY3IDI0MS43NDkzMzNIOTM4LjY2NjY2N1YtNDIuNjY2NjY3SDY1NC4yNTA2Njd6TTM2OS43NDkzMzMgNTI2LjI1MDY2N2gyODQuNTAxMzM0di0yODQuNTAxMzM0SDM2OS43NDkzMzN6TTY1NC4yNTA2NjcgODEwLjY2NjY2N0g5MzguNjY2NjY3di0yODQuNDE2SDY1NC4yNTA2Njd6TTg1LjMzMzMzMyAyNDEuNzQ5MzMzaDI4NC40MTZWLTQyLjY2NjY2N0g4NS4zMzMzMzN6TTg1LjMzMzMzMyA4MTAuNjY2NjY3aDI4NC40MTZ2LTI4NC40MTZIODUuMzMzMzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImxheWVyLWluZm8iIHVuaWNvZGU9IiYjNTg5MTk7IiBkPSJNNTEyIDg5NS4wNjEzMzNBNTExLjE0NjY2NyA1MTEuMTQ2NjY3IDAgMSAxIDUxMi0xMjcuMTQ2NjY3IDUxMS4xNDY2NjcgNTExLjE0NjY2NyAwIDAgMSA1MTIgODk1LjE0NjY2N3ogbTAtOTI4LjQyNjY2NmE0MTcuMjggNDE3LjI4IDAgMSAwIDAgODM0LjU2IDQxNy4yOCA0MTcuMjggMCAwIDAgMC04MzQuNTZ6TTQ4OC43ODkzMzMgNjI0Ljg5NmE2MC4xNiA2MC4xNiAwIDEgMSAxMjAuMzIgMCA2MC4xNiA2MC4xNiAwIDAgMS0xMjAuMzIgMHpNNTMxLjYyNjY2NyA3MC44MjY2NjdjLTQ0LjM3MzMzMy0xMS4wOTMzMzMtMTA1LjgxMzMzMy0xMC4wNjkzMzMtMTM2LjUzMzMzNCAyLjIxODY2Ni0zMC43MiAxMi4zNzMzMzMtNDEuODk4NjY3IDU3LjE3MzMzMy0yNC44MzIgOTkuNjY5MzM0bDc2LjU0NCAxOTAuODA1MzMzYTcyLjk2IDcyLjk2IDAgMCAxLTQ5LjE1MiA5OS40OTg2NjdsLTE0LjY3NzMzMyA0LjA5NmMtNDQuMDMyIDEyLjIwMjY2Ny00My4xNzg2NjcgMjguMjQ1MzMzIDEuOTYyNjY3IDM1LjU4NGw0My44NjEzMzMgNy4xNjhjNDUuMjI2NjY3IDcuMzM4NjY3IDEwNy4yNjQgMy4yNDI2NjcgMTM3Ljk4NC05LjA0NTMzNCAzMC43Mi0xMi4zNzMzMzMgNDEuODEzMzMzLTU3LjE3MzMzMyAyNC43NDY2NjctOTkuNTg0bC03MS41MDkzMzQtMTc2LjgxMDY2NmMtMTcuMDY2NjY3LTQyLjQ5NiA0LjM1Mi04Ny44OTMzMzMgNDcuNzAxMzM0LTEwMS4wMzQ2NjcgNDMuMzQ5MzMzLTEzLjA1NiA0Mi40OTYtMzIuODUzMzMzLTEuODc3MzM0LTQ0LjAzMmwtMzQuMTMzMzMzLTguNTMzMzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InNhdmUiIHVuaWNvZGU9IiYjNTg5MjA7IiBkPSJNNzMyLjggODEwLjY4OGwyMDUuODg4LTIwNS44ODh2LTY0Ny40ODhIODUuMzEyVjgxMC42ODh6TTc2OCA4OTZIODUuMzEyQzM4LjQgODk2IDAgODU3LjYgMCA4MTAuNjg4di04NTMuMzc2QzAtODkuNiAzOC40LTEyOCA4NS4zMTItMTI4aDg1My4zNzZDOTg1LjYtMTI4IDEwMjQtODkuNiAxMDI0LTQyLjY4OFY2NDB6TTE3MC42ODggNzI1LjMxMmg0MjYuNjI0di0xNzAuNjI0SDE3MC42ODh6TTUxMiA0Mi42ODhhMTcxLjIgMTcxLjIgMCAwIDAtMTcwLjY4OCAxNzAuNjI0QzM0MS4zMTIgMzA3LjIgNDE4LjExMiAzODQgNTEyIDM4NHMxNzAuNjg4LTc2LjggMTcwLjY4OC0xNzAuNjg4YzAtOTMuODI0LTc2LjgtMTcwLjYyNC0xNzAuNjg4LTE3MC42MjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGF5ZXItc3R5bGUiIHVuaWNvZGU9IiYjNTg5MjE7IiBkPSJNOTkzLjcyODg1MyAzMzMuNTY4di0wLjA4NTMzM0w1MzAuNDU0MTg3IDExNC4zNDY2NjdsLTAuMTcwNjY3LTAuMDg1MzM0LTAuMjU2LTAuMDg1MzMzYTQyLjgzNzMzMyA0Mi44MzczMzMgMCAwIDAtMzYuNjkzMzMzIDBINDkzLjI0ODg1M2MtMC4wODUzMzMgMC0wLjE3MDY2NyAwLTAuMjU2IDAuMTcwNjY3TDI5LjcxODE4NyAzMzMuNDgyNjY3QTU1LjM4MTMzMyA1NS4zODEzMzMgMCAwIDAgMC4wMjIxODcgMzg0LjI1NmMwIDMwLjI5MzMzMyAyMS41MDQgNTQuNzg0IDQ3Ljk1NzMzMyA1NC43ODQgNi41NzA2NjcgMCAxMi44LTEuNTM2IDE4LjQzMi00LjA5NmwwLjE3MDY2Ny0wLjA4NTMzMyAwLjE3MDY2Ni0wLjA4NTMzNCA0NDUuMDEzMzM0LTIxMC41MTczMzMgNDQ0LjkyOCAyMTAuNTE3MzMzaDAuMjU2bDAuMTcwNjY2IDAuMjU2di0wLjA4NTMzM2E0Mi45MjI2NjcgNDIuOTIyNjY3IDAgMCAwIDE4LjI2MTMzNCA0LjA5NmMyNi40NTMzMzMgMCA0Ny45NTczMzMtMjQuNDkwNjY3IDQ3Ljk1NzMzMy01NC43ODRhNTUuMzgxMzMzIDU1LjM4MTMzMyAwIDAgMC0yOS42MTA2NjctNTAuNjAyNjY3eiBtMCAyMzcuNTY4TDUzMC40NTQxODcgMzUxLjkxNDY2N2gtMC4xNzA2NjdsLTAuMjU2LTAuMTcwNjY3YTQzLjk0NjY2NyA0My45NDY2NjcgMCAwIDAtMTguMjYxMzMzLTQuMjY2NjY3IDQzLjg2MTMzMyA0My44NjEzMzMgMCAwIDAtMTguNDMyIDQuMjY2NjY3bC0wLjE3MDY2NyAwLjA4NTMzMy0wLjI1NiAwLjA4NTMzNC00NjMuMTg5MzMzIDIxOS4zMDY2NjZBNTUuMzgxMzMzIDU1LjM4MTMzMyAwIDAgMCAwLjAyMjE4NyA2MjEuNjUzMzMzYzAgMjIuODY5MzMzIDEyLjM3MzMzMyA0Mi40OTYgMjkuNjk2IDUwLjY4OEw0OTIuOTA3NTIgODkxLjU2MjY2NyA0OTMuMjQ4ODUzIDg5MS43MzMzMzNoMC4xNzA2NjdhNDIuNDk2IDQyLjQ5NiAwIDAgMCAzNi42OTMzMzMgMGgwLjQyNjY2N2w0NjMuMjc0NjY3LTIxOS4zMDY2NjZjMTcuMzIyNjY3LTguMTkyIDI5LjYxMDY2Ny0yNy44MTg2NjcgMjkuNjEwNjY2LTUwLjYwMjY2N2E1NS4zODEzMzMgNTUuMzgxMzMzIDAgMCAwLTI5LjYxMDY2Ni01MC42ODh6TTQ3Ljk3OTUyIDIwMS4zODY2NjdjNi41NzA2NjcgMCAxMi44LTEuNTM2IDE4LjQzMi00LjI2NjY2N0g2Ni41ODIxODdzMC4xNzA2NjcgMCAwLjE3MDY2Ni0wLjE3MDY2N2w0NDUuMDEzMzM0LTIxMC40MzIgNDQ0LjkyOCAyMTAuNDMyIDAuMjU2IDAuMDg1MzM0IDAuMTcwNjY2IDAuMDg1MzMzYTQxLjgxMzMzMyA0MS44MTMzMzMgMCAwIDAgMTguMjYxMzM0IDQuMjY2NjY3YzI2LjQ1MzMzMyAwIDQ3Ljk1NzMzMy0yNC41NzYgNDcuOTU3MzMzLTU0Ljg2OTMzNCAwLTIyLjc4NC0xMi4yODgtNDIuNDEwNjY3LTI5LjYxMDY2Ny01MC42ODhsLTQ2My4yNzQ2NjYtMjE5LjEzNnMtMC4xNzA2NjcgMC0wLjE3MDY2Ny0wLjE3MDY2Nkg1MjkuOTQyMTg3YTQxLjcyOCA0MS43MjggMCAwIDAtMzYuNjkzMzM0IDBINDkzLjI0ODg1M2wtMC4yNTYgMC4xNzA2NjZMMjkuNzE4MTg3IDk1LjgyOTMzM0E1NS40NjY2NjcgNTUuNDY2NjY3IDAgMCAwIDAuMDIyMTg3IDE0Ni41MTczMzNjMCAzMC4yOTMzMzMgMjEuNTA0IDU0Ljg2OTMzMyA0Ny45NTczMzMgNTQuODY5MzM0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImxpbmUtbGF5ZXIiIHVuaWNvZGU9IiYjNTg5MjI7IiBkPSJNNzY3LjMwNjkwOCA1NzcuODQ4NTExTDMxOC4xMzA1ODMgMTI4LjY3MjE4NmExNzAuNjU5Njk4IDE3MC42NTk2OTggMCAxIDAtNDUuNTY2MTM5IDUwLjk0MTkybDQ0My43MTUyMTUgNDQzLjg4NTg3NGExNzAuNjU5Njk4IDE3MC42NTk2OTggMCAxIDAgNTAuOTQxOTE5LTQ1LjU2NjEzOXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJza2luIiB1bmljb2RlPSImIzU4OTIzOyIgZD0iTTkyMC45MDMwNCA4MTYuMjU2aC01NC44NDhjLTUzLjUwNC01Ny40NzItMTY3LjQyNC05My40NC0yNTcuOTg0LTkzLjQ0LTkwLjU2IDAtMjA0LjQ4IDM1Ljk2OC0yNTcuOTIgOTMuNDRoLTU0LjkxMkw5NS42MjMwNCA2MTEuMmw4OS4yOC05MS43MTJhODcuODcyIDg3Ljg3MiAwIDAgMCAxMTkuNTUyLTgyLjExMnYtNDg1LjYzMmg2MDcuMTY4VjQzNy4zNzZhODcuODcyIDg3Ljg3MiAwIDAgMCAxMTkuNjE2IDgyLjExMmw4OS4yOCA5MS43MTJ6TTIyNC43MTEwNCAzNjYuMzM2djcxLjA0YTguMTI4IDguMTI4IDAgMCAxLTguMDY0IDguMzIgNy44MDggNy44MDggMCAwIDEtNS42MzItMi40MzJsLTQuNjcyLTQuOGEzNy40NCAzNy40NCAwIDAgMC01My44MjQgMEwxMS4yMDcwNCA1ODMuNTUyYTM5Ljg3MiAzOS44NzIgMCAwIDAgMCA1NS4yOTZMMjQyLjg4NzA0IDg3Ni44QTYzLjEwNCA2My4xMDQgMCAwIDAgMjg4LjA3MTA0IDg5Nmg2OS42MzJjMTguNDk2IDAgMzYuMjI0LTguMDY0IDQ4LjE5Mi0yMi40NjQgMzUuNzEyLTQzLjA3MiAxMzcuODU2LTcwLjk3NiAyMDIuMTc2LTcwLjk3NnMxNjYuNCAyNy45MDQgMjAyLjI0IDcwLjk3NkE2Mi40NjQgNjIuNDY0IDAgMCAwIDg1OC4zNzUwNCA4OTZIOTI4LjA3MTA0YzE2Ljk2IDAgMzMuMjgtNi45MTIgNDUuMjQ4LTE5LjJsMjMxLjYxNi0yMzcuOTUyYTM5Ljg3MiAzOS44NzIgMCAwIDAgMC01NS4yOTZsLTE0MS4zMTItMTQ1LjA4OGEzNy40NCAzNy40NCAwIDAgMC01My44MjQgMGwtNC42NzIgNC44YTcuNzQ0IDcuNzQ0IDAgMCAxLTUuNjMyIDIuNDMyIDguMTI4IDguMTI4IDAgMCAxLTguMDY0LTguMzJ2LTUwNS44NTZjMC0zMi44OTYtMjUuOTg0LTU5LjUyLTU3Ljk4NC01OS41MkgyODIuNjk1MDRhNTguNzUyIDU4Ljc1MiAwIDAgMC01Ny45ODQgNTkuNTJWMzU2LjM1MnpNNDI1LjkyNzA0IDUwMy42OGgyNjIuOTEyYzI0LjI1NiAwIDQzLjg0LTEzLjg4OCA0My44NC0zMS4wNHYtMjQ4LjMyYzAtMTcuMTUyLTE5LjU4NC0zMS4wNC00My44NC0zMS4wNEg0MjUuOTI3MDRjLTI0LjE5MiAwLTQzLjc3NiAxMy44ODgtNDMuNzc2IDMxLjA0djI0OC4zMmMwIDE3LjE1MiAxOS41ODQgMzEuMDQgNDMuNzc2IDMxLjA0eiIgIGhvcml6LWFkdi14PSIxMjE2IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Im1hcmtlci1sYXllciIgdW5pY29kZT0iJiM1ODkyNDsiIGQ9Ik01MTIgODk2QzI3Ni4zOTQ2NjcgODk2IDg1LjMzMzMzMyA3MDkuNzE3MzMzIDg1LjMzMzMzMyA0ODBTNTEyLTEyOCA1MTItMTI4czQyNi42NjY2NjcgMzc4LjI4MjY2NyA0MjYuNjY2NjY3IDYwOFM3NDcuNjA1MzMzIDg5NiA1MTIgODk2eiBtMC01OTcuMzMzMzMzYTE3MC42NjY2NjcgMTcwLjY2NjY2NyAwIDEgMCAwIDM0MS4zMzMzMzMgMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMCAwIDAtMzQxLjMzMzMzM3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJwb2ludC1sYXllciIgdW5pY29kZT0iJiM1ODkyNTsiIGQ9Ik02ODIuNjY2NjY3IDM4NGEyNTYgMjU2IDAgMSAwIDAgNTEyIDI1NiAyNTYgMCAwIDAgMC01MTJ6TTE3MC42NjY2NjcgMTI4YTE3MC42NjY2NjcgMTcwLjY2NjY2NyAwIDEgMCAwIDM0MS4zMzMzMzMgMTcwLjY2NjY2NyAxNzAuNjY2NjY3IDAgMCAwIDAtMzQxLjMzMzMzM3ogbTU1NC42NjY2NjYtMTcwLjY2NjY2N2ExMjggMTI4IDAgMSAwIDAgMjU2IDEyOCAxMjggMCAwIDAgMC0yNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icG9seWdvbi1sYXllciIgdW5pY29kZT0iJiM1ODkyNjsiIGQ9Ik0xNjAgNTc2YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHogbTcwNCAwYTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHogbTAtNzA0YTE2MCAxNjAgMCAxIDAgMCAzMjAgMTYwIDE2MCAwIDAgMCAwLTMyMHogbS03MDQgMGExNjAgMTYwIDAgMSAwIDAgMzIwIDE2MCAxNjAgMCAwIDAgMC0zMjB6TTMyMCA3NjhoMzg0di02NGgtMzg0eiBtMC03MDRoMzg0di02NGgtMzg0eiBtLTEyOCA1MTJ2LTM4NEgxMjh2Mzg0eiBtNzA0IDB2LTM4NGgtNjR2Mzg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImludmlzaWJsZSIgdW5pY29kZT0iJiM1ODkyNzsiIGQ9Ik0zMDYuMTQwODkxIDIyLjg5MzcxNGw1Ni41Mzk0MjkgNTYuNjEyNTcyQTQ0Ni4wMjUxNDMgNDQ2LjAyNTE0MyAwIDAgMSA1MTIuMDM4MDM0IDU0Ljg1NzE0M2MyODYuMjA4IDAgNDA2LjY3NDI4NiAyNDEuNzM3MTQzIDQzNi41ODk3MTUgMzE1Ljk3NzE0M2EzNC43NDI4NTcgMzQuNzQyODU3IDAgMCAxIDAgMjQuNzk1NDI4IDU3OC44NTI1NzEgNTc4Ljg1MjU3MSAwIDAgMS0xMDIuOTg1MTQzIDE2Ni43NjU3MTVsNTEuMTI2ODU3IDUxLjJhNjg5LjY2NCA2ODkuNjY0IDAgMCAwIDExOS45NTQyODYtMTkwLjk3NmM5LjgwMTE0My0yNS4yMzQyODYgOS44MDExNDMtNTIuMDA0NTcxIDAtNzcuMjM4ODU4Qzk4MS4xMDMxNzcgMjYwLjA5NiA4NDIuNzkwMDM0LTE4LjI4NTcxNCA1MTIuMDM4MDM0LTE4LjI4NTcxNGE1MTEuMDQ5MTQzIDUxMS4wNDkxNDMgMCAwIDAtMjA1Ljg5NzE0MyA0MS4yNTI1NzF6IG0tMTc5LjEyNjg1NyAxMzEuMjkxNDI5QTY4OC41NjY4NTcgNjg4LjU2Njg1NyAwIDAgMCA3LjM1MjMyIDM0NS4zODA1NzFhMTA1LjEwNjI4NiAxMDUuMTA2Mjg2IDAgMCAwIDAgNzcuMjM4ODU4QzQyLjk3Mjg5MSA1MDcuOTA0IDE3OS43NTAwMzQgNzg2LjI4NTcxNCA1MTIuMDM4MDM0IDc4Ni4yODU3MTRjNzkuMjEzNzE0IDAgMTQ3LjM4Mjg1Ny0xNS45NDUxNDMgMjA1LjY3NzcxNS00MS4zOTg4NTdsLTU2LjMyLTU2LjM5MzE0M0E0NDYuMDI1MTQzIDQ0Ni4wMjUxNDMgMCAwIDEgNTEyLjAzODAzNCA3MTMuMTQyODU3Yy0yODYuMjA4IDAtNDA2LjY3NDI4Ni0yNDEuNzM3MTQzLTQzNi41ODk3MTQtMzE1Ljk3NzE0M2EzNC43NDI4NTcgMzQuNzQyODU3IDAgMCAxIDAtMjQuNzk1NDI4YzEzLjUzMTQyOS0zNC4yMzA4NTcgNDUuNDk0ODU3LTEwMi40IDEwMi45ODUxNDMtMTY2Ljc2NTcxNXogbTM1OS4xMzE0MjkgNDguNzg2Mjg2bDEwMS4wMTAyODYgMTAxLjAxMDI4NSA0LjkwMDU3MSA0LjgyNzQyOSAxMDEuMDEwMjg2IDEwMS4wMTAyODZhMTgzLjUxNTQyOSAxODMuNTE1NDI5IDAgMCAwLTIwNi45MjExNDMtMjA2LjkyMTE0M3pNMzMxLjAwOTQ2MyAzNTguMTA3NDI5YTE4My41MTU0MjkgMTgzLjUxNTQyOSAwIDAgMCAyMDYuOTIxMTQzIDIwNi45MjExNDJ6IG01MTcuMTkzMTQzIDM2Mi4wNTcxNDJhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMCAwLTUxLjcxMmwtNjIwLjYxNzE0My02MjAuNjE3MTQyYTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDAtNTEuNzEyIDUxLjcxMmw2MjAuNjE3MTQzIDYyMC42MTcxNDJhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMCA1MS43MTIgMHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzZWFyY2giIHVuaWNvZGU9IiYjNTg5Mjg7IiBkPSJNNzcwLjY1OTU4MiA2ODIuMzExODhhMzUwLjcwNzA2OCAzNTAuNzA3MDY4IDAgMCAxLTQ5OC45MjU2MDIgMCAzNTcuNzQ2ODA4IDM1Ny43NDY4MDggMCAwIDEgMC01MDMuMDIxNDUxIDM1MC43NzEwNjUgMzUwLjc3MTA2NSAwIDAgMSA0OTguOTI1NjAyIDAgMzU3Ljc0NjgwOCAzNTcuNzQ2ODA4IDAgMCAxIDAgNTAzLjAyMTQ1MXogbS01NzUuNzIyNzctNTgwLjQ1ODU5NmMtMTgwLjE1MzM1NyAxODEuNzUzMjk4LTE4MC4xNTMzNTcgNDc2LjIwNjQ0IDAgNjU3Ljg5NTc0YTQ1OC44NjMwNzkgNDU4Ljg2MzA3OSAwIDAgMCA2NTIuNTgzOTM2IDBjMTgwLjE1MzM1Ny0xODEuNjg5MyAxODAuMTUzMzU3LTQ3Ni4xNDI0NDIgMC02NTcuODk1NzRhNDU4Ljg2MzA3OSA0NTguODYzMDc5IDAgMCAwLTY1Mi41ODM5MzYgMHogbTg2Mi4wNDgyMTItMjExLjE5MjIxMmE2Mi43MTc2ODcgNjIuNzE3Njg3IDAgMCAwLTg5LjE0ODcxMyAwbC04OS4xNDg3MTMgODkuODUyNjg3YTYzLjkzMzY0MiA2My45MzM2NDIgMCAwIDAgMCA4OS44NTI2ODYgNjIuNzE3Njg3IDYyLjcxNzY4NyAwIDAgMCA4OS4xNDg3MTMgMGw4OS4xNDg3MTMtODkuODUyNjg2YTYzLjg2OTY0NSA2My44Njk2NDUgMCAwIDAgMC04OS44NTI2ODd6IiAgaG9yaXotYWR2LXg9IjEwODciIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZWRpdCIgdW5pY29kZT0iJiM1ODkzMTsiIGQ9Ik05NzguMjIxNTY0LTM2LjYzMjUxNzAwMDAwMDAxSDQ1Ljc3ODQzNmE0NS43MjYzOTcgNDUuNzI2Mzk3IDAgMCAxIDAtOTEuMzY3NDgzaDkzMi40NDMxMjhhNDUuNzI2Mzk3IDQ1LjcyNjM5NyAwIDAgMSAwIDkxLjM2NzQ4M3pNMjc1Ljg2MDY5NyAxMDAuNDYxMzYzYTUxLjUyNzUwNyA1MS41Mjc1MDcgMCAwIDEgMTguODUzNjA4IDMuODM4OTdoMC40MjY1NTJsMjU5LjY4NDk4NSAxMjIuMTY0NTUyIDIuNjQ0NjIzIDEuMjc5NjU3IDQ0MS43Mzc0NjggNDQyLjUwNTI2MWE3OS41OTQ2NDIgNzkuNTk0NjQyIDAgMCAxIDAgMTEyLjk1MTAyNUw5MTAuMDU4NTIxIDg3Mi40MzU1NWE3OS43NjUyNjMgNzkuNzY1MjYzIDAgMCAxLTExMi45NTEwMjUtMC4xNzA2MjFsLTQzOS45NDU5NDgtNDQwLjIwMTg3OS0yLjA0NzQ1LTEuOTYyMTQtMS4xOTQzNDYtMi41NTkzMTQtMTIxLjQ4MjA2OS0yNTguNDkwNjM4YTQ3LjI2MTk4NSA0Ny4yNjE5ODUgMCAwIDEgMi45MDA1NTUtNDYuNDA4ODhjOC45NTc1OTYtMTMuNjQ5NjcxIDI0LjM5ODc4Ni0yMi4xODA3MTUgNDAuNTIyNDU5LTIyLjE4MDcxNXogbTUyNC42NTkyMTcgNjQ2LjIyNjU5Nmw1Mi44OTI0NzQgNTIuOTc3Nzg0IDczLjAyNTczOC03My4xMTEwNDktNTIuODkyNDc0LTUyLjk3Nzc4NHpNMzY1Ljk0ODUyNCAyMzguODM0ODk4OTk5OTk5OTVsNjQuODM1OTM2IDEzNy45NDY5ODUgMzA1LjA3MDEzOSAzMDUuMzI2MDcgNzMuMDI1NzM4LTczLjExMTA0OEw1MDMuODk1NTA4IDMwMy42NzA4MzV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGF5ZXJzIiB1bmljb2RlPSImIzU4OTMyOyIgZD0iTTU0MC40NDQ0NDQgMjUxLjA1MDY2N0wxLjA4MDg4OSA1NzMuMTU1NTU2IDU0MC40NDQ0NDQgODk1LjIwMzU1Nmw1MzkuMzYzNTU2LTMyMi4wNDh6TTEwMTIuMzk0NjY3IDQzMy4wOTUxMTFsLTY3LjQxMzMzNC00MS45ODRMNTQwLjQ0NDQ0NCAxNTMuMDMxMTExIDY4LjQ5NDIyMiA0MzMuMDk1MTExbC02Ny40MTMzMzMtNDEuOTg0TDU0MC40NDQ0NDQgNjkuMDA2MjIybDUzOS4zNjM1NTYgMzIyLjEwNDg4OXpNMTAxMi4zOTQ2NjcgMjM3LjA1NmwtNjcuNDEzMzM0LTQyLjA0MDg4OUw1NDAuNDQ0NDQ0LTQzLjAwOHYtNi45OTczMzNsLTQ3MS45NTAyMjIgMjgwLjA2NC02Ny40MTMzMzMtMzUuMDQzNTU2TDU0MC40NDQ0NDQtMTI3LjAzMjg4OWw1MzkuMzYzNTU2IDMyMi4wNDh6IiAgaG9yaXotYWR2LXg9IjEwODAiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYmFzZWxheWVyIiB1bmljb2RlPSImIzU4OTMzOyIgZD0iTTEwMjIuOTc2IDM4NC4zOTgyMjJDMTAyMi45NzYgNjY2LjM5NjQ0NCA3OTQuMTY4ODg5IDg5NC45NzYgNTEyIDg5NC45NzYgMjI5LjgzMTExMSA4OTQuOTc2IDEuMDI0IDY2Ni4zOTY0NDQgMS4wMjQgMzg0LjM5ODIyMmMwLTI2MC40MzczMzMgMTk1LjI0MjY2Ny00NzUuMzYzNTU2IDQ0Ny40MzExMTEtNTA2LjU5NTU1NWEyNTUuMjYwNDQ0IDI1NS4yNjA0NDQgMCAwIDEgNjguODkyNDQ1LTMuOTI1MzM0YzI3OS43MjI2NjcgMi45MDEzMzMgNTA1LjYyODQ0NCAyMzAuNCA1MDUuNjI4NDQ0IDUxMC41MjA4ODl6IG0tNzMuMTAyMjIyLTcuMjI0ODg5YTQ5OS44MjU3NzggNDk5LjgyNTc3OCAwIDAgMS05Ljk1NTU1NiA3NC42MzgyMjNjMC40NTUxMTEgOC42NDcxMTEgMC41Njg4ODkgMTYuODk2IDAuMzQxMzM0IDI0LjQ2MjIyMmE0MzkuMDExNTU2IDQzOS4wMTE1NTYgMCAwIDAgOS42NzExMTEtOTkuMTAwNDQ1ek03NC4wNjkzMzMgMzg0LjM5ODIyMmMwIDMwLjk0NzU1NiAzLjE4NTc3OCA2MS4xNTU1NTYgOS4zMjk3NzggOTAuMjgyNjY3IDE4Ljg4NzExMS0yMC4yNTI0NDQgNjMuNDg4LTE5Ljc0MDQ0NCA3NC4zNTM3NzggMTAuNDY3NTU1IDE5LjQ1Ni0xMS42MDUzMzMgNDUuNTY4LTEzLjY1MzMzMyA0NS41NjgtMzYuODY0IDAtNzYuNDU4NjY3IDIuNzMwNjY3LTE1OC40MzU1NTYgNzIuMjQ4ODg5LTE1OS43NDQgMS45MzQyMjIgMCAzOC42ODQ0NDQtMTMuOTM3Nzc4IDU2LjIwNjIyMi01OS4zMzUxMTEgNi4wODcxMTEtMTUuNzAxMzMzIDMwLjAzNzMzMyAwIDU2LjMyIDAgMTMuMDg0NDQ0IDAgMC0yMi4wNzI4ODkgMC02OS44NTk1NTUgMC00Ny41NTkxMTEgMTAyLjU3MDY2Ny0xMjAuODMyIDEwMi41NzA2NjctMTIwLjgzMmE1NTAuNTEzNzc4IDU1MC41MTM3NzggMCAwIDEgMy40MTMzMzMtNzcuMzEyIDE3MS43NDc1NTYgMTcxLjc0NzU1NiAwIDAgMS01OC4wMjY2NjctNy44NTA2NjdjLTIwNS42NTMzMzMgMzUuOTUzNzc4LTM2MS45ODQgMjE1LjI2NzU1Ni0zNjEuOTg0IDQzMS4wNDcxMTF6IG01NDUuNzM1MTExLTQyNC4yMjA0NDRjLTIuMjc1NTU2IDExLjA5MzMzMy0xMi4xNzQyMjIgMTcuMTgwNDQ0LTMwLjMyMTc3NyAxMi40NTg2NjYgMTQuNDQ5Nzc4IDYxLjU1Mzc3OCAyMS41MDQgOTYuMDI4NDQ0IDUxLjcxMiAxMjIuMjU0MjIzIDQzLjYzMzc3OCAzNy44MzExMTEgNS4xNzY4ODkgNzkuOTI4ODg5LTI4LjA0NjIyMyA3NC45Nzk1NTUtMjYuMTY4ODg5LTMuOTgyMjIyLTkuNjcxMTExIDMyLjQyNjY2Ny0zMi45OTU1NTUgMzQuNDE3Nzc4LTIzLjQzODIyMiAxLjk5MTExMS01My45MzA2NjcgNDguNDY5MzMzLTg3LjYwODg4OSA2NC41MTItMTcuODA2MjIyIDguNDE5NTU2LTM1LjM4NDg4OSAzMS4xMTgyMjItNjIuODYyMjIyIDMyLjE0MjIyMi0yNC40MDUzMzMgMC45NjcxMTEtNjAuMDE3Nzc4LTIwLjU5Mzc3OC02MC4wMTc3NzgtMy45ODIyMjIgMCA1My41MzI0NDQtNS40MDQ0NDQgOTEuNzYxNzc4LTYuNTQyMjIyIDEwNi45NTExMTEtMC45MTAyMjIgMTIuMjg4LTcuOTY0NDQ0IDQuMTUyODg5IDI0Ljk3NDIyMiAzLjQxMzMzMyAxNy45Mi0wLjUxMiA5LjEwMjIyMiAzNi4wMTA2NjcgMjYuOTA4NDQ0IDM3LjQzMjg4OSAxNy40NjQ4ODkgMS4zNjUzMzMgNTguOTkzNzc4LTE2LjMyNzExMSA2OS41NzUxMTItOS4yNzI4ODkgOS44NDE3NzggNi41NDIyMjIgNzIuMzA1Nzc4LTE2My45NTM3NzggNzIuMzA1Nzc3LTI4LjE2IDAgMTYuMDk5NTU2LTguMzYyNjY3IDQ0LjA4ODg4OSAwIDU5LjMzNTExMiAzMi45OTU1NTYgNjAuMzAyMjIyIDYzLjg4NjIyMiAxMDkuNDU0MjIyIDYxLjA5ODY2NyAxMTYuNjIyMjIyLTEuNTM2IDQuMDM5MTExLTMzLjczNTExMSA3LjM5NTU1Ni01OS41MDU3NzgtMS4yNTE1NTYtOC43MDQtMi45MDEzMzMgMi43ODc1NTYtMTYuNDk3Nzc4LTkuNjcxMTExLTE5LjM5OTExMS00Ni44MTk1NTYtMTAuODA4ODg5LTg4LjE3Nzc3OCAxMi41NzI0NDQtNzMuNjcxMTExIDM0LjU4ODQ0NSAxNC43OTExMTEgMjIuNTI4IDY4LjQ5NDIyMiA5Ljg0MTc3OCA3My4yMTYgNTUuMDY4NDQ0IDIuNzMwNjY3IDI1Ljg4NDQ0NCA0Ljk0OTMzMyA1NS45MjE3NzggNi40ODUzMzMgNzguMjIyMjIyIDYyLjkxOTExMS05Ljg0MTc3OCA1NS45Nzg2NjcgODEuNjkyNDQ0LTM3LjU0NjY2NiA5MS40NzczMzRhNDM4LjEwMTMzMyA0MzguMTAxMzMzIDAgMCAwIDQwOC42MzI4ODktMjk0LjE3MjQ0NSAxNy44NjMxMTEgMTcuODYzMTExIDAgMCAxLTEwLjQ2NzU1NiA0Ljc3ODY2N2MtMjguMjczNzc4IDcwLjY1Ni05Ni45OTU1NTYgMTkuNTEyODg5LTczLjY3MTExMS00Mi44MzczMzQtMTI0Ljg3MTExMS05NS45NzE1NTYtOTIuODk5NTU2LTE2Mi44NzI4ODktNTEuODgyNjY3LTIwMS4yMTYgMjEuNjE3Nzc4LTIwLjEzODY2NyA0Mi4xNTQ2NjctNTAuNDAzNTU2IDU1LjU4MDQ0NS03Mi4xOTItMTQuNjIwNDQ0LTQyLjQ5NiA1My43MDMxMTEtMjUuNDg2MjIyIDg3LjM4MTMzMyA0Ni42NDg4ODlhNDM4LjYxMzMzMyA0MzguNjEzMzMzIDAgMCAwLTMxMy4wNTk1NTYtMzAyLjgxOTU1NXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzZXR0aW5nIiB1bmljb2RlPSImIzU4OTM0OyIgZD0iTTk1MC44NDA4ODkgNDU3LjE1OTExMWgtODEuMTgwNDQ1YTM2NC44Mjg0NDQgMzY0LjgyODQ0NCAwIDAgMS01My4zNjE3NzcgMTI3LjI2MDQ0NWw1Ny43NDIyMjIgNTcuNzk5MTExYTcyLjgxNzc3OCA3Mi44MTc3NzggMCAxIDEtMTAzLjEzOTU1NiAxMDMuMTM5NTU1bC01Ny43NDIyMjItNTcuNzk5MTExYTM1MC40MzU1NTYgMzUwLjQzNTU1NiAwIDAgMS0xMjggNTQuODQwODg5VjgyMi44NDA4ODlDNTg1LjE1OTExMSA4NjMuMDYxMzMzIDU1Mi4yMjA0NDQgODk2IDUxMiA4OTZTNDM4Ljg0MDg4OSA4NjMuMDYxMzMzIDQzOC44NDA4ODkgODIyLjg0MDg4OVY3NDIuNGEzNjEuOTI3MTExIDM2MS45MjcxMTEgMCAwIDEtMTI4LTU0LjEwMTMzM0wyNTMuMTU1NTU2IDc0Ni4wNDA4ODlhNzIuODE3Nzc4IDcyLjgxNzc3OCAwIDAgMS0xMDMuMTM5NTU2IDAgNzIuODE3Nzc4IDcyLjgxNzc3OCAwIDAgMSAwLTEwMy4xMzk1NTZMMjA3LjY0NDQ0NCA1ODUuMTU5MTExYTM3NC4zODU3NzggMzc0LjM4NTc3OCAwIDAgMS01My4zNjE3NzctMTI4SDczLjE1OTExMUMzMi45Mzg2NjcgNDU3LjE1OTExMSAwIDQyNC4yMjA0NDQgMCAzODRzMzIuOTM4NjY3LTczLjE1OTExMSA3My4xNTkxMTEtNzMuMTU5MTExaDgxLjE4MDQ0NWM5LjUwMDQ0NC00Ni44MTk1NTYgMjguNTAxMzMzLTg5LjIwMTc3OCA1My4zNjE3NzctMTI3LjI2MDQ0NWwtNTcuNzQyMjIyLTU3Ljc5OTExMWE3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxIDAtMTAzLjA4MjY2NiA3Mi44MTc3NzggNzIuODE3Nzc4IDAgMCAxIDEwMy4xMzk1NTYgMGw1Ny43NDIyMjIgNTcuNzQyMjIyYTM1MC40MzU1NTYgMzUwLjQzNTU1NiAwIDAgMSAxMjgtNTQuODQwODg5di04MC40NDA4ODlDNDM4Ljg0MDg4OS05NS4wNjEzMzMgNDcxLjc3OTU1Ni0xMjggNTEyLTEyOHM3My4xNTkxMTEgMzIuOTM4NjY3IDczLjE1OTExMSA3My4xNTkxMTFWMjUuNmEzNjEuOTI3MTExIDM2MS45MjcxMTEgMCAwIDEgMTI4IDU0LjEwMTMzM2w1Ny43NDIyMjItNTcuNzQyMjIyYzI4LjU1ODIyMi0yOC41NTgyMjIgNzQuNjM4MjIyLTI4LjU1ODIyMiAxMDMuMTM5NTU2IDBzMjguNTU4MjIyIDc0LjU4MTMzMyAwIDEwMy4xMzk1NTZsLTU3Ljc0MjIyMiA1Ny43NDIyMjJhMzcwLjc0NDg4OSAzNzAuNzQ0ODg5IDAgMCAxIDUzLjM2MTc3NyAxMjcuMjYwNDQ0aDgxLjE4MDQ0NWE3My41MDA0NDQgNzMuNTAwNDQ0IDAgMCAxIDAgMTQ3LjAwMDg4OXpNNTEyIDIzNy43Mzg2NjdBMTQ2LjcxNjQ0NCAxNDYuNzE2NDQ0IDAgMCAwIDM2NS43Mzg2NjcgMzg0IDE0Ni43MTY0NDQgMTQ2LjcxNjQ0NCAwIDAgMCA1MTIgNTMwLjI2MTMzMyAxNDYuNzE2NDQ0IDE0Ni43MTY0NDQgMCAwIDAgNjU4LjI2MTMzMyAzODQgMTQ2LjcxNjQ0NCAxNDYuNzE2NDQ0IDAgMCAwIDUxMiAyMzcuNzM4NjY3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImFkZCIgdW5pY29kZT0iJiM1ODkzNjsiIGQ9Ik0wIDQ2OS4zMzMzMzNoMTAyNHYtMTcwLjY2NjY2Nkgwek00MjYuNjY2NjY3IDg5NmgxNzAuNjY2NjY2di0xMDI0SDQyNi42NjY2Njd6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icHJldmlldyIgdW5pY29kZT0iJiM1ODkzNTsiIGQ9Ik03NzIuMzUyIDE5Ny42MzJjOTIuMTYgMTI2LjU0OTMzMyA4MC4wNDI2NjcgMzAxLjk5NDY2Ny0zMS4wNjEzMzMgNDEyLjQxNkEzMTYuMzMwNjY3IDMxNi4zMzA2NjcgMCAwIDEgNTE1Ljc1NDY2NyA3MDMuMTQ2NjY3Yy04NS4xNjI2NjcgMC0xNjUuMTItMzMuMzY1MzMzLTIyNS41MzYtOTMuMTg0YTMyMC40MjY2NjcgMzIwLjQyNjY2NyAwIDAgMS05Mi42NzItMjI1LjUzNkEzMTguNDY0IDMxOC40NjQgMCAwIDEgNTE2LjI2NjY2NyA2NS45NjI2NjdjNjcuMjQyNjY3IDAgMTMxLjc1NDY2NyAyMS4zMzMzMzMgMTg2Ljk2NTMzMyA2Mi4xMjI2NjZsMTY1LjcxNzMzMy0xNjUuMTJhNDguMjk4NjY3IDQ4LjI5ODY2NyAwIDAgMSA2OS4xMiAwIDQ4Ljk4MTMzMyA0OC45ODEzMzMgMCAwIDEgMCA2OS4xMnogbS00MTIuNTg2NjY3IDMwLjQ2NGEyMjAuNjcyIDIyMC42NzIgMCAwIDAgMTU2LjU4NjY2NyAzNzYuNzQ2NjY3IDIyMC42NzIgMjIwLjY3MiAwIDAgMCAxNTYuNTAxMzMzLTM3Ni42NjEzMzRjLTgzLjQ1Ni04Mi44NTg2NjctMjI5LjU0NjY2Ny04Mi44NTg2NjctMzEzLjA4OCAwek03NjIuNTM4NjY3IDg5NS4zMTczMzNIMjYxLjk3MzMzM2EyNjEuMzc2IDI2MS4zNzYgMCAwIDEtMjYxLjIwNTMzMy0yNjEuMTJ2LTUwMC4zOTQ2NjZhMjYxLjM3NiAyNjEuMzc2IDAgMCAxIDI2MS4xMi0yNjEuMTJoMjcxLjcwMTMzM2E0OC44MTA2NjcgNDguODEwNjY3IDAgMSAxIDAgOTcuNzkySDI2MS45NzMzMzNhMTYyLjk4NjY2NyAxNjIuOTg2NjY3IDAgMCAwLTE2Mi44MTYgMTYyLjczMDY2NlY2MzMuNkExNjIuOTg2NjY3IDE2Mi45ODY2NjcgMCAwIDAgMjYxLjk3MzMzMyA3OTYuMzMwNjY3aDUwMC41NjUzMzRhMTYyLjk4NjY2NyAxNjIuOTg2NjY3IDAgMCAwIDE2Mi45ODY2NjYtMTYyLjczMDY2N3YtMjY2LjI0YTQ4LjgxMDY2NyA0OC44MTA2NjcgMCAxIDEgOTcuNzA2NjY3IDBWNjM0LjYyNEEyNjAuNzc4NjY3IDI2MC43Nzg2NjcgMCAwIDEgNzYyLjUzODY2NyA4OTUuMzE3MzMzeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InJlZnJlc2giIHVuaWNvZGU9IiYjNTg5Mzc7IiBkPSJNNjk4LjAwMjI4NiAxMTEuMTc3MTQzYTMxNi41NjIyODYgMzE2LjU2MjI4NiAwIDAgMC0xODkuODc4ODU3LTU5Ljk3NzE0M2MtOC45OTY1NzEgMC4wNzMxNDMtMTcuNzczNzE0IDAuNzMxNDI5LTI2LjU1MDg1OCAxLjQ2Mjg1Ny0zLjY1NzE0MyAwLjM2NTcxNC03LjE2OCAwLjk1MDg1Ny0xMC43NTIgMS40NjI4NTdhMjYxLjEyIDI2MS4xMiAwIDAgMC0yMC40OCAzLjIxODI4NmMtNC4xNjkxNDMgMC43MzE0MjktOC4yNjUxNDMgMS45NzQ4NTctMTIuMjg4IDIuOTI1NzE0LTYuNTgyODU3IDEuNDYyODU3LTEzLjE2NTcxNCAyLjkyNTcxNC0xOS42NzU0MjggNC45MDA1NzItMi45OTg4NTcgMS4yNDM0MjktNS45MjQ1NzEgMi4xOTQyODYtOC45OTY1NzIgMy40Mzc3MTRhMjQzLjM0NjI4NiAyNDMuMzQ2Mjg2IDAgMCAwLTIyLjAxNiA4LjE5MmwtNC44Mjc0MjggMS45NzQ4NTdhNTQ4LjU3MTQyOSA1NDguNTcxNDI5IDAgMCAwLTI0LjcyMjI4NiAxMi4zNjExNDNsLTEuMDI0IDAuNTg1MTQzYTMyNC40NjE3MTQgMzI0LjQ2MTcxNCAwIDAgMC03My44NzQyODYgNTYuODMybC0xLjAyNCAxLjI0MzQyOGEyNzUuMDkwMjg2IDI3NS4wOTAyODYgMCAwIDAtMTkuMzgyODU3IDIxLjg2OTcxNUEzMzYuODIyODU3IDMzNi44MjI4NTcgMCAwIDAgMTg3Ljc1NzcxNCAzODRoODUuNDMwODU3TDEzNi42MzA4NTcgNTk0LjI4NTcxNCAwLjA3MzE0MyAzODRoODUuMjg0NTcxYzAtOTIuMDg2ODU3IDI4LjA4Njg1Ny0xNzcuNTE3NzE0IDc1LjU1NjU3Mi0yNDguMjQ2ODU3IDAuNTg1MTQzLTEuMDk3MTQzIDAuOTUwODU3LTIuMTk0Mjg2IDEuNjA5MTQzLTMuMDcyIDQuOTAwNTcxLTcuMzE0Mjg2IDEwLjM4NjI4Ni0xMy45NzAyODYgMTUuNjUyNTcxLTIwLjY5OTQyOSAyLjA0OC0yLjQ4Njg1NyAzLjczMDI4Ni01LjA0Njg1NyA1Ljg1MTQyOS03Ljc1MzE0MyA3Ljc1MzE0My05LjU4MTcxNCAxNi4wOTE0MjktMTguNzI0NTcxIDI0LjUwMjg1Ny0yNy42NDhsMi4zNDA1NzEtMi40ODY4NTdjMjguNTk4ODU3LTI5LjQwMzQyOSA2MC44NTQ4NTctNTQuMTI1NzE0IDk1Ljk2MzQyOS03My45NDc0MjhsMi44NTI1NzEtMS42MDkxNDNjMTAuMDkzNzE0LTUuNTU4ODU3IDIwLjQ4LTEwLjc1MiAzMC45Mzk0MjktMTUuMzZsNy44MjYyODUtMy41ODRhNjkyLjgwOTE0MyA2OTIuODA5MTQzIDAgMCAxIDQwLjg4Njg1OC0xNS4wNjc0MjljOC4xMTg4NTctMi40MTM3MTQgMTYuMzg0LTQuNjA4IDI0Ljg2ODU3MS02LjU4Mjg1NyA1LjU1ODg1Ny0xLjI0MzQyOSAxMC45NzE0MjktMi43Nzk0MjkgMTYuNjc2NTcxLTMuODAzNDI4IDIuMzQwNTcxLTAuNTg1MTQzIDQuNTM0ODU3LTEuMzg5NzE0IDYuODc1NDI5LTEuNjA5MTQzIDguMDQ1NzE0LTEuNDYyODU3IDE1Ljk0NTE0My0yLjE5NDI4NiAyMy43NzE0MjktMy4yMTgyODYgMi45MjU3MTQtMC41MTIgNS43NzgyODYtMS4wMjQgOC42MzA4NTctMS4zMTY1NzEgMTQuMTg5NzE0LTEuNDYyODU3IDI4LjM3OTQyOS0yLjM0MDU3MSA0Mi41NjkxNDMtMi4zNDA1NzJhNDE1Ljc0NCA0MTUuNzQ0IDAgMCAxIDI0My45MzE0MjggNzkuNTA2Mjg2IDUzLjU0MDU3MSA1My41NDA1NzEgMCAwIDEgMTIuNjUzNzE0IDczLjE0Mjg1NyA1MC4wMjk3MTQgNTAuMDI5NzE0IDAgMCAxLTcxLjMxNDI4NSAxMi45NDYyODZ6TTkzOC40OTYgMzg0YTQ0Mi44OCA0NDIuODggMCAwIDEtNzUuMDQ0NTcxIDI0Ny42NjE3MTRjLTAuNzMxNDI5IDEuMTcwMjg2LTEuMDk3MTQzIDIuNDEzNzE0LTEuNjgyMjg2IDMuNTEwODU3YTUzNS45OTA4NTcgNTM1Ljk5MDg1NyAwIDAgMS0xOC44NzA4NTcgMjQuODY4NTcyIDMwLjY0Njg1NyAzMC42NDY4NTcgMCAwIDAtMi4xMjExNDMgMi45MjU3MTQgNDI3LjczOTQyOSA0MjcuNzM5NDI5IDAgMCAxLTE1OS4zMDUxNDMgMTIyLjg4bC01LjEyIDIuMjY3NDI5YTUwNC41Mzk0MjkgNTA0LjUzOTQyOSAwIDAgMS0zMC4yMDggMTEuNDEwMjg1bC0xMC44MjUxNDMgMy42NTcxNDNhNDE2LjQwMjI4NiA0MTYuNDAyMjg2IDAgMCAxLTI2Ljc3MDI4NiA3LjE2OGwtMTUuMTQwNTcxIDMuNTEwODU3Yy0yLjQ4Njg1NyAwLjQzODg1Ny00Ljc1NDI4NiAxLjE3MDI4Ni03LjMxNDI4NiAxLjY4MjI4Ni02LjgwMjI4NiAxLjA5NzE0My0xMy4zODUxNDMgMS44Mjg1NzEtMjAuMTg3NDI4IDIuNjMzMTQzLTQuNjgxMTQzIDAuNTEyLTkuMjE2IDEuMjQzNDI5LTEzLjg5NzE0MyAxLjc1NTQyOWE0MzEuMDMwODU3IDQzMS4wMzA4NTcgMCAwIDEtMzMuOTM4Mjg2IDEuODI4NTcxYy0yLjA0OCAwLTQuMDk2IDAuMjkyNTcxLTYuMTQ0IDAuMjkyNTcxYTQxNS4xNTg4NTcgNDE1LjE1ODg1NyAwIDAgMS0yNDQuNTg5NzE0LTc5LjI4Njg1NyA1My4zOTQyODYgNTMuMzk0Mjg2IDAgMCAxLTEyLjUwNzQyOS03My4yMTZjMTYuMDkxNDI5LTIzLjY5ODI4NiA0OC4xMjgtMjkuNTQ5NzE0IDcxLjMxNDI4Ni0xMi44YTMxNS42MTE0MjkgMzE1LjYxMTQyOSAwIDAgMCAyMTYuNzk1NDI5IDU4LjUxNDI4NmMyLjkyNTcxNC0wLjIxOTQyOSA1LjcwNTE0My0wLjczMTQyOSA4LjU1NzcxNC0xLjE3MDI4NiA3Ljc1MzE0My0wLjk1MDg1NyAxNS4zNi0xLjk3NDg1NyAyMi45NjY4NTctMy42NTcxNDMgMy4yMTgyODYtMC41ODUxNDMgNi41ODI4NTctMS40NjI4NTcgOS43MjgtMi4xOTQyODUgNy40NjA1NzEtMS43NTU0MjkgMTQuNzc0ODU3LTMuNTEwODU3IDIxLjk0Mjg1Ny01Ljc3ODI4NiAyLjQxMzcxNC0wLjczMTQyOSA0LjYwOC0xLjQ2Mjg1NyA2LjgwMjI4Ni0yLjQxMzcxNCA4LjMzODI4Ni0yLjc3OTQyOSAxNi40NTcxNDMtNS42MzIgMjQuMzU2NTcxLTkuMDY5NzE1IDAuODc3NzE0LTAuMjE5NDI5IDEuNjgyMjg2LTAuOTUwODU3IDIuNDg2ODU3LTEuMjQzNDI4YTMyNi4yMTcxNDMgMzI2LjIxNzE0MyAwIDAgMCAxMjIuODgtOTQuNzkzMTQzQTMzNy4zMzQ4NTcgMzM3LjMzNDg1NyAwIDAgMCA4MzYuMjQyMjg2IDM4NGgtODUuNTA0bDEzNi43NzcxNDMtMjEwLjM1ODg1N0wxMDIzLjkyNjg1NyAzODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ic29saWQtdHJpYW5nbGUiIHVuaWNvZGU9IiYjNTg5Mzg7IiBkPSJNNDcxLjE0MjQgMTIyLjE2MzJjMjIuNTI4LTI1LjA4OCA1OC42NzUyLTI1LjYgODEuNzE1MiAwbDI0NS45NjQ4IDI3My40MDhjNDUuMTU4NCA1MC4xNzYgMjYuNDE5MiA5MC44Mjg4LTQxLjU3NDQgOTAuODI4OGgtNDkwLjQ5NmMtNjguMDk2IDAtODYuNzMyOC00MC43NTUyLTQxLjU3NDQtOTAuOTMxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyb2FkbmV0d29yayIgdW5pY29kZT0iJiM1ODkzOTsiIGQ9Ik01MDIuNzEwODU3IDgxOC40Njg1NzFhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42MjA1NzEtMzcuMzAyODU3di0xNjIuMjMwODU3YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjIwNTcxLTM3LjMwMjg1NyAzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjY5MzcxNCAzNy4zMDI4NTdWNzgxLjE2NTcxNGEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjY5MzcxNCAzNy4zMDI4NTd6IG0tMS42MDkxNDMtMzUyLjc2OGEzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxLTM1LjY5MzcxNC0zNy4zMDI4NTd2LTE2Mi4zMDRhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42OTM3MTQtMzcuMzAyODU3IDM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEgMzUuNjIwNTcyIDM3LjMwMjg1N1Y0MjguMzk3NzE0YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjIwNTcyIDM3LjMwMjg1N3ogbTAtMzUzLjI4YTM2LjU3MTQyOSAzNi41NzE0MjkgMCAwIDEtMzUuNjkzNzE0LTM3LjMwMjg1N3YtMTYyLjM3NzE0M2EzNi41NzE0MjkgMzYuNTcxNDI5IDAgMCAxIDM1LjY5MzcxNC0zNy4zMDI4NTcgMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMSAzNS42MjA1NzIgMzcuMzAyODU3djE2Mi4zNzcxNDNhMzYuNTcxNDI5IDM2LjU3MTQyOSAwIDAgMS0zNS42MjA1NzIgMzcuMzAyODU3eiBtNTA2LjczMzcxNS0xOTMuMDk3MTQybC0xODkuMTQ3NDI5IDg3My4zMjU3MTRjLTQuNDYxNzE0IDIwLjc3MjU3MS0yMy42OTgyODYgMzMuNzE4ODU3LTQyLjg2MTcxNCAyOS4wMzc3MTQtMTkuMjM2NTcxLTQuNzU0Mjg2LTMxLjE1ODg1Ny0yNS4zODA1NzEtMjYuNjk3MTQzLTQ2LjA4bDE4OS4xNDc0MjgtODczLjM5ODg1N2M0LjUzNDg1Ny0yMC43NzI1NzEgMjMuNjk4Mjg2LTMzLjcxODg1NyA0Mi45MzQ4NTgtMjkuMDM3NzE0IDE5LjIzNjU3MSA0Ljc1NDI4NiAzMS4xNTg4NTcgMjUuMzgwNTcxIDI2LjYyNCA0Ni4wOHpNMjMzLjgzNzcxNCA4MjEuNjg2ODU3Yy0xOS4xNjM0MjkgNC42ODExNDMtMzguNC04LjI2NTE0My00Mi44NjE3MTQtMjkuMDM3NzE0TDEuODI4NTcxLTgwLjY3NjU3MWMtNC41MzQ4NTctMjAuNzcyNTcxIDcuMzg3NDI5LTQxLjM5ODg1NyAyNi42MjQtNDYuMDggMTkuMjM2NTcxLTQuNzU0Mjg2IDM4LjQgOC4xOTIgNDIuOTM0ODU4IDI4Ljk2NDU3MWwxODkuMTQ3NDI4IDg3My4zMjU3MTRjNC40NjE3MTQgMjAuNzcyNTcxLTcuNDYwNTcxIDQxLjM5ODg1Ny0yNi42OTcxNDMgNDYuMDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icmV0dXJuIiB1bmljb2RlPSImIzU4OTQwOyIgZD0iTTk0MS4zMTIgMzQyLjc4NEgyNDAuMzg0bDM0Ny4yLTM0Ny4yLTU4LjI0LTU4LjI0TDgyLjY4OCAzODRsNDQ2LjcyIDQ0Ni42NTYgNTguMjQtNTguMjQtMzQ3LjI2NC0zNDcuMmg3MDAuOTI4ek0xOTkuMjMyIDM4MS40NGwzLjY0OC0zLjJ2Ni40eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InBhY2t1cCIgdW5pY29kZT0iJiM1ODk0MTsiIGQ9Ik0xMDYuNDk2IDgwMGg4MjAuNDE2YzIyLjY1NiAwIDQwLjk2IDIxLjUwNCA0MC45NiA0OHMtMTguMzA0IDQ4LTQwLjk2IDQ4SDEwNi40OTZjLTIyLjU5MiAwLTQwLjk2LTIxLjUwNC00MC45Ni00OHMxOC4zNjgtNDggNDAuOTYtNDh6TTU0MC4yMjQgNDQ4SDk5Ljc3NkM4MCA0NDggNjQgNDI2LjQ5NiA2NCA0MDBzMTYtNDggMzUuODQtNDhoNDQwLjMyYzE5Ljg0IDAgMzUuODQgMjEuNTA0IDM1Ljg0IDQ4UzU2MCA0NDggNTQwLjE2IDQ0OHogbTM4NS4xNTItNDQ4SDEwNS4wMjRjLTIyLjY1NiAwLTQxLjAyNC0yMS41MDQtNDEuMDI0LTQ4czE4LjM2OC00OCA0MC45Ni00OGg4MjAuNDhjMjIuNTkyIDAgNDAuOTYgMjEuNTA0IDQwLjk2IDQ4cy0xOC4zNjggNDgtNDAuOTYgNDh6IG0zMS40MjQgNjA3LjkzNmwtMjQwLTIwOCAyNDAtMjA4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InNoYXJlIiB1bmljb2RlPSImIzU4OTQyOyIgZD0iTTkxNS41MiAyMzguNzJ2LTIxNy43MjhjMC0zNy40NC0zMC43Mi02OC44NjQtNjYuODE2LTY4Ljg2NGwtNzA2LjU2LTEuMjhjLTM2LjA5NiAwLTY1LjYgMzAuNC02NS42IDY3Ljg0bDEuMjE2IDcyOC4wNjRjMCAzNy4zMTIgMzAuNzIgNjguOTI4IDY2Ljg4IDY4LjkyOGgzOTAuNzg0Vjg5NS44MDhIMTQ0LjY0QzYyLjAxNiA4OTUuODA4IDAuMTkyIDgwOS42NjQgMC4xOTIgNzMyLjYwOHYtNzEzLjg1NmMwLTgwLjc2OCA2My42MTYtMTQ2LjU2IDE0Mi4yMDgtMTQ2LjU2aDY5Mi43MzZjODIuODE2IDAgMTU4LjE0NCA3MC45NzYgMTU4LjE0NCAxNDguOFYyMzguNzJ6IG0tMTgzLjE2OCA1NTMuNDcybDI5MS40NTYtMjgyLjExMi0yOTEuNDU2LTI4MS45ODRWMzg5LjI0OHMtMjg5LjI4IDMxLjA0LTQ1OC4wNDgtMjAxLjZjMCAwIDUzLjEyIDQ0My4zOTIgNDU4LjA0OCA0NDMuMzkyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImJhY2tob21lcGFnZSIgdW5pY29kZT0iJiM1ODk2OTsiIGQ9Ik03MjkuMjQ4IDQ4LjEyOGgtMTM5Ljk2OGExOS44NCAxOS44NCAwIDAgMC0xOS44NCAxOS44NHYyNjkuMTJhMTguMDQ4IDE4LjA0OCAwIDAgMS0xOC4wNDggMTguMDE2aC03Ni43MzZhMTguMDQ4IDE4LjA0OCAwIDAgMS0xOC4wNDgtMTguMDE2di0yNjkuMTJhMTkuODQgMTkuODQgMCAwIDAtMTkuODQtMTkuODRIMjkyLjQ4YTU4LjQ2NCA1OC40NjQgMCAwIDAtNTguNDY0IDU4LjQ2NHYyNDcuMzZhMTMuNDQgMTMuNDQgMCAwIDEtMTMuNDQgMTMuNDRIMTgzLjc0NGMtMzQuNCAwLTUxLjg3MiA0MS4yOC0yNy45NjggNjUuOTg0bDMyOC4zMiAzMzkuMDRhMzguOTEyIDM4LjkxMiAwIDAgMCA1NS42NDggMC4zMkw4NzIuNTEyIDQzNi40OGMyNS4zNzYtMjUuNiA3LjItNjkuMTItMjguODMyLTY5LjEySDgwNC4xNmExNC40NjQgMTQuNDY0IDAgMCAxLTE0LjQ2NC0xNC40NjR2LTI0NC4zNTJhNjAuNDggNjAuNDggMCAwIDAtNjAuNDgtNjAuNDh6IG0tODUuNjY0IDQ5Ljg4OGg3MS45NjhjMTMuNDA4IDAgMjQuMjU2IDEwLjg4IDI0LjI1NiAyNC4yNTZ2MjcwLjIwOGMwIDEzLjY5NiAxMS4xMDQgMjQuOCAyNC44IDI0LjhoNDYuNDk2YTQuMjg4IDQuMjg4IDAgMCAxIDMuMDQgNy4yOTZMNTIzLjk2OCA3MTcuNzZhMTYuMzg0IDE2LjM4NCAwIDAgMS0yMy40MjQtMC4xMjhsLTI5MC44OC0zMDAuMzg0aDQ5LjQ3MmMxMy42OTYgMCAyNC44LTExLjEwNCAyNC44LTI0Ljh2LTI3MC4yMDhjMC0xMy40MDggMTAuODgtMjQuMjU2IDI0LjI1Ni0yNC4yNTZoNzQuMjRjMTMuNDQgMCAyNC4zMiAxMC44OCAyNC4zMiAyNC4yNTZWMzM0LjcyYzAgMzguODQ4IDMxLjQ1NiA3MC4zMDQgNzAuMjcyIDcwLjMwNGg3MmMzOC44MTYgMCA3MC4zMDQtMzEuNDU2IDcwLjMwNC03MC4zMDR2LTIxMi40MTZjMC0xMy40MDggMTAuODgtMjQuMjU2IDI0LjI1Ni0yNC4yNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iTXlNYXBzIiB1bmljb2RlPSImIzU4OTcwOyIgZD0iTTgzMC41OTIgNzI4LjU3NmMtNS4xNTIgMC0xMC40MzItMC44NjQtMTUuNTg0LTIuODE2bC0xNzIuODk2LTYyLjgxNmE0NS4yNDggNDUuMjQ4IDAgMCAwLTE1LjU4NC0yLjcyYy01Ljc2IDAtMTEuNDU2IDEuMDU2LTE2Ljg2NCAzLjI2NGwtMTk1LjIgNzguMTEyYTQ1LjYgNDUuNiAwIDAgMS0zMi40NDggMC41MTJMMTc3Ljk4NCA2NjcuOTY4YTQ1LjQ0IDQ1LjQ0IDAgMCAxLTI5LjkyLTQyLjc4NHYtNTQwLjE2YTQ1LjUwNCA0NS41MDQgMCAwIDEgNjAuOTkyLTQyLjY4OGwxNzIuODk2IDYyLjg0OGM0Ljk5MiAxLjgyNCAxMC4zMDQgMi42ODggMTUuNTUyIDIuNjg4IDUuNzYgMCAxMS40ODgtMS4wNTYgMTYuODk2LTMuMmwxOTUuMi03OC4xNzZhNDUuMjQ4IDQ1LjI0OCAwIDAgMSAzMi40OC0wLjUxMmwyMDMuOTY4IDc0LjIwOGE0NS40NCA0NS40NCAwIDAgMSAyOS45MiA0Mi43ODRWNjgzLjEwNGMwIDI1Ljk1Mi0yMS4zNDQgNDUuNDcyLTQ1LjQ0IDQ1LjQ3MnpNMTkzLjQ3MiA4NC45MjhWNjI1LjE1MmwxODIuMDE2IDY2LjE0NHYtNTQwLjczNmE4My45MzYgODMuOTM2IDAgMCAxLTkuMDg4LTIuODE2eiBtMjI3LjUyIDY1LjI4VjY4OS44ODhsMTcxLjc3Ni02OC42NzJjMy4zOTItMS4zMTIgNi44MTYtMi40NjQgMTAuMjQtMy40MjR2LTUzOS42OGwtMTcxLjc3NiA2OC42NzJhNzAuMjQgNzAuMjQgMCAwIDEtMTAuMjQgMy40MjR6IG00MDkuNTA0LTcuMzZsLTE4MS45ODQtNjYuMTQ0VjYxNy40NGMzLjA0IDAuOCA2LjExMiAxLjY2NCA5LjA4OCAyLjgxNmwxNzIuODk2IDYyLjgxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJDcmVhdGVNYXAiIHVuaWNvZGU9IiYjNTg5NzE7IiBkPSJNNTEyIDczNkMzMDAuMDMyIDczNiAxMjggNTYzLjk2OCAxMjggMzUyczE3Mi4wMzItMzg0IDM4NC0zODQgMzg0IDE3Mi4wMzIgMzg0IDM4NFM3MjMuOTY4IDczNiA1MTIgNzM2eiBtMC03MTQuMjRjLTE4Mi4wMTYgMC0zMzAuMjQgMTQ4LjIyNC0zMzAuMjQgMzMwLjI0UzMyOS45ODQgNjgyLjI0IDUxMiA2ODIuMjQgODQyLjI0IDUzNC43ODQgODQyLjI0IDM1MiA2OTQuMDE2IDIxLjc2IDUxMiAyMS43NnpNNjY3LjEzNiAzODUuNzkyaC0xMjEuMzQ0djEyMS4zNDRjMCAxNC41OTItMTIuMjg4IDI2Ljg4LTI2Ljg4IDI2Ljg4cy0yNi44OC0xMi4yODgtMjYuODgtMjYuODh2LTEyMS4zNDRoLTEyMS4zNDRjLTE0LjU5MiAwLTI2Ljg4LTEyLjI4OC0yNi44OC0yNi44OHMxMi4yODgtMjYuODggMjYuODgtMjYuODhoMTIxLjM0NHYtMTIxLjM0NGMwLTE0LjU5MiAxMi4yODgtMjYuODggMjYuODgtMjYuODhzMjYuODggMTIuMjg4IDI2Ljg4IDI2Ljg4djEyMS4zNDRoMTIxLjM0NGMxNC41OTIgMCAyNi44OCAxMi4yODggMjYuODggMjYuODhzLTEyLjI4OCAyNi44OC0yNi44OCAyNi44OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmZWVkYmFjayIgdW5pY29kZT0iJiM1ODk3MjsiIGQ9Ik00MTAuMzA0IDE1Mi44OTZsLTE3NS42NDgtMTM4LjY4OHYxMzguNjg4aC0yOC40NDhhNjQgNjQgMCAwIDAtNjQgNjRWNjQzLjUyYTY0IDY0IDAgMCAwIDY0IDY0aDYxMS41ODRhNjQgNjQgMCAwIDAgNjQtNjR2LTQyNi42NTZhNjQgNjQgMCAwIDAtNjQtNjR6IG0tNy4zNiA0Ni4yMDhoNDAwLjY0YTMyIDMyIDAgMCAxIDMyIDMyVjYyOS4zNDRhMzIgMzIgMCAwIDEtMzIgMzJIMjIwLjQxNmEzMiAzMiAwIDAgMS0zMi0zMnYtMzk4LjI0YTMyIDMyIDAgMCAxIDMyLTMyaDI4LjQ0OGEzMiAzMiAwIDAgMCAzMi0zMnYtNTUuODA4bDEwMi4yMDggODAuODk2YTMyIDMyIDAgMCAwIDE5Ljg0IDYuOTEyek0yODAuODk2IDM4NGg0NjIuMjA4di00Ni4yMDhIMjgwLjg5NnogbTAgMTM4LjY1Nmg0NjIuMjA4di00Ni4yMDhIMjgwLjg5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJza2luMSIgdW5pY29kZT0iJiM1ODk3MzsiIGQ9Ik03NDAuMTkyIDc4MHYtNTZsMTQyLjgxNi0xNDEuNDA4LTc5LjgwOC03OS43NzZhNTUuMiA1NS4yIDAgMCAxLTM3Ljc5MiAxMy45ODQgNTYuNzY4IDU2Ljc2OCAwIDAgMS01Ny40MDgtNTcuNDA4di0yOTUuMzkyYzAtMzAuODE2LTI1LjE4NC01Ni01Ni01NmgtMjgwYy0zMC43ODQgMC01NiAyNS4xODQtNTYgNTZ2Mjk1LjM5MmE1Ni43NjggNTYuNzY4IDAgMCAxLTU3LjQwOCA1Ny40MDhjLTEzLjk4NCAwLTI4LTUuNi0zNy43OTItMTQuMDE2TDE0MC45OTIgNTgyLjU5MmwxNDEuNDA4IDE0MS40MDhoMzUuMDA4bDEuNDA4LTEuNDA4QzM1OC4wMTYgNjYzLjgwOCA0MzIuMTkyIDYyNS45ODQgNTEyIDYyNS45ODRzMTU0LjAxNiAzNi40MTYgMTkzLjE4NCA5Ni42NGMwIDEuMzc2IDEuNDA4IDEuMzc2IDEuNDA4IDEuMzc2aDMzLjZ6IG0tNDIxLjM3NiAwSDI4OGMtMTkuNTg0IDAtMzMuNi01LjYtNDMuMzkyLTE2LjhMMTAxLjc2IDYyMS43OTJjLTIyLjQtMjIuNC0yMi40LTU3LjQwOCAwLTc4LjRMMTg0LjQxNiA0NjAuOGM5Ljc5Mi05Ljc5MiAyMy43NzYtMTUuMzkyIDM2LjM4NC0xNS4zOTJzMjYuNTkyIDUuNiAzNi40MTYgMTUuMzkyaDEuMzc2YzEuNDA4IDAgMS40MDggMCAxLjQwOC0xLjQwOHYtMjk1LjM5MmExMTIuMzIgMTEyLjMyIDAgMCAxIDExMi0xMTJoMjgwYTExMi4zMiAxMTIuMzIgMCAwIDEgMTEyIDExMnYyOTUuMzkyYzAgMS40MDggMCAxLjQwOCAxLjQwOCAxLjQwOGgxLjM3NmM5LjgyNC05Ljc5MiAyMy44MDgtMTUuMzkyIDM2LjQxNi0xNS4zOTIgMTMuOTg0IDAgMjYuNTkyIDUuNiAzNi4zODQgMTUuMzkybDgyLjYyNCA4Mi41OTJjMjIuNCAyMi40IDIyLjQgNTcuNDA4IDAgNzguNEw3ODAuOCA3NjMuMmE1Ni4wNjQgNTYuMDY0IDAgMCAxLTQwLjYwOCAxNi44aC0zNS4wMDhjLTE5LjU4NCAwLTM2LjM4NC05Ljc5Mi00Ny41ODQtMjYuNTkyLTI5LjQwOC00My40MjQtODQtNzEuNDI0LTE0Ny4wMDgtNzEuNDI0cy0xMTcuNiAyOS40NC0xNDcuMDA4IDcxLjQyNGMtOC4zODQgMTYuOC0yNi41NiAyNi41OTItNDQuOCAyNi41OTJ6TTM4NCA0ODBoMTI4di0xNjBoLTEyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0iIHVuaWNvZGU9IiYjNTg5NzQ7IiBkPSJNNjEzLjYzMiA4MzkuMzZjMTQuNTI4IDE4LjQzMiAyMS42OTYgMTUuMDQgMTUuODA4LThMNTU1LjM5MiA1NDAuNDggNzk4Ljc4NCA0NjcuMmMxMS4yLTMuMzI4IDE0LjU5Mi0xMy42MzIgNy40ODgtMjMuMDRsLTM4Ny41Mi01MTYuMDk2Yy0xNC4xNDQtMTguOTQ0LTIwLjg2NC0xNS44MDgtMTQuOTEyIDcuMTA0TDQ4Mi4yNCAyMzYuOCAyMDAuOTYgMjg2LjI3MmMtMTEuNTg0IDIuMDQ4LTE1LjE2OCAxMS4wNzItNy43NDQgMjAuNDh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYWNjb3VudCIgdW5pY29kZT0iJiM1ODk3NTsiIGQ9Ik04NDcuNjggNjYxLjQ0YzE3LjYgMCAzMS44NzItMTQuMjcyIDMxLjg3Mi0zMS44NHYtNDkxLjJjMC0xNy41NjgtMTQuMjcyLTMxLjg3Mi0zMS44NzItMzEuODcySDE3Ni4zMmEzMS45MDQgMzEuOTA0IDAgMCAwLTMxLjg3MiAzMS44NzJWNjI5LjZjMCAxNy41NjggMTQuMjcyIDMxLjg3MiAzMS44NzIgMzEuODcyeiBtMCA1Mi41MTJIMTc2LjMyYTg0LjM4NCA4NC4zODQgMCAwIDEtODQuMzg0LTg0LjM1MnYtNDkxLjJBODQuMzg0IDg0LjM4NCAwIDAgMSAxNzYuMzIgNTQuMDhoNjcxLjM2YTg0LjM4NCA4NC4zODQgMCAwIDEgODQuMzg0IDg0LjM1MlY2MjkuNkE4NC4zODQgODQuMzg0IDAgMCAxIDg0Ny42OCA3MTMuOTJ6TTgxMi40NDggNTM3Ljc2YzAtMTQuNDMyLTExLjg0LTI2LjI0LTI2LjI0LTI2LjI0aC0xNzIuNDhjLTE0LjQzMiAwLTI2LjI0IDExLjgwOC0yNi4yNCAyNi4yNHMxMS44MDggMjYuMjQgMjYuMjQgMjYuMjRoMTcyLjQ4YzE0LjQgMCAyNi4yNC0xMS44NCAyNi4yNC0yNi4yNHogbTAtMTIzLjc0NGMwLTE0LjQzMi0xMS44NC0yNi4yNC0yNi4yNC0yNi4yNGgtMTE2Ljk2YTI2LjMzNiAyNi4zMzYgMCAwIDAtMjYuMjQgMjYuMjRjMCAxNC40MzIgMTEuODA4IDI2LjI0IDI2LjI0IDI2LjI0aDExNi45MjhjMTQuNDY0IDAgMjYuMjQtMTEuODA4IDI2LjI0LTI2LjI0eiBtMC0xMjMuNzQ0YzAtMTQuNC0xMS44NC0yNi4yNC0yNi4yNC0yNi4yNGgtNjUuNzZjLTE0LjQzMiAwLTI2LjI0IDExLjg0LTI2LjI0IDI2LjI0czExLjgwOCAyNi4yNCAyNi4yNCAyNi4yNGg2NS43MjhjMTQuNDY0IDAgMjYuMjQtMTEuNzc2IDI2LjI0LTI2LjI0ek00ODEuMDI0IDM3NC4wOGExODcuNTIgMTg3LjUyIDAgMCAwIDEwNi40NjQtMTY5LjE1MmgtNTIuNTEyYTEzNC4xMTIgMTM0LjExMiAwIDAgMS0zOS41NTIgOTUuNDU2IDEzNC4wMTYgMTM0LjAxNiAwIDAgMS04OC44OTYgMzkuMzkyIDExNC4xNzYgMTE0LjE3NiAwIDAgMC0xMy4xMiAwYy0zMy42LTEuNi02NC45Ni0xNS40MjQtODguODk2LTM5LjM2YTEzNC4xMTIgMTM0LjExMiAwIDAgMS0zOS41Mi05NS40ODhIMjEyLjQ4YTE4Ny41MiAxODcuNTIgMCAwIDAgMTA2LjQ2NCAxNjkuMTIgMTEyLjUxMiAxMTIuNTEyIDAgMSAwIDE2Mi4wOCAweiBtLTE0MS4wNTYgNzguMDE2YzAtMzEuMjMyIDI0LTU2Ljk2IDU0LjQ2NC01OS43NDRhMTkwLjExMiAxOTAuMTEyIDAgMCAwIDExLjA3MiAwIDYwLjA2NCA2MC4wNjQgMCAwIDEgNTQuNDY0IDU5Ljc0NGMwIDMzLjA1Ni0yNi44OCA2MC02MCA2MHMtNjAtMjYuOTQ0LTYwLTYweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTEiIHVuaWNvZGU9IiYjNTg5NzY7IiBkPSJNODIzLjIzMiA1MTJINzA0VjY3MmMwIDE3LjYtMTQuNCAzMi0zMiAzMmgtNTc2Yy0xNy42IDAtMzItMTQuNC0zMi0zMnYtNDQ4YzAtMTcuNiAxNC40LTMyIDMyLTMySDEyOGMwLTcwLjQgNTcuNi0xMjggMTI4LTEyOHMxMjggNTcuNiAxMjggMTI4aDI1NmMwLTcwLjQgNTcuNi0xMjggMTI4LTEyOHMxMjggNTcuNiAxMjggMTI4aDMyYzE3LjYgMCAzMiAxNC40IDMyIDMyVjMxNC40MzJjMCAzLjItMC44MzIgNi40LTIuMzY4IDguNzY4bC0xMjAuODMyIDE4MS41NjhBMTUuNzQ0IDE1Ljc0NCAwIDAgMSA4MjMuMjMyIDUxMnpNMjY4LjggMTI5LjZhNjQgNjQgMCAxIDAtMjQuNzY4IDEyNS42MzIgNjQgNjQgMCAwIDAgNzUuMi03NS4yYy01LjYzMi0yNS42LTI1LjYtNDUuNjMyLTUwLjQzMi01MC40MzJ6IG01MTIgMGE2NCA2NCAwIDEgMC0yNC43NjggMTI1LjYzMiA2NCA2NCAwIDAgMCA3NS4xMzYtNzUuMmMtNS41NjgtMjUuNi0yNS42LTQ1LjYzMi01MC4zNjgtNTAuNDMyek03MDQgMzIwVjQ0OGg5NS4yMzJjNS41NjggMCAxMC4zNjgtMi4zNjggMTIuOC03LjIzMkw4OTYgMzIweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIiIHVuaWNvZGU9IiYjNTg5Nzc7IiBkPSJNOTI4IDUxMmEzMiAzMiAwIDAgMC0xNC4wOCAzLjJMNTQ0IDcwNCAxNzQuMDggNTE2LjQ4QTMyLjg5NiAzMi44OTYgMCAwIDAgMTQ1LjkyIDU3Nkw1NDQgNzczLjEyIDk0Mi4wOCA1NzZhMzIuNzY4IDMyLjc2OCAwIDAgMC0xNC4wOC02NHpNMzg0IDE5MkgxOTJ2LTE5MmgxOTJ6IG0yNTYgMEg0NDh2LTE5MmgxOTJ6IG0yNTYgMGgtMTkydi0xOTJoMTkyeiBtLTEyOCAyNTZINTc2di0xOTJoMTkyek01MTIgNDQ4SDMyMHYtMTkyaDE5MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zIiB1bmljb2RlPSImIzU4OTc4OyIgZD0iTTY5Ni4zMiAzNjAuNDQ4YzAtMjYuNjI0LTQuOTI4LTUxLjUyLTE0Ljg0OC03NC43NTJzLTIzLjU1Mi00My41Mi00MC45Ni02MC45MjgtMzcuNzYtMzEuMDQtNjAuOTI4LTQwLjk2LTQ4LjEyOC0xNC44NDgtNzQuNzUyLTE0Ljg0OC01MS41MiA0LjkyOC03NC43NTIgMTQuODQ4LTQzLjUyIDIzLjU1Mi02MC45MjggNDAuOTYtMzEuMDQgMzcuNzYtNDAuOTYgNjAuOTI4LTE0Ljg0OCA0OC4xMjgtMTQuODQ4IDc0Ljc1MiA0LjkyOCA1MS41MiAxNC44NDggNzQuNzUyIDIzLjU1MiA0My41MiA0MC45NiA2MC45MjggMzcuNzYgMzEuMDQgNjAuOTI4IDQwLjk2IDQ4LjEyOCAxNC44NDggNzQuNzUyIDE0Ljg0OCA1MS41Mi00LjkyOCA3NC43NTItMTQuODQ4IDQzLjUyLTIzLjU1MiA2MC45MjgtNDAuOTYgMzEuMDQtMzcuNzYgNDAuOTYtNjAuOTI4IDE0Ljg0OC00OC4xMjggMTQuODQ4LTc0Ljc1MnogbTY0LjUxMi0zNzcuODU2YzAtNy40ODgtMy4wNzItMTQuMzM2LTkuMjE2LTIwLjQ4cy0xNC4wMTYtMTEuNDU2LTIzLjU1Mi0xNS44NzItMjAuOC04LTMzLjc5Mi0xMC43NTItMjUuOTItNC4wOTYtMzguOTEyLTQuMDk2SDM0Ny4xMzZjLTExLjU4NCAwLTIzLjIzMiAxLjM0NC0zNC44MTYgNC4wOTZzLTIyLjAxNiA2LjMzNi0zMS4yMzIgMTAuNzUyLTE2LjcwNCA5LjcyOC0yMi41MjggMTUuODcyLTguNzA0IDEyLjk5Mi04LjcwNCAyMC40OHogbTkuMjE2IDg2NS4yOGMyOS4zNzYgMCA1MC42ODgtOC41MTIgNjQtMjUuNnMxOS45NjgtMzcuNTY4IDE5Ljk2OC02MS40NHYtNjU3LjQwOGMwLTIzLjg3Mi04LjUxMi00NC4zNTItMjUuNi02MS40NHMtMzguNTkyLTI1LjYtNjQuNTEyLTI1LjZIMjQ1Ljc2Yy0yNi42MjQgMC00OC4xMjggOC41MTItNjQuNTEyIDI1LjZzLTI0LjU3NiAzNy41NjgtMjQuNTc2IDYxLjQ0Vjc2MC44MzJjMCAyMy44NzIgNy40ODggNDQuMTYgMjIuNTI4IDYwLjkyOHMzNS41MiAyNS4wODggNjEuNDQgMjUuMDg4ek0yMjUuMjggNzI4LjA2NGMwLTcuNDg4IDIuNTYtMTQuNTI4IDcuNjgtMjAuOTkyczEzLjQ0LTkuNzI4IDI1LjA4OC05LjcyOGg3Ny44MjRjMTEuNTg0IDAgMjAuMTYgMy45MDQgMjUuNiAxMS43NzZzOC4xOTIgMTUuNTUyIDguMTkyIDIzLjA0djE1LjM2YzAgNy40ODgtMy4wNzIgMTQuMzM2LTkuMjE2IDIwLjQ4cy0xNC43MiA5LjIxNi0yNS42IDkuMjE2SDI2MC4wOTZjLTExLjU4NCAwLTIwLjI4OC0zLjItMjYuMTEyLTkuNzI4cy04LjcwNC0xMy40NC04LjcwNC0yMC45OTJ6IG0yNzkuNTUyLTYyMy42MTZjMzUuNTIgMCA2OC44IDYuNjU2IDk5Ljg0IDE5Ljk2OHM1OC4yNCAzMS41NTIgODEuNDA4IDU0Ljc4NCA0MS40NzIgNTAuMzY4IDU0Ljc4NCA4MS40MDhhMjUwLjc1MiAyNTAuNzUyIDAgMCAxIDE5Ljk2OCA5OS44NGMwIDM0LjgxNi02LjY1NiA2Ny43NzYtMTkuOTY4IDk4LjgxNnMtMzEuNTUyIDU4LjI0LTU0Ljc4NCA4MS40MDgtNTAuMzY4IDQxLjQ3Mi04MS40MDggNTQuNzg0LTY0LjMyIDE5Ljk2OC05OS44NCAxOS45NjhjLTM0LjgxNiAwLTY3Ljc3Ni02LjY1Ni05OC44MTYtMTkuOTY4cy01OC4yNC0zMS41NTItODEuNDA4LTU0Ljc4NC00MS40NzItNTAuMzY4LTU0Ljc4NC04MS40MDgtMTkuOTY4LTY0LTE5Ljk2OC05OC44MTZjMC0zNS41MiA2LjY1Ni02OC44IDE5Ljk2OC05OS44NCAxMy4zMTItMzEuMDQgMzEuNTUyLTU4LjI0IDU0Ljc4NC04MS40MDhzNTAuMzY4LTQxLjQ3MiA4MS40MDgtNTQuNzg0IDY0LTE5Ljk2OCA5OC44MTYtMTkuOTY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQiIHVuaWNvZGU9IiYjNTg5Nzk7IiBkPSJNNjc3Ljc2IDE4NC43NjhhMTguNzUyIDE4Ljc1MiAwIDAgMC01LjE4NCAxMi41NDRjMCA5LjQ3MiA3LjY4IDE3LjIxNiAxNy4wODggMTcuMzQ0aDEwMC40MTZjOS42IDAgMTcuMzQ0IDcuODA4IDE3LjM0NCAxNy40MDhhMTcuOTg0IDE3Ljk4NCAwIDAgMS01LjUwNCAxMi40OEw2NTIuOCAzOTQuNDk2YTIwLjkyOCAyMC45MjggMCAwIDAtNC4yODggMTEuODQgMTcuNDA4IDE3LjQwOCAwIDAgMCAxNy4yOCAxNy4yOGg3OS4zNmM5LjYgMC4xMjggMTcuMzQ0IDcuOTM2IDE3LjM0NCAxNy41MzZhMTcuMjggMTcuMjggMCAwIDEtNS4zMTIgMTIuNDE2TDYwOC41NzYgNjAyLjQzMmwtMC45NiAwLjk2YTE3LjQwOCAxNy40MDggMCAwIDAgMTIuNjA4IDI5LjI0OGg2MC4xNmM5LjYgMCAxNy4yOCA3LjgwOCAxNy4yOCAxNy40NzJhMTcuMTUyIDE3LjE1MiAwIDAgMS00LjY3MiAxMS4zOTJoMC4zODRMNTU3Ljc2IDgyNS4wODhBMTcuMjggMTcuMjggMCAwIDEgNTQzLjg3MiA4MzJhMTcuMjggMTcuMjggMCAwIDEtMTMuODg4LTYuOTEyTDM5NC44OCA2NjEuNTA0YTE3LjE1MiAxNy4xNTIgMCAwIDEtNC43MzYtMTEuMzkyYzAtOS42IDcuNzQ0LTE3LjQwOCAxNy4zNDQtMTcuNDA4aDYwLjE2YTE2LjgzMiAxNi44MzIgMCAwIDAgMTIuOC0yOS4yNDhsLTEuMDI0LTEuMDI0LTE0OC40OC0xNDguODY0YTE3LjI4IDE3LjI4IDAgMCAxLTUuMzc2LTEyLjQxNmMwLTkuNTM2IDcuNjE2LTE3LjI4IDE3LjA4OC0xNy40NzJoNzkuNDg4YTE3LjI4IDE3LjI4IDAgMCAwIDE3LjM0NC0xNy4zNDQgMjAuOTI4IDIwLjkyOCAwIDAgMC00LjM1Mi0xMS44NEwyODUuODI0IDI0NC40OGExNy45ODQgMTcuOTg0IDAgMCAxLTUuNjk2LTEyLjQ4YzAtOS42IDcuODA4LTE3LjQwOCAxNy4zNDQtMTcuNDA4aDEwMC42NzJhMTcuNDA4IDE3LjQwOCAwIDAgMCAxNy4yMTYtMTcuMjggMTguNzUyIDE4Ljc1MiAwIDAgMC01LjEyLTEyLjYwOGwtMTQ4LjU0NC0xNDguNDgtMC42NC0wLjY0YTE3LjI4IDE3LjI4IDAgMCAxIDAtMjQuNDQ4IDE3LjcyOCAxNy43MjggMCAwIDEgMTIuNDgtNS41MDRoMjM1LjY0OFYtNjRsNjkuMzc2IDAuNTc2djY5LjEyaDIzNS4zOTJhMTguMzA0IDE4LjMwNCAwIDAgMSAxOC4wNDggMTcuNjY0IDE3LjI4IDE3LjI4IDAgMCAxLTQuOTI4IDEyLjM1MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01IiB1bmljb2RlPSImIzU4OTgwOyIgZD0iTTI5NC4xNDQgMzI3LjEwNGwxLjM0NC0xLjY2NCAxNTQuNTYtMTY0LjkyOGMzMy45Mi0zOS45MzYgOTAuNjg4LTM5LjkzNiAxMjUuMTIgMC41MTJsMTUzLjYgMTY0Ljg2NCAzLjc3NiA0LjAzMiAyLjI0IDIuNDMyQTE0Ni42ODggMTQ2LjY4OCAwIDAgMSA3NjggNDI3LjU4NGExNDguNDggMTQ4LjQ4IDAgMCAxLTI1NiAxMDIuMjcyIDE0OC40OCAxNDguNDggMCAwIDEtMjU2LTEwMi4yNzJjMC0zNy4xMiAxNC4wOC03My40MDggMzguMTQ0LTEwMC40OHpNNTEyLTMyYTQxNiA0MTYgMCAxIDAgMCA4MzIgNDE2IDQxNiAwIDAgMCAwLTgzMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS02IiB1bmljb2RlPSImIzU4OTgxOyIgZD0iTTYwOCAzMjBhMjIuNCAyMi40IDAgMCAwIDAtNDQuOEg1MzQuNHYtMTkuMmEyMi40IDIyLjQgMCAxIDAtNDQuOCAwdjE5LjJINDE2YTIyLjQgMjIuNCAwIDEgMCAwIDQ0LjhoNzMuNnY1MS4ySDQxNmEyMi40IDIyLjQgMCAwIDAgMCA0NC44aDY0LjM4NGwtMC4yNTYgMC4xOTItNjQgNjRhMjIuNCAyMi40IDAgMCAwIDMxLjc0NCAzMS42OGw2NC02NEw1MTIgNDQ3LjYxNmwwLjE5MiAwLjI1NiA2NCA2NGEyMi40IDIyLjQgMCAxIDAgMzEuNjE2LTMxLjY4bC02NC02NC0wLjE5Mi0wLjE5Mkg2MDhhMjIuNCAyMi40IDAgMCAwIDAtNDQuOEg1MzQuNFYzMjB6IG0yNTYgMTYwaDMyVjY0MC4xOTJBNjQgNjQgMCAwIDEgODMxLjkzNiA3MDRIMTkyLjA2NEE2NCA2NCAwIDAgMSAxMjggNjQwLjE5MlY0ODBoMzJDMjEyLjkyOCA0ODAgMjU2IDQzNi45MjggMjU2IDM4NHMtNDMuMDcyLTk2LTk2LTk2SDEyOHYtMTYwLjE5MkE2NCA2NCAwIDAgMSAxOTIuMDY0IDY0aDYzOS44NzJBNjQgNjQgMCAwIDEgODk2IDEyNy44MDhWMjg4aC0zMmMtNTIuOTI4IDAtOTYgNDMuMDcyLTk2IDk2czQzLjA3MiA5NiA5NiA5NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS03IiB1bmljb2RlPSImIzU4OTgyOyIgZD0iTTE2NC45OTIgMjg3LjM2Yy0yMy42OC00Mi44MTYtNjcuMTM2LTEyMC44MzIgOS42NjQtMTcyLjk5MiAyNC4xMjgtMTYuMTkyIDUxLjItMjcuNDU2IDc5LjU1Mi0zMy4wMjQgMjEuNjMyLTMuMiAyMi43Mi0zNy4xMi0yLjY4OC0zNi4yODgtMjcuMDcyIDEuNDA4LTE1OC45MTIgMTMuODI0LTE4MC4wOTYgMTE0LjQzMi0xMC45NDQgNTguNzUyIDEuNDA4IDExMS4zNiAzNS40NTYgMTY4LjUxMmw0OS4wMjQgODguMTI4TDY0IDQ2OS4zMTJsMjQ0LjggMTQ3Ljk2OHYtMjg2LjA4TDIxNi45NiAzODAuOHogbTI5OC41NiA0NzAuNTI4YzgxLjIxNiA0NC45MjggMTI4LjE5Mi0zMC43MiAxNTQuMDQ4LTcybDU2LjcwNC05MC4zNjgtODkuMDI0LTU3Ljc5MiAyNTEuMDA4LTEzNC4wMTYtMTMuODI0IDI4OC04OC45Ni01Ny43MjgtNTMuNDQgODQuOTkyYy0zNi42NzIgNTMuMzc2LTYzLjU1MiA5Mi44LTEyOS4wMjQgMTEwLjUyOC0xMTUuMiAyMi40LTE4NS45Mi0xMTMuNDcyLTE4NS4yMTYtMTEyLjU3Ni0xMS41Mi0yMC40OCAxNS4xNjgtMzguNTkyIDMxLjc0NC0xNS4wNGEyMjEuMTg0IDIyMS4xODQgMCAwIDAgNjUuOTIgNTZ6IG00NjMuNzQ0LTQ0Mi40OTZjLTYuMTQ0IDEzLjU2OC0zOC41OTIgMTAuMTEyLTI5LjQ0LTE5LjEzNiA5LjIxNi0yNy44NCAxMi45MjgtNTcuMjE2IDExLjAwOC04Ni41MjgtNi41MjgtOTMuODI0LTk0Ljc4NC05My4xMi0xNDIuOTEyLTkzLjEySDY2MC40OHYxMDcuMjY0bC0yNDYuMjA4LTE0My4wNEw2NTkuNTg0LTY0bDAuMzg0IDEwOS4wNTZoMTA1Ljk4NGM2Mi42NTYtMS4wODggMTEyLjUxMiAxMi42MDggMTU0Ljc1MiA1MS4wMDggODQuNDE2IDc1LjkwNCA2LjU5MiAyMTkuMzI4IDYuNTkyIDIxOS4zMjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtOCIgdW5pY29kZT0iJiM1ODk4MzsiIGQ9Ik00OTAuMTc2IDYzNC4yNGMxMC4zMDQgMCAxOS4zMjgtMy43MTIgMjcuMTM2LTExLjAwOHMxMS41ODQtMTYuMzg0IDExLjU4NC0yNy4wNzJjMC0xMC42ODgtMy44NC0xOS43MTItMTEuNTg0LTI3LjA3MnMtMTYuODMyLTEwLjk0NC0yNy4xMzYtMTAuOTQ0YTM3LjgyNCAzNy44MjQgMCAwIDAtMzguNzg0IDM4LjAxNmMwIDEwLjY4OCAzLjcxMiAxOS43MTIgMTEuMiAyNy4wNzJzMTYuNjQgMTAuOTQ0IDI3LjUyIDEwLjk0NHpNMTkyIDM4NGMwIDI5LjMxMiAxLjk4NCA1Ny42IDYuMDE2IDg0LjkyOCA0LjAzMiAyNy4zMjggMTAuMDQ4IDUzLjY5NiAxOC4xMTIgNzkuMDRsNjQ3LjEwNC0zNTMuMjhhNDc4LjQ2NCA0NzguNDY0IDAgMCAwLTU0LjI3Mi0xMDQuODMyIDQwMS42IDQwMS42IDAgMCAwLTc0LjExMi04MS42Yy0yNy41Mi0yMi43ODQtNTcuNi00MC41NzYtOTAuMDQ4LTUzLjI0OEEyNzUuODQgMjc1Ljg0IDAgMCAwIDU0My41NTItNjRjLTQ4LjI1NiAwLTkzLjc2IDExLjcxMi0xMzYuNTc2IDM1LjA3MnMtODAuMTI4IDU1LjM2LTExMiA5Ni01Ni45NiA4OC03NS4zOTIgMTQyLjRBNTQxLjUwNCA1NDEuNTA0IDAgMCAwIDE5MiAzODR6IG02NzIuOTYgMTgzLjQyNGM5Ljc5Mi0yOC4xNiAxNy40MDgtNTcuNiAyMi44NDgtODguMzJTODk2IDQxNi42NCA4OTYgMzg0YzAtNTAuNjg4LTYuNTkyLTk5LjQ1Ni0xOS44NC0xNDYuMjRMNjA0LjggMzg2LjU2ek01NjQuMjI0IDQwOC41MTJMMjMxLjY4IDU5MC4yNzJjMTQuNCAzNi4wMzIgMzIuNDQ4IDY4Ljg2NCA1NC4zMzYgOTguNDMyczQ2LjA4IDU0Ljk3NiA3Mi43NjggNzYuMDk2IDU1LjY4IDM3LjYzMiA4Ny4wNCA0OS40NzJDNDc3LjEyIDgyNi4xMTIgNTA5LjY5NiA4MzIgNTQzLjU1MiA4MzJjMzIuNzY4IDAgNjQuMDY0LTUuMzc2IDkzLjk1Mi0xNmEzMjIuNTYgMzIyLjU2IDAgMCAwIDg0LjAzMi00NS4zMTJjMjYuMTEyLTE5LjM5MiA0OS43OTItNDIuODE2IDcxLjA0LTcwLjE0NCAyMS4yNDgtMjcuMzI4IDM5LjY4LTU3LjYgNTUuMTY4LTkwLjg4TDU2Mi40OTYgNDExLjA3MnogbS0xMS4yIDU3LjQ3Mkw3MzYuNjQgNTg2Ljg4YTIzNy40NCAyMzcuNDQgMCAwIDEtMzguNzg0IDcxLjA0IDE3Ny40MDggMTc3LjQwOCAwIDAgMS0yNC45NiAyNi4xNzYgMTg5LjU2OCAxODkuNTY4IDAgMCAxLTMzLjIxNiAyMi43ODQgMTc5LjUyIDE3OS41MiAwIDAgMS00MS4zNDQgMTYuMDY0IDIwMC44MzIgMjAwLjgzMiAwIDAgMS01MC4zNjggNS45NTJjLTE3LjI4IDAtMzMuMDg4LTIuMTEyLTQ3LjM2LTYuNGExOTEuMTA0IDE5MS4xMDQgMCAwIDEtNzIuODk2LTM5LjY4IDI5OS41ODQgMjk5LjU4NCAwIDAgMS0yNy4xMzYtMjYuNjI0IDI4Ny40ODggMjg3LjQ4OCAwIDAgMS00Ni41MjgtNzEuODcyeiBtNDQuOCAxNjguMTkyYTM3LjgyNCAzNy44MjQgMCAwIDAgMzguNzg0LTM4LjAxNiAzNy44MjQgMzcuODI0IDAgMCAwLTM4Ljc4NC0zOC4wMTYgMzcuODI0IDM3LjgyNCAwIDAgMC0zOC43MiAzOC4wMTZjMCAxMC42ODggMy43MTIgMTkuNzEyIDExLjIgMjcuMDcyczE2LjY0IDEwLjk0NCAyNy41MiAxMC45NDR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtOSIgdW5pY29kZT0iJiM1ODk4NDsiIGQ9Ik02MzEuODA4IDYyMy42MTZjMC0zNS41Mi02LjMzNi02OC45MjgtMTguOTQ0LTEwMC4zNTJzLTI5LjUwNC01OC44OC01MC42ODgtODIuNDMyLTQ1LjU2OC00Mi4xNzYtNzMuMjE2LTU1LjgwOC01Ni44MzItMjAuNDgtODcuNTUyLTIwLjQ4UzM0MS4zMTIgMzcxLjAwOCAzMTMuMzQ0IDM4NHMtNTIuNTQ0IDMxLjIzMi03My43MjggNTQuNzg0LTM4LjA4IDUxLjUyLTUwLjY4OCA4My45NjgtMTguOTQ0IDY4LjA5Ni0xOC45NDQgMTA3LjAwOGMwIDMwLjcyIDYuMTQ0IDU5LjkwNCAxOC40MzIgODcuNTUyQTI0NS43NiAyNDUuNzYgMCAwIDAgMzEwLjI3MiA4NDEuMjE2YzI3LjMyOCAxMi42MDggNTYuMzIgMTguOTQ0IDg3LjA0IDE4Ljk0NHM2MC4wOTYtNi42NTYgODguMDY0LTE5Ljk2OCA1Mi45MjgtMzAuOTEyIDc0Ljc1Mi01Mi43MzYgMzkuMjMyLTQ2LjkxMiA1Mi4yMjQtNzUuMjY0IDE5LjQ1Ni01Ny44NTYgMTkuNDU2LTg4LjU3NnogbS0yNzEuMzYtMzMwLjc1MmwtMS4wMjQtMzYzLjUyIDM2Ljg2NCA0OC4xMjggMzguOTEyLTQ4LjEyOHYzNjMuNTJ6TTYwNC4xNiA4MTEuMDA4YzE0LjMzNi0xNy4wODggMjcuMzI4LTM1LjUyIDM4LjkxMi01NS4yOTYgOS42LTE3LjA4OCAxOC40MzItMzYuNDggMjYuNjI0LTU4LjM2OHMxMi4yODgtNDQuNzM2IDEyLjI4OC02OC42MDhjLTEuMzQ0LTQxLjYtNS45NTItNzYuNDgtMTMuODI0LTEwNC40NDhzLTE2LjU3Ni01MC41Ni0yNi4xMTItNjcuNTg0Yy0xMS41ODQtMTkuODQtMjQuMjU2LTM1LjUyLTM3Ljg4OC00Ny4xMDQgMTkuODQgMi4wNDggMzkuNjE2IDUuMTIgNTkuMzkyIDkuMjE2IDE3LjA4OCAzLjM5MiAzNS41MiA3Ljg3MiA1NS4yOTYgMTMuMzEyczM4LjU5MiAxMi45OTIgNTYuMzIgMjIuNTI4YzE1LjY4IDguMTkyIDMwLjUyOCAxOC45NDQgNDQuNTQ0IDMyLjI1NnMyNS45MiAyOS4xODQgMzUuODQgNDcuNjE2IDE2Ljg5NiAzOS4wNCAyMC45OTIgNjEuOTUyIDQuMDk2IDQ4LjMyIDAgNzYuMjg4Yy00LjA5NiAyOC42NzItMTYgNTQuMjcyLTM1Ljg0IDc2LjhzLTQzLjMyOCA0MC40NDgtNzAuNjU2IDUzLjc2LTU1LjgwOCAyMS4xMi04NS41MDQgMjMuNTUyLTU2LjUxMi0yLjg4LTgwLjM4NC0xNS44NzJ6IG0xLjAyNC00NTguNzUyTDYwNC4xNiA1LjEybDM1Ljg0IDQ3LjEwNCAzOC45MTItNDcuMTA0VjM1Mi4yNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTAiIHVuaWNvZGU9IiYjNTg5ODU7IiBkPSJNMjU2LjUxMiA4MzJsLTY0LTM1MmMtOS4zNDQtNTEuNTIgMTEzLjk4NC03NS41ODQgMTEyLTEyOGwtMTYtNDE2Yy0yLjQzMi02NCA2NC02NCA2NC02NHM2Ni40MzIgMCA2NCA2NGwtMTYgNDE2Yy0xLjk4NCA1Mi4zNTIgMTEwLjkxMiA3NS41MiAxMTIgMTI4bC02NCAzNTJoLTMybDE2LTI1Ni00OC0zMi0xNiAyODhoLTMybC0xNi0yODgtNDggMzIgMTYgMjU2eiBtNTQ0IDBjLTQ3LjEwNCAwLTEyNS42OTYtNDEuOTItMTU3LjEyLTEwNC43NjgtMjYuMjQtNDcuMTA0LTM0Ljg4LTE1Mi4zODQtMzQuODgtMjE1LjIzMnYtMTYwYzAtNTIuMzUyIDY5Ljc2LTY0IDk2LTY0bC0zMi0zNTJjLTUuNzYtNjMuNzQ0IDY0LTY0IDY0LTY0czY0IDAgNjQgNjR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTEiIHVuaWNvZGU9IiYjNTg5ODY7IiBkPSJNNTEzLjY2NCA1MjUuMzEyYTExNy4xMiAxMTcuMTIgMCAwIDAgMTE2LjkyOCAxMTYuOTkyYzY0LjUxMiAwIDExNi45MjgtNTIuNDggMTE2LjkyOC0xMTYuOTkyUzY5NS4wNCA0MDguMzIgNjMwLjU5MiA0MDguMzJhMTE3LjEyIDExNy4xMiAwIDAgMC0xMTYuOTI4IDExNi45OTJtMzc3LjYgMTcxLjcxMmMwIDM2LjgtMjkuODI0IDY2LjY4OC02NS4zNDQgNjYuNjg4aC0wLjA2NEM4MjQuNzA0IDc2My43MTIgNzA5LjI0OCA3NjggNjIyLjA4IDc2OGMtMTAwLjQxNiAwLTEwOS40NC00Ljg2NC0xMjAuMzItMTUuNzQ0TDM0Ni42ODggNTk2LjkyOCAxNDcuNTIgMzk3LjY5NmE2Ny4wNzIgNjcuMDcyIDAgMCAxIDAuMTI4LTk0LjcybDI4My4yLTI4My4zMjhjMTIuNjcyLTEyLjY3MiAyOS40NC0xOS42NDggNDcuNDI0LTE5LjY0OCAxNy45MiAwIDM0LjY4OCA2LjkxMiA0Ny4xNjggMTkuNDU2bDIyMS41NjggMjIxLjY5NiAxMzIuOCAxMzIuOTI4YzExLjcxMiAxMS42NDggMjIuNzIgMjIuNzIgMTEuNTIgMzIyLjk0NCIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTEyIiB1bmljb2RlPSImIzU4OTg3OyIgZD0iTTgzOS45MzYgNTA2LjY4OGMwIDE3OS44NC0xNDcuMDA4IDMyNS43Ni0zMjguNTc2IDMyNS43Ni0xODEuNDQgMC0zMjguNTEyLTE0NS45Mi0zMjguNTEyLTMyNS43NiAwLTU5LjUyIDE2LjI1Ni0xMTUuMDA4IDQ0LjI4OC0xNjIuOTQ0aC0wLjM4NGwyODQuNjA4LTQwNy4zNiAyODQuNjcyIDQwNy4zNmgtMC4zODRjMjguMTYgNDggNDQuMjg4IDEwMy40ODggNDQuMjg4IDE2Mi45NDRNNTExLjQyNCAzNDMuODA4YTE2My41ODQgMTYzLjU4NCAwIDAgMC0xNjQuMjg4IDE2Mi44OCAxNjMuNjQ4IDE2My42NDggMCAwIDAgMTY0LjI4OCAxNjIuOTQ0IDE2My41ODQgMTYzLjU4NCAwIDAgMCAxNjQuMjg4LTE2Mi45NDRBMTYzLjUyIDE2My41MiAwIDAgMCA1MTEuMzYgMzQzLjgwOCIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTEzIiB1bmljb2RlPSImIzU4OTg4OyIgZD0iTTk0MC44IDQ4MFYxMjhhNjQgNjQgMCAwIDAtNjQtNjRoLTcwNGE2NCA2NCAwIDAgMC02NCA2NFY0ODBhMzIgMzIgMCAwIDAgMzIgMzIgMzEuMzYgMzEuMzYgMCAwIDAgMTMuNDQgMGwzNzAuNTYtMjU2TDg5NiA1MTJhMzEuMjMyIDMxLjIzMiAwIDAgMCAxMi44IDAgMzIgMzIgMCAwIDAgMzItMzJ6TTEyNC44IDY0NS4xMmw1LjEyLTUuMTJMNTI0LjggMzg0bDM5Ni4xNiAyNTZoMy44NGEzMS4zNiAzMS4zNiAwIDAgMSAxNiAzMiAzMiAzMiAwIDAgMS0zMiAzMmgtNzY4YTMyIDMyIDAgMCAxLTMyLTMyIDMxLjM2IDMxLjM2IDAgMCAxIDE2LTI2Ljg4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE0IiB1bmljb2RlPSImIzU4OTg5OyIgZD0iTTE4OC4xNiA0MTIuMjI0YzEwLjYyNCAyLjc1MiA3OC4yMDggMzIgODguODk2IDM0Ljc1Mi0yOC40OCAzMS42OC00OS42IDczLjE1Mi03Ni4wOTYgMTMzLjc2LTM1LjA3Mi04Ljc2OC05NS45MzYtMjYuODgtOTUuOTM2LTI2Ljg4UzE4My44MDggNDIwLjQ4IDE4OC4xNiA0MTIuMTZ6IG0zOTEuMDQtMTEzLjUzNmw3Mi40NDgtODEuOTJjMTI0LjE2IDQxLjg1NiAyODkuNDcyIDIwNy4zNiAyODkuNDcyIDIwNy4zNkw4NTguMDQ4IDUwOC44Uzc3Ny4wMjQgMzgzLjM2IDU3OS4yIDI5OC42ODh6TTQyOS44MjQgNDYwLjIyNGw2Ny4wMDgtMzUuMmM2Mi45MTIgNjIuODQ4IDExNS4yIDE2Mi4zMDQgMTE1LjIgMTYyLjMwNGwtMTA0LjUxMiAzOS4wNHMtNDAuOTYtMTEzLjE1Mi03Ny42OTYtMTY2LjE0NHogbTIzMS41NTItMzAuMzM2YzEwNC45NiA1MS44NCAyNDYuNzg0IDIyOC43MzYgMjQ2Ljc4NCAyMjguNzM2TDgyNi4xNzYgNzM2cy0xMTguNjU2LTE3NC45MTItMjMxLjE2OC0yMzMuNjY0eiBtLTQ5LjQwOC0yNTcuNDcyTDQyMC4xNiAyNzMuNjY0SDYwOC42NHYxMTEuMzZINDExLjY0OHY1MS4zOTJIMjgzLjEzNnYtNTEuMzkySDY5LjEydi0xMTEuMzZIMjMxLjY4Yy00OC4zMi02NS40MDgtNzIuODMyLTkyLjk5Mi0xNjIuNTYtMTQ4LjM1Mmw2NS43MjgtOTcuMjhjODEuMjggNTkuOTY4IDExMi44MzIgOTcuNTM2IDE0OC4yMjQgMTQyLjg0OHYtMTk2Ljk5MmgxMjguNTEyVjE3MC44OGwxNDAuNDgtODIuMDQ4eiBtMjY1Ljk4NCAxMjEuNTM2cy04OS40NzItMTYwLTM1Ni40MTYtMjMzLjI4bDM5LjA0LTg2Ljc4NGMyNjUuNDcyIDY0Ljc2OCAzNzYuMzIgMjA1LjYzMiAzOTkuMTY4IDIyOC4xNnogbS01NjMuMiAxNzEuOTY4czgxLjI4LTAuNTc2IDk0LjUyOCAwYy05LjI4IDQ5LjM0NC0xMS40NTYgNzAuOTEyLTE4Ljg4IDEzMi40OGwtMTEzLjg1Ni0xOC4yNGMxNS42OC0zNy44MjQgMzAuNzItNjUuOTg0IDM4LjI3Mi0xMTQuMjR6IG0yODguODk2IDIwOC4xMjhsLTMyLjQ0OCAxMTMuNTM2cy03OC4xNDQtNzAuMjcyLTQ4NC4zNTItNzguMDhsNC45MjgtOTMuODI0YzQ4Mi4xMTItOS43MjggNTExLjg3MiA1OC4zNjggNTExLjg3MiA1OC4zNjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTUiIHVuaWNvZGU9IiYjNTg5OTA7IiBkPSJNODM1LjIgNTU0LjY4OGgtNTgyLjRjLTcwLjcyIDAtMTI0LjgtNTUuNDg4LTEyNC44LTEyOHYtMjU2aDE2Ni40VjBoNDk5LjJ2MTcwLjY4OEg5NjB2MjU2YzAgNzIuNTEyLTU0LjE0NCAxMjgtMTI0LjggMTI4eiBtLTEyNC44LTQ2OS4zNzZIMzc3LjZWMjk4LjYyNGgzMzIuOHpNODM1LjIgMzg0Yy0yNC45NiAwLTQxLjYgMTcuMDg4LTQxLjYgNDIuNjg4czE2LjY0IDQyLjYyNCA0MS42IDQyLjYyNCA0MS42LTE3LjAyNCA0MS42LTQyLjYyNC0xNi42NC00Mi42ODgtNDEuNi00Mi42ODh6IG0tNDEuNiAzODRIMjk0LjR2LTE3MC42ODhoNDk5LjJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMTYiIHVuaWNvZGU9IiYjNTg5OTE7IiBkPSJNOTIxLjYgNjUwLjU2bC0yNC45NiAyMi4wMTYgMjEuMzEyIDI0LjQ0OGEzNS41ODQgMzUuNTg0IDAgMCAxIDMuNTg0IDUwLjM2OGwtMzcuNzYgNDIuODhhMzYuMDk2IDM2LjA5NiAwIDAgMS01MC42ODggMy4ybC0zMDEuNDQtMjMzLjZBMzAzLjIzMiAzMDMuMjMyIDAgMCAxIDIwMy4yNjQgNTEyYy0xMjYuNTkyLTExMS4yMzItMTQwLjE2LTMwMy43NDQtMzAuMzM2LTQzMC4wOCAxMDkuNzYtMTI2LjIwOCAzMDEuNDQtMTM4LjQzMiA0MjcuOTY4LTI3LjJhMzA2LjgxNiAzMDYuODE2IDAgMCAxIDc0LjExMiAzNjMuNzc2bDQ4Ljg5NiA1NiAzMC4yMDgtMjYuODhjMTAuODE2LTkuNiAyNy44NC03LjY4IDM4LjAxNiA0LjIyNGwyOS42MzIgMzQuNzUyYzEwLjI0IDExLjk2OCA5LjcyOCAyOS41MDQtMS4wODggMzkuMTY4bC0yOS4zMTIgMjYuMTEyIDM3LjYzMiA0My4yIDI3LjAwOC0yMy42OGMxMC44OC05LjYgMjcuODQtNy41NTIgMzcuOTUyIDQuNjA4bDI5LjEyIDM1LjJjMTAuMTEyIDEyLjE2IDkuNDA4IDI5Ljc2LTEuNDcyIDM5LjM2eiBtLTUxMS40ODgtNTA5LjY5NmExMDYuMTc2IDEwNi4xNzYgMCAwIDAtMTUwLjUyOCA5LjYgMTA3Ljc3NiAxMDcuNzc2IDAgMCAwIDEwLjc1MiAxNTEuMzYgMTA2LjE3NiAxMDYuMTc2IDAgMCAwIDE1MC41MjgtOS42IDEwNy43NzYgMTA3Ljc3NiAwIDAgMC0xMC43NTItMTUxLjM2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE3IiB1bmljb2RlPSImIzU4OTkyOyIgZD0iTTk2MCA1NzZoLTI1NnYtMjI0YTEyOCAxMjggMCAwIDEgOTYtMTIzLjUyVjBINzY4YTMyIDMyIDAgMCAxIDAtNjRoMTI4YTMyIDMyIDAgMCAxIDAgNjRoLTMydjIyOC40OEExMjggMTI4IDAgMCAxIDk2MCAzNTJ2My44NHogbS02NC0yMjRhNjQgNjQgMCAxIDAtMTI4IDBWNTEyaDEyOHogbS00ODAgMzIwVjcwNGEzMiAzMiAwIDAgMSAwIDY0djMyQTMyIDMyIDAgMCAxIDM4NCA4MzJIMzIwYTMyIDMyIDAgMCAxLTMyLTMyVjc2OGEzMiAzMiAwIDAgMSAwLTY0di0zMkMyODggNTgwLjQ4IDEyOCA0NzUuNTIgMTI4IDM4NHYtMzg0YTY0IDY0IDAgMCAxIDY0LTY0aDMyMGE3MC40IDcwLjQgMCAwIDEgNjQgNjRWMzg0YzAgODYuNC0xNjAgMjAxLjYtMTYwIDI4OHogbS02NC02MDhhMTYwIDE2MCAwIDEgMCAwIDMyMCAxNjAgMTYwIDAgMCAwIDAtMzIweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE4IiB1bmljb2RlPSImIzU4OTkzOyIgZD0iTTgzMiA0MjEuNjMyYzM3LjYzMiAxMi44IDY0IDQ4Ljc2OCA2NCA5MC4zNjggMCA1LjU2OC0zMC40IDI0MS42LTMwLjQgMjQxLjZhMTYuMzg0IDE2LjM4NCAwIDAgMS0xNiAxNC40SDE3NC40Yy04IDAtMTUuMjMyLTYuNC0xNi0xNC40IDAgMC0zMC40LTIzNi44LTMwLjQtMjQxLjYgMC00MS42IDI2LjM2OC03Ny41NjggNjQtOTAuNDMydi00MDUuNTY4YzAtOC44MzIgNy4xNjgtMTYgMTYtMTZoNjA4YTE2IDE2IDAgMCAxIDE2IDE2ek03MjAuNzY4IDcwNGwyMS42MzItMTkyaC0zMmwtMjEuNjMyIDE5MnpNNTkyIDcwNGw3LjIzMi0xOTJoLTMyTDU2MCA3MDR6IG0tMTYwIDBoMzJsLTcuMjMyLTE5MmgtMzJ6TTMwMy4xNjggNzA0aDMyTDMxMy42IDUxMmgtMzJ6TTYwOCA2NGgtMTkydjE2MGgxOTJ6TTc2OCAzNTJIMjU2VjQyMS41NjhjMTUuMTY4IDUuNjMyIDI5LjYzMiAxNS4yMzIgNDAgMjcuMjY0YTk1LjYxNiA5NS42MTYgMCAwIDEgMTQ0IDAgOTUuNjE2IDk1LjYxNiAwIDAgMSAxNDQgMCA5NS42MTYgOTUuNjE2IDAgMCAxIDE0NCAwYzEwLjQzMi0xMi4wMzIgMjQuODMyLTIxLjYzMiA0MC0yNy4yeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTE5IiB1bmljb2RlPSImIzU4OTk0OyIgZD0iTTkwOC44IDgwMHMtODkuMDI0IDIuNjI0LTEyNC41NDQtMzJjLTM0LjE3Ni0zMy4yOC00OC4yNTYtNTguNzUyLTQ4LjI1Ni0xMjhIMTQwLjhsODkuMjE2LTMwOC4wOTZjMC4xOTItMC41MTIgMC42NC0wLjk2IDAuODMyLTEuNDA4IDE1LjA0LTQyLjA0OCA1NC4yNzItNzIuMzIgMTAxLjA1Ni03NC4xMTJsMC44MzItMC4zODRoNDE2di0xMi44czAuMDY0LTE5LjItMTIuNzM2LTQ0LjgtMTkuMi0zOC40LTcwLjQtMzguNEgyNDkuNmMtNjQgMC02NC05NiAwLTk2SDY1OS4yYzc2LjggMCAxMzQuNCA0NC44IDE1My42IDg5LjZzMTkuMiA4My4yIDE5LjIgODMuMlY2NDBjMCAzMy41MzYgMTQuNjU2IDY0IDQ0LjggNjRoMzUuMmE0OCA0OCAwIDAgMSAwIDk2eiBtLTI1Ni03MzZjLTM4LjQgMC02NC0yNS42LTY0LTY0czI1LjYtNjQgNjQtNjQgNjQgMjUuNiA2NCA2NC0yNS42IDY0LTY0IDY0eiBtLTMyMCAwYy0zOC40IDAtNjQtMjUuNi02NC02NHMyNS42LTY0IDY0LTY0IDY0IDI1LjYgNjQgNjQtMjUuNiA2NC02NCA2NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yMCIgdW5pY29kZT0iJiM1ODk5NTsiIGQ9Ik05NTEuNTY2MDggMC4zODRsLTkwMS43NiAwLjQ0OHMtOTcuMDg4LTQuNDgtMjAuMTYgNzAuNzg0YTQ3My43OTIgNDczLjc5MiAwIDAgMCA3MC40NjQgMzEuNzQ0IDEyNy44NzIgMTI3Ljg3MiAwIDAgMC0xMC40MzIgNTAuNjg4YzAgNjQuODk2IDQ3LjIzMiAxMTcuNTA0IDEwNS41MzYgMTE3LjUwNHMxMDUuNTM2LTUyLjYwOCAxMDUuNTM2LTExNy41MDRjMC0xLjQwOC0wLjEyOC0yLjc1Mi0wLjE5Mi00LjA5NiA2Ljc4NCAwLjg5NiAxMy42OTYgMS43OTIgMjAuNjA4IDIuNTZWNzYwLjQ0OEMzMjEuMTY2MDggODAwLjM4NCAzNDkuODM4MDggODMyIDM4OC42ODYwOCA4MzJoNDA0LjU0NGMzOC44NDggMCA2NS45Mi0zMS42MTYgNjUuOTItNzEuNjE2di02NDEuOTJjNDcuMjk2LTEzLjYzMiA4Ny44NzItMjkuODg4IDExOS42OC00OC4xOTIgMTE1LjcxMi03OS42MTYtMjcuMzI4LTY5Ljg4OC0yNy4zMjgtNjkuODg4ek01NDYuNzY2MDggNjcwLjkxMmEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OCAzNS44NEg0NDIuNjM4MDhhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODgtMzUuODR2LTk4LjQzMmMwLTE5Ljk2OCAyMy45MzYtMzUuODQgNDMuMzkyLTM1Ljg0aDYwLjhhMzQuOTQ0IDM0Ljk0NCAwIDAgMSAzNC42MjQgMzUuODRWNjcwLjkxMnogbTAtMjU5LjUyYTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4IDM1Ljg0SDQ0Mi42MzgwOGEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0LjY4OC0zNS44NFYzMTIuOTZjMC0xOS45MDQgMjMuOTM2LTM1Ljc3NiA0My4zOTItMzUuNzc2aDYwLjhhMzQuOTQ0IDM0Ljk0NCAwIDAgMSAzNC42MjQgMzUuODRWNDExLjMyOHogbTIyNS42NjQgMjU5LjUyYTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNjg4IDM1Ljg0aC02OS40NGEzNC45NDQgMzQuOTQ0IDAgMCAxLTM0Ljc1Mi0zNS44NHYtOTguNDMyYzAtMTkuOTY4IDI0LTM1Ljg0IDQzLjM5Mi0zNS44NGg2MC44YTM1LjAwOCAzNS4wMDggMCAwIDEgMzQuNjg4IDM1Ljg0eiBtMC0yNTkuNTJhMzQuOTQ0IDM0Ljk0NCAwIDAgMS0zNC42ODggMzUuODRoLTY5LjQ0YTM0Ljk0NCAzNC45NDQgMCAwIDEtMzQuNzUyLTM1Ljg0VjMxMi45NmMwLTE5LjkwNCAyNC0zNS43NzYgNDMuMzkyLTM1Ljc3Nmg2MC44YTM1LjAwOCAzNS4wMDggMCAwIDEgMzQuNjg4IDM1Ljg0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIxIiB1bmljb2RlPSImIzU4OTk2OyIgZD0iTTUxMiA3NjhjLTIwLjY3MiAwLTI3LjUyLTEzLjk1Mi00MS4zNDQtMjcuOTA0TDcwLjkxMiA3Ni44QzY0IDY5Ljc2IDY0IDU1Ljg3MiA2NCA0OC44OTZjMC0zNC45NDQgMjcuNTItNDguODk2IDQ4LjI1Ni00OC44OTZoNzk5LjQ4OGMyNy41MiAwIDQ4LjI1NiAxMy45NTIgNDguMjU2IDQ4Ljg5NiAwIDEzLjk1MiAwIDEzLjk1Mi02LjkxMiAyNy45MDRMNTYwLjI1NiA3NDAuMDk2QzU0Ni40MzIgNzU0LjA0OCA1MzIuNzM2IDc2OCA1MTIgNzY4eiBtMC0xMDQuNzA0bDIyNy40NTYtMzg0aC01NS4xNjhMNTgwLjkyOCAzODQgNTEyIDI3OS4yOTYgNDQzLjA3MiAzODQgMzM5LjcxMiAyNzkuMjk2aC02Mi4wOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yMiIgdW5pY29kZT0iJiM1ODk5NzsiIGQ9Ik04NDggNDM4Ljg0OEw3OTIgMzg0bDUxLjY0OC0zNTMuOTg0YTI2LjQ5NiAyNi40OTYgMCAwIDAtMjYuNTYtMzAuMDE2aC02NGEyNi44OCAyNi44OCAwIDAgMC0yNCAxNC41MjhsLTQxLjM0NCA4MC43NjhhOTQuNTI4IDk0LjUyOCAwIDAgMS0xOC4xMTIgMjQuNTEybC0zOC4yMDggMzcuMzc2YTIyLjE0NCAyMi4xNDQgMCAwIDEtMTUuNDg4IDYuMjcyaC0xNDkuMTJhMjIuMTQ0IDIyLjE0NCAwIDAgMS0xNS40ODgtNi4yNzJsLTM4LjI3Mi0zNy4zNzZjLTcuMjk2LTcuMTY4LTEzLjQ0LTE1LjQyNC0xOC4wNDgtMjQuNTEybC00MS4zNDQtODAuNzY4YTI2Ljg4IDI2Ljg4IDAgMCAwLTI0LTE0LjUyOGgtNTIuNDhhMjYuMzA0IDI2LjMwNCAwIDAgMC0yNC4xOTIgMzcuNTY4bDI0Ljk2IDUxLjM5MmM2LjU5MiAxMy42MzIgMTAuMDQ4IDI4LjYwOCAxMC4wNDggNDMuNzc2VjM4NGwxNjggMTA5LjY5Ni0yNCAyMy41NTItMzItMjMuNTUyLTMzLjYgMzIuOTYtMTM0LjQtODcuODA4TDI4OCAzODRzLTIyLjE0NCAxOS45NjgtNTYgNTQuODQ4YzAuMTkyIDQ1LjQ0LTc1LjQ1NiA5MC4yNC0xMDIuNTI4IDEwNC44MzJhNDEuMjE2IDQxLjIxNiAwIDAgMS0xOS41MiA0Ljg2NGgtMjRBMjEuNzYgMjEuNzYgMCAwIDAgNjQgNTcwLjExMnYxOS40NTZjMCA4LjQ0OCA1LjA1NiAxNi4xMjggMTIuOTI4IDE5LjU4NGwxOTAuNzg0IDg0LjU0NEwzMDQuMTI4IDc2OGw0Ni4yMDgtNjUuNDcyYzkuMjE2LTEzLjA1NiAxNS45MzYtMjcuNzEyIDE5LjY0OC00My4ybDE4LjgxNi03Ny44MjRMNTY4IDc2OGw1Ni01NC44NDgtMTkyLTE5NS45MDQgNjYuNTYtNjUuMjE2YTQ2LjQ2NCA0Ni40NjQgMCAwIDEgMzIuNTEyLTEzLjE4NGgxMzYuMDY0YTQ2LjcyIDQ2LjcyIDAgMCAxIDIzLjg3MiA2LjU5MmwyNDYuNTI4IDE0Ny4wMDhhMTUuNDg4IDE1LjQ4OCAwIDAgMCAyMi40NjQtMTMuNjMydi02LjUyOGE1Ni42NCA1Ni42NCAwIDAgMC0xNy4wODgtNDAuNDQ4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTIzIiB1bmljb2RlPSImIzU4OTk4OyIgZD0iTTY5MC4yNCA3NjhjLTcuNjggMC0yOS42OTYtMTAuMjQtMjkuNjk2LTEwLjI0TDQzMy43MjggNjQwLjUxMmMtMzAuMjA4LTEyLjI4OC00Mi4xNzYtNjEuNTY4LTI0LTg2LjIwOGw2Ni4zMDQtOTguMzA0LTI3MS4xMDQtMTQxLjY5NiAxMzYuMzg0LTEwNC43MDQgMTcwLjg4IDEwNC43MDQgMTcwLjYyNC0xMDQuNzA0IDY4LjQxNiA2OS45NTItMjA0LjggMjc5LjI5Nkw3MjAuOTYgNjY1LjZjMzYuMDMyIDE4LjU2IDMwLjI3MiA0OS4yMTYgMzAuMjcyIDY3Ljc3Ni0wLjMyIDE0LjY1Ni0yNC42NCAzNC42MjQtNjAuOTkyIDM0LjYyNHogbTE0Ni4xNzYtMjA5LjQ3MmMtNjYuMDQ4IDAtMTE5LjYxNi01NC42NTYtMTE5LjYxNi0xMjIuMTc2IDAtNjcuNTIgNTMuNTY4LTEyMi4zMDQgMTE5LjYxNi0xMjIuMzA0czExOS40MjQgNTQuNzg0IDExOS40MjQgMTIyLjMwNGMwIDY3LjUyLTUzLjQ0IDEyMi4yNC0xMTkuNDI0IDEyMi4yNHpNMTcwLjY4OCAyMDkuNDcyTDAgMTA0LjcwNFYwbDE3MC42ODggMTA0LjcwNEwzNDEuMzEyIDBsMTcwLjg4IDEwNC43MDRMNjgyLjc1MiAwbDEzNi4zODQgMTA0LjcwNEwxMDI0IDB2MTA0LjcwNGwtMjA0LjggMTA0Ljc2OC0xMzYuMzg0LTEwNC43NjgtMTcwLjY4OCAxMDQuNzY4LTE3MC44MTYtMTA0Ljc2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0yNCIgdW5pY29kZT0iJiM1ODk5OTsiIGQ9Ik03MjguMzIgNjY4LjM1MmEyMjEuMjQ4IDIyMS4yNDggMCAwIDEtNzQuMTEyIDExLjM5MiAyNzIgMjcyIDAgMCAxLTYyLjQ2NC04LjMyYy02LjAxNi0xLjY2NC0xMi4xNi0zLjA3Mi0xNy45Mi00LjkyOCA0LjE2IDIuMzY4IDguMzg0IDQuMjg4IDEyLjYwOCA2LjAxNiAzMC41OTIgMTIuOTkyIDYzLjIzMiAxNC43MiA4OC4zMiAxMi4xNi0yNy45MDQgMTguODgtNzguMjcyIDE5Ljc3Ni0xMTAuOTc2LTAuODk2bC0wLjE5MiAwLjQ0OGM3LjM2IDQuNDggMTUuMjMyIDguODk2IDIzLjU1MiAxMi45OTIgMzYuOTkyIDE4LjE3NiA4MS40NzIgMjYuOTQ0IDExMi4zODQgMTQuNTkyYTEyOC4zODQgMTI4LjM4NCAwIDAgMS00NS45NTIgMjIuNTkyYzMzLjYgNi41OTIgNjguMjI0IDEuOTIgOTcuMTUyLTYuMDE2LTE1LjI5NiAxNS40MjQtMzguNTkyIDIzLjU1Mi02My4zNiAyNS42YTE3NC4wOCAxNzQuMDggMCAwIDAgMTAwLjAzMi00LjkyOCAxNTQuMjQgMTU0LjI0IDAgMCAxLTUxLjUyIDM1Ljk2OGM0MS45MiAxLjAyNCA4NC42MDgtMTUuMzYgMTE2LjI4OC0zNS45NjhhMTk0LjU2IDE5NC41NiAwIDAgMS01OS42NDggNTEuOTY4YzQ3LjIzMi0wLjY0IDk5LjQ1Ni0yMC44NjQgMTMwLjU2LTUwLjM2OC00MC44MzIgNjMuODcyLTExMi4yNTYgODkuNTM2LTE4OC43MzYgNzYuOTI4LTc1LjI2NC0xMS42NDgtMTU3LjQ0LTY0LjU3Ni0xOTguMTQ0LTE0NC41NzYtMS41MzYtMi45NDQtMy4yLTYuMjcyLTQuNjcyLTkuNmEyNzkuOTM2IDI3OS45MzYgMCAwIDEtMzAuNzg0IDM3LjU2OGMtNjAuOTkyIDYyLjk3Ni0xMjcuNjggNzguNTkyLTE3NC4yNzIgNjAuNTQ0LTM4LjQtMTMuNjk2LTY4LjU0NC02MS41MDQtNjAuMDk2LTExNy42MzItMi44OCAyOS43NiAxNS4yOTYgNjMuMzYgMzUuODQgNzcuMjQ4LTguODMyLTE3LjUzNi0xNC4zMzYtMzkuNjgtMTYuNDQ4LTU3LjM0NCA4Ljc2OCAyNS4yOCAyNi4xMTIgNTAuMzY4IDQ3LjY4IDYyLjIwOC05LjA4OC0xMy40NC0xNi4xMjgtMzAuMTQ0LTE5Ljg0LTQ0LjU0NGE4Mi41NiA4Mi41NiAwIDAgMCA1My42MzIgMzIuODMyIDc1Ljc3NiA3NS43NzYgMCAwIDEtMzEuMzYtNDAuNTc2YzE0LjQ2NCAxNC43MiAzNC4yNCAyOC44IDU3LjA4OCAzMy45MmExMTYuNTQ0IDExNi41NDQgMCAwIDEtMjQuNTEyLTM1LjEzNmMxNy4wMjQgMjAuNDggNDkuNjY0IDI2LjU2IDgzLjA3MiAyMi40IDguMDY0LTAuOTYgMTYuMDY0LTIuMzA0IDIzLjkzNi00LjE2di0wLjY0Yy0yOS4xMiA3LjA0LTYwLjkyOC01LjgyNC03OC40NjQtMjYuNzUyLTEwMy40ODgtMy42NDgtMjA0LjkyOC00Ny4xNjgtMjQxLjYtMTQ4LjczNiAyNC4xOTIgMzQuNTYgNjUuOTIgNjcuNTIgMTA1Ljc5MiA4Ni4wMTZhMjI2LjM2OCAyMjYuMzY4IDAgMCAxLTM0LjgxNi02Ni44OGMyMi44NDggMjguOTkyIDU0LjIwOCA1OC42ODggODguNzA0IDc2LjIyNGExNjkuOTIgMTY5LjkyIDAgMCAxLTI4LjgtNTIuMjg4IDIyMy4zNiAyMjMuMzYgMCAwIDAgNzguNzIgNDguNjQgMjYwLjQ4IDI2MC40OCAwIDAgMS0yOS4yNDgtMjQuODk2Yy00OS44NTYtNTAuMjQtODcuODA4LTExOS4xNjgtMTAzLjQyNC0yMTQuMDggMjMuMzYgNTQuMjA4IDU2LjU3NiAxMTEuMjk2IDg2LjkxMiAxNDkuOTUyLTYuOTc2LTI5LjQ0LTEwLjExMi02Mi41MjgtOS42LTg3Ljg3MiAxMy40NCA0Mi4yNCAzMC4wOCA4Ny42OCA1Mi43MzYgMTIwLjUxMmEyNDUuMTIgMjQ1LjEyIDAgMCAxLTUuNTY4LTY1LjIxNiAyNTQuMDggMjU0LjA4IDAgMCAwIDQ3LjM2IDgzLjEzNmMtOS4wODgtMjAuNjcyLTE1LjIzMi00My44NC0xMy4yNDgtNjUuNDcyYTQwOC45NiA0MDguOTYgMCAwIDAgMjUuNTM2IDYwLjI4OHYtMC4xMjhsLTAuNjQtMS42NjQgMC45NiAwLjcwNGE0My42NDggNDMuNjQ4IDAgMCAxIDcuNjgtMTMuODI0YzAtNC41NDQgMC04Ljc2OCAwLjE5Mi0xMi45MjggMC43MDQgMy4zMjggMS41MzYgNi42NTYgMi40OTYgOS45ODQgNi42NTYtNi43ODQgMTUuMzYtMTEuNTIgMjUuMTUyLTEzLjA1Ni00OS4wMjQtMTA4LjYwOC04Ny4zNi0yMzguMDgtODkuMjgtMzYzLjItMTIxLjQwOC0xOC40MzItMjA2LjQ2NC05Ni4wNjQtMjA2LjQ2NC0xMjEuOTg0IDAtMjQuOTYgMTAwLjQ4LTYxLjI0OCAyNTcuOTItNjEuMjQ4IDE1Ny41NjggMCAyNTguMDQ4IDM2LjIyNCAyNTguMDQ4IDYxLjI0OCAwIDI4LjkyOC0xMDYuNDMyIDEyMi41Ni0yNTAuODggMTI1Ljc2IDMuMDcyIDkyLjYwOCAyOC4yODggMjAwLjM4NCA3MC4yMDggMzAzLjA0QTQ1LjI0OCA0NS4yNDggMCAwIDEgNTU4LjA4IDUyNS40NGMwIDEuNzI4LTAuMTI4IDMuNTg0LTAuMzIgNS41NjhhNDUuMjQ4IDQ1LjI0OCAwIDAgMSA2Mi45NzYgNDEuNDcyYzAgMi4zNjgtMC4zMiA0Ljg2NC0wLjU3NiA3LjQyNCA3LjA0LTE1LjA0IDEwLjk0NC0zMC40IDEyLjYwOC00My43MTIgMTAuMjQgMjcuMDA4IDAuNTEyIDY5Ljc2LTI2LjA0OCA5Mi4xNmEyMC4wOTYgMjAuMDk2IDAgMCAxIDEuNDcyLTAuNzA0YzUuNTA0LTQuNzM2IDEwLjY4OC05Ljk4NCAxNS44NzItMTUuNDg4IDI0Ljc2OC0yNi44OCA0MC43MDQtNjMuMTA0IDM2LjAzMi05MS4yNjRhMTA4LjggMTA4LjggMCAwIDEgMTAuMjQgNDMuMDA4YzEyLjE2LTI3LjIgMTQuNC01Ny4xNTIgMTIuMTYtODIuODggMTAuNzUyIDE1LjM2IDEzLjY5NiAzNi40OCAxMC43NTIgNTcuNzkyIDEzLjMxMi0yNi44MTYgMTcuNDcyLTU4LjE3NiAxMS45NjgtODUuMTIgOS45MiAxMi4zNTIgMTkuMDA4IDMwLjI3MiAyMy4wNCA0OS4xNTIgNy42OC0zNS44NC0wLjc2OC03NC42MjQtMTYtMTAyLjUyOCAxNC4yNzIgMTMuMDU2IDI5Ljg4OCAzMy42IDM3LjgyNCA1Ni4xMjggNi4wOC00MC41MTItOC04OC4wNjQtMzUuNzEyLTEwOS4zMTIgNTcuOTIgMjkuMTIgNzMuNzkyIDk5LjAwOCA0OS45MiAxNjMuMDA4LTkuNDA4IDI2LjMwNC0yNS41MzYgNTIuNDgtNDYuNzIgNzUuMTM2YTEzNi4zMiAxMzYuMzIgMCAwIDEtOC4yNTYgMjguNTQ0YzI2LjU2LTIzLjc0NCA0My44NC01NC43MiA1NC40LTgzLjk2OCAzLjg0IDIyLjA4LTMuMzI4IDQ2LjQ2NC0xNy4yMTYgNjguMTYgMjguMDMyLTIyLjQ2NCA0Ny42MTYtNTQuNzIgNTYuMzg0LTg2LjQgMy45NjggMTguNDMyIDQuMjg4IDQyLjI0LTAuNTEyIDY0Ljg5NiAyNS45ODQtMzUuMDcyIDM3LjM3Ni04MC4yNTYgMzkuNjgtMTE5LjU1MiA2LjcyIDIyLjA4IDExLjAwOCA1My4xODQgNy41NTIgODEuMTUyYTI1MS41MiAyNTEuNTIgMCAwIDAgNDEuMDg4LTE0MC42MDhjMjIuMTQ0IDc1LjIgMy4wMDggMTQ4LjQ4LTUzLjUwNCAyMDUuMjQ4YTI2Mi4yNzIgMjYyLjI3MiAwIDAgMS0xMDguOCA2NS42NjR6IG0tMjI0LjY0LTUuMTJhNDE0Ljk3NiA0MTQuOTc2IDAgMCAxLTkxLjIgMTAuMzY4IDExNS45NjggMTE1Ljk2OCAwIDAgMCAxMDEuMTItMTIuNTQ0bC05LjkyIDIuMjR6IG0xMDkuNTY4LTE2LjMyYTUyLjE2IDUyLjE2IDAgMCAxLTUuNTA0IDIuODE2bDAuMTI4IDAuNzA0IDEzLjEyLTYuNGMtMi41NiAxLjAyNC01LjEyIDEuOTItNy43NDQgMi44OHogbTY5LjEyLTU4MC45MjhjMS4yOC0zLjM5MiAxLjkyLTYuNTkyIDEuOTItOS40MDggMC00MC4zMi0xMjAuNzY4LTcyLjk2LTI2OS42OTYtNzIuOTYtMTQ4Ljk5MiAwLTI2OS42OTYgMzIuNjQtMjY5LjY5NiA3Mi45NiAwIDIuODE2IDAuNjQgNi4wMTYgMS44NTYgOS40MDgtMjkuMTItMTIuNzM2LTQ1LjgyNC0yNy44NC00NS44MjQtNDQuMDk2IDAtNDYuNTkyIDE0MC40MTYtODQuNjA4IDMxMy42LTg0LjYwOCAxNzMuMjQ4IDAgMzEzLjcyOCAzOC4wMTYgMzEzLjcyOCA4NC42MDggMCAxNi4yNTYtMTYuODMyIDMxLjM2LTQ1Ljk1MiA0NC4wOTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMjUiIHVuaWNvZGU9IiYjNTkwMDA7IiBkPSJNNjQgMzg4LjI4OGMwIDUzLjA1NiAxOS41ODQgMTAwLjQ4IDU4LjgxNiAxNDIuNCA4LjM4NCA4LjMyIDE2Ljc2OCAxOS41MiAyMi40IDI3LjkwNCA1My4xODQgNjcuMDA4IDExNC43NTIgMTI1LjYzMiAxNzkuMiAxODEuNDQgMTkuNTg0IDE2Ljc2OCAzNi4zNTIgMzMuNTM2IDU2IDQ3LjQ4OCAyNy45NjggMjIuMzM2IDYxLjU2OCAzNi4yODggMTAwLjggNDEuODU2IDY3LjIgOC4zODQgMTI1Ljk1Mi0xMS4xMzYgMTc2LjM4NC01OC42MjQgMTkuNTg0LTE2Ljc2OCAzOS4yMzItMzMuNDcyIDYxLjYzMi01MC4yNCA2NC4zODQtNTUuODcyIDEyMy4yLTExNC40OTYgMTczLjU2OC0xODEuNTA0IDguMzg0LTExLjEzNiAxOS41ODQtMjIuMzM2IDI4LjAzMi0zNi4yODggMzAuNzItNDQuNjcyIDQxLjk4NC05Ny42NjQgMzMuNi0xNTAuNzItNS42MzItNDQuNjcyLTI1LjIxNi04MC45Ni01Ni0xMTQuNDk2bC01MC40MzItNTguNjI0Yy0zNi40MTYtNDEuODU2LTcyLjc2OC04MC45Ni0xMTQuODE2LTExNy4yNDgtMjIuNC0xOS41Mi00NC44LTM2LjI4OC02Ny4yLTU1LjgwOC0xMy45NTItMTEuMi0yNS4xNTItMjIuNC0zOS4xNjgtMzAuNzJhMjE0LjU5MiAyMTQuNTkyIDAgMCAwLTE1My45ODQtMzMuNTM2Yy00NC44IDUuNTY4LTgxLjI4IDI1LjE1Mi0xMTQuODE2IDU1Ljg3Mi04LjM4NCA4LjMyLTE2LjgzMiAxMy45NTItMjguMDMyIDIyLjMzNmExMTM5LjUyIDExMzkuNTIgMCAwIDAtMTU2LjggMTUwLjcyYy0xNi43NjggMjIuNC0zNi4zNTIgNDEuOTItNTMuMTg0IDY0LjI1Ni0yLjgxNiA4LjMyLTE0LjAxNiAyMi4zMzYtMjIuNCAzNi4yODhDNzUuMiAzMDQuNTEyIDY0IDM0My42MTYgNjQgMzg4LjI4OHogbTM3Mi40MTYtODAuOTZ2LTE3NS44NzJjMC0xOS41ODQgMTEuMi0zMC43MiAzMC43ODQtMzAuNzJoODkuNmEyMS40NCAyMS40NCAwIDAgMSAxNC4wMTYgNS41NjggNTYuNzA0IDU2LjcwNCAwIDAgMSAxNi43NjggNDEuODU2djE1My42YzAgNS41NjggMCA1LjU2OCA1LjYzMiA1LjU2OGgxNzYuMzg0YzE0LjAxNiAwIDI1LjIxNiAxMS4xMzYgMjcuOTY4IDI1LjA4OHY5Mi4xNmMwIDUuNTY4LTIuNzUyIDExLjEzNi01LjU2OCAxNi43NjgtNS42MzIgOC4zMi0xNi44MzIgMTEuMTM2LTI4LjAzMiAxMS4xMzZINTg3LjU4NFY2MjguMzUyYzAgMjIuNC0xMS4yIDMzLjUzNi0zMy42IDMzLjUzNkg0NzAuMDE2Yy01LjYzMiAwLTExLjIgMC0xNi44MzItMi44MTZhMzAuNzIgMzAuNzIgMCAwIDEtMTYuNzY4LTI3LjkwNHYtMTc1Ljg3MkgyNTkuOTY4Yy0xOS41ODQgMC0zMC43Mi0xMS4yLTMwLjcyLTMwLjcydi04Ni41MjhjMC04LjM4NCAyLjc1Mi0xNC4wMTYgNS41NjgtMTkuNTg0IDUuNTY4LTguMzIgMTYuNzY4LTExLjEzNiAyNy45NjgtMTEuMTM2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI2IiB1bmljb2RlPSImIzU5MDAxOyIgZD0iTTMyNS4zMTIzNSA0NTIuOTI2OTExYy0xMDMuMDM5ODA3IDAtMTg2LjYyMzY1IDgyLjYyMzg0NS0xODYuNjIzNjUgMTg0LjYzOTY1NFY3ODUuMjE0Mjg4YTM3LjExOTkzIDM3LjExOTkzIDAgMCAwIDM3LjMxMTkzIDM2LjkyNzkzaDM3LjMxMTkzYTM3LjExOTkzIDM3LjExOTkzIDAgMCAxIDM3LjM3NTkzIDM2LjkyNzkzMUEzNy4xMTk5MyAzNy4xMTk5MyAwIDAgMSAyMTMuMzEyNTYgODk1Ljk5ODA4SDE3Ni4wMDA2M0ExMTEuMzU5NzkxIDExMS4zNTk3OTEgMCAwIDEgNjQuMDAwODQgNzg1LjI3ODI4OHYtMTQ3LjcxMTcyM0EyNTYuOTU5NTE4IDI1Ni45NTk1MTggMCAwIDEgMTc2Ljc2ODYyOSA0MjUuNTk4OTYyIDMyNC4yODczOTIgMzI0LjI4NzM5MiAwIDAgMCAyODguMDAwNDIgMTk0LjQzMTM5NUMyODguMDAwNDIgNTEuNzExNjYzIDQwNC45OTIyMDEtNjQuMDAwMTIgNTQ5LjMxMTkzLTY0LjAwMDEyczI2MS4zNzU1MSAxMTUuNzExNzgzIDI2MS4zNzU1MSAyNTguNDMxNTE1djQyLjExMTkyMWExNDcuNTgzNzIzIDE0Ny41ODM3MjMgMCAwIDEgMTA3LjI2Mzc5OSAxNzkuOTY3NjYzYy0yMC42NzE5NjEgNzguOTc1ODUyLTEwMi4wNzk4MDkgMTI2LjQ2Mzc2My0xODEuOTUxNjU5IDEwNi4wNDc4MDFhMTQ3LjU4MzcyMyAxNDcuNTgzNzIzIDAgMCAxLTEwNy4yNjM3OTktMTc5LjkwMzY2MiAxNDguNDc5NzIyIDE0OC40Nzk3MjIgMCAwIDEgMTA3LjI2Mzc5OS0xMDYuMTExODAydi00Mi4xMTE5MjFjMC0xMDEuOTUxODA5LTgzLjU4Mzg0My0xODQuNTc1NjU0LTE4Ni42ODc2NS0xODQuNTc1NjUzLTEwMy4wMzk4MDcgMC0xODYuNjIzNjUgODIuNjIzODQ1LTE4Ni42MjM2NSAxODQuNTc1NjUzYTMyNC4yODczOTIgMzI0LjI4NzM5MiAwIDAgMCAxMTEuOTk5NzkgMjMxLjE2NzU2NyAyNTYuODk1NTE4IDI1Ni44OTU1MTggMCAwIDEgMTExLjk5OTc5IDIxMS45Njc2MDNWNzg1LjIxNDI4OEExMTEuMzU5NzkxIDExMS4zNTk3OTEgMCAwIDEgNDc0LjY4ODA3IDg5NS45OTgwOGgtMzcuMzc1OTNhMzcuMTE5OTMgMzcuMTE5OTMgMCAwIDEtMzcuMzExOTMtMzYuOTI3OTMxIDM3LjExOTkzIDM3LjExOTkzIDAgMCAxIDM3LjMxMTkzLTM2LjkyNzkzMWgzNy4zNzU5M0EzNy4xMTk5MyAzNy4xMTk5MyAwIDAgMCA1MTIgNzg1LjI3ODI4OHYtMTQ3LjY0NzcyNGMwLTEwMi4wMTU4MDktODMuNTgzODQzLTE4NC42Mzk2NTQtMTg2LjY4NzY1LTE4NC42Mzk2NTN6IG00NDcuOTk5MTYtMTQ3LjcxMTcyM2MtNDEuMjE1OTIzIDAtNzQuNjIzODYgMzMuMDg3OTM4LTc0LjYyMzg2IDczLjg1NTg2MXMzMy40MDc5MzcgNzMuODU1ODYyIDc0LjYyMzg2IDczLjg1NTg2MiA3NC42ODc4Ni0zMy4wODc5MzggNzQuNjg3ODYtNzMuODU1ODYyLTMzLjQwNzkzNy03My44NTU4NjItNzQuNjg3ODYtNzMuODU1ODYxeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI3IiB1bmljb2RlPSImIzU5MDAyOyIgZD0iTTgxMC42MjQgMjM5LjEwNGEyOTcuNiAyOTcuNiAwIDAgMS0yNDEuOTItMTI0LjA5NmMtOC4zODQtMTEuNjQ4LTI2Ljg4LTUuNDQtMjYuODggOC45NnY2Mi42NTZhMzAuNzIgMzAuNzIgMCAwIDAgMTUuODA4IDI2LjI0YzMwLjIwOCAxNy44NTYgNDcuMjMyIDUxLjcxMiA0My40NTYgODYuNTkyIDEuOTItMi40MzIgMy42NDgtNS4wNTYgNS45NTItNy4yOTZhODkuNiA4OS42IDAgMCAxIDEyNi43MiAxMjYuNzJjLTIuMzA0IDIuMjQtNC44NjQgMy45NjgtNy4yOTYgNS45NTIgMTguODgtMS45ODQgMzkuMjMyIDEuMjE2IDYxLjk1MiAxOS4zMjggMjMuNDg4IDE4LjgxNiAzOS4yMzIgNDYuNzIgMzYuOTI4IDc2LjY3MmE4OS42IDg5LjYgMCAwIDEtOTguODggODIuMTc2YzIuNDMyIDEuOTIgNC45OTIgMy42NDggNy4yOTYgNS45NTJhODkuNiA4OS42IDAgMCAxLTEyNi43MiAxMjYuNzJjLTIuMzA0LTIuMzA0LTMuOTY4LTQuODY0LTUuOTUyLTcuMjk2IDIuMTc2IDIwLjQ4LTEuNzkyIDQyLjg4LTI0LjQ0OCA2Ny44NC0xNi42NCAxOC4zMDQtMzkuNDI0IDMxLjE2OC02NC4xMjggMzEuMjk2YTg5LjYgODkuNiAwIDAgMS04OS42LTk5LjJjLTEuOTIgMi40OTYtMy42NDggNS4xMi01Ljk1MiA3LjM2YTg5LjYgODkuNiAwIDAgMS0xMjYuNzItMTI2LjcyYzIuMzA0LTIuMzA0IDQuODY0LTQuMDMyIDcuMjk2LTUuOTUyLTIwLjQ4IDIuMTc2LTQyLjg4LTEuODU2LTY3Ljg0LTI0LjUxMi0xOC4zMDQtMTYuNjQtMzEuMTY4LTM5LjM2LTMxLjI5Ni02NC4wNjRhODkuNiA4OS42IDAgMCAxIDk5LjItODkuNmMtMi40OTYtMS45Mi01LjEyLTMuNzEyLTcuMzYtNS45NTJhODkuNiA4OS42IDAgMCAxIDEyNi43Mi0xMjYuNzJjMi4zMDQgMi4yNCAzLjk2OCA0Ljg2NCA1Ljk1MiA3LjI5NmE4OS4zNDQgODkuMzQ0IDAgMCAxIDQzLjUyLTg2LjU5MiAzMC43ODQgMzAuNzg0IDAgMCAwIDE1LjY4LTI2LjI0di02Mi43MmMwLTE0LjMzNi0xOC40MzItMjAuNTQ0LTI2LjgxNi04Ljk2YTI5Ny42IDI5Ny42IDAgMCAxLTMyMy4zOTIgMTEyLjgzMiAzMC4xNDQgMzAuMTQ0IDAgMCAxLTE5LjItNDIuNDk2QTQ0Ny45MzYgNDQ3LjkzNiAwIDAgMSA1MTItNTkuNTJINTEyYTQ0Ny45MzYgNDQ3LjkzNiAwIDAgMSAzOTkuMTY4IDI0NC44IDMwLjE0NCAzMC4xNDQgMCAwIDEtMTkuMiA0Mi40OTYgMjk3LjM0NCAyOTcuMzQ0IDAgMCAxLTgxLjQwOCAxMS4zMjh6IG0tNDAzLjIgMjc0LjgxNmExMDQuNTEyIDEwNC41MTIgMCAxIDAgMjA5LjA4OCAwIDEwNC41MTIgMTA0LjUxMiAwIDAgMC0yMDkuMDI0IDB6IG0xMDUuMDI0LTU3Ny4zNDRjMCAyLjExMi0wLjM4NCA0LjIyNC0wLjUxMiA2LjRoMS4wODhjLTAuMTI4LTIuMjQtMC41NzYtNC4yODgtMC41NzYtNi40eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI4IiB1bmljb2RlPSImIzU5MDAzOyIgZD0iTTUxMiA4MzJDMjY0LjgzMiA4MzIgNjQgNjMxLjE2OCA2NCAzODRzMjAwLjgzMi00NDggNDQ4LTQ0OCA0NDggMjAwLjgzMiA0NDggNDQ4LTIwMC44MzIgNDQ4LTQ0OCA0NDh6IG0yMjQtNjU0LjRjMC0xNC40LTExLjItMjUuNi0yNC44MzItMjUuNi0yMzUuOTY4IDAtNDI3LjEzNiAxOTYuMDMyLTQyNy4xMzYgNDM4LjQgMCAxNC40IDExLjIgMjUuNiAyNC43NjggMjUuNkgzOTYuOGMxMy42MzIgMCAyNC44MzItMTEuMiAyNC44MzItMjUuNiAwLTMyIDQuOC02My4yMzIgMTQuNC05Mi44IDIuMzY4LTguODMyIDAuNzY4LTE5LjItNi40LTI2LjQzMmwtNTUuMjMyLTU2Ljc2OGEzODEuNTA0IDM4MS41MDQgMCAwIDEgMTY1LjYzMi0xNjkuNmw1NS4xNjggNTYuNzY4YzYuNCA3LjIzMiAxNi44MzIgOS42IDI1LjYgNi40IDI4LjAzMi05LjYgNTguNDMyLTE0LjQgODkuNi0xNC40YTI1LjYgMjUuNiAwIDAgMCAyNC44MzItMjUuNnYtOTAuMzY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTI5IiB1bmljb2RlPSImIzU5MDA0OyIgZD0iTTU2My43NzYgMzEwLjU5Mkg0NjUuNDA4di0xOTYuMzUySDM2Ny4xMDRWNjA1LjE4NGgxOTYuNjcyYzk3LjA4OCAwIDE0NC4zODQtNjcuNDU2IDE0NC4zODQtMTQ3LjIgMC03OS44NzItMzcuMjQ4LTE0Ny4zMjgtMTM0LjQtMTQ3LjMyOGgtOS45ODR6TTUxMiA4MzMuOTJDMjYzLjE2OCA4MzMuOTIgNjEuNDQgNjMyLjUxMiA2MS40NCAzODRjMC0yNDguNTEyIDIwMS43MjgtNDQ5Ljk4NCA0NTAuNTYtNDQ5Ljk4NHM0NTAuNTYgMjAxLjQ3MiA0NTAuNTYgNDQ5LjkyQzk2Mi41NiA2MzIuNTEyIDc2MC44MzIgODMzLjkyIDUxMiA4MzMuOTJ6IG01MS43NzYtMzI2Ljg0OEg0NjUuNDA4di05OC4yNEg1NjMuODRjNDEuNiAwIDQ5LjA4OCAxMC44OCA0OS4wODggNDkuMDg4IDAgMzguMjcyIDIuMzY4IDQ5LjE1Mi0zOS4yOTYgNDkuMTUySDU2My44NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zMCIgdW5pY29kZT0iJiM1OTAwNTsiIGQ9Ik0zMTcuNjk2IDU0NC4xOTJWNjkxLjcxMkgxNjAuODMyeiBtMzg4LjYwOCAxNDcuNTJ2LTE0Ny40NTZsMTU2Ljg2NCAxNDcuNDU2ek0zMTcuNjk2IDMyOS4yOFY0NzYuNjcySDE2MC44MzJ6IG0zODguNjA4IDBsMTU2Ljg2NCAxNDcuNDU2aC0xNTYuODY0ek0zMTguNC02NGgzODcuNTg0VjgzMkgzMTguNHpNNTA5LjM3NiA3NjkuOTg0YzYxLjc2IDAgMTExLjg3Mi00OS42NjQgMTExLjg3Mi0xMTAuOTc2cy01MC4xMTItMTEwLjk3Ni0xMTEuODcyLTExMC45NzYtMTExLjg3MiA0OS42NjQtMTExLjg3MiAxMTAuOTc2IDUwLjExMiAxMTAuOTc2IDExMS44NzIgMTEwLjk3NnogbTAtMjc1LjUyYTExMS4zNiAxMTEuMzYgMCAwIDAgMTExLjg3Mi0xMTAuOTEyYzAtNjEuMzEyLTUwLjExMi0xMTAuOTc2LTExMS44NzItMTEwLjk3NnMtMTExLjg3MiA0OS42LTExMS44NzIgMTEwLjkxMiA1MC4xMTIgMTEwLjk3NiAxMTEuODcyIDExMC45NzZ6IG0wLTI3NS41MmM2MS43NiAwIDExMS44NzItNDkuNjY0IDExMS44NzItMTEwLjk3NiAwLTYxLjI0OC01MC4xMTItMTEwLjkxMi0xMTEuODcyLTExMC45MTJzLTExMS44NzIgNDkuNjY0LTExMS44NzIgMTEwLjkxMmMwIDYxLjMxMiA1MC4xMTIgMTEwLjk3NiAxMTEuODcyIDExMC45NzZ6IG0xOTYuOTI4LTEwNC43MDRsMTU2Ljg2NCAxNDcuNDU2aC0xNTYuODY0eiBtLTM4OC42MDggMFYyNjEuNjk2SDE2MC44MzJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzEiIHVuaWNvZGU9IiYjNTkwMDY7IiBkPSJNNjU4LjQzMiA0MjYuNjg4QTQyLjY4OCA0Mi42ODggMCAxIDAgNjU2LjUxMiA1MTJhNDIuNjg4IDQyLjY4OCAwIDAgMCAxLjkyLTg1LjMxMnogbS0yOTguNjg4IDBBNDIuNjg4IDQyLjY4OCAwIDEgMCAzNTcuODI0IDUxMmE0Mi42ODggNDIuNjg4IDAgMCAwIDEuOTItODUuMzEyeiBtMC45NiAyNTEuMzkyQzM2MC43MDQgNzYzLjIgNDI3LjQ1NiA4MzIgNTA5LjU2OCA4MzJjODIuMDQ4IDAgMTQ4Ljg2NC02OC44IDE0OC44NjQtMTUzLjkydi0zOC43ODRMMzYwLjcwNCA2NDB6IG01NTYuNjcyLTEwMC4zNTJBNjcuOTA0IDY3LjkwNCAwIDAgMSA4NTAuNDMyIDY0MGgtMTQ5LjM3NnYzOC4wOGMwIDEwOC40MTYtODUuNTY4IDE5Ni42MDgtMTkxLjQ4OCAxOTYuNjA4UzMxOC4wMTYgNzg2LjQ5NiAzMTguMDE2IDY3OC4wOFY2NDBIMTY3Ljc0NGMtMzQuODE2IDAtNjQuNTEyLTI3LjY0OC02Ny4wMDgtNjIuMjcybC0zNi41NDQtNTEyLjM4NEE2MC40OCA2MC40OCAwIDAgMSAxMjQuOTkyIDBoNzY4LjEyOGE2MC4zNTIgNjAuMzUyIDAgMCAxIDYwLjg2NCA2NS4zNDR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzIiIHVuaWNvZGU9IiYjNTkwMDc7IiBkPSJNMjIwLjQxNiA4MTUuNTUydi0xNC42NTZjMC0yOS4yNDggMjEuMzc2LTUxLjIgNDkuNzkyLTUxLjIgMjEuMzEyIDAgMzUuNTg0IDE0LjY1NiA0Mi42ODggMzYuNjA4bDE0LjIwOCAzNi41NDQgMzk4LjIwOC0xNjguMTkyTDQ0OCA0NTcuMTUyYy0yOC40MTYtMjEuOTUyLTI4LjQxNi01MS4yLTIxLjMxMi04MC40NDhsNjQtMTUzLjYtOTIuNDgtMjg1LjI0OEE0Ny4xNjggNDcuMTY4IDAgMCAxIDQ0MC45Ni0xMjhjMjEuMzEyIDAgMzUuNTIgNy4yOTYgNDIuNjg4IDM2LjU0NGw5OS41MiAyOTIuNjA4IDcuMTA0LTIxLjk1MnYtMjU2czAtNTEuMiA0OS43OTItNTEuMiA0OS43OTIgNTEuMiA0OS43OTIgNTEuMnYyNDEuMzQ0YzAgMTQuNjU2IDAgMjEuOTUyLTcuMTA0IDM2LjYwOEw1ODMuMDQgNDQ5Ljg1NmwxOTIgMTM4Ljk0NGMxNC4yMDggMTQuNjU2IDI4LjQ4IDIxLjk1MiAyOC40OCA0My45MDRzLTE0LjI3MiAzNi41NDQtMjguNDggNDMuODRsLTUxMiAyMTIuMTZjLTYuMjA4IDAtOC4zODQtMS4yOC0xNC4yMDgtNy4zNnpNMzY5Ljc5MiA2NzYuNDhjLTU2Ljk2IDAtMTA2LjY4OC01MS4yLTEwNi42ODgtMTA5LjY5NiAwLTU4LjQ5NiA0OS43OTItMTA5LjY5NiAxMDYuNjg4LTEwOS42OTZzMTA2LjYyNCA1MS4yIDEwNi42MjQgMTA5LjY5NmMwIDU4LjQ5Ni00OS43MjggMTA5LjY5Ni0xMDYuNjI0IDEwOS42OTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzMiIHVuaWNvZGU9IiYjNTkwMDg7IiBkPSJNNzY4IDgwMGE5NiA5NiAwIDEgMC0xOTIgMCA5NiA5NiAwIDAgMCAxOTIgMHogbTAtNjA4YTY0IDY0IDAgMSAxIDAtMTI4IDY0IDY0IDAgMCAxIDAgMTI4eiBtMTE3Ljc2IDMxNC4yNGwtMTIyLjI0IDEyMi4yNGEzMC43MiAzMC43MiAwIDAgMS0yMy42OCAxMS41MkgyODhhMzIgMzIgMCAwIDEgMC02NGgxNzIuOEwyNTYgMTcyLjhhMzEuMjMyIDMxLjIzMiAwIDAgMSAwLTEyLjggMzIuNzA0IDMyLjcwNCAwIDAgMSA2NC0xMy40NEwzODQgMjU2aDEyOGwtMTIzLjUyLTI3MS4zNmEzMS4zNiAzMS4zNiAwIDAgMS00LjQ4LTE2LjY0IDMyLjY0IDMyLjY0IDAgMCAxIDY0LTEyLjhsMzAwLjggNjAwLjMyIDkyLjE2LTk0LjcyYTMyIDMyIDAgMCAxIDQ0LjggNDUuNDR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzQiIHVuaWNvZGU9IiYjNTkwMDk7IiBkPSJNODM2LjkyOCA0NzIuNjR2LTMyNC45MjhhMjkuNTY4IDI5LjU2OCAwIDAgMC01OS4wNzIgMFYyNjUuODU2YzAgNDguOTYtMzkuNjggODguNTc2LTg4LjY0IDg4LjU3Nkg2MDAuNjRWNzA4LjkyOEE1OS4wNzIgNTkuMDcyIDAgMCAxIDU0MS41NjggNzY4SDE4Ny4wNzJBNTkuMDcyIDU5LjA3MiAwIDAgMSAxMjggNzA4LjkyOHYtNjQ5Ljg1NmMwLTMyLjY0IDI2LjQzMi01OS4wNzIgNTkuMDcyLTU5LjA3MmgzNTQuNDk2YzMyLjY0IDAgNTkuMDcyIDI2LjQzMiA1OS4wNzIgNTkuMDcyVjI5NS4zNmg4OC41NzZjMTYuMzIgMCAyOS41NjgtMTMuMTg0IDI5LjU2OC0yOS41MDR2LTExOC4xNDRhODguNjQgODguNjQgMCAwIDEgMTc3LjIxNiAwdjM4NGE1OS4wNzIgNTkuMDcyIDAgMCAxLTU5LjA3MiA1OS4wNzJWNjgwYTI5LjUwNCAyOS41MDQgMCAwIDEtMjkuNTY4IDI4LjkyOCAzMC4wOCAzMC4wOCAwIDAgMS0yOS41MDQtMzIuNTEydi0xNDQuNzA0YTU5LjA3MiA1OS4wNzIgMCAxIDEgNTkuMDcyIDU5LjA3MnogbS0yOTUuMzYtMjkuNTY4QTI5LjU2OCAyOS41NjggMCAwIDAgNTEyIDQxMy41NjhIMjE2LjY0YTI5LjU2OCAyOS41NjggMCAwIDAtMjkuNTY4IDI5LjUwNHYxNzcuMjhjMCAxNi4yNTYgMTMuMjQ4IDI5LjQ0IDI5LjU2OCAyOS40NEg1MTJjMTYuMzIgMCAyOS41NjgtMTMuMTg0IDI5LjU2OC0yOS40NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zNSIgdW5pY29kZT0iJiM1OTAxMDsiIGQ9Ik0zMDguNTQ0IDY5Mi41NDRjMzAuNzg0IDUuMTIgMjkuMDU2IDMyLjUxMiAxMDkuNDQgNTEuMzI4IDAgMCAzNC4xNzYgNDIuNjg4IDc2LjkyOCAzOS4yOTYgMCAwIDQ3Ljg3Mi02Ljg0OCAzNS44NCAxMy42OTZTNDkzLjI0OCA4NjguNjcyIDUzNy43MjggODg1Ljc2czY2LjYyNC0zLjQ1NiA3NS4yLTExLjk2OGM4LjU3Ni04LjU3NiA4LjU3Ni0yMy45MzYgOC41NzYtMjMuOTM2czMuMzkyLTI3LjM5MiAxLjY2NC0zNC4xNzZjLTEuNjY0LTYuODQ4LTIzLjkzNi0yMC41NDQtMTEuOTY4LTI3LjM5MiAxMS45NjgtNi44NDggOTIuMzUyIDUuMTIgOTUuNzQ0LTcwLjA4IDAgMCAzOS4yOTYtNTQuNzIgNTIuOTkyLTc4LjY1NiAwIDAgNTQuNzItNDQuNDE2IDY4LjQxNi03MC4wOCAwIDAgNTIuOTkyLTQ0LjQxNiA1Ni4zODQtNDcuODcyIDEuNzI4LTMuMzkyIDY2LjY4OC01MS4yNjQgMzcuNjMyLTU2LjM4NCAwIDAgMS42NjQtMzQuMTc2LTE1LjM2LTYuODQ4LTE1LjQyNCAyNy4zMjgtMTMuNjk2IDguNTEyLTEzLjY5NiA1LjEyIDAtMy4zOTIgMTAuMjQtMzUuODQtMjAuNDgtMTcuMDg4LTI5LjEyIDE4LjgxNi0yNCA0NC40MTYtMjQgNDQuNDE2czExLjk2OCA2Ljg0OC0xMy42OTYgMjIuMjcyYy0yNS42IDE1LjM2LTY2LjYyNCA0Ni4wOC02Ni42MjQgNTQuNjU2IDAgMC00OS42IDM1LjkwNC01Ni40NDggNTIuOTkyLTYuODQ4IDE1LjM2LTYuODQ4IDAtMTAuMjQtNi43ODQgMCAwLTI1LjYtNDIuNzUyLTIwLjQ4LTYxLjU2OCAzLjM5Mi0xOC44MTYgMjguOTkyLTk5LjIgMjUuNi0xMTkuNjgtMy4zOTItMjAuNDgtMTguODE2LTg1LjQ0LTE3LjA4OC04OC44OTYgMS43MjgtMy4zOTIgMjIuMjA4LTgwLjMyLTI1LjYtMTExLjEwNCAwIDAtODIuMTEyLTE1Ny4yNDgtODAuMzg0LTE3NC4zMzYgMS43MjgtMTguODE2IDEuNzI4LTI5LjEyIDEuNzI4LTI5LjEybDEuNjY0LTI1LjZjLTYuODQ4LTguNTc2IDUuMTItNjMuMjk2IDE4LjgxNi03NS4yNjQgMTMuNjk2LTExLjk2OCAzMi41MTItNjQuOTYtMjcuMzI4LTQyLjY4OEM1MTguODQ4LTkzLjgyNCA1MTItMzkuMTA0IDUxMi0zOS4xMDRzLTQ2LjE0NCAyMC40OC0xNS4zNiA1Ni4zODRjMjkuMDU2IDM1LjkwNCAzOS4yOTYgMzQuMjQgMzkuMjk2IDM0LjI0czEuNzI4IDIwLjQ4IDYuODQ4IDE3LjA4OGMzLjM5Mi0xLjcyOCAxOC44MTYgMjEzLjY5NiA3MC4wOCAyMDYuODQ4bC0xMC4yNCAyMC40OHMtMTcuMDg4LTM1Ljg0LTI1LjY2NC00Mi42ODhjLTguNTc2LTYuODQ4LTYuODQ4LTMwLjc4NC0zNy42MzItNDIuNzUyLTMwLjcyLTExLjk2OC04NS40NC01Ni40NDgtMTI5LjkyLTg3LjE2OCAwIDAtNi44NDgtMzcuNjMyLTExLjk2OC0zOS4zNi0zLjM5Mi0xLjcyOC0zMC43Mi01MS4yNjQtMjUuNi02MS41MDQgNi44NDgtMTEuOTY4LTIyLjI3Mi04MC4zODQtNDcuODcyLTguNTc2LTI1LjYgNzAuMDgtNi44NDggNzYuOTI4LTYuODQ4IDc2LjkyOHMtMjAuNDggNTkuODQgNS4xMiA2MS41NjggNDcuODcyLTEuNzI4IDUxLjI2NCAwYzMuNDU2IDEuNjY0IDguNTc2IDMuMzkyIDguNTc2IDMuMzkyczgzLjc3NiAxMTcuOTUyIDEyMS4zNDQgMTE0LjU2YzAgMC02Ljc4NCAxNTIuMTI4IDEwLjI0IDE2MC42NCAwIDAtNTYuMzIgOTAuNjI0LTYuNzg0IDE0MS45NTIgMCAwLTM0LjE3NiA4My43MTItMjIuMjA4IDk0LjAxNiAwIDAtMjUuNjY0IDE4LjgxNi0xOC44MTYgMjUuNiAwIDAtNzguNjU2LTMyLjQ0OC0xMTYuMjg4LTMyLjQ0OCAwIDAtMjAuNDgtNS4xMi0yNy4zMjgtMTEuOTY4IDAgMC0xMTguMjcyLTI1LjYtMTMwLjI0LTguNTc2LTEwLjI0IDE1LjM2IDUzLjMxMiAzNy42MzIgNTMuMzEyIDM3LjYzMnMzMi41MTIgMTAuMjQgNjMuMjMyIDE1LjM2eiBtLTIxMy42OTYtMS42NjRhNzMuNTM2IDczLjUzNiAwIDEgMSAxNDcuMDcyIDAgNzMuNTM2IDczLjUzNiAwIDAgMS0xNDcuMDcyIDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzYiIHVuaWNvZGU9IiYjNTkwMTE7IiBkPSJNNjgyLjY4OCA3NjhjLTM3Ljc2IDAtNjguMjg4LTMxLjA0LTY4LjI4OC02OS4zMTJzMzAuNTkyLTY5LjM3NiA2OC4yODgtNjkuMzc2IDY4LjIyNCAzMS4wNCA2OC4yMjQgNjkuMzc2UzcyMC4zODQgNzY4IDY4Mi42ODggNzY4eiBtLTEyNi43Mi0xMzguMjRhMzMuOTIgMzMuOTIgMCAwIDEtMjMuNjgtOS45MkwzNTIgNDQ2LjUyOGEzNS4wMDggMzUuMDA4IDAgMCAxIDIuOTQ0LTUyLjkyOGwxMjIuODgtOTMuNTY4di0xOTAuNzJjLTAuNjQtNDYuODQ4IDY4Ljk5Mi00Ni44NDggNjguMjg4IDB2MjA4YTM0Ljg4IDM0Ljg4IDAgMCAxLTEzLjU2OCAyNy43NzZsLTUyLjQxNiAzOS45MzYgMTI0LjE2IDExOS4zNiA1MS4wNzItNjkuMjQ4YTMzLjkyIDMzLjkyIDAgMCAxIDI3LjMyOC0xMy44MjRoMTAyLjRjNDYuMDgtMC42NCA0Ni4wOCA3MC4wMTYgMCA2OS4zNzZoLTg1LjM3NmwtNTEuMiA2OS4zMTItNDAuOTYgNTUuNTUyYTMzLjk4NCAzMy45ODQgMCAwIDEtMjYuMjQgMTQuMjA4ek0yMDQuOCAzNTJDOTEuNzEyIDM1MiAwIDI1OC44OCAwIDE0NFM5MS43MTItNjQgMjA0LjgtNjRzMjA0LjggOTMuMTIgMjA0LjggMjA4UzMxNy44ODggMzUyIDIwNC44IDM1MnogbTYxNC40IDBjLTExMy4wODggMC0yMDQuOC05My4xMi0yMDQuOC0yMDhTNzA2LjExMi02NCA4MTkuMi02NHMyMDQuOCA5My4xMiAyMDQuOCAyMDgtOTEuNzEyIDIwOC0yMDQuOCAyMDh6TTIwNC44IDI4Mi42ODhjNzUuMzkyIDAgMTM2LjUxMi02Mi4wOCAxMzYuNTEyLTEzOC42ODhzLTYxLjEyLTEzOC42ODgtMTM2LjUxMi0xMzguNjg4LTEzNi41MTIgNjIuMDgtMTM2LjUxMiAxMzguNjg4IDYxLjEyIDEzOC42ODggMTM2LjUxMiAxMzguNjg4eiBtNjE0LjQgMGM3NS4zOTIgMCAxMzYuNTEyLTYyLjA4IDEzNi41MTItMTM4LjY4OHMtNjEuMTItMTM4LjY4OC0xMzYuNTEyLTEzOC42ODgtMTM2LjUxMiA2Mi4wOC0xMzYuNTEyIDEzOC42ODggNjEuMTIgMTM4LjY4OCAxMzYuNTEyIDEzOC42ODh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtMzciIHVuaWNvZGU9IiYjNTkwMTI7IiBkPSJNNTEyIDc2OEM0MDkuNiA3NjggMzMyLjggNjg3Ljc0NCAzMzIuOCA1ODguOGExNzguNzUyIDE3OC43NTIgMCAwIDEgMTI4LTE3MC44OHYtMzA5LjI0OGMtNDcuNjE2IDguNDQ4LTk2IDI4LjE2LTEzNS42MTYgNjUuMDI0LTUzLjg4OCA1MC4xNzYtOTQuNzIgMTMwLjA0OC05NC43MiAyNjEuNjMyYTUxLjIgNTEuMiAwIDEgMS0xMDIuNDY0IDBjMC0xNTMuNzkyIDUxLjg0LTI2Ni4wNDggMTI3LjQ4OC0zMzYuNTEyUzQyNi44OCAwIDUxMiAwYzg1LjI0OCAwIDE4MC45OTIgMjguNjcyIDI1Ni42NCA5OS4zMjhzMTI3LjIzMiAxODIuOTc2IDEyNy4yMzIgMzM2YzMuMzI4IDcxLjQyNC0xMDUuNiA3MS40MjQtMTAyLjI3MiAwIDAtMTMwLjc1Mi00MC45Ni0yMTAuNjg4LTk0LjkxMi0yNjEuMTItMzkuNjE2LTM2Ljk5Mi04Ny45MzYtNTYuODk2LTEzNS40ODgtNjUuNDA4VjQxNy43MjhhMTc4Ljg4IDE3OC44OCAwIDAgMSAxMjggMTcxLjA3MkM2OTEuMiA2ODcuNzQ0IDYxNC40IDc2OCA1MTIgNzY4eiBtMC0xMDIuNEE3Ni44IDc2LjggMCAxIDAgNTEyIDUxMmE3Ni44IDc2LjggMCAwIDAgMCAxNTMuNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS0zOCIgdW5pY29kZT0iJiM1OTAxMzsiIGQ9Ik0zODMuODA4IDE3My4xODRjMzkuODcyLTAuNTc2IDc4LjMzNi0xNC43MiAxMDkuMzEyLTQwLjMybDE1LjM2LTEzLjg4OGgyLjk0NGwxOC4zMDQgMTYuODMyYTE2OC4xMjggMTY4LjEyOCAwIDAgMCAyMDMuMiAxMC44OGwxMzMuNTA0IDI2Ny40NTYtODguNTc2IDYwLjE2VjY4OC4yNTZhOTEuODQgOTEuODQgMCAwIDEtODguNjQgODcuMzZoLTI5LjUwNGE1Ni4yNTYgNTYuMjU2IDAgMCAxLTU5LjA3MiA2MC4xNmgtMTc3LjI4YTU1LjkzNiA1NS45MzYgMCAwIDEtNTkuMDcyLTYwLjE2aC0yOS41MDRhOTEuODQgOTEuODQgMCAwIDEtODguNjQtODcuMzZ2LTIxMy44MjRsLTg4LjU3Ni02MC4yMjQgMTMyLjg2NC0yNzIuODk2YTE3MC44OCAxNzAuODggMCAwIDAgOTMuMzc2IDMxLjkzNnpNMzA1LjIxNiA2ODguMTkyYTI3Ljk2OCAyNy45NjggMCAwIDAgMjguODY0IDI3LjEzNmgzNTUuMmEyNy45NjggMjcuOTY4IDAgMCAwIDI5LjQ0LTMwLjE0NHYtMTgwLjczNkw1MTIgNjI0Ljk2IDMwNS4yOCA1MDcuNDU2ek04OTYgNTIuNjcydi02MC4xNmE1OC42ODggNTguNjg4IDAgMCAxLTQwLjE5Mi0yMC40OGMtMTYtMTcuNDA4LTM2LjQ4LTI5Ljg4OC01OS4wNzItMzYuMTYtMzYuMjg4LTEwLjk0NC03NS41Mi0yLjU2LTEwNC41NzYgMjIuMjcybC0yMy4wNCAyMS4xMmE0NS40NCA0NS40NCAwIDAgMS02NC45NiAwYy04LjMyLTcuMjk2LTE2LTE1LjEwNC0yNC44MzItMjIuMzM2YTExMS43NDQgMTExLjc0NCAwIDAgMC0xNDYuNDk2IDQuMjI0bC0yMy4wNCAyMS4xMmE0NC4yMjQgNDQuMjI0IDAgMCAxLTU5LjA3MiAwYy0xMS4yLTkuMDg4LTIxLjI0OC0xOS4zMjgtMzIuNTEyLTI4LjM1Mi00MS42LTMxLjM2LTk4LjgxNi0yOS45NTItMTM4LjgxNiAzLjU4NGwtMTguMzA0IDE2LjMyQTU1LjIzMiA1NS4yMzIgMCAwIDEgMTI4LTcuNTUydjYwLjI4OGMxNS4yOTYgMS45MiAzMC43Mi0xLjAyNCA0NC4yODgtOC40NDggMTYuNDQ4LTEwLjM2OCAzMi4wNjQtMjIuMDggNDYuNzItMzQuOTQ0IDEyLjA5Ni0xMy40NCAzMC40LTE5LjIgNDcuODA4LTE1LjA0YTU0LjU5MiA1NC41OTIgMCAwIDEgMTguMzA0IDkuNmM5LjQ3MiA3LjIzMiAxNy4xNTIgMTUuNjggMjYuNjI0IDIzLjQ4OGExMTEuNzQ0IDExMS43NDQgMCAwIDAgMTQ0LjcwNCAwYzkuNDcyLTcuODA4IDE4LjMwNC0xNi44MzIgMjcuNzc2LTI0LjcwNGE0NC4yMjQgNDQuMjI0IDAgMCAxIDU5LjA3MiAwYzkuNDcyIDcuODcyIDE4LjMwNCAxNi44OTYgMjcuNzc2IDI0LjcwNGExMTEuNzQ0IDExMS43NDQgMCAwIDAgMTQ1LjI4IDBjOC45Ni03LjgwOCAxNy4yMTYtMTYuMjU2IDI2LjA0OC0yMy40ODhhNDQuMjI0IDQ0LjIyNCAwIDAgMSA1OS4wNzIgMGwyNy43NzYgMjQuNzA0QTEwNC41MTIgMTA0LjUxMiAwIDAgMCA4OTYgNTIuNzM2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTM5IiB1bmljb2RlPSImIzU5MDE0OyIgZD0iTTcxNS42MzUyNzMgNzM4LjQ0MTg0N2M0NC45ODkxODggMCA4MS40NjY5MDggMzUuMjYxNzk2IDgxLjQ2NjkwOCA3OC43NzkwNzdTNzYwLjYyNDQ2MSA4OTYgNzE1LjYzNTI3MyA4OTYgNjM0LjE2ODM2NCA4NjAuNzM4MjA0IDYzNC4xNjgzNjQgODE3LjI4NDkyYzAtNDMuNTE3MjggMzYuNDc3NzItNzguODQzMDcyIDgxLjQ2NjkwOS03OC44NDMwNzN6IG0tNjEwLjkwNTgxOS01NTEuMzI1NTQyaDIwMy42MzUyNzNsODEuNDY2OTA5IDIzNi4yNzMyMzNMNDcxLjI5ODU0NCA1NjEuMzAwOTE5IDM4OS43Njc2NCA1ODAuOTQ3NjkxbC0xODcuMzE2MjkzLTc4LjcxNTA4MWE0NC4zNDkyMjggNDQuMzQ5MjI4IDAgMCAwLTU3LjAyMDQzNiAyMy41NTA1MjkgNDEuOTgxMzc2IDQxLjk4MTM3NiAwIDAgMCAyNC40NDY0NzIgNTUuMTY0NTUybDIxOS44OTAyNTcgNzguNzE1MDhoMTYyLjg2OTgybDE2Mi45MzM4MTctNzguNzE1MDggODEuNDY2OTA4LTc4LjcxNTA4MWgxMjIuMTY4MzY1YzIyLjQ2MjU5NiAwIDQwLjcwMTQ1Ni0xNy42NjI4OTYgNDAuNzAxNDU2LTM5LjQyMTUzNiAwLTIxLjc1ODY0LTE4LjIzODg2LTM5LjQyMTUzNi00MC43MDE0NTYtMzkuNDIxNTM2aC0yMDMuNjM1MjczTDYzNC4xNjgzNjQgNTAyLjE2ODYxNCA1NTIuNzAxNDU2IDM0NC42NzQ0NThsMTYyLjkzMzgxNy0xNTcuNTU4MTUzdi0yNzUuNjk0NzY5YzAtMjEuNzU4NjQtMTguMjM4ODYtMzkuMzU3NTQtNDAuNzY1NDUyLTM5LjM1NzU0cy00MC43MDE0NTYgMTcuNjYyODk2LTQwLjcwMTQ1NyAzOS4zNTc1NHYyNDQuOTc2Njg5bC0xNjIuODY5ODIgMTA5LjQzMzE2MS04MS40NjY5MDgtMTU3LjQzMDE2MUgxMDQuNzI5NDU0Yy0yMi40NjI1OTYgMC00MC43MDE0NTYgMTcuNTk4OS00MC43MDE0NTYgMzkuMzU3NTRzMTguMjM4ODYgMzkuMzU3NTQgNDAuNzAxNDU2IDM5LjM1NzU0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQwIiB1bmljb2RlPSImIzU5MDE1OyIgZD0iTTEyOCA2NDBjLTM1LjQ1NiAwLTY0LTI4LjU0NC02NC02NHYtNDQ4YzAtMzUuNDU2IDI4LjU0NC02NCA2NC02NGg4MzJjMzUuNDU2IDAgNjQgMjguNTQ0IDY0IDY0VjU3NmMwIDM1LjQ1Ni0yOC41NDQgNjQtNjQgNjR6IG0wLTY0aDk2YTMyIDMyIDAgMSAwLTMyLTMybC0zMi0zMmEzMiAzMiAwIDEgMC0zMi0zMnogbTQxNiAwQzYzMi4zMiA1NzYgNzA0IDQ3NS43MTIgNzA0IDM1MlM2MzIuMzIgMTI4IDU0NCAxMjggMzg0IDIyOC4yODggMzg0IDM1MiA0NTUuNjggNTc2IDU0NCA1NzZ6IG0zMjAgMEg5NjB2LTk2YTMyIDMyIDAgMSAwLTMyIDMybC0zMiAzMmEzMiAzMiAwIDEgMC0zMiAzMnogbS0zMjAtOTZjLTIwLjY3MiAwLTM0LjE3Ni02Ljk3Ni00My42NDgtMTZoODcuMjk2Yy05LjQ3MiA5LjAyNC0yMi45NzYgMTYtNDMuNjQ4IDE2eiBtLTU2LTMyYy0yLjg4LTUuODI0LTMuOTY4LTEwLjk0NC01LjEyLTE2aDEyMi4yNGMtMS4xNTIgNS4wNTYtMi4yNCAxMC4xNzYtNS4xMiAxNnogbS04LTMydi0xNmgxMjhWNDE2eiBtMC0zMnYtMTZoMTI4VjM4NHogbTAtMzJ2LTE2aDEyOFYzNTJ6IG0wLTMybC0xNi0xNmgxMjhMNjA4IDMyMHogbS0zMi0zMnMyLjI0LTYuNTI4IDYuNTI4LTE2aDE0NS40NzJMNTc2IDI4OHogbS0yODgtMzJhMzIgMzIgMCAwIDAgMC02NGwzMi0zMmEzMiAzMiAwIDEgMCAzMi0zMkgxMjh2OTZhMzIgMzIgMCAwIDAgMzIgMzJ6IG0zMDMuMjMyIDBjMi45NDQtNS41MDQgNC44NjQtMTAuMTc2IDguNzY4LTE2aDE0NS4xNTJjNC4yMjQgOC44MzIgNi44NDggMTYgNi44NDggMTZ6IG00NjQuNzY4IDBhMzIgMzIgMCAwIDAgMzItMzJWMTI4aC05NmEzMiAzMiAwIDEgMCAzMiAzMmwzMiAzMmEzMiAzMiAwIDAgMCAwIDY0eiBtLTQ0My43NzYtMzJjNS4wNTYtNS44MjQgMTAuNTYtMTEuMjY0IDE2LjY0LTE2aDkwLjg4YzYuNCA0LjkyOCAxMi4wMzIgMTAuMzY4IDE2LjI1NiAxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00MSIgdW5pY29kZT0iJiM1OTAxNjsiIGQ9Ik01MTIgNzY4Yy0xMTcuMDU2IDAtNDA5LjYtMTQuNzItMzgwLjM1Mi00NC4yODhsMzUxLjEwNC0zNjkuMjh2LTIzNi4yODhjMC01OS4wNzItMTc1LjU1Mi0yOS41MDQtMTc1LjU1Mi0xMTguMTQ0aDQwOS42YzAgODguNjQtMTc1LjU1MiA1OS4wNzItMTc1LjU1MiAxMTguMTQ0VjM1NC40MzJsMzUxLjEwNCAzNjkuMjhDOTIxLjYgNzUzLjIxNiA2MjkuMDU2IDc2OCA1MTIgNzY4eiBtMC01OS4wNzJjMTQ2LjMwNCAwIDI3Ny45NTItMTQuNzIgMjc3Ljk1Mi0xNC43MmwtNDMuOTA0LTQ0LjM1MkgyNzcuOTUybC00My45MDQgNDQuMjg4czEzMS42NDggMTQuNzIgMjc3Ljk1MiAxNC43MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00MiIgdW5pY29kZT0iJiM1OTAxNzsiIGQ9Ik04ODUuMzEyIDU2My4yaC0xMzguNjI0VjcwNEgxOTJ2LTI4MS42YzAuODk2LTE1NS41MiAxMjUuODI0LTI4MC44MzIgMjc5LjA0LTI3OS44NzJBMjc2LjYwOCAyNzYuNjA4IDAgMCAxIDcwOC40OCAyODEuNmgxNzYuODMyQzk2MS45MiAyODEuNiAxMDI0IDM0NC42NCAxMDI0IDQyMi40cy02Mi4wOCAxNDAuOC0xMzguNjg4IDE0MC44eiBtMC0yMTEuMmgtMTQ4LjM1MmM2LjE0NCAyMi45NzYgOS40MDggNDYuNTkyIDkuNzI4IDcwLjRWNDkyLjhoMTM4LjYyNGMzOC4zMzYgMCA2OS4zNzYtMzEuNDg4IDY5LjM3Ni03MC40cy0zMS4wNC03MC40LTY5LjM3Ni03MC40eiBtLTEzOC42MjQtMzE2LjhjMC0xOS40NTYtMTUuNTUyLTM1LjItMzQuNjg4LTM1LjJIMjI2LjY4OGMtMTkuMiAwLTM0LjY4OCAxNS43NDQtMzQuNjg4IDM1LjJzMTUuNTUyIDM1LjIgMzQuNjg4IDM1LjJoNDg1LjMxMmMxOS4yIDAgMzQuNjg4LTE1Ljc0NCAzNC42ODgtMzUuMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00MyIgdW5pY29kZT0iJiM1OTAxODsiIGQ9Ik05NzIuNTQ0IDQwOS4yOGgtMTUwLjAxNnYtMjUzLjYzMmg4My4zMjh2LTY3LjY0OGg1MC4wNDh2LTY3LjY0OEg4OS4yOHY2Ny42NDhoNDkuOTg0djY3LjY0OGg5OS45NjhWNDA5LjI4SDc2LjhsMjI5LjEyIDE1Mi4xOTJIMTQzLjQ4OEw1MDUuOTIgNzk4LjA4VjgzMmgzMy4yOHYtMzMuODU2bDM4My4zNi0yMzYuNjcyaC0xNjguMTkyeiBtLTY4My4yNjQgMHYtMjAyLjg4aDgzLjMyOHYyMDIuODh6IG0yMTYuNjQgMEg0MjIuNTkydi0yMDIuODhoODMuMzI4eiBtMTMzLjMxMiAwSDU1NS45MDR2LTIwMi44OGg4My4zMjh6IG00OS45ODQtMjAyLjg4aDgzLjMyOHYyMDIuODhINjg5LjI4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ0IiB1bmljb2RlPSImIzU5MDE5OyIgZD0iTTk2IDczNmMtMTkuMiAwLTMyLTEyLjgtMzItMzJ2LTYwOGMwLTE5LjIgMTIuOC0zMiAzMi0zMnMzMiAxMi44IDMyIDMyVjE5Mmg4MzJ2LTk2YzAtMTkuMiAxMi44LTMyIDMyLTMyczMyIDEyLjggMzIgMzJ2MTI4YzAgMTkuMi0xMi44IDMyLTMyIDMySDEyOFY3MDRjMCAxOS4yLTEyLjggMzItMzIgMzJ6IG0xOTItMzJDMjM2LjggNzA0IDE5MiA2NTkuMiAxOTIgNjA4UzIzNi44IDUxMiAyODggNTEyIDM4NCA1NTYuOCAzODQgNjA4IDMzOS4yIDcwNCAyODggNzA0ek01MTIgNjQwQzQxNiA2NDAgNDE2IDU0NCA0MTYgNTQ0VjQ0OGgtMTkyYy0xOS4yIDAtMzItMTIuOC0zMi0zMnYtNjRjMC0xOS4yIDEyLjgtMzIgMzItMzJIMTAyNFY0ODBDMTAyNCA2NDAgODY0IDY0MCA4NjQgNjQweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ1IiB1bmljb2RlPSImIzU5MDIwOyIgZD0iTTg5NC4yNzIgMzQuODhjLTQwLjk2LTIwLjkyOC05NS41NTItNi45NzYtMTIyLjg4IDM0Ljk0NGwtNzUuMDcyIDk3LjcyOEgzMjcuNjhsLTc1LjA3Mi05Ny43MjhjLTM0LjE3Ni00OC44OTYtOTUuNjE2LTU1Ljg3Mi0xNDMuMzYtMjAuOTI4LTM0LjE3NiAyNy45MDQtNDcuODA4IDY5Ljc2LTQwLjk2IDEwNC43MDRsNDcuNzQ0IDI1OC4zMDRDMTI5LjcyOCA0OTUuNzQ0IDIwNC44IDU1OC41MjggMjg2LjcyIDU1OC41MjhoMTkxLjE2OFY2NjMuMjk2QzQ3Ny44ODggNzE5LjEwNCA1MTguODQ4IDc2OCA1NzMuNDQgNzY4aDIxMS42NDhjMjAuNDggMCAzNC4xMTItMTMuOTUyIDM0LjExMi0zNC44OCAwLTIwLjk5Mi0xMy42MzItMzQuOTQ0LTM0LjExMi0zNC45NDRoLTIwNC44Yy0yMC40OCAwLTM0LjE3Ni0xMy45NTItMzQuMTc2LTI3LjkwNHYtMTExLjc0NGgxOTEuMTY4YzgxLjkyIDAgMTU2Ljk5Mi02Mi44NDggMTcwLjY4OC0xNDYuNTZsNDcuNzQ0LTI1OC4zNjhjNi44NDgtNDguODk2LTEzLjYzMi05Ny43MjgtNjEuNDQtMTE4Ljcyek00MDkuNiAzODRjMCA1NS44NzItNDcuODA4IDEwNC43MDQtMTAyLjQgMTA0LjcwNFMyMDQuOCA0MzkuODcyIDIwNC44IDM4NHM0Ny44MDgtMTA0LjcwNCAxMDIuNC0xMDQuNzA0UzQwOS42IDMyOC4xMjggNDA5LjYgMzg0eiBtNDA5LjYgMGMwIDIwLjkyOC0xMy42MzIgMzQuODgtMzQuMTEyIDM0Ljg4aC0zNC4xNzZ2MzQuOTQ0YzAgMjAuOTI4LTEzLjYzMiAzNC44OC0zNC4xMTIgMzQuODhzLTM0LjExMi0xMy45NTItMzQuMTEyLTM0Ljg4di0zNC45NDRoLTM0LjE3NmMtMjAuNDggMC0zNC4xMTItMTMuOTUyLTM0LjExMi0zNC44OHMxMy42MzItMzQuODggMzQuMTEyLTM0Ljg4aDM0LjE3NnYtMzQuOTQ0YzAtMjAuOTI4IDEzLjYzMi0zNC44OCAzNC4xMTItMzQuODhzMzQuMTEyIDEzLjk1MiAzNC4xMTIgMzQuODh2MzQuOTQ0aDM0LjE3NmMyMC40OCAwIDM0LjExMiAxMy45NTIgMzQuMTEyIDM0Ljg4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ2IiB1bmljb2RlPSImIzU5MDIxOyIgZD0iTTM0MS4xMiA3NjhINjR2LTY4NS4zMTJoMjU5LjA3MmM0Ni45MTIgMCAxNDguMDMyLTI3LjA3MiAxNDguMDMyLTgyLjY4OFY2NDMuOTY4QzQ3MS4xMDQgNjkwLjExMiA0MDAuMTkyIDc2OCAzNDEuMTIgNzY4eiBtMzQxLjUwNCAwYy01OS4xMzYgMC0xMzAuMDQ4LTc3Ljg4OC0xMzAuMDQ4LTEyNC4wMzJWMGMwIDU1LjYxNiAxMDEuMTIgODIuNjg4IDE0Ny45NjggODIuNjg4aDI1OS4xMzZWNzY4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTQ3IiB1bmljb2RlPSImIzU5MDIyOyIgZD0iTTEwMjQgMzc0LjR2LTE2Ni40YzAtMjIuOTc2LTE3LjkyLTQxLjYtNDAtNDEuNnMtNDAgMTguNjI0LTQwIDQxLjZjMCAwIDQuOCA0MS42LTgwIDQxLjZoLTgwdi0yMDhjMC0yMi45NzYtMTcuOTItNDEuNi00MC00MS42aC02NDBBNDAuODMyIDQwLjgzMiAwIDAgMCA2NCA0MS42djMzMi44YzAgMjIuOTc2IDE3LjkyIDQxLjYgNDAgNDEuNmg2NDBjMjIuMDggMCA0MC0xOC42MjQgNDAtNDEuNnYtNDEuNmg4MGM4NC44IDAgODAgNDEuNiA4MCA0MS42IDAgMjIuOTc2IDE3LjkyIDQxLjYgNDAgNDEuNnM0MC0xOC42MjQgNDAtNDEuNnpNMjI0IDc0OC44QzEzNS42OCA3NDguOCA2NCA2NzQuMzA0IDY0IDU4Mi40czcxLjY4LTE2Ni40IDE2MC0xNjYuNFMzODQgNDkwLjQ5NiAzODQgNTgyLjQgMzEyLjMyIDc0OC44IDIyNCA3NDguOHogbTAtMjQ5LjZjLTQ0LjE2IDAtODAgMzcuMjQ4LTgwIDgzLjJzMzUuODQgODMuMiA4MCA4My4yIDgwLTM3LjI0OCA4MC04My4yLTM1Ljg0LTgzLjItODAtODMuMnpNNTg0IDgzMkM0NzMuNTM2IDgzMiAzODQgNzM4Ljg4IDM4NCA2MjRTNDczLjYgNDE2IDU4NCA0MTZzMjAwIDkzLjEyIDIwMCAyMDhTNjk0LjQgODMyIDU4NCA4MzJ6IG0wLTMzMi44Yy02Ni4zMDQgMC0xMjAgNTUuODcyLTEyMCAxMjQuOFM1MTcuNzYgNzQ4LjggNTg0IDc0OC44IDcwNCA2OTIuOTI4IDcwNCA2MjQgNjUwLjI0IDQ5OS4yIDU4NCA0OTkuMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00OCIgdW5pY29kZT0iJiM1OTAyMzsiIGQ9Ik04OTEuOTA0IDc2MGEyMjUuOTg0IDIyNS45ODQgMCAwIDEtMzg2LjQ5Ni0xNDguNjA4bDIzNy42OTYtMjM3LjY5NmEyMjUuOTg0IDIyNS45ODQgMCAwIDEgMTQ4LjggMzg2LjMwNHpNMzMwLjExMiAzNTguOTEyTDE2OS42IDE5OC40YTc1LjY0OCA3NS42NDggMCAwIDEgMC0xMDYuOTQ0bDUzLjUwNC01My41MDRjMjkuNTA0LTI5LjUwNCA3Ny40NC0yOS41MDQgMTA2Ljg4IDBMNDkwLjQ5NiAxOTguNGwxNjAuNTEyIDE2MC41MTItMTYwLjQ0OCAxNjAuMzg0eiBtNTYuMDY0LTE1Ny44ODhsLTUzLjUwNCA1My41MDQgMTU3LjgyNCAxNTcuODI0IDUzLjUwNC01My40NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS00OSIgdW5pY29kZT0iJiM1OTAyNDsiIGQ9Ik05NTEuMDQgNDAwLjQ0OEwxNTIuMDY0IDgzMC4yMDhjLTExLjUyIDUuNzYtMjUuNi0zLjMyOC0yMy45MzYtMTUuODA4bDYxLjk1Mi03NDIuMzM2YzAuODMyLTExLjY0OCAxMi40MTYtMTguMzA0IDIzLjE2OC0xNC4wOGwyNTcuNzI4IDEwOC44IDE0MS4zMTItMTYxLjIxNmM5LjA4OC05Ljk4NCAyNC43NjgtNS43NiAyOC4wOTYgNi42NTZsNjcuNzEyIDI1NS4yMzIgMjQyLjk0NCAxMDMuMDRhMTYuOTYgMTYuOTYgMCAwIDEgMCAyOS45NTJ6IG0tMzM4Ljc1Mi0zMTcuNTY4bC03NC4zNjggMTMyLjk5Mi0zODAuMDMyIDU5MC4yMDggNTAzLjkzNi01MjMuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUwIiB1bmljb2RlPSImIzU5MDI1OyIgZD0iTTk2MCAyMTZ2ODBsLTM2Ni41OTIgMjQwVjgxNlM1OTMuNDA4IDg5NiA1MTIgODk2QzQzMC41MjggODk2IDQzMC41MjggODE2IDQzMC41MjggODE2di0yODBMNjQgMjk2di04MGwzNjYuNTI4IDEyMC4wNjR2LTIyNC4wNjRsLTEyMi4xNzYtOTZWLTY0TDUxMiAxNiA3MTUuNjQ4LTY0djgwbC0xMjIuMjQgOTZ2MjI0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUxIiB1bmljb2RlPSImIzU5MDI2OyIgZD0iTTk4MC43MzYgNTI0LjA5NnYtMTcxLjcxMmwzNS42NDgtMzYuMDk2LTc0LjM2OC03OC40NjQtNzUuMjY0IDc2LjE2IDUxLjU4NCA0Ny40ODhWNDk2Ljk2QzY5OS41MiA0MDUuNTY4IDYyOS41MDQgMzc3LjE1MiA1ODAuOTkyIDM1NS4wMDhzLTgzLjQ1Ni0yMi4wOC0xMzEuNTg0LTMuNzEyQzQwMS4zNDQgMzY5LjY2NCAxNzIuMjg4IDQ1NC40IDU4LjU2IDUwOS41NjhjLTc1Ljg0IDM2LjgtODAuNzY4IDYwLjE2IDEuMjggOTEuMzI4IDEwNy4xMzYgNDEuMjggMjg0LjE2IDEwNy4yNjQgMzc4LjA0OCAxNDMuMzYgNTUuNTUyIDIyLjc4NCA4NC45MjggMzUuMiAxMzUuODcyIDkuMjE2IDkxLjA3Mi0zOC4wOCAyOTkuMTM2LTExNy4xODQgNDAyLjU2LTE2MC41MTIgOTAuMDQ4LTM5LjgwOCAyOS41MDQtNTIuOTI4IDQuNDE2LTY4Ljg2NHpNNTkxLjU1MiAyODcuMDRjNTIuODY0IDIyLjE0NCAxMjQuMTYgNTguNjg4IDIwMS45MiA5Mi40OHYtMjcxLjEwNFM2OTIuOTI4IDAgNTE2LjE2IDBjLTE5MC40IDAtMjkzLjI0OCAxMDguNDE2LTI5My4yNDggMTA4LjQxNlYzNjEuNDcyYzU5Ljk2OC0yNC44MzIgMTI3LjM2LTQ2LjA4IDIwOC45Ni03NC40MzIgNTAuMjQtMTguMTEyIDExNC4wNDgtMjQuMzg0IDE1OS42OCAweiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTUyIiB1bmljb2RlPSImIzU5MDI3OyIgZD0iTTc3Ny4zNDQgNjUwLjQ5Nkg4NzYuOGM0NC44NjQtMC4wNjQgODEuMjgtMzUuMDA4IDgxLjUzNi03OC4yMDhMOTYwIDE0Mi4wMTZjMC4xMjgtMjAuNzM2LTguMzg0LTQwLjY0LTIzLjY4LTU1LjI5NnMtMzUuODQtMjIuODQ4LTU3LjQwOC0yMi43MmwtNzMxLjY0OCAxLjY2NGMtNDQuOTkyIDAuMTI4LTgxLjQwOCAzNS4yLTgxLjY2NCA3OC40TDY0IDU3Mi4yMjRjLTAuMTI4IDIwLjczNiA4LjM4NCA0MC42NCAyMy42MTYgNTUuMzZzMzUuODQgMjIuOTEyIDU3LjM0NCAyMi45MTJoMTI0LjI4OGEzNi41NDQgMzYuNTQ0IDAgMCAxIDI5LjYzMiAxNy42bDMzLjI4IDYzLjYxNmM5LjkyIDE5LjIgMzYuMjg4IDM0Ljk0NCA1OC42ODggMzUuMDcyTDY1NC43MiA3NjhjMjIuNTI4IDAuMTI4IDQ4Ljc2OC0xNS40ODggNTguODgtMzQuODE2bDM0LjI0LTY1LjM0NGM1LjA1Ni05LjYgMTguMjQtMTcuMzQ0IDI5LjQ0LTE3LjM0NHogbS0yNjYuNDMyLTM4Ljg0OGMtMTM0Ljc4NCAwLTI0My45MDQtMTA1LjA4OC0yNDMuOTA0LTIzNC43NTIgMC0xMjkuNzI4IDEwOS4xMi0yMzQuODggMjQzLjg0LTIzNC44OCAxMzQuNzg0IDAgMjQzLjk2OCAxMDUuMTUyIDI0My45NjggMjM0Ljg4IDAgMTI5LjY2NC0xMDkuMTg0IDIzNC43NTItMjQzLjkwNCAyMzQuNzUyeiBtLTUuMTItMzgxLjUwNGM4MS40MDggMCAxNDcuMzkyIDYzLjQ4OCAxNDcuMzkyIDE0MS44MjRhMTkuOTY4IDE5Ljk2OCAwIDAgMS0yMC4zNTIgMTkuNTg0IDE5Ljk2OCAxOS45NjggMCAwIDEtMjAuMjg4LTE5LjU4NGMwLTU2LjcwNC00Ny44MDgtMTAyLjcyLTEwNi43NTItMTAyLjcyYTE5Ljk2OCAxOS45NjggMCAwIDEtMjAuMjg4LTE5LjU4NGMwLTEwLjgxNiA5LjA4OC0xOS41MiAyMC4yODgtMTkuNTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTMiIHVuaWNvZGU9IiYjNTkwMjg7IiBkPSJNNTEyIDc2OGEzODQgMzg0IDAgMSAxIDAtNzY4QTM4NCAzODQgMCAwIDEgNTEyIDc2OHogbTAtNjgyLjY4OGEyOTguNjg4IDI5OC42ODggMCAxIDAgMCA1OTcuMzc2IDI5OC42ODggMjk4LjY4OCAwIDAgMCAwLTU5Ny4zNzZ6IG0wIDQ2OS4zMTJhMTcwLjY4OCAxNzAuNjg4IDAgMSAwIDAtMzQxLjMxMiAxNzAuNjg4IDE3MC42ODggMCAwIDAgMCAzNDEuMzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9IlNoYXBlLTU0IiB1bmljb2RlPSImIzU5MDI5OyIgZD0iTTUxNy40NCA2OTkuMDcyYy04NC4wOTYgMC0xNDkuNTY4LTk1LjEwNC0xNzUuMTA0LTEyNS40NGEzMy43OTIgMzMuNzkyIDAgMCAxLTcuNTUyLTIyLjA4di0zMDMuMjMyYTMwLjMzNiAzMC4zMzYgMCAwIDEgNDkuNi0yNC44MzIgMjA2LjcyIDIwNi43MiAwIDAgMCAxMzMuMDU2IDgwLjY0Yzk3LjE1MiAwIDEzNC40LTg3LjQ4OCAyMzUuNzEyLTg3LjQ4OGEzNjMuOTY4IDM2My45NjggMCAwIDEgMTg4LjE2IDc1LjA3MmM4Ljc2OCA2LjQ2NCAxMy44ODggMTYuNzA0IDEzLjc2IDI3LjU4NFY2NjguMTZhMzAuMzM2IDMwLjMzNiAwIDAgMS00Mi43NTIgMzAuOTc2IDM5Ni4zNTIgMzk2LjM1MiAwIDAgMC0xNTkuMTY4LTczLjAyNGMtMTAxLjMxMi0xLjQwOC0xMzQuNCA3My4wMjQtMjM1LjcxMiA3My4wMjR6IG0tMjg2LjA4LTY4LjkyOGE2OC45MjggNjguOTI4IDAgMSAwIDAgMTM3Ljg1NiA2OC45MjggNjguOTI4IDAgMCAwIDAtMTM3Ljg1NnogbTM0LjQ5Ni02OC45MjhWLTkyLjE2YTM0LjQ5NiAzNC40OTYgMCAwIDAtNjguOTI4IDBWNTYxLjI4YTM0LjQ5NiAzNC40OTYgMCAwIDAgNjguOTI4IDB6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTUiIHVuaWNvZGU9IiYjNTkwMzA7IiBkPSJNNDc0LjI0MTA2MiA3NjguNjc4NzgxaC0xMzQuMzk2MjJhMzEuNzQzMTA3IDMxLjc0MzEwNyAwIDAgMC0yMS40MzkzOTcgNi40NjM4MTggMzQuMjM5MDM3IDM0LjIzOTAzNyAwIDAgMC0xMC40MzE3MDcgMTYuNDQ3NTM4Yy0xLjk4Mzk0NCA2LjU5MTgxNS0zLjAwNzkxNSAxNC4wNzk2MDQtMy4wMDc5MTUgMjIuMzk5MzdzMC42Mzk5ODIgMTYuMDYzNTQ4IDIuMDQ3OTQyIDIzLjM1OTM0M2MwLjYzOTk4MiA3LjI5NTc5NSAxLjkxOTk0NiAxNS4yOTU1NyAzLjk2Nzg4OSAyMy44NzEzMjhBNzMuNTk3OTMgNzMuNTk3OTMgMCAwIDAgMzE5LjM2NTQxOCA4ODMuMTcxNTYxYTI2LjU1OTI1MyAyNi41NTkyNTMgMCAwIDAgMTQuMzk5NTk1IDExLjk2NzY2M2M2LjAxNTgzMSAxLjk4Mzk0NCAxMy4zMTE2MjYgMC4zMTk5OTEgMjEuOTUxMzgyLTQuOTkxODU5IDkuOTE5NzIxLTUuOTUxODMzIDIxLjE4MzQwNC0xMi40MTU2NTEgMzMuNzkxMDUtMTkuMzkxNDU1IDEyLjYwNzY0NS02Ljk3NTgwNCAyNC44OTUzLTEzLjk1MTYwOCAzNi44NjI5NjMtMjAuOTI3NDExIDExLjkwMzY2NS02LjkxMTgwNiAyMy4wMzkzNTItMTMuMjQ3NjI3IDMzLjI3OTA2NC0xOC44Nzk0NjkgMTAuMzAzNzEtNS42MzE4NDIgMTguMTExNDkxLTEwLjExMTcxNiAyMy40MjMzNDItMTMuNDM5NjIyIDYuNjU1ODEzLTQuNjcxODY5IDExLjU4MzY3NC05Ljc5MTcyNSAxNC45MTE1OC0xNS40MjM1NjdzNC42NzE4NjktMTAuOTQzNjkyIDMuOTY3ODg5LTE1LjkzNTU1MS0zLjI2MzkwOC05LjA4Nzc0NC03LjkzNTc3Ny0xMi40MTU2NTFhMzMuOTE5MDQ2IDMzLjkxOTA0NiAwIDAgMC0xOS44Mzk0NDItNC45OTE4NnogbTc3LjU2NTgxOCAxLjAyMzk3MWgxMzMuMzcyMjQ5YTMxLjc0MzEwNyAzMS43NDMxMDcgMCAwIDEgMjEuMzc1Mzk5IDYuMzk5ODIgMzQuMjM5MDM3IDM0LjIzOTAzNyAwIDAgMSAxMC40MzE3MDcgMTYuNDQ3NTM4YzIuMDQ3OTQyIDYuNjU1ODEzIDMuMDA3OTE1IDE0LjA3OTYwNCAzLjAwNzkxNSAyMi4zOTkzN3MtMC4zMTk5OTEgMTYuMTI3NTQ2LTAuOTU5OTczIDIzLjQyMzM0MWExMzYxLjg4MTY5NyAxMzYxLjg4MTY5NyAwIDAgMS00LjQ3OTg3NCAyMy4zNTkzNDNBNjUuMjc4MTY0IDY1LjI3ODE2NCAwIDAgMSA3MDYuNTU0NTI4IDg4My4xNzE1NjFhMjYuNTU5MjUzIDI2LjU1OTI1MyAwIDAgMS0xNC4zOTk1OTUgMTEuOTY3NjYzYy02LjAxNTgzMSAxLjk4Mzk0NC0xMy4zMTE2MjYgMC42Mzk5ODItMjEuODg3Mzg0LTMuOTY3ODg4LTkuOTgzNzE5LTYuMDE1ODMxLTIxLjI0NzQwMi0xMi40Nzk2NDktMzMuOTE5MDQ2LTE5LjM5MTQ1NXMtMjQuOTU5Mjk4LTEzLjk1MTYwOC0zNy4yNDY5NTMtMjAuOTI3NDExYy0xMi4yODc2NTQtNi45NzU4MDQtMjMuNTUxMzM4LTEzLjI0NzYyNy0zMy44NTUwNDgtMTguODc5NDY5LTEwLjIzOTcxMi01LjY5NTg0LTE3LjcyNzUwMS0xMC4xNzU3MTQtMjIuMzk5MzctMTMuNDM5NjIyLTcuMjk1Nzk1LTQuNjcxODY5LTEyLjYwNzY0NS05Ljc5MTcyNS0xNS45MzU1NTEtMTUuNDIzNTY2cy00LjYwNzg3LTEwLjk0MzY5Mi0zLjk2Nzg4OS0xNS45OTk1NSAzLjMyNzkwNi05LjA4Nzc0NCA3LjkzNTc3Ny0xMi40MTU2NTEgMTEuNjQ3NjcyLTQuOTI3ODYxIDIwLjkyNzQxMS00LjkyNzg2MnpNNDYwLjI4OTQ1NCA3MDMuOTc2NjAxaC0yODguNjMxODgyYy0yMS4yNDc0MDIgMC0zNS4wMDcwMTUtMy40NTU5MDMtNDEuMzQyODM3LTEwLjQzMTcwNy02LjI3MTgyNC02Ljk3NTgwNC05LjQwNzczNS0xOC4wNDc0OTItOS40MDc3MzYtMzMuMjc5MDY0di04Ny42Nzc1MzRjMC0xNi41NzU1MzQgMy40NTU5MDMtMjguNzk5MTkgMTAuNDMxNzA3LTM2Ljc5ODk2NSA2Ljk3NTgwNC03LjkzNTc3NyAyMC43MzU0MTctMTEuOTAzNjY1IDQxLjI3ODgzOS0xMS45MDM2NjVoMjg3LjYwNzkxMXogbTEwOC40MTI5NTEgMGgyODQuNjYzOTk0YzIxLjI0NzQwMiAwIDM1LjY0Njk5Ny00LjE1OTg4MyA0My4yNjI3ODMtMTIuNDE1NjUxIDcuNjc5Nzg0LTguMzE5NzY2IDExLjUxOTY3Ni0yMC4wOTU0MzUgMTEuNTE5Njc2LTM1LjMyNzAwN3YtODUuNTY1NTkzYzAtMTUuOTk5NTUtMy41MTk5MDEtMjcuNzExMjIxLTEwLjQ5NTcwNC0zNS4zOTEwMDUtNi45NzU4MDQtNy42MTU3ODYtMjAuNzM1NDE3LTExLjM5MTY4LTQxLjI3ODg0LTExLjM5MTY3OUg1NjguNzAyNDA1ek00NjAuMjI1NDU2IDQ3MS4wODcxNTFIMTU0LjY5ODA0OXYtMzc2LjE4MTQyYzAtMzMuNzkxMDUgOS41OTk3My02MC4wMzAzMTIgMjguODYzMTg4LTc4LjU4OTc5IDE5LjI2MzQ1OC0xOC41NTk0NzggNDkuMDg2NjE5LTI3LjkwMzIxNSA4OS41OTc0OC0yNy45MDMyMTVINDYwLjE2MTQ1OHogbTEwOC40NzY5NDkgMGgzMDQuNTY3NDM0di0zNzMuMTczNTA1Yy0wLjYzOTk4Mi0zMy44NTUwNDgtMTAuMjM5NzEyLTYwLjU0MjI5Ny0yOC44NjMxODgtODAuMTI1NzQ2LTE4LjU1OTQ3OC0xOS41ODM0NDktNDguMTI2NjQ2LTI5LjM3NTE3NC04OC41NzM1MDktMjkuMzc1MTc0SDU2OC43MDI0MDV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU2hhcGUtNTYiIHVuaWNvZGU9IiYjNTkwMzE7IiBkPSJNOTE1LjIgNzY1LjMxMmEyOS40NCAyOS40NCAwIDAgMS0yMS44ODggMjEuOTUyQTQ5My4xODQgNDkzLjE4NCAwIDAgMSAzODQuNzA0IDU5OS4wNGEyOS43NiAyOS43NiAwIDAgMC0xNi45Ni0xMS4zMjggMzg1LjYgMzg1LjYgMCAwIDEtMTc5Ljk2OC0xMDIuMjcyIDM5NC4wNDggMzk0LjA0OCAwIDAgMS02MC40MTYtNzcuNjk2Yy0xNC4yNzItMjQuMDY0IDEwLjExMi01Mi40OCAzNi4zNTItNDIuNzUyYTM4MS41MDQgMzgxLjUwNCAwIDAgMCAxMzIuMTYgMjIuODQ4Yy0wLjY0LTMuOTA0LTEuNTM2LTcuODA4LTIuMTEyLTExLjcxMkExOTg3LjMyOCAxOTg3LjMyOCAwIDAgMSAzOTQuODggMjY2Ljg4YTE5ODEuOTUyIDE5ODEuOTUyIDAgMCAxIDEwOS4yNDgtMTAxLjEyYzMuODQgMC41MTIgNy44MDggMS40MDggMTEuNzEyIDIuMDQ4IDAtNDYuMDgtNy41NTItOTAuNzUyLTIyLjg0OC0xMzIuMTYtOS42NjQtMjYuMjQgMTguNjg4LTUwLjYyNCA0Mi43NTItMzYuMzUyIDI4LjI4OCAxNi43NjggNTQuNCAzNy4xMiA3Ny42OTYgNjAuNDE2YTM4NS42NjQgMzg1LjY2NCAwIDAgMSAxMDIuMjcyIDE3OS45NjggMjkuODI0IDI5LjgyNCAwIDAgMCAxMS4yNjQgMTYuOTYgNDkzLjI0OCA0OTMuMjQ4IDAgMCAxIDE4OC4yODggNTA4LjYwOHogbS0yMDAuOTYtMzIwLjEyOGE5OS43NzYgOTkuNzc2IDAgMSAwLTE0MS4wNTYgMTQxLjEyIDk5Ljc3NiA5OS43NzYgMCAwIDAgMTQxLjEyLTE0MS4xMnpNMjI0LjU3NiAyMjguNjcyYy0zMC4yNzItMzAuMjA4LTE1OC40NjQtMjE3LjYtMTIxLjk4NC0yNTQuMDggMzYuNDgtMzYuNDggMjIzLjg3MiA5MS43MTIgMjU0LjA4IDEyMS45MiAzMC4yNzIgMzAuMjcyIDI1LjIxNiA4NC4zNTItMTEuMzI4IDEyMC44MzItMzYuNDggMzYuNDgtOTAuNTYgNDEuNi0xMjAuNzY4IDExLjMyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01NyIgdW5pY29kZT0iJiM1OTAzMjsiIGQ9Ik0zMDUuMjggODMyQzIyNC42NCA4MzIgMTI4IDc4Ny41ODQgMTI4IDY2Ny45NjhWMTE1LjJzMC01OS43MTIgNTkuMDcyLTU5LjcxMnYtNTkuNzc2czAtNTkuNzEyIDU5LjA3Mi01OS43MTIgNTkuMDcyIDU5LjcxMiA1OS4wNzIgNTkuNzEydjU5Ljc3Nmg0MTMuNTY4di01OS43NzZzMC01OS43MTIgNTkuMDcyLTU5LjcxMiA1OS4wNzIgNTkuNzEyIDU5LjA3MiA1OS43MTJ2NTkuNzc2czU5LjA3MiAwIDU5LjA3MiA1OS43MTJWNjY3Ljk2OEM4OTYgNzkwLjIwOCA4MjMuMDQgODMyIDc0Mi40IDgzMnpNMzIwIDc0Mi40aDM4NGM4LjE5MiAwIDE0LjcyLTYuNjU2IDE0LjcyLTE0LjkxMiAwLTguMzItNi41MjgtMTQuOTc2LTE0LjcyLTE0Ljk3NkgzMjBhMTQuODQ4IDE0Ljg0OCAwIDAgMC0xNC43MiAxNC45NzZjMCA4LjI1NiA2LjUyOCAxNC45MTIgMTQuNzIgMTQuOTEyek0yNDYuMTQ0IDY1Mi44aDUzMS43MTJjNTkuMDcyIDAgNTkuMDcyLTU3LjcyOCA1OS4wNzItNTcuNzI4di0xODEuMTg0czAtNTkuNzc2LTU5LjA3Mi01OS43NzZIMjQ2LjE0NGMtNTkuMDcyIDAtNTkuMDcyIDU5Ljc3Ni01OS4wNzIgNTkuNzc2djE3OS4yczAgNTkuNzEyIDU5LjA3MiA1OS43MTJ6IG0wLTQxOC4xMTJjMzIuNjQgMCA1OS4wNzItMjYuNzUyIDU5LjA3Mi01OS43NzZzLTI2LjQzMi01OS43MTItNTkuMDcyLTU5LjcxMi01OS4wNzIgMjYuNzUyLTU5LjA3MiA1OS43MTIgMjYuNDMyIDU5Ljc3NiA1OS4wNzIgNTkuNzc2eiBtNTMxLjcxMiAwYzMyLjY0IDAgNTkuMDcyLTI2Ljc1MiA1OS4wNzItNTkuNzc2cy0yNi40MzItNTkuNzEyLTU5LjA3Mi01OS43MTItNTkuMDcyIDI2Ljc1Mi01OS4wNzIgNTkuNzEyIDI2LjQzMiA1OS43NzYgNTkuMDcyIDU5Ljc3NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01OCIgdW5pY29kZT0iJiM1OTAzMzsiIGQ9Ik05NjAgNDE4Ljg4YTEwNC40NDggMTA0LjQ0OCAwIDAgMS03OS4yMzIgMTAxLjI0OGwtOTUuODA4IDIyNi4yNEEzNC40MzIgMzQuNDMyIDAgMCAxIDc1My4yMTYgNzY4SDI3MC43ODRhMzQuNDMyIDM0LjQzMiAwIDAgMS0zMC4zMzYtMTkuNTJMMTQzLjIzMiA1MjAuODMyQTEwNC40NDggMTA0LjQ0OCAwIDAgMSA2NCA0MTguODh2LTI0NC4zNTJoNjguOTI4di02OS43NmMwLTM4LjU5MiAzMC44NDgtNjkuODg4IDY4LjkyOC02OS44ODhzNjguOTI4IDMxLjI5NiA2OC45MjggNjkuODI0djY5LjgyNGg0ODIuNDMydi02OS43NmMwLTM4LjU5MiAzMC44NDgtNjkuODg4IDY4LjkyOC02OS44ODhzNjguOTI4IDMxLjI5NiA2OC45MjggNjkuODI0djY5LjgyNEg5NjB6TTI5MS40NTYgNjk4LjI0aDQ0MS4wODhsNzIuMzItMTc0LjUyOEgyMTkuMTM2eiBtLTg5LjYtNDE4Ljg4YTY5LjM3NiA2OS4zNzYgMCAwIDAtNjguOTI4IDY5Ljc2YzAgMzguNTkyIDMwLjg0OCA2OS44MjQgNjguOTI4IDY5LjgyNHM2OC45MjgtMzEuMjMyIDY4LjkyOC02OS43NmMwLTM4LjU5Mi0zMC44NDgtNjkuODI0LTY4LjkyOC02OS44MjR6IG02MjAuMjg4IDBhNjkuMzc2IDY5LjM3NiAwIDAgMC02OC45MjggNjkuNzZjMCAzOC41OTIgMzAuODQ4IDY5LjgyNCA2OC45MjggNjkuODI0czY4LjkyOC0zMS4yMzIgNjguOTI4LTY5Ljc2YzAtMzguNTkyLTMwLjg0OC02OS44MjQtNjguOTI4LTY5LjgyNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJTaGFwZS01OSIgdW5pY29kZT0iJiM1OTAzNDsiIGQ9Ik0yNTYgODMyYTY0IDY0IDAgMCAxLTY0LTY0di01MTJhNjQgNjQgMCAwIDEgNjQtNjRoNTc2YTY0IDY0IDAgMCAxIDY0IDY0Vjc2OGE2NCA2NCAwIDAgMS02NCA2NHogbTE3Ni0zMmgyMjQuNjRhMTYgMTYgMCAxIDAgMC0zMkg0MzJhMTYgMTYgMCAxIDAgMCAzMnpNMjg4IDcwNEg1MTJ2LTI1NkgyODhhMzIgMzIgMCAwIDAtMzIgMzJ2MTkyYTMyIDMyIDAgMCAwIDMyIDMyek01NzYgNzA0aDIyNGEzMiAzMiAwIDAgMCAzMi0zMnYtMTkyYTMyIDMyIDAgMCAwLTMyLTMySDU3NnpNMzg0IDM4NGE2NCA2NCAwIDEgMCAwLTEyOCA2NCA2NCAwIDAgMCAwIDEyOHogbTMyMCAwYTY0IDY0IDAgMSAwIDAtMTI4IDY0IDY0IDAgMCAwIDAgMTI4eiBtMjguNDgtMjU1LjYxNmEzMi4yNTYgMzIuMjU2IDAgMCAxLTI3LjItNDMuMjY0bDEwLjg4LTIxLjEySDM3MS44NGw4LjMyIDE3LjI4YTMyIDMyIDAgMCAxLTU4LjI0IDI2LjI0bC02NC0xMjhhMzEuMTY4IDMxLjE2OCAwIDAgMS0xLjkyLTExLjUyIDMyIDMyIDAgMCAxIDMyLTMyIDMxLjM2IDMxLjM2IDAgMCAxIDI3LjUyIDE2LjY0djMuMkgzMjBsMTkuODQgNDQuMTZoNDA4LjMybDE5Ljg0LTQ0LjE2di0zLjJhMzEuMzYgMzEuMzYgMCAwIDEgMjcuNTItMTYuNjQgMzIgMzIgMCAwIDEgMzIgMzIgMzEuMzYgMzEuMzYgMCAwIDEgMCAxNS4zNmwtNjQgMTI4YTMyIDMyIDAgMCAxLTMxLjA0IDE3LjAyNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJPdmFsIiB1bmljb2RlPSImIzU5MDM1OyIgZD0iTTUxMiAzODRtLTMyMCAwYTMyMCAzMjAgMCAxIDEgNjQwIDAgMzIwIDMyMCAwIDEgMS02NDAgMFoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJSZWN0YW5nbGUiIHVuaWNvZGU9IiYjNTkwMzY7IiBkPSJNMTkyIDcwNGg2NDB2LTY0MEgxOTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iU3RhciIgdW5pY29kZT0iJiM1OTAzNzsiIGQ9Ik01MTIgMTYwbC0yNjMuMjk2LTEzOC40MzIgNTAuMjQgMjkzLjE4NC0yMTIuOTkyIDIwNy42OCAyOTQuNCA0Mi44MTZMNTEyIDgzMmwxMzEuNjQ4LTI2Ni43NTIgMjk0LjQtNDIuODE2LTIxMi45OTItMjA3LjY4IDUwLjI0LTI5My4xODR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iVHJpYW5nbGUiIHVuaWNvZGU9IiYjNTkwMzg7IiBkPSJNNTEyIDcwNGwzODQtNjQwSDEyOHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyZXN0b3JlZGVmYXVsdCIgdW5pY29kZT0iJiM1OTA0MDsiIGQ9Ik04ODAuODY3NTU2IDMyNS40MDQ0NDRhMzcyLjUwODQ0NCAzNzIuNTA4NDQ0IDAgMCAwLTE5OC43MTI4ODktMTk2Ljc3ODY2NmMtNDYuMDgtMTkuMzQyMjIyLTk0LjcyLTI5LjA3MDIyMi0xNDUuNDY0ODg5LTI5LjA3MDIyMnY3MS43MzY4ODhjMTY1LjcxNzMzMyAwIDMwMC45NDIyMjIgMTMzLjY4ODg4OSAzMDAuOTQyMjIyIDI5OC4wNDA4ODlzLTEzNC44MjY2NjcgMjk4LjA0MDg4OS0zMDAuNzE0NjY3IDI5OC4wNDA4ODljLTE2NS44ODggMC0zMDAuODg1MzMzLTEzMy42ODg4ODktMzAwLjg4NTMzMy0yOTguMDQwODg5IDAtMzEuNDAyNjY3IDQuODM1NTU2LTYyLjAwODg4OSAxNC4zOTI4ODktOTEuMjQ5Nzc3bDY4LjI2NjY2NyAzNy40MzI4ODgtMi4xMDQ4ODktMTE1Ljk5NjQ0NC0yLjEwNDg4OS0xMTUuOTk2NDQ0LTEwMC4zNTIgNTkuNzkwMjIyTDExMy43Nzc3NzggMzAzLjIxNzc3OGw3Mi4yNDg4ODkgMzkuNTk0NjY2QTM2NC4yMDI2NjcgMzY0LjIwMjY2NyAwIDAgMCAxNjMuNjY5MzMzIDQ2OS4zMzMzMzNjMCA0OS44OTE1NTYgOS44OTg2NjcgOTguMzYwODg5IDI5LjM1NDY2NyAxNDMuOTI4ODg5QTM3Mi4yMjQgMzcyLjIyNCAwIDAgMCAzOTEuNjIzMTExIDgxMC4wOTc3NzggMzc0LjEwMTMzMyAzNzQuMTAxMzMzIDAgMCAwIDUzNi45MTczMzMgODM5LjExMTExMWEzNzQuMDQ0NDQ0IDM3NC4wNDQ0NDQgMCAwIDAgMjYzLjk2NDQ0NS0xMDguMzE2NDQ0IDM2OC4yOTg2NjcgMzY4LjI5ODY2NyAwIDAgMCA3OS45ODU3NzgtMTE3LjUzMjQ0NWMxOS41MTI4ODktNDUuNTY4IDI5LjM1NDY2Ny05NC4wMzczMzMgMjkuMzU0NjY2LTE0My45Mjg4ODlzLTkuODk4NjY3LTk4LjM2MDg4OS0yOS4zNTQ2NjYtMTQzLjkyODg4OXpNOTYuNzExMTExLTI1LjZoODMwLjU3Nzc3OGEzOS44MjIyMjIgMzkuODIyMjIyIDAgMCAwIDM5LjgyMjIyMi0zOS44MjIyMjJ2LTUuNjg4ODg5YTM5LjgyMjIyMiAzOS44MjIyMjIgMCAwIDAtMzkuODIyMjIyLTM5LjgyMjIyMkg5Ni43MTExMTFBMzkuODIyMjIyIDM5LjgyMjIyMiAwIDAgMCA1Ni44ODg4ODktNzEuMTExMTExdjUuNjg4ODg5YTM5LjgyMjIyMiAzOS44MjIyMjIgMCAwIDAgMzkuODIyMjIyIDM5LjgyMjIyMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ1cGxvYWRpbmciIHVuaWNvZGU9IiYjNTkwNDE7IiBkPSJNNzg0IDExNS4yYTQ4LjQ0OCA0OC40NDggMCAwIDAtNDggNDguODk2YzAgMjYuOTQ0IDIxLjUwNCA0OC44MzIgNDggNDguODMyIDc5LjU1MiAwIDE0NCA2NS42NjQgMTQ0IDE0Ni42MjRhMTQ3LjI2NCAxNDcuMjY0IDAgMCAxLTU4LjE3NiAxMTcuNTA0bC0wLjY0IDAuNTEyYTE0OC42NzIgMTQ4LjY3MiAwIDAgMS05LjYgNi41OTJsLTEuNDcyIDAuOTZhMTQ2LjgxNiAxNDYuODE2IDAgMCAxLTkuNDcyIDUuMzEybC0yLjY4OCAxLjI4YTE1MC43MiAxNTAuNzIgMCAwIDEtOC45NiA0LjA5NmwtNC4wMzIgMS40NzJhMTQ3LjAwOCAxNDcuMDA4IDAgMCAxLTguMzIgMi44OGMtMS44NTYgMC41NzYtMy43MTIgMC45Ni01LjYzMiAxLjQ3Mi0yLjQzMiAwLjY0LTQuODY0IDEuMjgtNy4yOTYgMS43OTItMi41NiAwLjUxMi01LjI0OCAwLjgzMi03LjkzNiAxLjIxNi0xLjkyIDAuMjU2LTMuNzc2IDAuNjQtNS42OTYgMC44MzJhMTQ0LjUxMiAxNDQuNTEyIDAgMCAxLTE0LjA4IDAuNzA0Yy0xLjQ3MiAwLTIuOTQ0LTAuMTkyLTQuNDgtMC4xOTJhMjcxLjkzNiAyNzEuOTM2IDAgMCAxLTUuNDQgMjQuNTc2Yy0wLjUxMiAxLjk4NC0xLjI4IDMuODQtMS44NTYgNS44MjRhMjc0LjA0OCAyNzQuMDQ4IDAgMCAxLTUuNzYgMTguMTEyYy0wLjY0IDEuNzkyLTEuNTM2IDMuNTItMi4xNzYgNS4zMTJhMjk0LjUyOCAyOTQuNTI4IDAgMCAxLTcuNjE2IDE3Ljc5MmMtMC42NCAxLjQwOC0xLjQwOCAyLjc1Mi0yLjExMiA0LjA5NmEyODQuMjI0IDI4NC4yMjQgMCAwIDEtOS42IDE3LjkyQzY5Ny41MzYgNjgwLjI1NiA2MTEuMTM2IDczNC4yNzIgNTEyIDczNC4yNzJzLTE4NS40NzItNTQuMDgtMjMyLjk2LTEzNC42NTZjLTMuNDU2LTUuODI0LTYuNTkyLTExLjg0LTkuNi0xNy45Mi0wLjY0LTEuMzQ0LTEuNDcyLTIuNjg4LTIuMTEyLTQuMDk2LTIuNzUyLTUuNzYtNS4yNDgtMTEuNzc2LTcuNjE2LTE3Ljc5Mi0wLjY0LTEuNzkyLTEuNDcyLTMuNTItMi4xMTItNS4zMTJhMjc0LjA0OCAyNzQuMDQ4IDAgMCAxLTUuODI0LTE4LjExMmwtMS44NTYtNS43NmEyNzEuNDI0IDI3MS40MjQgMCAwIDEtNS40NC0yNC42NGMtMS41MzYgMC0zLjAwOCAwLjE5Mi00LjQ4IDAuMTkyLTQuOCAwLTkuNDcyLTAuMjU2LTE0LjA4LTAuNzA0LTEuOTItMC4xOTItMy44NC0wLjU3Ni01Ljc2LTAuODMyLTIuNTYtMC4zODQtNS4yNDgtMC43MDQtNy44NzItMS4yOC0yLjQ5Ni0wLjQ0OC00Ljg2NC0xLjA4OC03LjI5Ni0xLjcyOC0xLjkyLTAuNTEyLTMuODQtMC44OTYtNS42OTYtMS40NzJhMTQ3LjM5MiAxNDcuMzkyIDAgMCAxLTguMzItMi44OGwtMy45NjgtMS40NzJjLTMuMDcyLTEuMjgtNi4wOC0yLjU2LTguOTYtNC4wMzJsLTIuNjg4LTEuMjhjLTMuMi0xLjY2NC02LjQtMy40NTYtOS40MDgtNS4zNzZsLTEuNTM2LTAuOTZhMTUyLjA2NCAxNTIuMDY0IDAgMCAxLTkuNi02LjU5MmwtMC42NC0wLjUxMkExNDcuMzI4IDE0Ny4zMjggMCAwIDEgOTYgMzU5LjU1MmMwLTgwLjk2IDY0LjQ0OC0xNDYuNTYgMTQ0LTE0Ni41NiAyNi40OTYgMCA0OC0yMS45NTIgNDgtNDguODk2YTQ4LjQ0OCA0OC40NDggMCAwIDAtNDgtNDguODk2QzEwNy40NTYgMTE1LjIgMCAyMjQuNjQgMCAzNTkuNTUyYzAgMTEwLjA4IDcxLjU1MiAyMDMuMTM2IDE2OS44NTYgMjMzLjcyOEMyMjMuMjMyIDczMi44IDM1NS45NjggODMyIDUxMiA4MzJzMjg4Ljc2OC05OS4yIDM0Mi4yMDgtMjM4LjcyQzk1Mi40NDggNTYyLjY4OCAxMDI0IDQ2OS42MzIgMTAyNCAzNTkuNTUyYzAtMTM0LjkxMi0xMDcuNDU2LTI0NC4zNTItMjQwLTI0NC4zNTJ6IG0tNDUxLjY0OCAxMTQuMTc2djAuMDY0YzAuMTI4IDAgMC4xMjggMC4wNjQgMC4xMjggMC4xMjhMNDc2LjM1MiAzOTIuMzJsMC4xMjgtMC4xMjhBNDcuMzYgNDcuMzYgMCAwIDAgNTEyIDQwOC40NDhjMTQuMTQ0IDAgMjYuNzUyLTYuNCAzNS41ODQtMTYuMzJsMC4wNjQgMC4xMjggMTQzLjg3Mi0xNjIuNjg4di0wLjA2NGwwLjEyOC0wLjEyOGM2LjcyLTcuNjE2IDExLjEzNi0xNy4yOCAxMi4xNi0yOC4wMzJ2LTAuMTI4YTQ4LjQ0OCA0OC40NDggMCAwIDAtNDcuODA4LTUzLjQ0aC0xLjUzNmwtMC45NiAwLjA2NC0xLjAyNCAwLjA2NC0xLjYgMC4xOTJoLTAuNTEybC0yLjExMiAwLjMyYTQ3LjYxNiA0Ny42MTYgMCAwIDAtMjcuOTA0IDE1LjU1MmwtNjAuMzUyIDY4LjIyNHYtMjQ3LjI5NkE0OC40NDggNDguNDQ4IDAgMCAwIDUxMi02NGE0OC40NDggNDguNDQ4IDAgMCAwLTQ4IDQ4Ljg5NnYyNDcuMjk2bC02MC4zNTItNjguMjI0YTQ3LjQyNCA0Ny40MjQgMCAwIDAtMjcuODQtMTUuNDg4Yy0wLjcwNC0wLjE5Mi0xLjQwOC0wLjI1Ni0yLjExMi0wLjMyYTEwLjYyNCAxMC42MjQgMCAwIDAtMC42NC0wLjA2NGwtMS41MzYtMC4xOTJIMzcwLjU2bC0wLjg5Ni0wLjA2NEgzNjhhNDcuODcyIDQ3Ljg3MiAwIDAgMC00Mi4yNCAyNS41MzYgNDkuMjggNDkuMjggMCAwIDAgNi41OTIgNTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZXJyb3IiIHVuaWNvZGU9IiYjNTkwMzk7IiBkPSJNNTEyLTEyOEE1MTIgNTEyIDAgMSAwIDUxMiA4OTZhNTEyIDUxMiAwIDAgMCAwLTEwMjR6IG0wIDIyNy41ODRBNTYuOTE3MzMzIDU2LjkxNzMzMyAwIDEgMSA1MTIgMjEzLjMzMzMzM2E1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxIDAtMTEzLjc0OTMzM3ogbTAgNTY4LjgzMmE1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxLTU2LjkxNzMzMy01Ni44MzJ2LTI4NC41MDEzMzNhNTYuOTE3MzMzIDU2LjkxNzMzMyAwIDAgMSAxMTMuODM0NjY2IDBWNjExLjU4NEE1Ni45MTczMzMgNTYuOTE3MzMzIDAgMCAxIDUxMiA2NjguNDE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Inpvb21pbiIgdW5pY29kZT0iJiM1OTA0MjsiIGQ9Ik01ODUuMTQyODU3IDQ1Ny4xNDI4NTdoMzY1LjcxNDI4NnYtMTQ2LjI4NTcxNEg1ODUuMTQyODU3di0zNjUuNzE0Mjg2SDQzOC44NTcxNDNWMzEwLjg1NzE0M0g3My4xNDI4NTdWNDU3LjE0Mjg1N2gzNjUuNzE0Mjg2VjgyMi44NTcxNDNoMTQ2LjI4NTcxNHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ6b29tb3V0IiB1bmljb2RlPSImIzU5MDQzOyIgZD0iTTczLjE0Mjg1NyA0NTcuMTQyODU3aDg3Ny43MTQyODZ2LTE0Ni4yODU3MTRINzMuMTQyODU3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImZpcnN0IiB1bmljb2RlPSImIzU5MDQ0OyIgZD0iTTI4NC40NDQ0NDQgNjExLjU1NTU1Nmg1Ni44ODg4ODl2LTUxMkgyODQuNDQ0NDQ0eiBtNDI2LjQ5Ni01MTEuMzE3MzM0YTI5LjQxMTU1NiAyOS40MTE1NTYgMCAwIDAtMTguMjA0NDQ0IDYuNDI4NDQ1TDQxMC42MjQgMzMzLjQ4MjY2N2EyOS4xMjcxMTEgMjkuMTI3MTExIDAgMCAwIDAgNDUuMzQwNDQ0bDI4MC44MDM1NTYgMjI1LjY3ODIyMmEyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwIDM2LjQwODg4OC00NS4zNDA0NDRsLTI1Mi41ODY2NjYtMjAyLjk3OTU1NiAyNTMuODM4MjIyLTIwNC4yMzExMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMC0xOC4yMDQ0NDQtNTEuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Im5leHQiIHVuaWNvZGU9IiYjNTkwNDU7IiBkPSJNMzcwLjQwMzU1NiAxMDAuOTIwODg4OTk5OTk5OTlhMjkuNDExNTU2IDI5LjQxMTU1NiAwIDAgMSAxOC4yMDQ0NDQgNi40Mjg0NDRsMjgyLjA1NTExMSAyMjYuODE2YTI5LjEyNzExMSAyOS4xMjcxMTEgMCAwIDEgMCA0NS4zNDA0NDVMMzg5Ljg1OTU1NiA2MDUuMTI3MTExYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDEtMzYuNDA4ODg5LTQ1LjI4MzU1NWwyNTIuNTg2NjY2LTIwMi45Nzk1NTYtMjUzLjgzODIyMi0yMDQuMjMxMTExYTI5LjA3MDIyMiAyOS4wNzAyMjIgMCAwIDEgMTguMjA0NDQ1LTUxLjcxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYXN0IiB1bmljb2RlPSImIzU5MDQ2OyIgZD0iTTcwOS41MTgyMjIgNjExLjU1NTU1NmEyOC40NDQ0NDQgMjguNDQ0NDQ0IDAgMCAwIDI4LjQ0NDQ0NS0yOC40NDQ0NDV2LTQ1NS4xMTExMTFhMjguNDQ0NDQ0IDI4LjQ0NDQ0NCAwIDEgMC01Ni44ODg4ODkgMHY0NTUuMTExMTExYTI4LjQ0NDQ0NCAyOC40NDQ0NDQgMCAwIDAgMjguNDQ0NDQ0IDI4LjQ0NDQ0NXogbS0zOTUuOTQ2NjY2LTUxMS4zMTczMzRhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMC0xOC4yMDQ0NDUgNTEuNzEybDI1My44MzgyMjIgMjA0LjIzMTExMS0yNTIuNTg2NjY2IDIwMi45Nzk1NTZhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMCAzNi4zNTIgNDUuMzQwNDQ0bDI4MC44MDM1NTUtMjI1LjY3ODIyMmEyOS4wMTMzMzMgMjkuMDEzMzMzIDAgMCAwIDAtNDUuMzQwNDQ0bC0yODEuOTk4MjIyLTIyNi44MTZhMjkuNDExNTU2IDI5LjQxMTU1NiAwIDAgMC0xOC4yMDQ0NDQtNi40Mjg0NDV6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icHJldiIgdW5pY29kZT0iJiM1OTA0NzsiIGQ9Ik02NTIuNDU4NjY3IDEwMC45MjA4ODg5OTk5OTk5OWEyOS40MTE1NTYgMjkuNDExNTU2IDAgMCAwLTE4LjIwNDQ0NSA2LjQyODQ0NEwzNTIuMTQyMjIyIDMzNC4xNjUzMzMwMDAwMDAwM2EyOS4xMjcxMTEgMjkuMTI3MTExIDAgMCAwIDAgNDUuMzQwNDQ1bDI4MC44MDM1NTYgMjI1LjYyMTMzM2EyOS4wNzAyMjIgMjkuMDcwMjIyIDAgMCAwIDM2LjQwODg4OS00NS4yODM1NTVsLTI1Mi41ODY2NjctMjAyLjk3OTU1NiAyNTMuODM4MjIyLTIwNC4yMzExMTFhMjkuMDcwMjIyIDI5LjA3MDIyMiAwIDAgMC0xOC4yMDQ0NDQtNTEuNzEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InBvaS1sb2FkIiB1bmljb2RlPSImIzU5MDQ4OyIgZD0iTTIxMi4zMzM3MTQgNTY2Ljg1NzE0M2g0MzguMzQ1MTQzYzIxLjk0Mjg1NyAwIDM2LjU3MTQyOSAxNC42Mjg1NzEgMzYuNTcxNDI5IDM2LjU3MTQyOHMtMTQuNjI4NTcxIDM2LjU3MTQyOS0zNi41NzE0MjkgMzYuNTcxNDI5SDIxMi4zMzM3MTRjLTIxLjk0Mjg1NyAwLTM2LjU3MTQyOS0xNC42Mjg1NzEtMzYuNTcxNDI4LTM2LjU3MTQyOXMxNC42Mjg1NzEtMzYuNTcxNDI5IDM2LjU3MTQyOC0zNi41NzE0Mjh6TTY4Ny4yNTAyODYgMzg0YzAgMjEuOTQyODU3LTE0LjYyODU3MSAzNi41NzE0MjktMzYuNTcxNDI5IDM2LjU3MTQyOUgyMTIuMzMzNzE0Yy0yMS45NDI4NTcgMC0zNi41NzE0MjktMTQuNjI4NTcxLTM2LjU3MTQyOC0zNi41NzE0MjlzMTQuNjI4NTcxLTM2LjU3MTQyOSAzNi41NzE0MjgtMzYuNTcxNDI5aDQzOC4zNDUxNDNjMjEuOTQyODU3IDAgMzYuNTcxNDI5IDE0LjYyODU3MSAzNi41NzE0MjkgMzYuNTcxNDI5ek0yMTIuMzMzNzE0IDIwMS4xNDI4NTdjLTIxLjk0Mjg1NyAwLTM2LjU3MTQyOS0xNC42Mjg1NzEtMzYuNTcxNDI4LTM2LjU3MTQyOHMxNC42Mjg1NzEtMzYuNTcxNDI5IDM2LjU3MTQyOC0zNi41NzE0MjloMjU1LjcwNzQyOWMyMS45NDI4NTcgMCAzNi41NzE0MjkgMTQuNjI4NTcxIDM2LjU3MTQyOCAzNi41NzE0MjlzLTE0LjYyODU3MSAzNi41NzE0MjktMzYuNTcxNDI4IDM2LjU3MTQyOHpNMTAwOC42NCAxNTcuMjU3MTQzYy0xNC41NTU0MjkgMTQuNjI4NTcxLTM2LjQ5ODI4NiAxNC42Mjg1NzEtNTEuMDUzNzE0IDBsLTgwLjQ1NzE0My04MC40NTcxNDNWNzQ5LjcxNDI4NmMwIDgwLjQ1NzE0My02NS42ODIyODYgMTQ2LjI4NTcxNC0xNDYuMDY2Mjg2IDE0Ni4yODU3MTRIMTQ2LjU3ODI4NkM2Ni4xOTQyODYgODk2IDAuNDM4ODU3IDgzMC4xNzE0MjkgMC40Mzg4NTcgNzQ5LjcxNDI4NnYtNzMxLjQyODU3MmMwLTgwLjQ1NzE0MyA2NS44Mjg1NzEtMTQ2LjI4NTcxNCAxNDYuMTM5NDI5LTE0Ni4yODU3MTRoNTA0LjEwMDU3MWMyMS45NDI4NTcgMCAzNi41NzE0MjkgMTQuNjI4NTcxIDM2LjU3MTQyOSAzNi41NzE0MjlzLTE0LjYyODU3MSAzNi41NzE0MjktMzYuNTcxNDI5IDM2LjU3MTQyOEgxNDYuNTc4Mjg2Yy00My44ODU3MTQgMC03My4wNjk3MTQgMzYuNTcxNDI5LTczLjA2OTcxNSA3My4xNDI4NTdWNzQ5LjcxNDI4NmMwIDQzLjg4NTcxNCAzNi41NzE0MjkgNzMuMTQyODU3IDczLjA2OTcxNSA3My4xNDI4NTdoNTg0LjQ4NDU3MWM0My44ODU3MTQgMCA3My4wNjk3MTQtMjkuMjU3MTQzIDczLjA2OTcxNC03My4xNDI4NTd2LTY4MC4yMjg1NzJsLTgwLjM4NCA4MC40NTcxNDNjLTE0LjYyODU3MSAxNC42Mjg1NzEtMzYuNTcxNDI5IDE0LjYyODU3MS01MS4xMjY4NTcgMC0xNC42Mjg1NzEtMTQuNjI4NTcxLTE0LjYyODU3MS0zNi41NzE0MjkgMC01MS4ybDE0Ni4xMzk0MjktMTQ2LjI4NTcxNHM3LjMxNDI4Ni03LjMxNDI4NiAxNC42Mjg1NzEtNy4zMTQyODZoMjkuMjU3MTQzYzcuMjQxMTQzIDAgNy4yNDExNDMgNy4zMTQyODYgMTQuNTU1NDI5IDcuMzE0Mjg2bDE0Ni4xMzk0MjggMTQ2LjI4NTcxNGMtNy4zMTQyODYgMTQuNjI4NTcxLTcuMzE0Mjg2IDQzLjg4NTcxNC0xNC42Mjg1NzEgNTguNTE0Mjg2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InBvaS1zYXZlIiB1bmljb2RlPSImIzU5MDQ5OyIgZD0iTTg2Ny42OTM3MTQgODIyLjI3MkgyMjkuNDQ5MTQzYy04Ni4wMTYgMC0xNTUuNzk0Mjg2LTY5LjcwNTE0My0xNTUuNzk0Mjg2LTE1NS43OTQyODZ2LTYzOC42ODM0MjhjMC04Ni4wODkxNDMgNjkuNzc4Mjg2LTE1NS43OTQyODYgMTU1Ljc5NDI4Ni0xNTUuNzk0Mjg2aDYzOC4yNDQ1NzFjODYuMDE2IDAgMTU1Ljc5NDI4NiA2OS43MDUxNDMgMTU1Ljc5NDI4NiAxNTUuNzk0Mjg2VjY2Ni41NTA4NTdjMCA4Ni4wMTYtNjkuNzc4Mjg2IDE1NS43OTQyODYtMTU1Ljc5NDI4NiAxNTUuNzk0Mjg2eiBtLTU4NC44NTAyODUtNjguMDIyODU3aDUzMS40NTZ2LTIzNy40OTQ4NTdjMC0zMi4xMDk3MTQtMzMuMjA2ODU3LTU4LjIyMTcxNC03NC4wMjA1NzItNTguMjIxNzE1SDM1Ni44NjRjLTQwLjgxMzcxNCAwLTc0LjAyMDU3MSAyNi4xMTItNzQuMDIwNTcxIDU4LjIyMTcxNXogbTY3Mi41NDg1NzEtNzI1Ljk0Mjg1N2MwLTQ4LjQ5MzcxNC0zOS4yMDQ1NzEtODcuNjk4Mjg2LTg3Ljc3MTQyOS04Ny42OTgyODZIMjI5LjUyMjI4NmE4Ny42MjUxNDMgODcuNjI1MTQzIDAgMCAwLTg3LjY5ODI4NiA4Ny43NzE0MjlWNjY2LjQ3NzcxNGMwIDQzLjUyIDMxLjU5NzcxNCA3OS41MDYyODYgNzIuOTk2NTcxIDg2LjAxNnYtMjM2LjMyNDU3MWMwLTY5LjcwNTE0MyA2My43MDc0MjktMTI2LjMxNzcxNCAxNDIuMTE2NTcyLTEyNi4zMTc3MTRoMzgzLjQxNDg1N2M3OC40MDkxNDMgMCAxNDIuMTE2NTcxIDU2LjYxMjU3MSAxNDIuMTE2NTcxIDEyNi4zMTc3MTRWNzUzLjE1MmM0MS4zOTg4NTctNy4wOTQ4NTcgNzIuOTk2NTcxLTQzLjA4MTE0MyA3Mi45OTY1NzItODYuMDg5MTQzek03MDUuOTc0ODU3IDUwOS43MzI1NzFhMzMuNjQ1NzE0IDMzLjY0NTcxNCAwIDAgMSAzMy43MTg4NTcgMzMuNzE4ODU4VjY2MC41NTMxNDNhMzMuNjQ1NzE0IDMzLjY0NTcxNCAwIDAgMS0zMy43MTg4NTcgMzMuNzkyIDM0LjA4NDU3MSAzNC4wODQ1NzEgMCAwIDEtMzQuMzc3MTQzLTMzLjc5MnYtMTE3LjAyODU3MmEzNC43NDI4NTcgMzQuNzQyODU3IDAgMCAxIDM0LjM3NzE0My0zMy43OTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iZm9sZCIgdW5pY29kZT0iJiM1OTA1MDsiIGQ9Ik01MTItMTI4QTUxMiA1MTIgMCAxIDEgNTEyIDg5NmE1MTIgNTEyIDAgMCAxIDAtMTAyNHpNMjczLjU3ODY2NyA0MjQuMjc3MzMzbDE5NS40MTMzMzMgMTU4LjI5MzMzNEE2Ny45MjUzMzMgNjcuOTI1MzMzIDAgMCAwIDUxMiA1OTYuOTA2NjY3YzE1LjUzMDY2NyAwIDMxLjE0NjY2Ny00LjY5MzMzMyA0My4wMDgtMTQuMzM2bDE5NS40MTMzMzMtMTU4LjI5MzMzNGMyMy40NjY2NjctMTkuMTE0NjY3IDIzLjQ2NjY2Ny01MC4wMDUzMzMgMC02OS4xMmE3MC41NzA2NjcgNzAuNTcwNjY3IDAgMCAwLTg1LjMzMzMzMyAwTDUxMiA0NzkuMjMyIDM1OC45MTIgMzU1LjE1NzMzM2E3MC42NTYgNzAuNjU2IDAgMCAwLTg1LjMzMzMzMyAwYy0yMy40NjY2NjcgMTkuMTE0NjY3LTIzLjQ2NjY2NyA1MC4wMDUzMzMgMCA2OS4xMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsYWJlbC1kZWxldGUiIHVuaWNvZGU9IiYjNTkwNTE7IiBkPSJNODc0LjA2OTMzMyA4MTcuMTUySDY4OS4xNTJjMCAzNS42NjkzMzMtMjcuMDUwNjY3IDc4LjY3NzMzMy02MC41ODY2NjcgNzguNjc3MzMzSDQxNi45Mzg2NjdjLTMzLjQ1MDY2NyAwLTYwLjU4NjY2Ny00My4wMDgtNjAuNTg2NjY3LTc4LjY3NzMzM0gxNzEuNTJjLTQwLjg3NDY2NyAwLTg1Ljg0NTMzMy02LjIyOTMzMy04NS44NDUzMzMtNDguMDQyNjY3di02NC43NjhIOTM4LjY2NjY2N3Y2NC43NjhjMCA0MS44MTMzMzMtMjMuNjM3MzMzIDQ4LjA0MjY2Ny02NC41MTIgNDguMDQyNjY3ek0xNjEuMDI0IDYyOC42NTA2Njd2LTYxNi4zNjI2NjdjMC02Mi42MzQ2NjcgNjAuMDc0NjY3LTEzOS4wOTMzMzMgMTIxLjM0NC0xMzkuMDkzMzMzaDQ4MC43NjhjNjEuMjY5MzMzIDAgMTAxLjQ2MTMzMyA3Ni40NTg2NjcgMTAxLjQ2MTMzMyAxMzkuMDkzMzMzVjYyOC42NTA2Njd6IG0yMDIuMDY5MzMzLTYyOS4yNDhoLTc0LjA2OTMzM1Y1NDQuODUzMzMzaDc0LjA2OTMzM3ogbTE4NS4zNDQgMEg0NzQuNDUzMzMzVjU0NC44NTMzMzNoNzMuOTg0eiBtMTg1LjQyOTMzNCAwaC03NC4wNjkzMzRWNTQ0Ljg1MzMzM0g3MzMuODY2NjY3eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InVwbG9hZCIgdW5pY29kZT0iJiM1OTA1MjsiIGQ9Ik05NTIuMDI3NDI5IDc2LjhjLTMyLjE4Mjg1NyAwLTU4LjI5NDg1NyAyNS4wMTQ4NTctNTguMjk0ODU4IDU1Ljg4MTE0MyAwIDMwLjc5MzE0MyAyNi4xMTIgNTUuODA4IDU4LjI5NDg1OCA1NS44MDggOTYuNTQ4NTcxIDAgMTc0LjgxMTQyOSA3NS4wNDQ1NzEgMTc0LjgxMTQyOCAxNjcuNTcwMjg2YTE2NC4xMzI1NzEgMTY0LjEzMjU3MSAwIDAgMS03MC41ODI4NTcgMTM0LjI5MDI4NWwtMC43MzE0MjkgMC41ODUxNDNhMTgxLjM5NDI4NiAxODEuMzk0Mjg2IDAgMCAxLTExLjcwMjg1NyA3LjUzMzcxNGwtMS45MDE3MTQgMS4wOTcxNDNhMTgxLjYxMzcxNCAxODEuNjEzNzE0IDAgMCAxLTExLjQxMDI4NiA2LjA3MDg1N2wtMy4yMTgyODUgMS40NjI4NThhMTg4Ljg1NDg1NyAxODguODU0ODU3IDAgMCAxLTEwLjk3MTQyOSA0LjY4MTE0MmwtNC44Mjc0MjkgMS42ODIyODZhMTg2LjIyMTcxNCAxODYuMjIxNzE0IDAgMCAxLTEwLjA5MzcxNCAzLjI5MTQyOWMtMi4yNjc0MjkgMC42NTgyODYtNC42MDggMS4wOTcxNDMtNi44NzU0MjggMS42ODIyODUtMi45MjU3MTQgMC43MzE0MjktNS44NTE0MjkgMS40NjI4NTctOC44NTAyODYgMi4wNDgtMy4yMTgyODYgMC41ODUxNDMtNi40MzY1NzEgMC45NTA4NTctOS42NTQ4NTcgMS4zODk3MTUtMi4yNjc0MjkgMC4yOTI1NzEtNC41MzQ4NTcgMC43MzE0MjktNi44NzU0MjkgMC45NTA4NTdhMTg2LjM2OCAxODYuMzY4IDAgMCAxLTE3LjExNTQyOCAwLjgwNDU3MWMtMS44Mjg1NzEgMC0zLjY1NzE0My0wLjIxOTQyOS01LjQxMjU3Mi0wLjIxOTQyOGEyOTUuMjA0NTcxIDI5NS4yMDQ1NzEgMCAwIDEtNi42NTYgMjguMDg2ODU3Yy0wLjY1ODI4NiAyLjI2NzQyOS0xLjQ2Mjg1NyA0LjM4ODU3MS0yLjE5NDI4NiA2LjY1Ni0yLjE5NDI4NiA3LjAyMTcxNC00LjM4ODU3MSAxMy44OTcxNDMtNy4wOTQ4NTcgMjAuNjk5NDI4LTAuODA0NTcxIDIuMDQ4LTEuODI4NTcxIDQuMDIyODU3LTIuNjMzMTQzIDYuMDcwODU4YTMyNi4yMTcxNDMgMzI2LjIxNzE0MyAwIDAgMS05LjIxNiAyMC4zMzM3MTRjLTAuNzMxNDI5IDEuNjA5MTQzLTEuNzU1NDI5IDMuMTQ1MTQzLTIuNTYgNC42ODExNDNhMzE4Ljk3NiAzMTguOTc2IDAgMCAxLTExLjYyOTcxNCAyMC40OGMtNTcuNjM2NTcxIDkyLjE2LTE2Mi42Njk3MTQgMTUzLjg5MjU3MS0yODIuOTE2NTcxIDE1My44OTI1NzEtMTIwLjMyIDAtMjI1LjI4LTYxLjgwNTcxNC0yODIuOTE2NTcyLTE1My44OTI1NzEtNC4xNjkxNDMtNi42NTYtNy45NzI1NzEtMTMuNTMxNDI5LTExLjcwMjg1Ny0yMC40OC0wLjczMTQyOS0xLjUzNi0xLjY4MjI4Ni0zLjA3Mi0yLjQ4Njg1Ny00LjY4MTE0M2EzMTYuNzA4NTcxIDMxNi43MDg1NzEgMCAwIDEtOS4yMTYtMjAuMzMzNzE0Yy0wLjgwNDU3MS0yLjA0OC0xLjgyODU3MS00LjAyMjg1Ny0yLjYzMzE0My02LjA3MDg1OGEzMDAuMTA1MTQzIDMwMC4xMDUxNDMgMCAwIDEtNy4wOTQ4NTctMjAuNjk5NDI4bC0yLjE5NDI4Ni02LjU4Mjg1N2EyOTQuNjE5NDI5IDI5NC42MTk0MjkgMCAwIDEtNi41ODI4NTctMjguMTZjLTEuOTAxNzE0IDAtMy42NTcxNDMgMC4yMTk0MjktNS40ODU3MTQgMC4yMTk0MjgtNS43NzgyODYgMC0xMS40ODM0MjktMC4yOTI1NzEtMTcuMTE1NDI5LTAuODA0NTcxLTIuMzQwNTcxLTAuMjE5NDI5LTQuNjA4LTAuNjU4Mjg2LTYuODc1NDI4LTAuOTUwODU3LTMuMjE4Mjg2LTAuNDM4ODU3LTYuNDM2NTcxLTAuODA0NTcxLTkuNjU0ODU3LTEuNDYyODU3LTIuOTI1NzE0LTAuNTEyLTUuODUxNDI5LTEuMjQzNDI5LTguNzc3MTQzLTEuOTc0ODU4LTIuMzQwNTcxLTAuNTg1MTQzLTQuNjgxMTQzLTEuMDI0LTYuOTQ4NTcyLTEuNjgyMjg1YTE4Ni42NjA1NzEgMTg2LjY2MDU3MSAwIDAgMS0xMC4wOTM3MTQtMy4yOTE0MjlsLTQuOTAwNTcxLTEuNjgyMjg2Yy0zLjY1NzE0My0xLjQ2Mjg1Ny03LjMxNDI4Ni0yLjkyNTcxNC0xMC44OTgyODYtNC42MDhsLTMuMjE4Mjg2LTEuNDYyODU3YTE3My44NjA1NzEgMTczLjg2MDU3MSAwIDAgMS0xMS40MTAyODYtNi4xNDRsLTEuOTAxNzE0LTEuMDk3MTQzYTE4NS41NjM0MjkgMTg1LjU2MzQyOSAwIDAgMS0xMS43MDI4NTctNy41MzM3MTRsLTAuNzMxNDI5LTAuNTg1MTQzYTE2NC4yMDU3MTQgMTY0LjIwNTcxNCAwIDAgMS03MC41ODI4NTctMTM0LjI5MDI4NWMwLTkyLjUyNTcxNCA3OC4yNjI4NTctMTY3LjQ5NzE0MyAxNzQuODExNDI5LTE2Ny40OTcxNDMgMzIuMTgyODU3IDAgNTguMjk0ODU3LTI1LjA4OCA1OC4yOTQ4NTctNTUuODgxMTQzIDAtMzAuODY2Mjg2LTI2LjExMi01NS44ODExNDMtNTguMjk0ODU3LTU1Ljg4MTE0M0MxMzAuNDg2ODU3IDc2LjggMCAyMDEuODc0Mjg2IDAgMzU2LjA1OTQyOWMwIDEyNS44MDU3MTQgODYuODIwNTcxIDIzMi4xNTU0MjkgMjA2LjI2Mjg1NyAyNjcuMTE3NzE0QzI3MC45OTQyODYgNzgyLjYyODU3MSA0MzIuMjc0Mjg2IDg5NiA2MjEuNzE0Mjg2IDg5NnMzNTAuNjQ2ODU3LTExMy4zNzE0MjkgNDE1LjUyNDU3MS0yNzIuODIyODU3QzExNTYuNjA4IDU4OC4yMTQ4NTcgMTI0My40Mjg1NzEgNDgxLjg2NTE0MyAxMjQzLjQyODU3MSAzNTYuMDU5NDI5YzAtMTU0LjE4NTE0My0xMzAuNDg2ODU3LTI3OS4yNTk0MjktMjkxLjQwMTE0Mi0yNzkuMjU5NDI5ek00MDMuNTI5MTQzIDIwNy4yODY4NTdsMC4wNzMxNDMgMC4wNzMxNDMgMC4xNDYyODUgMC4xNDYyODZMNTc4LjQxMzcxNCAzOTMuNTA4NTcxbDAuMTQ2Mjg2LTAuMTQ2Mjg1YTU5LjA5OTQyOSA1OS4wOTk0MjkgMCAwIDAgODYuMzA4NTcxIDBsMC4xNDYyODYgMC4xNDYyODUgMTc0LjY2NTE0My0xODUuOTI5MTQydi0wLjA3MzE0M2wwLjIxOTQyOS0wLjE0NjI4NmM4LjExODg1Ny04LjcwNCAxMy40NTgyODYtMTkuNzQ4NTcxIDE0LjYyODU3MS0zMi4wMzY1NzF2LTAuMTQ2Mjg2YTQ4LjQyMDU3MSA0OC40MjA1NzEgMCAwIDAgMC4zNjU3MTQtNS4xMmMwLTMwLjkzOTQyOS0yNi4xMTItNTUuOTU0Mjg2LTU4LjI5NDg1Ny01NS45NTQyODZoLTEuOTAxNzE0bC0xLjE3MDI4NiAwLjA3MzE0My0xLjI0MzQyOCAwLjA3MzE0My0xLjkwMTcxNSAwLjIxOTQyOGgtMC43MzE0MjhsLTIuNDg2ODU3IDAuMzY1NzE1YTU4LjgwNjg1NyA1OC44MDY4NTcgMCAwIDAtMzMuOTM4Mjg2IDE3Ljc3MzcxNEw2ODAuMDA5MTQzIDIxMC41MDUxNDN2LTI4Mi42MjRjMC0zMC44NjYyODYtMjYuMTEyLTU1Ljg4MTE0My01OC4yOTQ4NTctNTUuODgxMTQzLTMyLjE4Mjg1NyAwLTU4LjI5NDg1NyAyNS4wMTQ4NTctNTguMjk0ODU3IDU1Ljg4MTE0M1YyMTAuNTA1MTQzbC03My4yMTYtNzcuOTcwMjg2YTU4LjU4NzQyOSA1OC41ODc0MjkgMCAwIDAtMzMuODY1MTQzLTE3LjcwMDU3MWMtMC44Nzc3MTQtMC4yMTk0MjktMS42ODIyODYtMC4yOTI1NzEtMi41Ni0wLjM2NTcxNWExMy42Nzc3MTQgMTMuNjc3NzE0IDAgMCAwLTAuNzMxNDI5LTAuMDczMTQybC0xLjkwMTcxNC0wLjIxOTQyOWgtMS4yNDM0MjlsLTEuMDk3MTQzLTAuMDczMTQzaC0xLjk3NDg1N2E1OC42NjA1NzEgNTguNjYwNTcxIDAgMCAwLTUxLjIgMjkuMTg0IDUzLjY4Njg1NyA1My42ODY4NTcgMCAwIDAgNy44OTk0MjkgNjR6IiAgaG9yaXotYWR2LXg9IjEyNDMiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idW5mb2xkIiB1bmljb2RlPSImIzU5MDUzOyIgZD0iTTUxMiA4OTZhNTEyIDUxMiAwIDEgMCAwLTEwMjRBNTEyIDUxMiAwIDAgMCA1MTIgODk2ek0yNzMuNTc4NjY3IDM0My43MjI2NjdsMTk1LjQxMzMzMy0xNTguMjkzMzM0QTY3LjkyNTMzMyA2Ny45MjUzMzMgMCAwIDEgNTEyIDE3MS4wOTMzMzNhNjguMDEwNjY3IDY4LjAxMDY2NyAwIDAgMSA0My4wMDggMTQuMzM2bDE5NS40MTMzMzMgMTU4LjI5MzMzNGMyMy40NjY2NjcgMTkuMTE0NjY3IDIzLjQ2NjY2NyA1MC4wMDUzMzMgMCA2OS4xMmE3MC41NzA2NjcgNzAuNTcwNjY3IDAgMCAxLTg1LjMzMzMzMyAwTDUxMiAyODguNzY4IDM1OC45MTIgNDEyLjg0MjY2N2E3MC42NTYgNzAuNjU2IDAgMCAxLTg1LjMzMzMzMyAwYy0yMy40NjY2NjctMTkuMTE0NjY3LTIzLjQ2NjY2Ny01MC4wMDUzMzMgMC02OS4xMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJjbG9zZSIgdW5pY29kZT0iJiM1OTA1NDsiIGQ9Ik02NDEuMzY1MzMzIDM4NGwzNTUuNDEzMzM0LTM1NS4zMjhjMzYuMDEwNjY3LTM2LjAxMDY2NyAzNi40MzczMzMtOTMuODY2NjY3IDAuNDI2NjY2LTEyOS44NzczMzNhOTEuNzMzMzMzIDkxLjczMzMzMyAwIDAgMC0xMjkuODc3MzMzIDAuNDI2NjY2TDUxMiAyNTQuNjM0NjY3bC0zNTUuMzI4LTM1NS40MTMzMzRjLTM2LjAxMDY2Ny0zNi4wMTA2NjctOTMuODY2NjY3LTM2LjQzNzMzMy0xMjkuODc3MzMzLTAuNDI2NjY2YTkxLjczMzMzMyA5MS43MzMzMzMgMCAwIDAgMC40MjY2NjYgMTI5Ljg3NzMzM0wzODIuNjM0NjY3IDM4NCAyNy4yMjEzMzMgNzM5LjMyOEE5MS42NDggOTEuNjQ4IDAgMCAwIDI2Ljc5NDY2NyA4NjkuMjA1MzMzYTkxLjczMzMzMyA5MS43MzMzMzMgMCAwIDAgMTI5Ljg3NzMzMy0wLjQyNjY2Nkw1MTIgNTEzLjM2NTMzMyA4NjcuMzI4IDg2OC43Nzg2NjdhOTEuNjQ4IDkxLjY0OCAwIDAgMCAxMjkuODc3MzMzIDAuNDI2NjY2IDkxLjczMzMzMyA5MS43MzMzMzMgMCAwIDAtMC40MjY2NjYtMTI5Ljg3NzMzM3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJtYXJrIiB1bmljb2RlPSImIzU5MDU1OyIgZD0iTTI1NiAxOC42NTE0MjlhNTEuMzQ2Mjg2IDUxLjM0NjI4NiAwIDAgMC00NC4zOTc3MTQgMjUuMzgwNTcxTDcuNjggMzk0LjM4NjI4NmMtMTQuMTE2NTcxIDI0LjEzNzE0My01LjQ4NTcxNCA1NC44NTcxNDMgMTkuMDE3MTQzIDY4LjY4MTE0M3M1NS44ODExNDMgNS40MTI1NzEgNjkuOTI0NTcxLTE4LjcyNDU3MmwxNzAuNDk2LTI5My4xNTY1NzEgNjI4LjUxNjU3MiA2MTkuMTU0Mjg1YTUxLjkzMTQyOSA1MS45MzE0MjkgMCAwIDAgNzIuNDExNDI4IDAuMDczMTQzIDQ5LjczNzE0MyA0OS43MzcxNDMgMCAwIDAgMC4xNDYyODYtNzEuMTY4TDI5NC42MTk0MjkgMzUuODRsLTIuNDEzNzE1LTIuNDEzNzE0YTUxLjYzODg1NyA1MS42Mzg4NTcgMCAwIDAtMzYuMjA1NzE0LTE0LjYyODU3MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ0cmFmZmljIiB1bmljb2RlPSImIzU5MDU2OyIgZD0iTTUxMiA2OTEuMmMtODQuODM4NCAwLTE1My42LTQ5LjY2NC0xNTMuNi0xMTAuOTUwNHYtNDQzLjY5OTJDMzU4LjQgNzUuMjY0IDQyNy4xNjE2IDI1LjYgNTEyIDI1LjZzMTUzLjYgNDkuNjY0IDE1My42IDExMC45NTA0VjU4MC4yNDk2QzY2NS42IDY0MS41MzYgNTk2LjgzODQgNjkxLjIgNTEyIDY5MS4yeiBtMCAxMDIuNGMxNDEuMzYzMiAwIDI1Ni05Ny40MzM2IDI1Ni0yMTcuNnYtNDM1LjJjMC0xMjAuMTY2NC0xMTQuNjM2OC0yMTcuNi0yNTYtMjE3LjZzLTI1NiA5Ny40MzM2LTI1NiAyMTcuNnY0MzUuMkMyNTYgNjk2LjE2NjQgMzcwLjYzNjggNzkzLjYgNTEyIDc5My42ek01MTIgNTYzLjJtLTc2LjggMGE3Ni44IDc2LjggMCAxIDEgMTUzLjYgMCA3Ni44IDc2LjggMCAxIDEtMTUzLjYgMFpNNTEyIDM1OC40bS03Ni44IDBhNzYuOCA3Ni44IDAgMSAxIDE1My42IDAgNzYuOCA3Ni44IDAgMSAxLTE1My42IDBaTTUxMiAxNTMuNm0tNzYuOCAwYTc2LjggNzYuOCAwIDEgMSAxNTMuNiAwIDc2LjggNzYuOCAwIDEgMS0xNTMuNiAwWiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImZ1bGwtZmlndXJlIiB1bmljb2RlPSImIzU5MDU3OyIgZD0iTTI2MC42MDggNjQwQzIyOS44MzY4IDY0MCAyMDQuOCA2MTQuNTUzNiAyMDQuOCA1ODMuMTE2OHYtMzk4LjIzMzZDMjA0LjggMTUzLjQ0NjQgMjI5Ljc4NTYgMTI4IDI2MC42MDggMTI4aDUwMi43ODRjMzAuODIyNCAwIDU1LjgwOCAyNS40NDY0IDU1LjgwOCA1Ni44ODMyVjU4My4xNjhDODE5LjIgNjE0LjU1MzYgNzk0LjIxNDQgNjQwIDc2My4zOTIgNjQweiBtNS42MzIgMTAyLjRoNDkxLjUyQzg0OC4yMzA0IDc0Mi40IDkyMS42IDY2OC4zNjQ4IDkyMS42IDU3Ny4wMjR2LTM4Ni4wNDhjMC05MS4zNDA4LTczLjM2OTYtMTY1LjM3Ni0xNjMuODQtMTY1LjM3NkgyNjYuMjRDMTc1Ljc2OTYgMjUuNiAxMDIuNCA5OS42MzUyIDEwMi40IDE5MC45NzZWNTc3LjAyNEMxMDIuNCA2NjguMzEzNiAxNzUuNzY5NiA3NDIuNCAyNjYuMjQgNzQyLjR6TTMyMy44OTEyIDQxOC42NjI0YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljg0IDM1LjQzMDRWNTI1LjAwNDhhMzUuODQgMzUuODQgMCAwIDAgMzUuODQgMzUuNDMwNGw3MS42OC0wLjYxNDRjMTkuNjA5NiAwIDM1Ljc4ODgtMTUuMzYgMzUuNzg4OC0zNC44MTZzLTE2LjE3OTItMzUuNDMwNC0zNS44NC0zNS40MzA0aC0zNS44NHYtMzUuNDgxNmEzNS44NCAzNS44NCAwIDAgMC0zNS43ODg4LTM1LjQzMDR6IG03MS42OC0yMTIuNjg0OGgtNzEuNjhhMzUuODQgMzUuODQgMCAwIDAtMzUuODQgMzUuNDgxNlYzMTIuMzJhMzUuODQgMzUuODQgMCAwIDAgNzEuNjggMHYtMzUuNDMwNGgzNS44NGMxOS42MDk2IDAgMzUuNzg4OC0xNi4wMjU2IDM1Ljc4ODgtMzUuNDMwNHMtMTYuMTc5Mi0zNS40ODE2LTM1Ljg0LTM1LjQ4MTZ6IG0zMTAuMzc0NCAyMTIuNjg0OGEzNS44NCAzNS44NCAwIDAgMC0zNS44NCAzNS40MzA0djM1LjQ4MTZoLTM1Ljc4ODhjLTE5LjY2MDggMC0zNS44NCAxNS45NzQ0LTM1Ljg0IDM1LjQzMDRzMTYuMTc5MiAzNS40MzA0IDM1Ljg0IDM1LjQzMDRoNzEuNjhhMzUuODQgMzUuODQgMCAwIDAgMzUuNzg4OC0zNS40MzA0di03MC45MTJhMzUuODQgMzUuODQgMCAwIDAtMzUuODQtMzUuNDMwNHogbTAtMjEyLjY4NDhINjM0LjM2OGMtMTkuNjYwOCAwLTM1Ljg0IDE2LjAyNTYtMzUuODQgMzUuNDgxNnMxNi4xNzkyIDM1LjQzMDQgMzUuODQgMzUuNDMwNGgzNS44NFYzMTIuMzJhMzUuODQgMzUuODQgMCAwIDAgNzEuNjI4OCAwdi03MC44NjA4YTM1Ljg0IDM1Ljg0IDAgMCAwLTM1Ljg0LTM1LjQ4MTZ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibWVhc3VyZSIgdW5pY29kZT0iJiM1OTA1ODsiIGQ9Ik0xMjkuMTI2NCAyMDMuMDA4YTEwMi4yOTc2IDEwMi4yOTc2IDAgMCAwLTAuMjA0OCAxNDQuNTg4OGw0MzQuODQxNiA0MzQuODQxNmExMDEuOTkwNCAxMDEuOTkwNCAwIDAgMCAxNDQuNTg4OC0wLjIwNDhsMjE3LjI0MTYtMjE3LjI0MTZjMzkuOTg3Mi0zOS45MzYgNDAuMDM4NC0xMDQuNzU1MiAwLjIwNDgtMTQ0LjU4ODhMNDkxLjAwOC0xNC40Mzg0YTEwMS45OTA0IDEwMS45OTA0IDAgMCAwLTE0NC41ODg4IDAuMjA0OHogbTEwOC4yODggMzYuNTA1NmwxNDUuNDU5Mi0xNDUuNDU5MmE1MS4yNTEyIDUxLjI1MTIgMCAwIDEgNzIuMTkyIDAuNDA5NmwzNjEuODMwNCAzNjEuODMwNGE1MS4yNTEyIDUxLjI1MTIgMCAwIDEgMC40MDk2IDcyLjE5MmwtMTQ1LjQ1OTIgMTQ1LjQ1OTJhNTEuMjUxMiA1MS4yNTEyIDAgMCAxLTcyLjE5Mi0wLjQwOTZsLTM2MS44MzA0LTM2MS44MzA0YTUxLjI1MTIgNTEuMjUxMiAwIDAgMS0wLjQwOTYtNzIuMTkyek0yNDcuOTYxNiAzMjYuOTYzMmwzNi4xOTg0IDM2LjE5ODQgMTA4LjY0NjQtMTA4LjU5NTItMzYuMjQ5Ni0zNi4yNDk2ek0zMjAuMzU4NCAzOTkuMzZsMzYuMTk4NCAzNi4xOTg0IDE0NC44NDQ4LTE0NC43OTM2LTM2LjE5ODQtMzYuMTk4NHogbTcyLjQ0OCA3Mi4zOTY4bDM2LjE5ODQgMzYuMTk4NEw1MzcuNiAzOTkuMzZsLTM2LjE5ODQtMzYuMTk4NHpNNTM3LjYgNjE2LjYwMTZsMzYuMTk4NCAzNi4xOTg0IDEwOC41OTUyLTEwOC42NDY0LTM2LjE5ODQtMzYuMTk4NHpNNDY1LjIwMzIgNTQ0LjE1MzZsMzYuMTk4NCAzNi4yNDk2IDE0NC43OTM2LTE0NC44NDQ4LTM2LjE5ODQtMzYuMTk4NHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJkaXNwbGF5LWxpc3QiIHVuaWNvZGU9IiYjNTkwNTk7IiBkPSJNMCA3OS4yNzQ2NjdoMjU2Vi00Mi42NjY2NjdIMHogbTM4NCAwaDI1NlYtNDIuNjY2NjY3aC0yNTZ6IG0zODQgMGgyNTZWLTQyLjY2NjY2N0g3Njh6TTAgMzIzLjA3MmgyNTZ2LTEyMS45NDEzMzNIMHogbTM4NCAwaDI1NnYtMTIxLjk0MTMzM2gtMjU2eiBtMzg0IDBoMjU2di0xMjEuOTQxMzMzSDc2OHpNNTEyIDY4OC42NEwwIDQ0NC45MjhWNTY2Ljg2OTMzM0w1MTIgODEwLjY2NjY2N3ogbTUxMi0yNDMuNzk3MzMzTDUxMiA2ODguNzI1MzMzVjgxMC42NjY2NjdsNTEyLTI0My43OTczMzR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iaGlkZS1saXN0IiB1bmljb2RlPSImIzU5MDYwOyIgZD0iTTAgNjg4LjcyNTMzM2gyNTZWODEwLjY2NjY2N0gweiBtMzg0IDBoMjU2VjgxMC42NjY2NjdoLTI1NnogbTM4NCAwaDI1NlY4MTAuNjY2NjY3SDc2OHpNMCA0NDQuOTI4aDI1NlY1NjYuODY5MzMzSDB6IG0zODQgMGgyNTZWNTY2Ljg2OTMzM2gtMjU2eiBtMzg0IDBoMjU2VjU2Ni44NjkzMzNINzY4ek01MTIgNzkuMzZMMCAzMjMuMDcydi0xMjEuOTQxMzMzTDUxMi00Mi42NjY2Njd6IG01MTIgMjQzLjc5NzMzM0w1MTIgNzkuMjc0NjY3Vi00Mi42NjY2NjdsNTEyIDI0My43OTczMzR6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0icmVuYW1lIiB1bmljb2RlPSImIzU5MDYxOyIgZD0iTTk2MCA2ODIuNjY2NjY3aC05OS41ODR2LTk5LjU4NGg0OS44MzQ2Njd2LTM5OC4xNjUzMzRoLTQ5LjgzNDY2N1Y4NS4zMzMzMzNoOTkuNTg0YTQ5Ljc0OTMzMyA0OS43NDkzMzMgMCAwIDEgNDkuNzQ5MzMzIDQ5Ljc0OTMzNFY2MzIuOTE3MzMzYTQ5Ljc0OTMzMyA0OS43NDkzMzMgMCAwIDEtNDkuNzQ5MzMzIDQ5Ljc0OTMzNHogbS04OTYtNTk3LjMzMzMzNGg0OTcuNzQ5MzMzVjE4NC45MTczMzNoLTQ0OFY1ODMuMDgyNjY3aDQ0OFY2ODIuNjY2NjY3SDY0YTQ5Ljc0OTMzMyA0OS43NDkzMzMgMCAwIDEtNDkuNzQ5MzMzLTQ5Ljc0OTMzNHYtNDk3LjgzNDY2NmMwLTI3LjQ3NzMzMyAyMi4xODY2NjctNDkuNzQ5MzMzIDQ5Ljc0OTMzMy00OS43NDkzMzR6TTIxMy4zMzMzMzMgNDgzLjU4NGgzNDguNDE2di0xOTkuMTY4SDIxMy4zMzMzMzN6TTc2MC45MTczMzMgNjgxLjQ3MmMwLjU5NzMzMyAxNi44MTA2NjcgMTAuOTIyNjY3IDEwMC42OTMzMzMgMTQ5LjMzMzMzNCAxMDAuNjkzMzMzVjg4MS44MzQ2NjdjLTk4LjkwMTMzMyAwLTE2MS4yOC0zMy4yOC0xOTguODI2NjY3LTc1LjE3ODY2N0M2NzQuMTMzMzMzIDg0OC4zODQgNjExLjU4NCA4ODEuNzQ5MzMzIDUxMiA4ODEuNzQ5MzMzdi05OS40OTg2NjZjMTM5LjM0OTMzMyAwIDE0OC44MjEzMzMtODMuNjI2NjY3IDE0OS4zMzMzMzMtOTkuNTg0di01OTcuMjQ4YzAtNC4wOTYtMS44NzczMzMtOTkuNjY5MzMzLTE0OS4zMzMzMzMtOTkuNjY5MzM0di05OS40OTg2NjZjOTkuNjY5MzMzIDAgMTYyLjEzMzMzMyAzMy40NTA2NjcgMTk5LjY4IDc1LjUyIDIuMzg5MzMzLTIuNzMwNjY3IDQuMzUyLTUuNTQ2NjY3IDcuMDgyNjY3LTguMjc3MzM0IDQ0LjQ1ODY2Ny00NC42MjkzMzMgMTA4Ljg4NTMzMy02Ny4yNDI2NjcgMTkxLjQ4OC02Ny4yNDI2NjZ2OTkuNDk4NjY2Yy0xMzkuNTIgMC0xNDguOTA2NjY3IDgzLjQ1Ni0xNDkuMzMzMzM0IDk5LjQ5ODY2N3oiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJjb3B5IiB1bmljb2RlPSImIzU5MDYyOyIgZD0iTTYzOS44NzIgNjM5LjY4SDE5Mi4zODRjLTM1LjIgMC02My44NzItMjguOC02My44NzItNjMuODcydi01NzUuMzZjMC0zNS4yIDI4LjgtNjQgNjMuODcyLTY0aDQ0Ny40ODhjMzUuMiAwIDYzLjkzNiAyOC44IDYzLjkzNiA2NHY1NzUuMzZjMCAzNS4wNzItMjguOCA2My44NzItNjMuOTM2IDYzLjg3MnogbTAtNjM5LjI5NkgxOTIuMzg0djU3NS4zNmg0NDcuNDg4di01NzUuMzZ6IG0xOTEuNzQ0IDgzMS4xMDRIMzg0LjEyOGMtMzUuMiAwLTYzLjkzNi0yOC44LTYzLjkzNi02My44NzJ2LTYzLjkzNmg2My45MzZ2NjMuOTM2aDQ0Ny40ODh2LTU3NS4zNmgtNjMuOTM2di02NGg2My45MzZjMzUuMiAwIDYzLjg3MiAyOC44IDYzLjg3MiA2NHY1NzUuMzZhNjQgNjQgMCAwIDEtNjMuODcyIDYzLjg3MnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJxcS16b25lIiB1bmljb2RlPSImIzU5MDYzOyIgZD0iTTUxMiA4OTZDMjI5LjAxNzYgODk2IDAgNjY2Ljk4MjQgMCAzODRzMjI5LjAxNzYtNTEyIDUxMi01MTIgNTEyIDIyOS4wMTc2IDUxMiA1MTJTNzk0Ljk4MjQgODk2IDUxMiA4OTZ6IG0zNTQuMTUwNC00MTguODE2bC0xODMuNjU0NC0xNTUuNDk0NCA2LjI0NjQtMjQuNjc4NGMtMTI5LjUzNi0xLjIyODgtMjE1LjA5MTIgMTEuMTEwNC0yMTUuMDkxMiAxMS4xMTA0bDIxMy44NjI0IDE0OS4yOTkyYy0xNzMuNjE5MiAzNS43ODg4LTQwOC44ODMyLTYuMTQ0LTM5MC4wNDE2LTcuNDI0IDI2NS40NzItOC42NTI4IDI3My4wNDk2LTIyLjIyMDggMjczLjA0OTYtMjIuMjIwOEwzNTcuODg4IDI3OC41MjhjMjkzLjEyLTE4LjUzNDQgMzc0Ljg4NjQgMTkuNzEyIDM3NC44ODY0IDE5LjcxMnMtMjAuMTIxNi0xNi4wMjU2LTM4Ljk2MzItMjQuNjc4NGw0NC4wMzItMTgyLjU3OTJjMS4yMjg4LTMuNjg2NC0xLjI4LTguNjUyOC0zLjc4ODgtMTEuMTEwNC0yLjU2LTEuMjI4OC0zLjc4ODgtMi40NTc2LTYuMjk3Ni0yLjQ1NzZzLTMuNzg4OCAwLTYuMjk3NiAxLjIyODhsLTIwOC44NDQ4IDEyMi4xNjMyLTIwOC44NDQ4LTEyMi4xNjMyYTExLjYyMjQgMTEuNjIyNCAwIDAgMC0xMi41NDQgMCA5LjgzMDQgOS44MzA0IDAgMCAwLTMuNzg4OCAxMS4xMTA0bDU1LjM0NzIgMjMxLjkzNkwxNTcuODQ5NiA0NzcuMTg0Yy0zLjc4ODggMi40NTc2LTUuMDE3NiA3LjQyNC0zLjc4ODggMTEuMTEwNHM1LjA2ODggNy40MjQgMTAuMDg2NCA3LjQyNGwyNDIuNzkwNCAxOS43MTJMNTAyLjU3OTIgNzM2LjI1NmMxLjIyODggMy42ODY0IDYuMjk3NiA2LjE0NCAxMC4wMzUyIDYuMTQ0IDUuMDY4OCAwIDguODA2NC0yLjQ1NzYgMTAuMDg2NC02LjE0NGw5NC4zNjE2LTIxOC40MTkyIDI0Mi43OTA0LTE5LjcxMmM1LjAxNzYgMCA4LjgwNjQtMy42ODY0IDEwLjA4NjQtNy40MjQgMS4yMjg4LTMuNjg2NCAwLTExLjExMDQtMy43ODg4LTEzLjU2OHoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzaW5hLXdlaWJvIiB1bmljb2RlPSImIzU5MDY0OyIgZD0iTTM5OS44NzIgMjgwLjA2NGMtMjIuODM1MiAwLTQzLjgyNzItMTguNzkwNC00NC4xODU2LTM5LjQ3NTItMC4zMDcyLTE3LjY2NCAxNC41NDA4LTMxLjEyOTYgMzQuNDU3Ni0zMS4xMjk2IDIzLjY1NDQgMCA0My41MiAxNy44MTc2IDQzLjYyMjQgMzkuMjE5MiAwLjIwNDggMTguMjc4NC0xNC4wOCAzMS4zODU2LTMzLjk0NTYgMzEuMzg1NnogbTU2LjcyOTYgMTUuNzE4NGMtNi43NTg0LTMuMzI4LTEzLjMxMi04LjE5Mi0xNy45NzEyLTE0LjEzMTItMS4wMjQtMS4yOCA1LjkzOTItOC44MDY0IDExLjU3MTItMTYuODk2IDcuMjE5MiA3LjkzNiAxMy43NzI4IDEyLjQ5MjggMTYuMTc5MiAxOC42ODggMS4wMjQgMi42MTEyLTguNjUyOCAxMi45NTM2LTkuNzI4IDEyLjMzOTJ6IG0xNDMuMzA4OCA4OS44MDQ4YTIyNS42ODk2IDIyNS42ODk2IDAgMCAxLTM0Ljk2OTYgMTcuNTEwNGMtNDAuNDQ4IDE2LjE3OTItODIuOTQ0IDIwLjk5Mi0xMjYuMTA1NiAxNy4yMDMyLTY1LjI4LTUuNjMyLTEyNS41NDI0LTI0Ljg4MzItMTcyLjQ0MTYtNzMuMzE4NC01NC4zNzQ0LTU2LjA2NC00Ny4wMDE2LTEyNy4wNzg0IDE2Ljk5ODQtMTcxLjU3MTIgNDMuMzE1Mi0zMC4xMDU2IDkyLjUxODQtNDAuNDQ4IDE0NC40ODY0LTM5LjE2OCA5LjQyMDggMCAxOC45NDQtMC43NjggMjguMjYyNCAwLjEwMjQgNTkuMTg3MiA1LjYzMiAxMTMuNjY0IDIzLjYwMzIgMTU4LjgyMjQgNjMuNjQxNiA2NS45OTY4IDU4LjM2OCA1OS4zOTIgMTM4LjgwMzItMTUuMDUyOCAxODUuNnogbS03My4yMTYtMTY0LjkxNTJjLTIyLjQ3NjgtMzQuMDQ4LTYyLjI1OTItNTQuNzMyOC0xMDUuNDcyLTU0LjkzNzYtNTQuNDI1Ni0wLjM1ODQtOTUuMjgzMiAzMC4yMDgtMTAyLjU1MzYgNzcuODI0YTc5LjIwNjQgNzkuMjA2NCAwIDAgMCAxLjA3NTIgMjkuOTUyYzEwLjk1NjggNDYuNjk0NCA0My4zMTUyIDcyLjc1NTIgODcuMjk2IDg0LjUzMTIgNDMuNDY4OCAxMS41MiA4My44NjU2IDMuOTkzNiAxMTUuNTA3Mi0zMC41MTUyIDI2LjExMi0yOC41Njk2IDI3LjE4NzItNzIuMTQwOCA0LjA5Ni0xMDYuODU0NHpNNTEyIDg5NkMyMjkuMjIyNCA4OTYgMCA2NjYuNzc3NiAwIDM4NHMyMjkuMjIyNC01MTIgNTEyLTUxMmMyODIuNzI2NCAwIDUxMiAyMjkuMjIyNCA1MTIgNTEyIDAgMjgyLjcyNjQtMjI5LjIyMjQgNTEyLTUxMiA1MTJ6IG0yNDQuMTIxNi02NjQuODgzMmMtNDMuNzI0OC02Ny4yNzY4LTExMC45NTA0LTEwMC42NTkyLTE4Ni4wMDk2LTExOS4wNC0zNi4zNTItOC45Ni03NC4yNC0xMS43MjQ4LTkzLjk1Mi0xNC43NDU2LTkzLjA4MTYgMi4zMDQtMTY1LjA2ODggMTYuMDc2OC0yMjkuOTkwNCA1Ni40MjI0LTgxLjgxNzYgNTAuODQxNi0xMDUuNjc2OCAxMjcuMDI3Mi02Mi44NzM2IDIxMy40NTI4IDQ1LjkyNjQgOTIuNjcyIDExNy40MDE2IDE2MS4yMjg4IDIxMS4yNTEyIDIwNS4zMTIgMTcuNDA4IDguMTQwOCAzNy4yMjI0IDEyLjggNTYuMzIgMTUuMTA0IDM5LjM3MjggNC45MTUyIDYyLjMxMDQtMTcuNDA4IDYxLjMzNzYtNTcuMDM2OC0wLjIwNDgtOC43MDQtMi4yMDE2LTE3LjIwMzItMi42NjI0LTI1Ljk1ODQtMC40MDk2LTcuNDI0IDAuMTUzNi0xNS4wNTI4IDAuMzA3Mi0yMi41MjggNy42OCAxLjI4IDE1LjM2IDIuMDQ4IDIyLjg4NjQgMy43Mzc2IDMwLjMxMDQgNi41MDI0IDYwLjMxMzYgMTcuMzA1NiA5MC44OCAxOC45NDQgNTMuMDk0NCAyLjgxNiA3Ni44LTI5LjI4NjQgNjAuNzIzMi03OS43MTg0LTYuOTYzMi0yMS40NTI4LTEuNzQwOC0yOC42NzIgMTguMjc4NC0zNS44NCA3NS40Njg4LTI3LjIzODQgOTcuMjI4OC05MC45MzEyIDUzLjUwNC0xNTguMTA1NnogbS0zOS41Nzc2IDI4Mi41NzI4Yy0xMi40OTI4IDE1Ljg3Mi00MC44MDY0IDE5LjUwNzItNDkuNzY2NCAxOS42MDk2YTIzLjk2MTYgMjMuOTYxNiAwIDAgMCAwLjE1MzYgNDcuOTc0NGgwLjIwNDhjNS44MzY4IDAgNTguMzY4LTEuNTM2IDg3LjA0LTM3LjkzOTIgMTEuNDE3Ni0xNC40Mzg0IDIzLjA5MTItNDAuMDg5NiAxMy44MjQtODAuMDI1NmEyNC4wMTI4IDI0LjAxMjggMCAxIDAtNDYuNjk0NCAxMC43NTJjNC4wOTYgMTcuNTEwNCAyLjQ1NzYgMzAuNDY0LTQuNzYxNiAzOS42Mjg4ek04NTcuNzAyNCA0MzUuMmEyNC4wNjQgMjQuMDY0IDAgMCAwLTI3LjQ0MzItMTkuOTY4IDIzLjk2MTYgMjMuOTYxNiAwIDAgMC0xOS45NjggMjcuNDQzMmM4LjkwODggNTYuNTc2LTAuMTUzNiAxMDAuNjA4LTI3LjAzMzYgMTMwLjcxMzYtNDYuNzk2OCA1Mi40Mjg4LTEzMi41NTY4IDQ5LjMwNTYtMTMzLjQyNzIgNDkuMzA1NmEyMy45NjE2IDIzLjk2MTYgMCAxIDAtMi4wNDggNDcuOTIzMmM0LjQ1NDQgMC4xNTM2IDEwOS40MTQ0IDMuODQgMTcxLjI2NC02NS4yOCAzNi44NjQtNDEuMzY5NiA0OS44Njg4LTk4LjYxMTIgMzguNjU2LTE3MC4xMzc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImNvbG9yLWNoYW5nZSIgdW5pY29kZT0iJiM1OTA2NTsiIGQ9Ik00OC43MTMxNDMgNDcxLjc3MTQyOWg5MjYuOTM5NDI4YTQ5LjAwNTcxNCA0OS4wMDU3MTQgMCAxIDEgMzAuMTM0ODU4IDg3LjI1OTQyOCA0OC44NTk0MjkgNDguODU5NDI5IDAgMCAxLTEwLjM4NjI4NiA5Ljg3NDI4NmwtMzQ2LjI1ODI4NiAyNDUuMDI4NTcxYTQ4LjIwMTE0MyA0OC4yMDExNDMgMCAwIDEtNDguNDIwNTcxIDQuMzg4NTcyIDQ5LjA3ODg1NyA0OS4wNzg4NTcgMCAwIDEtNy4zMTQyODYtODQuNDhsMjMyLjAwOTE0My0xNjQuMjA1NzE1SDQ4LjY0Yy0yNi43NzAyODYgMC00OC40OTM3MTQtMjEuOTQyODU3LTQ4LjQ5MzcxNC00OC45MzI1NzEgMC0yNy4wNjI4NTcgMjEuNzIzNDI5LTQ4LjkzMjU3MSA0OC41NjY4NTctNDguOTMyNTcxeiBtOTI2LjkzOTQyOC0xNzUuNTQyODU4SDQ4LjY0YTQ4LjI3NDI4NiA0OC4yNzQyODYgMCAwIDEtMzQuMzA0LTE0LjMzNiA0OS4xNTIgNDkuMTUyIDAgMCAxIDQuMjQyMjg2LTcyLjkyMzQyOGMyLjg1MjU3MS0zLjY1NzE0MyA2LjI5MDI4Ni03LjAyMTcxNCAxMC4yNC05Ljg3NDI4NmwzNDYuMzMxNDI4LTI0NS4wMjg1NzFhNDguMjAxMTQzIDQ4LjIwMTE0MyAwIDAgMSA2Ny41ODQgMTEuOTIyMjg1IDQ5LjIyNTE0MyA0OS4yMjUxNDMgMCAwIDEtMTEuODQ5MTQzIDY4LjE2OTE0M0wxOTguODc1NDI5IDE5OC4zNjM0MjloNzc2Ljc3NzE0MmMyNi43NzAyODYgMCA0OC40OTM3MTQgMjEuOTQyODU3IDQ4LjQ5MzcxNSA0OC45MzI1NzFhNDguNzEzMTQzIDQ4LjcxMzE0MyAwIDAgMS00OC40OTM3MTUgNDguOTMyNTcxeiIgIGhvcml6LWFkdi14PSIxMDU1IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImNyZWF0LWN1c3RvbS1tYXAiIHVuaWNvZGU9IiYjNTkwNjY7IiBkPSJNNzcwLjkyNTcxNC01NC43MTA4NTdIMjUzLjA3NDI4NmExNzkuOTMxNDI5IDE3OS45MzE0MjkgMCAwIDAtMTc5LjcxMiAxNzkuNzEyVjY0Mi45MjU3MTRhMTc5LjkzMTQyOSAxNzkuOTMxNDI5IDAgMCAwIDE3OS43MTIgMTc5LjcxMmgyNTEuMzkyYTUwLjE3NiA1MC4xNzYgMCAxIDAgMC0xMDAuNDI1MTQzSDI1My4wMDExNDNjLTQzLjczOTQyOSAwLTc5LjI4Njg1Ny0zNS41NDc0MjktNzkuMjg2ODU3LTc5LjI4Njg1N3YtNTE3Ljk5NzcxNGMwLTQzLjczOTQyOSAzNS41NDc0MjktNzkuMjg2ODU3IDc5LjI4Njg1Ny03OS4yODY4NTdoNTE3Ljk5NzcxNGM0My43Mzk0MjkgMCA3OS4yODY4NTcgMzUuNTQ3NDI5IDc5LjI4Njg1NyA3OS4yODY4NTdWMzg4LjE2OTE0M2E1MC4xNzYgNTAuMTc2IDAgMSAwIDEwMC40MjUxNDMgMHYtMjYzLjE2OGExNzkuOTMxNDI5IDE3OS45MzE0MjkgMCAwIDAtMTc5LjcxMi0xNzkuNzEyek05MDAuNTM0ODU3IDU1Mi4zNzQ4NTdINTYwLjU2Njg1N2E1MC4xNzYgNTAuMTc2IDAgMCAwIDAgMTAwLjM1MmgzMzkuOTY4YTUwLjI0OTE0MyA1MC4yNDkxNDMgMCAwIDAgMC0xMDAuMzUyek03MzAuNTUwODU3IDM4Mi4zOTA4NTdhNTAuMTc2IDUwLjE3NiAwIDAgMC01MC4xNzYgNTAuMTc2Vjc3Mi41MzQ4NTdhNTAuMTc2IDUwLjE3NiAwIDEgMCAxMDAuMzUyIDB2LTMzOS45NjhhNTAuMjQ5MTQzIDUwLjI0OTE0MyAwIDAgMC01MC4xNzYtNTAuMTc2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImN1c3RvbS1tYXAiIHVuaWNvZGU9IiYjNTkwNjc7IiBkPSJNOTM2LjU1MDQgNzgzLjM2TDc1Mi41Mzc2IDgzMC43MmEyOC4wNTc2IDI4LjA1NzYgMCAwIDEtMTkuNzYzMi0yLjIyNzJsLTIxNS42Mjg4LTExMC4wOC0xOTguNCA5Mi4yODhhMjguMDU3NiAyOC4wNTc2IDAgMCAxLTIzLjA2NTYgMC4zMDcyTDgyLjE3NiA3MTguMTgyNGMtMTEuODUyOC01LjE0NTYtMTkuNjA5Ni0xNy45Mi0xOS42MDk2LTMyLjA1MTJ2LTY1My41MTY4YzAtMTEuMzY2NCA0Ljk5Mi0yMi4wMTYgMTMuNDE0NC0yOC40MTYgOC4zOTY4LTYuNCAxOS4wOTc2LTcuNzMxMiAyOC41Njk2LTMuNjM1MmwyMDEuOTMyOCA4Ny43ODI0IDE5OS4zNDcyLTkyLjc3NDRjMy43ODg4LTEuNzQwOCA3LjgzMzYtMi42MzY4IDExLjg3ODQtMi42MzY4IDQuMzc3NiAwIDguNzU1MiAxLjA0OTYgMTIuODUxMiAzLjEyMzJsMTUuOTc0NCA4LjE2NjQtMjcuMzQwOCA2MS42OTYtMi4wNDgtMS4wNDk2LTE5OC40IDkyLjI4OGEyOC4xNiAyOC4xNiAwIDAgMS0yMy4wNjU2IDAuMzMyOEwxMjQuMjExMiA4Mi45NDRWNjYyLjYwNDhsMTgyLjI3MiA3OS4yNTc2IDE5OS4zNDcyLTkyLjc0ODhjNy45MzYtMy43MTIgMTYuODk2LTMuNTMyOCAyNC43Mjk2IDAuNDYwOGwyMTguMzQyNCAxMTEuNDYyNCAxNDkuODg4LTM4LjU1MzZ2LTU4Mi45MTJsLTI5LjAzMDQgNy40NDk2LTE0LjY2ODgtMzMuMDc1MmMtMi4zMDQtNS43ODU2LTQuODY0LTExLjUyLTcuNjAzMi0xNy4wNzUybC0wLjQ2MDgtMS4xMDA4LTUuMzc2LTEyLjEwODggODEuMDQ5Ni0yMC44Mzg0YTI4LjQxNiAyOC40MTYgMCAwIDEgMjYuMTEyIDYuNjA0OGM3LjM3MjggNi41MDI0IDExLjY0OCAxNi40MDk2IDExLjY0OCAyNi45MzEyVjc0OS44MjRjMCAxNi4wMjU2LTkuOTA3MiAyOS45MDA4LTIzLjkxMDQgMzMuNTM2ek0yODcuODIwOCA2NTMuMjg2NHYtNDE0LjcyYzAtNy42MDMyIDguNTUwNC0xMy43NDcyIDE5LjA0NjQtMTMuNzQ3MnMxOS4wNDY0IDYuMTQ0IDE5LjA0NjQgMTMuNzQ3MnY0MTQuNzJjMCA3LjYwMzItOC41NTA0IDEzLjc3MjgtMTkuMDQ2NCAxMy43NzI4cy0xOS4wNDY0LTYuMTY5Ni0xOS4wNDY0LTEzLjc3Mjh6IG0yMTAuODQxNi05MS42MjI0di0yMDguNjkxMmMwLTcuNjAzMiA4LjU1MDQtMTMuNzcyOCAxOS4wNDY0LTEzLjc3MjhzMTkuMDQ2NCA2LjE0NCAxOS4wNDY0IDEzLjc3Mjh2MjA4LjY5MTJjMCA3LjYwMzItOC41NTA0IDEzLjc5ODQtMTkuMDQ2NCAxMy43OTg0cy0xOS4wNDY0LTYuMTk1Mi0xOS4wNDY0LTEzLjc5ODR6IG0yNzAuMDgtMTMwLjk2OTZWNjgyLjcwMDhjMCA3LjYwMzItOC41MjQ4IDEzLjc3MjgtMTkuMDQ2NCAxMy43NzI4LTEwLjU0NzIgMC0xOS4wNDY0LTYuMTY5Ni0xOS4wNDY0LTE2LjYxNDR2LTI1Mi4wMzJjMC00LjczNiA4LjQ5OTItMTAuOTMxMiAxOS4wNDY0LTEwLjkzMTIgMTAuNTIxNiAwIDE5LjA3MiA2LjE5NTIgMTkuMDcyIDEzLjc3Mjh6IG0tMTc4LjUwODgtNDkwLjkwNTZsODEuNDA4IDU5LjkwNC02My44OTc2IDQ4LjQzNTItMTcuNTEwNC0xMDguMzM5MnogbTIyNC4yMzA0IDI4NS40MTQ0bC02Ni40NTc2IDUyLjk2NjQtMTMyLjk0MDgtMjExLjQwNDggNjkuMTItNTUuNDQ5NiAxMzAuMjc4NCAyMTMuODg4eiBtMzMuNDg0OCA4Ni4zNDg4cy0xNy43OTIgMTUuMjU3Ni0zNy4xMiAyNS42NzY4Yy0xOS4zMDI0IDEwLjQxOTItMzAuMTMxMi02LjE0NC0zMC4xMzEyLTYuMTQ0bC0yMy41NTItMzguMDQxNiA2OS4xNzEyLTUzLjE0NTZzMjAuMTQ3MiAzMi44MTkyIDI2LjE4ODggNDMuODUyOGM2LjA0MTYgMTEuMDU5Mi00LjU1NjggMjcuODAxNi00LjU1NjggMjcuODAxNnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWdlbmQtZm9sZCIgdW5pY29kZT0iJiM1OTA2ODsiIGQ9Ik01MTIgNjc2LjU3MTQyOWE2MC42MzU0MjkgNjAuNjM1NDI5IDAgMCAxLTQzLjQ0Njg1Ny0xOC40MzJsLTM3Ny40MTcxNDMtMzg2LjE5NDI4NmE2My45MjY4NTcgNjMuOTI2ODU3IDAgMCAxIDAtODguOTQxNzE0IDYwLjQ4OTE0MyA2MC40ODkxNDMgMCAwIDEgODYuOTY2ODU3IDBMNTEyIDUyNC43MjY4NTdsMzMzLjg5NzE0My0zNDEuNzIzNDI4YTYwLjQ4OTE0MyA2MC40ODkxNDMgMCAwIDEgODYuOTY2ODU3IDAgNjMuOTI2ODU3IDYzLjkyNjg1NyAwIDAgMSAwIDg4Ljk0MTcxNGwtMzc3LjQxNzE0MyAzODYuMTk0Mjg2QTYwLjU2MjI4NiA2MC41NjIyODYgMCAwIDEgNTEyIDY3Ni41NzE0Mjl6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGVnZW5kLXVuZm9sZCIgdW5pY29kZT0iJiM1OTA2OTsiIGQ9Ik01MTIgOTEuNDI4NTcxYTYwLjYzNTQyOSA2MC42MzU0MjkgMCAwIDAtNDMuNDQ2ODU3IDE4LjQzMmwtMzc3LjQxNzE0MyAzODYuMTk0Mjg2YTYzLjkyNjg1NyA2My45MjY4NTcgMCAwIDAgMCA4OC45NDE3MTQgNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMCA4Ni45NjY4NTcgMEw1MTIgMjQzLjI3MzE0M2wzMzMuODk3MTQzIDM0MS43MjM0MjhhNjAuNDg5MTQzIDYwLjQ4OTE0MyAwIDAgMCA4Ni45NjY4NTcgMCA2My45MjY4NTcgNjMuOTI2ODU3IDAgMCAwIDAtODguOTQxNzE0bC0zNzcuNDE3MTQzLTM4Ni4xOTQyODZBNjAuNTYyMjg2IDYwLjU2MjI4NiAwIDAgMCA1MTIgOTEuNDI4NTcxeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImxlZ2VuZC1iaWciIHVuaWNvZGU9IiYjNTkwNzA7IiBkPSJNMzA3LjIgNDg2LjRoMTAyLjRWNTg4LjhIMzA3LjJ6IG0wLTE1My42aDEwMi40VjQzNS4ySDMwNy4yeiBtMC0xNTMuNmgxMDIuNHYxMDIuNEgzMDcuMnogbTE1My42IDMwNy4yaDI1NlY1ODguOEg0NjAuOHogbTMwNy4yIDMwNy4ySDI1NmExNTMuNiAxNTMuNiAwIDAgMS0xNTMuNi0xNTMuNnYtNTEyYTE1My42IDE1My42IDAgMCAxIDE1My42LTE1My42aDUxMmExNTMuNiAxNTMuNiAwIDAgMSAxNTMuNiAxNTMuNlY2NDBhMTUzLjYgMTUzLjYgMCAwIDEtMTUzLjYgMTUzLjZ6IG01MS4yLTY2NS42YTUxLjIgNTEuMiAwIDAgMC01MS4yLTUxLjJIMjU2YTUxLjIgNTEuMiAwIDAgMC01MS4yIDUxLjJWNjQwYTUxLjIgNTEuMiAwIDAgMCA1MS4yIDUxLjJoNTEyYTUxLjIgNTEuMiAwIDAgMCA1MS4yLTUxLjJ6IG0tMzU4LjQgMjA0LjhoMjU2VjQzNS4ySDQ2MC44eiBtMC0xNTMuNmgyNTZ2MTAyLjRINDYwLjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iYXR0cmlidXRlIiB1bmljb2RlPSImIzU5MDcxOyIgZD0iTTEwMjQgNTExLjM0MTcxNFY3MjQuNjI2Mjg2QzEwMjQgODAzLjEwODU3MSA5NTguNDY0IDg2Ni43NDI4NTcgODc3LjcxNDI4NiA4NjYuNzQyODU3SDE0Ni4yODU3MTRDNjUuNTM2IDg2Ni43NDI4NTcgMCA4MDMuMTA4NTcxIDAgNzI0LjYyNjI4NnYtNzEwLjUwOTcxNUMwLTY0LjM2NTcxNCA2NS41MzYtMTI4IDE0Ni4yODU3MTQtMTI4aDczMS40Mjg1NzJjODAuNzQ5NzE0IDAgMTQ2LjI4NTcxNCA2My42MzQyODYgMTQ2LjI4NTcxNCAxNDIuMTE2NTcxek05NC41NzM3MTQgNzc0Ljg3NTQyOWMxMy42Nzc3MTQgMTMuMzg1MTQzIDMyLjMyOTE0MyAyMC45MTg4NTcgNTEuNzg1MTQzIDIwLjg0NTcxNGg3MzEuNTAxNzE0YzE5LjQ1NiAwIDM4LjAzNDI4Ni03LjUzMzcxNCA1MS43MTItMjAuODQ1NzE0IDEzLjc1MDg1Ny0xMy4zODUxNDMgMjEuMzU3NzE0LTMxLjQ1MTQyOSAyMS4zNTc3MTUtNTAuMzIyMjg2di0xNDIuMTg5NzE0SDczLjA2OTcxNFY3MjQuNTUzMTQzYzAgMTguODcwODU3IDcuNjggMzcuMDEwMjg2IDIxLjUwNCA1MC4zMjIyODZ6IG0zMDcuNTY1NzE1LTUxMi4yMTk0Mjl2MjQ4LjY4NTcxNGgyMTkuNzIxMTQydi0yNDguNjg1NzE0eiBtMjE5LjcyMTE0Mi03MC45NDg1NzF2LTI0OC42ODU3MTVINDAyLjEzOTQyOXYyNDguNjg1NzE1eiBtLTI5Mi43OTA4NTcgNzAuOTQ4NTcxSDczLjE0Mjg1N3YyNDguNjg1NzE0aDI1NnogbS0yMzQuNDk2LTI5OC45MzQ4NTdhNjkuNDg1NzE0IDY5LjQ4NTcxNCAwIDAgMC0yMS41MDQgNTAuMTc2VjE5MS42MzQyODZoMjU2di0yNDguNjg1NzE1SDE0Ni4zNTg4NTdhNzMuODc0Mjg2IDczLjg3NDI4NiAwIDAgMC01MS43ODUxNDMgMjAuNzcyNTcyek05NTAuODU3MTQzIDEzLjg5NzE0M2MwLTE4Ljc5NzcxNC03LjY4LTM2Ljg2NC0yMS4zNTc3MTQtNTAuMTc2cy0zMi4zMjkxNDMtMjAuNzcyNTcxLTUxLjcxMi0yMC42OTk0MjlINjk0LjkzMDI4NnYyNDguNjg1NzE1SDk1MC44NTcxNDN6IG0wIDI0OC43NTg4NTdINjk0Ljg1NzE0M3YyNDguNjg1NzE0SDk1MC44NTcxNDN6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibGVnZW5kLXNtYWxsIiB1bmljb2RlPSImIzU5MDcyOyIgZD0iTTI3My4zNDY4NTEgMTg1LjU2NDI3OWMtMTkuMDE3MDYxIDAtMzguMTA3MjY1LTE5LjE2MzM0Ni0zOC4xMDcyNjUtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTA3MjY1LTM4LjM5OTgzNiAzOC4xMDcyNjUgMTkuMjM2NDg5IDM4LjEwNzI2NiAzOC4zOTk4MzZjMCAyNS41OTk4OS0xMi42NTM2NiAzOC4zOTk4MzUtMzguMTA3MjY2IDM4LjM5OTgzNXogbTAgNDczLjU5Nzk3Yy0xOS4wMTcwNjEgMC0zOC4xMDcyNjUtMTkuMTYzMzQ2LTM4LjEwNzI2NS0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xMDcyNjUtMzguMzk5ODM2IDM4LjEwNzI2NSAxOS4yMzY0ODkgMzguMTA3MjY2IDM4LjM5OTgzNi0xMi42NTM2NiAzOC4zOTk4MzUtMzguMTA3MjY2IDM4LjM5OTgzNXogbTAtMjM2Ljc2MjQxNGMtMTkuMDE3MDYxIDAtMzguMTA3MjY1LTE5LjIzNjQ4OS0zOC4xMDcyNjUtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTA3MjY1LTM4LjM5OTgzNSAzOC4xMDcyNjUgMTkuMTYzMzQ2IDM4LjEwNzI2NiAzOC4zOTk4MzUtMTIuNjUzNjYgMzguMzk5ODM1LTM4LjEwNzI2NiAzOC4zOTk4MzV6TTg1OC4xMjE0ODggODk1Ljk5NzgwNmgtNjk5LjI0MjcxN0ExNTcuOTE0NzUyIDE1Ny45MTQ3NTIgMCAwIDEgMC4wMTMxNjYgNzM1Ljk2MTkyVjI1LjYwMTUzNkMwLjAxMzE2Ni01Ny42MzQ2NzkgNjkuOTM3NDM3LTEyNy45OTc4MDYgMTU4Ljk1MTkxMy0xMjcuOTk3ODA2aDcwNS41MzI5NzZhMTU3LjkxNDc1MiAxNTcuOTE0NzUyIDAgMCAxIDE1OC45Mzg3NDggMTU5Ljk2Mjc0M1Y3MzUuOTYxOTJDMTAxNy4wNjAyMzYgODI1LjU2MTUzNiA5NDcuMTM1OTY0IDg5NS45OTc4MDYgODU4LjEyMTQ4OCA4OTUuOTk3ODA2eiBtODIuNjUxMDc0LTg2NC4wMzI4NjlhNzcuNTMxMDk2IDc3LjUzMTA5NiAwIDAgMC03Ni4yODc2NzMtNzYuNzk5NjcxSDE1OC45NTE5MTNjLTQ0LjU0MzgwOSAwLTc2LjI4NzY3MyAzOC4zOTk4MzUtNzYuMjg3NjczIDc2Ljc5OTY3MVY3MzYuMDM1MDYzYzAgNDQuNzYzMjM3IDM4LjEwNzI2NSA3Ni43OTk2NzEgNzYuMjg3NjczIDc2Ljc5OTY3MWg3MDUuNTMyOTc2YzQ0LjU0MzgwOSAwIDc2LjI4NzY3My0zOC4zOTk4MzUgNzYuMjg3NjczLTc2Ljc5OTY3MXogbS0xOTcuMDQ2MDEyIDYyNy4xOTczMTJINDMyLjI4NTU5OWMtMjUuNDUzNjA1IDAtMzguMTgwNDA4LTE5LjE2MzM0Ni0zOC4xODA0MDgtMzguMzk5ODM1czE5LjAxNzA2MS0zOC4zOTk4MzUgMzguMTgwNDA4LTM4LjM5OTgzNmgzMTEuNDQwOTUxYzE5LjAxNzA2MSAwIDM4LjEwNzI2NSAxOS4yMzY0ODkgMzguMTA3MjY1IDM4LjM5OTgzNnMtMTkuMDE3MDYxIDM4LjM5OTgzNS0zOC4xMDcyNjUgMzguMzk5ODM1eiBtMC0yMzYuNzYyNDE0SDQzMi4yODU1OTljLTI1LjQ1MzYwNSAwLTM4LjE4MDQwOC0xOS4yMzY0ODktMzguMTgwNDA4LTM4LjM5OTgzNXMxOS4wMTcwNjEtMzguMzk5ODM1IDM4LjE4MDQwOC0zOC4zOTk4MzVoMzExLjQ0MDk1MWMxOS4wMTcwNjEgMCAzOC4xMDcyNjUgMTkuMTYzMzQ2IDM4LjEwNzI2NSAzOC4zOTk4MzVzLTE5LjAxNzA2MSAzOC4zOTk4MzUtMzguMTA3MjY1IDM4LjM5OTgzNXogbTAtMjM2LjgzNTU1Nkg0MzIuMjg1NTk5Yy0xOS4wOTAyMDQgMC0zOC4xODA0MDgtMTkuMTYzMzQ2LTM4LjE4MDQwOC0zOC4zOTk4MzVzMTkuMDE3MDYxLTM4LjM5OTgzNSAzOC4xODA0MDgtMzguMzk5ODM2aDMxMS40NDA5NTFjMTkuMDE3MDYxIDAgMzguMTA3MjY1IDE5LjIzNjQ4OSAzOC4xMDcyNjUgMzguMzk5ODM2IDAgMjUuNTk5ODktMTkuMDE3MDYxIDM4LjM5OTgzNS0zOC4xMDcyNjUgMzguMzk5ODM1eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImNsb3NlLWxlZ2VuZCIgdW5pY29kZT0iJiM1OTA3MzsiIGQ9Ik02NDMuMTQ1MTQzIDU4Ni44OTgyODZMNTEyIDQ1NS42OCAzODAuODU0ODU3IDU4Ni44OTgyODZsLTcxLjY4LTcxLjc1MzE0M0w0NDAuMTczNzE0IDM4NCAzMDkuMTAxNzE0IDI1Mi44NTQ4NTdsNzEuNzUzMTQzLTcxLjY4TDUxMiAzMTIuMTczNzE0bDEzMS4xNDUxNDMtMTMxLjE0NTE0MyA3MS42OCA3MS43NTMxNDNMNTgzLjgyNjI4NiAzODRsMTMxLjE0NTE0MyAxMzEuMTQ1MTQzek01MTIgODkxLjE3MjU3MUE1MDcuMDk5NDI5IDUwNy4wOTk0MjkgMCAwIDEgNC43NTQyODYgMzg0IDUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSA1MTItMTIzLjI0NTcxNCA1MDcuMDk5NDI5IDUwNy4wOTk0MjkgMCAwIDEgMTAxOS4yNDU3MTQgMzg0IDUwNy4wOTk0MjkgNTA3LjA5OTQyOSAwIDAgMSA1MTIgODkxLjI0NTcxNHogbTAtOTEyLjk2OTE0MkE0MDYuMzA4NTcxIDQwNi4zMDg1NzEgMCAwIDAgMTA2LjIwMzQyOSAzODQgNDA2LjMwODU3MSA0MDYuMzA4NTcxIDAgMCAwIDUxMiA3ODkuNzk2NTcxIDQwNi4zMDg1NzEgNDA2LjMwODU3MSAwIDAgMCA5MTcuNzk2NTcxIDM4NCA0MDYuMzA4NTcxIDQwNi4zMDg1NzEgMCAwIDAgNTEyLTIxLjc5NjU3MXoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmb250LWNvbG9yIiB1bmljb2RlPSImIzU5MDc0OyIgZD0iTTQ5NS44NzIgODMyTDI0NC4yMjQgMTYwaDExOS42OGw1Mi4yMjQgMTU2LjhoMjU1Ljc0NGw1Ni4zMi0xNTYuOGgxMTkuNjhMNTk2LjI4OCA4MzJINDk1Ljg3MnpNNTQ0IDY4OS4xNTJsOTIuMTYtMjc4LjUyOEg0NDcuNzQ0TDU0NCA2ODkuMjE2eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImJvbGQiIHVuaWNvZGU9IiYjNTkwNzU7IiBkPSJNMzg0IDM5Ny44MjRoMjA4Ljg5NmMzMC43MiAwIDU2LjMyIDguNzA0IDc2LjggMjYuMTEyIDIwLjQ4IDE3LjQwOCAzMC43MiA0Mi40OTYgMzAuNzIgNzUuMjY0IDAgMzYuODY0LTkuMjE2IDYyLjc4NC0yNy42NDggNzcuODI0LTE4LjQzMiAxNS4wNC00NS4wNTYgMjIuNTI4LTc5Ljg3MiAyMi41MjhIMzg0di0yMDEuNzI4ek0yNTYgNzA0aDM1NS4zMjhjNjUuNTM2IDAgMTE4LjA4LTE1LjA0IDE1Ny42OTYtNDUuMDU2IDM5LjYxNi0zMC4wOCA1OS4zOTItNzUuNDU2IDU5LjM5Mi0xMzYuMTkyIDAtMzYuODY0LTkuMDI0LTY4LjQ4LTI3LjEzNi05NC43Mi0xOC4xMTItMjYuMjQtNDMuODQtNDYuNTkyLTc3LjMxMi02MC45Mjh2LTIuMDQ4YzQ1LjA1Ni05LjYgNzkuMTY4LTMwLjkxMiAxMDIuNC02NHMzNC44MTYtNzQuNTYgMzQuODE2LTEyNC40MTZjMC0yOC42NzItNS4xMi01NS40ODgtMTUuMzYtODAuMzg0LTEwLjI0LTI0Ljk2LTI2LjI0LTQ2LjQtNDguMTI4LTY0LjUxMi0yMS44MjQtMTguMTEyLTQ5Ljg1Ni0zMi40NDgtODMuOTY4LTQzLjAwOC0zNC4xMTItMTAuNTYtNzQuNzUyLTE1Ljg3Mi0xMjEuODU2LTE1Ljg3MkgyNTZWNzA0eiBtMTI4LTYyNi42ODhoMjI2LjMwNGMzOC45MTIgMCA2OS4xMiAxMC4wNDggOTAuNjI0IDMwLjIwOCAyMS41MDQgMjAuMTYgMzIuMjU2IDQ4LjY0IDMyLjI1NiA4NS41MDQgMCAzNi4xNi0xMC43NTIgNjQtMzIuMjU2IDgzLjQ1Ni0yMS41MDQgMTkuNDU2LTUxLjcxMiAyOS4xODQtOTAuNjI0IDI5LjE4NEgzODR2LTIyOC4zNTJ6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0iaXRhbGljcyIgdW5pY29kZT0iJiM1OTA3NjsiIGQ9Ik02MTYuNTEyIDU3NmwtNzkuMDQtNDQ4SDcwNHYtMTI4SDI1NnYxMjhoMTUxLjQ4OGw3OS4wNCA0NDhIMzIwVjcwNGg0NDh2LTEyOEg2MTYuNTEyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9ImZvbnQiIHVuaWNvZGU9IiYjNTkwNzc7IiBkPSJNODc1LjI2NCAwaC0xMDYuNjg4YTIwLjYwOCAyMC42MDggMCAwIDAtMTkuMzI4IDEzLjU2OGwtNzcuNDQgMjA2LjIwOEg0MDQuNDhsLTcyLjgzMi0yMDUuNzZhMjAuNzM2IDIwLjczNiAwIDAgMC0xOS40NTYtMTQuMDE2SDIxMi43MzZhMjAuOCAyMC44IDAgMCAwLTE3LjE1MiA5LjIxNiAyMS42OTYgMjEuNjk2IDAgMCAwLTIuMTc2IDE5LjY0OEw0NjUuMjE2IDc1NC40MzJBMjAuNjcyIDIwLjY3MiAwIDAgMCA0ODQuNjA4IDc2OGgxMDAuOTI4YzguMzIgMCAxNi01LjE4NCAxOS4yLTEzLjE4NGwyODkuNzI4LTcyNS41MDRhMjEuNDQgMjEuNDQgMCAwIDAtMS45ODQtMTkuODQgMjAuNjcyIDIwLjY3MiAwIDAgMC0xNy4yMTYtOS40NzJ6TTQ0Ni44NDggMzQwLjQxNmgxODAuMjI0bC02My4zNiAxNzIuMjI0Yy0xMC41NiAyOC44LTE5Ljk2OCA1NS4yOTYtMjguMDk2IDc5LjM2LTYuMjcyLTIyLjUyOC0xMy40NC00NC45OTItMjEuNDQtNjcuMzI4bC02Ny4zMjgtMTg0LjMyeiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9Imp1c3RpZnktYWxpZ24iIHVuaWNvZGU9IiYjNTkwNzg7IiBkPSJNMTI4IDM4NFY1MTJoNzY4di0xMjhIMTI4eiBtMCAxOTJWNzA0aDc2OHYtMTI4SDEyOHogbTAtNTc2djEyOGg3Njh2LTEyOEgxMjh6IG03NjggMzIwdi0xMjhIMTI4VjMyMGg3Njh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0ibWlkZGxlLWFsaWdubWVuIiB1bmljb2RlPSImIzU5MDc5OyIgZD0iTTI1NiAzODRWNTEyaDUxMnYtMTI4SDI1NnpNMTI4IDU3NlY3MDRoNzY4di0xMjhIMTI4eiBtMC01NzZ2MTI4aDc2OHYtMTI4SDEyOHogbTY0MCAzMjB2LTEyOEgyNTZWMzIwaDUxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJmb250LXNpemUiIHVuaWNvZGU9IiYjNTkwODA7IiBkPSJNMjYxLjUwNCAyOTMuNjMybDEwMy42OCAzNDIuODQ4IDEwNC4wNjQtMzQyLjg0OEgyNjEuNTA0TTQ1OC42ODggNzY4aC0xNTguMDhMNjQgMGgxMDkuNjMybDU1LjkzNiAxODIuNzg0SDUwMy42OEw1NjAuNjQgMGgxMzcuMjhMNDU4LjY4OCA3NjhtMjQ4LjU3Ni01OTAuMDhsNjAuMTYgMTYzLjg0IDYwLjIyNC0xNjMuODRoLTEyMC4zODRtMTE0LjMwNCAyNDAuMTI4aC05MS41ODRsLTczLjYtMjAzLjQ1NiAzMS44NzItMTAyLjQ2NCAwLjUxMiAxLjQ3MmgxNTguNzg0bDMzLjAyNC0xMDUuNzkySDk2MGwtMTM4LjQzMiA0MTAuMjQiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJzdHJpa2VvdXQiIHVuaWNvZGU9IiYjNTkwODE7IiBkPSJNMzMyLjQ4IDM4NEMyODUuNTA0IDQyNC4xOTIgMjU2IDQ4MC40NDggMjU2IDU0NCAyNTYgNjcwLjUyOCAzNzIuOTI4IDc2OCA1MTIgNzY4czI1Ni05Ny40NzIgMjU2LTIyNGgtMTI4QzY0MCA1OTQuMTc2IDU4NC45NiA2NDAgNTEyIDY0MGMtNzIuOTYgMC0xMjgtNDUuODI0LTEyOC05NlM0MzkuMDQgNDQ4IDUxMiA0NDhjNjkuMjQ4IDAgMTMyLjkyOC0yNC4xMjggMTc5LjUyLTY0SDgzMnYtNjRoLTg4LjMyYzE1LjU1Mi0yOC44NjQgMjQuMzItNjEuMzc2IDI0LjMyLTk2IDAtMTI2LjUyOC0xMTYuOTI4LTIyNC0yNTYtMjI0cy0yNTYgOTcuNDcyLTI1NiAyMjRoMTI4YzAtNTAuMTc2IDU1LjA0LTk2IDEyOC05NiA3Mi45NiAwIDEyOCA0NS44MjQgMTI4IDk2UzU4NC45NiAzMjAgNTEyIDMyMEgyNTZWMzg0aDc2LjQ4eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InRleHQtbGF5ZXIiIHVuaWNvZGU9IiYjNTkwODI7IiBkPSJNNTc2IDY0MHYtNzY4SDQ0OFY2NDBINjRWODMyaDg5NnYtMTkySDU3NnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJyaWdodC1hbGlnbm1lbnQiIHVuaWNvZGU9IiYjNTkwODM7IiBkPSJNMzg0IDU3NlY3MDRoNTEydi0xMjhIMzg0eiBtMTI4LTE5MlY1MTJoMzg0di0xMjhINTEyeiBtLTM4NC0zODR2MTI4aDc2OHYtMTI4SDEyOHogbTc2OCAzMjB2LTEyOEgzODRWMzIwaDUxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJsZWZ0LWFsaWdubWVudCIgdW5pY29kZT0iJiM1OTA4NDsiIGQ9Ik0xMjggNTc2VjcwNGg1MTJ2LTEyOEgxMjh6IG0wLTE5MlY1MTJoMzg0di0xMjhIMTI4eiBtMC0zODR2MTI4aDc2OHYtMTI4SDEyOHogbTUxMiAzMjB2LTEyOEgxMjhWMzIwaDUxMnoiICBob3Jpei1hZHYteD0iMTAyNCIgLz4NCg0KICAgIA0KICAgIDxnbHlwaCBnbHlwaC1uYW1lPSJ0cmFuc3BhcmVudC1iYWNrZ3JvdSIgdW5pY29kZT0iJiM1OTA4NTsiIGQ9Ik0yMjAuOCA4MzJMNjQgNjc1LjJ2LTcxLjE2OEwyOTEuOTY4IDgzMkgyMjAuODY0eiBtMTkzLjM0NCAwTDY0IDQ4MS44NTZ2LTcxLjE2OEw0ODUuMzEyIDgzMkg0MTQuMDh6IG0xOTMuMjggMEw2NCAyODguNTEydi03MS4xMDRMNjc4LjU5MiA4MzJINjA3LjQ4OHogbTE5My4zNDQgMEw2NCA5NS4yMzJ2LTcxLjE2OEw4NzEuOTM2IDgzMmgtNzEuMTY4ek05NjAgNzk1LjM5MmE0NC44IDQ0LjggMCAwIDEtOS43OTItNy4yOTZMMTAwLjY3Mi02MS40NGMtMC44MzItMC43NjgtMS4yMTYtMS43MjgtMS45Mi0yLjU2aDcwLjQ2NEw5NjAgNzI2Ljc4NFY3OTUuMzkyeiBtMC0xOTAuNzg0TDI5MS4zOTItNjRoNzEuMTY4TDk2MCA1MzMuNDRWNjA0LjYwOHogbTAtMTkzLjI4TDQ4NC43MzYtNjRoNzEuMTA0TDk2MCAzNDAuMTZWNDExLjI2NHogbTAtMTkzLjM0NEw2NzguMDE2LTY0aDcxLjE2OEw5NjAgMTQ2LjgxNnY3MS4xNjh6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCiAgICA8Z2x5cGggZ2x5cGgtbmFtZT0idW5kZXJsaW5lIiB1bmljb2RlPSImIzU5MDg2OyIgZD0iTTY0MCA3MDRoMTI4di0zNTguNGMwLTExOS4yOTYtOTIuMTYtMjE3LjYtMjA4LTIxNy42aC05NkMzNDguMTYgMTI4IDI1NiAyMjYuMzA0IDI1NiAzNDUuNlY3MDRoMTI4di0zNTguNGMwLTUwLjM2OCAzNi44LTg5LjYgODAtODkuNmg5NkM2MDMuMiAyNTYgNjQwIDI5NS4yMzIgNjQwIDM0NS42VjcwNHpNMjU2IDY0aDUxMnYtNjRIMjU2djY0eiIgIGhvcml6LWFkdi14PSIxMDI0IiAvPg0KDQogICAgDQogICAgPGdseXBoIGdseXBoLW5hbWU9InF1ZXJ5IiB1bmljb2RlPSImIzU5MDg3OyIgZD0iTTUxMiA4OTQuOTc2QzIyOS4yMjk3MTQgODk0Ljk3NiAwIDY2Ni4xODUxNDMgMCAzODRjMC0yODIuMTg1MTQzIDIyOS4yMjk3MTQtNTEwLjk3NiA1MTItNTEwLjk3NlMxMDI0IDEwMS44MTQ4NTcgMTAyNCAzODRDMTAyNCA2NjYuMTg1MTQzIDc5NC43NzAyODYgODk0Ljk3NiA1MTIgODk0Ljk3NnogbTQ5LjczNzE0My04MDUuODE0ODU3YTI1LjYgMjUuNiAwIDAgMC0yNS42LTI1LjZINDU5LjMzNzE0M2EyNS42IDI1LjYgMCAwIDAtMjUuNiAyNS42VjE2NS44MTQ4NTdhMjUuNiAyNS42IDAgMCAwIDI1LjYgMjUuNTI2ODU3aDc2LjhhMjUuNiAyNS42IDAgMCAwIDI1LjYtMjUuNnYtNzYuNTgwNTcxeiBtMTI2LjgyOTcxNCAzNTEuNjcwODU3Yy0xMC4yNC0xNC42Mjg1NzEtMzMuNjQ1NzE0LTMzLjI4LTYyLjkwMjg1Ny01Ni4wMjc0MjlsLTMyLjQwMjI4Ni0yMi4zODE3MTRjLTE1LjcyNTcxNC0xMi4xNDE3MTQtMjkuNjk2LTI2LjMzMTQyOS0zNC44MTYtNDIuNTY5MTQzYTEzMC4xOTQyODYgMTMwLjE5NDI4NiAwIDAgMS0zLjk0OTcxNC0yNC40Mjk3MTRjLTAuNTEyLTQuOTczNzE0LTQuOTAwNTcxLTE1LjA2NzQyOS0xNS4yODY4NTctMTUuMDY3NDI5aC04My4zODI4NTdjLTEzLjQ1ODI4NiAwLTE1Ljg3MiAxMC42MDU3MTQtMTUuNjUyNTcyIDE1Ljc5ODg1OCAxLjQ2Mjg1NyAzMy45MzgyODYgNC42MDggNjQuMDczMTQzIDE4LjQzMiA4MC4zMTA4NTcgMjguMDg2ODU3IDMyLjg0MTE0MyA5MS45NDA1NzEgNzMuNzI4IDkxLjk0MDU3MiA3My43MjggOS43MjggNy4zMTQyODYgMTcuNTU0Mjg2IDE1LjI4Njg1NyAyMy41NTIgMjMuOTE3NzE0IDEwLjgyNTE0MyAxNC45MjExNDMgMTkuNzQ4NTcxIDMxLjIzMiAxOS43NDg1NzEgNDkuMTUyIDAgMjAuNDgtNS45OTc3MTQgMzkuMjc3NzE0LTE4LjA2NjI4NiA1Ni4xNzM3MTQtMTIuMDY4NTcxIDE2Ljg5Ni0zNC4wODQ1NzEgMjUuMzgwNTcxLTY2LjA0OCAyNS4zODA1NzItMzEuNDUxNDI5IDAtNTMuNjg2ODU3LTEwLjQ1OTQyOS02Ni44NTI1NzEtMzEuMjMyLTkuNzI4LTE1LjM2LTE1Ljc5ODg1Ny0yOS41NDk3MTQtMTguMjg1NzE0LTQ0LjkwOTcxNS0wLjk1MDg1Ny01LjQ4NTcxNC00LjM4ODU3MS0xNi45NjkxNDMtMTYuMDkxNDI5LTE2Ljk2OTE0MkgzMjcuMTY4Yy0xNy4yNjE3MTQgMC0yMS4wNjUxNDMgMTEuMTkwODU3LTIwLjYyNjI4NiAxNi42MDM0MjggNi4yOTAyODYgNjguMDIyODU3IDMyLjkxNDI4NiAxMTQuNDY4NTcxIDgwLjAxODI4NiAxNDQuMzEwODU3IDMxLjk2MzQyOSAyMC40OCA3MS4zODc0MjkgMzAuODY2Mjg2IDExOC4xMjU3MTQgMzAuODY2Mjg2IDYxLjM2Njg1NyAwIDExMi4zNDc0MjktMTQuNjI4NTcxIDE1Mi45NDE3MTUtNDMuODg1NzE0IDQwLjU5NDI4Ni0yOS4yNTcxNDMgNjAuOTI4LTcyLjQ4NDU3MSA2MC45MjgtMTI5LjkwMTcxNSAwLTM1LjEwODU3MS0xMi40MzQyODYtNjQuODA0NTcxLTI5Ljk4ODU3Mi04OC44Njg1NzF6IiAgaG9yaXotYWR2LXg9IjEwMjQiIC8+DQoNCiAgICANCg0KDQogIDwvZm9udD4NCjwvZGVmcz48L3N2Zz4NCg==#supermapol-icons) format('svg')}[class*=" supermapol-icons-"],[class^=supermapol-icons-]{font-family:supermapol-icons!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.supermapol-icons-map:before{content:""}.supermapol-icons-more:before{content:"\e61d"}.supermapol-icons-delete:before{content:"\e61f"}.supermapol-icons-visible:before{content:"\e620"}.supermapol-icons-zoom-to:before{content:"\e621"}.supermapol-icons-output:before{content:"\e622"}.supermapol-icons-opacity:before{content:"\e625"}.supermapol-icons-layer-info:before{content:"\e627"}.supermapol-icons-save:before{content:"\e628"}.supermapol-icons-layer-style:before{content:"\e629"}.supermapol-icons-line-layer:before{content:"\e62a"}.supermapol-icons-skin:before{content:"\e62b"}.supermapol-icons-marker-layer:before{content:"\e62c"}.supermapol-icons-point-layer:before{content:"\e62d"}.supermapol-icons-polygon-layer:before{content:"\e62e"}.supermapol-icons-invisible:before{content:"\e62f"}.supermapol-icons-search:before{content:"\e630"}.supermapol-icons-edit:before{content:"\e633"}.supermapol-icons-layers:before{content:"\e634"}.supermapol-icons-baselayer:before{content:"\e635"}.supermapol-icons-setting:before{content:"\e636"}.supermapol-icons-add:before{content:"\e638"}.supermapol-icons-preview:before{content:"\e637"}.supermapol-icons-refresh:before{content:"\e639"}.supermapol-icons-solid-triangle:before{content:"\e63a"}.supermapol-icons-roadnetwork:before{content:"\e63b"}.supermapol-icons-return:before{content:"\e63c"}.supermapol-icons-packup:before{content:"\e63d"}.supermapol-icons-share:before{content:"\e63e"}.supermapol-icons-backhomepage:before{content:"\e659"}.supermapol-icons-MyMaps:before{content:"\e65a"}.supermapol-icons-CreateMap:before{content:"\e65b"}.supermapol-icons-feedback:before{content:"\e65c"}.supermapol-icons-skin1:before{content:"\e65d"}.supermapol-icons-Shape-:before{content:"\e65e"}.supermapol-icons-account:before{content:"\e65f"}.supermapol-icons-Shape-1:before{content:"\e660"}.supermapol-icons-Shape-2:before{content:"\e661"}.supermapol-icons-Shape-3:before{content:"\e662"}.supermapol-icons-Shape-4:before{content:"\e663"}.supermapol-icons-Shape-5:before{content:"\e664"}.supermapol-icons-Shape-6:before{content:"\e665"}.supermapol-icons-Shape-7:before{content:"\e666"}.supermapol-icons-Shape-8:before{content:"\e667"}.supermapol-icons-Shape-9:before{content:"\e668"}.supermapol-icons-Shape-10:before{content:"\e669"}.supermapol-icons-Shape-11:before{content:"\e66a"}.supermapol-icons-Shape-12:before{content:"\e66b"}.supermapol-icons-Shape-13:before{content:"\e66c"}.supermapol-icons-Shape-14:before{content:"\e66d"}.supermapol-icons-Shape-15:before{content:"\e66e"}.supermapol-icons-Shape-16:before{content:"\e66f"}.supermapol-icons-Shape-17:before{content:"\e670"}.supermapol-icons-Shape-18:before{content:"\e671"}.supermapol-icons-Shape-19:before{content:"\e672"}.supermapol-icons-Shape-20:before{content:"\e673"}.supermapol-icons-Shape-21:before{content:"\e674"}.supermapol-icons-Shape-22:before{content:"\e675"}.supermapol-icons-Shape-23:before{content:"\e676"}.supermapol-icons-Shape-24:before{content:"\e677"}.supermapol-icons-Shape-25:before{content:"\e678"}.supermapol-icons-Shape-26:before{content:"\e679"}.supermapol-icons-Shape-27:before{content:"\e67a"}.supermapol-icons-Shape-28:before{content:"\e67b"}.supermapol-icons-Shape-29:before{content:"\e67c"}.supermapol-icons-Shape-30:before{content:"\e67d"}.supermapol-icons-Shape-31:before{content:"\e67e"}.supermapol-icons-Shape-32:before{content:"\e67f"}.supermapol-icons-Shape-33:before{content:"\e680"}.supermapol-icons-Shape-34:before{content:"\e681"}.supermapol-icons-Shape-35:before{content:"\e682"}.supermapol-icons-Shape-36:before{content:"\e683"}.supermapol-icons-Shape-37:before{content:"\e684"}.supermapol-icons-Shape-38:before{content:"\e685"}.supermapol-icons-Shape-39:before{content:"\e686"}.supermapol-icons-Shape-40:before{content:"\e687"}.supermapol-icons-Shape-41:before{content:"\e688"}.supermapol-icons-Shape-42:before{content:"\e689"}.supermapol-icons-Shape-43:before{content:"\e68a"}.supermapol-icons-Shape-44:before{content:"\e68b"}.supermapol-icons-Shape-45:before{content:"\e68c"}.supermapol-icons-Shape-46:before{content:"\e68d"}.supermapol-icons-Shape-47:before{content:"\e68e"}.supermapol-icons-Shape-48:before{content:"\e68f"}.supermapol-icons-Shape-49:before{content:"\e690"}.supermapol-icons-Shape-50:before{content:"\e691"}.supermapol-icons-Shape-51:before{content:"\e692"}.supermapol-icons-Shape-52:before{content:"\e693"}.supermapol-icons-Shape-53:before{content:"\e694"}.supermapol-icons-Shape-54:before{content:"\e695"}.supermapol-icons-Shape-55:before{content:"\e696"}.supermapol-icons-Shape-56:before{content:"\e697"}.supermapol-icons-Shape-57:before{content:"\e698"}.supermapol-icons-Shape-58:before{content:"\e699"}.supermapol-icons-Shape-59:before{content:"\e69a"}.supermapol-icons-Oval:before{content:"\e69b"}.supermapol-icons-Rectangle:before{content:"\e69c"}.supermapol-icons-Star:before{content:"\e69d"}.supermapol-icons-Triangle:before{content:"\e69e"}.supermapol-icons-restoredefault:before{content:"\e6a0"}.supermapol-icons-uploading:before{content:"\e6a1"}.supermapol-icons-error:before{content:"\e69f"}.supermapol-icons-zoomin:before{content:"\e6a2"}.supermapol-icons-zoomout:before{content:"\e6a3"}.supermapol-icons-first:before{content:"\e6a4"}.supermapol-icons-next:before{content:"\e6a5"}.supermapol-icons-last:before{content:"\e6a6"}.supermapol-icons-prev:before{content:"\e6a7"}.supermapol-icons-poi-load:before{content:"\e6a8"}.supermapol-icons-poi-save:before{content:"\e6a9"}.supermapol-icons-fold:before{content:"\e6aa"}.supermapol-icons-label-delete:before{content:"\e6ab"}.supermapol-icons-upload:before{content:"\e6ac"}.supermapol-icons-unfold:before{content:"\e6ad"}.supermapol-icons-close:before{content:"\e6ae"}.supermapol-icons-mark:before{content:"\e6af"}.supermapol-icons-traffic:before{content:"\e6b0"}.supermapol-icons-full-figure:before{content:"\e6b1"}.supermapol-icons-measure:before{content:"\e6b2"}.supermapol-icons-display-list:before{content:"\e6b3"}.supermapol-icons-hide-list:before{content:"\e6b4"}.supermapol-icons-rename:before{content:"\e6b5"}.supermapol-icons-copy:before{content:"\e6b6"}.supermapol-icons-qq-zone:before{content:"\e6b7"}.supermapol-icons-sina-weibo:before{content:"\e6b8"}.supermapol-icons-color-change:before{content:"\e6b9"}.supermapol-icons-creat-custom-map:before{content:"\e6ba"}.supermapol-icons-custom-map:before{content:"\e6bb"}.supermapol-icons-legend-fold:before{content:"\e6bc"}.supermapol-icons-legend-unfold:before{content:"\e6bd"}.supermapol-icons-legend-big:before{content:"\e6be"}.supermapol-icons-attribute:before{content:"\e6bf"}.supermapol-icons-legend-small:before{content:"\e6c0"}.supermapol-icons-close-legend:before{content:"\e6c1"}.supermapol-icons-font-color:before{content:"\e6c2"}.supermapol-icons-bold:before{content:"\e6c3"}.supermapol-icons-italics:before{content:"\e6c4"}.supermapol-icons-font:before{content:"\e6c5"}.supermapol-icons-justify-align:before{content:"\e6c6"}.supermapol-icons-middle-alignmen:before{content:"\e6c7"}.supermapol-icons-font-size:before{content:"\e6c8"}.supermapol-icons-strikeout:before{content:"\e6c9"}.supermapol-icons-text-layer:before{content:"\e6ca"}.supermapol-icons-right-alignment:before{content:"\e6cb"}.supermapol-icons-left-alignment:before{content:"\e6cc"}.supermapol-icons-transparent-backgrou:before{content:"\e6cd"}.supermapol-icons-underline:before{content:"\e6ce"}.supermapol-icons-query:before{content:"\e6cf"}.component-messageboxcontainer{position:absolute;top:20px;left:0;right:0;margin:auto;min-height:50px;max-width:500px;border-radius:2px;background-color:#fff;z-index:1000}.component-border-bottom-orange{border-bottom:orange solid 1.5px}.component-border-bottom-red{border-bottom:red solid 1.5px}.component-border-bottom-green{border-bottom:green solid 1.5px}.component-messageboxcontainer .icon{float:left;font-size:24px;margin-left:20px;margin-top:6px;display:inline-block}.component-messageboxcontainer .supermapol-icons-message-success{color:green}.component-messageboxcontainer .supermapol-icons-message-failure{color:red}.component-messageboxcontainer .supermapol-icons-message-warning{color:orange}.component-messagebox{float:left;color:#595959;font-size:12px;margin:15px 10px}.component-messagebox__cancelbtncontainer{position:relative;height:5px}.component-messagebox__cancelBtn{position:absolute;top:15px;right:5px;border:none;background:0 0;color:#a4a4a4;cursor:pointer}.component-messagebox__cancelBtn:hover{border:none;font-weight:600} \ No newline at end of file diff --git a/dist/mapboxgl/iclient-mapboxgl.min.js b/dist/mapboxgl/iclient-mapboxgl.min.js index b158e30904..1a411b152d 100644 --- a/dist/mapboxgl/iclient-mapboxgl.min.js +++ b/dist/mapboxgl/iclient-mapboxgl.min.js @@ -3,6 +3,6 @@ * iclient-mapboxgl * Copyright© 2000 - 2026 SuperMap Software Co.Ltd * license: Apache-2.0 - * version: v12.1.0-r + * version: v12.1.1-dev * - */!function(){var e={1358:function(e){!function(t){"use strict";if(t.__disableNativeFetch||!t.fetch){s.prototype.append=function(e,t){e=i(e),t=a(t);var r=this.map[e];r||(r=[],this.map[e]=r),r.push(t)},s.prototype.delete=function(e){delete this.map[i(e)]},s.prototype.get=function(e){var t=this.map[i(e)];return t?t[0]:null},s.prototype.getAll=function(e){return this.map[i(e)]||[]},s.prototype.has=function(e){return this.map.hasOwnProperty(i(e))},s.prototype.set=function(e,t){this.map[i(e)]=[a(t)]},s.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(r){this.map[r].forEach(function(n){e.call(t,n,r,this)},this)},this)};var r={blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t},n=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];p.prototype.clone=function(){return new p(this)},f.call(p.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new s(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var o=[301,302,303,307,308];y.redirect=function(e,t){if(-1===o.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},t.Headers=s,t.Request=p,t.Response=y,t.fetch=function(e,t){return new Promise(function(n,o){var i;i=p.prototype.isPrototypeOf(e)&&!t?e:new p(e,t);var a=new XMLHttpRequest;var u=!1;function l(){if(4===a.readyState){var e=1223===a.status?204:a.status;if(e<100||e>599){if(u)return;return u=!0,void o(new TypeError("Network request failed"))}var t={status:e,statusText:a.statusText,headers:function(e){var t=new s;return e.getAllResponseHeaders().trim().split("\n").forEach(function(e){var r=e.trim().split(":"),n=r.shift().trim(),o=r.join(":").trim();t.append(n,o)}),t}(a),url:"responseURL"in a?a.responseURL:/^X-Request-URL:/m.test(a.getAllResponseHeaders())?a.getResponseHeader("X-Request-URL"):void 0},r="response"in a?a.response:a.responseText;u||(u=!0,n(new y(r,t)))}}a.onreadystatechange=l,a.onload=l,a.onerror=function(){u||(u=!0,o(new TypeError("Network request failed")))},a.open(i.method,i.url,!0);try{"include"===i.credentials&&("withCredentials"in a?a.withCredentials=!0:console&&console.warn&&console.warn("withCredentials is not supported, you can ignore this warning"))}catch(e){console&&console.warn&&console.warn("set withCredentials error:"+e)}"responseType"in a&&r.blob&&(a.responseType="blob"),i.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send(void 0===i._bodyInit?null:i._bodyInit)})},t.fetch.polyfill=!0,e.exports&&(e.exports=t.fetch)}function i(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function a(e){return"string"!=typeof e&&(e=String(e)),e}function s(e){this.map={},e instanceof s?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function u(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function l(e){return new Promise(function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}})}function c(e){var t=new FileReader;return t.readAsArrayBuffer(e),l(t)}function f(){return this.bodyUsed=!1,this._initBody=function(e,t){if(this._bodyInit=e,"string"==typeof e)this._bodyText=e;else if(r.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e,this._options=t;else if(r.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(e){if(!r.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e))throw new Error("unsupported BodyInit type")}else this._bodyText=""},r.blob?(this.blob=function(){var e=u(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(c)},this.text=function(){var e,t,r,n,o,i,a,s=u(this);if(s)return s;if(this._bodyBlob)return e=this._bodyBlob,t=this._options,r=new FileReader,n=t.headers.map["content-type"]?t.headers.map["content-type"].toString():"",o=/charset\=[0-9a-zA-Z\-\_]*;?/,i=e.type.match(o)||n.match(o),a=[e],i&&a.push(i[0].replace(/^charset\=/,"").replace(/;$/,"")),r.readAsText.apply(r,a),l(r);if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)}):this.text=function(){var e=u(this);return e||Promise.resolve(this._bodyText)},r.formData&&(this.formData=function(){return this.text().then(h)}),this.json=function(){return this.text().then(JSON.parse)},this}function p(e,t){var r,o,i=(t=t||{}).body;if(p.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new s(e.headers)),this.method=e.method,this.mode=e.mode,i||(i=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new s(t.headers)),this.method=(r=t.method||this.method||"GET",o=r.toUpperCase(),n.indexOf(o)>-1?o:r),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i,t)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(o))}}),t}function y(e,t){t||(t={}),this._initBody(e,t),this.type="default",this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof s?t.headers:new s(t.headers),this.url=t.url||""}}("undefined"!=typeof self?self:this)},3678:function(e,t){var r,n,o;n=[t,e],void 0===(o="function"==typeof(r=function(e,t){"use strict";var r={timeout:5e3,jsonpCallback:"callback",jsonpCallbackFunction:null};function n(e){try{delete window[e]}catch(t){window[e]=void 0}}function o(e){var t=document.getElementById(e);t&&document.getElementsByTagName("head")[0].removeChild(t)}t.exports=function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=e,a=t.timeout||r.timeout,s=t.jsonpCallback||r.jsonpCallback,u=void 0;return new Promise(function(r,l){var c=t.jsonpCallbackFunction||"jsonp_"+Date.now()+"_"+Math.ceil(1e5*Math.random()),f=s+"_"+c;window[c]=function(e){r({ok:!0,json:function(){return Promise.resolve(e)}}),u&&clearTimeout(u),o(f),n(c)},i+=-1===i.indexOf("?")?"?":"&";var p=document.createElement("script");p.setAttribute("src",""+i+s+"="+c),t.charset&&p.setAttribute("charset",t.charset),p.id=f,document.getElementsByTagName("head")[0].appendChild(p),u=setTimeout(function(){l(new Error("JSONP request to "+e+" timed out")),n(c),o(f),window[c]=function(){n(c)}},a),p.onerror=function(){l(new Error("JSONP request to "+e+" failed")),n(c),o(f),u&&clearTimeout(u)}})}})?r.apply(t,n):r)||(e.exports=o)},8461:function(e,t,r){var n,o,i;function a(e){"@babel/helpers - typeof";return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),(i={}).Constants={},i.Math={},i.Accumulator={},function(e){"use strict";e.WGS84={a:6378137,f:1/298.257223563},e.version={major:2,minor:2,patch:0},e.version_string="2.2.0"}(i.Constants),function(e){"use strict";e.digits=53,e.epsilon=Math.pow(.5,e.digits-1),e.degree=Math.PI/180,e.sq=function(e){return e*e},e.hypot=function(e,t){return Math.sqrt(e*e+t*t)},e.cbrt=Math.cbrt||function(e){var t=Math.pow(Math.abs(e),1/3);return e>0?t:e<0?-t:e},e.log1p=Math.log1p||function(e){var t=1+e,r=t-1;return 0===r?e:e*Math.log(t)/r},e.atanh=Math.atanh||function(t){var r=Math.abs(t);return r=e.log1p(2*r/(1-r))/2,t>0?r:t<0?-r:t},e.copysign=function(e,t){return Math.abs(e)*(t<0||0===t&&1/t<0?-1:1)},e.sum=function(e,t){var r=e+t,n=r-t,o=r-n;return n-=e,{s:r,t:r?0-(n+(o-=t)):r}},e.polyval=function(e,t,r,n){for(var o=e<0?0:t[r++];--e>=0;)o=o*n+t[r++];return o},e.AngRound=function(t){var r=1/16,n=Math.abs(t);return n=n90?NaN:e},e.AngDiff=function(t,r){var n,o,i=e.sum(e.remainder(-t,360),e.remainder(r,360));return n=(i=e.sum(e.remainder(i.s,360),i.t)).s,o=i.t,0!==n&&180!==Math.abs(n)||(n=e.copysign(n,0===o?r-t:-o)),{d:n,e:o}},e.sincosd=function(t){var r,n,o,i,a,s,u;switch(r=t%360,n=(r-=90*(o=Math.round(r/90)))*this.degree,i=Math.sin(n),a=Math.cos(n),45===Math.abs(r)?(a=Math.sqrt(.5),i=e.copysign(a,n)):30===Math.abs(r)&&(a=Math.sqrt(.75),i=e.copysign(.5,n)),3&o){case 0:s=i,u=a;break;case 1:s=a,u=-i;break;case 2:s=-i,u=-a;break;default:s=-a,u=i}return u+=0,0===s&&(s=e.copysign(s,t)),{s:s,c:u}},e.sincosde=function(t,r){var n,o,i,a,s,u,l;switch(n=t%360,i=Math.round(n/90),o=(n=e.AngRound(n-90*i+r))*this.degree,a=Math.sin(o),s=Math.cos(o),45===Math.abs(n)?(s=Math.sqrt(.5),a=e.copysign(s,o)):30===Math.abs(n)&&(s=Math.sqrt(.75),a=e.copysign(.5,o)),3&i){case 0:u=a,l=s;break;case 1:u=s,l=-a;break;case 2:u=-a,l=-s;break;default:u=-s,l=a}return l+=0,0===u&&(u=e.copysign(u,t+r)),{s:u,c:l}},e.atan2d=function(t,r){var n,o=0;if(Math.abs(t)>Math.abs(r)){var i=[r,t];t=i[0],r=i[1],o=2}switch(e.copysign(1,r)<0&&(r=-r,++o),n=Math.atan2(t,r)/this.degree,o){case 1:n=e.copysign(180,t)-n;break;case 2:n=90-n;break;case 3:n=-90+n}return n}}(i.Math),function(e,t){"use strict";e.Accumulator=function(e){this.Set(e)},e.Accumulator.prototype.Set=function(t){t||(t=0),t.constructor===e.Accumulator?(this._s=t._s,this._t=t._t):(this._s=t,this._t=0)},e.Accumulator.prototype.Add=function(e){var r=t.sum(e,this._t),n=t.sum(r.s,this._s);r=r.t,this._s=n.s,this._t=n.t,0===this._s?this._s=r:this._t+=r},e.Accumulator.prototype.Sum=function(t){var r;return t?((r=new e.Accumulator(this)).Add(t),r._s):this._s},e.Accumulator.prototype.Negate=function(){this._s*=-1,this._t*=-1},e.Accumulator.prototype.Remainder=function(e){this._s=t.remainder(this._s,e),this.Add(0)}}(i.Accumulator,i.Math),i.Geodesic={},i.GeodesicLine={},i.PolygonArea={},function(e,t,r,n,o){"use strict";var i,a,s,u,l,c,f,p,h,y,d,m=20+n.digits+10,g=n.epsilon,v=200*g,b=Math.sqrt(g),A=g,w=1e3*b;e.tiny_=Math.sqrt(Number.MIN_VALUE/Number.EPSILON),e.nC1_=6,e.nC1p_=6,e.nC2_=6,e.nC3_=6,e.nC4_=6,i=e.nC3_*(e.nC3_-1)/2,a=e.nC4_*(e.nC4_+1)/2,e.CAP_C1=1,e.CAP_C1p=2,e.CAP_C2=4,e.CAP_C3=8,e.CAP_C4=16,e.NONE=0,e.ARC=64,e.LATITUDE=128,e.LONGITUDE=256|e.CAP_C3,e.AZIMUTH=512,e.DISTANCE=1024|e.CAP_C1,e.STANDARD=e.LATITUDE|e.LONGITUDE|e.AZIMUTH|e.DISTANCE,e.DISTANCE_IN=2048|e.CAP_C1|e.CAP_C1p,e.REDUCEDLENGTH=4096|e.CAP_C1|e.CAP_C2,e.GEODESICSCALE=8192|e.CAP_C1|e.CAP_C2,e.AREA=16384|e.CAP_C4,e.ALL=32671,e.LONG_UNROLL=32768,e.OUT_MASK=32640|e.LONG_UNROLL,e.SinCosSeries=function(e,t,r,n){var o=n.length,i=o-(e?1:0),a=2*(r-t)*(r+t),s=1&i?n[--o]:0,u=0;for(i=Math.floor(i/2);i--;)s=a*(u=a*s-u+n[--o])-s+n[--o];return e?2*t*r*s:r*(s-u)},s=function(e,t){var r,o,i,a,s,u,l,c,f,p,h,y,d=n.sq(e),m=n.sq(t),g=(d+m-1)/6;return 0===m&&g<=0?r=0:(u=g,(s=(o=d*m/4)*(o+2*(a=g*(i=n.sq(g)))))>=0?(l=o+a,l+=l<0?-Math.sqrt(s):Math.sqrt(s),u+=(c=n.cbrt(l))+(0!==c?i/c:0)):(f=Math.atan2(Math.sqrt(-s),-(o+a)),u+=2*g*Math.cos(f/3)),p=Math.sqrt(n.sq(u)+m),y=((h=u<0?m/(p-u):u+p)-m)/(2*p),r=h/(Math.sqrt(h+n.sq(y))+y)),r},u=[1,4,64,0,256],e.A1m1f=function(e){var t=Math.floor(3);return(n.polyval(t,u,0,n.sq(e))/u[t+1]+e)/(1-e)},l=[-1,6,-16,32,-9,64,-128,2048,9,-16,768,3,-5,512,-7,1280,-7,2048],e.C1f=function(t,r){var o,i,a=n.sq(t),s=t,u=0;for(o=1;o<=e.nC1_;++o)i=Math.floor((e.nC1_-o)/2),r[o]=s*n.polyval(i,l,u,a)/l[u+i+1],u+=i+2,s*=t},c=[205,-432,768,1536,4005,-4736,3840,12288,-225,116,384,-7173,2695,7680,3467,7680,38081,61440],e.C1pf=function(t,r){var o,i,a=n.sq(t),s=t,u=0;for(o=1;o<=e.nC1p_;++o)i=Math.floor((e.nC1p_-o)/2),r[o]=s*n.polyval(i,c,u,a)/c[u+i+1],u+=i+2,s*=t},f=[-11,-28,-192,0,256],e.A2m1f=function(e){var t=Math.floor(3);return(n.polyval(t,f,0,n.sq(e))/f[t+1]-e)/(1+e)},p=[1,2,16,32,35,64,384,2048,15,80,768,7,35,512,63,1280,77,2048],e.C2f=function(t,r){var o,i,a=n.sq(t),s=t,u=0;for(o=1;o<=e.nC2_;++o)i=Math.floor((e.nC2_-o)/2),r[o]=s*n.polyval(i,p,u,a)/p[u+i+1],u+=i+2,s*=t},e.Geodesic=function(e,t){if(this.a=e,this.f=t,this._f1=1-this.f,this._e2=this.f*(2-this.f),this._ep2=this._e2/n.sq(this._f1),this._n=this.f/(2-this.f),this._b=this.a*this._f1,this._c2=(n.sq(this.a)+n.sq(this._b)*(0===this._e2?1:(this._e2>0?n.atanh(Math.sqrt(this._e2)):Math.atan(Math.sqrt(-this._e2)))/Math.sqrt(Math.abs(this._e2))))/2,this._etol2=.1*b/Math.sqrt(Math.max(.001,Math.abs(this.f))*Math.min(1,1-this.f/2)/2),!(isFinite(this.a)&&this.a>0))throw new Error("Equatorial radius is not positive");if(!(isFinite(this._b)&&this._b>0))throw new Error("Polar semi-axis is not positive");this._A3x=new Array(6),this._C3x=new Array(i),this._C4x=new Array(a),this.A3coeff(),this.C3coeff(),this.C4coeff()},h=[-3,128,-2,-3,64,-1,-3,-1,16,3,-1,-2,8,1,-1,2,1,1],e.Geodesic.prototype.A3coeff=function(){var e,t,r=0,o=0;for(e=5;e>=0;--e)t=Math.min(6-e-1,e),this._A3x[o++]=n.polyval(t,h,r,this._n)/h[r+t+1],r+=t+2},y=[3,128,2,5,128,-1,3,3,64,-1,0,1,8,-1,1,4,5,256,1,3,128,-3,-2,3,64,1,-3,2,32,7,512,-10,9,384,5,-9,5,192,7,512,-14,7,512,21,2560],e.Geodesic.prototype.C3coeff=function(){var t,r,o,i=0,a=0;for(t=1;t=t;--r)o=Math.min(e.nC3_-r-1,r),this._C3x[a++]=n.polyval(o,y,i,this._n)/y[i+o+1],i+=o+2},d=[97,15015,1088,156,45045,-224,-4784,1573,45045,-10656,14144,-4576,-858,45045,64,624,-4576,6864,-3003,15015,100,208,572,3432,-12012,30030,45045,1,9009,-2944,468,135135,5792,1040,-1287,135135,5952,-11648,9152,-2574,135135,-64,-624,4576,-6864,3003,135135,8,10725,1856,-936,225225,-8448,4992,-1144,225225,-1440,4160,-4576,1716,225225,-136,63063,1024,-208,105105,3584,-3328,1144,315315,-128,135135,-2560,832,405405,128,99099],e.Geodesic.prototype.C4coeff=function(){var t,r,o,i=0,a=0;for(t=0;t=t;--r)o=e.nC4_-r-1,this._C4x[a++]=n.polyval(o,d,i,this._n)/d[i+o+1],i+=o+2},e.Geodesic.prototype.A3f=function(e){return n.polyval(5,this._A3x,0,e)},e.Geodesic.prototype.C3f=function(t,r){var o,i,a=1,s=0;for(o=1;o=0&&L<.5&&a*l<.5)?(g=n.sq(t+i),g/=g+n.sq(r+a),R.dnm=Math.sqrt(1+this._ep2*g),m=l/(this._f1*R.dnm),b=Math.sin(m),A=Math.cos(m)):(b=c,A=f),R.salp1=a*b,R.calp1=A>=0?L+a*t*n.sq(b)/(1+A):y-a*t*n.sq(b)/(1-A),C=n.hypot(R.salp1,R.calp1),E=t*i+r*a*A,d&&C=0?n.sq(b)/(1+A):1-A),S=n.hypot(R.salp2,R.calp2),R.salp2/=S,R.calp2/=S,R.sig12=Math.atan2(C,E)):Math.abs(this._n)>.1||E>=0||C>=6*Math.abs(this._n)*Math.PI*n.sq(r)||(N=Math.atan2(-c,-f),this.f>=0?(P=(x=n.sq(t)*this._ep2)/(2*(1+Math.sqrt(1+x))+x),_=N/(I=this.f*r*this.A3f(P)*Math.PI),O=y/(I*r)):(k=a*r-i*t,T=Math.atan2(y,k),O=l/(I=((_=(j=this.Lengths(this._n,Math.PI+T,t,-r,o,i,a,u,r,a,e.REDUCEDLENGTH,p,h)).m12b/(r*a*j.m0*Math.PI)-1)<-.01?y/_:-this.f*n.sq(r)*Math.PI)/r)),O>-v&&_>-1-w?this.f>=0?(R.salp1=Math.min(1,-_),R.calp1=-Math.sqrt(1-n.sq(R.salp1))):(R.calp1=Math.max(_>-v?0:-1,_),R.salp1=Math.sqrt(1-n.sq(R.calp1))):(M=s(_,O),B=I*(this.f>=0?-_*M/(1+M):-O*(1+M)/M),b=Math.sin(B),A=-Math.cos(B),R.salp1=a*b,R.calp1=y-a*t*n.sq(b)/(1-A))),R.salp1<=0?(R.salp1=1,R.calp1=0):(S=n.hypot(R.salp1,R.calp1),R.salp1/=S,R.calp1/=S),R},e.Geodesic.prototype.Lambda12=function(t,r,o,i,a,s,u,l,c,f,p,h,y,d){var m,g,v,b,A,w,S,C,E,_,O,I,x,P={};return 0===t&&0===l&&(l=-e.tiny_),g=u*r,v=n.hypot(l,u*t),P.ssig1=t,b=g*t,P.csig1=A=l*r,m=n.hypot(P.ssig1,P.csig1),P.ssig1/=m,P.csig1/=m,P.salp2=a!==r?g/a:u,P.calp2=a!==r||Math.abs(i)!==-t?Math.sqrt(n.sq(l*r)+(r<-t?(a-r)*(r+a):(t-i)*(t+i)))/a:Math.abs(l),P.ssig2=i,w=g*i,P.csig2=S=P.calp2*a,m=n.hypot(P.ssig2,P.csig2),P.ssig2/=m,P.csig2/=m,P.sig12=Math.atan2(Math.max(0,P.csig1*P.ssig2-P.ssig1*P.csig2),P.csig1*P.csig2+P.ssig1*P.ssig2),C=Math.max(0,A*w-b*S),E=A*S+b*w,O=Math.atan2(C*f-E*c,E*f+C*c),I=n.sq(v)*this._ep2,P.eps=I/(2*(1+Math.sqrt(1+I))+I),this.C3f(P.eps,d),_=e.SinCosSeries(!0,P.ssig2,P.csig2,d)-e.SinCosSeries(!0,P.ssig1,P.csig1,d),P.domg12=-this.f*this.A3f(P.eps)*g*(P.sig12+_),P.lam12=O+P.domg12,p&&(0===P.calp2?P.dlam12=-2*this._f1*o/t:(x=this.Lengths(P.eps,P.sig12,P.ssig1,P.csig1,o,P.ssig2,P.csig2,s,r,a,e.REDUCEDLENGTH,h,y),P.dlam12=x.m12b,P.dlam12*=this._f1/(P.calp2*a))),P},e.Geodesic.prototype.Inverse=function(t,r,o,i,a){var s,u;return a||(a=e.STANDARD),a===e.LONG_UNROLL&&(a|=e.STANDARD),a&=e.OUT_MASK,u=(s=this.InverseInt(t,r,o,i,a)).vals,a&e.AZIMUTH&&(u.azi1=n.atan2d(s.salp1,s.calp1),u.azi2=n.atan2d(s.salp2,s.calp2)),u},e.Geodesic.prototype.InverseInt=function(t,r,o,i,a){var s,u,l,c,f,p,h,y,d,v,w,S,C,E,_,O,I,x,P,k,T,j,M,B,N,R,L,D,F,Q,G,U,z,H,q,V,K,Y,J,W,X,Z,$,ee,te,re,ne,oe,ie,ae,se,ue,le,ce,fe,pe,he,ye,de,me,ge,ve,be,Ae,we,Se={};if(Se.lat1=t=n.LatFix(t),Se.lat2=o=n.LatFix(o),t=n.AngRound(t),o=n.AngRound(o),u=(s=n.AngDiff(r,i)).e,s=s.d,a&e.LONG_UNROLL?(Se.lon1=r,Se.lon2=r+s+u):(Se.lon1=n.AngNormalize(r),Se.lon2=n.AngNormalize(i)),u*=l=n.copysign(1,s),_=(s*=l)*n.degree,O=(c=n.sincosde(s,u)).s,I=c.c,u=180-s-u,(f=Math.abs(t)=0?((x<3*e.tiny_||x=180*this.f))P=T=0,k=j=1,w=this.a*_,x=z=_/this._f1,S=this._b*Math.sin(x),a&e.GEODESICSCALE&&(Se.M12=Se.M21=Math.cos(x)),Se.a12=s/this._f1;else if(!R)if(x=(L=this.InverseStart(h,y,C,d,v,E,_,O,I,M,B)).sig12,k=L.salp1,P=L.calp1,x>=0)j=L.salp2,T=L.calp2,H=L.dnm,w=x*this._b*H,S=n.sq(H)*this._b*Math.sin(x/H),a&e.GEODESICSCALE&&(Se.M12=Se.M21=Math.cos(x/H)),Se.a12=x/n.degree,z=_/(this._f1*H);else{for(q=0,V=e.tiny_,K=1,Y=e.tiny_,J=-1,W=!1,X=!1;Z=(L=this.Lambda12(h,y,C,d,v,E,k,P,O,I,q<20,M,B,N)).lam12,j=L.salp2,T=L.calp2,x=L.sig12,D=L.ssig1,F=L.csig1,Q=L.ssig2,G=L.csig2,U=L.eps,de=L.domg12,$=L.dlam12,!X&&Math.abs(Z)>=(W?8:1)*g&&q!=m;++q)Z>0&&(q<20||P/k>J/Y)?(Y=k,J=P):Z<0&&(q<20||P/k0&&(ee=-Z/$,Math.abs(ee)0))?(P=P*re-k*te,k=ne,k/=c=n.hypot(k,P),P/=c,W=Math.abs(Z)<=16*g):(k=(V+Y)/2,P=(K+J)/2,k/=c=n.hypot(k,P),P/=c,W=!1,X=Math.abs(V-k)+(K-P)-.7071&&d-h<1.75?(de=1+ye,me=1+y,ge=1+v,se=2*Math.atan2(he*(h*ge+d*me),de*(h*d+me*ge))):(be=T*P+j*k,0==(ve=j*P-T*k)&&be<0&&(ve=e.tiny_*P,be=-1),se=Math.atan2(ve,be)),Se.S12+=this._c2*se,Se.S12*=f*l*p,Se.S12+=0),f<0){var Ee=[k,j];j=Ee[0],k=Ee[1];var _e=[P,T];if(T=_e[0],P=_e[1],a&e.GEODESICSCALE){var Oe=[Se.M12,Se.M21];Se.M21=Oe[0],Se.M12=Oe[1]}}return{vals:Se,salp1:k*=f*l,calp1:P*=f*p,salp2:j*=f*l,calp2:T*=f*p}},e.Geodesic.prototype.GenDirect=function(r,n,o,i,a,s){return s?s===e.LONG_UNROLL&&(s|=e.STANDARD):s=e.STANDARD,i||(s|=e.DISTANCE_IN),new t.GeodesicLine(this,r,n,o,s).GenPosition(i,a,s)},e.Geodesic.prototype.Direct=function(e,t,r,n,o){return this.GenDirect(e,t,r,!1,n,o)},e.Geodesic.prototype.ArcDirect=function(e,t,r,n,o){return this.GenDirect(e,t,r,!0,n,o)},e.Geodesic.prototype.Line=function(e,r,n,o){return new t.GeodesicLine(this,e,r,n,o)},e.Geodesic.prototype.DirectLine=function(e,t,r,n,o){return this.GenDirectLine(e,t,r,!1,n,o)},e.Geodesic.prototype.ArcDirectLine=function(e,t,r,n,o){return this.GenDirectLine(e,t,r,!0,n,o)},e.Geodesic.prototype.GenDirectLine=function(r,n,o,i,a,s){var u;return s||(s=e.STANDARD|e.DISTANCE_IN),i||(s|=e.DISTANCE_IN),(u=new t.GeodesicLine(this,r,n,o,s)).GenSetDistance(i,a),u},e.Geodesic.prototype.InverseLine=function(r,o,i,a,s){var u,l,c;return s||(s=e.STANDARD|e.DISTANCE_IN),u=this.InverseInt(r,o,i,a,e.ARC),c=n.atan2d(u.salp1,u.calp1),s&e.OUT_MASK&e.DISTANCE_IN&&(s|=e.DISTANCE),(l=new t.GeodesicLine(this,r,o,c,s,u.salp1,u.calp1)).SetArc(u.vals.a12),l},e.Geodesic.prototype.Polygon=function(e){return new r.PolygonArea(this,e)},e.WGS84=new e.Geodesic(o.WGS84.a,o.WGS84.f)}(i.Geodesic,i.GeodesicLine,i.PolygonArea,i.Math,i.Constants),function(e,t,r){"use strict";t.GeodesicLine=function(t,n,o,i,a,s,u){var l,c,f,p,h,y;a||(a=e.STANDARD|e.DISTANCE_IN),this.a=t.a,this.f=t.f,this._b=t._b,this._c2=t._c2,this._f1=t._f1,this.caps=a|e.LATITUDE|e.AZIMUTH|e.LONG_UNROLL,this.lat1=r.LatFix(n),this.lon1=o,void 0===s||void 0===u?(this.azi1=r.AngNormalize(i),l=r.sincosd(r.AngRound(this.azi1)),this.salp1=l.s,this.calp1=l.c):(this.azi1=i,this.salp1=s,this.calp1=u),l=r.sincosd(r.AngRound(this.lat1)),f=this._f1*l.s,c=l.c,f/=l=r.hypot(f,c),c/=l,c=Math.max(e.tiny_,c),this._dn1=Math.sqrt(1+t._ep2*r.sq(f)),this._salp0=this.salp1*c,this._calp0=r.hypot(this.calp1,this.salp1*f),this._ssig1=f,this._somg1=this._salp0*f,this._csig1=this._comg1=0!==f||0!==this.calp1?c*this.calp1:1,l=r.hypot(this._ssig1,this._csig1),this._ssig1/=l,this._csig1/=l,this._k2=r.sq(this._calp0)*t._ep2,p=this._k2/(2*(1+Math.sqrt(1+this._k2))+this._k2),this.caps&e.CAP_C1&&(this._A1m1=e.A1m1f(p),this._C1a=new Array(e.nC1_+1),e.C1f(p,this._C1a),this._B11=e.SinCosSeries(!0,this._ssig1,this._csig1,this._C1a),h=Math.sin(this._B11),y=Math.cos(this._B11),this._stau1=this._ssig1*y+this._csig1*h,this._ctau1=this._csig1*y-this._ssig1*h),this.caps&e.CAP_C1p&&(this._C1pa=new Array(e.nC1p_+1),e.C1pf(p,this._C1pa)),this.caps&e.CAP_C2&&(this._A2m1=e.A2m1f(p),this._C2a=new Array(e.nC2_+1),e.C2f(p,this._C2a),this._B21=e.SinCosSeries(!0,this._ssig1,this._csig1,this._C2a)),this.caps&e.CAP_C3&&(this._C3a=new Array(e.nC3_),t.C3f(p,this._C3a),this._A3c=-this.f*this._salp0*t.A3f(p),this._B31=e.SinCosSeries(!0,this._ssig1,this._csig1,this._C3a)),this.caps&e.CAP_C4&&(this._C4a=new Array(e.nC4_),t.C4f(p,this._C4a),this._A4=r.sq(this.a)*this._calp0*this._salp0*t._e2,this._B41=e.SinCosSeries(!1,this._ssig1,this._csig1,this._C4a)),this.a13=this.s13=NaN},t.GeodesicLine.prototype.GenPosition=function(t,n,o){var i,a,s,u,l,c,f,p,h,y,d,m,g,v,b,A,w,S,C,E,_,O,I,x,P,k,T={};return o?o===e.LONG_UNROLL&&(o|=e.STANDARD):o=e.STANDARD,o&=this.caps&e.OUT_MASK,T.lat1=this.lat1,T.azi1=this.azi1,T.lon1=o&e.LONG_UNROLL?this.lon1:r.AngNormalize(this.lon1),t?T.a12=n:T.s12=n,t||this.caps&e.DISTANCE_IN&e.OUT_MASK?(u=0,l=0,t?(i=n*r.degree,a=(I=r.sincosd(n)).s,s=I.c):(p=n/(this._b*(1+this._A1m1)),h=Math.sin(p),y=Math.cos(p),i=p-((u=-e.SinCosSeries(!0,this._stau1*y+this._ctau1*h,this._ctau1*y-this._stau1*h,this._C1pa))-this._B11),a=Math.sin(i),s=Math.cos(i),Math.abs(this.f)>.01&&(c=this._ssig1*s+this._csig1*a,f=this._csig1*s-this._ssig1*a,u=e.SinCosSeries(!0,c,f,this._C1a),i-=((1+this._A1m1)*(i+(u-this._B11))-n/this._b)/Math.sqrt(1+this._k2*r.sq(c)),a=Math.sin(i),s=Math.cos(i))),c=this._ssig1*s+this._csig1*a,f=this._csig1*s-this._ssig1*a,C=Math.sqrt(1+this._k2*r.sq(c)),o&(e.DISTANCE|e.REDUCEDLENGTH|e.GEODESICSCALE)&&((t||Math.abs(this.f)>.01)&&(u=e.SinCosSeries(!0,c,f,this._C1a)),l=(1+this._A1m1)*(u-this._B11)),g=this._calp0*c,0===(v=r.hypot(this._salp0,this._calp0*f))&&(v=f=e.tiny_),w=this._salp0,S=this._calp0*f,t&&o&e.DISTANCE&&(T.s12=this._b*((1+this._A1m1)*i+l)),o&e.LONGITUDE&&(b=this._salp0*c,A=f,m=r.copysign(1,this._salp0),d=((o&e.LONG_UNROLL?m*(i-(Math.atan2(c,f)-Math.atan2(this._ssig1,this._csig1))+(Math.atan2(m*b,A)-Math.atan2(m*this._somg1,this._comg1))):Math.atan2(b*this._comg1-A*this._somg1,A*this._comg1+b*this._somg1))+this._A3c*(i+(e.SinCosSeries(!0,c,f,this._C3a)-this._B31)))/r.degree,T.lon2=o&e.LONG_UNROLL?this.lon1+d:r.AngNormalize(r.AngNormalize(this.lon1)+r.AngNormalize(d))),o&e.LATITUDE&&(T.lat2=r.atan2d(g,this._f1*v)),o&e.AZIMUTH&&(T.azi2=r.atan2d(w,S)),o&(e.REDUCEDLENGTH|e.GEODESICSCALE)&&(E=e.SinCosSeries(!0,c,f,this._C2a),_=(1+this._A2m1)*(E-this._B21),O=(this._A1m1-this._A2m1)*i+(l-_),o&e.REDUCEDLENGTH&&(T.m12=this._b*(C*(this._csig1*c)-this._dn1*(this._ssig1*f)-this._csig1*f*O)),o&e.GEODESICSCALE&&(I=this._k2*(c-this._ssig1)*(c+this._ssig1)/(this._dn1+C),T.M12=s+(I*c-f*O)*this._ssig1/this._dn1,T.M21=s-(I*this._ssig1-this._csig1*O)*c/C)),o&e.AREA&&(x=e.SinCosSeries(!1,c,f,this._C4a),0===this._calp0||0===this._salp0?(P=w*this.calp1-S*this.salp1,k=S*this.calp1+w*this.salp1):(P=this._calp0*this._salp0*(s<=0?this._csig1*(1-s)+a*this._ssig1:a*(this._csig1*a/(1+s)+this._ssig1)),k=r.sq(this._salp0)+r.sq(this._calp0)*this._csig1*f),T.S12=this._c2*Math.atan2(P,k)+this._A4*(x-this._B41)),t||(T.a12=i/r.degree),T):(T.a12=NaN,T)},t.GeodesicLine.prototype.Position=function(e,t){return this.GenPosition(!1,e,t)},t.GeodesicLine.prototype.ArcPosition=function(e,t){return this.GenPosition(!0,e,t)},t.GeodesicLine.prototype.GenSetDistance=function(e,t){e?this.SetArc(t):this.SetDistance(t)},t.GeodesicLine.prototype.SetDistance=function(t){var r;this.s13=t,r=this.GenPosition(!1,this.s13,e.ARC),this.a13=0+r.a12},t.GeodesicLine.prototype.SetArc=function(t){var r;this.a13=t,r=this.GenPosition(!0,this.a13,e.DISTANCE),this.s13=0+r.s12}}(i.Geodesic,i.GeodesicLine,i.Math),function(e,t,r,n){"use strict";var o,i,a,s;o=function(e,t){var n=r.AngDiff(e,t).d;return e=r.AngNormalize(e),t=r.AngNormalize(t),n>0&&(e<0&&t>=0||e>0&&0===t)?1:n<0&&e>=0&&t<0?-1:0},i=function(e,t){return e%=720,(0<=(t%=720)&&t<360||t<-360?0:1)-(0<=e&&e<360||e<-360?0:1)},a=function(e,t,r,n,o){return e.Remainder(t),1&r&&e.Add((e.Sum()<0?1:-1)*t/2),n||e.Negate(),o?e.Sum()>t/2?e.Add(-t):e.Sum()<=-t/2&&e.Add(+t):e.Sum()>=t?e.Add(-t):e.Sum()<0&&e.Add(+t),0+e.Sum()},s=function(e,t,n,o,i){return e=r.remainder(e,t),1&n&&(e+=(e<0?1:-1)*t/2),o||(e*=-1),i?e>t/2?e-=t:e<=-t/2&&(e+=t):e>=t?e-=t:e<0&&(e+=t),0+e},e.PolygonArea=function(e,r){this._geod=e,this.a=this._geod.a,this.f=this._geod.f,this._area0=4*Math.PI*e._c2,this.polyline=r||!1,this._mask=t.LATITUDE|t.LONGITUDE|t.DISTANCE|(this.polyline?t.NONE:t.AREA|t.LONG_UNROLL),this.polyline||(this._areasum=new n.Accumulator(0)),this._perimetersum=new n.Accumulator(0),this.Clear()},e.PolygonArea.prototype.Clear=function(){this.num=0,this._crossings=0,this.polyline||this._areasum.Set(0),this._perimetersum.Set(0),this._lat0=this._lon0=this.lat=this.lon=NaN},e.PolygonArea.prototype.AddPoint=function(e,t){var r;0===this.num?(this._lat0=this.lat=e,this._lon0=this.lon=t):(r=this._geod.Inverse(this.lat,this.lon,e,t,this._mask),this._perimetersum.Add(r.s12),this.polyline||(this._areasum.Add(r.S12),this._crossings+=o(this.lon,t)),this.lat=e,this.lon=t),++this.num},e.PolygonArea.prototype.AddEdge=function(e,t){var r;this.num&&(r=this._geod.Direct(this.lat,this.lon,e,t,this._mask),this._perimetersum.Add(t),this.polyline||(this._areasum.Add(r.S12),this._crossings+=i(this.lon,r.lon2)),this.lat=r.lat2,this.lon=r.lon2),++this.num},e.PolygonArea.prototype.Compute=function(e,t){var r,i,s={number:this.num};return this.num<2?(s.perimeter=0,this.polyline||(s.area=0),s):this.polyline?(s.perimeter=this._perimetersum.Sum(),s):(r=this._geod.Inverse(this.lat,this.lon,this._lat0,this._lon0,this._mask),s.perimeter=this._perimetersum.Sum(r.s12),(i=new n.Accumulator(this._areasum)).Add(r.S12),s.area=a(i,this._area0,this._crossings+o(this.lon,this._lon0),e,t),s)},e.PolygonArea.prototype.TestPoint=function(e,t,r,n){var i,a,u,l,c={number:this.num+1};if(0===this.num)return c.perimeter=0,this.polyline||(c.area=0),c;for(c.perimeter=this._perimetersum.Sum(),a=this.polyline?0:this._areasum.Sum(),u=this._crossings,l=0;l<(this.polyline?1:2);++l)i=this._geod.Inverse(0===l?this.lat:e,0===l?this.lon:t,0!==l?this._lat0:e,0!==l?this._lon0:t,this._mask),c.perimeter+=i.s12,this.polyline||(a+=i.S12,u+=o(0===l?this.lon:t,0!==l?this._lon0:t));return this.polyline?c:(c.area=s(a,this._area0,u,r,n),c)},e.PolygonArea.prototype.TestEdge=function(e,t,r,n){var a,u,l,c={number:this.num?this.num+1:0};return 0===this.num?c:(c.perimeter=this._perimetersum.Sum()+t,this.polyline?c:(u=this._areasum.Sum(),l=this._crossings,u+=(a=this._geod.Direct(this.lat,this.lon,e,t,this._mask)).S12,l+=i(this.lon,a.lon2),l+=o(a.lon2,this._lon0),a=this._geod.Inverse(a.lat2,a.lon2,this._lat0,this._lon0,this._mask),c.perimeter+=a.s12,u+=a.S12,c.area=s(u,this._area0,l,r,n),c))}}(i.PolygonArea,i.Geodesic,i.Math,i.Accumulator),o=i,"object"===a(e)&&e.exports?e.exports=o:void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)},3448:function(e){var t=[],r=[],n="insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).";function o(e,o){if(o=o||{},void 0===e)throw new Error(n);var i,a=!0===o.prepend?"prepend":"append",s=void 0!==o.container?o.container:document.querySelector("head"),u=t.indexOf(s);return-1===u&&(u=t.push(s)-1,r[u]={}),void 0!==r[u]&&void 0!==r[u][a]?i=r[u][a]:(i=r[u][a]=function(){var e=document.createElement("style");return e.setAttribute("type","text/css"),e}(),"prepend"===a?s.insertBefore(i,s.childNodes[0]):s.appendChild(i)),65279===e.charCodeAt(0)&&(e=e.substr(1,e.length)),i.styleSheet?i.styleSheet.cssText+=e:i.textContent+=e,i}e.exports=o,e.exports.insertCss=o},5611:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e);var o=200,i="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",u="[object Boolean]",l="[object Date]",c="[object Function]",f="[object GeneratorFunction]",p="[object Map]",h="[object Number]",y="[object Object]",d="[object RegExp]",m="[object Set]",g="[object String]",v="[object Symbol]",b="[object ArrayBuffer]",A="[object DataView]",w="[object Float32Array]",S="[object Float64Array]",C="[object Int8Array]",E="[object Int16Array]",_="[object Int32Array]",O="[object Uint8Array]",I="[object Uint8ClampedArray]",x="[object Uint16Array]",P="[object Uint32Array]",k=/\w*$/,T=/^\[object .+?Constructor\]$/,j=/^(?:0|[1-9]\d*)$/,M={};M[s]=M["[object Array]"]=M[b]=M[A]=M[u]=M[l]=M[w]=M[S]=M[C]=M[E]=M[_]=M[p]=M[h]=M[y]=M[d]=M[m]=M[g]=M[v]=M[O]=M[I]=M[x]=M[P]=!0,M["[object Error]"]=M[c]=M["[object WeakMap]"]=!1;var B="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,N="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,R=B||N||Function("return this")(),L="object"==n(t)&&t&&!t.nodeType&&t,D=L&&"object"==n(e)&&e&&!e.nodeType&&e,F=D&&D.exports===L;function Q(e,t){return e.set(t[0],t[1]),e}function G(e,t){return e.add(t),e}function U(e,t,r,n){var o=-1,i=e?e.length:0;for(n&&i&&(r=e[++o]);++o-1},Ie.prototype.set=function(e,t){var r=this.__data__,n=je(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},xe.prototype.clear=function(){this.__data__={hash:new Oe,map:new(ye||Ie),string:new Oe}},xe.prototype.delete=function(e){return Le(this,e).delete(e)},xe.prototype.get=function(e){return Le(this,e).get(e)},xe.prototype.has=function(e){return Le(this,e).has(e)},xe.prototype.set=function(e,t){return Le(this,e).set(e,t),this},Pe.prototype.clear=function(){this.__data__=new Ie},Pe.prototype.delete=function(e){return this.__data__.delete(e)},Pe.prototype.get=function(e){return this.__data__.get(e)},Pe.prototype.has=function(e){return this.__data__.has(e)},Pe.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Ie){var n=r.__data__;if(!ye||n.length-1&&e%1==0&&e-1&&e%1==0&&e<=a}(e.length)&&!Ye(e)}var Ke=fe||function(){return!1};function Ye(e){var t=Je(e)?te.call(e):"";return t==c||t==f}function Je(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function We(e){return Ve(e)?ke(e):function(e){if(!Ue(e))return pe(e);var t=[];for(var r in Object(e))ee.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}e.exports=function(e){return Me(e,!0,!0)}},1855:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o="Expected a function",i=NaN,a="[object Symbol]",s=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt,p="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,h="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,y=p||h||Function("return this")(),d=Object.prototype.toString,m=Math.max,g=Math.min,v=function(){return y.Date.now()};function b(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function A(e){return"symbol"==n(e)||function(e){return!!e&&"object"==n(e)}(e)&&d.call(e)==a}function w(e){if("number"==typeof e)return e;if(A(e))return i;if(b(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=b(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var r=l.test(e);return r||c.test(e)?f(e.slice(2),r?2:8):u.test(e)?i:+e}e.exports=function(e,t,r){var n,i,a,s,u,l,c=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(o);function y(t){var r=n,o=i;return n=i=void 0,c=t,s=e.apply(o,r)}function d(e){var r=e-l;return void 0===l||r>=t||r<0||p&&e-c>=a}function A(){var e=v();if(d(e))return S(e);u=setTimeout(A,function(e){var r=t-(e-l);return p?g(r,a-(e-c)):r}(e))}function S(e){return u=void 0,h&&n?y(e):(n=i=void 0,s)}function C(){var e=v(),r=d(e);if(n=arguments,i=this,l=e,r){if(void 0===u)return function(e){return c=e,u=setTimeout(A,t),f?y(e):s}(l);if(p)return u=setTimeout(A,t),y(l)}return void 0===u&&(u=setTimeout(A,t)),s}return t=w(t)||0,b(r)&&(f=!!r.leading,a=(p="maxWait"in r)?m(w(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h),C.cancel=function(){void 0!==u&&clearTimeout(u),c=0,n=l=i=u=void 0},C.flush=function(){return void 0===u?s:S(v())},C}},311:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=200,i="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",u="[object Function]",l="[object GeneratorFunction]",c=/^\[object .+?Constructor\]$/,f="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,p="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,h=f||p||Function("return this")();function y(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var o=e.length,i=r+(n?1:-1);for(;n?i--:++i-1}function d(e,t,r){for(var n=-1,o=e?e.length:0;++n=o&&(s=v,u=!1,t=new F(t));e:for(;++a-1},L.prototype.set=function(e,t){var r=this.__data__,n=Q(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},D.prototype.clear=function(){this.__data__={hash:new R,map:new(B||L),string:new R}},D.prototype.delete=function(e){return z(this,e).delete(e)},D.prototype.get=function(e){return z(this,e).get(e)},D.prototype.has=function(e){return z(this,e).has(e)},D.prototype.set=function(e,t){return z(this,e).set(e,t),this},F.prototype.add=F.prototype.push=function(e){return this.__data__.set(e,i),this},F.prototype.has=function(e){return this.__data__.has(e)};var V,K,Y=(V=function(e,t){return X(e)?G(e,function e(t,r,n,o,i){var a=-1,s=t.length;for(n||(n=q),i||(i=[]);++a0&&n(u)?r>1?e(u,r-1,n,o,i):m(i,u):o||(i[i.length]=u)}return i}(t,1,X,!0)):[]},K=M(void 0===K?V.length-1:K,0),function(){for(var e=arguments,t=-1,r=M(e.length-K,0),n=Array(r);++t-1&&e%1==0&&e<=a}(e.length)&&!Z(e)}function X(e){return function(e){return!!e&&"object"==n(e)}(e)&&W(e)}function Z(e){var t=$(e)?I.call(e):"";return t==u||t==l}function $(e){var t=n(e);return!!e&&("object"==t||"function"==t)}e.exports=Y},8676:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o="Expected a function",i=NaN,a="[object Symbol]",s=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt,p="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,h="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,y=p||h||Function("return this")(),d=Object.prototype.toString,m=Math.max,g=Math.min,v=function(){return y.Date.now()};function b(e,t,r){var n,i,a,s,u,l,c=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(o);function y(t){var r=n,o=i;return n=i=void 0,c=t,s=e.apply(o,r)}function d(e){var r=e-l;return void 0===l||r>=t||r<0||p&&e-c>=a}function b(){var e=v();if(d(e))return w(e);u=setTimeout(b,function(e){var r=t-(e-l);return p?g(r,a-(e-c)):r}(e))}function w(e){return u=void 0,h&&n?y(e):(n=i=void 0,s)}function C(){var e=v(),r=d(e);if(n=arguments,i=this,l=e,r){if(void 0===u)return function(e){return c=e,u=setTimeout(b,t),f?y(e):s}(l);if(p)return u=setTimeout(b,t),y(l)}return void 0===u&&(u=setTimeout(b,t)),s}return t=S(t)||0,A(r)&&(f=!!r.leading,a=(p="maxWait"in r)?m(S(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h),C.cancel=function(){void 0!==u&&clearTimeout(u),c=0,n=l=i=u=void 0},C.flush=function(){return void 0===u?s:w(v())},C}function A(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function w(e){return"symbol"==n(e)||function(e){return!!e&&"object"==n(e)}(e)&&d.call(e)==a}function S(e){if("number"==typeof e)return e;if(w(e))return i;if(A(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=A(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var r=l.test(e);return r||c.test(e)?f(e.slice(2),r?2:8):u.test(e)?i:+e}e.exports=function(e,t,r){var n=!0,i=!0;if("function"!=typeof e)throw new TypeError(o);return A(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),b(e,t,{leading:n,maxWait:t,trailing:i})}},8518:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=9007199254740991,i="[object Arguments]",a="[object Function]",s="[object GeneratorFunction]",u="[object Map]",l="[object Set]",c=/^\[object .+?Constructor\]$/,f=/^(?:0|[1-9]\d*)$/,p="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,h="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,y=p||h||Function("return this")();function d(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,o=Array(n);++r-1&&e%1==0&&e-1&&e%1==0&&e<=o}(e.length)&&!Y(e)}function Y(e){var t=J(e)?_.call(e):"";return t==a||t==s}function J(e){var t=n(e);return!!e&&("object"==t||"function"==t)}var W,X=(W=function(e){return K(e)?F(e):G(e)},function(e){var t,r,n,o=z(e);return o==u?(t=e,r=-1,n=Array(t.size),t.forEach(function(e,t){n[++r]=[t,e]}),n):o==l?function(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=[e,e]}),r}(e):d(e,W(e))});e.exports=X},44:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e);var o=200,i="Expected a function",a="__lodash_hash_undefined__",s=1,u=2,l=1/0,c=9007199254740991,f="[object Arguments]",p="[object Array]",h="[object Boolean]",y="[object Date]",d="[object Error]",m="[object Function]",g="[object GeneratorFunction]",v="[object Map]",b="[object Number]",A="[object Object]",w="[object RegExp]",S="[object Set]",C="[object String]",E="[object Symbol]",_="[object ArrayBuffer]",O="[object DataView]",I=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,x=/^\w*$/,P=/^\./,k=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,T=/\\(\\)?/g,j=/^\[object .+?Constructor\]$/,M=/^(?:0|[1-9]\d*)$/,B={};B["[object Float32Array]"]=B["[object Float64Array]"]=B["[object Int8Array]"]=B["[object Int16Array]"]=B["[object Int32Array]"]=B["[object Uint8Array]"]=B["[object Uint8ClampedArray]"]=B["[object Uint16Array]"]=B["[object Uint32Array]"]=!0,B[f]=B[p]=B[_]=B[h]=B[O]=B[y]=B[d]=B[m]=B[v]=B[b]=B[A]=B[w]=B[S]=B[C]=B["[object WeakMap]"]=!1;var N="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,R="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,L=N||R||Function("return this")(),D="object"==n(t)&&t&&!t.nodeType&&t,F=D&&"object"==n(e)&&e&&!e.nodeType&&e,Q=F&&F.exports===D&&N.process,G=function(){try{return Q&&Q.binding("util")}catch(e){}}(),U=G&&G.isTypedArray;function z(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var o=e.length,i=r+(n?1:-1);for(;n?i--:++i-1}function H(e,t,r){for(var n=-1,o=e?e.length:0;++n-1},Pe.prototype.set=function(e,t){var r=this.__data__,n=Be(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ke.prototype.clear=function(){this.__data__={hash:new xe,map:new(de||Pe),string:new xe}},ke.prototype.delete=function(e){return He(this,e).delete(e)},ke.prototype.get=function(e){return He(this,e).get(e)},ke.prototype.has=function(e){return He(this,e).has(e)},ke.prototype.set=function(e,t){return He(this,e).set(e,t),this},Te.prototype.add=Te.prototype.push=function(e){return this.__data__.set(e,a),this},Te.prototype.has=function(e){return this.__data__.has(e)},je.prototype.clear=function(){this.__data__=new Pe},je.prototype.delete=function(e){return this.__data__.delete(e)},je.prototype.get=function(e){return this.__data__.get(e)},je.prototype.has=function(e){return this.__data__.has(e)},je.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Pe){var n=r.__data__;if(!de||n.lengthl))return!1;var f=i.get(e);if(f&&i.get(t))return f==t;var p=-1,h=!0,y=o&s?new Te:void 0;for(i.set(e,t),i.set(t,e);++p-1&&e%1==0&&e-1&&e%1==0&&e<=c}function st(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function ut(e){return!!e&&"object"==n(e)}function lt(e){return"symbol"==n(e)||ut(e)&&se.call(e)==E}var ct=U?function(e){return function(t){return e(t)}}(U):function(e){return ut(e)&&at(e.length)&&!!B[se.call(e)]};function ft(e){return ot(e)?Me(e):Qe(e)}function pt(e){return e}e.exports=function(e,t){return e&&e.length?function(e,t,r){var n=-1,i=z,a=e.length,s=!0,u=[],l=u;if(r)s=!1,i=H;else if(a>=o){var c=t?null:Ue(e);if(c)return W(c);s=!1,i=K,l=new Te}else l=t?[]:u;e:for(;++n15?(r=Date.now(),a(e)):(t.push(e),1===t.length&&o.setAttribute("a",n=!n))}}i.nextTick=i.setImmediate}(),i.isNodejs="undefined"!=typeof process&&process.versions&&process.versions.node,i.globalScope=i.isNodejs?t:"undefined"==typeof self?window:self,i.isArray=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i.isArrayBuffer=function(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer},i.isArrayBufferView=function(e){return e&&i.isArrayBuffer(e.buffer)&&void 0!==e.byteLength},i.ByteBuffer=u,i.ByteStringBuffer=u,i.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>4096&&(this.data.substr(0,1),this._constructedStringLength=0)},i.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},i.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},i.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},i.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this},i.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},i.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(i.encodeUtf8(e))},i.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},i.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},i.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},i.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255))},i.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},i.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},i.ByteStringBuffer.prototype.putInt=function(e,t){a(t);var r="";do{t-=8,r+=String.fromCharCode(e>>t&255)}while(t>0);return this.putBytes(r)},i.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<0);return t},i.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},i.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},i.ByteStringBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},i.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},i.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},i.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},i.ByteStringBuffer.prototype.copy=function(){var e=i.createBuffer(this.data);return e.read=this.read,e},i.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},i.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},i.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},i.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this},i.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},i.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},i.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},i.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},i.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},i.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},i.DataBuffer.prototype.putInt=function(e,t){a(t),this.accommodate(t/8);do{t-=8,this.data.setInt8(this.write++,e>>t&255)}while(t>0);return this},i.DataBuffer.prototype.putSignedInt=function(e,t){return a(t),this.accommodate(t/8),e<0&&(e+=2<0);return t},i.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},i.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},i.DataBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},i.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},i.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},i.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},i.DataBuffer.prototype.copy=function(){return new i.DataBuffer(this)},i.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},i.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},i.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},i.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return r},i.xorBytes=function(e,t,r){for(var n="",o="",i="",a=0,s=0;r>0;--r,++a)o=e.charCodeAt(a)^t.charCodeAt(a),s>=10&&(n+=i,i="",s=0),i+=String.fromCharCode(o),++s;return n+i},i.hexToBytes=function(e){var t="",r=0;for(!0&e.length&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)};var l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],f="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";i.encode64=function(e,t){for(var r,n,o,i="",a="",s=0;s>2),i+=l.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=l.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":l.charAt(63&o)),t&&i.length>t&&(a+=i.substr(0,t)+"\r\n",i=i.substr(t));return a+i},i.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t,r,n,o,i="",a=0;a>4),64!==n&&(i+=String.fromCharCode((15&r)<<4|n>>2),64!==o&&(i+=String.fromCharCode((3&n)<<6|o)));return i},i.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},i.decodeUtf8=function(e){return decodeURIComponent(escape(e))},i.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:o.encode,decode:o.decode}},i.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},i.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,i=0;i>2),i+=l.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=l.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":l.charAt(63&o)),t&&i.length>t&&(a+=i.substr(0,t)+"\r\n",i=i.substr(t));return a+i},i.binary.base64.decode=function(e,t,r){var n,o,i,a,s=t;s||(s=new Uint8Array(3*Math.ceil(e.length/4))),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var u=0,l=r=r||0;u>4,64!==i&&(s[l++]=(15&o)<<4|i>>2,64!==a&&(s[l++]=(3&i)<<6|a));return t?l-r:s.subarray(0,l)},i.binary.base58.encode=function(e,t){return i.binary.baseN.encode(e,f,t)},i.binary.base58.decode=function(e,t){return i.binary.baseN.decode(e,f,t)},i.text={utf8:{},utf16:{}},i.text.utf8.encode=function(e,t,r){e=i.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,a=0;a0&&i.push(r),a=n.lastIndex;var s=t[0][1];switch(s){case"s":case"o":o");break;case"%":i.push("%");break;default:i.push("<%"+s+"?>")}}return i.push(e.substring(a)),i.join("")},i.formatNumber=function(e,t,r,n){var o=e,i=isNaN(t=Math.abs(t))?2:t,a=void 0===r?",":r,s=void 0===n?".":n,u=o<0?"-":"",l=parseInt(o=Math.abs(+o||0).toFixed(i),10)+"",c=l.length>3?l.length%3:0;return u+(c?l.substr(0,c)+s:"")+l.substr(c).replace(/(\d{3})(?=\d)/g,"$1"+s)+(i?a+Math.abs(o-l).toFixed(i).slice(2):"")},i.formatSize=function(e){return e>=1073741824?i.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?i.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?i.formatNumber(e/1024,0)+" KiB":i.formatNumber(e,0)+" bytes"},i.bytesFromIP=function(e){return-1!==e.indexOf(".")?i.bytesFromIPv4(e):-1!==e.indexOf(":")?i.bytesFromIPv6(e):null},i.bytesFromIPv4=function(e){if(4!==(e=e.split(".")).length)return null;for(var t=i.createBuffer(),r=0;rr[n].end-r[n].start&&(n=r.length-1)):r.push({start:u,end:u})}t.push(a)}if(r.length>0){var l=r[n];l.end-l.start>0&&(t.splice(l.start,l.end-l.start+1,""),0===l.start&&t.unshift(""),7===l.end&&t.push(""))}return t.join(":")},i.estimateCores=function(e,t){if("function"==typeof e&&(t=e,e={}),e=e||{},"cores"in i&&!e.update)return t(null,i.cores);if("undefined"!=typeof navigator&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return i.cores=navigator.hardwareConcurrency,t(null,i.cores);if("undefined"==typeof Worker)return i.cores=1,t(null,i.cores);if("undefined"==typeof Blob)return i.cores=2,t(null,i.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(e){for(var t=Date.now(),r=t+4;Date.now()s.st&&o.sto.st&&s.stt){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}o.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},o.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},o.maxDepth=256,o.create=function(e,t,r,i,a){if(n.util.isArray(i)){for(var s=[],u=0;u=a.maxDepth)throw new Error("ASN.1 parsing error: Max depth exceeded.");var s;i(t,r,2);var u=t.getByte();r--;var l=192&u,c=31&u;s=t.length();var f,p,h=function(e,t){var r=e.getByte();if(t--,128!==r){var n;if(128&r){var o=127&r;i(e,t,o),n=e.getInt(o<<3)}else n=r;if(n<0)throw new Error("Negative length: "+n);return n}}(t,r);if(r-=s-t.length(),void 0!==h&&h>r){if(a.strict){var y=new Error("Too few bytes to read ASN.1 value.");throw y.available=t.length(),y.remaining=r,y.requested=h,y}h=r}var d=32==(32&u);if(d)if(f=[],void 0===h)for(;;){if(i(t,r,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),r-=2;break}s=t.length(),f.push(e(t,r,n+1,a)),r-=s-t.length()}else for(;h>0;)s=t.length(),f.push(e(t,h,n+1,a)),r-=s-t.length(),h-=s-t.length();if(void 0===f&&l===o.Class.UNIVERSAL&&c===o.Type.BITSTRING&&(p=t.bytes(h)),void 0===f&&a.decodeBitStrings&&l===o.Class.UNIVERSAL&&c===o.Type.BITSTRING&&h>1){var m=t.read,g=r,v=0;if(c===o.Type.BITSTRING&&(i(t,r,1),v=t.getByte(),r--),0===v)try{s=t.length();var b=e(t,r,n+1,{strict:!0,decodeBitStrings:!0}),A=s-t.length();r-=A,c==o.Type.BITSTRING&&A++;var w=b.tagClass;A!==h||w!==o.Class.UNIVERSAL&&w!==o.Class.CONTEXT_SPECIFIC||(f=[b])}catch(e){}void 0===f&&(t.read=m,r=g)}if(void 0===f){if(void 0===h){if(a.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");h=r}if(c===o.Type.BMPSTRING)for(f="";h>0;h-=2)i(t,r,2),f+=String.fromCharCode(t.getInt16()),r-=2;else f=t.getBytes(h),r-=h}var S=void 0===p?null:{bitStringContents:p};return o.create(l,c,d,f,S)}(e,e.length(),0,t);if(t.parseAllBytes&&0!==e.length()){var s=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw s.byteCount=r,s.remaining=e.length(),s}return a},o.toDer=function(e){var t=n.util.createBuffer(),r=e.tagClass|e.type,i=n.util.createBuffer(),a=!1;if("bitStringContents"in e&&(a=!0,e.original&&(a=o.equals(e,e.original))),a)i.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:i.putByte(0);for(var s=0;s1&&(0===e.value.charCodeAt(0)&&0==(128&e.value.charCodeAt(1))||255===e.value.charCodeAt(0)&&128==(128&e.value.charCodeAt(1)))?i.putBytes(e.value.substr(1)):i.putBytes(e.value);if(t.putByte(r),i.length()<=127)t.putByte(127&i.length());else{var u=i.length(),l="";do{l+=String.fromCharCode(255&u),u>>>=8}while(u>0);for(t.putByte(128|l.length),s=l.length-1;s>=0;--s)t.putByte(l.charCodeAt(s))}return t.putBuffer(i),t},o.oidToDer=function(e){var t,r,o,i,a=e.split("."),s=n.util.createBuffer();s.putByte(40*parseInt(a[0],10)+parseInt(a[1],10));for(var u=2;u4294967295)throw new Error("OID value too large; max is 32-bits.");do{i=127&o,o>>>=7,t||(i|=128),r.push(i),t=!1}while(o>0);for(var l=r.length-1;l>=0;--l)s.putByte(r[l])}return s},o.derToOid=function(e){var t;"string"==typeof e&&(e=n.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var o=0;e.length()>0;){if(o>70368744177663)throw new Error("OID value too large; max is 53-bits.");o*=128,128&(r=e.getByte())?o+=127&r:(t+="."+(o+r),o=0)}return t},o.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,o=parseInt(e.substr(4,2),10),i=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var u=e.charAt(10),l=10;"+"!==u&&"-"!==u&&(s=parseInt(e.substr(10,2),10),l+=2)}if(t.setUTCFullYear(r,n,o),t.setUTCHours(i,a,s,0),l&&("+"===(u=e.charAt(l))||"-"===u)){var c=60*parseInt(e.substr(l+1,2),10)+parseInt(e.substr(l+4,2),10);c*=6e4,"+"===u?t.setTime(+t-c):t.setTime(+t+c)}return t},o.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,o=parseInt(e.substr(6,2),10),i=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),u=0,l=0,c=!1;"Z"===e.charAt(e.length-1)&&(c=!0);var f=e.length-5,p=e.charAt(f);return"+"!==p&&"-"!==p||(l=60*parseInt(e.substr(f+1,2),10)+parseInt(e.substr(f+4,2),10),l*=6e4,"+"===p&&(l*=-1),c=!0),"."===e.charAt(14)&&(u=1e3*parseFloat(e.substr(14),10)),c?(t.setUTCFullYear(r,n,o),t.setUTCHours(i,a,s,u),t.setTime(+t+l)):(t.setFullYear(r,n,o),t.setHours(i,a,s,u)),t},o.dateToUtcTime=function(e){if("string"==typeof e)return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r},o.derToInteger=function(e){"string"==typeof e&&(e=n.util.createBuffer(e));var t=8*e.length();if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)},o.validate=function(e,t,r,i){var a=!1;if(e.tagClass!==t.tagClass&&void 0!==t.tagClass||e.type!==t.type&&void 0!==t.type)i&&(e.tagClass!==t.tagClass&&i.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&i.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));else if(e.constructed===t.constructed||void 0===t.constructed){if(a=!0,t.value&&n.util.isArray(t.value))for(var s=0,u=0;a&&u0&&(i+="\n");for(var s="",u=0;u1?i+="0x"+n.util.bytesToHex(e.value.slice(1)):i+="(none)",e.value.length>0){var p=e.value.charCodeAt(0);1==p?i+=" (1 unused bit shown)":p>1&&(i+=" ("+p+" unused bits shown)")}}else if(e.type===o.Type.OCTETSTRING)a.test(e.value)||(i+="("+e.value+") "),i+="0x"+n.util.bytesToHex(e.value);else if(e.type===o.Type.UTF8)try{i+=n.util.decodeUtf8(e.value)}catch(t){if("URI malformed"!==t.message)throw t;i+="0x"+n.util.bytesToHex(e.value)+" (malformed UTF8)"}else e.type===o.Type.PRINTABLESTRING||e.type===o.Type.IA5String?i+=e.value:a.test(e.value)?i+="0x"+n.util.bytesToHex(e.value):0===e.value.length?i+="[null]":i+=e.value}return i}},function(e,t,r){var n=r(0);e.exports=n.md=n.md||{},n.md.algorithms=n.md.algorithms||{}},function(e,t,r){var n=r(0);function o(e,t){n.cipher.registerAlgorithm(e,function(){return new n.aes.Algorithm(e,t)})}r(13),r(19),r(1),e.exports=n.aes=n.aes||{},n.aes.startEncrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!1,mode:n});return o.start(t),o},n.aes.createEncryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!1,mode:t})},n.aes.startDecrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!0,mode:n});return o.start(t),o},n.aes.createDecryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!0,mode:t})},n.aes.Algorithm=function(e,t){c||f();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(e,t){return h(r._w,e,t,!1)},decrypt:function(e,t){return h(r._w,e,t,!0)}}}),r._init=!1},n.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t,r=e.key;if("string"!=typeof r||16!==r.length&&24!==r.length&&32!==r.length){if(n.util.isArray(r)&&(16===r.length||24===r.length||32===r.length)){t=r,r=n.util.createBuffer();for(var o=0;o>>=2,o=0;o>8^255&f^99,i[d]=f,a[f]=d,h=(p=e[f])<<24^f<<16^f<<8^f^p,y=((r=e[d])^(n=e[r])^(o=e[n]))<<24^(d^o)<<16^(d^n^o)<<8^d^r^o;for(var g=0;g<4;++g)u[g][d]=h,l[g][f]=y,h=h<<24|h>>>8,y=y<<24|y>>>8;0===d?d=m=1:(d=r^e[e[e[r^o]]],m^=e[e[m]])}}function p(e,t){for(var r,n=e.slice(0),o=1,a=n.length,u=4*(a+6+1),c=a;c>>16&255]<<24^i[r>>>8&255]<<16^i[255&r]<<8^i[r>>>24]^s[o]<<24,o++):a>6&&c%a==4&&(r=i[r>>>24]<<24^i[r>>>16&255]<<16^i[r>>>8&255]<<8^i[255&r]),n[c]=n[c-a]^r;if(t){for(var f,p=l[0],h=l[1],y=l[2],d=l[3],m=n.slice(0),g=(c=0,(u=n.length)-4);c>>24]]^h[i[f>>>16&255]]^y[i[f>>>8&255]]^d[i[255&f]];n=m}return n}function h(e,t,r,n){var o,s,c,f,p,h,y,d,m,g,v,b,A=e.length/4-1;n?(o=l[0],s=l[1],c=l[2],f=l[3],p=a):(o=u[0],s=u[1],c=u[2],f=u[3],p=i),h=t[0]^e[0],y=t[n?3:1]^e[1],d=t[2]^e[2],m=t[n?1:3]^e[3];for(var w=3,S=1;S>>24]^s[y>>>16&255]^c[d>>>8&255]^f[255&m]^e[++w],v=o[y>>>24]^s[d>>>16&255]^c[m>>>8&255]^f[255&h]^e[++w],b=o[d>>>24]^s[m>>>16&255]^c[h>>>8&255]^f[255&y]^e[++w],m=o[m>>>24]^s[h>>>16&255]^c[y>>>8&255]^f[255&d]^e[++w],h=g,y=v,d=b;r[0]=p[h>>>24]<<24^p[y>>>16&255]<<16^p[d>>>8&255]<<8^p[255&m]^e[++w],r[n?3:1]=p[y>>>24]<<24^p[d>>>16&255]<<16^p[m>>>8&255]<<8^p[255&h]^e[++w],r[2]=p[d>>>24]<<24^p[m>>>16&255]<<16^p[h>>>8&255]<<8^p[255&y]^e[++w],r[n?1:3]=p[m>>>24]<<24^p[h>>>16&255]<<16^p[y>>>8&255]<<8^p[255&d]^e[++w]}function y(e){var t,r="AES-"+((e=e||{}).mode||"CBC").toUpperCase(),o=(t=e.decrypt?n.cipher.createDecipher(r,e.key):n.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var i=null;r instanceof n.util.ByteBuffer&&(i=r,r={}),(r=r||{}).output=i,r.iv=e,o.call(t,r)},t}},function(e,t,r){var n=r(0);n.pki=n.pki||{};var o=e.exports=n.pki.oids=n.oids=n.oids||{};function i(e,t){o[e]=t,o[t]=e}function a(e,t){o[e]=t}i("1.2.840.113549.1.1.1","rsaEncryption"),i("1.2.840.113549.1.1.4","md5WithRSAEncryption"),i("1.2.840.113549.1.1.5","sha1WithRSAEncryption"),i("1.2.840.113549.1.1.7","RSAES-OAEP"),i("1.2.840.113549.1.1.8","mgf1"),i("1.2.840.113549.1.1.9","pSpecified"),i("1.2.840.113549.1.1.10","RSASSA-PSS"),i("1.2.840.113549.1.1.11","sha256WithRSAEncryption"),i("1.2.840.113549.1.1.12","sha384WithRSAEncryption"),i("1.2.840.113549.1.1.13","sha512WithRSAEncryption"),i("1.3.101.112","EdDSA25519"),i("1.2.840.10040.4.3","dsa-with-sha1"),i("1.3.14.3.2.7","desCBC"),i("1.3.14.3.2.26","sha1"),i("1.3.14.3.2.29","sha1WithRSASignature"),i("2.16.840.1.101.3.4.2.1","sha256"),i("2.16.840.1.101.3.4.2.2","sha384"),i("2.16.840.1.101.3.4.2.3","sha512"),i("2.16.840.1.101.3.4.2.4","sha224"),i("2.16.840.1.101.3.4.2.5","sha512-224"),i("2.16.840.1.101.3.4.2.6","sha512-256"),i("1.2.840.113549.2.2","md2"),i("1.2.840.113549.2.5","md5"),i("1.2.840.113549.1.7.1","data"),i("1.2.840.113549.1.7.2","signedData"),i("1.2.840.113549.1.7.3","envelopedData"),i("1.2.840.113549.1.7.4","signedAndEnvelopedData"),i("1.2.840.113549.1.7.5","digestedData"),i("1.2.840.113549.1.7.6","encryptedData"),i("1.2.840.113549.1.9.1","emailAddress"),i("1.2.840.113549.1.9.2","unstructuredName"),i("1.2.840.113549.1.9.3","contentType"),i("1.2.840.113549.1.9.4","messageDigest"),i("1.2.840.113549.1.9.5","signingTime"),i("1.2.840.113549.1.9.6","counterSignature"),i("1.2.840.113549.1.9.7","challengePassword"),i("1.2.840.113549.1.9.8","unstructuredAddress"),i("1.2.840.113549.1.9.14","extensionRequest"),i("1.2.840.113549.1.9.20","friendlyName"),i("1.2.840.113549.1.9.21","localKeyId"),i("1.2.840.113549.1.9.22.1","x509Certificate"),i("1.2.840.113549.1.12.10.1.1","keyBag"),i("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),i("1.2.840.113549.1.12.10.1.3","certBag"),i("1.2.840.113549.1.12.10.1.4","crlBag"),i("1.2.840.113549.1.12.10.1.5","secretBag"),i("1.2.840.113549.1.12.10.1.6","safeContentsBag"),i("1.2.840.113549.1.5.13","pkcs5PBES2"),i("1.2.840.113549.1.5.12","pkcs5PBKDF2"),i("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4"),i("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4"),i("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC"),i("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC"),i("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC"),i("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC"),i("1.2.840.113549.2.7","hmacWithSHA1"),i("1.2.840.113549.2.8","hmacWithSHA224"),i("1.2.840.113549.2.9","hmacWithSHA256"),i("1.2.840.113549.2.10","hmacWithSHA384"),i("1.2.840.113549.2.11","hmacWithSHA512"),i("1.2.840.113549.3.7","des-EDE3-CBC"),i("2.16.840.1.101.3.4.1.2","aes128-CBC"),i("2.16.840.1.101.3.4.1.22","aes192-CBC"),i("2.16.840.1.101.3.4.1.42","aes256-CBC"),i("2.5.4.3","commonName"),i("2.5.4.4","surname"),i("2.5.4.5","serialNumber"),i("2.5.4.6","countryName"),i("2.5.4.7","localityName"),i("2.5.4.8","stateOrProvinceName"),i("2.5.4.9","streetAddress"),i("2.5.4.10","organizationName"),i("2.5.4.11","organizationalUnitName"),i("2.5.4.12","title"),i("2.5.4.13","description"),i("2.5.4.15","businessCategory"),i("2.5.4.17","postalCode"),i("2.5.4.42","givenName"),i("2.5.4.65","pseudonym"),i("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName"),i("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName"),i("2.16.840.1.113730.1.1","nsCertType"),i("2.16.840.1.113730.1.13","nsComment"),a("2.5.29.1","authorityKeyIdentifier"),a("2.5.29.2","keyAttributes"),a("2.5.29.3","certificatePolicies"),a("2.5.29.4","keyUsageRestriction"),a("2.5.29.5","policyMapping"),a("2.5.29.6","subtreesConstraint"),a("2.5.29.7","subjectAltName"),a("2.5.29.8","issuerAltName"),a("2.5.29.9","subjectDirectoryAttributes"),a("2.5.29.10","basicConstraints"),a("2.5.29.11","nameConstraints"),a("2.5.29.12","policyConstraints"),a("2.5.29.13","basicConstraints"),i("2.5.29.14","subjectKeyIdentifier"),i("2.5.29.15","keyUsage"),a("2.5.29.16","privateKeyUsagePeriod"),i("2.5.29.17","subjectAltName"),i("2.5.29.18","issuerAltName"),i("2.5.29.19","basicConstraints"),a("2.5.29.20","cRLNumber"),a("2.5.29.21","cRLReason"),a("2.5.29.22","expirationDate"),a("2.5.29.23","instructionCode"),a("2.5.29.24","invalidityDate"),a("2.5.29.25","cRLDistributionPoints"),a("2.5.29.26","issuingDistributionPoint"),a("2.5.29.27","deltaCRLIndicator"),a("2.5.29.28","issuingDistributionPoint"),a("2.5.29.29","certificateIssuer"),a("2.5.29.30","nameConstraints"),i("2.5.29.31","cRLDistributionPoints"),i("2.5.29.32","certificatePolicies"),a("2.5.29.33","policyMappings"),a("2.5.29.34","policyConstraints"),i("2.5.29.35","authorityKeyIdentifier"),a("2.5.29.36","policyConstraints"),i("2.5.29.37","extKeyUsage"),a("2.5.29.46","freshestCRL"),a("2.5.29.54","inhibitAnyPolicy"),i("1.3.6.1.4.1.11129.2.4.2","timestampList"),i("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),i("1.3.6.1.5.5.7.3.1","serverAuth"),i("1.3.6.1.5.5.7.3.2","clientAuth"),i("1.3.6.1.5.5.7.3.3","codeSigning"),i("1.3.6.1.5.5.7.3.4","emailProtection"),i("1.3.6.1.5.5.7.3.8","timeStamping")},function(e,t,r){var n=r(0);r(1);var o=e.exports=n.pem=n.pem||{};function i(e){for(var t=e.name+": ",r=[],n=function(e,t){return" "+t},o=0;o65&&-1!==a){var s=t[a];","===s?(++a,t=t.substr(0,a)+"\r\n "+t.substr(a)):t=t.substr(0,a)+"\r\n"+s+t.substr(a+1),i=o-a-1,a=-1,++o}else" "!==t[o]&&"\t"!==t[o]&&","!==t[o]||(a=o);return t}function a(e){return e.replace(/^\s+/,"")}o.encode=function(e,t){t=t||{};var r,o="-----BEGIN "+e.type+"-----\r\n";if(e.procType&&(o+=i(r={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]})),e.contentDomain&&(o+=i(r={name:"Content-Domain",values:[e.contentDomain]})),e.dekInfo&&(r={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&r.values.push(e.dekInfo.parameters),o+=i(r)),e.headers)for(var a=0;at.blockLength&&(t.start(),t.update(a.bytes()),a=t.digest()),r=n.util.createBuffer(),o=n.util.createBuffer(),l=a.length(),u=0;u>>0,u>>>0];for(var l=o.fullMessageLength.length-1;l>=0;--l)o.fullMessageLength[l]+=u[1],u[1]=u[0]+(o.fullMessageLength[l]/4294967296>>>0),o.fullMessageLength[l]=o.fullMessageLength[l]>>>0,u[0]=u[1]/4294967296>>>0;return t.putBytes(i),s(e,r,t),(t.read>2048||0===t.length())&&t.compact(),o},o.digest=function(){var a=n.util.createBuffer();a.putBytes(t.bytes());var u,l=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize&o.blockLength-1;a.putBytes(i.substr(0,o.blockLength-l));for(var c=8*o.fullMessageLength[0],f=0;f>>0,a.putInt32(c>>>0),c=u>>>0;a.putInt32(c);var p={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};s(p,r,a);var h=n.util.createBuffer();return h.putInt32(p.h0),h.putInt32(p.h1),h.putInt32(p.h2),h.putInt32(p.h3),h.putInt32(p.h4),h},o};var i=null,a=!1;function s(e,t,r){for(var n,o,i,a,s,u,l,c=r.length();c>=64;){for(o=e.h0,i=e.h1,a=e.h2,s=e.h3,u=e.h4,l=0;l<16;++l)n=r.getInt32(),t[l]=n,n=(o<<5|o>>>27)+(s^i&(a^s))+u+1518500249+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<20;++l)n=(n=t[l-3]^t[l-8]^t[l-14]^t[l-16])<<1|n>>>31,t[l]=n,n=(o<<5|o>>>27)+(s^i&(a^s))+u+1518500249+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<32;++l)n=(n=t[l-3]^t[l-8]^t[l-14]^t[l-16])<<1|n>>>31,t[l]=n,n=(o<<5|o>>>27)+(i^a^s)+u+1859775393+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<40;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(o<<5|o>>>27)+(i^a^s)+u+1859775393+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<60;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(o<<5|o>>>27)+(i&a|s&(i^a))+u+2400959708+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<80;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(o<<5|o>>>27)+(i^a^s)+u+3395469782+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;e.h0=e.h0+o|0,e.h1=e.h1+i|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,e.h4=e.h4+u|0,c-=64}}},function(e,t,r){var n=r(0);function o(e,t){n.cipher.registerAlgorithm(e,function(){return new n.des.Algorithm(e,t)})}r(13),r(19),r(1),e.exports=n.des=n.des||{},n.des.startEncrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!1,mode:n||(null===t?"ECB":"CBC")});return o.start(t),o},n.des.createEncryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!1,mode:t})},n.des.startDecrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!0,mode:n||(null===t?"ECB":"CBC")});return o.start(t),o},n.des.createDecryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!0,mode:t})},n.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(e,t){return h(r._keys,e,t,!1)},decrypt:function(e,t){return h(r._keys,e,t,!0)}}}),r._init=!1},n.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=n.util.createBuffer(e.key);if(0===this.name.indexOf("3DES")&&24!==t.length())throw new Error("Invalid Triple-DES key size: "+8*t.length());this._keys=function(e){for(var t,r=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],n=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],o=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],a=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],u=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],l=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],c=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],p=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],h=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],y=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=e.length()>8?3:1,g=[],v=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],b=0,A=0;A>>4^S))<<4,w^=t=65535&((S^=t)>>>-16^w),w^=(t=858993459&(w>>>2^(S^=t<<-16)))<<2,w^=t=65535&((S^=t)>>>-16^w),w^=(t=1431655765&(w>>>1^(S^=t<<-16)))<<1,w^=t=16711935&((S^=t)>>>8^w),t=(w^=(t=1431655765&(w>>>1^(S^=t<<8)))<<1)<<8|(S^=t)>>>20&240,w=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=t;for(var C=0;C>>26,S=S<<2|S>>>26):(w=w<<1|w>>>27,S=S<<1|S>>>27);var E=r[(w&=-15)>>>28]|n[w>>>24&15]|o[w>>>20&15]|i[w>>>16&15]|a[w>>>12&15]|s[w>>>8&15]|u[w>>>4&15],_=l[(S&=-15)>>>28]|c[S>>>24&15]|f[S>>>20&15]|p[S>>>16&15]|h[S>>>12&15]|y[S>>>8&15]|d[S>>>4&15];t=65535&(_>>>16^E),g[b++]=E^t,g[b++]=_^t<<16}}return g}(t),this._init=!0}},o("DES-ECB",n.cipher.modes.ecb),o("DES-CBC",n.cipher.modes.cbc),o("DES-CFB",n.cipher.modes.cfb),o("DES-OFB",n.cipher.modes.ofb),o("DES-CTR",n.cipher.modes.ctr),o("3DES-ECB",n.cipher.modes.ecb),o("3DES-CBC",n.cipher.modes.cbc),o("3DES-CFB",n.cipher.modes.cfb),o("3DES-OFB",n.cipher.modes.ofb),o("3DES-CTR",n.cipher.modes.ctr);var i=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],a=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],s=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],u=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],l=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],c=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],f=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],p=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function h(e,t,r,n){var o,h,y=32===e.length?3:9;o=3===y?n?[30,-2,-2]:[0,32,2]:n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var d=t[0],m=t[1];d^=(h=252645135&(d>>>4^m))<<4,d^=(h=65535&(d>>>16^(m^=h)))<<16,d^=h=858993459&((m^=h)>>>2^d),d^=h=16711935&((m^=h<<2)>>>8^d),d=(d^=(h=1431655765&(d>>>1^(m^=h<<8)))<<1)<<1|d>>>31,m=(m^=h)<<1|m>>>31;for(var g=0;g>>4|m<<28)^e[A+1];h=d,d=m,m=h^(a[w>>>24&63]|u[w>>>16&63]|c[w>>>8&63]|p[63&w]|i[S>>>24&63]|s[S>>>16&63]|l[S>>>8&63]|f[63&S])}h=d,d=m,m=h}m=m>>>1|m<<31,m^=h=1431655765&((d=d>>>1|d<<31)>>>1^m),m^=(h=16711935&(m>>>8^(d^=h<<1)))<<8,m^=(h=858993459&(m>>>2^(d^=h)))<<2,m^=h=65535&((d^=h)>>>16^m),m^=h=252645135&((d^=h<<16)>>>4^m),d^=h<<4,r[0]=d,r[1]=m}function y(e){var t,r="DES-"+((e=e||{}).mode||"CBC").toUpperCase(),o=(t=e.decrypt?n.cipher.createDecipher(r,e.key):n.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var i=null;r instanceof n.util.ByteBuffer&&(i=r,r={}),(r=r||{}).output=i,r.iv=e,o.call(t,r)},t}},function(e,t,r){var n=r(0);if(r(3),r(12),r(6),r(26),r(27),r(2),r(1),void 0===o)var o=n.jsbn.BigInteger;var i=n.util.isNodejs?r(16):null,a=n.asn1,u=n.util;n.pki=n.pki||{},e.exports=n.pki.rsa=n.rsa=n.rsa||{};var l=n.pki,c=[6,4,2,4,2,4,6,2],f={name:"PrivateKeyInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},p={name:"RSAPrivateKey",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},h={name:"RSAPublicKey",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},y=n.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:a.Class.UNIVERSAL,type:a.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},d={name:"DigestInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:a.Class.UNIVERSAL,type:a.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:a.Class.UNIVERSAL,type:a.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:a.Class.UNIVERSAL,type:a.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},m=function(e){var t;if(!(e.algorithm in l.oids)){var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}t=l.oids[e.algorithm];var n=a.oidToDer(t).getBytes(),o=a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[]),i=a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[]);i.value.push(a.create(a.Class.UNIVERSAL,a.Type.OID,!1,n)),i.value.push(a.create(a.Class.UNIVERSAL,a.Type.NULL,!1,""));var s=a.create(a.Class.UNIVERSAL,a.Type.OCTETSTRING,!1,e.digest().getBytes());return o.value.push(i),o.value.push(s),a.toDer(o).getBytes()},g=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);var i;t.dP||(t.dP=t.d.mod(t.p.subtract(o.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(o.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));do{i=new o(n.util.bytesToHex(n.random.getBytes(t.n.bitLength()/8)),16)}while(i.compareTo(t.n)>=0||!i.gcd(t.n).equals(o.ONE));for(var a=(e=e.multiply(i.modPow(t.e,t.n)).mod(t.n)).mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);a.compareTo(s)<0;)a=a.add(t.p);var u=a.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return u.multiply(i.modInverse(t.n)).mod(t.n)};function v(e,t,r){var o=n.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var a=new Error("Message is too long for PKCS#1 v1.5 padding.");throw a.length=e.length,a.max=i-11,a}o.putByte(0),o.putByte(r);var s,u=i-3-e.length;if(0===r||1===r){s=0===r?0:255;for(var l=0;l0;){var c=0,f=n.random.getBytes(u);for(l=0;l1;){if(255!==s.getByte()){--s.read;break}++c}if(c<8&&(!i||!i._skipPaddingChecks))throw new Error("Encryption block is invalid.")}else if(2===l){for(c=0;s.length()>1;){if(0===s.getByte()){--s.read;break}++c}if(c<8&&(!i||!i._skipPaddingChecks))throw new Error("Encryption block is invalid.")}if(0!==s.getByte()||c!==a-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function A(e,t,r){"function"==typeof t&&(r=t,t={});var i={algorithm:{name:(t=t||{}).algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};function a(){s(e.pBits,function(t,n){return t?r(t):(e.p=n,null!==e.q?u(t,e.q):void s(e.qBits,u))})}function s(e,t){n.prime.generateProbablePrime(e,i,t)}function u(t,n){if(t)return r(t);if(e.q=n,e.p.compareTo(e.q)<0){var i=e.p;e.p=e.q,e.q=i}if(0!==e.p.subtract(o.ONE).gcd(e.e).compareTo(o.ONE))return e.p=null,void a();if(0!==e.q.subtract(o.ONE).gcd(e.e).compareTo(o.ONE))return e.q=null,void s(e.qBits,u);if(e.p1=e.p.subtract(o.ONE),e.q1=e.q.subtract(o.ONE),e.phi=e.p1.multiply(e.q1),0!==e.phi.gcd(e.e).compareTo(o.ONE))return e.p=e.q=null,void a();if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits)return e.q=null,void s(e.qBits,u);var c=e.e.modInverse(e.phi);e.keys={privateKey:l.rsa.setPrivateKey(e.n,e.e,c,e.p,e.q,c.mod(e.p1),c.mod(e.q1),e.q.modInverse(e.p)),publicKey:l.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}"prng"in t&&(i.prng=t.prng),a()}function w(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=n.util.hexToBytes(t);return r.length>1&&(0===r.charCodeAt(0)&&0==(128&r.charCodeAt(1))||255===r.charCodeAt(0)&&128==(128&r.charCodeAt(1)))?r.substr(1):r}function S(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function C(e){return n.util.isNodejs&&"function"==typeof i[e]}function E(e){return void 0!==u.globalScope&&"object"==s(u.globalScope.crypto)&&"object"==s(u.globalScope.crypto.subtle)&&"function"==typeof u.globalScope.crypto.subtle[e]}function _(e){return void 0!==u.globalScope&&"object"==s(u.globalScope.msCrypto)&&"object"==s(u.globalScope.msCrypto.subtle)&&"function"==typeof u.globalScope.msCrypto.subtle[e]}function O(e){for(var t=n.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),o=0;o0;)c.putByte(0),--f;return c.putBytes(n.util.hexToBytes(l)),c.getBytes()},l.rsa.decrypt=function(e,t,r,i){var a=Math.ceil(t.n.bitLength()/8);if(e.length!==a){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=a,s}var u=new o(n.util.createBuffer(e).toHex(),16);if(u.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var l=g(u,t,r).toString(16),c=n.util.createBuffer(),f=a-Math.ceil(l.length/2);f>0;)c.putByte(0),--f;return c.putBytes(n.util.hexToBytes(l)),!1!==i?b(c.getBytes(),t,r):c.getBytes()},l.rsa.createKeyPairGenerationState=function(e,t,r){"string"==typeof e&&(e=parseInt(e,10)),e=e||2048;var i,a=(r=r||{}).prng||n.random,s={nextBytes:function(e){for(var t=a.getBytesSync(e.length),r=0;r>1,pBits:e-(e>>1),pqState:0,num:null,keys:null}).e.fromInt(i.eInt),i},l.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new o(null);r.fromInt(30);for(var n,i=0,a=function(e,t){return e|t},s=+new Date,u=0;null===e.keys&&(t<=0||uf?e.pqState=0:e.num.isProbablePrime(S(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(c[i++%8],0):2===e.pqState?e.pqState=0===e.num.subtract(o.ONE).gcd(e.e).compareTo(o.ONE)?3:0:3===e.pqState&&(e.pqState=0,null===e.p?e.p=e.num:e.q=e.num,null!==e.p&&null!==e.q&&++e.state,e.num=null)}else if(1===e.state)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(2===e.state)e.p1=e.p.subtract(o.ONE),e.q1=e.q.subtract(o.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(3===e.state)0===e.phi.gcd(e.e).compareTo(o.ONE)?++e.state:(e.p=null,e.q=null,e.state=0);else if(4===e.state)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(5===e.state){var h=e.e.modInverse(e.phi);e.keys={privateKey:l.rsa.setPrivateKey(e.n,e.e,h,e.p,e.q,h.mod(e.p1),h.mod(e.q1),e.q.modInverse(e.p)),publicKey:l.rsa.setPublicKey(e.n,e.e)}}u+=(n=+new Date)-s,s=n}return null!==e.keys},l.rsa.generateKeyPair=function(e,t,r,o){if(1===arguments.length?"object"==s(e)?(r=e,e=void 0):"function"==typeof e&&(o=e,e=void 0):2===arguments.length?"number"==typeof e?"function"==typeof t?(o=t,t=void 0):"number"!=typeof t&&(r=t,t=void 0):(r=e,o=t,e=void 0,t=void 0):3===arguments.length&&("number"==typeof t?"function"==typeof r&&(o=r,r=void 0):(o=r,r=t,t=void 0)),r=r||{},void 0===e&&(e=r.bits||2048),void 0===t&&(t=r.e||65537),!n.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(65537===t||3===t))if(o){if(C("generateKeyPair"))return i.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(e,t,r){if(e)return o(e);o(null,{privateKey:l.privateKeyFromPem(r),publicKey:l.publicKeyFromPem(t)})});if(E("generateKey")&&E("exportKey"))return u.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:O(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(e){return u.globalScope.crypto.subtle.exportKey("pkcs8",e.privateKey)}).then(void 0,function(e){o(e)}).then(function(e){if(e){var t=l.privateKeyFromAsn1(a.fromDer(n.util.createBuffer(e)));o(null,{privateKey:t,publicKey:l.setRsaPublicKey(t.n,t.e)})}});if(_("generateKey")&&_("exportKey")){var c=u.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:O(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);return c.oncomplete=function(e){var t=e.target.result,r=u.globalScope.msCrypto.subtle.exportKey("pkcs8",t.privateKey);r.oncomplete=function(e){var t=e.target.result,r=l.privateKeyFromAsn1(a.fromDer(n.util.createBuffer(t)));o(null,{privateKey:r,publicKey:l.setRsaPublicKey(r.n,r.e)})},r.onerror=function(e){o(e)}},void(c.onerror=function(e){o(e)})}}else if(C("generateKeyPairSync")){var f=i.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:l.privateKeyFromPem(f.privateKey),publicKey:l.publicKeyFromPem(f.publicKey)}}var p=l.rsa.createKeyPairGenerationState(e,t,r);if(!o)return l.rsa.stepKeyPairGenerationState(p,0),p.keys;A(p,r,o)},l.setRsaPublicKey=l.rsa.setPublicKey=function(e,t){var r={n:e,e:t,encrypt:function(e,t,o){if("string"==typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5"),"RSAES-PKCS1-V1_5"===t)t={encode:function(e,t,r){return v(e,t,2).getBytes()}};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={encode:function(e,t){return n.pkcs1.encode_rsa_oaep(t,e,o)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(t))t={encode:function(e){return e}};else if("string"==typeof t)throw new Error('Unsupported encryption scheme: "'+t+'".');var i=t.encode(e,r,!0);return l.rsa.encrypt(i,r,!0)},verify:function(e,t,o,i){"string"==typeof o?o=o.toUpperCase():void 0===o&&(o="RSASSA-PKCS1-V1_5"),void 0===i&&(i={_parseAllDigestBytes:!0,_skipPaddingChecks:!1}),"_parseAllDigestBytes"in i||(i._parseAllDigestBytes=!0),"_skipPaddingChecks"in i||(i._skipPaddingChecks=!1),"RSASSA-PKCS1-V1_5"===o?o={verify:function(e,t){t=b(t,r,!0,void 0,i);var o=a.fromDer(t,{parseAllBytes:i._parseAllDigestBytes}),s={},u=[];if(!a.validate(o,d,s,u)||2!==o.value.length)throw(l=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.")).errors=u,l;var l,c=a.derToOid(s.algorithmIdentifier);if(c!==n.oids.md2&&c!==n.oids.md5&&c!==n.oids.sha1&&c!==n.oids.sha224&&c!==n.oids.sha256&&c!==n.oids.sha384&&c!==n.oids.sha512&&c!==n.oids["sha512-224"]&&c!==n.oids["sha512-256"])throw(l=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.")).oid=c,l;if(!(c!==n.oids.md2&&c!==n.oids.md5||"parameters"in s))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifier NULL parameters.");return e===s.digest}}:"NONE"!==o&&"NULL"!==o&&null!==o||(o={verify:function(e,t){return e===b(t,r,!0,void 0,i)}});var s=l.rsa.decrypt(t,r,!0,!1);return o.verify(e,s,r.n.bitLength())}};return r},l.setRsaPrivateKey=l.rsa.setPrivateKey=function(e,t,r,o,i,a,s,u){var c={n:e,e:t,d:r,p:o,q:i,dP:a,dQ:s,qInv:u,decrypt:function(e,t,r){"string"==typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5");var o=l.rsa.decrypt(e,c,!1,!1);if("RSAES-PKCS1-V1_5"===t)t={decode:b};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={decode:function(e,t){return n.pkcs1.decode_rsa_oaep(t,e,r)}};else{if(-1===["RAW","NONE","NULL",null].indexOf(t))throw new Error('Unsupported encryption scheme: "'+t+'".');t={decode:function(e){return e}}}return t.decode(o,c,!1)},sign:function(e,t){var r=!1;"string"==typeof t&&(t=t.toUpperCase()),void 0===t||"RSASSA-PKCS1-V1_5"===t?(t={encode:m},r=1):"NONE"!==t&&"NULL"!==t&&null!==t||(t={encode:function(){return e}},r=1);var n=t.encode(e,c.n.bitLength());return l.rsa.encrypt(n,c,r)}};return c},l.wrapRsaPrivateKey=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,a.integerToDer(0).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.OID,!1,a.oidToDer(l.oids.rsaEncryption).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.NULL,!1,"")]),a.create(a.Class.UNIVERSAL,a.Type.OCTETSTRING,!1,a.toDer(e).getBytes())])},l.privateKeyFromAsn1=function(e){var t,r,i,s,u,c,h,y,d={},m=[];if(a.validate(e,f,d,m)&&(e=a.fromDer(n.util.createBuffer(d.privateKey))),d={},m=[],!a.validate(e,p,d,m)){var g=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw g.errors=m,g}return t=n.util.createBuffer(d.privateKeyModulus).toHex(),r=n.util.createBuffer(d.privateKeyPublicExponent).toHex(),i=n.util.createBuffer(d.privateKeyPrivateExponent).toHex(),s=n.util.createBuffer(d.privateKeyPrime1).toHex(),u=n.util.createBuffer(d.privateKeyPrime2).toHex(),c=n.util.createBuffer(d.privateKeyExponent1).toHex(),h=n.util.createBuffer(d.privateKeyExponent2).toHex(),y=n.util.createBuffer(d.privateKeyCoefficient).toHex(),l.setRsaPrivateKey(new o(t,16),new o(r,16),new o(i,16),new o(s,16),new o(u,16),new o(c,16),new o(h,16),new o(y,16))},l.privateKeyToAsn1=l.privateKeyToRSAPrivateKey=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,a.integerToDer(0).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.n)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.e)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.d)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.p)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.q)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.dP)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.dQ)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.qInv))])},l.publicKeyFromAsn1=function(e){var t={},r=[];if(a.validate(e,y,t,r)){var i,s=a.derToOid(t.publicKeyOid);if(s!==l.oids.rsaEncryption)throw(i=new Error("Cannot read public key. Unknown OID.")).oid=s,i;e=t.rsaPublicKey}if(r=[],!a.validate(e,h,t,r))throw(i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.")).errors=r,i;var u=n.util.createBuffer(t.publicKeyModulus).toHex(),c=n.util.createBuffer(t.publicKeyExponent).toHex();return l.setRsaPublicKey(new o(u,16),new o(c,16))},l.publicKeyToAsn1=l.publicKeyToSubjectPublicKeyInfo=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.OID,!1,a.oidToDer(l.oids.rsaEncryption).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.NULL,!1,"")]),a.create(a.Class.UNIVERSAL,a.Type.BITSTRING,!1,[l.publicKeyToRSAPublicKey(e)])])},l.publicKeyToRSAPublicKey=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.n)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.e))])}},function(e,t,r){var n,o=r(0);function i(e,t,r){this.data=[],null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function a(){return new i(null)}function s(e,t,r,n,o,i){for(var a=16383&t,s=t>>14;--i>=0;){var u=16383&this.data[e],l=this.data[e++]>>14,c=s*u+l*a;o=((u=a*u+((16383&c)<<14)+r.data[n]+o)>>28)+(c>>14)+s*l,r.data[n++]=268435455&u}return o}e.exports=o.jsbn=o.jsbn||{},o.jsbn.BigInteger=i,"undefined"==typeof navigator?(i.prototype.am=s,n=28):"Microsoft Internet Explorer"==navigator.appName?(i.prototype.am=function(e,t,r,n,o,i){for(var a=32767&t,s=t>>15;--i>=0;){var u=32767&this.data[e],l=this.data[e++]>>15,c=s*u+l*a;o=((u=a*u+((32767&c)<<15)+r.data[n]+(1073741823&o))>>>30)+(c>>>15)+s*l+(o>>>30),r.data[n++]=1073741823&u}return o},n=30):"Netscape"!=navigator.appName?(i.prototype.am=function(e,t,r,n,o,i){for(;--i>=0;){var a=t*this.data[e++]+r.data[n]+o;o=Math.floor(a/67108864),r.data[n++]=67108863&a}return o},n=26):(i.prototype.am=s,n=28),i.prototype.DB=n,i.prototype.DM=(1<>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function d(e){this.m=e}function m(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function S(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function C(){}function E(e){return e}function _(e){this.r2=a(),this.q3=a(),i.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}d.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},d.prototype.revert=function(e){return e},d.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},d.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},d.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},m.prototype.convert=function(e){var t=a();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(i.ZERO)>0&&this.m.subTo(t,t),t},m.prototype.revert=function(e){var t=a();return e.copyTo(t),this.reduce(t),t},m.prototype.reduce=function(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},m.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},m.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},i.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s},i.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0},i.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var n=e.length,o=!1,a=0;--n>=0;){var s=8==r?255&e[n]:p(e,n);s<0?"-"==e.charAt(n)&&(o=!0):(o=!1,0==a?this.data[this.t++]=s:a+r>this.DB?(this.data[this.t-1]|=(s&(1<>this.DB-a):this.data[this.t-1]|=s<=this.DB&&(a-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,a>0&&(this.data[this.t-1]|=(1<0&&this.data[this.t-1]==e;)--this.t},i.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s},i.prototype.drShiftTo=function(e,t){for(var r=e;r=0;--r)t.data[r+a+1]=this.data[r]>>o|s,s=(this.data[r]&i)<=0;--r)t.data[r]=0;t.data[a]=s,t.t=this.t+a+1,t.s=this.s,t.clamp()},i.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,o=this.DB-n,i=(1<>n;for(var a=r+1;a>n;n>0&&(t.data[this.t-r-1]|=(this.s&i)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()},i.prototype.multiplyTo=function(e,t){var r=this.abs(),n=e.abs(),o=r.t;for(t.t=o+n.t;--o>=0;)t.data[o]=0;for(o=0;o=0;)e.data[r]=0;for(r=0;r=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()},i.prototype.divRemTo=function(e,t,r){var n=e.abs();if(!(n.t<=0)){var o=this.abs();if(o.t0?(n.lShiftTo(c,s),o.lShiftTo(c,r)):(n.copyTo(s),o.copyTo(r));var f=s.t,p=s.data[f-1];if(0!=p){var h=p*(1<1?s.data[f-2]>>this.F2:0),d=this.FV/h,m=(1<=0&&(r.data[r.t++]=1,r.subTo(A,r)),i.ONE.dlShiftTo(f,A),A.subTo(s,s);s.t=0;){var w=r.data[--v]==p?this.DM:Math.floor(r.data[v]*d+(r.data[v-1]+g)*m);if((r.data[v]+=s.am(0,w,r,b,0,f))0&&r.rShiftTo(c,r),u<0&&i.ZERO.subTo(r,r)}}},i.prototype.invDigit=function(){if(this.t<1)return 0;var e=this.data[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},i.prototype.isEven=function(){return 0==(this.t>0?1&this.data[0]:this.s)},i.prototype.exp=function(e,t){if(e>4294967295||e<1)return i.ONE;var r=a(),n=a(),o=t.convert(this),s=y(e)-1;for(o.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<0)t.mulTo(n,o,r);else{var u=r;r=n,n=u}return t.revert(r)},i.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<0)for(s>s)>0&&(o=!0,i=f(r));a>=0;)s>(s+=this.DB-t)):(r=this.data[a]>>(s-=t)&n,s<=0&&(s+=this.DB,--a)),r>0&&(o=!0),o&&(i+=f(r));return o?i:"0"},i.prototype.negate=function(){var e=a();return i.ZERO.subTo(this,e),e},i.prototype.abs=function(){return this.s<0?this.negate():this},i.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this.data[r]-e.data[r]))return t;return 0},i.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+y(this.data[this.t-1]^this.s&this.DM)},i.prototype.mod=function(e){var t=a();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(i.ZERO)>0&&e.subTo(t,t),t},i.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new d(t):new m(t),this.exp(e,r)},i.ZERO=h(0),i.ONE=h(1),C.prototype.convert=E,C.prototype.revert=E,C.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r)},C.prototype.sqrTo=function(e,t){e.squareTo(t)},_.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=a();return e.copyTo(t),this.reduce(t),t},_.prototype.revert=function(e){return e},_.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},_.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},_.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var O=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],I=(1<<26)/O[O.length-1];i.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},i.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=h(r),o=a(),i=a(),s="";for(this.divRemTo(n,o,i);o.signum()>0;)s=(r+i.intValue()).toString(e).substr(1)+s,o.divRemTo(n,o,i);return i.intValue().toString(e)+s},i.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),o=!1,a=0,s=0,u=0;u=r&&(this.dMultiply(n),this.dAddOffset(s,0),a=0,s=0))}a>0&&(this.dMultiply(Math.pow(t,a)),this.dAddOffset(s,0)),o&&i.ZERO.subTo(this,this)},i.prototype.fromNumber=function(e,t,r){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(i.ONE.shiftLeft(e-1),v,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(i.ONE.shiftLeft(e-1),this);else{var n=new Array,o=7&e;n.length=1+(e>>3),t.nextBytes(n),o>0?n[0]&=(1<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()},i.prototype.dMultiply=function(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},i.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}},i.prototype.multiplyLowerTo=function(e,t,r){var n,o=Math.min(this.t+e.t,t);for(r.s=0,r.t=o;o>0;)r.data[--o]=0;for(n=r.t-this.t;o=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n0)if(0==t)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r},i.prototype.millerRabin=function(e){var t=this.subtract(i.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n,o=t.shiftRight(r),a={nextBytes:function(e){for(var t=0;t=0);var u=n.modPow(o,this);if(0!=u.compareTo(i.ONE)&&0!=u.compareTo(t)){for(var l=1;l++>24},i.prototype.shortValue=function(){return 0==this.t?this.s:this.data[0]<<16>>16},i.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this.data[0]<=0?0:1},i.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var r,n=this.DB-e*this.DB%8,o=0;if(e-- >0)for(n>n)!=(this.s&this.DM)>>n&&(t[o++]=r|this.s<=0;)n<8?(r=(this.data[e]&(1<>(n+=this.DB-8)):(r=this.data[e]>>(n-=8)&255,n<=0&&(n+=this.DB,--e)),0!=(128&r)&&(r|=-256),0==o&&(128&this.s)!=(128&r)&&++o,(o>0||r!=this.s)&&(t[o++]=r);return t},i.prototype.equals=function(e){return 0==this.compareTo(e)},i.prototype.min=function(e){return this.compareTo(e)<0?this:e},i.prototype.max=function(e){return this.compareTo(e)>0?this:e},i.prototype.and=function(e){var t=a();return this.bitwiseTo(e,g,t),t},i.prototype.or=function(e){var t=a();return this.bitwiseTo(e,v,t),t},i.prototype.xor=function(e){var t=a();return this.bitwiseTo(e,b,t),t},i.prototype.andNot=function(e){var t=a();return this.bitwiseTo(e,A,t),t},i.prototype.not=function(){for(var e=a(),t=0;t=this.t?0!=this.s:0!=(this.data[t]&1<1){var f=a();for(n.sqrTo(s[1],f);u<=c;)s[u]=a(),n.mulTo(f,s[u-2],s[u]),u+=2}var p,g,v=e.t-1,b=!0,A=a();for(o=y(e.data[v])-1;v>=0;){for(o>=l?p=e.data[v]>>o-l&c:(p=(e.data[v]&(1<0&&(p|=e.data[v-1]>>this.DB+o-l)),u=r;0==(1&p);)p>>=1,--u;if((o-=u)<0&&(o+=this.DB,--v),b)s[p].copyTo(i),b=!1;else{for(;u>1;)n.sqrTo(i,A),n.sqrTo(A,i),u-=2;u>0?n.sqrTo(i,A):(g=i,i=A,A=g),n.mulTo(A,s[p],i)}for(;v>=0&&0==(e.data[v]&1<=0?(r.subTo(n,r),t&&o.subTo(s,o),a.subTo(u,a)):(n.subTo(r,n),t&&s.subTo(o,s),u.subTo(a,u))}return 0!=n.compareTo(i.ONE)?i.ZERO:u.compareTo(e)>=0?u.subtract(e):u.signum()<0?(u.addTo(e,u),u.signum()<0?u.add(e):u):u},i.prototype.pow=function(e){return this.exp(e,new C)},i.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var o=t.getLowestSetBit(),i=r.getLowestSetBit();if(i<0)return t;for(o0&&(t.rShiftTo(i,t),r.rShiftTo(i,r));t.signum()>0;)(o=t.getLowestSetBit())>0&&t.rShiftTo(o,t),(o=r.getLowestSetBit())>0&&r.rShiftTo(o,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return i>0&&r.lShiftTo(i,r),r},i.prototype.isProbablePrime=function(e){var t,r=this.abs();if(1==r.t&&r.data[0]<=O[O.length-1]){for(t=0;t>>0,s>>>0];for(var u=o.fullMessageLength.length-1;u>=0;--u)o.fullMessageLength[u]+=s[1],s[1]=s[0]+(o.fullMessageLength[u]/4294967296>>>0),o.fullMessageLength[u]=o.fullMessageLength[u]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),c(e,r,t),(t.read>2048||0===t.length())&&t.compact(),o},o.digest=function(){var a=n.util.createBuffer();a.putBytes(t.bytes());var s=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize&o.blockLength-1;a.putBytes(i.substr(0,o.blockLength-s));for(var u,l=0,f=o.fullMessageLength.length-1;f>=0;--f)l=(u=8*o.fullMessageLength[f]+l)/4294967296>>>0,a.putInt32Le(u>>>0);var p={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3};c(p,r,a);var h=n.util.createBuffer();return h.putInt32Le(p.h0),h.putInt32Le(p.h1),h.putInt32Le(p.h2),h.putInt32Le(p.h3),h},o};var i=null,a=null,s=null,u=null,l=!1;function c(e,t,r){for(var n,o,i,l,c,f,p,h=r.length();h>=64;){for(o=e.h0,i=e.h1,l=e.h2,c=e.h3,p=0;p<16;++p)t[p]=r.getInt32Le(),n=o+(c^i&(l^c))+u[p]+t[p],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;for(;p<32;++p)n=o+(l^c&(i^l))+u[p]+t[a[p]],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;for(;p<48;++p)n=o+(i^l^c)+u[p]+t[a[p]],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;for(;p<64;++p)n=o+(l^(i|~c))+u[p]+t[a[p]],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;e.h0=e.h0+o|0,e.h1=e.h1+i|0,e.h2=e.h2+l|0,e.h3=e.h3+c|0,h-=64}}},function(e,t,r){var n=r(0);r(8),r(4),r(1);var o,i=n.pkcs5=n.pkcs5||{};n.util.isNodejs&&!n.options.usePureJavaScript&&(o=r(16)),e.exports=n.pbkdf2=i.pbkdf2=function(e,t,r,i,a,u){if("function"==typeof a&&(u=a,a=null),n.util.isNodejs&&!n.options.usePureJavaScript&&o.pbkdf2&&(null===a||"object"!=s(a))&&(o.pbkdf2Sync.length>4||!a||"sha1"===a))return"string"!=typeof a&&(a="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),u?4===o.pbkdf2Sync.length?o.pbkdf2(e,t,r,i,function(e,t){if(e)return u(e);u(null,t.toString("binary"))}):o.pbkdf2(e,t,r,i,a,function(e,t){if(e)return u(e);u(null,t.toString("binary"))}):4===o.pbkdf2Sync.length?o.pbkdf2Sync(e,t,r,i).toString("binary"):o.pbkdf2Sync(e,t,r,i,a).toString("binary");if(null==a&&(a="sha1"),"string"==typeof a){if(!(a in n.md.algorithms))throw new Error("Unknown hash algorithm: "+a);a=n.md[a].create()}var l=a.digestLength;if(i>4294967295*l){var c=new Error("Derived key is too long.");if(u)return u(c);throw c}var f=Math.ceil(i/l),p=i-(f-1)*l,h=n.hmac.create();h.start(a,e);var y,d,m,g="";if(!u){for(var v=1;v<=f;++v){h.start(null,null),h.update(t),h.update(n.util.int32ToBytes(v)),y=m=h.digest().getBytes();for(var b=2;b<=r;++b)h.start(null,null),h.update(m),d=h.digest().getBytes(),y=n.util.xorBytes(y,d,l),m=d;g+=vf)return u(null,g);h.start(null,null),h.update(t),h.update(n.util.int32ToBytes(v)),y=m=h.digest().getBytes(),b=2,w()}function w(){if(b<=r)return h.start(null,null),h.update(m),d=h.digest().getBytes(),y=n.util.xorBytes(y,d,l),m=d,++b,n.util.setImmediate(w);g+=v128)throw new Error('Invalid "nsComment" content.');e.value=o.create(o.Class.UNIVERSAL,o.Type.IA5STRING,!1,e.comment)}else if("subjectKeyIdentifier"===e.name&&t.cert){var h=t.cert.generateSubjectKeyIdentifier();e.subjectKeyIdentifier=h.toHex(),e.value=o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,h.getBytes())}else if("authorityKeyIdentifier"===e.name&&t.cert){if(e.value=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[]),c=e.value.value,e.keyIdentifier){var y=!0===e.keyIdentifier?t.cert.generateSubjectKeyIdentifier().getBytes():e.keyIdentifier;c.push(o.create(o.Class.CONTEXT_SPECIFIC,0,!1,y))}if(e.authorityCertIssuer){var d=[o.create(o.Class.CONTEXT_SPECIFIC,4,!0,[v(!0===e.authorityCertIssuer?t.cert.issuer:e.authorityCertIssuer)])];c.push(o.create(o.Class.CONTEXT_SPECIFIC,1,!0,d))}if(e.serialNumber){var m=n.util.hexToBytes(!0===e.serialNumber?t.cert.serialNumber:e.serialNumber);c.push(o.create(o.Class.CONTEXT_SPECIFIC,2,!1,m))}}else if("cRLDistributionPoints"===e.name){e.value=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[]),c=e.value.value;var g,b=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[]),A=o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[]);for(p=0;p2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(f.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(u.validity.notBefore=f[0],u.validity.notAfter=f[1],u.tbsCertificate=r.tbsCertificate,t){u.md=m({signatureOid:u.signatureOid,type:"certificate"});var p=o.toDer(u.tbsCertificate);u.md.update(p.getBytes())}var h=n.md.sha1.create(),g=o.toDer(r.certIssuer);h.update(g.getBytes()),u.issuer.getField=function(e){return y(u.issuer,e)},u.issuer.addField=function(e){b([e]),u.issuer.attributes.push(e)},u.issuer.attributes=i.RDNAttributesAsArray(r.certIssuer),r.certIssuerUniqueId&&(u.issuer.uniqueId=r.certIssuerUniqueId),u.issuer.hash=h.digest().toHex();var v=n.md.sha1.create(),A=o.toDer(r.certSubject);return v.update(A.getBytes()),u.subject.getField=function(e){return y(u.subject,e)},u.subject.addField=function(e){b([e]),u.subject.attributes.push(e)},u.subject.attributes=i.RDNAttributesAsArray(r.certSubject),r.certSubjectUniqueId&&(u.subject.uniqueId=r.certSubjectUniqueId),u.subject.hash=v.digest().toHex(),r.certExtensions?u.extensions=i.certificateExtensionsFromAsn1(r.certExtensions):u.extensions=[],u.publicKey=i.publicKeyFromAsn1(r.subjectPublicKeyInfo),u},i.certificateExtensionsFromAsn1=function(e){for(var t=[],r=0;r1&&(r=u.value.charCodeAt(1),i=u.value.length>2?u.value.charCodeAt(2):0),t.digitalSignature=128==(128&r),t.nonRepudiation=64==(64&r),t.keyEncipherment=32==(32&r),t.dataEncipherment=16==(16&r),t.keyAgreement=8==(8&r),t.keyCertSign=4==(4&r),t.cRLSign=2==(2&r),t.encipherOnly=1==(1&r),t.decipherOnly=128==(128&i)}else if("basicConstraints"===t.name){(u=o.fromDer(t.value)).value.length>0&&u.value[0].type===o.Type.BOOLEAN?t.cA=0!==u.value[0].value.charCodeAt(0):t.cA=!1;var s=null;u.value.length>0&&u.value[0].type===o.Type.INTEGER?s=u.value[0].value:u.value.length>1&&(s=u.value[1].value),null!==s&&(t.pathLenConstraint=o.derToInteger(s))}else if("extKeyUsage"===t.name)for(var u=o.fromDer(t.value),l=0;l1&&(r=u.value.charCodeAt(1)),t.client=128==(128&r),t.server=64==(64&r),t.email=32==(32&r),t.objsign=16==(16&r),t.reserved=8==(8&r),t.sslCA=4==(4&r),t.emailCA=2==(2&r),t.objCA=1==(1&r);else if("subjectAltName"===t.name||"issuerAltName"===t.name){var f;t.altNames=[],u=o.fromDer(t.value);for(var p=0;p=S&&e0&&a.value.push(i.certificateExtensionsToAsn1(e.extensions)),a},i.getCertificationRequestInfo=function(e){return o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,o.integerToDer(e.version).getBytes()),v(e.subject),i.publicKeyToAsn1(e.publicKey),function(e){var t=o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[]);if(0===e.attributes.length)return t;for(var r=e.attributes,i=0;if.validity.notAfter)&&(l={message:"Certificate is not valid yet or has expired.",error:i.certificateError.certificate_expired,notBefore:f.validity.notBefore,notAfter:f.validity.notAfter,now:a}),null===l){if(null===(p=t[0]||e.getIssuer(f))&&f.isIssuer(f)&&(h=!0,p=f),p){var y=p;n.util.isArray(y)||(y=[y]);for(var d=!1;!d&&y.length>0;){p=y.shift();try{d=p.verify(f)}catch(e){}}d||(l={message:"Certificate signature is invalid.",error:i.certificateError.bad_certificate})}null!==l||p&&!h||e.hasCertificate(f)||(l={message:"Certificate is not trusted.",error:i.certificateError.unknown_ca})}if(null===l&&p&&!f.isIssuer(p)&&(l={message:"Certificate issuer is invalid.",error:i.certificateError.bad_certificate}),null===l)for(var m={keyUsage:!0,basicConstraints:!0},g=0;null===l&&gb.pathLenConstraint&&(l={message:"Certificate basicConstraints pathLenConstraint violated.",error:i.certificateError.bad_certificate})}var w=null===l||l.error,S=r.verify?r.verify(w,c,o):w;if(!0!==S)throw!0===w&&(l={message:"The application rejected the certificate.",error:i.certificateError.bad_certificate}),(S||0===S)&&("object"!=s(S)||n.util.isArray(S)?"string"==typeof S&&(l.error=S):(S.message&&(l.message=S.message),S.error&&(l.error=S.error))),l;l=null,u=!1,++c}while(t.length>0);return!0}},function(e,t,r){var n=r(0);r(2),r(1),(e.exports=n.pss=n.pss||{}).create=function(e){3===arguments.length&&(e={md:arguments[0],mgf:arguments[1],saltLength:arguments[2]});var t,r=e.md,o=e.mgf,i=r.digestLength,a=e.salt||null;if("string"==typeof a&&(a=n.util.createBuffer(a)),"saltLength"in e)t=e.saltLength;else{if(null===a)throw new Error("Salt length not specified or specific salt not given.");t=a.length()}if(null!==a&&a.length()!==t)throw new Error("Given salt length does not match length of given salt.");var s=e.prng||n.random;return{encode:function(e,u){var l,c,f=u-1,p=Math.ceil(f/8),h=e.digest().getBytes();if(p>8*p-f&255;return(A=String.fromCharCode(A.charCodeAt(0)&~w)+A.substr(1))+d+String.fromCharCode(188)},verify:function(e,a,s){var u,l=s-1,c=Math.ceil(l/8);if(a=a.substr(-c),c>8*c-l&255;if(0!=(p.charCodeAt(0)&y))throw new Error("Bits beyond keysize not zero as expected.");var d=o.generate(h,f),m="";for(u=0;u4){var r=e;e=n.util.createBuffer();for(var o=0;o0))return!0;for(var n=0;n0))return!0;for(var n=0;n0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2||(e.truncate(n),0))},o.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},o.cbc.prototype.start=function(e){if(null===e.iv){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else{if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._prev=this._iv.slice(0)}},o.cbc.prototype.encrypt=function(e,t,r){if(e.length()0))return!0;for(var n=0;n0))return!0;for(var n=0;n0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2||(e.truncate(n),0))},o.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},o.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},o.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},o.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},o.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},o.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},o.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===e.length())return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},o.ofb.prototype.decrypt=o.ofb.prototype.encrypt,o.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},o.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},o.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}a(this._inBlock)},o.ctr.prototype.decrypt=o.ctr.prototype.encrypt,o.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0,this._R=3774873600},o.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t,r=n.util.createBuffer(e.iv);if(this._cipherLength=0,t="additionalData"in e?n.util.createBuffer(e.additionalData):n.util.createBuffer(),this._tagLength="tagLength"in e?e.tagLength:128,this._tag=null,e.decrypt&&(this._tag=n.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var o=r.length();if(12===o)this._j0=[r.getInt32(),r.getInt32(),r.getInt32(),1];else{for(this._j0=[0,0,0,0];r.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(s(8*o)))}this._inBlock=this._j0.slice(0),a(this._inBlock),this._partialBytes=0,t=n.util.createBuffer(t),this._aDataLength=s(8*t.length());var i=t.length()%this.blockSize;for(i&&t.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];t.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()])},o.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize){for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),a(this._inBlock)},o.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),a(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var o=0;o0;--n)t[n]=e[n]>>>1|(1&e[n-1])<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)},o.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=e[r/8|0]>>>4*(7-r%8)&15,o=this._m[r][n];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t},o.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)},o.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,o=16*r,i=new Array(o),a=0;a>>1,o=new Array(r);o[n]=e.slice(0);for(var i=n>>>1;i>0;)this.pow(o[2*i],o[i]=[]),i>>=1;for(i=2;i>1,s=a+(1&e.length),u=e.substr(0,s),l=e.substr(a,s),c=n.util.createBuffer(),f=n.hmac.create();r=t+r;var p=Math.ceil(o/16),h=Math.ceil(o/20);f.start("MD5",u);var y=n.util.createBuffer();c.putBytes(r);for(var d=0;d0&&(c.queue(e,c.createAlert(e,{level:c.Alert.Level.warning,description:c.Alert.Description.no_renegotiation})),c.flush(e)),e.process()},c.parseHelloMessage=function(e,t,r){var o=null,i=e.entity===c.ConnectionEnd.client;if(r<38)e.error(e,{message:i?"Invalid ServerHello message. Message too short.":"Invalid ClientHello message. Message too short.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});else{var a=t.fragment,s=a.length();if(o={version:{major:a.getByte(),minor:a.getByte()},random:n.util.createBuffer(a.getBytes(32)),session_id:u(a,1),extensions:[]},i?(o.cipher_suite=a.getBytes(2),o.compression_method=a.getByte()):(o.cipher_suites=u(a,2),o.compression_methods=u(a,1)),(s=r-(s-a.length()))>0){for(var l=u(a,2);l.length()>0;)o.extensions.push({type:[l.getByte(),l.getByte()],data:u(l,2)});if(!i)for(var f=0;f0&&0===h.getByte();)e.session.extensions.server_name.serverNameList.push(u(h,2).getBytes())}}if(e.session.version&&(o.version.major!==e.session.version.major||o.version.minor!==e.session.version.minor))return e.error(e,{message:"TLS version change is disallowed during renegotiation.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.protocol_version}});if(i)e.session.cipherSuite=c.getCipherSuite(o.cipher_suite);else for(var y=n.util.createBuffer(o.cipher_suites.bytes());y.length()>0&&(e.session.cipherSuite=c.getCipherSuite(y.getBytes(2)),null===e.session.cipherSuite););if(null===e.session.cipherSuite)return e.error(e,{message:"No cipher suites in common.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.handshake_failure},cipherSuite:n.util.bytesToHex(o.cipher_suite)});e.session.compressionMethod=i?o.compression_method:c.CompressionMethod.none}return o},c.createSecurityParameters=function(e,t){var r=e.entity===c.ConnectionEnd.client,n=t.random.bytes(),o=r?e.session.sp.client_random:n,i=r?n:c.createRandom().getBytes();e.session.sp={entity:e.entity,prf_algorithm:c.PRFAlgorithm.tls_prf_sha256,bulk_cipher_algorithm:null,cipher_type:null,enc_key_length:null,block_length:null,fixed_iv_length:null,record_iv_length:null,mac_algorithm:null,mac_length:null,mac_key_length:null,compression_algorithm:e.session.compressionMethod,pre_master_secret:null,master_secret:null,client_random:o,server_random:i}},c.handleServerHello=function(e,t,r){var n=c.parseHelloMessage(e,t,r);if(!e.fail){if(!(n.version.minor<=e.version.minor))return e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.protocol_version}});e.version.minor=n.version.minor,e.session.version=e.version;var o=n.session_id.bytes();o.length>0&&o===e.session.id?(e.expect=d,e.session.resuming=!0,e.session.sp.server_random=n.random.bytes()):(e.expect=f,e.session.resuming=!1,c.createSecurityParameters(e,n)),e.session.id=o,e.process()}},c.handleClientHello=function(e,t,r){var o=c.parseHelloMessage(e,t,r);if(!e.fail){var i=o.session_id.bytes(),a=null;if(e.sessionCache&&(null===(a=e.sessionCache.getSession(i))?i="":(a.version.major!==o.version.major||a.version.minor>o.version.minor)&&(a=null,i="")),0===i.length&&(i=n.random.getBytes(32)),e.session.id=i,e.session.clientHelloVersion=o.version,e.session.sp={},a)e.version=e.session.version=a.version,e.session.sp=a.sp;else{for(var s,u=1;u0;)o=u(s.certificate_list,3),i=n.asn1.fromDer(o),o=n.pki.certificateFromAsn1(i,!0),l.push(o)}catch(t){return e.error(e,{message:"Could not parse certificate list.",cause:t,send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.bad_certificate}})}var f=e.entity===c.ConnectionEnd.client;!f&&!0!==e.verifyClient||0!==l.length?0===l.length?e.expect=f?p:A:(f?e.session.serverCertificate=l[0]:e.session.clientCertificate=l[0],c.verifyCertificateChain(e,l)&&(e.expect=f?p:A)):e.error(e,{message:f?"No server certificate provided.":"No client certificate provided.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}}),e.process()},c.handleServerKeyExchange=function(e,t,r){if(r>0)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.unsupported_certificate}});e.expect=h,e.process()},c.handleClientKeyExchange=function(e,t,r){if(r<48)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.unsupported_certificate}});var o=t.fragment,i={enc_pre_master_secret:u(o,2).getBytes()},a=null;if(e.getPrivateKey)try{a=e.getPrivateKey(e,e.session.serverCertificate),a=n.pki.privateKeyFromPem(a)}catch(t){e.error(e,{message:"Could not get private key.",cause:t,send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}})}if(null===a)return e.error(e,{message:"No private key set.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}});try{var s=e.session.sp;s.pre_master_secret=a.decrypt(i.enc_pre_master_secret);var l=e.session.clientHelloVersion;if(l.major!==s.pre_master_secret.charCodeAt(0)||l.minor!==s.pre_master_secret.charCodeAt(1))throw new Error("TLS version rollback attack detected.")}catch(e){s.pre_master_secret=n.random.getBytes(48)}e.expect=S,null!==e.session.clientCertificate&&(e.expect=w),e.process()},c.handleCertificateRequest=function(e,t,r){if(r<3)return e.error(e,{message:"Invalid CertificateRequest. Message too short.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});var n=t.fragment,o={certificate_types:u(n,1),certificate_authorities:u(n,2)};e.session.certificateRequest=o,e.expect=y,e.process()},c.handleCertificateVerify=function(e,t,r){if(r<2)return e.error(e,{message:"Invalid CertificateVerify. Message too short.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});var o=t.fragment;o.read-=4;var i=o.bytes();o.read+=4;var a={signature:u(o,2).getBytes()},s=n.util.createBuffer();s.putBuffer(e.session.md5.digest()),s.putBuffer(e.session.sha1.digest()),s=s.getBytes();try{if(!e.session.clientCertificate.publicKey.verify(s,a.signature,"NONE"))throw new Error("CertificateVerify signature does not match.");e.session.md5.update(i),e.session.sha1.update(i)}catch(t){return e.error(e,{message:"Bad signature in CertificateVerify.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.handshake_failure}})}e.expect=S,e.process()},c.handleServerHelloDone=function(e,t,r){if(r>0)return e.error(e,{message:"Invalid ServerHelloDone message. Invalid length.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.record_overflow}});if(null===e.serverCertificate){var o={message:"No server certificate provided. Not enough security.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.insufficient_security}},i=e.verify(e,o.alert.description,0,[]);if(!0!==i)return(i||0===i)&&("object"!=s(i)||n.util.isArray(i)?"number"==typeof i&&(o.alert.description=i):(i.message&&(o.message=i.message),i.alert&&(o.alert.description=i.alert))),e.error(e,o)}null!==e.session.certificateRequest&&(t=c.createRecord(e,{type:c.ContentType.handshake,data:c.createCertificate(e)}),c.queue(e,t)),t=c.createRecord(e,{type:c.ContentType.handshake,data:c.createClientKeyExchange(e)}),c.queue(e,t),e.expect=v;var a=function(e,t){null!==e.session.certificateRequest&&null!==e.session.clientCertificate&&c.queue(e,c.createRecord(e,{type:c.ContentType.handshake,data:c.createCertificateVerify(e,t)})),c.queue(e,c.createRecord(e,{type:c.ContentType.change_cipher_spec,data:c.createChangeCipherSpec()})),e.state.pending=c.createConnectionState(e),e.state.current.write=e.state.pending.write,c.queue(e,c.createRecord(e,{type:c.ContentType.handshake,data:c.createFinished(e)})),e.expect=d,c.flush(e),e.process()};if(null===e.session.certificateRequest||null===e.session.clientCertificate)return a(e,null);c.getClientSignature(e,a)},c.handleChangeCipherSpec=function(e,t){if(1!==t.fragment.getByte())return e.error(e,{message:"Invalid ChangeCipherSpec message received.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});var r=e.entity===c.ConnectionEnd.client;(e.session.resuming&&r||!e.session.resuming&&!r)&&(e.state.pending=c.createConnectionState(e)),e.state.current.read=e.state.pending.read,(!e.session.resuming&&r||e.session.resuming&&!r)&&(e.state.pending=null),e.expect=r?m:C,e.process()},c.handleFinished=function(e,t,r){var i=t.fragment;i.read-=4;var a=i.bytes();i.read+=4;var s=t.fragment.getBytes();(i=n.util.createBuffer()).putBuffer(e.session.md5.digest()),i.putBuffer(e.session.sha1.digest());var u=e.entity===c.ConnectionEnd.client,l=u?"server finished":"client finished",f=e.session.sp;if((i=o(f.master_secret,l,i.getBytes(),12)).getBytes()!==s)return e.error(e,{message:"Invalid verify_data in Finished message.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.decrypt_error}});e.session.md5.update(a),e.session.sha1.update(a),(e.session.resuming&&u||!e.session.resuming&&!u)&&(c.queue(e,c.createRecord(e,{type:c.ContentType.change_cipher_spec,data:c.createChangeCipherSpec()})),e.state.current.write=e.state.pending.write,e.state.pending=null,c.queue(e,c.createRecord(e,{type:c.ContentType.handshake,data:c.createFinished(e)}))),e.expect=u?g:E,e.handshaking=!1,++e.handshakes,e.peerCertificate=u?e.session.serverCertificate:e.session.clientCertificate,c.flush(e),e.isConnected=!0,e.connected(e),e.process()},c.handleAlert=function(e,t){var r,n=t.fragment,o={level:n.getByte(),description:n.getByte()};switch(o.description){case c.Alert.Description.close_notify:r="Connection closed.";break;case c.Alert.Description.unexpected_message:r="Unexpected message.";break;case c.Alert.Description.bad_record_mac:r="Bad record MAC.";break;case c.Alert.Description.decryption_failed:r="Decryption failed.";break;case c.Alert.Description.record_overflow:r="Record overflow.";break;case c.Alert.Description.decompression_failure:r="Decompression failed.";break;case c.Alert.Description.handshake_failure:r="Handshake failure.";break;case c.Alert.Description.bad_certificate:r="Bad certificate.";break;case c.Alert.Description.unsupported_certificate:r="Unsupported certificate.";break;case c.Alert.Description.certificate_revoked:r="Certificate revoked.";break;case c.Alert.Description.certificate_expired:r="Certificate expired.";break;case c.Alert.Description.certificate_unknown:r="Certificate unknown.";break;case c.Alert.Description.illegal_parameter:r="Illegal parameter.";break;case c.Alert.Description.unknown_ca:r="Unknown certificate authority.";break;case c.Alert.Description.access_denied:r="Access denied.";break;case c.Alert.Description.decode_error:r="Decode error.";break;case c.Alert.Description.decrypt_error:r="Decrypt error.";break;case c.Alert.Description.export_restriction:r="Export restriction.";break;case c.Alert.Description.protocol_version:r="Unsupported protocol version.";break;case c.Alert.Description.insufficient_security:r="Insufficient security.";break;case c.Alert.Description.internal_error:r="Internal error.";break;case c.Alert.Description.user_canceled:r="User canceled.";break;case c.Alert.Description.no_renegotiation:r="Renegotiation not supported.";break;default:r="Unknown error."}if(o.description===c.Alert.Description.close_notify)return e.close();e.error(e,{message:r,send:!1,origin:e.entity===c.ConnectionEnd.client?"server":"client",alert:o}),e.process()},c.handleHandshake=function(e,t){var r=t.fragment,o=r.getByte(),i=r.getInt24();if(i>r.length())return e.fragmented=t,t.fragment=n.util.createBuffer(),r.read-=4,e.process();e.fragmented=null,r.read-=4;var a=r.bytes(i+4);r.read+=4,o in F[e.entity][e.expect]?(e.entity!==c.ConnectionEnd.server||e.open||e.fail||(e.handshaking=!0,e.session={version:null,extensions:{server_name:{serverNameList:[]}},cipherSuite:null,compressionMethod:null,serverCertificate:null,clientCertificate:null,md5:n.md.md5.create(),sha1:n.md.sha1.create()}),o!==c.HandshakeType.hello_request&&o!==c.HandshakeType.certificate_verify&&o!==c.HandshakeType.finished&&(e.session.md5.update(a),e.session.sha1.update(a)),F[e.entity][e.expect][o](e,t,i)):c.handleUnexpected(e,t)},c.handleApplicationData=function(e,t){e.data.putBuffer(t.fragment),e.dataReady(e),e.process()},c.handleHeartbeat=function(e,t){var r=t.fragment,o=r.getByte(),i=r.getInt16(),a=r.getBytes(i);if(o===c.HeartbeatMessageType.heartbeat_request){if(e.handshaking||i>a.length)return e.process();c.queue(e,c.createRecord(e,{type:c.ContentType.heartbeat,data:c.createHeartbeat(c.HeartbeatMessageType.heartbeat_response,a)})),c.flush(e)}else if(o===c.HeartbeatMessageType.heartbeat_response){if(a!==e.expectedHeartbeatPayload)return e.process();e.heartbeatReceived&&e.heartbeatReceived(e,n.util.createBuffer(a))}e.process()};var f=1,p=2,h=3,y=4,d=5,m=6,g=7,v=8,b=1,A=2,w=3,S=4,C=5,E=6,_=c.handleUnexpected,O=c.handleChangeCipherSpec,I=c.handleAlert,x=c.handleHandshake,P=c.handleApplicationData,k=c.handleHeartbeat,T=[];T[c.ConnectionEnd.client]=[[_,I,x,_,k],[_,I,x,_,k],[_,I,x,_,k],[_,I,x,_,k],[_,I,x,_,k],[O,I,_,_,k],[_,I,x,_,k],[_,I,x,P,k],[_,I,x,_,k]],T[c.ConnectionEnd.server]=[[_,I,x,_,k],[_,I,x,_,k],[_,I,x,_,k],[_,I,x,_,k],[O,I,_,_,k],[_,I,x,_,k],[_,I,x,P,k],[_,I,x,_,k]];var j=c.handleHelloRequest,M=c.handleServerHello,B=c.handleCertificate,N=c.handleServerKeyExchange,R=c.handleCertificateRequest,L=c.handleServerHelloDone,D=c.handleFinished,F=[];F[c.ConnectionEnd.client]=[[_,_,M,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_],[j,_,_,_,_,_,_,_,_,_,_,B,N,R,L,_,_,_,_,_,_],[j,_,_,_,_,_,_,_,_,_,_,_,N,R,L,_,_,_,_,_,_],[j,_,_,_,_,_,_,_,_,_,_,_,_,R,L,_,_,_,_,_,_],[j,_,_,_,_,_,_,_,_,_,_,_,_,_,L,_,_,_,_,_,_],[j,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_],[j,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D],[j,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_],[j,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_]];var Q=c.handleClientHello,G=c.handleClientKeyExchange,U=c.handleCertificateVerify;F[c.ConnectionEnd.server]=[[_,Q,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_],[_,_,_,_,_,_,_,_,_,_,_,B,_,_,_,_,_,_,_,_,_],[_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_],[_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,U,_,_,_,_,_],[_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_],[_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D],[_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_],[_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_]],c.generateKeys=function(e,t){var r=o,n=t.client_random+t.server_random;e.session.resuming||(t.master_secret=r(t.pre_master_secret,"master secret",n,48).bytes(),t.pre_master_secret=null),n=t.server_random+t.client_random;var i=2*t.mac_key_length+2*t.enc_key_length,a=e.version.major===c.Versions.TLS_1_0.major&&e.version.minor===c.Versions.TLS_1_0.minor;a&&(i+=2*t.fixed_iv_length);var s=r(t.master_secret,"key expansion",n,i),u={client_write_MAC_key:s.getBytes(t.mac_key_length),server_write_MAC_key:s.getBytes(t.mac_key_length),client_write_key:s.getBytes(t.enc_key_length),server_write_key:s.getBytes(t.enc_key_length)};return a&&(u.client_write_IV=s.getBytes(t.fixed_iv_length),u.server_write_IV=s.getBytes(t.fixed_iv_length)),u},c.createConnectionState=function(e){var t=e.entity===c.ConnectionEnd.client,r=function(){var e={sequenceNumber:[0,0],macKey:null,macLength:0,macFunction:null,cipherState:null,cipherFunction:function(e){return!0},compressionState:null,compressFunction:function(e){return!0},updateSequenceNumber:function(){4294967295===e.sequenceNumber[1]?(e.sequenceNumber[1]=0,++e.sequenceNumber[0]):++e.sequenceNumber[1]}};return e},n={read:r(),write:r()};if(n.read.update=function(e,t){return n.read.cipherFunction(t,n.read)?n.read.compressFunction(e,t,n.read)||e.error(e,{message:"Could not decompress record.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.decompression_failure}}):e.error(e,{message:"Could not decrypt record or bad MAC.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.bad_record_mac}}),!e.fail},n.write.update=function(e,t){return n.write.compressFunction(e,t,n.write)?n.write.cipherFunction(t,n.write)||e.error(e,{message:"Could not encrypt record.",send:!1,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}}):e.error(e,{message:"Could not compress record.",send:!1,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}}),!e.fail},e.session){var o=e.session.sp;switch(e.session.cipherSuite.initSecurityParameters(o),o.keys=c.generateKeys(e,o),n.read.macKey=t?o.keys.server_write_MAC_key:o.keys.client_write_MAC_key,n.write.macKey=t?o.keys.client_write_MAC_key:o.keys.server_write_MAC_key,e.session.cipherSuite.initConnectionState(n,e,o),o.compression_algorithm){case c.CompressionMethod.none:break;case c.CompressionMethod.deflate:n.read.compressFunction=a,n.write.compressFunction=i;break;default:throw new Error("Unsupported compression algorithm.")}}return n},c.createRandom=function(){var e=new Date,t=+e+6e4*e.getTimezoneOffset(),r=n.util.createBuffer();return r.putInt32(t),r.putBytes(n.random.getBytes(28)),r},c.createRecord=function(e,t){return t.data?{type:t.type,version:{major:e.version.major,minor:e.version.minor},length:t.data.length(),fragment:t.data}:null},c.createAlert=function(e,t){var r=n.util.createBuffer();return r.putByte(t.level),r.putByte(t.description),c.createRecord(e,{type:c.ContentType.alert,data:r})},c.createClientHello=function(e){e.session.clientHelloVersion={major:e.version.major,minor:e.version.minor};for(var t=n.util.createBuffer(),r=0;r0&&(y+=2);var d=e.session.id,m=d.length+1+2+4+28+2+i+1+s+y,g=n.util.createBuffer();return g.putByte(c.HandshakeType.client_hello),g.putInt24(m),g.putByte(e.version.major),g.putByte(e.version.minor),g.putBytes(e.session.sp.client_random),l(g,1,n.util.createBuffer(d)),l(g,2,t),l(g,1,a),y>0&&l(g,2,u),g},c.createServerHello=function(e){var t=e.session.id,r=t.length+1+2+4+28+2+1,o=n.util.createBuffer();return o.putByte(c.HandshakeType.server_hello),o.putInt24(r),o.putByte(e.version.major),o.putByte(e.version.minor),o.putBytes(e.session.sp.server_random),l(o,1,n.util.createBuffer(t)),o.putByte(e.session.cipherSuite.id[0]),o.putByte(e.session.cipherSuite.id[1]),o.putByte(e.session.compressionMethod),o},c.createCertificate=function(e){var t,r=e.entity===c.ConnectionEnd.client,o=null;e.getCertificate&&(t=r?e.session.certificateRequest:e.session.extensions.server_name.serverNameList,o=e.getCertificate(e,t));var i=n.util.createBuffer();if(null!==o)try{n.util.isArray(o)||(o=[o]);for(var a=null,s=0;sc.MaxFragment;)o.push(c.createRecord(e,{type:t.type,data:n.util.createBuffer(i.slice(0,c.MaxFragment))})),i=i.slice(c.MaxFragment);i.length>0&&o.push(c.createRecord(e,{type:t.type,data:n.util.createBuffer(i)}))}for(var a=0;a0&&(o=r.order[0]),null!==o&&o in r.cache)for(var i in t=r.cache[o],delete r.cache[o],r.order)if(r.order[i]===o){r.order.splice(i,1);break}return t},r.setSession=function(e,t){if(r.order.length===r.capacity){var o=r.order.shift();delete r.cache[o]}o=n.util.bytesToHex(e),r.order.push(o),r.cache[o]=t}}return r},c.createConnection=function(e){var t;t=e.caStore?n.util.isArray(e.caStore)?n.pki.createCaStore(e.caStore):e.caStore:n.pki.createCaStore();var r=e.cipherSuites||null;if(null===r)for(var o in r=[],c.CipherSuites)r.push(c.CipherSuites[o]);var i=e.server?c.ConnectionEnd.server:c.ConnectionEnd.client,a=e.sessionCache?c.createSessionCache(e.sessionCache):null,s={version:{major:c.Version.major,minor:c.Version.minor},entity:i,sessionId:e.sessionId,caStore:t,sessionCache:a,cipherSuites:r,connected:e.connected,virtualHost:e.virtualHost||null,verifyClient:e.verifyClient||!1,verify:e.verify||function(e,t,r,n){return t},verifyOptions:e.verifyOptions||{},getCertificate:e.getCertificate||null,getPrivateKey:e.getPrivateKey||null,getSignature:e.getSignature||null,input:n.util.createBuffer(),tlsData:n.util.createBuffer(),data:n.util.createBuffer(),tlsDataReady:e.tlsDataReady,dataReady:e.dataReady,heartbeatReceived:e.heartbeatReceived,closed:e.closed,error:function(t,r){r.origin=r.origin||(t.entity===c.ConnectionEnd.client?"client":"server"),r.send&&(c.queue(t,c.createAlert(t,r.alert)),c.flush(t));var n=!1!==r.fatal;n&&(t.fail=!0),e.error(t,r),n&&t.close(!1)},deflate:e.deflate||null,inflate:e.inflate||null,reset:function(e){s.version={major:c.Version.major,minor:c.Version.minor},s.record=null,s.session=null,s.peerCertificate=null,s.state={pending:null,current:null},s.expect=(s.entity,c.ConnectionEnd.client,0),s.fragmented=null,s.records=[],s.open=!1,s.handshakes=0,s.handshaking=!1,s.isConnected=!1,s.fail=!(e||void 0===e),s.input.clear(),s.tlsData.clear(),s.data.clear(),s.state.current=c.createConnectionState(s)}};return s.reset(),s.handshake=function(e){if(s.entity!==c.ConnectionEnd.client)s.error(s,{message:"Cannot initiate handshake as a server.",fatal:!1});else if(s.handshaking)s.error(s,{message:"Handshake already in progress.",fatal:!1});else{s.fail&&!s.open&&0===s.handshakes&&(s.fail=!1),s.handshaking=!0;var t=null;(e=e||"").length>0&&(s.sessionCache&&(t=s.sessionCache.getSession(e)),null===t&&(e="")),0===e.length&&s.sessionCache&&null!==(t=s.sessionCache.getSession())&&(e=t.id),s.session={id:e,version:null,cipherSuite:null,compressionMethod:null,serverCertificate:null,certificateRequest:null,clientCertificate:null,sp:{},md5:n.md.md5.create(),sha1:n.md.sha1.create()},t&&(s.version=t.version,s.session.sp=t.sp),s.session.sp.client_random=c.createRandom().getBytes(),s.open=!0,c.queue(s,c.createRecord(s,{type:c.ContentType.handshake,data:c.createClientHello(s)})),c.flush(s)}},s.process=function(e){var t=0;return e&&s.input.putBytes(e),s.fail||(null!==s.record&&s.record.ready&&s.record.fragment.isEmpty()&&(s.record=null),null===s.record&&(t=function(e){var t=0,r=e.input,o=r.length();if(o<5)t=5-o;else{e.record={type:r.getByte(),version:{major:r.getByte(),minor:r.getByte()},length:r.getInt16(),fragment:n.util.createBuffer(),ready:!1};var i=e.record.version.major===e.version.major;i&&e.session&&e.session.version&&(i=e.record.version.minor===e.version.minor),i||e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.protocol_version}})}return t}(s)),s.fail||null===s.record||s.record.ready||(t=function(e){var t=0,r=e.input,n=r.length();return n=0;u--)P>>=8,P+=_.at(u)+x.at(u),x.setAt(u,255&P);I.putBuffer(x)}A=I,f.putBuffer(C)}return f.truncate(f.length()-i),f},a.pbe.getCipher=function(e,t,r){switch(e){case a.oids.pkcs5PBES2:return a.pbe.getCipherForPBES2(e,t,r);case a.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case a.oids["pbewithSHAAnd40BitRC2-CBC"]:return a.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}},a.pbe.getCipherForPBES2=function(e,t,r){var o,s={},u=[];if(!i.validate(t,l,s,u))throw(o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=u,o;if((e=i.derToOid(s.kdfOid))!==a.oids.pkcs5PBKDF2)throw(o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.")).oid=e,o.supportedOids=["pkcs5PBKDF2"],o;if((e=i.derToOid(s.encOid))!==a.oids["aes128-CBC"]&&e!==a.oids["aes192-CBC"]&&e!==a.oids["aes256-CBC"]&&e!==a.oids["des-EDE3-CBC"]&&e!==a.oids.desCBC)throw(o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.")).oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o;var c,f,h=s.kdfSalt,y=n.util.createBuffer(s.kdfIterationCount);switch(y=y.getInt(y.length()<<3),a.oids[e]){case"aes128-CBC":c=16,f=n.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,f=n.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,f=n.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,f=n.des.createDecryptionCipher;break;case"desCBC":c=8,f=n.des.createDecryptionCipher}var d=p(s.prfOid),m=n.pkcs5.pbkdf2(r,h,y,c,d),g=s.encIv,v=f(m);return v.start(g),v},a.pbe.getCipherForPKCS12PBE=function(e,t,r){var o={},s=[];if(!i.validate(t,c,o,s))throw(d=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=s,d;var u,l,f,h=n.util.createBuffer(o.salt),y=n.util.createBuffer(o.iterations);switch(y=y.getInt(y.length()<<3),e){case a.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:u=24,l=8,f=n.des.startDecrypting;break;case a.oids["pbewithSHAAnd40BitRC2-CBC"]:u=5,l=8,f=function(e,t){var r=n.rc2.createDecryptionCipher(e,40);return r.start(t,null),r};break;default:var d;throw(d=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.")).oid=e,d}var m=p(o.prfOid),g=a.pbe.generatePkcs12Key(r,h,1,y,u,m);return m.start(),f(g,a.pbe.generatePkcs12Key(r,h,2,y,l,m))},a.pbe.opensslDeriveBytes=function(e,t,r,o){if(null==o){if(!("md5"in n.md))throw new Error('"md5" hash algorithm unavailable.');o=n.md.md5.create()}null===t&&(t="");for(var i=[f(o,e+t)],a=16,s=1;a>>0,s>>>0];for(var l=o.fullMessageLength.length-1;l>=0;--l)o.fullMessageLength[l]+=s[1],s[1]=s[0]+(o.fullMessageLength[l]/4294967296>>>0),o.fullMessageLength[l]=o.fullMessageLength[l]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),u(e,r,t),(t.read>2048||0===t.length())&&t.compact(),o},o.digest=function(){var a=n.util.createBuffer();a.putBytes(t.bytes());var s,l=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize&o.blockLength-1;a.putBytes(i.substr(0,o.blockLength-l));for(var c=8*o.fullMessageLength[0],f=0;f>>0,a.putInt32(c>>>0),c=s>>>0;a.putInt32(c);var p={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};u(p,r,a);var h=n.util.createBuffer();return h.putInt32(p.h0),h.putInt32(p.h1),h.putInt32(p.h2),h.putInt32(p.h3),h.putInt32(p.h4),h.putInt32(p.h5),h.putInt32(p.h6),h.putInt32(p.h7),h},o};var i=null,a=!1,s=null;function u(e,t,r){for(var n,o,i,a,u,l,c,f,p,h,y,d,m,g=r.length();g>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=((n=t[u-2])>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,o=((o=t[u-15])>>>7|o<<25)^(o>>>18|o<<14)^o>>>3,t[u]=n+t[u-7]+o+t[u-16]|0;for(l=e.h0,c=e.h1,f=e.h2,p=e.h3,h=e.h4,y=e.h5,d=e.h6,m=e.h7,u=0;u<64;++u)i=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),a=l&c|f&(l^c),n=m+((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(d^h&(y^d))+s[u]+t[u],m=d,d=y,y=h,h=p+n>>>0,p=f,f=c,c=l,l=n+(o=i+a)>>>0;e.h0=e.h0+l|0,e.h1=e.h1+c|0,e.h2=e.h2+f|0,e.h3=e.h3+p|0,e.h4=e.h4+h|0,e.h5=e.h5+y|0,e.h6=e.h6+d|0,e.h7=e.h7+m|0,g-=64}}},function(e,t,r){var n=r(0);r(1);var o=null;!n.util.isNodejs||n.options.usePureJavaScript||process.versions["node-webkit"]||(o=r(16)),(e.exports=n.prng=n.prng||{}).create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,i=new Array(32),a=0;a<32;++a)i[a]=r.create();function s(){if(t.pools[0].messageLength>=32)return u();var e=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(e)),u()}function u(){t.reseeds=4294967295===t.reseeds?0:t.reseeds+1;var e=t.plugin.md.create();e.update(t.keyBytes);for(var r=1,n=0;n<32;++n)t.reseeds%r==0&&(e.update(t.pools[n].digest().getBytes()),t.pools[n].start()),r<<=1;t.keyBytes=e.digest().getBytes(),e.start(),e.update(t.keyBytes);var o=e.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(o),t.generated=0}function l(e){var t=null,r=n.util.globalScope,o=r.crypto||r.msCrypto;o&&o.getRandomValues&&(t=function(e){return o.getRandomValues(e)});var i=n.util.createBuffer();if(t)for(;i.length()>16)))<<16,p=4294967295&(c=(2147483647&(c+=l>>15))+(c>>31)),u=0;u<3;++u)f=p>>>(u<<3),f^=Math.floor(256*Math.random()),i.putByte(255&f);return i.getBytes(e)}return t.pools=i,t.pool=0,t.generate=function(e,r){if(!r)return t.generateSync(e);var o=t.plugin.cipher,i=t.plugin.increment,a=t.plugin.formatKey,s=t.plugin.formatSeed,l=n.util.createBuffer();t.key=null,function c(f){if(f)return r(f);if(l.length()>=e)return r(null,l.getBytes(e));if(t.generated>1048575&&(t.key=null),null===t.key)return n.util.nextTick(function(){!function(e){if(t.pools[0].messageLength>=32)return u(),e();var r=32-t.pools[0].messageLength<<5;t.seedFile(r,function(r,n){if(r)return e(r);t.collect(n),u(),e()})}(c)});var p=o(t.key,t.seed);t.generated+=p.length,l.putBytes(p),t.key=a(o(t.key,i(t.seed))),t.seed=s(o(t.key,t.seed)),n.util.setImmediate(c)}()},t.generateSync=function(e){var r=t.plugin.cipher,o=t.plugin.increment,i=t.plugin.formatKey,a=t.plugin.formatSeed;t.key=null;for(var u=n.util.createBuffer();u.length()1048575&&(t.key=null),null===t.key&&s();var l=r(t.key,t.seed);t.generated+=l.length,u.putBytes(l),t.key=i(r(t.key,o(t.seed))),t.seed=a(r(t.key,t.seed))}return u.getBytes(e)},o?(t.seedFile=function(e,t){o.randomBytes(e,function(e,r){if(e)return t(e);t(null,r.toString())})},t.seedFileSync=function(e){return o.randomBytes(e).toString()}):(t.seedFile=function(e,t){try{t(null,l(e))}catch(e){t(e)}},t.seedFileSync=l),t.collect=function(e){for(var r=e.length,n=0;n>o&255);t.collect(n)},t.registerWorker=function(e){e===self?t.seedFile=function(e,t){self.addEventListener("message",function e(r){var n=r.data;n.forge&&n.forge.prng&&(self.removeEventListener("message",e),t(n.forge.prng.err,n.forge.prng.bytes))}),self.postMessage({forge:{prng:{needed:e}}})}:e.addEventListener("message",function(r){var n=r.data;n.forge&&n.forge.prng&&t.seedFile(n.forge.prng.needed,function(t,r){e.postMessage({forge:{prng:{err:t,bytes:r}}})})})},t}},function(e,t,r){var n=r(0);r(1);var o=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],i=[1,2,3,5],a=function(e,t){return e<>16-t},s=function(e,t){return(65535&e)>>t|e<<16-t&65535};e.exports=n.rc2=n.rc2||{},n.rc2.expandKey=function(e,t){"string"==typeof e&&(e=n.util.createBuffer(e)),t=t||128;var r,i=e,a=e.length(),s=t,u=Math.ceil(s/8),l=255>>(7&s);for(r=a;r<128;r++)i.putByte(o[i.at(r-1)+i.at(r-a)&255]);for(i.setAt(128-u,o[i.at(128-u)&l]),r=127-u;r>=0;r--)i.setAt(r,o[i.at(r+1)^i.at(r+u)]);return i};var u=function(e,t,r){var o,u,l,c,f=!1,p=null,h=null,y=null,d=[];for(e=n.rc2.expandKey(e,t),l=0;l<64;l++)d.push(e.getInt16Le());r?(o=function(e){for(l=0;l<4;l++)e[l]+=d[c]+(e[(l+3)%4]&e[(l+2)%4])+(~e[(l+3)%4]&e[(l+1)%4]),e[l]=a(e[l],i[l]),c++},u=function(e){for(l=0;l<4;l++)e[l]+=d[63&e[(l+3)%4]]}):(o=function(e){for(l=3;l>=0;l--)e[l]=s(e[l],i[l]),e[l]-=d[c]+(e[(l+3)%4]&e[(l+2)%4])+(~e[(l+3)%4]&e[(l+1)%4]),c--},u=function(e){for(l=3;l>=0;l--)e[l]-=d[63&e[(l+3)%4]]});var m=function(e){var t=[];for(l=0;l<4;l++){var n=p.getInt16Le();null!==y&&(r?n^=y.getInt16Le():y.putInt16Le(n)),t.push(65535&n)}c=r?0:63;for(var o=0;o=8;)m([[5,o],[1,u],[6,o],[1,u],[5,o]])},finish:function(e){var t=!0;if(r)if(e)t=e(8,p,!r);else{var n=8===p.length()?8:8-p.length();p.fillWithByte(n,n)}if(t&&(f=!0,g.update()),!r&&(t=0===p.length()))if(e)t=e(8,h,!r);else{var o=h.length(),i=h.at(o-1);i>o?t=!1:h.truncate(i)}return t}}};n.rc2.startEncrypting=function(e,t,r){var o=n.rc2.createEncryptionCipher(e,128);return o.start(t,r),o},n.rc2.createEncryptionCipher=function(e,t){return u(e,t,!0)},n.rc2.startDecrypting=function(e,t,r){var o=n.rc2.createDecryptionCipher(e,128);return o.start(t,r),o},n.rc2.createDecryptionCipher=function(e,t){return u(e,t,!1)}},function(e,t,r){var n=r(0);r(1),r(2),r(9);var o=e.exports=n.pkcs1=n.pkcs1||{};function i(e,t,r){r||(r=n.md.sha1.create());for(var o="",i=Math.ceil(t/r.digestLength),a=0;a>24&255,a>>16&255,a>>8&255,255&a);r.start(),r.update(e+s),o+=r.digest().getBytes()}return o.substring(0,t)}o.encode_rsa_oaep=function(e,t,r){var o,a,s,u;"string"==typeof r?(o=r,a=arguments[3]||void 0,s=arguments[4]||void 0):r&&(o=r.label||void 0,a=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(u=r.mgf1.md)),s?s.start():s=n.md.sha1.create(),u||(u=s);var l=Math.ceil(e.n.bitLength()/8),c=l-2*s.digestLength-2;if(t.length>c)throw(d=new Error("RSAES-OAEP input message length is too long.")).length=t.length,d.maxLength=c,d;o||(o=""),s.update(o,"raw");for(var f=s.digest(),p="",h=c-t.length,y=0;ye&&(a=u(e,t));var h=a.toString(16);o.target.postMessage({hex:h,workLoad:c}),a.dAddOffset(f,0)}}}h()}(e,t,o,i):s(e,t,o,i)}(e,l,i.options,o);throw new Error("Invalid prime generation algorithm: "+i.name)}}function s(e,t,r,i){var a=u(e,t),s=function(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}(a.bitLength());"millerRabinTests"in r&&(s=r.millerRabinTests);var l=10;"maxBlockTime"in r&&(l=r.maxBlockTime),function e(t,r,i,a,s,l,c){var f=+new Date;do{if(t.bitLength()>r&&(t=u(r,i)),t.isProbablePrime(s))return c(null,t);t.dAddOffset(o[a++%8],0)}while(l<0||+new Date-f=0&&o.push(s):o.push(s))}return o}function h(e){if(e.composed||e.constructed){for(var t=n.util.createBuffer(),r=0;r2)throw new Error("Invalid PKCS#12. macData field present but MAC was not validated.");return function(e,t,r,n){if((t=o.fromDer(t,r)).tagClass!==o.Class.UNIVERSAL||t.type!==o.Type.SEQUENCE||!0!==t.constructed)throw new Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo");for(var a=0;a0&&(u=o.create(o.Class.UNIVERSAL,o.Type.SET,!0,f));var p=[],h=[];null!==t&&(h=n.util.isArray(t)?t:[t]);for(var y=[],d=0;d0){var b=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,y),A=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.data).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,o.toDer(b).getBytes())])]);p.push(A)}var w=null;if(null!==e){var S=i.wrapRsaPrivateKey(i.privateKeyToAsn1(e));w=null===r?o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.keyBag).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[S]),u]):o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.pkcs8ShroudedKeyBag).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[i.encryptPrivateKeyInfo(S,r,s)]),u]);var C=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[w]),E=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.data).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,o.toDer(C).getBytes())])]);p.push(E)}var _,O=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,p);if(s.useMac){var I=n.md.sha1.create(),x=new n.util.ByteBuffer(n.random.getBytes(s.saltSize)),P=s.count,k=(e=a.generateKey(r,x,3,P,20),n.hmac.create());k.start(I,e),k.update(o.toDer(O).getBytes());var T=k.getMac();_=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.sha1).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.NULL,!1,"")]),o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,T.getBytes())]),o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,x.getBytes()),o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,o.integerToDer(P).getBytes())])}return o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,o.integerToDer(3).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.data).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,o.toDer(O).getBytes())])]),_])},a.generateKey=n.pbe.generatePkcs12Key},function(e,t,r){var n=r(0);r(3),r(1);var o=n.asn1,i=e.exports=n.pkcs7asn1=n.pkcs7asn1||{};n.pkcs7=n.pkcs7||{},n.pkcs7.asn1=i;var a={name:"ContentInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};i.contentInfoValidator=a;var s={name:"EncryptedContentInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:o.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};i.envelopedDataValidator={name:"EnvelopedData",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:o.Class.UNIVERSAL,type:o.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(s)},i.encryptedDataValidator={name:"EncryptedData",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"}].concat(s)};var u={name:"SignerInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:o.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:o.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]};i.signedDataValidator={name:"SignedData",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:o.Class.UNIVERSAL,type:o.Type.SET,constructed:!0,captureAsn1:"digestAlgorithms"},a,{name:"SignedData.Certificates",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:o.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:o.Class.UNIVERSAL,type:o.Type.SET,capture:"signerInfos",optional:!0,value:[u]}]},i.recipientInfoValidator={name:"RecipientInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:o.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter",optional:!0}]},{name:"RecipientInfo.encryptedKey",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]}},function(e,t,r){var n=r(0);r(1),n.mgf=n.mgf||{},(e.exports=n.mgf.mgf1=n.mgf1=n.mgf1||{}).create=function(e){return{generate:function(t,r){for(var o=new n.util.ByteBuffer,i=Math.ceil(r/e.digestLength),a=0;a>>0,a>>>0];for(var s=h.fullMessageLength.length-1;s>=0;--s)h.fullMessageLength[s]+=a[1],a[1]=a[0]+(h.fullMessageLength[s]/4294967296>>>0),h.fullMessageLength[s]=h.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return o.putBytes(e),c(r,i,o),(o.read>2048||0===o.length())&&o.compact(),h},h.digest=function(){var t=n.util.createBuffer();t.putBytes(o.bytes());var s,u=h.fullMessageLength[h.fullMessageLength.length-1]+h.messageLengthSize&h.blockLength-1;t.putBytes(a.substr(0,h.blockLength-u));for(var l=8*h.fullMessageLength[0],f=0;f>>0,t.putInt32(l>>>0),l=s>>>0;t.putInt32(l);var p=new Array(r.length);for(f=0;f=128;){for(k=0;k<16;++k)t[k][0]=r.getInt32()>>>0,t[k][1]=r.getInt32()>>>0;for(;k<80;++k)n=(((T=(M=t[k-2])[0])>>>19|(j=M[1])<<13)^(j>>>29|T<<3)^T>>>6)>>>0,o=((T<<13|j>>>19)^(j<<3|T>>>29)^(T<<26|j>>>6))>>>0,i=(((T=(N=t[k-15])[0])>>>1|(j=N[1])<<31)^(T>>>8|j<<24)^T>>>7)>>>0,a=((T<<31|j>>>1)^(T<<24|j>>>8)^(T<<25|j>>>7))>>>0,B=t[k-7],R=t[k-16],j=o+B[1]+a+R[1],t[k][0]=n+B[0]+i+R[0]+(j/4294967296>>>0)>>>0,t[k][1]=j>>>0;for(y=e[0][0],d=e[0][1],m=e[1][0],g=e[1][1],v=e[2][0],b=e[2][1],A=e[3][0],w=e[3][1],S=e[4][0],C=e[4][1],E=e[5][0],_=e[5][1],O=e[6][0],I=e[6][1],x=e[7][0],P=e[7][1],k=0;k<80;++k)c=((S>>>14|C<<18)^(S>>>18|C<<14)^(C>>>9|S<<23))>>>0,f=(O^S&(E^O))>>>0,s=((y>>>28|d<<4)^(d>>>2|y<<30)^(d>>>7|y<<25))>>>0,l=((y<<4|d>>>28)^(d<<30|y>>>2)^(d<<25|y>>>7))>>>0,p=(y&m|v&(y^m))>>>0,h=(d&g|b&(d^g))>>>0,j=P+(((S<<18|C>>>14)^(S<<14|C>>>18)^(C<<23|S>>>9))>>>0)+((I^C&(_^I))>>>0)+u[k][1]+t[k][1],n=x+c+f+u[k][0]+t[k][0]+(j/4294967296>>>0)>>>0,o=j>>>0,i=s+p+((j=l+h)/4294967296>>>0)>>>0,a=j>>>0,x=O,P=I,O=E,I=_,E=S,_=C,S=A+n+((j=w+o)/4294967296>>>0)>>>0,C=j>>>0,A=v,w=b,v=m,b=g,m=y,g=d,y=n+i+((j=o+a)/4294967296>>>0)>>>0,d=j>>>0;j=e[0][1]+d,e[0][0]=e[0][0]+y+(j/4294967296>>>0)>>>0,e[0][1]=j>>>0,j=e[1][1]+g,e[1][0]=e[1][0]+m+(j/4294967296>>>0)>>>0,e[1][1]=j>>>0,j=e[2][1]+b,e[2][0]=e[2][0]+v+(j/4294967296>>>0)>>>0,e[2][1]=j>>>0,j=e[3][1]+w,e[3][0]=e[3][0]+A+(j/4294967296>>>0)>>>0,e[3][1]=j>>>0,j=e[4][1]+C,e[4][0]=e[4][0]+S+(j/4294967296>>>0)>>>0,e[4][1]=j>>>0,j=e[5][1]+_,e[5][0]=e[5][0]+E+(j/4294967296>>>0)>>>0,e[5][1]=j>>>0,j=e[6][1]+I,e[6][0]=e[6][0]+O+(j/4294967296>>>0)>>>0,e[6][1]=j>>>0,j=e[7][1]+P,e[7][0]=e[7][0]+x+(j/4294967296>>>0)>>>0,e[7][1]=j>>>0,L-=128}}},function(e,t,r){e.exports=r(33)},function(e,t,r){e.exports=r(0),r(5),r(36),r(3),r(13),r(10),r(38),r(8),r(40),r(41),r(42),r(30),r(15),r(7),r(26),r(28),r(43),r(21),r(27),r(24),r(18),r(2),r(25),r(44),r(20),r(1)},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==("undefined"==typeof window?"undefined":s(window))&&(r=window)}e.exports=r},function(e,t){var r={};e.exports=r;var n={};r.encode=function(e,t,r){if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');if(void 0!==r&&"number"!=typeof r)throw new TypeError('"maxline" must be a number.');var n="";if(e instanceof Uint8Array){var o=0,i=t.length,a=t.charAt(0),s=[0];for(o=0;o0;)s.push(l%i),l=l/i|0}for(o=0;0===e[o]&&o=0;--o)n+=t[s[o]]}else n=function(e,t){var r=0,n=t.length,o=t.charAt(0),i=[0];for(r=0;r0;)i.push(s%n),s=s/n|0}var u="";for(r=0;0===e.at(r)&&r=0;--r)u+=t[i[r]];return u}(e,t);if(r){var c=new RegExp(".{1,"+r+"}","g");n=n.match(c).join("\r\n")}return n},r.decode=function(e,t){if("string"!=typeof e)throw new TypeError('"input" must be a string.');if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');var r=n[t];if(!r){r=n[t]=[];for(var o=0;o>=8;for(;c>0;)s.push(255&c),c>>=8}for(var f=0;e[f]===a&&f=o.Versions.TLS_1_1.minor&&u.output.putBytes(r),u.update(e.fragment),u.finish(s)&&(e.fragment=u.output,e.length=e.fragment.length(),i=!0),i}function s(e,t,r){if(!r){var n=e-t.length()%e;t.fillWithByte(n-1,n)}return!0}function u(e,t,r){var n=!0;if(r){for(var o=t.length(),i=t.last(),a=o-1-i;a=s?(e.fragment=a.output.getBytes(c-s),l=a.output.getBytes(s)):e.fragment=a.output.getBytes(),e.fragment=n.util.createBuffer(e.fragment),e.length=e.fragment.length();var f=t.macFunction(t.macKey,t.sequenceNumber,e);return t.updateSequenceNumber(),function(e,t,r){var o=n.hmac.create();return o.start("SHA1",e),o.update(t),t=o.digest().getBytes(),o.start(null,null),o.update(r),t===(r=o.digest().getBytes())}(t.macKey,l,f)&&i}o.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA={id:[0,47],name:"TLS_RSA_WITH_AES_128_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=o.BulkCipherAlgorithm.aes,e.cipher_type=o.CipherType.block,e.enc_key_length=16,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=o.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:i},o.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA={id:[0,53],name:"TLS_RSA_WITH_AES_256_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=o.BulkCipherAlgorithm.aes,e.cipher_type=o.CipherType.block,e.enc_key_length=32,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=o.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:i}},function(e,t,r){var n=r(0);r(30),e.exports=n.mgf=n.mgf||{},n.mgf.mgf1=n.mgf1},function(e,t,r){var n=r(0);r(12),r(2),r(31),r(1);var o=r(39),i=o.publicKeyValidator,a=o.privateKeyValidator;if(void 0===s)var s=n.jsbn.BigInteger;var u=n.util.ByteBuffer,l="undefined"==typeof Buffer?Uint8Array:Buffer;n.pki=n.pki||{},e.exports=n.pki.ed25519=n.ed25519=n.ed25519||{};var c=n.ed25519;function f(e){var t=e.message;if(t instanceof Uint8Array||t instanceof l)return t;var r=e.encoding;if(void 0===t){if(!e.md)throw new TypeError('"options.message" or "options.md" not specified.');t=e.md.digest().getBytes(),r="binary"}if("string"==typeof t&&!r)throw new TypeError('"options.encoding" must be "binary" or "utf8".');if("string"==typeof t){if("undefined"!=typeof Buffer)return Buffer.from(t,r);t=new u(t,r)}else if(!(t instanceof u))throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.');for(var n=new l(t.length()),o=0;o=0;--r)D(n,n),1!==r&&F(n,n,t);for(r=0;r<16;++r)e[r]=n[r]}(r,r),F(r,r,o),F(r,r,i),F(r,r,i),F(e[0],r,i),D(n,e[0]),F(n,n,i),I(n,o)&&F(e[0],e[0],b),D(n,e[0]),F(n,n,i),I(n,o)?-1:(P(e[0])===t[31]>>7&&L(e[0],p,e[0]),F(e[3],e[0],e[1]),0)}(s,n))return-1;if(!function(e,t){var r;for(r=31;r>=0;--r){if(e[32+r]v[r])return!1}return!1}(t))return-1;for(o=0;o=0};var p=N(),h=N([1]),y=N([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),d=N([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),m=N([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),g=N([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),v=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),b=N([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function A(e,t){var r=n.md.sha512.create(),o=new u(e);r.update(o.getBytes(t),"binary");var i=r.digest().getBytes();if("undefined"!=typeof Buffer)return Buffer.from(i,"binary");for(var a=new l(c.constants.HASH_BYTE_LENGTH),s=0;s<64;++s)a[s]=i.charCodeAt(s);return a}function w(e,t){var r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o>8,t[o]-=256*r;t[o]+=r,t[n]=0}for(r=0,o=0;o<32;++o)t[o]+=r-(t[31]>>4)*v[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;++o)t[o]-=r*v[o];for(n=0;n<32;++n)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function S(e){for(var t=new Float64Array(64),r=0;r<64;++r)t[r]=e[r],e[r]=0;w(e,t)}function C(e,t){var r=N(),n=N(),o=N(),i=N(),a=N(),s=N(),u=N(),l=N(),c=N();L(r,e[1],e[0]),L(c,t[1],t[0]),F(r,r,c),R(n,e[0],e[1]),R(c,t[0],t[1]),F(n,n,c),F(o,e[3],t[3]),F(o,o,d),F(i,e[2],t[2]),R(i,i,i),L(a,n,r),L(s,i,o),R(u,i,o),R(l,n,r),F(e[0],a,s),F(e[1],l,u),F(e[2],u,s),F(e[3],a,l)}function E(e,t,r){for(var n=0;n<4;++n)B(e[n],t[n],r)}function _(e,t){var r=N(),n=N(),o=N();!function(e,t){var r,n=N();for(r=0;r<16;++r)n[r]=t[r];for(r=253;r>=0;--r)D(n,n),2!==r&&4!==r&&F(n,n,t);for(r=0;r<16;++r)e[r]=n[r]}(o,t[2]),F(r,t[0],o),F(n,t[1],o),O(e,n),e[31]^=P(r)<<7}function O(e,t){var r,n,o,i=N(),a=N();for(r=0;r<16;++r)a[r]=t[r];for(M(a),M(a),M(a),n=0;n<2;++n){for(i[0]=a[0]-65517,r=1;r<15;++r)i[r]=a[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=a[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,B(a,i,1-o)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function I(e,t){var r=new l(32),n=new l(32);return O(r,e),O(n,t),x(r,0,n,0)}function x(e,t,r,n){return function(e,t,r,n,o){var i,a=0;for(i=0;i<32;++i)a|=e[t+i]^r[n+i];return(1&a-1>>>8)-1}(e,t,r,n)}function P(e){var t=new l(32);return O(t,e),1&t[0]}function k(e,t,r){var n,o;for(j(e[0],p),j(e[1],h),j(e[2],h),j(e[3],p),o=255;o>=0;--o)E(e,t,n=r[o/8|0]>>(7&o)&1),C(t,e),C(e,e),E(e,t,n)}function T(e,t){var r=[N(),N(),N(),N()];j(r[0],m),j(r[1],g),j(r[2],h),F(r[3],m,g),k(e,r,t)}function j(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function M(e){var t,r,n=1;for(t=0;t<16;++t)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function B(e,t,r){for(var n,o=~(r-1),i=0;i<16;++i)n=o&(e[i]^t[i]),e[i]^=n,t[i]^=n}function N(e){var t,r=new Float64Array(16);if(e)for(t=0;t0&&(a=n.util.fillString(String.fromCharCode(0),u)+a),{encapsulation:t.encrypt(a,"NONE"),key:e.generate(a,i)}},decrypt:function(t,r,n){var o=t.decrypt(r,"NONE");return e.generate(o,n)}}},n.kem.kdf1=function(e,t){i(this,e,0,t||e.digestLength)},n.kem.kdf2=function(e,t){i(this,e,1,t||e.digestLength)}},function(e,t,r){var n=r(0);r(1),e.exports=n.log=n.log||{},n.log.levels=["none","error","warning","info","debug","verbose","max"];var o={},i=[],a=null;n.log.LEVEL_LOCKED=2,n.log.NO_LEVEL_CHECK=4,n.log.INTERPOLATE=8;for(var s=0;s0){for(var r=o.create(o.Class.CONTEXT_SPECIFIC,1,!0,[]),i=0;i=r&&a0&&a.value[0].value.push(o.create(o.Class.CONTEXT_SPECIFIC,0,!0,t)),i.length>0&&a.value[0].value.push(o.create(o.Class.CONTEXT_SPECIFIC,1,!0,i)),a.value[0].value.push(o.create(o.Class.UNIVERSAL,o.Type.SET,!0,e.signerInfos)),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(e.type).getBytes()),a])},addSigner:function(t){var r=t.issuer,o=t.serialNumber;if(t.certificate){var i=t.certificate;"string"==typeof i&&(i=n.pki.certificateFromPem(i)),r=i.issuer.attributes,o=i.serialNumber}var a=t.key;if(!a)throw new Error("Could not add PKCS#7 signer; no private key specified.");"string"==typeof a&&(a=n.pki.privateKeyFromPem(a));var s=t.digestAlgorithm||n.pki.oids.sha1;switch(s){case n.pki.oids.sha1:case n.pki.oids.sha256:case n.pki.oids.sha384:case n.pki.oids.sha512:case n.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+s)}var u=t.authenticatedAttributes||[];if(u.length>0){for(var l=!1,c=!1,f=0;f="8"&&(r="00"+r);var o=n.util.hexToBytes(r);e.putInt32(o.length),e.putBytes(o)}function a(e,t){e.putInt32(t.length),e.putString(t)}function s(){for(var e=n.md.sha1.create(),t=arguments.length,r=0;r=e.minX&&t.maxY>=e.minY}function d(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function m(e,t,r,o,i){for(var a,s=[t,r];s.length;)(r=s.pop())-(t=s.pop())<=o||(a=t+Math.ceil((r-t)/o/2)*o,n(e,a,t,r,i),s.push(t,a,a,r))}o.prototype={all:function(){return this._all(this.data,[])},search:function(e){var t=this.data,r=[],n=this.toBBox;if(!y(e,t))return r;for(var o,i,a,s,u=[];t;){for(o=0,i=t.children.length;o=0&&i[t].children.length>this._maxEntries;)this._split(i,t),t--;this._adjustParentBBoxes(o,i,t)},_split:function(e,t){var r=e[t],n=r.children.length,o=this._minEntries;this._chooseSplitAxis(r,o,n);var i=this._chooseSplitIndex(r,o,n),s=d(r.children.splice(i,r.children.length-i));s.height=r.height,s.leaf=r.leaf,a(r,this.toBBox),a(s,this.toBBox),t?e[t-1].children.push(s):this._splitRoot(r,s)},_splitRoot:function(e,t){this.data=d([e,t]),this.data.height=e.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},_chooseSplitIndex:function(e,t,r){var n,o,i,a,u,l,c,p,h,y,d,m,g,v;for(l=c=1/0,n=t;n<=r-t;n++)o=s(e,0,n,this.toBBox),i=s(e,n,r,this.toBBox),h=o,y=i,void 0,void 0,void 0,void 0,d=Math.max(h.minX,y.minX),m=Math.max(h.minY,y.minY),g=Math.min(h.maxX,y.maxX),v=Math.min(h.maxY,y.maxY),a=Math.max(0,g-d)*Math.max(0,v-m),u=f(o)+f(i),a=t;o--)i=e.children[o],u(c,e.leaf?a(i):i),f+=p(c);return f},_adjustParentBBoxes:function(e,t,r){for(var n=r;n>=0;n--)u(t[n],e)},_condense:function(e){for(var t,r=e.length-1;r>=0;r--)0===e[r].children.length?r>0?(t=e[r-1].children).splice(t.indexOf(e[r]),1):this.clear():a(e[r],this.toBBox)},_initFormat:function(e){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(e[0])),this.compareMinY=new Function("a","b",t.join(e[1])),this.toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}},2299:function(e,t,r){var n,o,i;function a(e){"@babel/helpers - typeof";return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}i=function(){"use strict";function e(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function t(e,t){return et?1:0}return function(r,n,o,i,a){!function t(r,n,o,i,a){for(;i>o;){if(i-o>600){var s=i-o+1,u=n-o+1,l=Math.log(s),c=.5*Math.exp(2*l/3),f=.5*Math.sqrt(l*c*(s-c)/s)*(u-s/2<0?-1:1),p=Math.max(o,Math.floor(n-u*c/s+f)),h=Math.min(i,Math.floor(n+(s-u)*c/s+f));t(r,n,p,h,a)}var y=r[n],d=o,m=i;for(e(r,o,n),a(r[i],y)>0&&e(r,o,i);d0;)m--}0===a(r[o],y)?e(r,o,m):e(r,++m,i),m<=n&&(o=m+1),n<=m&&(i=m-1)}}(r,n,o||0,i||r.length-1,a||t)}},"object"===a(t)?e.exports=i():void 0===(o="function"==typeof(n=i)?n.call(t,r,t,e):n)||(e.exports=o)},9973:function(e){e.exports=function(e){this.ok=!1,this.alpha=1,"#"==e.charAt(0)&&(e=e.substr(1,6)),e=(e=e.replace(/ /g,"")).toLowerCase();var t={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};e=t[e]||e;for(var r=[{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,example:["rgba(123, 234, 45, 0.8)","rgba(255,234,245,1.0)"],process:function(e){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),parseFloat(e[4])]}},{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(e){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}},{re:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,example:["#00ff00","336699"],process:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,example:["#fb0","f0f"],process:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}}],n=0;n3&&(this.alpha=s[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var e=this.r.toString(16),t=this.g.toString(16),r=this.b.toString(16);return 1==e.length&&(e="0"+e),1==t.length&&(t="0"+t),1==r.length&&(r="0"+r),"#"+e+t+r},this.getHelpXML=function(){for(var e=new Array,n=0;n "+l.toRGB()+" -> "+l.toHex());u.appendChild(c),u.appendChild(f),s.appendChild(u)}catch(e){}return s}}},5400:function(e,t,r){var n,o;function i(e){"@babel/helpers - typeof";return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),function(a,s){"use strict";"object"===i(e)&&e.exports?e.exports=s():void 0===(o="function"==typeof(n=s)?n.call(t,r,t,e):n)||(e.exports=o)}(0,function(e){"use strict";var t=e&&e.IPv6;return{best:function(e){var t,r,n=e.toLowerCase().split(":"),o=n.length,i=8;for(""===n[0]&&""===n[1]&&""===n[2]?(n.shift(),n.shift()):""===n[0]&&""===n[1]?n.shift():""===n[o-1]&&""===n[o-2]&&n.pop(),-1!==n[(o=n.length)-1].indexOf(".")&&(i=7),t=0;t1;s++)r.splice(0,1);n[a]=r.join("")}var u=-1,l=0,c=0,f=-1,p=!1;for(a=0;al&&(u=f,l=c)):"0"===n[a]&&(p=!0,f=a,c=1);c>l&&(u=f,l=c),l>1&&n.splice(u,l,""),o=n.length;var h="";for(""===n[0]&&(h=":"),a=0;a=e.length-1)return!1;var n=e.lastIndexOf(".",t-1);if(n<=0||n>=t-1)return!1;var o=r.list[e.slice(t+1)];return!!o&&o.indexOf(" "+e.slice(n+1,t)+" ")>=0},is:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;if(e.lastIndexOf(".",t-1)>=0)return!1;var n=r.list[e.slice(t+1)];return!!n&&n.indexOf(" "+e.slice(0,t)+" ")>=0},get:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return null;var n=e.lastIndexOf(".",t-1);if(n<=0||n>=t-1)return null;var o=r.list[e.slice(t+1)];return o?o.indexOf(" "+e.slice(n+1,t)+" ")<0?null:e.slice(n+1):null},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return r})},7411:function(e,t,r){var n,o,i;function a(e){"@babel/helpers - typeof";return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),function(s,u){"use strict";"object"===a(e)&&e.exports?e.exports=u(r(9018),r(5400),r(2714)):(o=[r(9018),r(5400),r(2714)],void 0===(i="function"==typeof(n=u)?n.apply(t,o):n)||(e.exports=i))}(0,function(e,t,r,n){"use strict";var o=n&&n.URI;function i(e,t){var r=arguments.length>=1,n=arguments.length>=2;if(!(this instanceof i))return r?n?new i(e,t):new i(e):new i;if(void 0===e){if(r)throw new TypeError("undefined is not a valid argument for URI");e="undefined"!=typeof location?location.href+"":""}if(null===e&&r)throw new TypeError("null is not a valid argument for URI");return this.href(e),void 0!==t?this.absoluteTo(t):this}i.version="1.19.11";var s=i.prototype,u=Object.prototype.hasOwnProperty;function l(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function c(e){return void 0===e?"Undefined":String(Object.prototype.toString.call(e)).slice(8,-1)}function f(e){return"Array"===c(e)}function p(e,t){var r,n,o={};if("RegExp"===c(t))o=null;else if(f(t))for(r=0,n=t.length;r]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi,i.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},i.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,i.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,i.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},i.hostProtocols=["http","https"],i.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,i.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},i.getDomAttribute=function(e){if(e&&e.nodeName){var t=e.nodeName.toLowerCase();if("input"!==t||"image"===e.type)return i.domAttributes[t]}},i.encode=g,i.decode=decodeURIComponent,i.iso8859=function(){i.encode=escape,i.decode=unescape},i.unicode=function(){i.encode=g,i.decode=decodeURIComponent},i.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/gi,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/gi,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/gi,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},i.encodeQuery=function(e,t){var r=i.encode(e+"");return void 0===t&&(t=i.escapeQuerySpace),t?r.replace(/%20/g,"+"):r},i.decodeQuery=function(e,t){e+="",void 0===t&&(t=i.escapeQuerySpace);try{return i.decode(t?e.replace(/\+/g,"%20"):e)}catch(t){return e}};var v,b={encode:"encode",decode:"decode"},A=function(e,t){return function(r){try{return i[t](r+"").replace(i.characters[e][t].expression,function(r){return i.characters[e][t].map[r]})}catch(e){return r}}};for(v in b)i[v+"PathSegment"]=A("pathname",b[v]),i[v+"UrnPathSegment"]=A("urnpath",b[v]);var w=function(e,t,r){return function(n){var o;o=r?function(e){return i[t](i[r](e))}:i[t];for(var a=(n+"").split(e),s=0,u=a.length;s-1&&(t.fragment=e.substring(r+1)||null,e=e.substring(0,r)),(r=e.indexOf("?"))>-1&&(t.query=e.substring(r+1)||null,e=e.substring(0,r)),"//"===(e=(e=e.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://")).replace(/^[/\\]{2,}/i,"//")).substring(0,2)?(t.protocol=null,e=e.substring(2),e=i.parseAuthority(e,t)):(r=e.indexOf(":"))>-1&&(t.protocol=e.substring(0,r)||null,t.protocol&&!t.protocol.match(i.protocol_expression)?t.protocol=void 0:"//"===e.substring(r+1,r+3).replace(/\\/g,"/")?(e=e.substring(r+3),e=i.parseAuthority(e,t)):(e=e.substring(r+1),t.urn=!0)),t.path=e,t},i.parseHost=function(e,t){e||(e="");var r,n,o=(e=e.replace(/\\/g,"/")).indexOf("/");if(-1===o&&(o=e.length),"["===e.charAt(0))r=e.indexOf("]"),t.hostname=e.substring(1,r)||null,t.port=e.substring(r+2,o)||null,"/"===t.port&&(t.port=null);else{var a=e.indexOf(":"),s=e.indexOf("/"),u=e.indexOf(":",a+1);-1!==u&&(-1===s||u-1?o:e.length-1);return a>-1&&(-1===o||a-1?h.slice(0,y)+h.slice(y).replace(a,""):h.replace(a,"")).length<=l[0].length||r.ignore&&r.ignore.test(h))){var g=t(h,c,p=c+h.length,e);void 0!==g?(g=String(g),e=e.slice(0,c)+g+e.slice(p),n.lastIndex=c+g.length):n.lastIndex=p}}return n.lastIndex=0,e},i.ensureValidHostname=function(t,r){var n=!!t,o=!1;if(!!r&&(o=h(i.hostProtocols,r)),o&&!n)throw new TypeError("Hostname cannot be empty, if protocol is "+r);if(t&&t.match(i.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(t).match(i.invalid_hostname_characters))throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_]')}},i.ensureValidPort=function(e){if(e){var t=Number(e);if(!(/^[0-9]+$/.test(t)&&t>0&&t<65536))throw new TypeError('Port "'+e+'" is not a valid port')}},i.noConflict=function(e){if(e){var t={URI:this.noConflict()};return n.URITemplate&&"function"==typeof n.URITemplate.noConflict&&(t.URITemplate=n.URITemplate.noConflict()),n.IPv6&&"function"==typeof n.IPv6.noConflict&&(t.IPv6=n.IPv6.noConflict()),n.SecondLevelDomains&&"function"==typeof n.SecondLevelDomains.noConflict&&(t.SecondLevelDomains=n.SecondLevelDomains.noConflict()),t}return n.URI===this&&(n.URI=o),this},s.build=function(e){return!0===e?this._deferred_build=!0:(void 0===e||this._deferred_build)&&(this._string=i.build(this._parts),this._deferred_build=!1),this},s.clone=function(){return new i(this)},s.valueOf=s.toString=function(){return this.build(!1)._string},s.protocol=S("protocol"),s.username=S("username"),s.password=S("password"),s.hostname=S("hostname"),s.port=S("port"),s.query=C("query","?"),s.fragment=C("fragment","#"),s.search=function(e,t){var r=this.query(e,t);return"string"==typeof r&&r.length?"?"+r:r},s.hash=function(e,t){var r=this.fragment(e,t);return"string"==typeof r&&r.length?"#"+r:r},s.pathname=function(e,t){if(void 0===e||!0===e){var r=this._parts.path||(this._parts.hostname?"/":"");return e?(this._parts.urn?i.decodeUrnPath:i.decodePath)(r):r}return this._parts.urn?this._parts.path=e?i.recodeUrnPath(e):"":this._parts.path=e?i.recodePath(e):"/",this.build(!t),this},s.path=s.pathname,s.href=function(e,t){var r;if(void 0===e)return this.toString();this._string="",this._parts=i._parts();var n=e instanceof i,o="object"===a(e)&&(e.hostname||e.path||e.pathname);e.nodeName&&(e=e[i.getDomAttribute(e)]||"",o=!1);if(!n&&o&&void 0!==e.pathname&&(e=e.toString()),"string"==typeof e||e instanceof String)this._parts=i.parse(String(e),this._parts);else{if(!n&&!o)throw new TypeError("invalid input");var s=n?e._parts:e;for(r in s)"query"!==r&&u.call(this._parts,r)&&(this._parts[r]=s[r]);s.query&&this.query(s.query,!1)}return this.build(!t),this},s.is=function(e){var t=!1,n=!1,o=!1,a=!1,s=!1,u=!1,l=!1,c=!this._parts.urn;switch(this._parts.hostname&&(c=!1,n=i.ip4_expression.test(this._parts.hostname),o=i.ip6_expression.test(this._parts.hostname),s=(a=!(t=n||o))&&r&&r.has(this._parts.hostname),u=a&&i.idn_expression.test(this._parts.hostname),l=a&&i.punycode_expression.test(this._parts.hostname)),e.toLowerCase()){case"relative":return c;case"absolute":return!c;case"domain":case"name":return a;case"sld":return s;case"ip":return t;case"ip4":case"ipv4":case"inet4":return n;case"ip6":case"ipv6":case"inet6":return o;case"idn":return u;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return l}return null};var E=s.protocol,_=s.port,O=s.hostname;s.protocol=function(e,t){if(e&&!(e=e.replace(/:(\/\/)?$/,"")).match(i.protocol_expression))throw new TypeError('Protocol "'+e+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return E.call(this,e,t)},s.scheme=s.protocol,s.port=function(e,t){return this._parts.urn?void 0===e?"":this:(void 0!==e&&(0===e&&(e=null),e&&(":"===(e+="").charAt(0)&&(e=e.substring(1)),i.ensureValidPort(e))),_.call(this,e,t))},s.hostname=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0!==e){var r={preventInvalidHostname:this._parts.preventInvalidHostname};if("/"!==i.parseHost(e,r))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');e=r.hostname,this._parts.preventInvalidHostname&&i.ensureValidHostname(e,this._parts.protocol)}return O.call(this,e,t)},s.origin=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var r=this.protocol();return this.authority()?(r?r+"://":"")+this.authority():""}var n=i(e);return this.protocol(n.protocol()).authority(n.authority()).build(!t),this},s.host=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildHost(this._parts):"";if("/"!==i.parseHost(e,this._parts))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.authority=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildAuthority(this._parts):"";if("/"!==i.parseAuthority(e,this._parts))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.userinfo=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var r=i.buildUserinfo(this._parts);return r?r.substring(0,r.length-1):r}return"@"!==e[e.length-1]&&(e+="@"),i.parseUserinfo(e,this._parts),this.build(!t),this},s.resource=function(e,t){var r;return void 0===e?this.path()+this.search()+this.hash():(r=i.parse(e),this._parts.path=r.path,this._parts.query=r.query,this._parts.fragment=r.fragment,this.build(!t),this)},s.subdomain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,r)||""}var n=this._parts.hostname.length-this.domain().length,o=this._parts.hostname.substring(0,n),a=new RegExp("^"+l(o));if(e&&"."!==e.charAt(e.length-1)&&(e+="."),-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");return e&&i.ensureValidHostname(e,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(a,e),this.build(!t),this},s.domain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"==typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.match(/\./g);if(r&&r.length<2)return this._parts.hostname;var n=this._parts.hostname.length-this.tld(t).length-1;return n=this._parts.hostname.lastIndexOf(".",n-1)+1,this._parts.hostname.substring(n)||""}if(!e)throw new TypeError("cannot set domain empty");if(-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");if(i.ensureValidHostname(e,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=e;else{var o=new RegExp(l(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(o,e)}return this.build(!t),this},s.tld=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"==typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.lastIndexOf("."),o=this._parts.hostname.substring(n+1);return!0!==t&&r&&r.list[o.toLowerCase()]&&r.get(this._parts.hostname)||o}var i;if(!e)throw new TypeError("cannot set TLD empty");if(e.match(/[^a-zA-Z0-9-]/)){if(!r||!r.is(e))throw new TypeError('TLD "'+e+'" contains characters other than [A-Z0-9]');i=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");i=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}return this.build(!t),this},s.directory=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var r=this._parts.path.length-this.filename().length-1,n=this._parts.path.substring(0,r)||(this._parts.hostname?"/":"");return e?i.decodePath(n):n}var o=this._parts.path.length-this.filename().length,a=this._parts.path.substring(0,o),s=new RegExp("^"+l(a));return this.is("relative")||(e||(e="/"),"/"!==e.charAt(0)&&(e="/"+e)),e&&"/"!==e.charAt(e.length-1)&&(e+="/"),e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e),this.build(!t),this},s.filename=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("string"!=typeof e){if(!this._parts.path||"/"===this._parts.path)return"";var r=this._parts.path.lastIndexOf("/"),n=this._parts.path.substring(r+1);return e?i.decodePathSegment(n):n}var o=!1;"/"===e.charAt(0)&&(e=e.substring(1)),e.match(/\.?\//)&&(o=!0);var a=new RegExp(l(this.filename())+"$");return e=i.recodePath(e),this._parts.path=this._parts.path.replace(a,e),o?this.normalizePath(t):this.build(!t),this},s.suffix=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path||"/"===this._parts.path)return"";var r,n,o=this.filename(),a=o.lastIndexOf(".");return-1===a?"":(r=o.substring(a+1),n=/^[a-z0-9%]+$/i.test(r)?r:"",e?i.decodePathSegment(n):n)}"."===e.charAt(0)&&(e=e.substring(1));var s,u=this.suffix();if(u)s=e?new RegExp(l(u)+"$"):new RegExp(l("."+u)+"$");else{if(!e)return this;this._parts.path+="."+i.recodePath(e)}return s&&(e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e)),this.build(!t),this},s.segment=function(e,t,r){var n=this._parts.urn?":":"/",o=this.path(),i="/"===o.substring(0,1),a=o.split(n);if(void 0!==e&&"number"!=typeof e&&(r=t,t=e,e=void 0),void 0!==e&&"number"!=typeof e)throw new Error('Bad segment "'+e+'", must be 0-based integer');if(i&&a.shift(),e<0&&(e=Math.max(a.length+e,0)),void 0===t)return void 0===e?a:a[e];if(null===e||void 0===a[e])if(f(t)){a=[];for(var s=0,u=t.length;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},E=p-h,_=Math.floor,O=String.fromCharCode;function I(e){throw new RangeError(C[e])}function x(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function P(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+x((e=e.replace(S,".")).split("."),t).join(".")}function k(e){for(var t,r,n=[],o=0,i=e.length;o=55296&&t<=56319&&o65535&&(t+=O((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=O(e)}).join("")}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function M(e,t,r){var n=0;for(e=r?_(e/m):e>>1,e+=_(e/t);e>E*y>>1;n+=p)e=_(e/E);return _(n+(E+1)*e/(e+d))}function B(e){var t,r,n,o,i,a,s,u,l,c,d,m=[],A=e.length,w=0,S=v,C=g;for((r=e.lastIndexOf(b))<0&&(r=0),n=0;n=128&&I("not-basic"),m.push(e.charCodeAt(n));for(o=r>0?r+1:0;o=A&&I("invalid-input"),((u=(d=e.charCodeAt(o++))-48<10?d-22:d-65<26?d-65:d-97<26?d-97:p)>=p||u>_((f-w)/a))&&I("overflow"),w+=u*a,!(u<(l=s<=C?h:s>=C+y?y:s-C));s+=p)a>_(f/(c=p-l))&&I("overflow"),a*=c;C=M(w-i,t=m.length+1,0==i),_(w/t)>f-S&&I("overflow"),S+=_(w/t),w%=t,m.splice(w++,0,S)}return T(m)}function N(e){var t,r,n,o,i,a,s,u,l,c,d,m,A,w,S,C=[];for(m=(e=k(e)).length,t=v,r=0,i=g,a=0;a=t&&d_((f-r)/(A=n+1))&&I("overflow"),r+=(s-t)*A,t=s,a=0;af&&I("overflow"),d==t){for(u=r,l=p;!(u<(c=l<=i?h:l>=i+y?y:l-i));l+=p)S=u-c,w=p-c,C.push(O(j(c+S%w,0))),u=_(S/w);C.push(O(j(u,0))),i=M(r,A,n==o),r=0,++n}++r,++t}return C.join("")}if(l={version:"1.3.2",ucs2:{decode:k,encode:T},decode:B,encode:N,toASCII:function(e){return P(e,function(e){return w.test(e)?"xn--"+N(e):e})},toUnicode:function(e){return P(e,function(e){return A.test(e)?B(e.slice(4).toLowerCase()):e})}},"object"==o(r.amdO)&&r.amdO)void 0===(n=function(){return l}.call(t,r,t,e))||(e.exports=n);else if(a&&s)if(e.exports==a)s.exports=l;else for(c in l)l.hasOwnProperty(c)&&(a[c]=l[c]);else i.punycode=l}(this)},4539:function(){"use strict"},2880:function(e,t,r){"use strict";var n=mapboxgl,o=r.n(n),i={values:[],set:function(e){return this.values=e,this.values},add:function(e){return this.values.push(e),this.values}},a=(r(5246),r(1358),r(3678)),s=r.n(a),u={lastSeqID:0,parentUtil:null,setRelativeParentUtil:function(e){u.parentUtil=e},createUniqueID:function(e){return function(e,t){null==e&&(e="id_");return t.lastSeqID+=1,e+t.lastSeqID}(e,u.parentUtil||u)},extend:function(e,t){if(e=e||{},t){for(var r in t){var n=t[r];void 0!==n&&(e[r]=n)}!("function"==typeof window.Event&&t instanceof window.Event)&&t.hasOwnProperty&&t.hasOwnProperty("toString")&&(e.toString=t.toString)}return e}};function l(e){"@babel/helpers - typeof";return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var r=0;r0&&(r=parseFloat(e.toPrecision(t))),r},format:function(e,t,r,n){t=void 0!==t?t:0,r=void 0!==r?r:y.thousandsSeparator,n=void 0!==n?n:y.decimalSeparator,null!=t&&(e=parseFloat(e.toFixed(t)));var o=e.toString().split(".");1===o.length&&null==t&&(t=0);var i,a=o[0];if(r)for(var s=/(-?[0-9]+)([0-9]{3})/;s.test(a);)a=a.replace(s,"$1"+r+"$2");if(0==t)i=a;else{var u=o.length>1?o[1]:"0";null!=t&&(u+=new Array(t-u.length+1).join("0")),i=a+n+u}return i}};Number.prototype.limitSigDigs||(Number.prototype.limitSigDigs=function(e){return y.limitSigDigs(this,e)});var d={bind:function(e,t){var r=Array.prototype.slice.apply(arguments,[2]);return function(){var n=r.concat(Array.prototype.slice.apply(arguments,[0]));return e.apply(t,n)}},bindAsEventListener:function(e,t){return function(r){return e.call(t,r||window.event)}},False:function(){return!1},True:function(){return!0},Void:function(){}},m={filter:function(e,t,r){var n=[];if(Array.prototype.filter)n=e.filter(t,r);else{var o=e.length;if("function"!=typeof t)throw new TypeError;for(var i=0;i-1||x.indexOf("trident")>-1&&x.indexOf("rv")>-1?(_="msie",E=x.match(/msie ([\d.]+)/)||x.match(/rv:([\d.]+)/)):x.indexOf("chrome")>-1?(_="chrome",E=x.match(/chrome\/([\d.]+)/)):x.indexOf("firefox")>-1?(_="firefox",E=x.match(/firefox\/([\d.]+)/)):x.indexOf("opera")>-1?(_="opera",E=x.match(/version\/([\d.]+)/)):x.indexOf("safari")>-1&&(_="safari",E=x.match(/version\/([\d.]+)/)),O=E?E[1]:"",x.indexOf("ipad")>-1||x.indexOf("ipod")>-1||x.indexOf("iphone")>-1?I="apple":x.indexOf("android")>-1&&(O=(E=x.match(/version\/([\d.]+)/))?E[1]:"",I="android"),{name:_,version:O,device:I}),j=(P=!0,k=T,document.createElement("canvas").getContext?("firefox"===k.name&&parseFloat(k.version)<5&&(P=!1),"safari"===k.name&&parseFloat(k.version)<4&&(P=!1),"opera"===k.name&&parseFloat(k.version)<10&&(P=!1),"msie"===k.name&&parseFloat(k.version)<9&&(P=!1)):P=!1,P),M=function(){var e=navigator.userAgent.toLowerCase();return-1===e.indexOf("webkit")&&-1!==e.indexOf("gecko")}(),B={assign:function(e){for(var t=0;t=0;r--)e[r]===t&&e.splice(r,1);return e},indexOf:function(e,t){if(null==e)return-1;if("function"==typeof e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r=0&&parseFloat(s)<1?(e.style.filter="alpha(opacity="+100*s+")",e.style.opacity=s):1===parseFloat(s)&&(e.style.filter="",e.style.opacity="")},applyDefaults:function(e,t){e=e||{};var r="function"==typeof window.Event&&t instanceof window.Event;for(var n in t)(void 0===e[n]||!r&&t.hasOwnProperty&&t.hasOwnProperty(n)&&!e.hasOwnProperty(n))&&(e[n]=t[n]);return!r&&t&&t.hasOwnProperty&&t.hasOwnProperty("toString")&&!e.hasOwnProperty("toString")&&(e.toString=t.toString),e},getParameterString:function(e){var t=[];for(var r in e){var n,o=e[r];if(null!=o&&"function"!=typeof o)n=Array.isArray(o)||"[object Object]"===o.toString()?encodeURIComponent(JSON.stringify(o)):encodeURIComponent(o),t.push(encodeURIComponent(r)+"="+n)}return t.join("&")},handleUrlSuffix:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".json";if(e.indexOf("?")<0)e+=t;else{var r=e.split("?");2===r.length&&(e=r[0]+t+"?"+r[1])}return e},urlAppend:function(e,t){var r=e;if(t){0===t.indexOf("?")&&(t=t.substring(1));var n=(e+" ").split(/[?&]/);r+=" "===n.pop()?t:n.length?"&"+t:"?"+t}return r},urlPathAppend:function(e,t){var r=e;if(!t)return r;0===t.indexOf("/")&&(t=t.substring(1));var n=e.split("?");return n[0].indexOf("/",n[0].length-1)<0&&(n[0]+="/"),r="".concat(n[0]).concat(t).concat(n.length>1?"?".concat(n[1]):"")},DEFAULT_PRECISION:14,toFloat:function(e,t){return null==t&&(t=B.DEFAULT_PRECISION),"number"!=typeof e&&(e=parseFloat(e)),0===t?e:parseFloat(e.toPrecision(t))},rad:function(e){return e*Math.PI/180},getParameters:function(e){e=null===e||void 0===e?window.location.href:e;var t="";if(h.contains(e,"?")){var r=e.indexOf("?")+1,n=h.contains(e,"#")?e.indexOf("#"):e.length;t=e.substring(r,n)}for(var o={},i=t.split(/[&;]/),a=0,s=i.length;a1?1/e:e},getResolutionFromScale:function(e,t){var r;e&&(null==t&&(t="degrees"),r=1/(B.normalizeScale(e)*N[t]*96));return r},getScaleFromResolution:function(e,t){return null==t&&(t="degrees"),e*N[t]*96},getBrowser:function(){return T},isSupportCanvas:j,supportCanvas:function(){return B.isSupportCanvas},isInTheSameDomain:function(e){return!e||(-1===e.indexOf("//")||B.isSameDomain(e,document.location.toString()))},isSameDomain:function(e,t){return new(S())(e).normalize().origin()===new(S())(t).normalize().origin()},calculateDpi:function(e,t,r,n,o){if(e&&t&&r){var i,a=e.getWidth(),s=e.getHeight(),u=t.w,l=t.h;if(o=o||6378137,"degree"===(n=n||"degrees").toLowerCase()||"degrees"===n.toLowerCase()||"dd"===n.toLowerCase()){var c=a/u,f=s/l;i=254/(c>f?c:f)/r/(2*Math.PI*o/360)/1e4}else{i=254/(a/u)/r/1e4}return i}},toJSON:function(e){var t=e;if(null==t)return null;switch(t.constructor){case String:return t=(t=(t=(t=(t=(t=(t='"'+t.replace(/(["\\])/g,"\\$1")+'"').replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace("<","<")).replace(">",">")).replace(/%/g,"%25")).replace(/&/g,"%26");case Array:for(var r="",n=0,o=t.length;n0?"{"+u.join(",")+"}":"{}"}return t.toString()}},getResolutionFromScaleDpi:function(e,t,r,n){return n=n||6378137,r=r||"",e>0&&t>0?(e=B.normalizeScale(e),"degree"===r.toLowerCase()||"degrees"===r.toLowerCase()||"dd"===r.toLowerCase()?254/t/e/(2*Math.PI*n/360)/1e4:254/t/e/1e4):-1},getScaleFromResolutionDpi:function(e,t,r,n){return n=n||6378137,r=r||"",e>0&&t>0?"degree"===r.toLowerCase()||"degrees"===r.toLowerCase()||"dd"===r.toLowerCase()?254/t/e/(2*Math.PI*n/360)/1e4:254/t/e/1e4:-1},transformResult:function(e){return e.responseText&&"string"==typeof e.responseText&&(e=JSON.parse(e.responseText)),e},copyAttributes:function(e,t){if(e=e||{},t)for(var r in t){var n=t[r];void 0!==n&&"CLASS_NAME"!==r&&"function"!=typeof n&&(e[r]=n)}return e},copyAttributesWithClip:function(e,t,r){if(e=e||{},t)for(var n in t){var o=!1;if(r&&r.length)for(var i=0,a=r.length;i=0&&i<=1&&o<=1&&i>=0?new A.Point(e.x+o*(t.x-e.x),e.y+o*(t.y-e.y)):"No Intersection";else if(0==s&&0==u){var c=Math.max(e.y,t.y),f=Math.min(e.y,t.y),p=Math.max(e.x,t.x),h=Math.min(e.x,t.x);a=(r.y>=f&&r.y<=c||n.y>=f&&n.y<=c)&&r.x>=h&&r.x<=p||n.x>=h&&n.x<=p?"Coincident":"Parallel"}else a="Parallel";return a},getTextBounds:function(e,t,r){document.body.appendChild(r),r.style.width="auto",r.style.height="auto",e.fontSize&&(r.style.fontSize=e.fontSize),e.fontFamily&&(r.style.fontFamily=e.fontFamily),e.fontWeight&&(r.style.fontWeight=e.fontWeight),r.style.position="relative",r.style.visibility="hidden",r.style.display="inline-block",r.innerHTML=t;var n=r.clientWidth,o=r.clientHeight;return document.body.removeChild(r),{textWidth:n,textHeight:o}},convertPath:function(e,t){return t?e.replace(/\{([\w-\.]+)\}/g,function(e,r){var n;return n=t.hasOwnProperty(r)?function(e){if(void 0==e||null==e)return"";if(e instanceof Date)return e.toJSON();if(function(e){if("string"!=typeof e&&"object"!==C(e))return!1;try{var t=e.toString();return"[object Object]"===t||"[object Array]"===t}catch(e){return!1}}(e))return JSON.stringify(e);return e.toString()}(t[r]):e,encodeURIComponent(n)}):e},hexToRgba:function(e,t){var r=[],n=[];if(3==(e=e.replace(/#/,"")).length){for(var o=[],i=0;i<3;i++)o.push(e.charAt(i)+e.charAt(i));e=o.join("")}for(var a=0;a<6;a+=2)r[a]="0x"+e.substr(a,2),n.push(parseInt(Number(r[a])));return n.push(t),"rgba("+n.join(",")+")"},isAbsoluteURL:function(e){try{return!!new URL(e)}catch(e){return!1}},relative2absolute:function(e,t){var r=new URL(e,t);if(r&&r.href)return decodeURIComponent(r.href)}},N={inches:1,ft:12,mi:63360,m:39.3701,km:39370.1,dd:4374754,yd:36};N.in=N.inches,N.degrees=N.dd,N.nmi=1852*N.m;var R=.0254000508001016;B.extend(N,{Inch:N.inches,Meter:39.37,Foot:12,IFoot:11.999976,ClarkeFoot:11.999868327581488,SearsFoot:11.999955194477684,GoldCoastFoot:11.999964589846002,IInch:.9999979999999999,MicroInch:999998e-9,Mil:9.99998e-7,Centimeter:.3937,Kilometer:39370,Yard:36,SearsYard:35.99986558343306,IndianYard:35.99987015540864,IndianYd37:35.999740205100004,IndianYd62:35.999880755999996,IndianYd75:35.999868945,IndianFoot:11.9999567087,IndianFt37:11.9999134017,IndianFt62:11.999960252000001,IndianFt75:11.999956315,Mile:63360,IYard:35.999928,IMile:63359.87328,NautM:72913.24,"Lat-66":4367838.370169282,"Lat-83":4367954.152606599,Decimeter:3.9370000000000003,Millimeter:.03937,Dekameter:393.7,Decameter:393.7,Hectometer:3937,GermanMeter:39.370535294205006,CaGrid:39.359685060000004,ClarkeChain:791.991309620512,GunterChain:792.0000000000001,BenoitChain:791.9977268035781,SearsChain:791.9970428354235,ClarkeLink:7.91991309620512,GunterLink:7.920000000000001,BenoitLink:7.919977268035781,SearsLink:7.919970428354236,Rod:198.00000000000014,IntnlChain:791.998416,IntnlLink:7.91998416,Perch:198.00000000000014,Pole:198.00000000000014,Furlong:7919.999999999997,Rood:148.75036777426,CapeFoot:11.999868185255002,Brealey:14763.75,ModAmFt:12.000458400000001,Fathom:71.999856,"NautM-UK":72959.85408,"50kilometers":1968500,"150kilometers":5905500}),B.extend(N,{mm:N.Meter/1e3,cm:N.Meter/100,dm:100*N.Meter,km:1e3*N.Meter,kmi:N.nmi,fath:N.Fathom,ch:N.IntnlChain,link:N.IntnlLink,"us-in":N.inches,"us-ft":N.Foot,"us-yd":N.Yard,"us-ch":N.GunterChain,"us-mi":N.Mile,"ind-yd":N.IndianYd37,"ind-ft":N.IndianFt37,"ind-ch":791.9942845122}),N.degree=N.dd,N.meter=N.m,N.foot=N.ft,N.inch=N.inches,N.mile=N.mi,N.kilometer=N.km,N.yard=N.yd,u.setRelativeParentUtil(B);var L,D,F,Q=window.fetch,G={limitLength:1500,queryKeys:[],queryValues:[],supermap_callbacks:{},addQueryStrings:function(e){for(var t in e){this.queryKeys.push(t),"string"!=typeof e[t]&&(e[t]=B.toJSON(e[t]));var r=encodeURIComponent(e[t]);this.queryValues.push(r)}},issue:function(e){for(var t=this,r=t.getUid(),n=e.url,o=[],i=n,a=0,s=t.queryKeys?t.queryKeys.length:0,u=0;u=t.limitLength){if(0==a)return!1;o.push(i),i=n,a=0,u--}else if(i.length+t.queryKeys[u].length+2+t.queryValues[u].length>t.limitLength)for(var l=t.queryValues[u];l.length>0;){var c=t.limitLength-i.length-t.queryKeys[u].length-2;i.indexOf("?")>-1?i+="&":i+="?";var f=l.substring(0,c);"%"===f.substring(c-1,c)?(c-=1,f=l.substring(0,c)):"%"===f.substring(c-2,c-1)&&(c-=2,f=l.substring(0,c)),i+=t.queryKeys[u]+"="+f,l=l.substring(c),f.length>0&&(o.push(i),i=n,a=0)}else a++,i.indexOf("?")>-1?i+="&":i+="?",i+=t.queryKeys[u]+"="+t.queryValues[u];return o.push(i),t.send(o,"SuperMapJSONPCallbacks_"+r,e&&e.proxy)},getUid:function(){return 1e3*(new Date).getTime()+Math.floor(1e17*Math.random())},send:function(e,t,r){var n=e.length;if(n>0)return new Promise(function(o){for(var i=(new Date).getTime(),a=0;a-1?u+="&":u+="?",u+="sectionCount="+n,u+="§ionIndex="+a,u+="&jsonpUserID="+i,r&&(u=decodeURIComponent(u),u=r+encodeURIComponent(u)),s()(u,{jsonpCallbackFunction:t,timeout:3e4}).then(function(e){o(e.json())})}})},GET:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings(e.params),this.issue(e)},POST:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings({requestEntity:e.data}),this.issue(e)},PUT:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings({requestEntity:e.data}),this.issue(e)},DELETE:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings({requestEntity:e.data}),this.issue(e)}},U=function(){return void 0!=L?L:window.XMLHttpRequest&&"withCredentials"in new window.XMLHttpRequest},z=function(){return D||45e3},H={commit:function(e,t,r,n){switch(e=e?e.toUpperCase():e){case"GET":return this.get(t,r,n);case"POST":return this.post(t,r,n);case"PUT":return this.put(t,r,n);case"DELETE":return this.delete(t,r,n);default:return this.get(t,r,n)}},supportDirectRequest:function(e,t){return!!B.isInTheSameDomain(e)||(void 0!=t.crossOrigin?t.crossOrigin:U()||t.proxy)},get:function(e,t,r){r=r||{};if(e=B.urlAppend(e,this._getParameterString(t||{})),e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){var n={url:e=e.replace(".json",".jsonp"),data:t};return G.GET(n)}return this.urlIsLong(e)?this._postSimulatie("GET",e.substring(0,e.indexOf("?")),t,r):this._fetch(e,t,r,"GET")},delete:function(e,t,r){r=r||{};if(e=B.urlAppend(e,this._getParameterString(t||{})),e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){e=e.replace(".json",".jsonp");var n={url:e+="&_method=DELETE",data:t};return G.DELETE(n)}return this.urlIsLong(e)?this._postSimulatie("DELETE",e.substring(0,e.indexOf("?")),t,r):this._fetch(e,t,r,"DELETE")},post:function(e,t,r){if(r=r||{},e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){e=e.replace(".json",".jsonp");var n={url:B.urlAppend(e,"_method=POST"),data:t};return G.POST(n)}return this._fetch(e,t,r,"POST")},put:function(e,t,r){if(r=r||{},e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){e=e.replace(".json",".jsonp");var n={url:e+="&_method=PUT",data:t};return G.PUT(n)}return this._fetch(e,t,r,"PUT")},urlIsLong:function(e){for(var t=0,r=null,n=0,o=e.length;n-1?"&":"?")+"_method="+e,"string"!=typeof r&&(r=JSON.stringify(r)),this.post(t,r,n)},_processUrl:function(e,t){return this._isMVTRequest(e)?e:(-1!==e.indexOf(".json")||t.withoutFormatSuffix||(e=B.handleUrlSuffix(e)),t&&t.proxy&&("function"==typeof t.proxy?e=t.proxy(e):(e=decodeURIComponent(e),e=t.proxy+encodeURIComponent(e))),e)},_fetch:function(e,t,r,n){(r=r||{}).headers=r.headers||{},r.headers["Content-Type"]||FormData.prototype.isPrototypeOf(t)||(r.headers["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8");var o=F&&F(e);return o&&(r.headers=B.extend(r.headers,o)),r.timeout?this._timeout(r.timeout,Q(e,{method:n,headers:r.headers,body:"PUT"===n||"POST"===n?t:void 0,credentials:this._getWithCredentials(r),mode:"cors",timeout:z()}).then(function(e){return e})):Q(e,{method:n,body:"PUT"===n||"POST"===n?t:void 0,headers:r.headers,credentials:this._getWithCredentials(r),mode:"cors",timeout:z()}).then(function(e){return e})},_getWithCredentials:function(e){return!0===e.withCredentials?"include":!1===e.withCredentials?"omit":"same-origin"},_fetchJsonp:function(e,t){return t=t||{},s()(e,{method:"GET",timeout:t.timeout}).then(function(e){return e})},_timeout:function(e,t){return new Promise(function(r,n){setTimeout(function(){n(new Error("timeout"))},e),t.then(r,n)})},_getParameterString:function(e){var t=[];for(var r in e){var n,o=e[r];if(null!=o&&"function"!=typeof o)n=Array.isArray(o)||"[object Object]"===o.toString()?encodeURIComponent(JSON.stringify(o)):encodeURIComponent(o),t.push(encodeURIComponent(r)+"="+n)}return t.join("&")},_isMVTRequest:function(e){return e.indexOf(".mvt")>-1||e.indexOf(".pbf")>-1}},q=r(7915);function V(e,t){e&&-1===e.indexOf("BEGIN PUBLIC KEY")&&(e="-----BEGIN PUBLIC KEY-----\n".concat(e,"\n-----END PUBLIC KEY-----"));var r=q.pki.publicKeyFromPem(e),n={md:q.md.sha256.create(),mgf1:{md:q.md.sha1.create()}},o=r.encrypt(t,"RSA-OAEP",n);return!!o&&window.btoa(o)}function K(e,t,r){r=q.util.encodeUtf8(r);var n=q.cipher.createCipher("AES-GCM",e);if(n.start({iv:t,additionalData:"",tagLength:128}),n.update(q.util.createBuffer(r)),n.finish()){var o=n.output,i=n.mode.tag;return window.btoa(o.data+i.data)}return!1}function Y(e){for(var t="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r="",n=e;n>0;--n)r+=t[Math.floor(Math.random()*t.length)];return r}function J(e){"@babel/helpers - typeof";return(J="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function W(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return X(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(X(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,X(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,X(f,"constructor",l),X(l,"constructor",u),u.displayName="GeneratorFunction",X(l,o,"GeneratorFunction"),X(f),X(f,o,"Generator"),X(f,n,function(){return this}),X(f,"toString",function(){return"[object Generator]"}),(W=function(){return{w:i,m:p}})()}function X(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(X=function(e,t,r,n){function i(t,r){X(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function Z(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return $(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?$(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function $(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r 1 ? 1 : y;},toY:function(y){return (0.5-y)*"+s+"+"+i+";}}"],{type:"text/javascript"}))}},{key:"getPaintProperty",value:function(e,r){var n=this.overlayLayersManager[e];return n?n.getPaintProperty?n.getPaintProperty(r):void 0:t.getPaintProperty.call(this,e,r)}},{key:"getLayoutProperty",value:function(e,r){var n=this.overlayLayersManager[e];return n?n.getLayoutProperty?n.getLayoutProperty(r):void 0:t.getLayoutProperty.call(this,e,r)}},{key:"getFilter",value:function(e,r,n){var o=this.overlayLayersManager[e];return o?o.getFilter?o.getFilter(r,n):void 0:t.getFilter.call(this,e,r,n)}},{key:"setFilter",value:function(e,r,n){var o=this.overlayLayersManager[e];return o?(o.setFilter&&o.setFilter(r,n),this):t.setFilter.call(this,e,r,n)}},{key:"on",value:function(e,t,r){return this._eventsModeHandler({type:e,layerId:t,listener:r,mode:"on"})}},{key:"once",value:function(e,t,r){return this._eventsModeHandler({type:e,layerId:t,listener:r,mode:"once"})}},{key:"off",value:function(e,t,r){return this._eventsModeHandler({type:e,layerId:t,listener:r,mode:"off"})}},{key:"queryRenderedFeatures",value:function(e,r){var n,o=this,i=Object.keys(this.overlayLayersManager);r&&r.layers&&(i=r.layers.filter(function(e){return o.overlayLayersManager[e]}),n=r.layers.filter(function(e){return!o.overlayLayersManager[e]}));var a=e||[[0,0],[this.transform.width,this.transform.height]],s=r||{};delete s.layers;var u=i.reduce(function(e,t){var r=o.overlayLayersManager[t];return r.query&&r.queryRenderedFeatures&&r.queryRenderedFeatures(a,s,function(t){e=e.concat(t)}),e},[]);return t.queryRenderedFeatures.call(this,e,he(he({},r),{},{layers:n})).concat(u)}},{key:"querySourceFeatures",value:function(e,r){var n=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof ce});return n?n.query?n.querySourceFeatures(r):void 0:t.querySourceFeatures.call(this,e,r)}},{key:"getSource",value:function(e){var r=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof ce});return r?r.getSource():t.getSource.call(this,e)}},{key:"removeSource",value:function(e){var r=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof ce});return r?r.removeSource():t.removeSource.call(this,e)}},{key:"isSourceLoaded",value:function(e){var r=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof ce});return r?r.isSourceLoaded():t.isSourceLoaded.call(this,e)}},{key:"_eventsModeHandler",value:function(e){var r=this,n=e.type,o=e.layerId,i=e.listener,a=e.mode,s=[];i&&(s=s.concat(o)),s.forEach(function(e){var t=r.overlayLayersManager[e]||{};t.interaction&&t[a]&&("all"===t.events||t.events.includes(n))&&t[a](n,i||o)});var u=i&&s.filter(function(e){return!r.overlayLayersManager[e]});if(u&&!u.length)return this;var l=u&&"string"!=typeof o?u:o;return t[a].call(this,n,l,i)}},{key:"_moveToHandler",value:function(t,r){var n,o=document.getElementById(t);r&&((n=document.getElementById(r))||e.Evented.prototype.fire("error",{error:new Error('Layer with id "'.concat(r,'" does not exist on this document.'))})),o&&(n?n.parentNode.insertBefore(o,n):o.parentNode.appendChild(o))}}])&&ge(o.prototype,i),a&&ge(o,a),Object.defineProperty(o,"prototype",{writable:!1}),o;var o,i,a}()}function Ce(e){"@babel/helpers - typeof";return(Ce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ee(e,t){for(var r=0;r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(ke(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,ke(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,ke(f,"constructor",l),ke(l,"constructor",u),u.displayName="GeneratorFunction",ke(l,o,"GeneratorFunction"),ke(f),ke(f,o,"Generator"),ke(f,n,function(){return this}),ke(f,"toString",function(){return"[object Generator]"}),(Pe=function(){return{w:i,m:p}})()}function ke(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(ke=function(e,t,r,n){function i(t,r){ke(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function Te(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}o().VectorTileSource&&void 0===o().VectorTileSource.prototype.beforeLoadBak&&(o().VectorTileSource.prototype.beforeLoadBak=o().VectorTileSource.prototype.beforeLoad,o().VectorTileSource.prototype.beforeLoad=function(){var e,t=(e=Pe().m(function e(t,r){var n,o;return Pe().w(function(e){for(;;)switch(e.n){case 0:if(n=r&&r.tiles&&r.tiles[0],!i.values.includes(t)||!n){e.n=2;break}return e.n=1,ie(n);case 1:(o=e.v)&&(this.decryptOptions={key:o.serviceKey,algorithm:o.algorithm});case 2:this.beforeLoadBak(t,r);case 3:return e.a(2)}},e,this)}),function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Te(i,n,o,a,s,"next",e)}function s(e){Te(i,n,o,a,s,"throw",e)}a(void 0)})});return function(e,r){return t.apply(this,arguments)}}()),o().Map.prototype._inherit||(o().Map=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),Oe(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xe(e,t)}(t,Se(o())),r=t,n&&Ee(r.prototype,n),i&&Ee(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,i}(),o().Map.prototype._inherit=!0);function je(e){"@babel/helpers - typeof";return(je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Me(e,t){for(var r=0;r";return this._container.innerHTML=a?""+s+"":s,this._createStyleSheet(),this._container}},{key:"_createStyleSheet",value:function(){var e=document.createElement("style");e.type="text/css",e.innerHTML=".iclient-logo{margin:0 !important;}.iclient-logo a{border: none;display: block;height:31px;}.iclient-logo img{border: none;white-space: nowrap}",document.getElementsByTagName("head")[0].appendChild(e)}},{key:"_extend",value:function(e){for(var t=0;te.right;)t.lon-=e.getWidth()}return t}},{key:"destroy",value:function(){this.lon=null,this.lat=null}}])&&qe(t.prototype,r),n&&qe(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function Ye(e){"@babel/helpers - typeof";return(Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Je(e,t){for(var r=0;rthis.right)&&(this.right=r.right),(null==this.top||r.top>this.top)&&(this.top=r.top))}}},{key:"containsLonLat",value:function(e,t){"boolean"==typeof t&&(t={inclusive:t}),t=t||{};var r=this.contains(e.lon,e.lat,t.inclusive),n=t.worldBounds;if(n&&!r){var o=n.getWidth(),i=(n.left+n.right)/2,a=Math.round((e.lon-i)/o);r=this.containsLonLat({lon:e.lon-a*o,lat:e.lat},{inclusive:t.inclusive})}return r}},{key:"containsPixel",value:function(e,t){return this.contains(e.x,e.y,t)}},{key:"contains",value:function(e,t,r){if(null==r&&(r=!0),null==e||null==t)return!1;var n=!1;return n=r?e>=this.left&&e<=this.right&&t>=this.bottom&&t<=this.top:e>this.left&&ethis.bottom&&t=r.bottom&&e.bottom<=r.top||r.bottom>=e.bottom&&r.bottom<=e.top,a=e.top>=r.bottom&&e.top<=r.top||r.top>e.bottom&&r.top=r.left&&e.left<=r.right||r.left>=e.left&&r.left<=e.right,u=e.right>=r.left&&e.right<=r.right||r.right>=e.left&&r.right<=e.right;n=(i||a)&&(s||u)}if(t.worldBounds&&!n){var l=t.worldBounds,c=l.getWidth(),f=!l.containsBounds(r),p=!l.containsBounds(e);f&&!p?(e=e.add(-c,0),n=r.intersectsBounds(e,{inclusive:t.inclusive})):p&&!f&&(r=r.add(-c,0),n=e.intersectsBounds(r,{inclusive:t.inclusive}))}return n}},{key:"containsBounds",value:function(e,t,r){null==t&&(t=!1),null==r&&(r=!0);var n=this.contains(e.left,e.bottom,r),o=this.contains(e.right,e.bottom,r),i=this.contains(e.left,e.top,r),a=this.contains(e.right,e.top,r);return t?n||o||i||a:n&&o&&i&&a}},{key:"determineQuadrant",value:function(e){var t="",r=this.getCenterLonLat();return t+=e.lat=e.right&&o.right>e.right;)o=o.add(-i,0);var a=o.left+r;ae.left&&o.right-n>e.right&&(o=o.add(-i,0))}return o}},{key:"toServerJSONObject",value:function(){return{rightTop:{x:this.right,y:this.top},leftBottom:{x:this.left,y:this.bottom},left:this.left,right:this.right,top:this.top,bottom:this.bottom}}},{key:"destroy",value:function(){this.left=null,this.right=null,this.top=null,this.bottom=null,this.centerLonLat=null}}])&&Je(t.prototype,r),n&&Je(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function Ze(e){"@babel/helpers - typeof";return(Ze="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $e(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return et(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?et(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function et(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r-1)){if(null!=t&&t=0;--r)t=this.removeComponent(e[r])||t;return t}},{key:"removeComponent",value:function(e){return B.removeItem(this.components,e),this.clearBounds(),!0}},{key:"getArea",value:function(){for(var e=0,t=0,r=this.components.length;t2;return s&&(r=t,n="removeComponent",o=this,i=1,a=Bt(Nt(1&i?r.prototype:r),n,o),2&i&&"function"==typeof a?function(e){return a.apply(o,e)}:a).apply(this,arguments),s}},{key:"getSortedSegments",value:function(){for(var e,t,r=this.components.length-1,n=new Array(r),o=0;o=1?1:g)<=-1?-1:g,c=180*Math.acos(g)/Math.PI,a=(c=o.x==r.x?t.x>r.x&&n.x>r.x||t.xp*t.x+h&&n.y>p*n.x+h||t.yr.y?n.xr.x&&(s=!1):o.xp*n.x+h&&(s=!1):o.x>r.x?n.y>r.y&&(s=!1):n.y=0?180*Math.atan(v)/Math.PI:Math.abs(180*Math.atan(v)/Math.PI)+90,A=Math.abs(t.y);r.y==A&&A==o.y&&r.x=0?v>=0?l+=u:l=180-(l-90)+u:l=v>0?l-180+u:90-l+u:w>=0?v>=0?l-=u:l=180-(l-90)-u:l=v>=0?l-180-u:90-l-u,l=l*Math.PI/180;var C=t.x+i*Math.cos(l),E=t.y+i*Math.sin(l);f.push(new st(C,E))}f.push(o)}return f}},{key:"createLineEPS",value:function(e){var r=[],n=e.length;if(n<2)return e;for(var o=0;o1&&e[0].equals(e[e.length-1])&&(t=e.length-1);for(var r=0;r3;if(r){this.components.pop(),Ut(t,"removeComponent",this,1).apply(this,arguments);var n=this.components[0];Ut(t,"addComponent",this,1).apply(this,[n])}return r}},{key:"getArea",value:function(){var e=0;if(this.components&&this.components.length>2){for(var t=0,r=0,n=this.components.length;r0){e+=Math.abs(this.components[0].getArea());for(var t=1,r=this.components.length;t0&&r.push(","),r.push(this.writeNewline(),this.writeIndent(),t));return this.level-=1,r.push(this.writeNewline(),this.writeIndent(),"]"),r.join("")},string:function(e){var t={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return/["\\\x00-\x1f]/.test(e)?'"'+e.replace(/([\x00-\x1f\\"])/g,function(e,r){var n=t[r];return n||(n=r.charCodeAt(),"\\u00"+Math.floor(n/16).toString(16)+(n%16).toString(16))})+'"':'"'+e+'"'},number:function(e){return isFinite(e)?String(e):"null"},boolean:function(e){return String(e)},date:function(e){function t(e){return e<10?"0"+e:e}return'"'+e.getFullYear()+"-"+t(e.getMonth()+1)+"-"+t(e.getDate())+"T"+t(e.getHours())+":"+t(e.getMinutes())+":"+t(e.getSeconds())+'"'}},r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_r(e,t)}(t,br),r=t,(n=[{key:"read",value:function(e,t){var r;if(this.nativeJSON)try{r=JSON.parse(e,t)}catch(t){return{data:e}}return this.keepData&&(this.data=r),r}},{key:"write",value:function(e,t){this.pretty=!!t;var r=null,n=Ar(e);if(this.serialize[n])try{r=!this.pretty&&this.nativeJSON?JSON.stringify(e):this.serialize[n].apply(this,[e])}catch(e){}return r}},{key:"writeIndent",value:function(){var e=[];if(this.pretty)for(var t=0;t0))return null;for(var a=0,s=0,u=[];a0){e+='"points":[';for(var r=0,n=this.components.length;re[i]){var a=e[i];e[i]=e[o],e[o]=a;var s=t[i];if(t[i]=t[o],t[o]=s,r&&r.length>0){var u=r[i];r[i]=r[o],r[o]=u}if(n&&n.length>0){var l=n[i];n[i]=n[o],n[o]=l}}}}],(r=[{key:"destroy",value:function(){var e=this;e.id=null,e.style=null,e.parts=null,e.partTopo=null,e.points=null,e.type=null,e.prjCoordSys=null}},{key:"toGeometry",value:function(){var e=this;switch(e.type.toUpperCase()){case pn.POINT:case pn.POINT3D:return e.toGeoPoint();case pn.LINE:return e.toGeoLine();case pn.LINEM:return e.toGeoLinem();case pn.REGION:return e.toGeoRegion();case pn.POINTEPS:return e.toGeoPoint();case pn.LINEEPS:return e.toGeoLineEPS();case pn.REGIONEPS:return e.toGeoRegionEPS();case pn.GEOCOMPOUND:return e.transformGeoCompound()}}},{key:"toGeoPoint",value:function(){var e=this.parts||[],t=this.points||[],r=e.length;if(r>0){if(1===r){var n=t[0],o=n.x,i=n.y,a=n.z,s=n.m;return new st([o,i,a,s])}for(var u=[],l=0;l0){if(1===r){for(var n=[],o=0;o0){if(1===s){for(e=0,r=[];e=0;P--)if(I[x]=-1,m[P].containsBounds(m[x])){g[x]=-1*g[P],g[x]<0&&(I[x]=P);break}for(var k=0;k0?i.push(d[k]):(i[I[k]].components=i[I[k]].components.concat(d[k].components),i.push(""))}else{i=new Array;for(var T=0;T0&&i.length>0&&(i[i.length-1].components=i[i.length-1].components.concat(h),h=[]),i.push(d[T])),T==o-1){var j=i.length;if(j)i[j-1].components=i[j-1].components.concat(h);else for(var M=0,B=h.length;M=0;k--)if(x[P]=-1,g[k].containsBounds(g[P])){v[P]=-1*v[k],v[P]<0&&(x[P]=k);break}for(var T=0;T0?a.push(m[T]):(a[x[T]].components=a[x[T]].components.concat(m[T].components),a.push(""))}else{a=new Array;for(var j=0;j0&&a.length>0&&(a[a.length-1].components=a[a.length-1].components.concat(y),y=[]),a.push(m[j])),j==o-1){var M=a.length;if(M)a[M-1].components=a[M-1].components.concat(y);else for(var B=0,N=y.length;B-1)){var l=this._transformValue(e[u],n);o?a[u]=l:a.properties[u]=l}return a},geometry:function(e){if(null==e)return null;!e.parts&&e.points&&(e.parts=[e.points.length]);var t,r=e.hasOwnProperty("geometryType")?e:new ro(e).toGeometry()||e,n=r.geometryType||r.type;return"LinearRing"===n&&(n="LineString"),"LINEM"===n&&(n="MultiLineString"),"POINT3D"===n&&(n="Point"),t=this.extract[n.toLowerCase()].apply(this,[r]),"Collection"===(n="TEXT"===n?"Point":n)?{type:"GeometryCollection",geometries:t}:{type:n,coordinates:t}},point:function(e){var t=[e.x,e.y];for(var r in null!=e.z&&t.push(e.z),null!=e.m&&(2===t.length&&t.push(null),t.push(e.m)),e)["x","y","z","m"].indexOf(r)<0&&null!==e[r]&&!isNaN(e[r])&&t.push(e[r]);return t},text:function(e){return[e.points[0].x,e.points[0].y]},multipoint:function(e){for(var t=[],r=0,n=e.components.length;r=-180&&e[0]<=180&&e[1]>=-90&&e[1]<=90}var go=JSON.parse('[{"name":"克拉玛依市","coord":[85.01486759299489,45.406422237230046]},{"name":"昌吉回族自治州","coord":[88.7154624754753,44.26991024636568]},{"name":"石河子市","coord":[86.0208600035924,44.239045558096805]},{"name":"霍林郭勒市","coord":[114.73479243733115,44.16058374713977]},{"name":"本溪市","coord":[124.64357865201586,41.177197783134275]},{"name":"嘉峪关市","coord":[98.16891560537093,39.76279786284264]},{"name":"莱芜市","coord":[117.65723565456207,36.27916499211527]},{"name":"神农架林区","coord":[110.48296222218153,31.581260143666697]},{"name":"天门市","coord":[113.00615321481195,30.64105781887143]},{"name":"鄂州市","coord":[114.94764081970385,30.325634953844585]},{"name":"潜江市","coord":[112.70703817700621,30.349210666019893]},{"name":"仙桃市","coord":[113.34688900729822,30.315951161935402]},{"name":"萍乡市","coord":[113.88072263074415,27.47193090553213]},{"name":"台湾省","coord":[120.14338943402045,23.596002465926095]},{"name":"东莞市","coord":[113.89443658529342,22.897826158636448]},{"name":"中山市","coord":[113.37118387764659,22.501478858616522]},{"name":"珠海市","coord":[113.21799258934986,22.23782602992192]},{"name":"北海市","coord":[109.18248083043899,21.695773689750148]},{"name":"香港","coord":[114.20689279508653,22.36016760139811]},{"name":"舟山市","coord":[122.22514712841459,30.338633120695956]},{"name":"克孜勒苏柯尔克孜","coord":[74.62910472637343,39.59886016069875]},{"name":"喀什地区","coord":[77.19899922143753,37.85462871211595]},{"name":"阿克苏地区","coord":[81.43930290016381,41.067304799230456]},{"name":"和田地区","coord":[80.69780509160952,36.95287032287055]},{"name":"阿里地区","coord":[82.536487505389,32.69566569631762]},{"name":"日喀则地区","coord":[86.5996831353606,29.54861754814263]},{"name":"那曲地区","coord":[88.32523292667608,33.20600450932715]},{"name":"玉树藏族自治州","coord":[95.2107128446203,33.90320387919257]},{"name":"迪庆藏族自治州","coord":[99.42465312188943,28.052797714348895]},{"name":"怒江傈傈族自治州","coord":[98.85737910439825,26.98345757528851]},{"name":"大理白族自治州","coord":[99.93934374816013,25.684737357453045]},{"name":"德宏傣族景颇族自","coord":[98.13830877778075,24.593421919561205]},{"name":"保山市","coord":[99.19031013453166,24.979380341662]},{"name":"临沧市","coord":[99.62483778975081,24.058807858948214]},{"name":"普洱市","coord":[100.94440267992684,23.44121660743221]},{"name":"西双版纳傣族自治","coord":[100.86105801845994,21.882475641324206]},{"name":"拉萨市","coord":[91.3684790613129,30.14176592960237]},{"name":"山南地区","coord":[92.11665242621062,28.33000201578789]},{"name":"林芝地区","coord":[94.9307847458166,29.125110156601963]},{"name":"昌都地区","coord":[97.33912235873476,30.48520825551814]},{"name":"丽江市","coord":[100.65713436205135,26.96190318191959]},{"name":"攀枝花市","coord":[101.73355913301131,26.714486678752795]},{"name":"凉山彝族自治州","coord":[102.08678551422615,27.683020519860396]},{"name":"楚雄彝族自治州","coord":[101.68264761198458,25.369603845264024]},{"name":"红河哈尼族彝族自","coord":[102.95101719613119,23.624860095239875]},{"name":"文山壮族苗族自治","coord":[104.8708359910614,23.579587266862504]},{"name":"百色市","coord":[106.69546907589859,23.98220841166522]},{"name":"崇左市","coord":[107.3277087317123,22.49769755349952]},{"name":"防城港市","coord":[107.88939931155171,21.94550204069006]},{"name":"南宁市","coord":[108.67078983716917,23.12207641861882]},{"name":"钦州市","coord":[108.8532307305186,22.157690108421384]},{"name":"玉林市","coord":[110.26918466489103,22.391823643610415]},{"name":"湛江市","coord":[109.93033457863683,21.086751055633457]},{"name":"茂名市","coord":[110.80336192333934,22.069184739040775]},{"name":"阳江市","coord":[111.70471342186183,22.108751366417575]},{"name":"江门市","coord":[112.53715618649149,22.297368082806777]},{"name":"广州市","coord":[113.4949302208309,23.28359314707863]},{"name":"清远市","coord":[113.10957368131268,24.334444053233856]},{"name":"肇庆市","coord":[112.11117530204233,23.60241158796112]},{"name":"梧州市","coord":[111.01709510772797,23.518132876753846]},{"name":"贺州市","coord":[111.50423061842756,24.4095096817199]},{"name":"桂林市","coord":[110.44046163393094,25.353966673735407]},{"name":"柳州市","coord":[109.34854449214147,24.972408051485047]},{"name":"河池市","coord":[107.81191841865586,24.649291651298164]},{"name":"黔东南苗族侗族自","coord":[108.39952601614591,26.429286420465576]},{"name":"贵阳市","coord":[106.59784062851153,26.797907456479816]},{"name":"安顺市","coord":[105.76161265300635,25.988644902171018]},{"name":"黔西南布依族苗族","coord":[105.5954078788574,25.404850939549405]},{"name":"曲靖市","coord":[103.9164335632742,25.697243690315265]},{"name":"六盘水市","coord":[104.77723228072432,26.15402255629164]},{"name":"毕节地区","coord":[105.03867422931839,27.077913968069666]},{"name":"昭通市","coord":[104.29730513046874,27.62418247971078]},{"name":"宜宾市","coord":[104.76748901448207,28.553501804266475]},{"name":"乐山市","coord":[103.56027669102787,29.160754519210577]},{"name":"自贡市","coord":[104.63272827056402,29.273152614922402]},{"name":"内江市","coord":[104.82644562304716,29.61272653799929]},{"name":"遵义市","coord":[106.82413636302059,28.191847588570702]},{"name":"达州市","coord":[107.59704170009518,31.32138258839703]},{"name":"遂宁市","coord":[105.48979445433736,30.677687821242678]},{"name":"广安市","coord":[106.56708164098042,30.43500706741521]},{"name":"泸州市","coord":[105.42591761727707,28.50277238478137]},{"name":"资阳市","coord":[104.97995126874034,30.154251886139654]},{"name":"雅安市","coord":[102.69931299964517,29.892630706195035]},{"name":"眉山市","coord":[104.07052881858888,29.894202166560405]},{"name":"甘孜藏族自治州","coord":[100.50721042614238,30.975216556269658]},{"name":"果洛藏族自治州","coord":[99.30775565051923,34.03539865224808]},{"name":"海南藏族自治州","coord":[100.39969108016373,35.90048272566899]},{"name":"黄南藏族自治州","coord":[101.5360706381689,35.10286360841902]},{"name":"赣南藏族自治州","coord":[102.97083885806067,34.326752803339026]},{"name":"陇南市","coord":[105.24780098912132,33.57031117443431]},{"name":"天水市","coord":[105.53503634660417,34.62320421368087]},{"name":"定西市","coord":[104.58787768541339,35.08900966621695]},{"name":"临夏回族自治州","coord":[103.2612870434902,35.591577124455235]},{"name":"西宁市","coord":[101.57680657999033,36.84800271717157]},{"name":"海东地区","coord":[102.30909850729282,36.287400615025646]},{"name":"海北藏族自治州","coord":[100.27122484450717,37.892557516083826]},{"name":"金昌市","coord":[102.02244049169511,38.497330414886164]},{"name":"酒泉市","coord":[95.94486678270127,40.56891536586272]},{"name":"海西蒙古族藏族自","coord":[94.67143298050689,36.022725148503724]},{"name":"巴音郭楞蒙古自治","coord":[88.18116214759745,39.556478810319916]},{"name":"哈密地区","coord":[93.84302392518026,42.95015211178875]},{"name":"叶鲁番地区","coord":[89.82035217277885,42.399368632283505]},{"name":"乌鲁木齐市","coord":[88.00048109561487,43.549986370786]},{"name":"阿勒泰地区","coord":[88.11213933257655,47.05593413019629]},{"name":"博尔塔拉蒙古自治","coord":[82.26402238163408,44.671135542630864]},{"name":"伊犁哈萨克自治州","coord":[82.80778717477179,43.53783381365267]},{"name":"阿拉善盟","coord":[103.29923966842289,40.10955801781495]},{"name":"武威市","coord":[102.73362058791429,37.94211141321436]},{"name":"兰州市","coord":[103.73793563506032,36.27379827886003]},{"name":"中卫市","coord":[105.6943786030716,37.20654236148948]},{"name":"银川市","coord":[106.20022174140034,38.52103167597483]},{"name":"石嘴山市","coord":[106.41544011793628,38.84054137571417]},{"name":"乌海市","coord":[106.8984175998405,39.54616572239788]},{"name":"鄂尔多斯市","coord":[108.43285571424619,39.24036799350715]},{"name":"巴彦淖尔市","coord":[107.45840392808307,41.30159860424196]},{"name":"包头市","coord":[110.46472193224272,41.48017783644221]},{"name":"呼和浩特市","coord":[111.48365173603975,40.498363056149884]},{"name":"乌兰察布市","coord":[112.61568977597707,41.75789561273154]},{"name":"大同市","coord":[113.7107192749083,39.898956799744184]},{"name":"朔州市","coord":[112.65428748167508,39.681772914701924]},{"name":"忻州市","coord":[112.36127575589583,38.88990233614568]},{"name":"榆林市","coord":[109.68473112169593,38.19921027134876]},{"name":"延安市","coord":[109.52425222161318,36.406522726136814]},{"name":"庆阳市","coord":[107.73052193155061,36.183821532624464]},{"name":"固原市","coord":[106.20191575442442,36.11634909496382]},{"name":"白银市","coord":[104.68634478137065,36.51582865625868]},{"name":"宝鸡市","coord":[107.33534779230747,34.3387216485855]},{"name":"汉中市","coord":[107.03534754266246,33.00142998064871]},{"name":"广元市","coord":[105.92928137563939,32.21872447205537]},{"name":"巴中市","coord":[107.03422410306194,31.99874720836291]},{"name":"南充市","coord":[106.32964805032347,31.156657700184095]},{"name":"绵阳市","coord":[104.58949560201106,31.88628780630976]},{"name":"德阳市","coord":[104.41542984932845,31.110558133718676]},{"name":"成都市","coord":[103.8852290010473,30.777258040348634]},{"name":"阿坝藏族羌族自治","coord":[102.26209319552814,32.45725845387284]},{"name":"安康市","coord":[109.14236501848015,32.77467694678074]},{"name":"十堰市","coord":[110.39934083416314,32.376209039347906]},{"name":"襄阳市","coord":[111.97539147094662,31.93399822417465]},{"name":"宜昌市","coord":[111.22204852395754,30.772457669035354]},{"name":"恩施市","coord":[109.42158366502872,30.260366574390105]},{"name":"张家界市","coord":[110.59760006538717,29.330107409240718]},{"name":"吉首市","coord":[109.72176899848378,28.681903937242495]},{"name":"铜仁地区","coord":[108.54247523485463,28.11736237519646]},{"name":"重庆市","coord":[107.86007108564992,30.186253395053196]},{"name":"怀化市","coord":[109.94325166787243,27.43919084801186]},{"name":"益阳市","coord":[112.43060358108062,28.75127294553697]},{"name":"娄底市","coord":[111.41891416951897,27.696312460064604]},{"name":"常德市","coord":[111.72571610131646,29.27189463838195]},{"name":"荆州市","coord":[112.65896596965268,30.05161542755362]},{"name":"荆门市","coord":[112.6586855902184,31.01267124474617]},{"name":"岳阳市","coord":[113.2595036144316,29.106247116930163]},{"name":"长沙市","coord":[113.15415586456598,28.222934680488425]},{"name":"湘潭市","coord":[112.51092596317824,27.69881544105668]},{"name":"株州市","coord":[113.49665538546823,27.03993794610501]},{"name":"衡阳市","coord":[112.48849636578527,26.783613569970782]},{"name":"邵阳市","coord":[110.6723832117475,26.81652287086792]},{"name":"永州市","coord":[111.8565364154186,25.768488267811968]},{"name":"韶关市","coord":[113.53420325850979,24.69848878771937]},{"name":"惠州市","coord":[114.32029589634925,23.25504544231892]},{"name":"佛山市","coord":[112.95925897403649,23.10116677189257]},{"name":"云浮市","coord":[111.78042514904234,22.840400494105687]},{"name":"深圳市","coord":[114.13138648919008,22.649563063468342]},{"name":"汕尾市","coord":[115.57412892884373,23.06989642104901]},{"name":"河源市","coord":[114.89746229844398,23.97971937124767]},{"name":"揭阳市","coord":[116.04290004239446,23.304802704715357]},{"name":"汕头市","coord":[116.7008461897183,23.35898625947344]},{"name":"潮州市","coord":[116.75405548481658,23.854381508863064]},{"name":"梅州市","coord":[116.13719397345734,24.15633544812716]},{"name":"漳州市","coord":[117.38279760543345,24.41111215459575]},{"name":"厦门市","coord":[118.04275971554665,24.675908246507944]},{"name":"龙岩市","coord":[116.69341144552507,25.20284542644492]},{"name":"泉州市","coord":[118.12035864630246,25.22984144365049]},{"name":"莆田市","coord":[118.82439690138142,25.439653480972687]},{"name":"福州市","coord":[119.1608285845262,25.99117532466728]},{"name":"三明市","coord":[117.51188176216434,26.318292906961602]},{"name":"南平市","coord":[118.16153136678187,27.306303151805437]},{"name":"抚州市","coord":[116.3455359885574,27.487043655935366]},{"name":"鹰潭市","coord":[117.01082360702333,28.241253742969946]},{"name":"吉安市","coord":[114.91377151807418,26.957486660664525]},{"name":"赣州市","coord":[115.046455717572,25.81565075681663]},{"name":"郴州市","coord":[113.1544526703492,25.871927095452524]},{"name":"新余市","coord":[114.94161795877827,27.79044654578371]},{"name":"宜春市","coord":[115.04574494880995,28.306428044943356]},{"name":"南昌市","coord":[115.9963824234495,28.664803351584705]},{"name":"九江市","coord":[115.53225905704193,29.362905920276297]},{"name":"上饶市","coord":[117.8595355766598,28.765755150094634]},{"name":"景德镇市","coord":[117.25387030721845,29.33426823662448]},{"name":"黄山市","coord":[117.85476357809696,29.969632034273722]},{"name":"池州市","coord":[117.34517113140791,30.208089337922335]},{"name":"铜陵市","coord":[117.93160431300694,30.926442655001676]},{"name":"安庆市","coord":[116.54307680610799,30.524265461641296]},{"name":"黄石市","coord":[115.02354597728443,29.924060229331015]},{"name":"咸宁市","coord":[114.26967602231792,29.652174021136048]},{"name":"黄冈市","coord":[115.2859016705373,30.65856897065683]},{"name":"武汉市","coord":[114.34552076948799,30.68836237966767]},{"name":"随州市","coord":[113.3850627838818,31.87891659924412]},{"name":"信阳市","coord":[114.81374730587638,32.0309685135914]},{"name":"驻马店市","coord":[114.07756451509235,32.896720987266114]},{"name":"商洛市","coord":[109.82044421310393,33.77403373563189]},{"name":"西安市","coord":[109.11839808451401,34.225257215515896]},{"name":"渭南市","coord":[109.75732444226935,35.025913644359306]},{"name":"铜川市","coord":[108.98695328111377,35.19235092947735]},{"name":"咸阳市","coord":[108.36398776446165,34.84311348287181]},{"name":"三门峡市","coord":[110.80049688104964,34.31818709571671]},{"name":"运城市","coord":[111.1736679525165,35.19010372283576]},{"name":"洛阳市","coord":[111.87577573098216,34.33379926109848]},{"name":"平顶山市","coord":[112.80931281928427,33.759895800153096]},{"name":"漯河市","coord":[113.83505724178012,33.70034266174508]},{"name":"许昌市","coord":[113.78762484088509,34.051835688452435]},{"name":"郑州市","coord":[113.49619951867594,34.61181797865449]},{"name":"焦作市","coord":[113.13404280173008,35.134167097471625]},{"name":"晋城市","coord":[112.7495732073233,35.63186423091449]},{"name":"长治市","coord":[112.85900842873183,36.45872910742828]},{"name":"临汾市","coord":[111.49379787924448,36.22810800777857]},{"name":"太原市","coord":[112.15628804033796,37.91704444063036]},{"name":"吕梁市","coord":[111.31901105774872,37.712740463356496]},{"name":"晋中市","coord":[113.08199599739676,37.36532613794343]},{"name":"邯郸市","coord":[114.41824047234618,36.530119932543315]},{"name":"安阳市","coord":[113.88883283163116,35.7797611183252]},{"name":"鹤壁市","coord":[114.3654094911545,35.75770487428472]},{"name":"新乡市","coord":[113.9184107718167,35.348471214026716]},{"name":"开封市","coord":[114.52801677500626,34.61371216679872]},{"name":"周口市","coord":[114.88509782391864,33.69999759722657]},{"name":"阜阳市","coord":[115.44595951398213,32.98060371610532]},{"name":"淮南市","coord":[116.68941991880993,32.79972275772595]},{"name":"蚌埠市","coord":[117.38594715783302,33.106729536033896]},{"name":"淮北市","coord":[116.69651711889378,33.69527529383458]},{"name":"宿州市","coord":[117.30175405886838,33.943330421260015]},{"name":"亳州市","coord":[116.12410804185097,33.46769392946132]},{"name":"商丘市","coord":[115.59575176872548,34.28339840831147]},{"name":"菏泽市","coord":[115.53631974831816,35.197319393220624]},{"name":"濮阳市","coord":[115.3070485514902,35.775883510964334]},{"name":"聊城市","coord":[115.8870069012884,36.40529594548765]},{"name":"邢台市","coord":[114.74259008644859,37.251396750084155]},{"name":"石家庄市","coord":[114.56923838363613,38.13141710980106]},{"name":"阳泉市","coord":[113.39216149668508,38.09075470547468]},{"name":"保定市","coord":[115.261524468934,39.09118520781398]},{"name":"衡水市","coord":[115.8182936677897,37.715661598187154]},{"name":"德州市","coord":[116.4582273790399,37.19372347888644]},{"name":"沧州市","coord":[116.76192710911863,38.20240042039232]},{"name":"廊坊市","coord":[116.50410772133856,39.27896741763884]},{"name":"天津市","coord":[117.31988934444873,39.37154482470619]},{"name":"北京市","coord":[116.59734730757869,40.237112944270976]},{"name":"张家口市","coord":[115.1823606483226,40.83732566607167]},{"name":"唐山市","coord":[117.8693184261954,39.71862889477249]},{"name":"秦皇岛市","coord":[119.30467355367742,39.990574652162564]},{"name":"承德市","coord":[117.16275671911026,41.36623845548547]},{"name":"葫芦岛市","coord":[119.9342336210531,40.5628822626519]},{"name":"朝阳市","coord":[120.11853493535794,41.471852354885755]},{"name":"赤峰市","coord":[118.50943546234379,43.25452976059767]},{"name":"锦州市","coord":[121.5167549323861,41.45933087433065]},{"name":"营口市","coord":[122.58571915054674,40.42093503997384]},{"name":"丹东市","coord":[124.33549382902183,40.46369290272115]},{"name":"辽阳市","coord":[123.34064798039414,41.152331397771356]},{"name":"盘锦市","coord":[122.06718005354679,41.05573599862555]},{"name":"阜新市","coord":[121.93889757908204,42.27641773244204]},{"name":"鞍山市","coord":[122.78904432242356,40.77781183142038]},{"name":"沈阳市","coord":[122.99508899709724,42.1162195010079]},{"name":"铁岭市","coord":[124.23100515588399,42.72666083611828]},{"name":"扶顺市","coord":[124.46027188217573,41.82955407638859]},{"name":"通辽市","coord":[122.0729370657937,43.90889130864869]},{"name":"兴安盟","coord":[120.79456431092532,45.92003249442161]},{"name":"白城市","coord":[123.10619907715235,45.25475749267784]},{"name":"齐齐哈尔市","coord":[124.5462214659102,47.55395009317394]},{"name":"大兴安岭地区","coord":[124.50992855161529,52.18438447846694]},{"name":"黑河市","coord":[127.14721400335922,49.25080134026901]},{"name":"大庆市","coord":[124.40329830095243,46.401048760966745]},{"name":"绥化市","coord":[126.5214484055605,46.76992452194825]},{"name":"松原市","coord":[124.21244334807682,44.75779381338502]},{"name":"四平市","coord":[124.27839350328821,43.52139065090318]},{"name":"通化市","coord":[125.67392830706305,41.91771808663852]},{"name":"辽源市","coord":[125.33529527643432,42.758340204944986]},{"name":"吉林市","coord":[126.83350281902375,43.60730120049175]},{"name":"长春市","coord":[125.53597875970374,44.24624314701737]},{"name":"白山市","coord":[127.16780160322108,42.093893880305075]},{"name":"哈尔滨市","coord":[127.39125008786029,45.36200668820575]},{"name":"鹤岗市","coord":[130.4703811258197,47.66520688940109]},{"name":"伊春市","coord":[128.91240831703635,47.93833794565277]},{"name":"七台河市","coord":[131.2677920224311,45.945099776108584]},{"name":"鸡西市","coord":[132.38059153660274,45.722934218318535]},{"name":"双鸭山市","coord":[132.3184817002743,46.65813679030265]},{"name":"佳木斯市","coord":[132.26174446608726,47.17569713691394]},{"name":"呼伦贝尔市","coord":[122.3210739998419,50.18176996070858]},{"name":"孝感市","coord":[113.83749892135485,31.11757234692128]},{"name":"贵港市","coord":[110.07354588052804,23.380735604767374]},{"name":"黔南布依族苗族自","coord":[107.30931767543106,26.2976919432269]},{"name":"宁德市","coord":[119.52482556634342,27.013151692716413]},{"name":"温州市","coord":[120.30037042732202,27.8699145504001]},{"name":"台州市","coord":[120.88886782713843,28.670799172772313]},{"name":"丽水市","coord":[119.56796851966463,28.170268394477755]},{"name":"衢州市","coord":[118.79479802644406,28.865874397158763]},{"name":"金华市","coord":[119.99381920686633,29.093455548185744]},{"name":"绍兴市","coord":[120.46546691682343,29.69382513836818]},{"name":"宁波市","coord":[121.42142987830871,29.70001162878972]},{"name":"杭州市","coord":[119.4405685790891,29.87218307296989]},{"name":"宣城市","coord":[118.68748382914703,30.628143499626418]},{"name":"湖州市","coord":[119.98261306633574,30.7945175862809]},{"name":"嘉兴市","coord":[120.83889215988998,30.67538495499343]},{"name":"上海市","coord":[121.37534147322967,31.25628247908459]},{"name":"苏州市","coord":[120.6906182622391,31.381280695137775]},{"name":"无锡市","coord":[120.32182300914366,31.54113306724517]},{"name":"常州市","coord":[119.61953292830165,31.611878565375576]},{"name":"南京市","coord":[118.71890548838064,31.910863187910323]},{"name":"镇江市","coord":[119.42349332902813,31.97942313430778]},{"name":"合肥市","coord":[117.30651975617157,31.79407863049138]},{"name":"六安市","coord":[116.24668220575353,31.820846193819513]},{"name":"滁州市","coord":[117.88422385307969,32.51792621904418]},{"name":"泰州市","coord":[120.03124303305091,32.56503102346783]},{"name":"南通市","coord":[120.85599446760912,32.18496706099728]},{"name":"盐城市","coord":[120.01812490612667,33.54219948734023]},{"name":"淮安市","coord":[119.0749424205415,33.39203631772854]},{"name":"宿迁市","coord":[118.45404943216346,33.666258719120265]},{"name":"徐州市","coord":[117.77482249295966,34.30847766157078]},{"name":"济宁市","coord":[116.74147276546373,35.27488504351119]},{"name":"枣庄市","coord":[117.43359942491492,34.884162021736]},{"name":"连云港市","coord":[119.01553213785074,34.54316517587849]},{"name":"临沂市","coord":[118.31478835349617,35.28173079028279]},{"name":"日照市","coord":[119.14265350444272,35.54479073199592]},{"name":"青岛市","coord":[120.27779044405756,36.3464117375903]},{"name":"威海市","coord":[122.12963327195605,37.13879077904251]},{"name":"烟台市","coord":[120.7689567423966,37.19772002195597]},{"name":"潍坊市","coord":[119.02178548592039,36.49292234053931]},{"name":"淄博市","coord":[117.92936024367185,36.60871347163638]},{"name":"泰安市","coord":[116.93810893944303,36.0423330118612]},{"name":"济南市","coord":[117.34560282551296,36.769574973846304]},{"name":"东营市","coord":[118.4915054457184,37.52194690335787]},{"name":"滨州市","coord":[117.67610299757533,37.4439597758601]},{"name":"昆明市","coord":[102.93100245594789,25.481300763922075]},{"name":"玉溪市","coord":[102.23080854291823,24.156168324611663]},{"name":"塔城地区","coord":[83.60908162840168,45.3721852373893]},{"name":"张掖市","coord":[100.47710030600572,38.704239320458385]},{"name":"南阳市","coord":[112.1400670951149,33.03033276715801]},{"name":"扬州市","coord":[119.48949608990988,32.80956776339646]},{"name":"延边朝鲜族自治州","coord":[129.3577692895626,43.24968794080283]},{"name":"牡丹江市","coord":[129.87240796405672,44.7073040108322]},{"name":"澳门","coord":[113.56289691515346,22.14602596262204]},{"name":"吴忠市","coord":[106.76894508116403,37.72566765880316]},{"name":"来宾市","coord":[109.25592217010114,23.86346274681084]},{"name":"平凉市","coord":[107.0708132782897,35.30329631658711]},{"name":"马鞍山市","coord":[118.27245878467022,31.657727937739004]},{"name":"芜湖市","coord":[118.32992684415504,31.081688223101658]},{"name":"澄迈县","coord":[110.04198076060266,19.694955078668105]},{"name":"保亭黎族苗族自治","coord":[109.6055304964257,18.6101488675304]},{"name":"乐东黎族自治县","coord":[109.04051999525574,18.643137437909203]},{"name":"儋州市","coord":[109.3431358337404,19.550974957403195]},{"name":"定安县","coord":[110.38744429685676,19.47557074114284]},{"name":"屯昌县","coord":[110.00574767630334,19.367175093044388]},{"name":"白沙黎族自治县","coord":[109.36860737761768,19.214416393082217]},{"name":"琼中黎族苗族自治","coord":[109.86691465937548,19.073671135862682]},{"name":"东方市","coord":[108.86903802405428,19.017352815445214]},{"name":"昌江黎族自治县","coord":[108.9686431884767,19.182594167127824]},{"name":"海口市","coord":[110.420654296875,19.806565564640795]},{"name":"济源市","coord":[112.38051465474433,35.07958362422394]},{"name":"五指山市","coord":[109.53595187364496,18.832908264613966]},{"name":"大连市","coord":[121.96662235866603,39.444150542439914]},{"name":"文昌市三沙市","coord":[110.81828537536748,19.756501444162936]},{"name":"三亚市","coord":[109.38424600793707,18.39186315877128]},{"name":"万宁市","coord":[110.28485046979574,18.860240588635115]},{"name":"陵水黎族自治县","coord":[109.95577603229562,18.594712684620465]},{"name":"临高县","coord":[109.71915395436967,19.79420403032508]},{"name":"琼海市","coord":[110.41650700703043,19.22315873149372]}]'),vo=JSON.parse('[{"name":"黑龙江省","coord":[127.64559817675396,48.48668098449708]},{"name":"内蒙古自治区","coord":[118.34519572208615,45.370218276977525]},{"name":"新疆维吾尔自治区","coord":[87.13479065593184,41.75497055053711]},{"name":"吉林省","coord":[126.12985278813787,43.57983207702637]},{"name":"辽宁省","coord":[124.02494773936439,41.105743408203125]},{"name":"甘肃省","coord":[102.87785725633012,37.69582366943361]},{"name":"河北省","coord":[115.66327227481898,39.33383178710938]},{"name":"北京市","coord":[116.62199343603638,40.25053787231445]},{"name":"山西省","coord":[112.45180235808988,37.666561126708984]},{"name":"天津市","coord":[117.35711842642581,39.406789779663086]},{"name":"陕西省","coord":[109.56294003056632,35.64754199981689]},{"name":"宁夏回族自治区","coord":[105.96110877640074,37.3081169128418]},{"name":"青海省","coord":[96.07301048277901,35.44417190551758]},{"name":"山东省","coord":[118.03833752951093,36.29800605773925]},{"name":"西藏自治区","coord":[87.47361520439412,31.6703872680664]},{"name":"河南省","coord":[113.07832397097275,33.87751102447509]},{"name":"江苏省","coord":[119.93926538201052,32.945452690124505]},{"name":"安徽省","coord":[117.15146765881019,32.024482727050774]},{"name":"四川省","coord":[102.28998890142759,30.182161331176758]},{"name":"湖北省","coord":[112.87798261431585,31.157071113586426]},{"name":"重庆市","coord":[107.870126637831,30.188085556030266]},{"name":"上海市","coord":[121.42561166015514,31.276043891906745]},{"name":"浙江省","coord":[119.75337092707514,29.175934791564945]},{"name":"湖南省","coord":[111.52770282777405,27.38110256195069]},{"name":"江西省","coord":[115.51091280655628,27.283511161804206]},{"name":"云南省","coord":[101.27053825991308,25.19783210754396]},{"name":"贵州省","coord":[106.49672346773299,26.92267990112305]},{"name":"福建省","coord":[117.9976766946587,25.939599990844727]},{"name":"广西壮族自治区","coord":[108.98706831086302,23.891559600830078]},{"name":"台湾省","coord":[120.82468432537434,23.602651596069336]},{"name":"香港特别行政区","coord":[114.21036850371561,22.374858856201172]},{"name":"海南省","coord":[109.62792940960824,19.163116455078125]},{"name":"广东省","coord":[113.32127888266032,22.873867034912106]},{"name":"澳门特别行政区","coord":[113.56819996291901,22.160347992976]}]');function bo(e){"@babel/helpers - typeof";return(bo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ao(e){return function(e){if(Array.isArray(e))return wo(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return wo(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?wo(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function wo(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:"type",r=[],n=0;n0){var i=Po(o,t);r.push.apply(r,Ao(i))}}else r.push(e[n])}return r}function ko(e,t){var r=e.type,n=e.tiles;return"raster"===r&&(r===t.type&&n&&t.tiles&&function(e,t){if(e===t)return!0;var r=new URL(e),n=new URL(t);if(r.origin!==n.origin)return!1;var o=/\/([^/?#]+\.\w+)$/,i=r.pathname.replace(o,""),a=n.pathname.replace(o,"");return i===a||i.startsWith(a+(a.endsWith("/")?"":"/"))}(n[0],t.tiles[0]))}function To(e){return e.layerInfo&&e.layerInfo.id?e.layerInfo.id:e.metadata&&e.metadata.SM_Layer_Id?e.metadata.SM_Layer_Id:e.sourceLayer||e.source||e.id}function jo(e,t,r){var n=r.some(function(e){return e.id===t})?[t]:[];return e&&n.push.apply(n,Ao(e)),Array.from(new Set(n)).filter(function(e){return!!e})}function Mo(e,t,r){var n=jo(e,t,r);return r.find(function(e){return e.id===n[0]})}var Bo={toSuperMapGeometry:function(e){if(e&&e.type){var t=(new fo).read(e,"FeatureCollection");return t&&t[0].geometry}},toSuperMapBounds:function(e){return ho(e)?new Xe(e[0],e[1],e[2],e[3]):e instanceof o().LngLatBounds?new Xe(e.getWest(),e.getSouth(),e.getEast(),e.getNorth()):e},toSuperMapPoint:function(e){return ho(e)?new st(e[0],e[1]):e.lng&&e.lat?new st(e.lng,e.lat):new st(e.geometry.coordinates[0],e.geometry.coordinates[1])},toSuperMapPolygon:function(e){var t=e.getWest(),r=e.getEast(),n=e.getSouth(),o=e.getNorth();return new $t([new Vt([new st(t,n),new st(r,n),new st(r,o),new st(t,o)])])},isArray:ho,toGeoJSON:function(e){if(e)return(new fo).toGeoJSON(e)},toProcessingParam:function(e){var t={};if(e.length<1)t="";else{for(var r=[],n=0;n1e-7;s++)t=1,a+=u=Math.PI/2-2*Math.atan(i*t)-a;return new(o().LngLat)(e[0]*r/n,a*r)},transformUrl:function(e){var t=e.url,r=e.server,n=e.excludePortalProxyUrl,o=e.credentialValue,i=e.credentialKey,a=-1===t.indexOf(".json")?"".concat(t,".json"):t,s="getUrlResource.json?url=";if(n&&r.indexOf(s)>-1){var u=r.split(s);u.length>1&&(a=u[0]+s+a)}return o&&i&&(a+="?"+i+"="+o),a}};function No(e){"@babel/helpers - typeof";return(No="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ro(e,t){for(var r=0;r1&&(r=parseFloat(r)*l),n.labelAlign&&"cm"!==n.labelAlign)switch(n.labelAlign){case"lt":u.x+=t/2,u.y+=r/2;break;case"lm":u.x+=t/2;break;case"lb":u.x+=t/2,u.y-=r/2;break;case"ct":u.y+=r/2;break;case"cb":u.y-=r/2;break;case"rt":u.x-=t/2,u.y+=r/2;break;case"rm":u.x-=t/2;break;case"rb":u.x-=t/2,u.y-=r/2}return this.bsInfo.h=r,this.bsInfo.w=t,o=u.x-parseFloat(t)/2,i=u.y+parseFloat(r)/2,s=u.x+parseFloat(t)/2,a=u.y-parseFloat(r)/2,new Xe(o,i,s,a)}},{key:"getLabelPxBoundsByText",value:function(e,t){var r,n,o,i,a=this.getLabelPxSize(t),s=B.cloneObject(e);if(t.labelAlign&&"cm"!==t.labelAlign)switch(t.labelAlign){case"lt":s.x+=a.w/2,s.y+=a.h/2;break;case"lm":s.x+=a.w/2;break;case"lb":s.x+=a.w/2,s.y-=a.h/2;break;case"ct":s.y+=a.h/2;break;case"cb":s.y-=a.h/2;break;case"rt":s.x-=a.w/2,s.y+=a.h/2;break;case"rm":s.x-=a.w/2;break;case"rb":s.x-=a.w/2,s.y-=a.h/2}return this.bsInfo.h=a.h,this.bsInfo.w=a.w,r=s.x-a.w/2,n=s.y+a.h/2,i=t.fontStyle&&"italic"===t.fontStyle?s.x+a.w/2+parseInt(parseFloat(t.fontSize)/2):s.x+a.w/2,o=s.y-a.h/2,new Xe(r,n,i,o)}},{key:"getLabelPxSize",value:function(e){var t,r,n,o,i=parseFloat(e.strokeWidth);t=e.label||this.text,r=e.fontSize?parseFloat(e.fontSize):parseFloat("12px");var a=t.split("\n"),s=a.length;o=s>1?r*s+s+i+.2*r:r+i+.2*r+1,n=0,this.labelWTmp&&n255?r++:n++;return t.cnC=r,t.enC=n,t.textC=e.length,t}}])&&Ro(r.prototype,n),o&&Ro(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function zo(e){"@babel/helpers - typeof";return(zo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ho(e,t){for(var r=0;r1&&(e=new st(t[0],t[1])),new dr(e,this.attributes)}}])&&Yo(e.prototype,t),r&&Yo(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Xo(e){"@babel/helpers - typeof";return(Xo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Zo(e,t){for(var r=0;ri&&(i=e+s+100,n.width=i,r=!0),t+u>a&&(a=t+u+100,n.height=a,r=!0),e<-s&&(i+=s=100*Math.ceil(-e/100),n.width=i,r=!0),t<-u&&(a+=u=100*Math.ceil(-t/100),n.height=a,r=!0),r&&o.translate(s,u)}},{key:"getPixelOffset",value:function(){return{x:this._offsetX,y:this._offsetY}}},{key:"indexOf",value:function(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r3&&(t=Array.prototype.slice.call(t,1));for(var n=this._handlers[e],o=n.length,i=0;i4&&(t=Array.prototype.slice.call(t,1,t.length-1));for(var n=t[t.length-1],o=this._handlers[e],i=o.length,a=0;a-this.EPSILON&&ethis.EPSILON||e<-this.EPSILON}},{key:"cubicAt",value:function(e,t,r,n,o){var i=1-o;return i*i*(i*e+3*o*t)+o*o*(o*n+3*i*r)}},{key:"cubicDerivativeAt",value:function(e,t,r,n,o){var i=1-o;return 3*(((t-e)*i+2*(r-t)*o)*i+(n-r)*o*o)}},{key:"cubicRootAt",value:function(e,t,r,n,o,i){var a=n+3*(t-r)-e,s=3*(r-2*t+e),u=3*(t-e),l=e-o,c=s*s-3*a*u,f=s*u-9*a*l,p=u*u-3*s*l,h=0;if(this.isAroundZero(c)&&this.isAroundZero(f))if(this.isAroundZero(s))i[0]=0;else{var y=-u/s;y>=0&&y<=1&&(i[h++]=y)}else{var d=f*f-4*c*p;if(this.isAroundZero(d)){var m=f/c,g=-s/a+m,v=-m/2;g>=0&&g<=1&&(i[h++]=g),v>=0&&v<=1&&(i[h++]=v)}else if(d>0){var b=Math.sqrt(d),A=c*s+1.5*a*(-f+b),w=c*s+1.5*a*(-f-b),S=(-s-((A=A<0?-Math.pow(-A,this.ONE_THIRD):Math.pow(A,this.ONE_THIRD))+(w=w<0?-Math.pow(-w,this.ONE_THIRD):Math.pow(w,this.ONE_THIRD))))/(3*a);S>=0&&S<=1&&(i[h++]=S)}else{var C=(2*c*s-3*a*f)/(2*Math.sqrt(c*c*c)),E=Math.acos(C)/3,_=Math.sqrt(c),O=Math.cos(E),I=(-s-2*_*O)/(3*a),x=(-s+_*(O+this.THREE_SQRT*Math.sin(E)))/(3*a),P=(-s+_*(O-this.THREE_SQRT*Math.sin(E)))/(3*a);I>=0&&I<=1&&(i[h++]=I),x>=0&&x<=1&&(i[h++]=x),P>=0&&P<=1&&(i[h++]=P)}}return h}},{key:"cubicExtrema",value:function(e,t,r,n,o){var i=6*r-12*t+6*e,a=9*t+3*n-3*e-9*r,s=3*t-3*e,u=0;if(this.isAroundZero(a)){if(this.isNotAroundZero(i)){var l=-s/i;l>=0&&l<=1&&(o[u++]=l)}}else{var c=i*i-4*a*s;if(this.isAroundZero(c))o[0]=-i/(2*a);else if(c>0){var f=Math.sqrt(c),p=(-i+f)/(2*a),h=(-i-f)/(2*a);p>=0&&p<=1&&(o[u++]=p),h>=0&&h<=1&&(o[u++]=h)}}return u}},{key:"cubicSubdivide",value:function(e,t,r,n,o,i){var a=(t-e)*o+e,s=(r-t)*o+t,u=(n-r)*o+r,l=(s-a)*o+a,c=(u-s)*o+s,f=(c-l)*o+l;i[0]=e,i[1]=a,i[2]=l,i[3]=f,i[4]=f,i[5]=c,i[6]=u,i[7]=n}},{key:"cubicProjectPoint",value:function(e,t,r,n,o,i,a,s,u,l,c){var f,p=this.vector.create(),h=this.vector.create(),y=this.vector.create(),d=.005,m=1/0;p[0]=u,p[1]=l;for(var g=0;g<1;g+=.05){h[0]=this.cubicAt(e,r,o,a,g),h[1]=this.cubicAt(t,n,i,s,g);var v=this.vector.distSquare(p,h);v=0&&S=0&&l<=1&&(o[u++]=l)}}else{var c=a*a-4*i*s;if(this.isAroundZero(c)){var f=-a/(2*i);f>=0&&f<=1&&(o[u++]=f)}else if(c>0){var p=Math.sqrt(c),h=(-a+p)/(2*i),y=(-a-p)/(2*i);h>=0&&h<=1&&(o[u++]=h),y>=0&&y<=1&&(o[u++]=y)}}return u}},{key:"quadraticExtremum",value:function(e,t,r){var n=e+r-2*t;return 0===n?.5:(e-t)/n}},{key:"quadraticProjectPoint",value:function(e,t,r,n,o,i,a,s,u){var l,c=this.vector.create(),f=this.vector.create(),p=this.vector.create(),h=.005,y=1/0;c[0]=a,c[1]=s;for(var d=0;d<1;d+=.05){f[0]=this.quadraticAt(e,r,o,d),f[1]=this.quadraticAt(t,n,i,d);var m=this.vector.distSquare(c,f);m=0&&A0){for(var v=this.isInsidePolygon(t.pointList,m,g),b=e.holePolygonPointLists,A=!1,w=0,S=b.length;wt+s&&a>n+s||ae+s&&i>r+s||it+f&&c>n+f&&c>i+f&&c>s+f||ce+f&&l>r+f&&l>o+f&&l>a+f||lt+l&&u>n+l&&u>i+l||ue+l&&s>r+l&&s>o+l||sr||f+c=l)return!0;if(i){var p=n;n=this.normalizeRadian(o),o=this.normalizeRadian(p)}else n=this.normalizeRadian(n),o=this.normalizeRadian(o);n>o&&(o+=l);var h=Math.atan2(u,s);return h<0&&(h+=l),h>=n&&h<=o||h+l>=n&&h+l<=o}},{key:"isInsideBrokenLine",value:function(e,t,r,n){for(var o=Math.max(t,10),i=0,a=e.length-1;ir*r}},{key:"isInsideRect",value:function(e,t,r,n,o,i){return o>=e&&o<=e+r&&i>=t&&i<=t+n}},{key:"isInsideCircle",value:function(e,t,r,n,o){return(n-e)*(n-e)+(o-t)*(o-t)t&&i>n||io?nt&&l>n&&l>i&&l>s||l1&&this.swapExtrema(),y=c.cubicAt(t,n,i,s,p[0]),g>1&&(d=c.cubicAt(t,n,i,s,p[1]))),2==g?bt&&s>n&&s>i||s=0&&f<=1){for(var p=0,h=u.quadraticAt(t,n,i,f),y=0;ya||(l[y]a?0:ir||s<-r)return 0;var c=Math.sqrt(r*r-s*s);if(u[0]=-c,u[1]=c,Math.abs(n-o)>=l){n=0,o=l;var f=i?1:-1;return a>=u[0]+e&&a<=u[1]+e?f:0}if(i){var p=n;n=this.normalizeRadian(o),o=this.normalizeRadian(p)}else n=this.normalizeRadian(n),o=this.normalizeRadian(o);n>o&&(o+=l);for(var h=0,y=0;y<2;y++){var d=u[y];if(d+e>a){var m=Math.atan2(s,d),g=i?1:-1;m<0&&(m=l+m),(m>=n&&m<=o||m+l>=n&&m+l<=o)&&(m>Math.PI/2&&m<1.5*Math.PI&&(g=-g),h+=g)}}return h}},{key:"isInsidePath",value:function(e,t,r,n,o){for(var i=0,a=0,s=0,u=0,l=0,c=!0,f=!0,p="stroke"===(r=r||"fill")||"both"===r,h="fill"===r||"both"===r,y=0;y0&&(h&&(i+=this.windingLine(a,s,u,l,n,o)),0!==i))return!0;u=m[m.length-2],l=m[m.length-1],c=!1,f&&"A"!==d.command&&(f=!1,a=u,s=l)}switch(d.command){case"M":a=m[0],s=m[1];break;case"L":if(p&&this.isInsideLine(a,s,m[0],m[1],t,n,o))return!0;h&&(i+=this.windingLine(a,s,m[0],m[1],n,o)),a=m[0],s=m[1];break;case"C":if(p&&this.isInsideCubicStroke(a,s,m[0],m[1],m[2],m[3],m[4],m[5],t,n,o))return!0;h&&(i+=this.windingCubic(a,s,m[0],m[1],m[2],m[3],m[4],m[5],n,o)),a=m[4],s=m[5];break;case"Q":if(p&&this.isInsideQuadraticStroke(a,s,m[0],m[1],m[2],m[3],t,n,o))return!0;h&&(i+=this.windingQuadratic(a,s,m[0],m[1],m[2],m[3],n,o)),a=m[2],s=m[3];break;case"A":var g=m[0],v=m[1],b=m[2],A=m[3],w=m[4],S=m[5],C=Math.cos(w)*b+g,E=Math.sin(w)*A+v;f?(f=!1,u=C,l=E):i+=this.windingLine(a,s,C,E);var _=(n-g)*A/b+g;if(p&&this.isInsideArcStroke(g,v,A,w,w+S,1-m[7],t,_,o))return!0;h&&(i+=this.windingArc(g,v,A,w,w+S,1-m[7],_,o)),a=Math.cos(w+S)*b+g,s=Math.sin(w+S)*A+v;break;case"z":if(p&&this.isInsideLine(a,s,u,l,t,n,o))return!0;c=!0}}return h&&(i+=this.windingLine(a,s,u,l,n,o)),0!==i}},{key:"getTextWidth",value:function(e,t){var r=e+":"+t;if(this._textWidthCache[r])return this._textWidthCache[r];this._ctx=this._ctx||this.util.getContext(),this._ctx.save(),t&&(this._ctx.font=t);for(var n=0,o=0,i=(e=(e+"").split("\n")).length;othis.TEXT_CACHE_MAX&&(this._textWidthCacheCounter=0,this._textWidthCache={}),n}},{key:"getTextHeight",value:function(e,t){var r=e+":"+t;if(this._textHeightCache[r])return this._textHeightCache[r];this._ctx=this._ctx||this.util.getContext(),this._ctx.save(),t&&(this._ctx.font=t),e=(e+"").split("\n");var n=(this._ctx.measureText("ZH").width+2)*e.length;return this._ctx.restore(),this._textHeightCache[r]=n,++this._textHeightCacheCounter>this.TEXT_CACHE_MAX&&(this._textHeightCacheCounter=0,this._textHeightCache={}),n}}])&&yi(e.prototype,t),r&&yi(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function gi(e){"@babel/helpers - typeof";return(gi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function vi(e,t){for(var r=0;r1)for(var o=0,i=n-1;o1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var r=this.map(e.slice(1,3),function(e){return e+"%"});e[1]=r[0],e[2]=r[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=this.adjust(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}}},{key:"toArray",value:function(e){(e=this.trim(e)).indexOf("rgba")<0&&(e=this.toRGBA(e));var t=[],r=0;return e.replace(/[\d.]+/g,function(e){r<3?e|=0:e=+e,t[r++]=e}),t}},{key:"convert",value:function(e,t){if(!this.isCalculableColor(e))return e;var r=this.getData(e),n=r[3];return void 0===n&&(n=1),e.indexOf("hsb")>-1?r=this._HSV_2_RGB(r):e.indexOf("hsl")>-1&&(r=this._HSL_2_RGB(r)),t.indexOf("hsb")>-1||t.indexOf("hsv")>-1?r=this._RGB_2_HSB(r):t.indexOf("hsl")>-1&&(r=this._RGB_2_HSL(r)),r[3]=n,this.toColor(r,t)}},{key:"toRGBA",value:function(e){return this.convert(e,"rgba")}},{key:"toRGB",value:function(e){return this.convert(e,"rgb")}},{key:"toHex",value:function(e){return this.convert(e,"hex")}},{key:"toHSVA",value:function(e){return this.convert(e,"hsva")}},{key:"toHSV",value:function(e){return this.convert(e,"hsv")}},{key:"toHSBA",value:function(e){return this.convert(e,"hsba")}},{key:"toHSB",value:function(e){return this.convert(e,"hsb")}},{key:"toHSLA",value:function(e){return this.convert(e,"hsla")}},{key:"toHSL",value:function(e){return this.convert(e,"hsl")}},{key:"toName",value:function(e){for(var t in this._nameColors)if(this.toHex(this._nameColors[t])===this.toHex(e))return t;return null}},{key:"trim",value:function(e){return String(e).replace(/\s+/g,"")}},{key:"normalize",value:function(e){if(this._nameColors[e]&&(e=this._nameColors[e]),e=(e=this.trim(e)).replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){var t=(3840&(e=parseInt(e.slice(1),16)))<<8,r=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(r<<4)+r+(n<<4)+n).toString(16).slice(1)}return e}},{key:"lift",value:function(e,t){if(!this.isCalculableColor(e))return e;var r=t>0?1:-1;void 0===t&&(t=0),t=Math.abs(t)>1?1:Math.abs(t),e=this.toRGB(e);for(var n=this.getData(e),o=0;o<3;o++)n[o]=1===r?n[o]*(1-t)|0:(255-n[o])*t+n[o]|0;return"rgb("+n.join(",")+")"}},{key:"reverse",value:function(e){if(!this.isCalculableColor(e))return e;var t=this.getData(this.toRGBA(e));return t=this.map(t,function(e){return 255-e}),this.toColor(t,"rgb")}},{key:"mix",value:function(e,t,r){if(!this.isCalculableColor(e)||!this.isCalculableColor(t))return e;void 0===r&&(r=.5);for(var n=2*(r=1-this.adjust(r,[0,1]))-1,o=this.getData(this.toRGBA(e)),i=this.getData(this.toRGBA(t)),a=o[3]-i[3],s=((n*a==-1?n:(n+a)/(1+n*a))+1)/2,u=1-s,l=[],c=0;c<3;c++)l[c]=o[c]*s+i[c]*u;var f=o[3]*r+i[3]*(1-r);return f=Math.max(0,Math.min(1,f)),1===o[3]&&1===i[3]?this.toColor(l,"rgb"):(l[3]=f,this.toColor(l,"rgba"))}},{key:"random",value:function(){return"#"+Math.random().toString(16).slice(2,8)}},{key:"getData",value:function(t){var r,n,o=(t=this.normalize(t)).match(this.colorRegExp);if(null===o)throw new Error("The color format error");var i,a=[];if(o[2])i=[(r=o[2].replace("#","").split(""))[0]+r[1],r[2]+r[3],r[4]+r[5]],a=this.map(i,function(t){return e.prototype.adjust.call(this,parseInt(t,16),[0,255])});else if(o[4]){var s=o[4].split(",");n=s[3],i=s.slice(0,3),a=this.map(i,function(t){return t=Math.floor(t.indexOf("%")>0?2.55*parseInt(t,0):t),e.prototype.adjust.call(this,t,[0,255])}),void 0!==n&&a.push(this.adjust(parseFloat(n),[0,1]))}else if(o[5]||o[6]){var u=(o[5]||o[6]).split(","),l=parseInt(u[0],0)/360,c=u[1],f=u[2];n=u[3],(a=this.map([c,f],function(t){return e.prototype.adjust.call(this,parseFloat(t)/100,[0,1])})).unshift(l),void 0!==n&&a.push(this.adjust(parseFloat(n),[0,1]))}return a}},{key:"alpha",value:function(e,t){if(!this.isCalculableColor(e))return e;null===t&&(t=1);var r=this.getData(this.toRGBA(e));return r[3]=this.adjust(Number(t).toFixed(4),[0,1]),this.toColor(r,"rgba")}},{key:"map",value:function(e,t){if("function"!=typeof t)throw new TypeError;for(var r=e?e.length:0,n=0;n=t[1]&&(e=t[1]),e}},{key:"isCalculableColor",value:function(e){return e instanceof Array||"string"==typeof e}},{key:"_HSV_2_RGB",value:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s=6*o;6===s&&(s=0);var u=0|s,l=a*(1-i),c=a*(1-i*(s-u)),f=a*(1-i*(1-(s-u))),p=0,h=0,y=0;0===u?(p=a,h=f,y=l):1===u?(p=c,h=a,y=l):2===u?(p=l,h=a,y=f):3===u?(p=l,h=c,y=a):4===u?(p=f,h=l,y=a):(p=a,h=l,y=c),t=255*p,r=255*h,n=255*y}return[t,r,n]}},{key:"_HSL_2_RGB",value:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s,u=2*a-(s=a<.5?a*(1+i):a+i-i*a);t=255*this._HUE_2_RGB(u,s,o+1/3),r=255*this._HUE_2_RGB(u,s,o),n=255*this._HUE_2_RGB(u,s,o-1/3)}return[t,r,n]}},{key:"_HUE_2_RGB",value:function(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}},{key:"_RGB_2_HSB",value:function(e){var t,r,n=e[0]/255,o=e[1]/255,i=e[2]/255,a=Math.min(n,o,i),s=Math.max(n,o,i),u=s-a,l=s;if(0===u)t=0,r=0;else{r=u/s;var c=((s-n)/6+u/2)/u,f=((s-o)/6+u/2)/u,p=((s-i)/6+u/2)/u;n===s?t=p-f:o===s?t=1/3+c-p:i===s&&(t=2/3+f-c),t<0&&(t+=1),t>1&&(t-=1)}return[t*=360,r*=100,l*=100]}},{key:"_RGB_2_HSL",value:function(e){var t,r,n=e[0]/255,o=e[1]/255,i=e[2]/255,a=Math.min(n,o,i),s=Math.max(n,o,i),u=s-a,l=(s+a)/2;if(0===u)t=0,r=0;else{r=l<.5?u/(s+a):u/(2-s-a);var c=((s-n)/6+u/2)/u,f=((s-o)/6+u/2)/u,p=((s-i)/6+u/2)/u;n===s?t=p-f:o===s?t=1/3+c-p:i===s&&(t=2/3+f-c),t<0&&(t+=1),t>1&&(t-=1)}return[t*=360,r*=100,l*=100]}}])&&vi(t.prototype,r),n&&vi(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function wi(e){"@babel/helpers - typeof";return(wi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Si(e,t){for(var r=0;ro&&(o=u[0]),u[1]a&&(a=u[1])}t[0]=n,t[1]=i,r[0]=o,r[1]=a}}},{key:"cubeBezier",value:function(e,t,r,n,o,i){var a=new pi,s=[];a.cubicExtrema(e[0],t[0],r[0],n[0],s);for(var u=0;uo&&!i?o+=2*Math.PI:nn&&(f[0]=Math.cos(h)*r+e,f[1]=Math.sin(h)*r+t,u.min(a,f,a),u.max(s,f,s))}}])&&Si(e.prototype,t),r&&Si(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function _i(e){"@babel/helpers - typeof";return(_i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Oi(e,t){for(var r=0;r=200&&o.status<300||304===o.status?t&&t(o.responseText):r&&r(),o.onreadystatechange=new Function,o=null)},o.send(null)}}])&&Bi(e.prototype,t),r&&Bi(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Li(e){"@babel/helpers - typeof";return(Li="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Di(e,t){for(var r=0;r1)for(var t in arguments)console.log(arguments[t])}},(t=[{key:"destory",value:function(){return!0}}])&&Ui(e.prototype,t),r&&Ui(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function qi(e){"@babel/helpers - typeof";return(qi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vi(e,t){for(var r=0;ra-2?a-1:h+1][0]+i[0],t[h>a-2?a-1:h+1][1]+i[1]],v=[t[h>a-3?a-1:h+2][0]+i[0],t[h>a-3?a-1:h+2][1]+i[1]]);var b=y*y,A=y*b;s.push([w(d[0],m[0],g[0],v[0],y,b,A),w(d[1],m[1],g[1],v[1],y,b,A)])}return s;function w(e,t,r,n,o,i,a){var s=.5*(r-e),u=.5*(n-t);return(2*(t-r)+s+u)*a+(-3*(t-r)-2*s-u)*i+s*o+t}}},{key:"SUtil_dashedLineTo",value:function(e,t,r,n,o,i,a){var s=[5,5];if(i="number"!=typeof i?5:i,e.setLineDash)return s[0]=i,s[1]=i,a&&a instanceof Array?e.setLineDash(a):e.setLineDash(s),e.moveTo(t,r),void e.lineTo(n,o);var u=n-t,l=o-r,c=Math.floor(Math.sqrt(u*u+l*l)/i);u/=c,l/=c;for(var f=!0,p=0;p-5e-5&&e<5e-5}ra.Util_vector.sub(t,e,this.position),n(t[0])&&n(t[1])||(ra.Util_vector.normalize(t,t),r[2]=t[0]*this.scale[1],r[3]=t[1]*this.scale[1],r[0]=t[1]*this.scale[0],r[1]=-t[0]*this.scale[0],r[4]=this.position[0],r[5]=this.position[1],this.decomposeTransform())})},(t=[{key:"destroy",value:function(){this.position=null,this.rotation=null,this.scale=null,this.needLocalTransform=null,this.needTransform=null}},{key:"updateNeedTransform",value:function(){function e(e){return e>5e-5||e<-5e-5}this.needLocalTransform=e(this.rotation[0])||e(this.position[0])||e(this.position[1])||e(this.scale[0]-1)||e(this.scale[1]-1)}},{key:"updateTransform",value:function(){if(this.updateNeedTransform(),this.parent?this.needTransform=this.needLocalTransform||this.parent.needTransform:this.needTransform=this.needLocalTransform,this.needTransform){var e=[0,0],t=this.transform||ra.Util_matrix.create();if(ra.Util_matrix.identity(t),this.needLocalTransform){if(o(this.scale[0])||o(this.scale[1])){e[0]=-this.scale[2]||0,e[1]=-this.scale[3]||0;var r=o(e[0])||o(e[1]);r&&ra.Util_matrix.translate(t,t,e),ra.Util_matrix.scale(t,t,this.scale),r&&(e[0]=-e[0],e[1]=-e[1],ra.Util_matrix.translate(t,t,e))}if(this.rotation instanceof Array){if(0!==this.rotation[0]){e[0]=-this.rotation[1]||0,e[1]=-this.rotation[2]||0;var n=o(e[0])||o(e[1]);n&&ra.Util_matrix.translate(t,t,e),ra.Util_matrix.rotate(t,t,this.rotation[0]),n&&(e[0]=-e[0],e[1]=-e[1],ra.Util_matrix.translate(t,t,e))}}else 0!=+this.rotation&&ra.Util_matrix.rotate(t,t,this.rotation);(o(this.position[0])||o(this.position[1]))&&ra.Util_matrix.translate(t,t,this.position)}this.transform=t,this.parent&&this.parent.needTransform&&(this.needLocalTransform?ra.Util_matrix.mul(this.transform,this.parent.transform,this.transform):ra.Util_matrix.copy(this.transform,this.parent.transform))}function o(e){return e>5e-5||e<-5e-5}}},{key:"setTransform",value:function(e){if(this.needTransform){var t=this.transform;e.transform(t[0],t[1],t[2],t[3],t[4],t[5])}}},{key:"decomposeTransform",value:function(){if(this.transform){var e=this.transform,t=e[0]*e[0]+e[1]*e[1],r=this.position,n=this.scale,o=this.rotation;a(t-1)&&(t=Math.sqrt(t));var i=e[2]*e[2]+e[3]*e[3];a(i-1)&&(i=Math.sqrt(i)),r[0]=e[4],r[1]=e[5],n[0]=t,n[1]=i,n[2]=n[3]=0,o[0]=Math.atan2(-e[1]/i,e[0]/t),o[1]=o[2]=0}function a(e){return e>5e-5||e<-5e-5}}}])&&oa(e.prototype,t),r&&oa(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function sa(e){"@babel/helpers - typeof";return(sa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ua(e,t){for(var r=0;r0}},{key:"addRoot",value:function(e){e instanceof ya&&e.addChildrenToStorage(this),this.addToMap(e),this._roots.push(e)}},{key:"delRoot",value:function(e){if(void 0===e){for(var t=0;t=0&&(this.delFromMap(i.id),this._roots.splice(a,1),i instanceof ya&&i.delChildrenFromStorage(this))}}},{key:"addToMap",value:function(e){return e instanceof ya&&(e._storage=this),e.modSelf(),this._elements[e.id]=e,this}},{key:"get",value:function(e){return this._elements[e]}},{key:"delFromMap",value:function(e){var t=this._elements[e];return t&&(delete this._elements[e],t instanceof ya&&(t._storage=null)),this}},{key:"dispose",value:function(){this._elements=null,this._roots=null,this._hoverElements=null}}])&&ma(t.prototype,r),n&&ma(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function ba(e){"@babel/helpers - typeof";return(ba="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Aa(e,t){for(var r=0;r1},isLeftClick:function(e){return e.which&&1===e.which||e.button&&1===e.button},isRightClick:function(e){return e.which&&3===e.which||e.button&&2===e.button},stop:function(e,t){t||(e.preventDefault?e.preventDefault():e.returnValue=!1),e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},findElement:function(e,t){for(var r=Ta.element(e);r.parentNode&&(!r.tagName||r.tagName.toUpperCase()!=t.toUpperCase());)r=r.parentNode;return r},observe:function(e,t,r,n){var o=B.getElement(e);if(n=n||!1,"keypress"===t&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||o.attachEvent)&&(t="keydown"),this.observers||(this.observers={}),!o._eventCacheID){var i="eventCacheID_";o.id&&(i=o.id+"_"+i),o._eventCacheID=B.createUniqueID(i)}var a=o._eventCacheID;this.observers[a]||(this.observers[a]=[]),this.observers[a].push({element:o,name:t,observer:r,useCapture:n}),o.addEventListener?"mousewheel"===t?o.addEventListener(t,r,{useCapture:n,passive:!1}):o.addEventListener(t,r,n):o.attachEvent&&o.attachEvent("on"+t,r)},stopObservingElement:function(e){var t=B.getElement(e)._eventCacheID;this._removeElementObservers(Ta.observers[t])},_removeElementObservers:function(e){if(e)for(var t=e.length-1;t>=0;t--){var r=e[t],n=new Array(r.element,r.name,r.observer,r.useCapture);Ta.stopObserving.apply(this,n)}},stopObserving:function(e,t,r,n){n=n||!1;var o=B.getElement(e),i=o._eventCacheID;"keypress"===t&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||o.detachEvent)&&(t="keydown");var a=!1,s=Ta.observers[i];if(s)for(var u=0;!a&&u0&&(this.setCtxGlobalAlpha(e,"stroke",r),e.stroke()),this.setCtxGlobalAlpha(e,"reset",r);break;case"stroke":this.setCtxGlobalAlpha(e,"stroke",r),r.lineWidth>0&&e.stroke(),this.setCtxGlobalAlpha(e,"reset",r);break;default:this.setCtxGlobalAlpha(e,"fill",r),e.fill(),this.setCtxGlobalAlpha(e,"reset",r)}this.drawText(e,r,this.style),this.afterBrush(e)}},{key:"beforeBrush",value:function(e,t){var r=this.style;return this.brushTypeOnly&&(r.brushType=this.brushTypeOnly),t&&(r=this.getHighlightStyle(r,this.highlightStyle||{},this.brushTypeOnly)),"stroke"==this.brushTypeOnly&&(r.strokeColor=r.strokeColor||r.color),e.save(),this.doClip(e),this.setContext(e,r),this.setTransform(e),r}},{key:"afterBrush",value:function(e){e.restore()}},{key:"setContext",value:function(e,t){for(var r=[["color","fillStyle"],["strokeColor","strokeStyle"],["opacity","globalAlpha"],["lineCap","lineCap"],["lineJoin","lineJoin"],["miterLimit","miterLimit"],["lineWidth","lineWidth"],["shadowBlur","shadowBlur"],["shadowColor","shadowColor"],["shadowOffsetX","shadowOffsetX"],["shadowOffsetY","shadowOffsetY"]],n=0,o=r.length;n=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height&&ra.Util_area.isInside(this,this.style,e,t)}},{key:"drawText",value:function(e,r,n){if(void 0!==r.text&&!1!==r.text){var o=r.textColor||r.color||r.strokeColor;e.fillStyle=o;var i,a,s,u,l=10,c=r.textPosition||this.textPosition||"top",f=[];switch(f=this.refOriginalPosition&&2===this.refOriginalPosition.length?this.refOriginalPosition:[0,0],c){case"inside":case"top":case"bottom":case"left":case"right":if(this.getRect){var p=(n||r).__rect||this.getRect(n||r);switch(c){case"inside":s=p.x+p.width/2,u=p.y+p.height/2,i="center",a="middle","stroke"!=r.brushType&&o==r.color&&(e.fillStyle="#fff");break;case"left":s=p.x-l,u=p.y+p.height/2,i="end",a="middle";break;case"right":s=p.x+p.width+l,u=p.y+p.height/2,i="start",a="middle";break;case"top":s=p.x+p.width/2,u=p.y-l,i="center",a="bottom";break;case"bottom":s=p.x+p.width/2,u=p.y+p.height+l,i="center",a="top"}}break;case"start":case"end":var h=0,y=0,d=0,m=0;if(void 0!==r.pointList){var g=r.pointList;if(g.length<2)return;var v=g.length;switch(c){case"start":h=g[0][0]+f[0],y=g[1][0]+f[0],d=g[0][1]+f[1],m=g[1][1]+f[1];break;case"end":h=g[v-2][0]+f[0],y=g[v-1][0]+f[0],d=g[v-2][1]+f[1],m=g[v-1][1]+f[1]}}else h=r.xStart+f[0]||0,y=r.xEnd+f[0]||0,d=r.yStart+f[1]||0,m=r.yEnd+f[1]||0;switch(c){case"start":i=h0&&e>this._zlevelList[0]){for(o=0;oe);o++);n=this._layers[this._zlevelList[o]]}this._zlevelList.splice(o+1,0,e),t=new ys(B.createUniqueID("_levelLayer_"+e),this);var i=n?n.dom:this._bgDom;i.nextSibling?i.parentNode.insertBefore(t.dom,i.nextSibling):i.parentNode.appendChild(t.dom),t.initContext(),this._layers[e]=t,this._layerConfig[e]&&(new ei).merge(t,this._layerConfig[e],!0),t.updateTransform()}return t}},{key:"getLayers",value:function(){return this._layers}},{key:"_updateLayerStatus",value:function(e){var t=this._layers,r={};for(var n in t)"hover"!==n&&(r[n]=t[n].elCount,t[n].elCount=0);for(var o=0;o0?1.1:1/1.1,r=this.painter.getLayers(),n=!1;for(var o in r)if("hover"!==o){var i=r[o],a=i.position;if(i.zoomable){i.__zoom=i.__zoom||1;var s=i.__zoom;s*=t,t=(s=Math.max(Math.min(i.maxZoom,s),i.minZoom))/i.__zoom,i.__zoom=s,a[0]-=(this._mouseX-a[0])*(t-1),a[1]-=(this._mouseY-a[1])*(t-1),i.scale[0]*=t,i.scale[1]*=t,i.dirty=!0,n=!0}}n&&this.painter.refresh(),this._dispatchAgency(this._lastHover,Qi.EVENT.MOUSEWHEEL,e),this._mousemoveHandler(e)},mousemove:function(e){this._clickThreshold++,e=this._zrenderEventFixed(e),this._lastX=this._mouseX,this._lastY=this._mouseY,this._mouseX=ra.Util_event.getX(e),this._mouseY=ra.Util_event.getY(e);var t=this._mouseX-this._lastX,r=this._mouseY-this._lastY;this._processDragStart(e),this._hasfound=0,this._event=e,this._iterateAndFindHover(),this._hasfound||((!this._draggingTarget||this._lastHover&&this._lastHover!=this._draggingTarget)&&(this._processOutShape(e),this._processDragLeave(e)),this._lastHover=null,this.storage.delHover(),this.painter.clearHover());var n="";if(this._draggingTarget)this.storage.drift(this._draggingTarget.id,t,r),this._draggingTarget.modSelf(),this.storage.addHover(this._draggingTarget);else if(this._isMouseDown){var o=this.painter.getLayers(),i=!1;for(var a in o)if("hover"!==a){var s=o[a];s.panable&&(n="move",s.position[0]+=t,s.position[1]+=r,i=!0,s.dirty=!0)}i&&this.painter.refresh()}this._draggingTarget||this._hasfound&&this._lastHover.draggable?n="move":this._hasfound&&this._lastHover.clickable&&(n="pointer"),this.root.style.cursor=n,this._dispatchAgency(this._lastHover,Qi.EVENT.MOUSEMOVE,e),(this._draggingTarget||this._hasfound||this.storage.hasHoverShape())&&this.painter.refreshHover()},mouseout:function(e){var t=(e=this._zrenderEventFixed(e)).toElement||e.relatedTarget;if(t!=this.root)for(;t&&9!=t.nodeType;){if(t==this.root)return void this._mousemoveHandler(e);t=t.parentNode}e.zrenderX=this._lastX,e.zrenderY=this._lastY,this.root.style.cursor="",this._isMouseDown=0,this._processOutShape(e),this._processDrop(e),this._processDragEnd(e),this.painter.refreshHover(),this.dispatch(Qi.EVENT.GLOBALOUT,e)},mousedown:function(e){if(this._clickThreshold=0,2==this._lastDownButton)return this._lastDownButton=e.button,void(this._mouseDownTarget=null);this._lastMouseDownMoment=new Date,e=this._zrenderEventFixed(e),this._isMouseDown=1,this._mouseDownTarget=this._lastHover,this._dispatchAgency(this._lastHover,Qi.EVENT.MOUSEDOWN,e),this._lastDownButton=e.button},mouseup:function(e){e=this._zrenderEventFixed(e),this.root.style.cursor="",this._isMouseDown=0,this._mouseDownTarget=null,this._dispatchAgency(this._lastHover,Qi.EVENT.MOUSEUP,e),this._processDrop(e),this._processDragEnd(e)},touchstart:function(e){e=this._zrenderEventFixed(e,!0),this._lastTouchMoment=new Date,this._mobildFindFixed(e),this._mousedownHandler(e)},touchmove:function(e){e=this._zrenderEventFixed(e,!0),this._mousemoveHandler(e),this._isDragging&&ra.Util_event.stop(e)},touchend:function(e){e=this._zrenderEventFixed(e,!0),this._mouseupHandler(e);var t=new Date;t-this._lastTouchMoment=0;o--){var i=r[o];if(void 0!==i.zlevel&&(e=this.painter.getLayer(i.zlevel,e),n[0]=this._mouseX,n[1]=this._mouseY,e.needTransform&&(ra.Util_matrix.invert(t,e.transform),ra.Util_vector.applyTransform(n,n,t))),this._findHover(i,n[0],n[1]))break}}},{key:"_mobildFindFixed",value:function(e){var t=[{x:10},{x:-20},{x:10,y:10},{y:-20}];this._lastHover=null,this._mouseX=e.zrenderX,this._mouseY=e.zrenderY,this._event=e,this._iterateAndFindHover();for(var r=0;!this._lastHover&&r=0&&this._clips.splice(t,1)}},{key:"_update",value:function(){for(var e=(new Date).getTime(),t=e-this._time,r=this._clips,n=r.length,o=[],i=[],a=0;a=0&&!(d[A]<=a);A--);A=Math.min(A,l-2)}else{for(A=O;Aa);A++);A=Math.min(A-1,l-2)}O=A,I=a;var s=d[A+1]-d[A];if(0!==s){var c,y;for(w=(a-d[A])/s,i?(C=m[A],S=m[0===A?A:A-1],E=m[A>l-2?l-1:A+1],_=m[A>l-3?l-1:A+2],f?Ds._catmullRomInterpolateArray(S,C,E,_,w,w*w,w*w*w,n(e,u),h):(c=p?Ds.rgba2String(x):Ds._catmullRomInterpolate(S,C,E,_,w,w*w,w*w*w),r(e,u,c))):f?Ds._interpolateArray(m[A],m[A+1],w,n(e,u),h):(p?(Ds._interpolateArray(m[A],m[A+1],w,x,1),y=Ds.rgba2String(x)):y=Ds._interpolateNumber(m[A],m[A+1],w),r(e,u,y)),A=0;A=0;t--)e[t].destroy()}}},{key:"setVisibility",value:function(e){e!==this.visibility&&(this.visibility=e,this.display(e),this.redrawThematicFeatures(this.map.getBounds()))}},{key:"display",value:function(e){this.div.style.display=e?"block":"none"}},{key:"setOpacity",value:function(e){if(e!==this.opacity){this.opacity=e;var t=this.div;B.modifyDOMElement(t,null,null,null,null,null,null,e),null!==this.map&&o().Evented.prototype.fire("changelayer",{layer:this,property:"opacity"})}}},{key:"addFeatures",value:function(e){}},{key:"removeFeatures",value:function(e){var t=this;if(e){if(e===t.features)return t.removeAllFeatures();B.isArray(e)||"function"==typeof e||(e=[e]);for(var r=[],n=0;n=r.left&&a.x<=r.right&&a.y>=r.top&&a.y<=r.bottom){n=!0;break}}return n}},{key:"clearCache",value:function(){this.cache={},this.charts=[]}},{key:"removeFeatures",value:function(e){this.clearCache(),au(t,"removeFeatures",this,3)([e])}},{key:"removeAllFeatures",value:function(){this.clearCache(),au(t,"removeAllFeatures",this,3)([])}},{key:"redraw",value:function(){return this.clearCache(),!!this.renderer&&(this.redrawThematicFeatures(this.map.getBounds()),!0)}},{key:"clear",value:function(){this.renderer&&(this.renderer.clearAll(),this.renderer.refresh()),this.removeAllFeatures(),this.clearCache()}}])&&nu(r.prototype,n),i&&nu(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,i}();function fu(e){"@babel/helpers - typeof";return(fu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pu(e,t){for(var r=0;rn&&(n=u[0]),u[1]o&&(o=u[1]))}return e.__rect={x:t,y:r,width:n-t,height:o-r},e.__rect}},{key:"getRectNoRotation",value:function(e){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var t,r=this.refOriginalPosition,n=ra.Util_area.getTextHeight("ZH",e.textFont),o=ra.Util_area.getTextWidth(e.text,e.textFont),i=ra.Util_area.getTextHeight(e.text,e.textFont),a=e.x+r[0];"end"==e.textAlign||"right"==e.textAlign?a-=o:"center"==e.textAlign&&(a-=o/2),t="top"==e.textBaseline?e.y+r[1]:"bottom"==e.textBaseline?e.y+r[1]-i:e.y+r[1]-i/2;var s,u=!1;if(e.maxWidth){var l=parseInt(e.maxWidth);l-1&&(o+=!0===u?n/3*(o/s):n/3));return{x:a,y:t,width:o,height:i}}},{key:"getTextBackground",value:function(e,t){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var r=this.refOriginalPosition;if(!t&&e.__textBackground)return e.__textBackground;var n=this.getRectNoRotation(e),o=e.x+r[0],i=e.y+r[1],a=[];if(e.textRotation&&0!==e.textRotation){var s=e.textRotation,u=this.getRotatedLocation(n.x,n.y,o,i,s),l=this.getRotatedLocation(n.x+n.width,n.y,o,i,s),c=this.getRotatedLocation(n.x+n.width,n.y+n.height,o,i,s),f=this.getRotatedLocation(n.x,n.y+n.height,o,i,s);a.push(u),a.push(l),a.push(c),a.push(f)}else{var p=[n.x,n.y],h=[n.x+n.width,n.y],y=[n.x+n.width,n.y+n.height],d=[n.x,n.y+n.height];a.push(p),a.push(h),a.push(y),a.push(d)}return e.__textBackground=a,e.__textBackground}},{key:"getRotatedLocation",value:function(e,t,r,n,o){var i,a,s=new Array;return t=-t,n=-n,o=-o,i=(e-r)*Math.cos(o/180*Math.PI)-(t-n)*Math.sin(o/180*Math.PI)+r,a=(e-r)*Math.sin(o/180*Math.PI)+(t-n)*Math.cos(o/180*Math.PI)+n,s[0]=i,s[1]=-a,s}}])&&Bl(r.prototype,n),o&&Bl(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Gl(e){"@babel/helpers - typeof";return(Gl="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ul(e,t){for(var r=0;r0&&("stroke"==r.brushType||"both"==r.brushType)&&(n||(e.beginPath(),this.buildPath(e,r)),this.setCtxGlobalAlpha(e,"stroke",r),e.stroke(),this.setCtxGlobalAlpha(e,"reset",r)),this.drawText(e,r,this.style);var o=B.cloneObject(r);if(o.pointList&&this.holePolygonPointLists&&this.holePolygonPointLists.length>0)for(var i=this.holePolygonPointLists,a=i.length,s=0;s0&&("stroke"==o.brushType||"both"==o.brushType)?(n||(e.beginPath(),this.buildPath(e,o)),e.globalCompositeOperation="source-over",this.setCtxGlobalAlpha(e,"stroke",o),e.stroke(),this.setCtxGlobalAlpha(e,"reset",o)):e.globalCompositeOperation="source-over"}e.restore()}},{key:"buildPath",value:function(e,t){t.showShadow&&(e.shadowBlur=t.shadowBlur,e.shadowColor=t.shadowColor,e.shadowOffsetX=t.shadowOffsetX,e.shadowOffsetY=t.shadowOffsetY),this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var r=this.refOriginalPosition,n=t.pointList;if(!(n.length<2))if(t.smooth&&"spline"!==t.smooth){var o,i,a,s=ra.SUtil_smoothBezier(n,t.smooth,!0,t.smoothConstraint,r);e.moveTo(n[0][0]+r[0],n[0][1]+r[1]);for(var u=n.length,l=0;li&&(i=u[l][0]+r[0]),u[l][1]+r[1]s&&(s=u[l][1]+r[1]);return n="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(o-n/2),y:Math.round(a-n/2),width:i-o+n,height:s-a+n},e.__rect}}])&&Wl(r.prototype,n),o&&Wl(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function nc(e){"@babel/helpers - typeof";return(nc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function oc(e,t){for(var r=0;rc&&(r*=c/(a=r+n),n*=c/a),o+i>c&&(o*=c/(a=o+i),i*=c/a),n+o>f&&(n*=f/(a=n+o),o*=f/a),r+i>f&&(r*=f/(a=r+i),i*=f/a),e.moveTo(u+r,l),e.lineTo(u+c-n,l),0!==n&&e.quadraticCurveTo(u+c,l,u+c,l+n),e.lineTo(u+c,l+f-o),0!==o&&e.quadraticCurveTo(u+c,l+f,u+c-o,l+f),e.lineTo(u+i,l+f),0!==i&&e.quadraticCurveTo(u,l+f,u,l+f-i),e.lineTo(u,l+r),0!==r&&e.quadraticCurveTo(u,l,u+r,l)}},{key:"buildPath",value:function(e,t){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var r=this.refOriginalPosition;t.radius?this._buildRadiusPath(e,t):(e.moveTo(t.x+r[0],t.y+r[1]),e.lineTo(t.x+r[0]+t.width,t.y+r[1]),e.lineTo(t.x+r[0]+t.width,t.y+r[1]+t.height),e.lineTo(t.x+r[0],t.y+r[1]+t.height),e.lineTo(t.x+r[0],t.y+r[1])),e.closePath()}},{key:"getRect",value:function(e){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var t,r=this.refOriginalPosition;return e.__rect?e.__rect:(t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x+r[0]-t/2),y:Math.round(e.y+r[1]-t/2),width:e.width+t,height:e.height+t},e.__rect)}}])&&pc(r.prototype,n),o&&pc(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function bc(e){"@babel/helpers - typeof";return(bc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ac(e,t){for(var r=0;r1?ra.Util_computeBoundingBox.arc(a,s,u,c,f,!p,r,o):(r[0]=o[0]=a,r[1]=o[1]=s),ra.Util_computeBoundingBox.arc(a,s,l,c,f,!p,n,i),ra.Util_vector.min(r,r,n),ra.Util_vector.max(o,o,i),e.__rect={x:r[0],y:r[1],width:o[0]-r[0],height:o[1]-r[1]},e.__rect}}])&&Ac(r.prototype,n),o&&Ac(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Ic(e){"@babel/helpers - typeof";return(Ic="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function xc(e,t){for(var r=0;r=15){var p=parseInt(i.axis3DParameter),h=[o[0]-p,o[1]+p];i.axisUseArrow?(c.push([h[0]+1.5,h[1]-7.5]),c.push([h[0]-1,h[1]+1]),c.push([h[0]+7.5,h[1]-1.5]),f.push([h[0],h[1]])):f.push([h[0],h[1]]),f.push([o[0],o[1]])}f.push([o[2]+5,o[1]])}else{var y=Math.abs(o[1]-o[3])/l,d=o[3];f.push([o[0],d-5]);for(var m=0;m=15){var v=parseInt(i.axis3DParameter),b=[o[0]-v,o[1]+v];i.axisUseArrow?(c.push([b[0]+1.5,b[1]-7.5]),c.push([b[0]-1,b[1]+1]),c.push([b[0]+7.5,b[1]-1.5]),f.push([b[0],b[1]])):f.push([b[0],b[1]]),f.push([o[0],o[1]])}f.push([o[2]+5,o[1]])}if(i.axisUseArrow){var A=[[o[2]+5,o[1]+4],[o[2]+13,o[1]],[o[2]+5,o[1]-4]],w=[[o[0]-4,o[3]-5],[o[0],o[3]-13],[o[0]+4,o[3]-5]],S=new Du(A);S.style={fillColor:"#008acd"},B.copyAttributesWithClip(S.style,i.axisStyle),s.push(e.createShape(S));var C=new Du(w);if(C.style={fillColor:"#008acd"},B.copyAttributesWithClip(C.style,i.axisStyle),s.push(e.createShape(C)),i.axis3DParameter&&!isNaN(i.axis3DParameter)&&i.axis3DParameter>=15){var E=new Du(c);E.style={fillColor:"#008acd"},B.copyAttributesWithClip(E.style,i.axisStyle),s.push(e.createShape(E))}}var _=new ku(f);_.style={strokeLinecap:"butt",strokeLineJoin:"round",strokeColor:"#008acd",strokeWidth:1},i.axisStyle&&B.copyAttributesWithClip(_.style,i.axisStyle),_.clickable=!1,_.hoverable=!1;var O=[e.createShape(_)],I=[];if(i.axisYLabels&&i.axisYLabels.length&&i.axisYLabels.length>0){var x=i.axisYLabels,P=x.length,k=[0,0];if(i.axisYLabelsOffset&&i.axisYLabelsOffset.length&&(k=i.axisYLabelsOffset),1==P){var T=new ul(o[0]-5+k[0],o[3]+k[1],x[0]);T.style={labelAlign:"right"},i.axisYLabelsStyle&&B.copyAttributesWithClip(T.style,i.axisYLabelsStyle),T.clickable=!1,T.hoverable=!1,I.push(e.createShape(T))}else for(var j=o[3],M=Math.abs(o[1]-o[3])/(P-1),N=0;N0){var D=i.axisXLabels,F=D.length,Q=[0,0];if(i.axisXLabelsOffset&&i.axisXLabelsOffset.length&&(Q=i.axisXLabelsOffset),n&&n.xPositions&&n.xPositions.length&&n.xPositions.length==F)for(var G=n.xPositions,U=0;U=0&&r[o]&&B.copyAttributesWithClip(a,r[o]),n&&n.length&&void 0!==i)for(var s=n,u=s.length,l=parseFloat(i),c=0;c0){var l=i[i.length-1];if(Math.abs(l[0]-n[0])<=a&&Math.abs(l[1]-n[1])<=a)continue}i.push(n)}if(i.length<2)return null;var c=new Object;(c=B.copyAttributesWithClip(c,this.style,["pointList"])).pointList=i;var f=new cc({style:c,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(f.highlightStyle=this.highlightStyle),f.refOriginalPosition=this.location,f.refDataID=this.data.id,f.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&B.copyAttributesWithClip(f,this.shapeOptions),this.shapes.push(f)}},{key:"multiPointToTF",value:function(e){for(var t=e.components,r=[],n=[],o=this.location,i=[],a=this.nodesClipPixel,s=0;s0){var l=i[i.length-1];if(Math.abs(l[0]-n[0])<=a&&Math.abs(l[1]-n[1])<=a)continue}i.push(n);var c=new Object;c.r=6,(c=B.copyAttributesWithClip(c,this.style)).x=n[0],c.y=n[1];var f=new jl({style:c,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(f.highlightStyle=this.highlightStyle),f.refOriginalPosition=o,f.refDataID=this.data.id,f.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&B.copyAttributesWithClip(f,this.shapeOptions),this.shapes.push(f)}}},{key:"multiLineStringToTF",value:function(e){for(var t=e.components,r=0;r0){var p=i[i.length-1];if(Math.abs(p[0]-n[0])<=u&&Math.abs(p[1]-n[1])<=u)continue}i.push(n)}}else{a=[];for(var h=0;h0){var y=a[a.length-1];if(Math.abs(y[0]-n[0])<=u&&Math.abs(y[1]-n[1])<=u)continue}a.push(n)}}a.length<2||s.push(a)}if(!(i.length<2)){var d={};(d=B.copyAttributesWithClip(d,this.style,["pointList"])).pointList=i;var m=new rc({style:d,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(m.highlightStyle=this.highlightStyle),m.refOriginalPosition=this.location,m.refDataID=this.data.id,m.isHoverByRefDataID=this.isMultiHover,s.length>0&&(m.holePolygonPointLists=s),this.shapeOptions&&B.copyAttributesWithClip(m,this.shapeOptions),this.shapes.push(m)}}},{key:"rectangleToTF",value:function(e){var t=this.location,r=new Ke(e.x,e.y),n=this.layer.map.getResolution(),o=this.getLocalXY(r),i=new Object;i.r=6,(i=B.copyAttributesWithClip(i,this.style)).x=o[0]-t[0],i.y=o[1]-t[1]-2*e.width/n,i.width=e.width/n,i.height=e.height/n;var a=new vc({style:i,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(a.highlightStyle=this.highlightStyle),a.refOriginalPosition=t,a.refDataID=this.data.id,a.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&B.copyAttributesWithClip(a,this.shapeOptions),this.shapes.push(a)}},{key:"geoTextToTF",value:function(e){var t=this.location,r=this.getLocalXY(e),n=new Object;n.r=6,(n=B.copyAttributesWithClip(n,this.style,["x","y","text"])).x=r[0]-t[0],n.y=r[1]-t[1],n.text=e.text;var o=new Ql({style:n,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(o.highlightStyle=this.highlightStyle),o.refOriginalPosition=t,o.refDataID=this.data.id,o.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&B.copyAttributesWithClip(o,this.shapeOptions),this.shapes.push(o)}},{key:"updateAndAddShapes",value:function(){var e=this.getLocalXY(this.lonlat);this.location=e;for(var t=this.layer.renderer,r=0,n=this.shapes.length;rs){var p=i[0];i.splice(0,1),delete o[p]}}}if(this.renderer.render(),r&&this.isHoverAble&&this.isMultiHover){var h=this.getShapesByFeatureID(r);this.renderer.updateHoverShapes(h)}}},{key:"createThematicFeature",value:function(e){var t=B.copyAttributesWithClip(this.style);e.style&&!0===this.isAllowFeatureStyle&&(t=B.copyAttributesWithClip(e.style));var r={};r.nodesClipPixel=this.nodesClipPixel,r.isHoverAble=this.isHoverAble,r.isMultiHover=this.isMultiHover,r.isClickAble=this.isClickAble,r.highlightStyle=kc.transformStyle(this.highlightStyle);for(var n=new Fc(e,this,kc.transformStyle(t),r),o=0;o0&&0==this.labelFeatures.length)for(var r=this.setLabelsStyle(this.features),n=0,o=r.length;n=0&&y.x<=f.x&&y.y>=0&&y.y<=f.y){if(r.style.minZoomLevel>-1&&l<=r.style.minZoomLevel)continue;if(r.style.maxZoomLevel>-1&&l>r.style.maxZoomLevel)continue;var d=null;r.isStyleChange?(r.isStyleChange=null,d=this.calculateLabelBounds(r,y)):d=r.geometry.bsInfo.w&&r.geometry.bsInfo.h?this.calculateLabelBounds2(r,y):this.calculateLabelBounds(r,y);var m=new Xe(0,f.y,f.x,0),g=d.length;if(this.isAvoid){var v=this.getAvoidInfo(m,d);if(v){if("left"===v.aspectW){r.style.labelXOffset+=v.offsetX;for(var b=0;b=o[u].start&&a=o[u].start&&as&&(s=r,u="top")}if(t.y>e.bottom){var n=Math.abs(t.y-e.bottom);n>s&&(s=n,u="bottom")}if(t.xa&&(a=o,l="left")}if(t.x>e.right){var i=Math.abs(t.x-e.right);i>a&&(a=i,l="right")}}}}},{key:"isQuadrilateralOverLap",value:function(e,t){var r=e.length,n=t.length;if(5!==r||5!==n)return null;for(var o=!1,i=0;ie-n&&r.time-1?t=1:["degrees","deg","degree","dd"].indexOf(e.toLocaleLowerCase())>-1?t=2*Math.PI*6378137/360:e===mn.KILOMETER?t=1e3:e===mn.INCH?t=.025399999918:e===mn.FOOT&&(t=.3048),t},mf={SquareFoot:10.763910417,SquareKiloMeter:1e-6,SquareMeter:1,SquareMile:3.86e-7,SquareYard:1.195990046};function gf(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[-180,180],o=n[1],i=n[0],a=o-i;return e===o&&t?e:e===i&&r?e:0===((e-i)%a+a)%a&&t?o:((e-i)%a+a)%a+i}function vf(e){var t=parseInt(e),r=parseInt(60*(e-t)),n=parseInt(60*(60*(e-t)-r));return r=0===parseInt(r/10)?"0".concat(r):r,n=0===parseInt(n/10)?"0".concat(n):n,"".concat(t,"°").concat(r,"'").concat(n)}function bf(e,t,r){return 1/(e*t*(1/.0254)*df(r))}function Af(e){"@babel/helpers - typeof";return(Af="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wf(e,t){for(var r=0;rthis.mapVOptions.maxZoom)}},{key:"_getResolution",value:function(){var e=this.map.getBounds(),t=(e.getEast()-e.getWest())/this.map.getCanvas().getBoundingClientRect().width;return df("DEGREE")*t}},{key:"_getCenterPixel",value:function(){return this.map.project(new(o().LngLat)(0,0))}},{key:"addData",value:function(e,t){this.renderer.addData(e,t)}},{key:"update",value:function(e){this.renderer.update(e)}},{key:"getData",value:function(){return this.renderer&&(this.dataSet=this.renderer.getData()),this.dataSet}},{key:"removeData",value:function(e){this.renderer&&this.renderer.removeData(e)}},{key:"clearData",value:function(){this.renderer.clearData()}},{key:"show",value:function(){return this.renderer&&this.renderer.show(),this}},{key:"hide",value:function(){return this.renderer&&this.renderer.hide(),this}},{key:"getTopLeft",value:function(){var e,t=this.map;t&&(e=t.getBounds().getNorthWest());return e}},{key:"bindEvent",value:function(){var e=this.map;this.mapVOptions.methods&&(this.mapVOptions.methods.click&&e.on("click",this.renderer.clickEvent),this.mapVOptions.methods.mousemove&&e.on("mousemove",this.renderer.mousemoveEvent))}},{key:"unbindEvent",value:function(){var e=this.map;this.mapvOptions.methods&&(this.mapvOptions.methods.click&&e.off("click",this.clickEvent),this.mapvOptions.methods.mousemove&&e.off("mousemove",this.mousemoveEvent))}},{key:"setVisibility",value:function(e){e!==this.visibility&&(this.visibility=e,e?this.show():this.hide())}},{key:"setZIndex",value:function(e){this.renderer.setZIndex(e)}}])&&wf(e.prototype,t),r&&wf(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Ef(e){"@babel/helpers - typeof";return(Ef="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _f(e,t){for(var r=0;r",a="
"+(t._createLegendElement.call(t)||"")+"
";this._container.innerHTML=i+a}return t._appendLegendCSSStyle(),this._container},r.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},new r}},{key:"_createLegendElement",value:function(){}},{key:"_addLayer",value:function(){var e=this.getLayerStyleOptions(),t=this.id?this.id:"theme3DLayer",r=this.sourceId=t+"Source";this.map.getSource(r)?(this.map.removeSource(r),this.map.addSource(r,{type:"geojson",data:this.data})):this.map.addSource(r,{type:"geojson",data:this.data}),this.map.addLayer({id:t,type:"fill-extrusion",source:r,paint:e}),this.map.moveLayer(t)}},{key:"_addHighLightLayer",value:function(){if(this.map){var e=this.map;e.addLayer({id:this._highlightLayerId,type:"fill-extrusion",source:this.sourceId,paint:this.getHighlightStyleOptions(),filter:["in","$id",""]}),this._selectFeatureId=null,e.on("mousemove",this.id,this._onMouseMove.bind(this)),e.on("mouseout",this.id,this._onMouseMove.bind(this))}}},{key:"_onMouseMove",value:function(e){var t=this,r=this.map,n=r.queryRenderedFeatures(e.point,{layers:[t.id]});if(t.highlight&&t.highlight.callback&&t.highlight.callback(n,e),!n||n.length<1)return t._clearHighlight.call(t),void(t._selectFeatureId=null);var o=n[0].id;t._selectFeatureId!==o&&(t._selectFeatureId=o,r.setFilter(t._highlightLayerId,["==","$id",t._selectFeatureId]))}},{key:"_clearHighlight",value:function(){this.map&&this.map.setFilter(this._highlightLayerId,["in","$id",""])}},{key:"_appendLegendCSSStyle",value:function(){var e=document.createElement("style");e.type="text/css";e.innerHTML="\n .legend {\n display: inline-block;\n border-radius: 2px;\n -moz-border-radius: 2px;\n -webkit-border-radius: 2px;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.8);\n background-color: rgb(255, 255, 255);\n }\n .legend-light {\n color: rgba(0, 0, 0, 0.8);\n background-color: rgb(255, 255, 255);\n box-shadow: 0px 0px 6px #bbbbbb;\n -moz-box-shadow: 0px 6px 10px #bbbbbb;\n -webkit-box-shadow: 0px 0px 6px #bbbbbb;\n }\n .legend-dark {\n color: rgba(255, 255, 255, 0.8);\n background-color: rgb(64, 64, 64);\n }\n .legend .legend-title {\n min-height: 14px;\n max-width: 500px;\n padding:6px 10px;\n }\n .legend-light .legend-title {\n color: rgba(0, 0, 0, 0.8);\n }\n .legend-dark .legend-title {\n color: rgba(255, 255, 255, 0.8);\n }\n .legend-content{\n padding:6px 10px;\n }\n "+this._legendCSSStyle(),document.getElementsByTagName("head")[0].appendChild(e)}},{key:"_legendCSSStyle",value:function(){return"\n .legend ul {\n padding: 0;\n margin: 0 16px;\n height: 100%;\n display: block;\n list-style: none;\n }\n\n .legend li {\n vertical-align: middle;\n }\n\n .legend li span:first-child {\n vertical-align: middle;\n }\n\n .legend li span:last-child {\n line-height: 28px;\n max-width: 200px;\n vertical-align: middle;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n -ms-text-overflow: ellipsis;\n }\n\n .legend-vertical li {\n height: 28px;\n }\n\n .legend-vertical li span:first-child {\n display: inline-block;\n width: 60px;\n height: 100%;\n }\n\n .legend-vertical li span:last-child {\n display: inline-block;\n margin-left: 16px;\n height: 100%;\n }\n\n .legend-horizontal li {\n height: 56px;\n float: left;\n }\n\n .legend-horizontal li span:first-child {\n display: block;\n width: 100%;\n height: 50%;\n }\n\n .legend-horizontal li span:last-child {\n display: block;\n vertical-align: middle;\n width: 60px;\n height: 50%;\n text-align: center;\n }\n "}},{key:"_extend",value:function(e){for(var t=0;t";for(e=0;e "+o;else o=o+"-"+this._getWrapperText(this.colorStops[e+1][0]);r+="
  • "+o+"
  • "}return r+=""}},{key:"_getWrapperText",value:function(e){var t=e*(null==this.legendRatio?1:parseFloat(this.legendRatio)),r=parseFloat(t);return r%1e6<=1e6?r.toString():parseInt(r/1e3)+"k"}}])&&Pf(r.prototype,n),o&&Pf(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Nf(e){"@babel/helpers - typeof";return(Nf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rf(e,t){for(var r=0;r0&&r.attributes){var n=this.themeField,o=r.attributes,i=this.styleGroups,a=!1,s=null;for(var u in o)if(n===u){a=!0,s=o[u];break}if(a)for(var l=0,c=i.length;l=i[l].start&&s"+n+""}return e+=""}}])&&Wf(r.prototype,n),o&&Wf(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function rp(e){"@babel/helpers - typeof";return(rp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function np(e,t){for(var r=0;r0&&r.attributes){var n=this.themeField,o=r.attributes,i=this.styleGroups,a=!1,s=null;for(var u in o)if(n===u){a=!0,s=o[u];break}if(a)for(var l=0,c=i.length;l0&&void 0!==arguments[0]?arguments[0]:null;if(!e||0===e.length||e===this.graphics)return this.graphics.length=0,this.layer.props.data&&(this.layer.props.data.length=0),void this.update();B.isArray(e)||(e=[e]);for(var t=e.length-1;t>=0;t--){var r=e[t],n=B.indexOf(this.graphics,r);-1!==n&&this.graphics.splice(n,1)}this.update()}},{key:"update",value:function(){if("Awaiting state"!==this.layer.lifecycle){this.layer.setChangeFlags({dataChanged:!0,propsChanged:!0,viewportChanged:!0,updateTriggersChanged:!0});var e=this.getState(),t=parseInt(this.canvas.style.width),r=parseInt(this.canvas.style.height);e.width=t,e.height=r,this.layer.setState(e)}}},{key:"clear",value:function(){this.removeGraphics(),this.deckGL.finalize()}},{key:"remove",value:function(){this.mapOptions.targetElement.removeChild(this.canvas)}},{key:"destroy",value:function(){this.remove(),this.clear()}},{key:"moveTo",value:function(e,t){var r=document.getElementById(this.id);if(t=void 0===t||t){var n=document.getElementById(e);r&&n&&n.parentNode.insertBefore(r,n)}else{var o=document.getElementById(e);if(r){if(o.nextSibling)return void o.parentNode.insertBefore(r,o.nextSibling);o.parentNode.appendChild(r)}}}},{key:"setVisibility",value:function(e){this.canvas&&e!==this.visibility&&(this.visibility=e,this.canvas.style.display=e?"block":"none")}},{key:"draw",value:function(){var e=this.getState(),t={};for(var r in e)t[r]=e[r];var n=parseInt(this.canvas.style.width),o=parseInt(this.canvas.style.height);t.width=n,t.height=o,t.layers=[this.layer],t.canvas=this.canvas,this.deckGL.setProps(t)}},{key:"_initContainer",value:function(){this.canvas=this._createCanvas(this.mapOptions.mapElement),this.mapOptions.targetElement.appendChild(this.canvas)}},{key:"_createCanvas",value:function(e){var t=document.createElement("canvas");return this.id&&(t.id=this.id),t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.cursor="",t.width=parseInt(e.style.width),t.height=parseInt(e.style.height),t.style.width=e.style.width,t.style.height=e.style.height,t}},{key:"getState",value:function(){var e=this.functions.getMapState();return function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:null;this.renderer&&this.renderer.removeGraphics(e)}},{key:"clear",value:function(){this.renderer&&this.renderer.clear()}},{key:"remove",value:function(){this.renderer&&this.renderer.remove()}},{key:"moveTo",value:function(e,t){this.renderer.moveTo(e,t)}},{key:"setVisibility",value:function(e){this.renderer.setVisibility(e)}},{key:"getState",value:function(){return this.renderer.getState()}},{key:"getMapState",value:function(){var e={},t=this.map.getCenter(),r={longitude:t.lng,latitude:t.lat,zoom:this.map.getZoom(),maxZoom:this.map.getMaxZoom(),pitch:this.map.getPitch(),bearing:this.map.getBearing()};for(var n in r)e[n]=r[n];return this.map.getCRS&&this.map.getCRS()!==o().CRS.EPSG3857&&(e.coordinateSystem=this.coordinateSystem,e.isGeographicCoordinateSystem=this.isGeographicCoordinateSystem),e}}])&&gp(e.prototype,t),r&&gp(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),Ap=function(){try{return THREE}catch(e){return{}}}();function wp(e,t,r){if(e===r||e===t)return e;var n=r-t;return((e-t)%n+n)%n+t}function Sp(e){return e*Math.PI/180}var Cp={matrix:[1,-1,0,0],projection:{R:6378137,minZoom:0,maxZoom:22,nativeMaxZoom:19,RAD:Math.PI/180,METERS_PER_DEGREE:6378137*Math.PI/180,MAX_LATITUDE:85.0511287798,project:function(e){var t=this.RAD,r=this.METERS_PER_DEGREE,n=this.MAX_LATITUDE,o=e instanceof Array?{lng:e[0],lat:e[1]}:{lng:e.lng,lat:e.lat},i=o.lng,a=Math.max(Math.min(n,o.lat),-n);return{x:i*r,y:(0===a?0:Math.log(Math.tan((90+a)*t/2))/t)*r}},unproject:function(e){var t,r=e.x,n=e.y,o=this.RAD,i=this.METERS_PER_DEGREE;return 0===n?t=0:(t=n/i,t=(2*Math.atan(Math.exp(t*o))-Math.PI/2)/o),{lng:wp(r/i,-180,180),lat:wp(t,-this.MAX_LATITUDE,this.MAX_LATITUDE)}},locate:function(e,t,r){if(!e)return null;if(t=t||0,r=r||0,!t&&!r)return e;var n=e.lng;if(0!==t){var o=Math.abs(t),i=Sp(e.lng);n=wp(180*(i+=2*Math.sqrt(Math.pow(Math.sin(o/(2*this.R)),2)/Math.pow(Math.cos(i),2))*(o>0?1:-1))/Math.PI,-180,180)}var a=e.lat;if(0!==r){var s=Math.abs(r),u=Sp(e.lat);a=wp(180*(u+=2*Math.sin(s/(2*this.R))*(s>0?1:-1))/Math.PI,-90,90)}return{lng:n,lat:a}},getResolution:function(e){if(!this.resolutions){for(var t=[],r=12756274*Math.PI,n=0;n<=this.maxZoom;n++)t[n]=r/(256*Math.pow(2,n));this.resolutions=t}var o=0|e,i=this.resolutions.length;o=o<0?0:o>i-1?i-1:o;var a=this.resolutions[o];return(0|e)!==e&&o!==i-1?a+(this.resolutions[o+1]-a)*(e-o):a}},project:function(e){return this.projection.project(e)},unproject:function(e){return this.projection.unproject(e)},lngLatToPoint:function(e,t){var r=this.project(e);return this.transform(r,this.projection.getResolution(t))},locate:function(e,t,r){return this.projection.locate(e,t,r)},transform:function(e,t){return{x:this.matrix[0]*(e.x-this.matrix[2])/t,y:this.matrix[1]*(e.y-this.matrix[3])/t}}};function Ep(e){"@babel/helpers - typeof";return(Ep="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _p(e,t){for(var r=0;r=0;t--)e.children[t]instanceof Ap.Mesh&&e.remove(e.children[t]);return this}},{key:"clearAll",value:function(e){var t=this.scene;if(!t)return this;for(var r=t.children.length-1;r>=0;r--)!e&&t.children[r]instanceof Ap.Camera||t.remove(t.children[r]);return this}},{key:"setPosition",value:function(e,t){if(!e||!t)return this;var r=this.lngLatToPosition(t);return e.position.set(r.x,r.y,r.z),this}},{key:"lngLatToPosition",value:function(e){var t=Cp.projection.nativeMaxZoom,r=Cp.lngLatToPoint(e,t);return new jp(r.x,r.y,-0)}},{key:"distanceToThreeVector3",value:function(e,t,r){var n=this.map,o=r||n.getCenter(),i=Cp.projection.nativeMaxZoom,a=Cp.locate(o,e,t),s=Cp.lngLatToPoint(o,i),u=Cp.lngLatToPoint(a,i),l=Math.abs(u.x-s.x)*Math.sign(e),c=Math.abs(u.y-s.y)*Math.sign(t);return new jp(l,c,0)}},{key:"removeDuplicatedCoordinates",value:function(e){function t(e,t){return e[0]===t[0]&&e[1]===t[1]}for(var r=[].concat(e),n=r.length-1;n>=1;n--)t(r[n],r[n-1])&&r.splice(n,1);return t(r[0],r[r.length-1])&&r.splice(r.length-1,1),r}},{key:"getCoordinatesCenter",value:function(e){for(var t=0,r=0,n=0,o=0,i=e.length;o0?this.convertFastToPixelPoints(e):this.canvasContext.clearRect(0,0,this.maxWidth,this.maxWidth)}},{key:"convertFastToPixelPoints",value:function(e){var t,r,n,o,i,a,s,u=[],l=e.getEast()-e.getWest(),c=e.getNorth()-e.getSouth(),f=this.mapElement;o=l/f.width>c/f.height?l/f.width:c/f.height,this.useRadius=this.useGeoUnit?parseInt(this.radius/o):this.radius;for(var p=0;p0&&this.maxWidth>0))return!1;var r=this.canvasContext;r.setTransform(1,0,0,1,0,0),this.canvasContext.clearRect(0,0,this.maxWidth,this.maxHeight),this.drawCircle(this.useRadius),this.createGradient();for(var n=0;ne.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:this.options;(e=e||{}).strokeStyle=Object.assign({},Oh,e.strokeStyle||{}),e.lngLabelStyle=Object.assign({},_h,e.lngLabelStyle||{}),e.latLabelStyle=Object.assign({},_h,e.latLabelStyle||{}),this.options=Object.assign({},Ih,e,{extent:this.getDefaultExtent(e.extent),wrapX:e.wrapX}),this.oldExtent=this.options.extent,this._calcInterval(),this.isRotate=!1,this.visible=this.options.visible,this.features=this._getGraticuleFeatures()}},{key:"_createCanvas",value:function(){if(!this.canvas){var e=this.mapElement;this.canvas=document.createElement("canvas"),this.canvas.id=this.canvasId,this.canvas.style.position="absolute",this.canvas.style.top="0px",this.canvas.style.left="0px";var t=("undefined"==typeof window?{}:window).devicePixelRatio||1;this.canvas.width=parseInt(e.style.width)*t,this.canvas.height=parseInt(e.style.height)*t,this.canvas.style.width=e.style.width,this.canvas.style.height=e.style.height,this.canvas.globalAlpha=this.options.opacity,this.targetElement.appendChild(this.canvas)}}},{key:"_drawCanvas",value:function(){this.canvas||this._createCanvas(),this.setVisibility(),this._reset()}},{key:"_resizeCallback",value:function(){this.targetElement&&this.targetElement.removeChild(this.canvas),this.canvas=null,this._drawCanvas()}},{key:"_reset",value:function(){this._updateRotate(),this._updateExtent(),this._calcInterval(),this._drawLabel()}},{key:"_updateRotate",value:function(){var e=this.getMapStateByKey("getBearing");this.isRotate=e>-180&&e<=-90||e>=90&&e<180}},{key:"_updateExtent",value:function(){if(this.options.wrapX&&!this.oldExtent){var e=this.getMapStateByKey("getBounds"),t=e._ne,r=e._sw;this.options.extent=[r.lng,r.lat,t.lng,t.lat]}}},{key:"_calcInterval",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.interval;"function"==typeof e?(e=e(this.map),this._currLngInterval=e,this._currLatInterval=e):(this._currLngInterval=e,this._currLatInterval=e)}},{key:"_formatLat",value:function(e){return this.options.latFormatTickLabel?this.options.latLabelFormatter(e):e<0?vf(-1*e)+"S":e>0?vf(e)+"N":""+vf(e)}},{key:"_formatLng",value:function(e){return this.options.lngLabelFormatter?this.options.lngLabelFormatter(e):(e=gf(e))>0&&e<=180?vf(e)+"E":e<0&&e>=-180?vf(-1*e)+"W":""+vf(e)}},{key:"_parsePxToInt",value:function(e){e.length>2&&"p"===e.charAt(e.length-2)&&(e=e.substr(0,e.length-2));try{return parseInt(e,10)}catch(e){console.log(e)}return 0}},{key:"_drawLabel",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.visible,r=this.canvas,n=r.getContext("2d");if(t&&this.options.showLabel){if(this.mapElement){this._currLngInterval&&this._currLatInterval||this._calcInterval(),n.clearRect(0,0,r.width,r.height);var o=this.options,i=o.lngLabelStyle,a=o.latLabelStyle,s=this._getGridiculePoints(),u=s.lngPoints,l=s.latPonits;u.forEach(function(t){e._drawLng(n,t[0],t[1],t[2],i)}),l.forEach(function(t){e._drawLat(n,t[0],t[1],t[2],a)})}}else n.clearRect(0,0,r.width,r.height)}},{key:"_drawLat",value:function(e,t,r,n,o){e=this._setLabelStyle(e,o);var i=this.canvas.width,a=12;try{var s=e.font.split(" ")[0];a=this._parsePxToInt(s)}catch(e){console.log(e)}if(!n){var u=t;t=r,r=this.getMapStateByKey("project",[u,t])}var l=this._formatLat(t),c=e.measureText(l).width;e.strokeText(l,(n?i:r.x)-c,(n?r:r.y)+a/2),e.fillText(l,(n?i:r.x)-c,(n?r:r.y)+a/2)}},{key:"_drawLng",value:function(e,t,r,n,o){e=this._setLabelStyle(e,o);var i=this.canvas.height;if(!n){var a=r;r=this.getMapStateByKey("project",[t,a])}var s=this._formatLng(t),u=e.measureText(s).width;e.strokeText(s,(n?r:r.x)-u/2,n?i:r.y),e.fillText(s,(n?r:r.x)-u/2,n?i:r.y)}},{key:"_getLatPoints",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-180,180],r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.features;if(o){if(this.options.wrapX&&-180===t[0]&&180===t[1])return[];var i=[];return o.forEach(function(o){var a=o.geometry.coordinates[0][1];if(o.geometry.coordinates[1][1]===a){var s="number"==typeof n?n:t[1];e.isRotate&&(s="number"==typeof r?r:t[0]),e.options.wrapX&&(i=i.concat(e._getWrapPoints(s,a,[s,s]))),i.push([s,a])}}),i}}},{key:"_getLngPoints",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-90,90],r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.features;if(o){var i="number"==typeof r?r:t[0];this.isRotate&&(i="number"==typeof n?n:t[1]);var a=[];return o.forEach(function(t){var r=t.geometry.coordinates[0][0];t.geometry.coordinates[1][0]===r&&(a.push([r,i]),e.options.wrapX&&(a=a.concat(e._getWrapPoints(r,i))))}),a}}},{key:"_getWrapPoints",value:function(e,t){for(var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.oldExtent,n=[],o=this.getMapStateByKey("getBounds"),i=o._ne,a=o._sw,s=r.length>2?r[2]:r[1];e>=a.lng;){var u=gf(e,180===s,-180===r[0]);(!r||u>=r[0]&&u<=s)&&n.push([e,t]),e-=360}for(;e<=i.lng;){var l=gf(e,180===s,-180===r[0]);(!r||l>=r[0]&&l<=s)&&n.push([e,t]),e+=360}return n}},{key:"_getGridiculePoints",value:function(){var e=this._getEdgeLat(),t=this._getEdgeLng(),r=this._getRange(),n=r.latRange,o=r.lngRange,i=r.firstLat,a=r.firstLng,s=r.lastLat,u=r.lastLng;return{latPonits:this._getUniquePoint(this._getLatPoints(o,a,u),e,1),lngPoints:this._getUniquePoint(this._getLngPoints(n,i,s),t,0)}}},{key:"_getEdgeLat",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._currLatInterval,r=[],n=[],o=this.canvas.width,i=this.canvas.height,a=this._getRange().extent,s=this.getMapStateByKey("getBounds")._ne;if(this.options.wrapX&&gf(s.lng)>a[2])return[];for(var u=this._countDecimals(t),l=0;l<=i;l++){var c=this.getMapStateByKey("unproject",[o,l]),f=gf(c.lng);(this.options.wrapX?f>=a[0]&&f<=a[2]:c.lng>=a[0]&&c.lng<=a[2])&&c.lat>=a[1]&&c.lat<=a[3]&&(r.push([c.lat,l]),n.push(c.lat),void 0===e&&c.lat.toFixed(u)%t==0&&(e=Number(c.lat.toFixed(u))))}var p=this._getIntersectRange(e,n,r,t),h=p.first,y=p.last,d=p.coordinates,m=p.points;e=Math.min(Math.max(h,-90),90);var g=Math.max(Math.min(Math.round(y),90),-90);return-90!==e||-90!==g?this._getClosestCoordinate(e,g,d,m,t):[]}},{key:"_getEdgeLng",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._currLngInterval,r=[],n=[],o=this.canvas.width,i=this.canvas.height,a=this.options.extent,s=this._countDecimals(t),u=this.getMapStateByKey("getBounds")._sw;if(this.options.wrapX&&gf(u.lat)>a[3])return[];for(var l=0;l<=o;l++){var c=this.getMapStateByKey("unproject",[l,i]),f=gf(c.lng);(this.options.wrapX?f>=a[0]&&f<=a[2]:c.lng>=a[0]&&c.lng<=a[2])&&c.lat>=a[1]&&c.lat<=a[3]&&(r.push([c.lng,l]),n.push(c.lng),void 0===e&&c.lng.toFixed(s)%t==0&&(e=Number(c.lng.toFixed(s))))}var p=this._getIntersectRange(e,n,r,t),h=p.first,y=p.last,d=p.coordinates,m=p.points;return e=h,this._getClosestCoordinate(e,y,d,m,t)}},{key:"_getIntersectRange",value:function(e,t,r,n){var o=t[t.length-1];if(e>o){o=e,t.reverse(),r.reverse();for(var i=this._countDecimals(n),a=0;a<=t.length;a++){var s=t[a];if(s.toFixed(i)%n==0){e=Number(s.toFixed(i));break}}}return{first:e,last:o,coordinates:t,points:r}}},{key:"_getClosestCoordinate",value:function(e,t,r,n,o){for(var i=[],a=e;a<=t;){var s=this._getClosestNumberIndex(a,r),u=n[s];i.push([Math.round(u[0]),u[1],!0]),a+=o,r=r.slice(s),n=n.slice(s)}return i}},{key:"_getClosestNumberIndex",value:function(e,t){for(var r=0,n=Number.MAX_VALUE,o=0;o2&&void 0!==arguments[2]?arguments[2]:0;if(this.options.wrapX)return e.concat(t);if(!t||0===t.length)return e;var n=t,o=this.canvas.width,i=this.canvas.height;for(var a in e){var s=this.getMapStateByKey("project",e[a]),u=n.findIndex(function(t){return t[0]===e[a][r]});u<=-1?n.push(e[a]):s&&s.x>=0&&s.x<=o&&s.y>=0&&s.y<=i&&(n[u]=e[a])}return n}},{key:"_countDecimals",value:function(e){return Math.floor(e)!==e&&e.toString().split(".")[1].length||0}},{key:"_getGraticuleFeatures",value:function(){var e=this._currLngInterval||10,t=this._currLatInterval||10,r=[],n=this._getRange(),o=n.latRange,i=n.lngRange,a=n.firstLat,s=n.firstLng,u=n.lastLat,l=n.lastLng;this.options.wrapX&&!this.oldExtent&&(o=[-90,90],i=[-180,180],a=s=u=l=null),"number"==typeof s&&r.unshift(this._makeLineFeature(this._makeLineCoords(s,o,a,u))),"number"==typeof l&&r.unshift(this._makeLineFeature(this._makeLineCoords(l,o,a,u)));for(var c=i[0];c<=i[1];c+=e)r.unshift(this._makeLineFeature(this._makeLineCoords(c,o,a,u)));"number"==typeof a&&r.unshift(this._makeLineFeature(this._makeLineCoords(a,i,s,l,"lat"))),"number"==typeof u&&r.unshift(this._makeLineFeature(this._makeLineCoords(u,i,s,l,"lat")));for(var f=o[0];f<=o[1];f+=t)r.unshift(this._makeLineFeature(this._makeLineCoords(f,i,s,l,"lat")));return r}},{key:"_getRange",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.extent&&wh(this.options.extent);e&&0!==e.length||(e=this.getDefaultExtent());var t={};if((e=e.map(function(e){return Number(e.toFixed(6))}))[1]%this._currLatInterval!=0){t.firstLat=e[1];var r=Math.ceil(e[1]/this._currLatInterval);e[1]=r*this._currLatInterval}if(e[3]%this._currLatInterval!=0){t.lastLat=e[3];var n=Math.floor(e[3]/this._currLatInterval);e[3]=n*this._currLatInterval}if(e[0]%this._currLngInterval!=0){t.firstLng=e[0];var o=Math.ceil(e[0]/this._currLngInterval);e[0]=o*this._currLngInterval}if(e[2]%this._currLngInterval!=0){t.lastLng=e[2];var i=Math.floor(e[2]/this._currLngInterval);e[2]=i*this._currLngInterval}return Object.assign({latRange:[e[1],e[3]],lngRange:[e[0],e[2]],extent:e},t)}},{key:"_makeLineCoords",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[-90,90],r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"lng";e="lng"===o?this._lngFix(e):e,r="number"==typeof r?r:t[0],n="number"==typeof n?n:t[1];for(var i=Math.abs(r-n),a=[],s=r;s<=n;s+=i)"lng"===o?a.push([e,s]):a.push([s,e]);return a}},{key:"_makeLineFeature",value:function(e){return{type:"Feature",geometry:{type:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"LineString",coordinates:e}}}},{key:"_lngFix",value:function(e){return e>=180?180:e<=-180?-180:e}},{key:"_transformStrokeStyle",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.strokeStyle;if(!e||"string"==typeof e)return{paint:{"line-color":e||"rgba(0,0,0,0.2)"}};var t={visibility:this.visible?"visible":"none","line-join":e.lineJoin||"round","line-cap":e.lineCap||"round"},r={"line-color":e.lineColor||"rgba(0,0,0,0.2)","line-width":e.lineWidth||1,"line-offset":e.lineDashOffset||0,"line-translate-anchor":"viewport","line-opacity":e.lineOpacity||1};return e.lineWidth&&("function"==typeof e.lineWidth?r["line-width"]=e.lineWidth(this.map):r["line-width"]=e.lineWidth),e.lindDasharray&&("function"==typeof e.lindDasharray?r["line-dasharray"]=e.lindDasharray(this.map):r["line-dasharray"]=e.lindDasharray),{layout:t,paint:r}}},{key:"_setLabelStyle",value:function(e,t){return t.textColor&&(e.fillStyle=t.textColor),t.textSize&&(e.font=t.textSize+" "+(t.textFont||["Calibri","sans-serif"]).join(",")),t.textHaloColor&&(e.strokeStyle=t.textHaloColor,e.lineWidth=t.textHaloWidth||1),t.textAnchor&&(e.textBaseline=this._getTxetBaseline(t.textAnchor),e.textAligin=this._getTxetAlign(t.textAligin)),e}},{key:"_getTxetBaseline",value:function(e){if(!e)return"bottom";var t=e.split("-");return t.includes("bottom")?"bottom":t.includes("top")?"top":t.includes("center")?"middle":void 0}},{key:"_getTxetAlign",value:function(e){if(!e)return"center";var t=e.split("-");return t.includes("left")?"left":t.includes("right")?"right":t.includes("center")?"center":void 0}}])&&Ch(e.prototype,t),r&&Ch(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Ph(e){"@babel/helpers - typeof";return(Ph="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function kh(e,t){for(var r=0;r=this.options.minZoom&&t<=this.options.maxZoom,this.renderer&&(this.renderer.visible=this.visible),this.map.getLayer(this.sourceId)&&this.map.setLayoutProperty(this.sourceId,"visibility",this.visible?"visible":"none"),this.renderer&&this.renderer._drawLabel()}},{key:"setMinZoom",value:function(e){this.options.minZoom=e,this.setVisibility()}},{key:"setMaxZoom",value:function(e){this.options.maxZoom=e,this.setVisibility()}},{key:"setShowLabel",value:function(e){this.options.showLabel=e,this.renderer._drawLabel()}},{key:"setExtent",value:function(e){this.options.extent=this.getDefaultExtent(e,this.map),this.renderer.setExtent(e)}},{key:"setStrokeStyle",value:function(e){if(this.map&&this.map.getLayer(this.sourceId)){this.options.strokeStyle=e;var t=this.renderer._transformStrokeStyle(e),r=t.layout,n=t.paint;for(var o in r)this.map.setLayoutProperty(this.sourceId,o,r[o]);for(var i in n)this.map.setPaintProperty(this.sourceId,i,n[i])}}},{key:"setLngLabelStyle",value:function(e){this.options.lngLabelStyle=e,this.renderer._drawLabel()}},{key:"setLatLabelStyle",value:function(e){this.options.latLabelStyle=e,this.renderer._drawLabel()}},{key:"setIntervals",value:function(e){this.renderer&&this.renderer.setIntervals(e)}},{key:"getDefaultExtent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.map,r=(t.getCRS&&t.getCRS()||{}).lngLatExtent;if(r||(r=[-180,-85.05119,180,85.05119]),!e||0===e.length)return r;var n=o().LngLatBounds.convert(e),i=n._sw,a=n._ne;return e=[i.lng,i.lat,a.lng,a.lat],e=[Math.max(r[0],e[0]),Math.max(r[1],e[1]),Math.min(r[2],e[2]),Math.min(r[3],e[3])]}},{key:"addGraticuleLayer",value:function(){if(!this.map.getSource(this.sourceId)){var e={type:"geojson",data:{type:"FeatureCollection",features:this.renderer.features}};this.map.addSource(this.sourceId,e)}if(!this.map.getLayer(this.sourceId)){var t=Object.assign({id:this.sourceId,type:"line",source:this.sourceId},this.renderer._transformStrokeStyle());this.map.addLayer(t)}}},{key:"_getLatPoints",value:function(e,t,r,n){return this.renderer._getLatPoints(e,t,r,n)}},{key:"_bindEvent",value:function(){this.map.on("styledata",this.styleDataEevent),this.map.on("resize",this.resizeEvent),this.map.on("zoomend",this.zoomendEvent)}},{key:"_unbindEvent",value:function(){this.map.off("styledata",this.styleDataEevent),this.map.off("resize",this.resizeEvent),this.map.off("zoomend",this.zoomendEvent)}},{key:"_setLayerTop",value:function(){var e=this,t=this.map;if(t){var r=t.getStyle&&t.getStyle().layers;r&&r.length&&r.findIndex(function(t){return t.id===e.sourceId})!==r.length-1&&t.getLayer(this.sourceId)&&(t.removeLayer(this.sourceId),this.addGraticuleLayer())}}},{key:"updateGraticuleLayer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.renderer.features;if(this.map.getSource(this.sourceId)){var t={type:"FeatureCollection",features:e};this.map.getSource(this.sourceId).setData(t)}this.addGraticuleLayer()}}])&&kh(e.prototype,t),r&&kh(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();!function(e){e[e.Unknown=0]="Unknown",e[e.Point=1]="Point",e[e.LineString=2]="LineString",e[e.Polygon=3]="Polygon",e[e.MultiPoint=4]="MultiPoint",e[e.MultiLineString=5]="MultiLineString",e[e.MultiPolygon=6]="MultiPolygon",e[e.GeometryCollection=7]="GeometryCollection",e[e.CircularString=8]="CircularString",e[e.CompoundCurve=9]="CompoundCurve",e[e.CurvePolygon=10]="CurvePolygon",e[e.MultiCurve=11]="MultiCurve",e[e.MultiSurface=12]="MultiSurface",e[e.Curve=13]="Curve",e[e.Surface=14]="Surface",e[e.PolyhedralSurface=15]="PolyhedralSurface",e[e.TIN=16]="TIN",e[e.Triangle=17]="Triangle"}(jh||(jh={}));var Lh,Dh=new Int32Array(2),Fh=new Float32Array(Dh.buffer),Qh=new Float64Array(Dh.buffer),Gh=1===new Uint16Array(new Uint8Array([1,0]).buffer)[0];function Uh(e){"@babel/helpers - typeof";return(Uh="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function zh(e,t){for(var r=0;r>24}},{key:"readUint8",value:function(e){return this.bytes_[e]}},{key:"readInt16",value:function(e){return this.readUint16(e)<<16>>16}},{key:"readUint16",value:function(e){return this.bytes_[e]|this.bytes_[e+1]<<8}},{key:"readInt32",value:function(e){return this.bytes_[e]|this.bytes_[e+1]<<8|this.bytes_[e+2]<<16|this.bytes_[e+3]<<24}},{key:"readUint32",value:function(e){return this.readInt32(e)>>>0}},{key:"readInt64",value:function(e){return BigInt.asIntN(64,BigInt(this.readUint32(e))+(BigInt(this.readUint32(e+4))<>8}},{key:"writeUint16",value:function(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8}},{key:"writeInt32",value:function(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}},{key:"writeUint32",value:function(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}},{key:"writeInt64",value:function(e,t){this.writeInt32(e,Number(BigInt.asIntN(32,t))),this.writeInt32(e+4,Number(BigInt.asIntN(32,t>>BigInt(32))))}},{key:"writeUint64",value:function(e,t){this.writeUint32(e,Number(BigInt.asUintN(32,t))),this.writeUint32(e+4,Number(BigInt.asUintN(32,t>>BigInt(32))))}},{key:"writeFloat32",value:function(e,t){Fh[0]=t,this.writeInt32(e,Dh[0])}},{key:"writeFloat64",value:function(e,t){Qh[0]=t,this.writeInt32(e,Dh[Gh?0:1]),this.writeInt32(e+4,Dh[Gh?1:0])}},{key:"getBufferIdentifier",value:function(){if(this.bytes_.length=0;r--)e.addInt32(t[r]);return e.endVector()}},{key:"startEndsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"addXy",value:function(e,t){e.addFieldOffset(1,t,0)}},{key:"createXyVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startXyVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addZ",value:function(e,t){e.addFieldOffset(2,t,0)}},{key:"createZVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startZVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addM",value:function(e,t){e.addFieldOffset(3,t,0)}},{key:"createMVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startMVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addT",value:function(e,t){e.addFieldOffset(4,t,0)}},{key:"createTVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startTVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addTm",value:function(e,t){e.addFieldOffset(5,t,0)}},{key:"createTmVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addInt64(t[r]);return e.endVector()}},{key:"startTmVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addType",value:function(e,t){e.addFieldInt8(6,t,jh.Unknown)}},{key:"addParts",value:function(e,t){e.addFieldOffset(7,t,0)}},{key:"createPartsVector",value:function(e,t){e.startVector(4,t.length,4);for(var r=t.length-1;r>=0;r--)e.addOffset(t[r]);return e.endVector()}},{key:"startPartsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"endGeometry",value:function(e){return e.endObject()}},{key:"createGeometry",value:function(t,r,n,o,i,a,s,u,l){return e.startGeometry(t),e.addEnds(t,r),e.addXy(t,n),e.addZ(t,o),e.addM(t,i),e.addT(t,a),e.addTm(t,s),e.addType(t,u),e.addParts(t,l),e.endGeometry(t)}}],(r=[{key:"__init",value:function(e,t){return this.bb_pos=e,this.bb=t,this}},{key:"ends",value:function(e){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb.__vector(this.bb_pos+t)+4*e):0}},{key:"endsLength",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"endsArray",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"xy",value:function(e){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"xyLength",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"xyArray",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"z",value:function(e){var t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"zLength",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"zArray",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"m",value:function(e){var t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"mLength",value:function(){var e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"mArray",value:function(){var e=this.bb.__offset(this.bb_pos,10);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"t",value:function(e){var t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"tLength",value:function(){var e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"tArray",value:function(){var e=this.bb.__offset(this.bb_pos,12);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"tm",value:function(e){var t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readUint64(this.bb.__vector(this.bb_pos+t)+8*e):BigInt(0)}},{key:"tmLength",value:function(){var e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"type",value:function(){var e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readUint8(this.bb_pos+e):jh.Unknown}},{key:"parts",value:function(t,r){var n=this.bb.__offset(this.bb_pos,18);return n?(r||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+4*t),this.bb):null}},{key:"partsLength",value:function(){var e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}}])&&Kh(t.prototype,r),n&&Kh(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function Xh(e,t){for(var r=[],n=0;n>1]),r.push(o)}return r}function Zh(e,t,r){if(!r||0===r.length)return[Xh(e,t)];var n,o=0,i=Array.from(r).map(function(t){return e.slice(o,o=t<<1)});return t&&(o=0,n=Array.from(r).map(function(e){return t.slice(o,o=e)})),i.map(function(e,t){return Xh(e,n?n[t]:void 0)})}function $h(e,t){var r=t;if(r===jh.Unknown&&(r=e.type()),r===jh.GeometryCollection){for(var n=[],o=0;o=0;r--)e.addInt8(t[r]);return e.endVector()}},{key:"startPropertiesVector",value:function(e,t){e.startVector(1,t,1)}},{key:"addColumns",value:function(e,t){e.addFieldOffset(2,t,0)}},{key:"createColumnsVector",value:function(e,t){e.startVector(4,t.length,4);for(var r=t.length-1;r>=0;r--)e.addOffset(t[r]);return e.endVector()}},{key:"startColumnsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"endFeature",value:function(e){return e.endObject()}},{key:"finishFeatureBuffer",value:function(e,t){e.finish(t)}},{key:"finishSizePrefixedFeatureBuffer",value:function(e,t){e.finish(t,void 0,!0)}},{key:"createFeature",value:function(t,r,n,o){return e.startFeature(t),e.addGeometry(t,r),e.addProperties(t,n),e.addColumns(t,o),e.endFeature(t)}}],(r=[{key:"__init",value:function(e,t){return this.bb_pos=e,this.bb=t,this}},{key:"geometry",value:function(e){var t=this.bb.__offset(this.bb_pos,4);return t?(e||new Wh).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}},{key:"properties",value:function(e){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}},{key:"propertiesLength",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"propertiesArray",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"columns",value:function(e,t){var r=this.bb.__offset(this.bb_pos,8);return r?(t||new ny).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"columnsLength",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}}])&&iy(t.prototype,r),n&&iy(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}(),uy=(new TextEncoder,new TextDecoder);function ly(e,t){var r={};if(!t||0===t.length)return r;var n=e.propertiesArray();if(!n)return r;for(var o=new DataView(n.buffer,n.byteOffset),i=e.propertiesLength(),a=0;a0?{done:!1,value:t}:{done:!0,value:void 0}:{done:!1,value:function(e,t){if(!e.length)return t;if(!t.length)return e;var r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r}(t,r.value)}})}function yy(e){if((e|=0)<0)throw new Error("invalid length");var t=this,r=this._array.length-this._index;if(this._index+e<=this._array.length)return Promise.resolve(this._array.subarray(this._index,this._index+=e));var n=new Uint8Array(e);return n.set(this._array.subarray(this._index)),function o(){return t._source.read().then(function(i){return i.done?(t._array=fy,t._index=0,r>0?n.subarray(0,r):null):r+i.value.length>=e?(t._array=i.value,t._index=e-r,n.set(i.value.subarray(0,e-r),r),n):(n.set(i.value,r),r+=i.value.length,o())})}()}function dy(e){this._source=e,this._array=fy,this._index=0}function my(e){"@babel/helpers - typeof";return(my="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function gy(e,t){for(var r=0;r=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startEnvelopeVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addGeometryType",value:function(e,t){e.addFieldInt8(2,t,jh.Unknown)}},{key:"addHasZ",value:function(e,t){e.addFieldInt8(3,+t,0)}},{key:"addHasM",value:function(e,t){e.addFieldInt8(4,+t,0)}},{key:"addHasT",value:function(e,t){e.addFieldInt8(5,+t,0)}},{key:"addHasTm",value:function(e,t){e.addFieldInt8(6,+t,0)}},{key:"addColumns",value:function(e,t){e.addFieldOffset(7,t,0)}},{key:"createColumnsVector",value:function(e,t){e.startVector(4,t.length,4);for(var r=t.length-1;r>=0;r--)e.addOffset(t[r]);return e.endVector()}},{key:"startColumnsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"addFeaturesCount",value:function(e,t){e.addFieldInt64(8,t,BigInt("0"))}},{key:"addIndexNodeSize",value:function(e,t){e.addFieldInt16(9,t,16)}},{key:"addCrs",value:function(e,t){e.addFieldOffset(10,t,0)}},{key:"addTitle",value:function(e,t){e.addFieldOffset(11,t,0)}},{key:"addDescription",value:function(e,t){e.addFieldOffset(12,t,0)}},{key:"addMetadata",value:function(e,t){e.addFieldOffset(13,t,0)}},{key:"endHeader",value:function(e){return e.endObject()}},{key:"finishHeaderBuffer",value:function(e,t){e.finish(t)}},{key:"finishSizePrefixedHeaderBuffer",value:function(e,t){e.finish(t,void 0,!0)}}],(r=[{key:"__init",value:function(e,t){return this.bb_pos=e,this.bb=t,this}},{key:"name",value:function(e){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"envelope",value:function(e){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"envelopeLength",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"envelopeArray",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"geometryType",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint8(this.bb_pos+e):jh.Unknown}},{key:"hasZ",value:function(){var e=this.bb.__offset(this.bb_pos,10);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"hasM",value:function(){var e=this.bb.__offset(this.bb_pos,12);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"hasT",value:function(){var e=this.bb.__offset(this.bb_pos,14);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"hasTm",value:function(){var e=this.bb.__offset(this.bb_pos,16);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"columns",value:function(e,t){var r=this.bb.__offset(this.bb_pos,18);return r?(t||new ny).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"columnsLength",value:function(){var e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"featuresCount",value:function(){var e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readUint64(this.bb_pos+e):BigInt("0")}},{key:"indexNodeSize",value:function(){var e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readUint16(this.bb_pos+e):16}},{key:"crs",value:function(e){var t=this.bb.__offset(this.bb_pos,24);return t?(e||new by).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}},{key:"title",value:function(e){var t=this.bb.__offset(this.bb_pos,26);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"description",value:function(e){var t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"metadata",value:function(e){var t=this.bb.__offset(this.bb_pos,30);return t?this.bb.__string(this.bb_pos+t,e):null}}])&&wy(t.prototype,r),n&&wy(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function Ey(e){for(var t=Cy.getRootAsHeader(e),r=t.featuresCount(),n=t.indexNodeSize(),o=[],i=0;i0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Py(e){return this instanceof Py?(this.v=e,this):new Py(e)}function ky(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),i=[];return n={},a("next"),a("throw"),a("return"),n[Symbol.asyncIterator]=function(){return this},n;function a(e){o[e]&&(n[e]=function(t){return new Promise(function(r,n){i.push([e,t,r,n])>1||s(e,t)})})}function s(e,t){try{(r=o[e](t)).value instanceof Py?Promise.resolve(r.value.v).then(u,l):c(i[0][2],r)}catch(e){c(i[0][3],e)}var r}function u(e){s("next",e)}function l(e){s("throw",e)}function c(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}var Ty=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"name",{value:"RepeaterOverflowError",enumerable:!1}),"function"==typeof Object.setPrototypeOf?Object.setPrototypeOf(r,r.constructor.prototype):r.__proto__=r.constructor.prototype,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(r,r.constructor),r}return function(e,t){function r(){this.constructor=e}_y(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(t,e),t}(Error);(function(){function e(e){if(e<0)throw new RangeError("Capacity may not be less than 0");this._c=e,this._q=[]}Object.defineProperty(e.prototype,"empty",{get:function(){return 0===this._q.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return this._q.length>=this._c},enumerable:!1,configurable:!0}),e.prototype.add=function(e){if(this.full)throw new Error("Buffer full");this._q.push(e)},e.prototype.remove=function(){if(this.empty)throw new Error("Buffer empty");return this._q.shift()}})(),function(){function e(e){if(e<1)throw new RangeError("Capacity may not be less than 1");this._c=e,this._q=[]}Object.defineProperty(e.prototype,"empty",{get:function(){return 0===this._q.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.add=function(e){for(;this._q.length>=this._c;)this._q.shift();this._q.push(e)},e.prototype.remove=function(){if(this.empty)throw new Error("Buffer empty");return this._q.shift()}}(),function(){function e(e){if(e<1)throw new RangeError("Capacity may not be less than 1");this._c=e,this._q=[]}Object.defineProperty(e.prototype,"empty",{get:function(){return 0===this._q.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.add=function(e){this._q.length=Ry;return Promise.resolve(t).then(function(t){return!r&&e.state>=Ly?Qy(e).then(function(e){return{value:e,done:!0}}):{value:t,done:r}})}function Uy(e,t){var r,n;if(!(e.state>=Ny))if(e.state=Ny,e.onnext(),e.onstop(),null==e.err&&(e.err=t),0!==e.pushes.length||void 0!==e.buffer&&!e.buffer.empty)try{for(var o=xy(e.pushes),i=o.next();!i.done;i=o.next()){i.value.resolve()}}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}else zy(e)}function zy(e){var t,r;if(!(e.state>=Ry)){e.state=Ly||(e.state=By)){e.state=By;var t=function(e,t){if(jy(t),e.pushes.length>=Dy)throw new Ty("No more than "+Dy+" pending calls to push are allowed on a single repeater.");if(e.state>=Ny)return Promise.resolve(void 0);var r,n=void 0===e.pending?Promise.resolve(t):e.pending.then(function(){return t});n=n.catch(function(t){e.state=Dy)throw new Ty("No more than "+Dy+" pending calls to next are allowed on a single repeater.");if(t.state<=My&&qy(t),t.onnext(e),void 0!==t.buffer&&!t.buffer.empty){var r=Gy(t,t.buffer.remove());if(t.pushes.length){var n=t.pushes.shift();t.buffer.add(n.value),t.onnext=n.resolve}return r}if(t.pushes.length){var o=t.pushes.shift();return t.onnext=o.resolve,Gy(t,o.value)}return t.state>=Ny?(zy(t),Gy(t,Qy(t))):new Promise(function(r){return t.nexts.push({resolve:r,value:e})})},e.prototype.return=function(e){jy(e);var t=Vy.get(this);if(void 0===t)throw new Error("WeakMap error");return zy(t),t.execution=Promise.resolve(t.execution).then(function(){return e}),Gy(t,Qy(t))},e.prototype.throw=function(e){var t=Vy.get(this);if(void 0===t)throw new Error("WeakMap error");return t.state<=My||t.state>=Ny||void 0!==t.buffer&&!t.buffer.empty?(zy(t),null==t.err&&(t.err=e),Gy(t,Qy(t))):this.next(Promise.reject(e))},e.prototype[Symbol.asyncIterator]=function(){return this},e.race=Jy,e.merge=Wy,e.zip=Xy,e.latest=Zy,e}();function Yy(e,t){var r,n,o=[],i=function(e){null!=e&&"function"==typeof e[Symbol.asyncIterator]?o.push(e[Symbol.asyncIterator]()):null!=e&&"function"==typeof e[Symbol.iterator]?o.push(e[Symbol.iterator]()):o.push(function(){return ky(this,arguments,function(){return Iy(this,function(r){switch(r.label){case 0:return t.yieldValues?[4,Py(e)]:[3,3];case 1:return[4,r.sent()];case 2:r.sent(),r.label=3;case 3:return t.returnValues?[4,Py(e)]:[3,5];case 4:return[2,r.sent()];case 5:return[2]}})})}())};try{for(var a=xy(e),s=a.next();!s.done;s=a.next()){i(s.value)}}catch(e){r={error:e}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return o}function Jy(e){var t=this,r=Yy(e,{returnValues:!0});return new Ky(function(e,n){return Oy(t,void 0,void 0,function(){var t,o,i,a,s,u;return Iy(this,function(l){switch(l.label){case 0:if(!r.length)return n(),[2];o=!1,n.then(function(){t(),o=!0}),l.label=1;case 1:l.trys.push([1,,5,7]),a=void 0,s=0,u=function(){var o,u,l,c,f,p;return Iy(this,function(h){switch(h.label){case 0:o=s;try{for(f=void 0,u=xy(r),l=u.next();!l.done;l=u.next())c=l.value,Promise.resolve(c.next()).then(function(e){e.done?(n(),void 0===i&&(i=e)):s===o&&(s++,t(e))},function(e){return n(e)})}catch(e){f={error:e}}finally{try{l&&!l.done&&(p=u.return)&&p.call(u)}finally{if(f)throw f.error}}return[4,new Promise(function(e){return t=e})];case 1:return void 0===(a=h.sent())?[3,3]:[4,e(a.value)];case 2:h.sent(),h.label=3;case 3:return[2]}})},l.label=2;case 2:return o?[3,4]:[5,u()];case 3:return l.sent(),[3,2];case 4:return[2,i&&i.value];case 5:return n(),[4,Promise.race(r.map(function(e){return e.return&&e.return()}))];case 6:return l.sent(),[7];case 7:return[2]}})})})}function Wy(e){var t=this,r=Yy(e,{yieldValues:!0});return new Ky(function(e,n){return Oy(t,void 0,void 0,function(){var t,o,i,a=this;return Iy(this,function(s){switch(s.label){case 0:if(!r.length)return n(),[2];t=[],o=!1,n.then(function(){var e,r;o=!0;try{for(var n=xy(t),i=n.next();!i.done;i=n.next()){(0,i.value)()}}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}}),s.label=1;case 1:return s.trys.push([1,,3,4]),[4,Promise.all(r.map(function(r,s){return Oy(a,void 0,void 0,function(){var a;return Iy(this,function(u){switch(u.label){case 0:u.trys.push([0,,6,9]),u.label=1;case 1:return o?[3,5]:(Promise.resolve(r.next()).then(function(e){return t[s](e)},function(e){return n(e)}),[4,new Promise(function(e){t[s]=e})]);case 2:return void 0===(a=u.sent())?[3,4]:a.done?(i=a,[2]):[4,e(a.value)];case 3:u.sent(),u.label=4;case 4:return[3,1];case 5:return[3,9];case 6:return r.return?[4,r.return()]:[3,8];case 7:u.sent(),u.label=8;case 8:return[7];case 9:return[2]}})})}))];case 2:return s.sent(),[2,i&&i.value];case 3:return n(),[7];case 4:return[2]}})})})}function Xy(e){var t=this,r=Yy(e,{returnValues:!0});return new Ky(function(e,n){return Oy(t,void 0,void 0,function(){var t,o,i,a;return Iy(this,function(s){switch(s.label){case 0:if(!r.length)return n(),[2,[]];o=!1,n.then(function(){t(),o=!0}),s.label=1;case 1:s.trys.push([1,,6,8]),s.label=2;case 2:return o?[3,5]:(Promise.all(r.map(function(e){return e.next()})).then(function(e){return t(e)},function(e){return n(e)}),[4,new Promise(function(e){return t=e})]);case 3:return void 0===(i=s.sent())?[2]:(a=i.map(function(e){return e.value}),i.some(function(e){return e.done})?[2,a]:[4,e(a)]);case 4:return s.sent(),[3,2];case 5:return[3,8];case 6:return n(),[4,Promise.all(r.map(function(e){return e.return&&e.return()}))];case 7:return s.sent(),[7];case 8:return[2]}})})})}function Zy(e){var t=this,r=Yy(e,{yieldValues:!0,returnValues:!0});return new Ky(function(e,n){return Oy(t,void 0,void 0,function(){var t,o,i,a,s,u=this;return Iy(this,function(l){switch(l.label){case 0:if(!r.length)return n(),[2,[]];o=[],i=!1,n.then(function(){var e,r;t();try{for(var n=xy(o),a=n.next();!a.done;a=n.next()){(0,a.value)()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}i=!0}),l.label=1;case 1:return l.trys.push([1,,5,7]),Promise.all(r.map(function(e){return e.next()})).then(function(e){return t(e)},function(e){return n(e)}),[4,new Promise(function(e){return t=e})];case 2:return void 0===(a=l.sent())?[2]:(s=a.map(function(e){return e.value}),a.every(function(e){return e.done})?[2,s]:[4,e(s.slice())]);case 3:return l.sent(),[4,Promise.all(r.map(function(t,r){return Oy(u,void 0,void 0,function(){var u;return Iy(this,function(l){switch(l.label){case 0:if(a[r].done)return[2,a[r].value];l.label=1;case 1:return i?[3,4]:(Promise.resolve(t.next()).then(function(e){return o[r](e)},function(e){return n(e)}),[4,new Promise(function(e){return o[r]=e})]);case 2:return void 0===(u=l.sent())?[2,a[r].value]:u.done?[2,u.value]:(s[r]=u.value,[4,e(s.slice())]);case 3:return l.sent(),[3,1];case 4:return[2]}})})}))];case 4:return[2,l.sent()];case 5:return n(),[4,Promise.all(r.map(function(e){return e.return&&e.return()}))];case 6:return l.sent(),[7];case 7:return[2]}})})})}function $y(e){"@babel/helpers - typeof";return($y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ed(e,t){for(var r=0;re)){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(cd(e)+" is not iterable")}function pd(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return hd(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(hd(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,hd(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,hd(f,"constructor",l),hd(l,"constructor",u),u.displayName="GeneratorFunction",hd(l,o,"GeneratorFunction"),hd(f),hd(f,o,"Generator"),hd(f,n,function(){return this}),hd(f,"toString",function(){return"[object Generator]"}),(pd=function(){return{w:i,m:p}})()}function hd(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(hd=function(e,t,r,n){function i(t,r){hd(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function yd(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return dd(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?dd(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dd(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rthis.nodes[1]),this.nodes[1]=e}},{key:"toString",value:function(){return"[NodeRange level: ".concat(this._level,", nodes: ").concat(this.nodes[0],"-").concat(this.nodes[1],"]")}}])&&gd(e.prototype,t),r&&gd(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),a=n.minX,s=n.minY,u=n.maxX,l=n.maxY,ld.info("tree items: ".concat(t,", nodeSize: ").concat(r)),c=Cd(t,r),f=c[0][0],void 0,d=c.length-1,p=new i([0,1],d),h=[p],ld.debug("starting stream search with queue: ".concat(h,", numItems: ").concat(t,", nodeSize: ").concat(r,", levelBounds: ").concat(c)),y=pd().m(function e(){var n,p,y,d,m,g,v,b,A;return pd().w(function(e){for(;;)switch(e.n){case 0:return n=h.shift(),ld.debug("popped node: ".concat(n,", queueLength: ").concat(h.length)),p=n.startNodeIdx(),y=p>=f,d=function(){var e=yd(c[n.level()],2)[1],t=Math.min(n.endNodeIdx()+r,e);return y&&tv.getFloat64(c+16,!0))){e.n=3;break}return e.a(2,0);case 3:if(!(s>v.getFloat64(c+24,!0))){e.n=4;break}return e.a(2,0);case 4:if(d=v.getBigUint64(c+32,!0),!y){e.n=6;break}return m=d,g=function(){if(r ").concat(A)),S.extendEndNodeIdx(Number(A)),e.a(2,0);case 7:void 0,void 0,E=n.level()-1,_=[Number(A),Number(A)+1],C=new i(_,E),void 0!==S&&S.level()==C.level()?ld.info("Same level, but too far away. Pushing new request for nodeIdx: ".concat(A," rather than merging with distant ").concat(S)):ld.info("Pushing new level for ".concat(C," onto queue with nearestNodeRange: ").concat(S," since there's not already a range for this level.")),h.push(C);case 8:return e.a(2)}var E,_},e)}),A=p;case 2:if(!(A=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function kd(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(xd(e)+" is not iterable")}function Td(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||jd(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function jd(e,t){if(e){if("string"==typeof e)return Md(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Md(e,t):void 0}}function Md(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Nd(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Nd(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Nd(f,"constructor",l),Nd(l,"constructor",u),u.displayName="GeneratorFunction",Nd(l,o,"GeneratorFunction"),Nd(f),Nd(f,o,"Generator"),Nd(f,n,function(){return this}),Nd(f,"toString",function(){return"[object Generator]"}),(Bd=function(){return{w:i,m:p}})()}function Nd(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Nd=function(e,t,r,n){function i(t,r){Nd(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function Rd(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Ld(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Rd(i,n,o,a,s,"next",e)}function s(e){Rd(i,n,o,a,s,"throw",e)}a(void 0)})}}function Dd(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fd(e,t){for(var r=0;rod.global.extraRequestThreshold()&&(ld.info("Pushing new feature batch, since gap ".concat(b," was too large")),a.push(s),s=[]),s.push([d,g]);case 5:u=!1,r.n=2;break;case 6:r.n=8;break;case 7:r.p=7,w=r.v,l=!0,c=w;case 8:if(r.p=8,r.p=9,!u||null==f.return){r.n=10;break}return r.n=10,Hd(f.return());case 10:if(r.p=10,!l){r.n=11;break}throw c;case 11:return r.f(10);case 12:return r.f(8);case 13:return t.headerClient.logUsage("header+index"),s.length>0&&a.push(s),A=a.flatMap(function(e){return t.readFeatureBatch(e,t.nocache)}),r.d(kd(qd(Kd(Ky.merge(A)))),14);case 14:return r.a(2)}},r,null,[[9,,10,12],[1,7,8,13]])}))()}},{key:"lengthBeforeTree",value:function(){return Od.length+Id+this.headerLength}},{key:"lengthBeforeFeatures",value:function(){return this.lengthBeforeTree()+this.indexLength}},{key:"buildFeatureClient",value:function(e){return new Wd(this.headerClient.httpClient,e)}},{key:"readFeatureBatch",value:function(e,t){var r=this;return Ud(Bd().m(function n(){var o,i,a,s,u,l,c,f,p,h,y,d,m;return Bd().w(function(n){for(;;)switch(n.p=n.n){case 0:o=Td(e[0],1),i=o[0],a=Td(e[e.length-1],2),s=a[0],u=a[1],l=s+u-i,c=r.buildFeatureClient(t),f=l,p=Pd(e),n.p=1,p.s();case 2:if((h=p.n()).done){n.n=6;break}return y=Td(h.value,1),d=y[0],n.n=3,Hd(r.readFeature(c,d,f));case 3:return n.n=4,n.v;case 4:f=0;case 5:n.n=2;break;case 6:n.n=8;break;case 7:n.p=7,m=n.v,p.e(m);case 8:return n.p=8,p.f(),n.f(8);case 9:c.logUsage("feature");case 10:return n.a(2)}},n,null,[[1,7,8,9]])}))()}},{key:"readFeature",value:function(){var e=Ld(Bd().m(function e(t,r,n){var o,i,a,s,u,l,c;return Bd().w(function(e){for(;;)switch(e.n){case 0:return o=r+this.lengthBeforeFeatures(),e.n=1,t.getRange(o,4,n,"feature length");case 1:return a=e.v,i=new DataView(a).getUint32(0,!0),e.n=2,t.getRange(o+4,i,n,"feature data");case 2:return s=e.v,u=new Uint8Array(s),(l=new Uint8Array(i+Id)).set(u,Id),(c=new qh(l)).setPosition(Id),e.a(2,sy.getRootAsFeature(c))}},e,this)}));return function(t,r,n){return e.apply(this,arguments)}}()}],[{key:"open",value:function(){var t=Ld(Bd().m(function t(r,n){var o,i,a,s,u,l,c,f,p,h,y,d,m;return Bd().w(function(t){for(;;)switch(t.n){case 0:return o=2024,i=new Wd(r,n),a=function(){var e,t=0;for(e=0;e<3;e++){t+=Math.pow(16,e)*wd}return t}(),s=o+a,ld.debug("fetching header. minReqLength: ".concat(s," (assumedHeaderLength: ").concat(o,", assumedIndexLength: ").concat(a,")")),d=Uint8Array,t.n=1,i.getRange(0,8,s,"header");case 1:if(m=t.v,(u=new d(m)).subarray(0,3).every(function(e,t){return Od[t]===e})){t.n=2;break}throw ld.error("bytes: ".concat(u," != ").concat(Od)),new Error("Not a FlatGeobuf file");case 2:return ld.debug("magic bytes look good"),t.n=3,i.getRange(8,4,s,"header");case 3:if(c=t.v,!((l=new DataView(c).getUint32(0,!0))>10485760||l<8)){t.n=4;break}throw new Error("Invalid header size");case 4:return ld.debug("headerLength: ".concat(l)),t.n=5,i.getRange(12,l,s,"header");case 5:return f=t.v,p=new qh(new Uint8Array(f)),h=Ey(p),y=Sd(h.featuresCount,h.indexNodeSize),ld.debug("completed: opening http reader"),t.a(2,new e(i,h,l,y,n))}},t)}));return function(e,r){return t.apply(this,arguments)}}()}])}(),Wd=function(){return Qd(function e(t,r){if(Dd(this,e),this.bytesEverUsed=0,this.bytesEverFetched=0,this.buffer=new ArrayBuffer(0),this.head=0,"string"==typeof t)this.httpClient=new Xd(t,r);else{if(!(t instanceof Xd))throw new Error("Unknown source ");this.httpClient=t}},[{key:"getRange",value:function(){var e=Ld(Bd().m(function e(t,r,n,o){var i,a,s;return Bd().w(function(e){for(;;)switch(e.n){case 0:if(this.bytesEverUsed+=r,i=t-this.head,a=i+r,!(i>=0&&a<=this.buffer.byteLength)){e.n=1;break}return e.a(2,this.buffer.slice(i,a));case 1:return s=Math.max(r,n),this.bytesEverFetched+=s,ld.debug("requesting for new Range: ".concat(t,"-").concat(t+s-1)),e.n=2,this.httpClient.getRange(t,s,o);case 2:return this.buffer=e.v,this.head=t,e.a(2,this.buffer.slice(0,r))}},e,this)}));return function(t,r,n,o){return e.apply(this,arguments)}}()},{key:"logUsage",value:function(e){var t=e.split(" ")[0],r=this.bytesEverUsed,n=this.bytesEverFetched,o=(100*r/n).toFixed(2);ld.info("".concat(t," bytes used/requested: ").concat(r," / ").concat(n," = ").concat(o,"%"))}}])}(),Xd=function(){return Qd(function e(t,r){Dd(this,e),this.requestsEverMade=0,this.bytesEverRequested=0,this.url=t,this.nocache=r},[{key:"getRange",value:function(){var e=Ld(Bd().m(function e(t,r,n){var o,i,a;return Bd().w(function(e){for(;;)switch(e.n){case 0:return this.requestsEverMade+=1,this.bytesEverRequested+=r,o="bytes=".concat(t,"-").concat(t+r-1),ld.info("request: #".concat(this.requestsEverMade,", purpose: ").concat(n,"), bytes: (this_request: ").concat(r,", ever: ").concat(this.bytesEverRequested,"), Range: ").concat(o)),i={Range:o},this.nocache&&(i["Cache-Control"]="no-cache, no-store"),e.n=1,fetch(this.url,{headers:i});case 1:return a=e.v,e.a(2,a.arrayBuffer())}},e,this)}));return function(t,r,n){return e.apply(this,arguments)}}()}])}();function Zd(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return $d(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):($d(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,$d(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,$d(f,"constructor",l),$d(l,"constructor",u),u.displayName="GeneratorFunction",$d(l,o,"GeneratorFunction"),$d(f),$d(f,o,"Generator"),$d(f,n,function(){return this}),$d(f,"toString",function(){return"[object Generator]"}),(Zd=function(){return{w:i,m:p}})()}function $d(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}($d=function(e,t,r,n){function i(t,r){$d(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function em(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function tm(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){em(i,n,o,a,s,"next",e)}function s(e){em(i,n,o,a,s,"throw",e)}a(void 0)})}}function rm(e){var t,r,n,o=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);o--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new nm(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function nm(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return(nm=function(e){this.s=e,this.n=e.next}).prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new nm(e)}function om(e){return new sm(e,0)}function im(e){return function(){return new am(e.apply(this,arguments))}}function am(e){var t,r;function n(t,r){try{var i=e[t](r),a=i.value,s=a instanceof sm;Promise.resolve(s?a.v:a).then(function(r){if(s){var u="return"===t&&a.k?t:"next";if(!a.k||r.done)return n(u,r);r=e[u](r).value}o(!!i.done,r)},function(e){n("throw",e)})}catch(e){o(2,e)}}function o(e,o){2===e?t.reject(o):t.resolve({value:o,done:e}),(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,o){return new Promise(function(i,a){var s={key:e,arg:o,resolve:i,reject:a,next:null};r?r=r.next=s:(t=r=s,n(e,o))})},"function"!=typeof e.return&&(this.return=void 0)}function sm(e,t){this.v=e,this.k=t}function um(){return(um=im(Zd().m(function e(t,r,n){var o,i,a,s,u,l,c,f,p,h,y,d,m,g,v,b;return Zd().w(function(e){for(;;)switch(e.n){case 0:return o="function"==typeof(A=t).slice?A:new dy("function"==typeof A.read?A:A.getReader()),i=function(){var e=tm(Zd().m(function e(t){return Zd().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,o.slice(t);case 1:return e.a(2,e.v)}},e)}));return function(t){return e.apply(this,arguments)}}(),y=Uint8Array,e.n=1,om(i(8,"magic bytes"));case 1:if(d=e.v,(a=new y(d)).subarray(0,3).every(function(e,t){return Od[t]===e})){e.n=2;break}throw new Error("Not a FlatGeobuf file");case 2:return m=Uint8Array,e.n=3,om(i(4,"header length"));case 3:return g=e.v,a=new m(g),s=new qh(a),u=s.readUint32(0),v=Uint8Array,e.n=4,om(i(u,"header data"));case 4:if(b=e.v,a=new v(b),s=new qh(a),l=Ey(s),n&&n(l),c=l.indexNodeSize,f=l.featuresCount,!(c>0)){e.n=5;break}return p=Sd(f,c),e.n=5,om(i(p,"entire index, w/o rect"));case 5:return e.n=6,om(cm(i,l,r));case 6:if(!(h=e.v)){e.n=8;break}return e.n=7,h;case 7:e.n=5;break;case 8:return e.a(2)}var A},e)}))).apply(this,arguments)}function lm(){return(lm=im(function(e,t,r,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return Zd().m(function i(){var a,s,u,l,c,f,p,h;return Zd().w(function(i){for(;;)switch(i.p=i.n){case 0:return i.n=1,om(Jd.open(e,o));case 1:a=i.v,ld.debug("opened reader"),n&&n(a.header),s=!1,u=!1,i.p=2,c=rm(a.selectBbox(t));case 3:return i.n=4,om(c.next());case 4:if(!(s=!(f=i.v).done)){i.n=6;break}return p=f.value,i.n=5,r(p,a.header);case 5:s=!1,i.n=3;break;case 6:i.n=8;break;case 7:i.p=7,h=i.v,u=!0,l=h;case 8:if(i.p=8,i.p=9,!s||null==c.return){i.n=10;break}return i.n=10,om(c.return());case 10:if(i.p=10,!u){i.n=11;break}throw l;case 11:return i.f(10);case 12:return i.f(8);case 13:return i.a(2)}},i,null,[[9,,10,12],[2,7,8,13]])})()})).apply(this,arguments)}function cm(e,t,r){return fm.apply(this,arguments)}function fm(){return(fm=tm(Zd().m(function e(t,r,n){var o,i,a,s,u,l,c,f,p;return Zd().w(function(e){for(;;)switch(e.n){case 0:return l=Uint8Array,e.n=1,t(4,"feature length");case 1:if(c=e.v,0!==(o=new l(c)).byteLength){e.n=2;break}return e.a(2);case 2:return i=new qh(o),a=i.readUint32(0),f=Uint8Array,e.n=3,t(a,"feature data");case 3:return p=e.v,o=new f(p),(s=new Uint8Array(a+4)).set(o,4),(i=new qh(s)).setPosition(Id),u=sy.getRootAsFeature(i),e.a(2,n(u,r))}},e)}))).apply(this,arguments)}function pm(e,t){return{type:"FeatureCollection",features:function(e,t,r){if(!e.subarray(0,3).every(function(e,t){return Od[t]===e}))throw new Error("Not a FlatGeobuf file");var n=new qh(e),o=n.readUint32(Od.length);n.setPosition(Od.length+Id);var i=Ey(n);r&&r(i);var a=Od.length+Id+o,s=i.indexNodeSize,u=i.featuresCount;s>0&&(a+=Sd(u,s));for(var l=[];a3&&void 0!==arguments[3]&&arguments[3])}function dm(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return e instanceof Uint8Array?pm(e,r):e instanceof ReadableStream?hm(e,r):ym(e,t,r,n)}am.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},am.prototype.next=function(e){return this._invoke("next",e)},am.prototype.throw=function(e){return this._invoke("throw",e)},am.prototype.return=function(e){return this._invoke("return",e)};var mm=r(833),gm=r.n(mm);function vm(e){"@babel/helpers - typeof";return(vm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function bm(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return Am(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Am(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Am(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Am(f,"constructor",l),Am(l,"constructor",u),u.displayName="GeneratorFunction",Am(l,o,"GeneratorFunction"),Am(f),Am(f,o,"Generator"),Am(f,n,function(){return this}),Am(f,"toString",function(){return"[object Generator]"}),(bm=function(){return{w:i,m:p}})()}function Am(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Am=function(e,t,r,n){function i(t,r){Am(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function wm(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Sm(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){wm(i,n,o,a,s,"next",e)}function s(e){wm(i,n,o,a,s,"throw",e)}a(void 0)})}}function Cm(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=t.layerID?t.layerID:B.createUniqueID("FGBLayer_"),this.layerId=this.id+"outer",this.sourceId=this.layerId,this.options=t,this.strategy=t.strategy||"bbox",this.url=t.url,this.layerType="",this.extent=t.extent,this.init()},(t=[{key:"init",value:function(){"bbox"===this.strategy&&(this.loadedExtentsRtree_=new(gm()))}},{key:"iterateFeatures",value:function(){var e=Sm(bm().m(function e(t){var r,n,o,i,a,s,u,l;return bm().w(function(e){for(;;)switch(e.p=e.n){case 0:r={type:"FeatureCollection",features:[]},n=!1,o=!1,e.p=1,a=_m(t);case 2:return e.n=3,a.next();case 3:if(!(n=!(s=e.v).done)){e.n=5;break}u=s.value,this.options.featureLoader&&"function"==typeof this.options.featureLoader&&(u=this.options.featureLoader(u)),this.layerType||(this.layerType=Im[u.geometry.type]),r.features.push(u);case 4:n=!1,e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,l=e.v,o=!0,i=l;case 7:if(e.p=7,e.p=8,!n||null==a.return){e.n=9;break}return e.n=9,a.return();case 9:if(e.p=9,!o){e.n=10;break}throw i;case 10:return e.f(9);case 11:return e.f(7);case 12:return e.a(2,r)}},e,this,[[8,,9,11],[1,6,7,12]])}));return function(t){return e.apply(this,arguments)}}()},{key:"_loadData",value:function(){var e=Sm(bm().m(function e(t){var r,n,o=this;return bm().w(function(e){for(;;)switch(e.n){case 0:if(n={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3]},t.length){e.n=2;break}return e.n=1,this._getStream(this.url);case 1:r=e.v,e.n=3;break;case 2:n.value={extent:t.slice()},this.loadedExtentsRtree_.insert(n);case 3:return e.n=4,dm(r&&r.body||this.url,n,function(e){o.layerType=Im[e.geometryType]});case 4:return e.a(2,e.v)}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_getStream",value:function(){var e=Sm(bm().m(function e(t){return bm().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,H.get(t,{},{withoutFormatSuffix:!0}).then(function(e){return e});case 1:return e.a(2,e.v)}},e)}));return function(t){return e.apply(this,arguments)}}()},{key:"_containsExtent",value:function(e,t){return e[0]<=t[0]&&t[2]<=e[2]&&e[1]<=t[1]&&t[3]<=e[3]}},{key:"_getInExtent",value:function(e){var t={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]};return this.loadedExtentsRtree_.search(t).map(function(e){return e.value})}},{key:"_forEachInExtent",value:function(e,t){return this._forEach(this._getInExtent(e),t)}},{key:"_forEach",value:function(e,t){for(var r,n=0,o=e.length;n3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Tm(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Tm(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Tm(f,"constructor",l),Tm(l,"constructor",u),u.displayName="GeneratorFunction",Tm(l,o,"GeneratorFunction"),Tm(f),Tm(f,o,"Generator"),Tm(f,n,function(){return this}),Tm(f,"toString",function(){return"[object Generator]"}),(km=function(){return{w:i,m:p}})()}function Tm(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Tm=function(e,t,r,n){function i(t,r){Tm(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function jm(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Mm(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){jm(i,n,o,a,s,"next",e)}function s(e){jm(i,n,o,a,s,"throw",e)}a(void 0)})}}function Bm(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=t.layerID?t.layerID:B.createUniqueID("FGBLayer_"),this.layerId=this.id+"outer",this._sourceId=this.layerId,this.options=t,this.strategy=t.strategy||"bbox",this.url=t.url,this.layerType="",this.extent=t.extent,this.overlay=!0,this.type="custom",this.renderingMode="3d",this._updateFeaturesFn=this._updateFeatures.bind(this),this.interaction=!0,this.events="all"},(t=[{key:"onAdd",value:function(e){this.map=e;var t,r,n,o=[];if("bbox"===this.strategy){var i=this.map.getBounds().toArray();o=[i[0][0],i[0][1],i[1][0],i[1][1]],this.map.on("moveend",this._updateFeaturesFn)}if(this.extent){var a=(t=this.extent,n=[],function(e,t){return e[0]<=t[2]&&e[2]>=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}(t,r=o)&&(t[0]>r[0]?n[0]=t[0]:n[0]=r[0],t[1]>r[1]?n[1]=t[1]:n[1]=r[1],t[2]0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=t,this.url=t.url,this.layerId=t.id,this.autoplay=void 0===t.autoplay||t.autoplay,this.loop=void 0===t.loop||t.loop},(t=[{key:"_createVideoElement",value:function(){var e=document.createElement("video");e.id=this.layerId,e.className="video-js",e.style.position="fixed",e.style.left="-300%",e.setAttribute("crossorigin","anonymous"),document.body.appendChild(e)}},{key:"createVideo",value:function(){this._createVideoElement();var e=this._getVideoOptions();return this.video=Fm()(this.layerId,e,function(){}),this.video}},{key:"_getVideoOptions",value:function(){if(this.url){var e={autoplay:this.autoplay,muted:!0,loop:this.loop};return this.url.includes("mp4")||this.url.includes("MP4")?e.sources=[{src:this.url,type:"video/mp4"}]:this.url.includes("flv")||this.url.includes("FLV")?e={loop:this.loop,autoplay:this.autoplay,muted:!0,techOrder:["html5","flvjs"],flvjs:{mediaDataSource:{isLive:!0,cors:!0,withCredentials:!1}},sources:[{src:this.url,type:"video/x-flv"}]}:(this.url.includes("m3u8")||this.url.includes("M3U8"))&&(e.sources=[{src:this.url}]),e}}},{key:"getVideoDomId",value:function(){if(this.url){var e;if(this.url.includes("flv")){var t=document.querySelector("#".concat(this.layerId));e="".concat(this.layerId,"_flvjs_api"),t.style.position="fixed",t.style.left="-200%"}else e=this.video.el_.firstChild.id;return e}}}])&&Gm(e.prototype,t),r&&Gm(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),Hm=function(){try{return turf}catch(e){return{}}}();function qm(e){"@babel/helpers - typeof";return(qm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vm(e,t){for(var r=0;rn)break;if(s>=r){var u=s-t;u=3?{authority:t[1],code:parseInt(t[2],10)}:null}},{key:"convertUnit",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"unit";if(!e||e.length<3)return{type:t,name:"unknown",conversion_factor:null};var r=e[1],n=parseFloat(e[2])||null,o=e.find(function(e){return Array.isArray(e)&&"ID"===e[0]});return{type:t,name:r,conversion_factor:n,id:o?{authority:o[1],code:parseInt(o[2],10)}:null}}},{key:"convertAxis",value:function(e){var t,r=e[1]||"Unknown",n=r.match(/^\((.)\)$/);if(n){var o=n[1].toUpperCase();if("E"===o)t="east";else if("N"===o)t="north";else if("U"===o)t="up";else{if(!e[2])throw new Error("Unknown axis abbreviation: ".concat(o));t=e[2]}}else t=e[2]||"unknown";var i=e.find(function(e){return Array.isArray(e)&&"ORDER"===e[0]}),a=i?parseInt(i[1],10):null,s=e.find(function(e){return Array.isArray(e)&&("LENGTHUNIT"===e[0]||"ANGLEUNIT"===e[0]||"SCALEUNIT"===e[0])});return{name:r,direction:t,unit:this.convertUnit(s),order:a}}},{key:"extractAxes",value:function(e){var t=this;return e.filter(function(e){return Array.isArray(e)&&"AXIS"===e[0]}).map(function(e){return t.convertAxis(e)}).sort(function(e,t){return(e.order||0)-(t.order||0)})}},{key:"convert",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(e[0]){case"PROJCRS":r.type="ProjectedCRS",r.name=e[1],r.base_crs=e.find(function(e){return Array.isArray(e)&&"BASEGEOGCRS"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"BASEGEOGCRS"===e[0]})):null,r.conversion=e.find(function(e){return Array.isArray(e)&&"CONVERSION"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"CONVERSION"===e[0]})):null;var n=e.find(function(e){return Array.isArray(e)&&"CS"===e[0]});n&&(r.coordinate_system={type:n[1],axis:this.extractAxes(e)});var o=e.find(function(e){return Array.isArray(e)&&"LENGTHUNIT"===e[0]});if(o){var i=this.convertUnit(o);r.coordinate_system.unit=i}r.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":r.type="GEODCRS"===e[0]?"GeodeticCRS":"GeographicCRS",r.name=e[1];var a=e.find(function(e){return Array.isArray(e)&&("DATUM"===e[0]||"ENSEMBLE"===e[0])});if(a){var s=this.convert(a);"ENSEMBLE"===a[0]?r.datum_ensemble=s:r.datum=s;var u=e.find(function(e){return Array.isArray(e)&&"PRIMEM"===e[0]});u&&"Greenwich"!==u[1]&&(s.prime_meridian={name:u[1],longitude:parseFloat(u[2])})}r.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(e)},r.id=this.getId(e);break;case"DATUM":r.type="GeodeticReferenceFrame",r.name=e[1],r.ellipsoid=e.find(function(e){return Array.isArray(e)&&"ELLIPSOID"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"ELLIPSOID"===e[0]})):null;break;case"ENSEMBLE":r.type="DatumEnsemble",r.name=e[1],r.members=e.filter(function(e){return Array.isArray(e)&&"MEMBER"===e[0]}).map(function(e){return{type:"DatumEnsembleMember",name:e[1],id:t.getId(e)}});var l=e.find(function(e){return Array.isArray(e)&&"ENSEMBLEACCURACY"===e[0]});l&&(r.accuracy=parseFloat(l[1]));var c=e.find(function(e){return Array.isArray(e)&&"ELLIPSOID"===e[0]});c&&(r.ellipsoid=this.convert(c)),r.id=this.getId(e);break;case"ELLIPSOID":r.type="Ellipsoid",r.name=e[1],r.semi_major_axis=parseFloat(e[2]),r.inverse_flattening=parseFloat(e[3]);e.find(function(e){return Array.isArray(e)&&"LENGTHUNIT"===e[0]})&&this.convert(e.find(function(e){return Array.isArray(e)&&"LENGTHUNIT"===e[0]}),r);break;case"CONVERSION":r.type="Conversion",r.name=e[1],r.method=e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})):null,r.parameters=e.filter(function(e){return Array.isArray(e)&&"PARAMETER"===e[0]}).map(function(e){return t.convert(e)});break;case"METHOD":r.type="Method",r.name=e[1],r.id=this.getId(e);break;case"PARAMETER":r.type="Parameter",r.name=e[1],r.value=parseFloat(e[2]),r.unit=this.convertUnit(e.find(function(e){return Array.isArray(e)&&("LENGTHUNIT"===e[0]||"ANGLEUNIT"===e[0]||"SCALEUNIT"===e[0])})),r.id=this.getId(e);break;case"BOUNDCRS":r.type="BoundCRS";var f=e.find(function(e){return Array.isArray(e)&&"SOURCECRS"===e[0]});if(f){var p=f.find(function(e){return Array.isArray(e)});r.source_crs=p?this.convert(p):null}var h=e.find(function(e){return Array.isArray(e)&&"TARGETCRS"===e[0]});if(h){var y=h.find(function(e){return Array.isArray(e)});r.target_crs=y?this.convert(y):null}var d=e.find(function(e){return Array.isArray(e)&&"ABRIDGEDTRANSFORMATION"===e[0]});r.transformation=d?this.convert(d):null;break;case"ABRIDGEDTRANSFORMATION":if(r.type="Transformation",r.name=e[1],r.method=e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})):null,r.parameters=e.filter(function(e){return Array.isArray(e)&&("PARAMETER"===e[0]||"PARAMETERFILE"===e[0])}).map(function(e){return"PARAMETER"===e[0]?t.convert(e):"PARAMETERFILE"===e[0]?{name:e[1],value:e[2],id:{authority:"EPSG",code:8656}}:void 0}),7===r.parameters.length){var m=r.parameters[6];"Scale difference"===m.name&&(m.value=Math.round(1e12*(m.value-1))/1e6)}r.id=this.getId(e);break;case"AXIS":r.coordinate_system||(r.coordinate_system={type:"unspecified",axis:[]}),r.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":var g=this.convertUnit(e,"LinearUnit");r.coordinate_system&&r.coordinate_system.axis&&r.coordinate_system.axis.forEach(function(e){e.unit||(e.unit=g)}),g.conversion_factor&&1!==g.conversion_factor&&r.semi_major_axis&&(r.semi_major_axis={value:r.semi_major_axis,unit:g});break;default:r.keyword=e[0]}return r}}],(t=null)&&jg(e.prototype,t),r&&jg(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Ng(e){"@babel/helpers - typeof";return(Ng="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rg(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{};return(r=t,n="convert",o=this,a=Fg(Qg(1&(i=2)?r.prototype:r),n,o),2&i&&"function"==typeof a?function(e){return a.apply(o,e)}:a)([e,s]),s.coordinate_system&&"Cartesian"===s.coordinate_system.subtype&&delete s.coordinate_system,s.usage&&delete s.usage,s}}],(n=null)&&Rg(r.prototype,n),o&&Rg(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function zg(e){"@babel/helpers - typeof";return(zg="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hg(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{};(r=t,n="convert",o=this,a=Kg(Yg(1&(i=2)?r.prototype:r),n,o),2&i&&"function"==typeof a?function(e){return a.apply(o,e)}:a)([e,s]);var u=e.find(function(e){return Array.isArray(e)&&"CS"===e[0]});u&&(s.coordinate_system={subtype:u[1],axis:this.extractAxes(e)});var l=e.find(function(e){return Array.isArray(e)&&"USAGE"===e[0]});if(l){var c=l.find(function(e){return Array.isArray(e)&&"SCOPE"===e[0]}),f=l.find(function(e){return Array.isArray(e)&&"AREA"===e[0]}),p=l.find(function(e){return Array.isArray(e)&&"BBOX"===e[0]});s.usage={},c&&(s.usage.scope=c[1]),f&&(s.usage.area=f[1]),p&&(s.usage.bbox=p.slice(1))}return s}}],(n=null)&&Hg(r.prototype,n),o&&Hg(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Xg(e){return("2019"===function(e){return e.find(function(e){return Array.isArray(e)&&"USAGE"===e[0]})?"2019":e.find(function(e){return Array.isArray(e)&&"CS"===e[0]})?"2015":("BOUNDCRS"===e[0]||"PROJCRS"===e[0]||e[0],"2015")}(e)?Wg:Ug).convert(e)}var Zg=function(e){return new iv(e).output()},$g=1,ev=/\s/,tv=/[A-Za-z]/,rv=/[A-Za-z84_]/,nv=/[,\]]/,ov=/[\d\.E\-\+]/;function iv(e){if("string"!=typeof e)throw new Error("not a string");this.text=e.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=$g}function av(e,t,r){Array.isArray(t)&&(r.unshift(t),t=null);var n=t?{}:e,o=r.reduce(function(e,t){return sv(t,e),e},n);t&&(e[t]=o)}function sv(e,t){if(Array.isArray(e)){var r=e.shift();if("PARAMETER"===r&&(r=e.shift()),1===e.length)return Array.isArray(e[0])?(t[r]={},void sv(e[0],t[r])):void(t[r]=e[0]);if(e.length)if("TOWGS84"!==r){if("AXIS"===r)return r in t||(t[r]=[]),void t[r].push(e);var n;switch(Array.isArray(r)||(t[r]={}),r){case"UNIT":case"PRIMEM":case"VERT_DATUM":return t[r]={name:e[0].toLowerCase(),convert:e[1]},void(3===e.length&&sv(e[2],t[r]));case"SPHEROID":case"ELLIPSOID":return t[r]={name:e[0],a:e[1],rf:e[2]},void(4===e.length&&sv(e[3],t[r]));case"EDATUM":case"ENGINEERINGDATUM":case"LOCAL_DATUM":case"DATUM":case"VERT_CS":case"VERTCRS":case"VERTICALCRS":return e[0]=["name",e[0]],void av(t,r,e);case"COMPD_CS":case"COMPOUNDCRS":case"FITTED_CS":case"PROJECTEDCRS":case"PROJCRS":case"GEOGCS":case"GEOCCS":case"PROJCS":case"LOCAL_CS":case"GEODCRS":case"GEODETICCRS":case"GEODETICDATUM":case"ENGCRS":case"ENGINEERINGCRS":return e[0]=["name",e[0]],av(t,r,e),void(t[r].type=r);default:for(n=-1;++n=this.text.length)return;e=this.text[this.place++]}switch(this.state){case $g:return this.neutral(e);case 2:return this.keyword(e);case 4:return this.quoted(e);case 5:return this.afterquote(e);case 3:return this.number(e);case-1:return}},iv.prototype.afterquote=function(e){if('"'===e)return this.word+='"',void(this.state=4);if(nv.test(e))return this.word=this.word.trim(),void this.afterItem(e);throw new Error("havn't handled \""+e+'" in afterquote yet, index '+this.place)},iv.prototype.afterItem=function(e){return","===e?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=$g)):"]"===e?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=$g,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},iv.prototype.number=function(e){if(!ov.test(e)){if(nv.test(e))return this.word=parseFloat(this.word),void this.afterItem(e);throw new Error("havn't handled \""+e+'" in number yet, index '+this.place)}this.word+=e},iv.prototype.quoted=function(e){'"'!==e?this.word+=e:this.state=5},iv.prototype.keyword=function(e){if(rv.test(e))this.word+=e;else{if("["===e){var t=[];return t.push(this.word),this.level++,null===this.root?this.root=t:this.currentObject.push(t),this.stack.push(this.currentObject),this.currentObject=t,void(this.state=$g)}if(!nv.test(e))throw new Error("havn't handled \""+e+'" in keyword yet, index '+this.place);this.afterItem(e)}},iv.prototype.neutral=function(e){if(tv.test(e))return this.word=e,void(this.state=2);if('"'===e)return this.word="",void(this.state=4);if(ov.test(e))return this.word=e,void(this.state=3);if(!nv.test(e))throw new Error("havn't handled \""+e+'" in neutral yet, index '+this.place);this.afterItem(e)},iv.prototype.output=function(){for(;this.place0?90:-90),delete e.lat1):(e.lat0=lv(e.lat1>0?90:-90),e.lat_ts=e.lat1,delete e.lat1)}function fv(e){"@babel/helpers - typeof";return(fv="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pv(e){var t={units:null,to_meter:void 0};return"string"==typeof e?(t.units=e.toLowerCase(),"metre"===t.units&&(t.units="meter"),"meter"===t.units&&(t.to_meter=1)):e&&e.name&&(t.units=e.name.toLowerCase(),"metre"===t.units&&(t.units="meter"),t.to_meter=e.conversion_factor),t}function hv(e){return"object"===fv(e)?e.value*e.unit.conversion_factor:e}function yv(e,t){e.ellipsoid.radius?(t.a=e.ellipsoid.radius,t.rf=0):(t.a=hv(e.ellipsoid.semi_major_axis),void 0!==e.ellipsoid.inverse_flattening?t.rf=e.ellipsoid.inverse_flattening:void 0!==e.ellipsoid.semi_major_axis&&void 0!==e.ellipsoid.semi_minor_axis&&(t.rf=t.a/(t.a-hv(e.ellipsoid.semi_minor_axis))))}function dv(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e&&"object"===fv(e)?"BoundCRS"===e.type?(dv(e.source_crs,t),e.transformation&&(e.transformation.method&&"NTv2"===e.transformation.method.name?t.nadgrids=e.transformation.parameters[0].value:t.datum_params=e.transformation.parameters.map(function(e){return e.value})),t):(Object.keys(e).forEach(function(r){var n=e[r];if(null!==n)switch(r){case"name":if(t.srsCode)break;t.name=n,t.srsCode=n;break;case"type":"GeographicCRS"===n?t.projName="longlat":"GeodeticCRS"===n?e.coordinate_system&&"Cartesian"===e.coordinate_system.subtype?t.projName="geocent":t.projName="longlat":"ProjectedCRS"===n&&e.conversion&&e.conversion.method&&(t.projName=e.conversion.method.name);break;case"datum":case"datum_ensemble":n.ellipsoid&&(t.ellps=n.ellipsoid.name,yv(n,t)),n.prime_meridian&&(t.from_greenwich=n.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":t.ellps=n.name,yv(n,t);break;case"prime_meridian":t.long0=(n.longitude||0)*Math.PI/180;break;case"coordinate_system":if(n.axis){var o={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},i=n.axis.map(function(e){return o[e.direction.toLowerCase()]});if(i.every(Boolean)&&(t.axis=i.join(""),2===t.axis.length&&(t.axis+="u")),n.unit){var a=pv(n.unit),s=a.units,u=a.to_meter;t.units=s,t.to_meter=u}else if(n.axis[0]&&n.axis[0].unit){var l=pv(n.axis[0].unit),c=l.units,f=l.to_meter;t.units=c,t.to_meter=f}}break;case"id":n.authority&&n.code&&(t.title=n.authority+":"+n.code);break;case"conversion":n.method&&n.method.name&&(t.projName=n.method.name),n.parameters&&n.parameters.forEach(function(e){var r=e.name.toLowerCase().replace(/\s+/g,"_"),n=e.value;e.unit&&e.unit.conversion_factor?t[r]=n*e.unit.conversion_factor:"degree"===e.unit?t[r]=n*Math.PI/180:t[r]=n});break;case"unit":n.name&&(t.units=n.name.toLowerCase(),"metre"===t.units&&(t.units="meter")),n.conversion_factor&&(t.to_meter=n.conversion_factor);break;case"base_crs":dv(n,t),t.datumCode=n.id?n.id.authority+"_"+n.id.code:n.name}}),void 0!==t.latitude_of_false_origin&&(t.lat0=t.latitude_of_false_origin),void 0!==t.longitude_of_false_origin&&(t.long0=t.longitude_of_false_origin),void 0!==t.latitude_of_standard_parallel&&(t.lat0=t.latitude_of_standard_parallel,t.lat1=t.latitude_of_standard_parallel),void 0!==t.latitude_of_1st_standard_parallel&&(t.lat1=t.latitude_of_1st_standard_parallel),void 0!==t.latitude_of_2nd_standard_parallel&&(t.lat2=t.latitude_of_2nd_standard_parallel),void 0!==t.latitude_of_projection_centre&&(t.lat0=t.latitude_of_projection_centre),void 0!==t.longitude_of_projection_centre&&(t.longc=t.longitude_of_projection_centre),void 0!==t.easting_at_false_origin&&(t.x0=t.easting_at_false_origin),void 0!==t.northing_at_false_origin&&(t.y0=t.northing_at_false_origin),void 0!==t.latitude_of_natural_origin&&(t.lat0=t.latitude_of_natural_origin),void 0!==t.longitude_of_natural_origin&&(t.long0=t.longitude_of_natural_origin),void 0!==t.longitude_of_origin&&(t.long0=t.longitude_of_origin),void 0!==t.false_easting&&(t.x0=t.false_easting),t.easting_at_projection_centre&&(t.x0=t.easting_at_projection_centre),void 0!==t.false_northing&&(t.y0=t.false_northing),t.northing_at_projection_centre&&(t.y0=t.northing_at_projection_centre),void 0!==t.standard_parallel_1&&(t.lat1=t.standard_parallel_1),void 0!==t.standard_parallel_2&&(t.lat2=t.standard_parallel_2),void 0!==t.scale_factor_at_natural_origin&&(t.k0=t.scale_factor_at_natural_origin),void 0!==t.scale_factor_at_projection_centre&&(t.k0=t.scale_factor_at_projection_centre),void 0!==t.scale_factor_on_pseudo_standard_parallel&&(t.k0=t.scale_factor_on_pseudo_standard_parallel),void 0!==t.azimuth&&(t.alpha=t.azimuth),void 0!==t.azimuth_at_projection_centre&&(t.alpha=t.azimuth_at_projection_centre),t.angle_from_rectified_to_skew_grid&&(t.rectified_grid_angle=t.angle_from_rectified_to_skew_grid),cv(t),t):e}function mv(e){"@babel/helpers - typeof";return(mv="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}r.dn(bv);var gv=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function vv(e){if(e.AUTHORITY){var t=Object.keys(e.AUTHORITY)[0];t&&t in e.AUTHORITY&&(e.title=t+":"+e.AUTHORITY[t])}if("GEOGCS"===e.type?e.projName="longlat":"LOCAL_CS"===e.type?(e.projName="identity",e.local=!0):"object"===mv(e.PROJECTION)?e.projName=Object.keys(e.PROJECTION)[0]:e.projName=e.PROJECTION,e.AXIS){for(var r="",n=0,o=e.AXIS.length;n-1}}(t))return wv["EPSG:3857"];var r=function(e){var t=Pg(e,"extension");if(t)return Pg(t,"proj4")}(t);return r?kg(r):t}return function(e){return"+"===e[0]}(e)?kg(e):void 0};function Ev(e,t){var r,n;if(e=e||{},!t)return e;for(n in t)void 0!==(r=t[n])&&(e[n]=r);return e}function _v(e,t,r){var n=e*t;return r/Math.sqrt(1-n*n)}function Ov(e){return e<0?-1:1}function Iv(e){return Math.abs(e)<=_g?e:e-Ov(e)*Eg}function xv(e,t,r){var n=e*r,o=.5*e;return n=Math.pow((1-n)/(1+n),o),Math.tan(.5*(mg-t))/n}function Pv(e,t){for(var r,n,o=.5*e,i=mg-2*Math.atan(t),a=0;a<=15;a++)if(r=e*Math.sin(i),i+=n=mg-2*Math.atan(t*Math.pow((1-r)/(1+r),o))-i,Math.abs(n)<=1e-10)return i;return-9999}r.dn(Ev),r.dn(_v),r.dn(Ov),r.dn(Iv),r.dn(xv),r.dn(Pv);function kv(e){return e}var Tv=[{init:function(){var e=this.b/this.a;this.es=1-e*e,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=_v(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)},forward:function(e){var t,r,n=e.x,o=e.y;if(o*Sg>90&&o*Sg<-90&&n*Sg>180&&n*Sg<-180)return null;if(Math.abs(Math.abs(o)-mg)<=Ag)return null;if(this.sphere)t=this.x0+this.a*this.k0*Iv(n-this.long0),r=this.y0+this.a*this.k0*Math.log(Math.tan(Cg+.5*o));else{var i=Math.sin(o),a=xv(this.e,o,i);t=this.x0+this.a*this.k0*Iv(n-this.long0),r=this.y0-this.a*this.k0*Math.log(a)}return e.x=t,e.y=r,e},inverse:function(e){var t,r,n=e.x-this.x0,o=e.y-this.y0;if(this.sphere)r=mg-2*Math.atan(Math.exp(-o/(this.a*this.k0)));else{var i=Math.exp(-o/(this.a*this.k0));if(-9999===(r=Pv(this.e,i)))return null}return t=Iv(this.long0+n/(this.a*this.k0)),e.x=t,e.y=r,e},names:["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"]},{init:function(){},forward:kv,inverse:kv,names:["longlat","identity"]}],jv={},Mv=[];function Bv(e,t){var r=Mv.length;return e.names?(Mv[r]=e,e.names.forEach(function(e){jv[e.toLowerCase()]=r}),this):(console.log(t),!0)}function Nv(e){return e.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}var Rv={start:function(){Tv.forEach(Bv)},add:Bv,get:function(e){if(!e)return!1;var t=e.toLowerCase();return void 0!==jv[t]&&Mv[jv[t]]?Mv[jv[t]]:(t=Nv(t))in jv&&Mv[jv[t]]?Mv[jv[t]]:void 0}},Lv={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:6378249.2,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const Dv=Lv.WGS84;var Fv={wgs84:{towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},ch1903:{towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},ggrs87:{towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},nad83:{towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},nad27:{nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},potsdam:{towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},carthage:{towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},hermannskogel:{towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},mgi:{towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Militar-Geographische Institut"},osni52:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},ire65:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},rassadiran:{towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},nzgd49:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},osgb36:{towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Ordnance Survey of Great Britain 1936"},s_jtsk:{towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},beduaram:{towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},gunung_segara:{towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},rnb72:{towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"},EPSG_5451:{towgs84:"6.41,-49.05,-11.28,1.5657,0.5242,6.9718,-5.7649"},IGNF_LURESG:{towgs84:"-192.986,13.673,-39.309,-0.4099,-2.9332,2.6881,0.43"},EPSG_4614:{towgs84:"-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065"},EPSG_4615:{towgs84:"-494.088,-312.129,279.877,-1.423,-1.013,1.59,-0.748"},ESRI_37241:{towgs84:"-76.822,257.457,-12.817,2.136,-0.033,-2.392,-0.031"},ESRI_37249:{towgs84:"-440.296,58.548,296.265,1.128,10.202,4.559,-0.438"},ESRI_37245:{towgs84:"-511.151,-181.269,139.609,1.05,2.703,1.798,3.071"},EPSG_4178:{towgs84:"24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01"},EPSG_4622:{towgs84:"-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,1.8984"},EPSG_4625:{towgs84:"126.93,547.94,130.41,-2.7867,5.1612,-0.8584,13.8227"},EPSG_5252:{towgs84:"0.023,0.036,-0.068,0.00176,0.00912,-0.01136,0.00439"},EPSG_4314:{towgs84:"597.1,71.4,412.1,0.894,0.068,-1.563,7.58"},EPSG_4282:{towgs84:"-178.3,-316.7,-131.5,5.278,6.077,10.979,19.166"},EPSG_4231:{towgs84:"-83.11,-97.38,-117.22,0.0276,-0.2167,0.2147,0.1218"},EPSG_4274:{towgs84:"-230.994,102.591,25.199,0.633,-0.239,0.9,1.95"},EPSG_4134:{towgs84:"-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006"},EPSG_4254:{towgs84:"18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013"},EPSG_4159:{towgs84:"-194.513,-63.978,-25.759,-3.4027,3.756,-3.352,-0.9175"},EPSG_4687:{towgs84:"0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093"},EPSG_4227:{towgs84:"-83.58,-397.54,458.78,-17.595,-2.847,4.256,3.225"},EPSG_4746:{towgs84:"599.4,72.4,419.2,-0.062,-0.022,-2.723,6.46"},EPSG_4745:{towgs84:"612.4,77,440.2,-0.054,0.057,-2.797,2.55"},EPSG_6311:{towgs84:"8.846,-4.394,-1.122,-0.00237,-0.146528,0.130428,0.783926"},EPSG_4289:{towgs84:"565.7381,50.4018,465.2904,-1.91514,1.60363,-9.09546,4.07244"},EPSG_4230:{towgs84:"-68.863,-134.888,-111.49,-0.53,-0.14,0.57,-3.4"},EPSG_4154:{towgs84:"-123.02,-158.95,-168.47"},EPSG_4156:{towgs84:"570.8,85.7,462.8,4.998,1.587,5.261,3.56"},EPSG_4299:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4179:{towgs84:"33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84"},EPSG_4313:{towgs84:"-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747"},EPSG_4194:{towgs84:"163.511,127.533,-159.789"},EPSG_4195:{towgs84:"105,326,-102.5"},EPSG_4196:{towgs84:"-45,417,-3.5"},EPSG_4611:{towgs84:"-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-1.094246"},EPSG_4633:{towgs84:"137.092,131.66,91.475,-1.9436,-11.5993,-4.3321,-7.4824"},EPSG_4641:{towgs84:"-408.809,366.856,-412.987,1.8842,-0.5308,2.1655,-121.0993"},EPSG_4643:{towgs84:"-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002"},EPSG_4300:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4188:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4660:{towgs84:"982.6087,552.753,-540.873,32.39344,-153.25684,-96.2266,16.805"},EPSG_4662:{towgs84:"97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259"},EPSG_3906:{towgs84:"577.88891,165.22205,391.18289,4.9145,-0.94729,-13.05098,7.78664"},EPSG_4307:{towgs84:"-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547"},EPSG_6892:{towgs84:"-76.269,-16.683,68.562,-6.275,10.536,-4.286,-13.686"},EPSG_4690:{towgs84:"221.597,152.441,176.523,2.403,1.3893,0.884,11.4648"},EPSG_4691:{towgs84:"218.769,150.75,176.75,3.5231,2.0037,1.288,10.9817"},EPSG_4629:{towgs84:"72.51,345.411,79.241,-1.5862,-0.8826,-0.5495,1.3653"},EPSG_4630:{towgs84:"165.804,216.213,180.26,-0.6251,-0.4515,-0.0721,7.4111"},EPSG_4692:{towgs84:"217.109,86.452,23.711,0.0183,-0.0003,0.007,-0.0093"},EPSG_9333:{towgs84:"0,0,0,-8.393,0.749,-10.276,0"},EPSG_9059:{towgs84:"0,0,0"},EPSG_4312:{towgs84:"601.705,84.263,485.227,4.7354,1.3145,5.393,-2.3887"},EPSG_4123:{towgs84:"-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496"},EPSG_4309:{towgs84:"-124.45,183.74,44.64,-0.4384,0.5446,-0.9706,-2.1365"},ESRI_104106:{towgs84:"-283.088,-70.693,117.445,-1.157,0.059,-0.652,-4.058"},EPSG_4281:{towgs84:"-219.247,-73.802,269.529"},EPSG_4322:{towgs84:"0,0,4.5"},EPSG_4324:{towgs84:"0,0,1.9"},EPSG_4284:{towgs84:"43.822,-108.842,-119.585,1.455,-0.761,0.737,0.549"},EPSG_4277:{towgs84:"446.448,-125.157,542.06,0.15,0.247,0.842,-20.489"},EPSG_4207:{towgs84:"-282.1,-72.2,120,-1.529,0.145,-0.89,-4.46"},EPSG_4688:{towgs84:"347.175,1077.618,2623.677,33.9058,-70.6776,9.4013,186.0647"},EPSG_4689:{towgs84:"410.793,54.542,80.501,-2.5596,-2.3517,-0.6594,17.3218"},EPSG_4720:{towgs84:"0,0,4.5"},EPSG_4273:{towgs84:"278.3,93,474.5,7.889,0.05,-6.61,6.21"},EPSG_4240:{towgs84:"204.64,834.74,293.8"},EPSG_4817:{towgs84:"278.3,93,474.5,7.889,0.05,-6.61,6.21"},ESRI_104131:{towgs84:"426.62,142.62,460.09,4.98,4.49,-12.42,-17.1"},EPSG_4265:{towgs84:"-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68"},EPSG_4263:{towgs84:"-111.92,-87.85,114.5,1.875,0.202,0.219,0.032"},EPSG_4298:{towgs84:"-689.5937,623.84046,-65.93566,-0.02331,1.17094,-0.80054,5.88536"},EPSG_4270:{towgs84:"-253.4392,-148.452,386.5267,0.15605,0.43,-0.1013,-0.0424"},EPSG_4229:{towgs84:"-121.8,98.1,-10.7"},EPSG_4220:{towgs84:"-55.5,-348,-229.2"},EPSG_4214:{towgs84:"12.646,-155.176,-80.863"},EPSG_4232:{towgs84:"-345,3,223"},EPSG_4238:{towgs84:"-1.977,-13.06,-9.993,0.364,0.254,0.689,-1.037"},EPSG_4168:{towgs84:"-170,33,326"},EPSG_4131:{towgs84:"199,931,318.9"},EPSG_4152:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_5228:{towgs84:"572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378"},EPSG_8351:{towgs84:"485.021,169.465,483.839,7.786342,4.397554,4.102655,0"},EPSG_4683:{towgs84:"-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06"},EPSG_4133:{towgs84:"0,0,0"},EPSG_7373:{towgs84:"0.819,-0.5762,-1.6446,-0.00378,-0.03317,0.00318,0.0693"},EPSG_9075:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_9072:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_9294:{towgs84:"1.16835,-1.42001,-2.24431,-0.00822,-0.05508,0.01818,0.23388"},EPSG_4212:{towgs84:"-267.434,173.496,181.814,-13.4704,8.7154,7.3926,14.7492"},EPSG_4191:{towgs84:"-44.183,-0.58,-38.489,2.3867,2.7072,-3.5196,-8.2703"},EPSG_4237:{towgs84:"52.684,-71.194,-13.975,-0.312,-0.1063,-0.3729,1.0191"},EPSG_4740:{towgs84:"-1.08,-0.27,-0.9"},EPSG_4124:{towgs84:"419.3836,99.3335,591.3451,0.850389,1.817277,-7.862238,-0.99496"},EPSG_5681:{towgs84:"584.9636,107.7175,413.8067,1.1155,0.2824,-3.1384,7.9922"},EPSG_4141:{towgs84:"23.772,17.49,17.859,-0.3132,-1.85274,1.67299,-5.4262"},EPSG_4204:{towgs84:"-85.645,-273.077,-79.708,2.289,-1.421,2.532,3.194"},EPSG_4319:{towgs84:"226.702,-193.337,-35.371,-2.229,-4.391,9.238,0.9798"},EPSG_4200:{towgs84:"24.82,-131.21,-82.66"},EPSG_4130:{towgs84:"0,0,0"},EPSG_4127:{towgs84:"-82.875,-57.097,-156.768,-2.158,1.524,-0.982,-0.359"},EPSG_4149:{towgs84:"674.374,15.056,405.346"},EPSG_4617:{towgs84:"-0.991,1.9072,0.5129,1.25033e-7,4.6785e-8,5.6529e-8,0"},EPSG_4663:{towgs84:"-210.502,-66.902,-48.476,2.094,-15.067,-5.817,0.485"},EPSG_4664:{towgs84:"-211.939,137.626,58.3,-0.089,0.251,0.079,0.384"},EPSG_4665:{towgs84:"-105.854,165.589,-38.312,-0.003,-0.026,0.024,-0.048"},EPSG_4666:{towgs84:"631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"},EPSG_4756:{towgs84:"-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188"},EPSG_4723:{towgs84:"-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925"},EPSG_4726:{towgs84:"8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081"},EPSG_4267:{towgs84:"-8.0,160.0,176.0"},EPSG_5365:{towgs84:"-0.16959,0.35312,0.51846,0.03385,-0.16325,0.03446,0.03693"},EPSG_4218:{towgs84:"304.5,306.5,-318.1"},EPSG_4242:{towgs84:"-33.722,153.789,94.959,-8.581,-4.478,4.54,8.95"},EPSG_4216:{towgs84:"-292.295,248.758,429.447,4.9971,2.99,6.6906,1.0289"},ESRI_104105:{towgs84:"631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"},ESRI_104129:{towgs84:"0,0,0"},EPSG_4673:{towgs84:"174.05,-25.49,112.57"},EPSG_4202:{towgs84:"-124,-60,154"},EPSG_4203:{towgs84:"-117.763,-51.51,139.061,0.292,0.443,0.277,-0.191"},EPSG_3819:{towgs84:"595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408"},EPSG_8694:{towgs84:"-93.799,-132.737,-219.073,-1.844,0.648,-6.37,-0.169"},EPSG_4145:{towgs84:"275.57,676.78,229.6"},EPSG_4283:{towgs84:"61.55,-10.87,-40.19,39.4924,32.7221,32.8979,-9.994"},EPSG_4317:{towgs84:"2.3287,-147.0425,-92.0802,-0.3092483,0.32482185,0.49729934,5.68906266"},EPSG_4272:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993"},EPSG_4248:{towgs84:"-307.7,265.3,-363.5"},EPSG_5561:{towgs84:"24,-121,-76"},EPSG_5233:{towgs84:"-0.293,766.95,87.713,0.195704,1.695068,3.473016,-0.039338"},ESRI_104130:{towgs84:"-86,-98,-119"},ESRI_104102:{towgs84:"682,-203,480"},ESRI_37207:{towgs84:"7,-10,-26"},EPSG_4675:{towgs84:"59.935,118.4,-10.871"},ESRI_104109:{towgs84:"-89.121,-348.182,260.871"},ESRI_104112:{towgs84:"-185.583,-230.096,281.361"},ESRI_104113:{towgs84:"25.1,-275.6,222.6"},IGNF_WGS72G:{towgs84:"0,12,6"},IGNF_NTFG:{towgs84:"-168,-60,320"},IGNF_EFATE57G:{towgs84:"-127,-769,472"},IGNF_PGP50G:{towgs84:"324.8,153.6,172.1"},IGNF_REUN47G:{towgs84:"94,-948,-1262"},IGNF_CSG67G:{towgs84:"-186,230,110"},IGNF_GUAD48G:{towgs84:"-467,-16,-300"},IGNF_TAHI51G:{towgs84:"162,117,154"},IGNF_TAHAAG:{towgs84:"65,342,77"},IGNF_NUKU72G:{towgs84:"84,274,65"},IGNF_PETRELS72G:{towgs84:"365,194,166"},IGNF_WALL78G:{towgs84:"253,-133,-127"},IGNF_MAYO50G:{towgs84:"-382,-59,-262"},IGNF_TANNAG:{towgs84:"-139,-967,436"},IGNF_IGN72G:{towgs84:"-13,-348,292"},IGNF_ATIGG:{towgs84:"1118,23,66"},IGNF_FANGA84G:{towgs84:"150.57,158.33,118.32"},IGNF_RUSAT84G:{towgs84:"202.13,174.6,-15.74"},IGNF_KAUE70G:{towgs84:"126.74,300.1,-75.49"},IGNF_MOP90G:{towgs84:"-10.8,-1.8,12.77"},IGNF_MHPF67G:{towgs84:"338.08,212.58,-296.17"},IGNF_TAHI79G:{towgs84:"160.61,116.05,153.69"},IGNF_ANAA92G:{towgs84:"1.5,3.84,4.81"},IGNF_MARQUI72G:{towgs84:"330.91,-13.92,58.56"},IGNF_APAT86G:{towgs84:"143.6,197.82,74.05"},IGNF_TUBU69G:{towgs84:"237.17,171.61,-77.84"},IGNF_STPM50G:{towgs84:"11.363,424.148,373.13"},EPSG_4150:{towgs84:"674.374,15.056,405.346"},EPSG_4754:{towgs84:"-208.4058,-109.8777,-2.5764"},ESRI_104101:{towgs84:"374,150,588"},EPSG_4693:{towgs84:"0,-0.15,0.68"},EPSG_6207:{towgs84:"293.17,726.18,245.36"},EPSG_4153:{towgs84:"-133.63,-157.5,-158.62"},EPSG_4132:{towgs84:"-241.54,-163.64,396.06"},EPSG_4221:{towgs84:"-154.5,150.7,100.4"},EPSG_4266:{towgs84:"-80.7,-132.5,41.1"},EPSG_4193:{towgs84:"-70.9,-151.8,-41.4"},EPSG_5340:{towgs84:"-0.41,0.46,-0.35"},EPSG_4246:{towgs84:"-294.7,-200.1,525.5"},EPSG_4318:{towgs84:"-3.2,-5.7,2.8"},EPSG_4121:{towgs84:"-199.87,74.79,246.62"},EPSG_4223:{towgs84:"-260.1,5.5,432.2"},EPSG_4158:{towgs84:"-0.465,372.095,171.736"},EPSG_4285:{towgs84:"-128.16,-282.42,21.93"},EPSG_4613:{towgs84:"-404.78,685.68,45.47"},EPSG_4607:{towgs84:"195.671,332.517,274.607"},EPSG_4475:{towgs84:"-381.788,-57.501,-256.673"},EPSG_4208:{towgs84:"-157.84,308.54,-146.6"},EPSG_4743:{towgs84:"70.995,-335.916,262.898"},EPSG_4710:{towgs84:"-323.65,551.39,-491.22"},EPSG_7881:{towgs84:"-0.077,0.079,0.086"},EPSG_4682:{towgs84:"283.729,735.942,261.143"},EPSG_4739:{towgs84:"-156,-271,-189"},EPSG_4679:{towgs84:"-80.01,253.26,291.19"},EPSG_4750:{towgs84:"-56.263,16.136,-22.856"},EPSG_4644:{towgs84:"-10.18,-350.43,291.37"},EPSG_4695:{towgs84:"-103.746,-9.614,-255.95"},EPSG_4292:{towgs84:"-355,21,72"},EPSG_4302:{towgs84:"-61.702,284.488,472.052"},EPSG_4143:{towgs84:"-124.76,53,466.79"},EPSG_4606:{towgs84:"-153,153,307"},EPSG_4699:{towgs84:"-770.1,158.4,-498.2"},EPSG_4247:{towgs84:"-273.5,110.6,-357.9"},EPSG_4160:{towgs84:"8.88,184.86,106.69"},EPSG_4161:{towgs84:"-233.43,6.65,173.64"},EPSG_9251:{towgs84:"-9.5,122.9,138.2"},EPSG_9253:{towgs84:"-78.1,101.6,133.3"},EPSG_4297:{towgs84:"-198.383,-240.517,-107.909"},EPSG_4269:{towgs84:"0,0,0"},EPSG_4301:{towgs84:"-147,506,687"},EPSG_4618:{towgs84:"-59,-11,-52"},EPSG_4612:{towgs84:"0,0,0"},EPSG_4678:{towgs84:"44.585,-131.212,-39.544"},EPSG_4250:{towgs84:"-130,29,364"},EPSG_4144:{towgs84:"214,804,268"},EPSG_4147:{towgs84:"-17.51,-108.32,-62.39"},EPSG_4259:{towgs84:"-254.1,-5.36,-100.29"},EPSG_4164:{towgs84:"-76,-138,67"},EPSG_4211:{towgs84:"-378.873,676.002,-46.255"},EPSG_4182:{towgs84:"-422.651,-172.995,84.02"},EPSG_4224:{towgs84:"-143.87,243.37,-33.52"},EPSG_4225:{towgs84:"-205.57,168.77,-4.12"},EPSG_5527:{towgs84:"-67.35,3.88,-38.22"},EPSG_4752:{towgs84:"98,390,-22"},EPSG_4310:{towgs84:"-30,190,89"},EPSG_9248:{towgs84:"-192.26,65.72,132.08"},EPSG_4680:{towgs84:"124.5,-63.5,-281"},EPSG_4701:{towgs84:"-79.9,-158,-168.9"},EPSG_4706:{towgs84:"-146.21,112.63,4.05"},EPSG_4805:{towgs84:"682,-203,480"},EPSG_4201:{towgs84:"-165,-11,206"},EPSG_4210:{towgs84:"-157,-2,-299"},EPSG_4183:{towgs84:"-104,167,-38"},EPSG_4139:{towgs84:"11,72,-101"},EPSG_4668:{towgs84:"-86,-98,-119"},EPSG_4717:{towgs84:"-2,151,181"},EPSG_4732:{towgs84:"102,52,-38"},EPSG_4280:{towgs84:"-377,681,-50"},EPSG_4209:{towgs84:"-138,-105,-289"},EPSG_4261:{towgs84:"31,146,47"},EPSG_4658:{towgs84:"-73,46,-86"},EPSG_4721:{towgs84:"265.025,384.929,-194.046"},EPSG_4222:{towgs84:"-136,-108,-292"},EPSG_4601:{towgs84:"-255,-15,71"},EPSG_4602:{towgs84:"725,685,536"},EPSG_4603:{towgs84:"72,213.7,93"},EPSG_4605:{towgs84:"9,183,236"},EPSG_4621:{towgs84:"137,248,-430"},EPSG_4657:{towgs84:"-28,199,5"},EPSG_4316:{towgs84:"103.25,-100.4,-307.19"},EPSG_4642:{towgs84:"-13,-348,292"},EPSG_4698:{towgs84:"145,-187,103"},EPSG_4192:{towgs84:"-206.1,-174.7,-87.7"},EPSG_4311:{towgs84:"-265,120,-358"},EPSG_4135:{towgs84:"58,-283,-182"},ESRI_104138:{towgs84:"198,-226,-347"},EPSG_4245:{towgs84:"-11,851,5"},EPSG_4142:{towgs84:"-125,53,467"},EPSG_4213:{towgs84:"-106,-87,188"},EPSG_4253:{towgs84:"-133,-77,-51"},EPSG_4129:{towgs84:"-132,-110,-335"},EPSG_4713:{towgs84:"-77,-128,142"},EPSG_4239:{towgs84:"217,823,299"},EPSG_4146:{towgs84:"295,736,257"},EPSG_4155:{towgs84:"-83,37,124"},EPSG_4165:{towgs84:"-173,253,27"},EPSG_4672:{towgs84:"175,-38,113"},EPSG_4236:{towgs84:"-637,-549,-203"},EPSG_4251:{towgs84:"-90,40,88"},EPSG_4271:{towgs84:"-2,374,172"},EPSG_4175:{towgs84:"-88,4,101"},EPSG_4716:{towgs84:"298,-304,-375"},EPSG_4315:{towgs84:"-23,259,-9"},EPSG_4744:{towgs84:"-242.2,-144.9,370.3"},EPSG_4244:{towgs84:"-97,787,86"},EPSG_4293:{towgs84:"616,97,-251"},EPSG_4714:{towgs84:"-127,-769,472"},EPSG_4736:{towgs84:"260,12,-147"},EPSG_6883:{towgs84:"-235,-110,393"},EPSG_6894:{towgs84:"-63,176,185"},EPSG_4205:{towgs84:"-43,-163,45"},EPSG_4256:{towgs84:"41,-220,-134"},EPSG_4262:{towgs84:"639,405,60"},EPSG_4604:{towgs84:"174,359,365"},EPSG_4169:{towgs84:"-115,118,426"},EPSG_4620:{towgs84:"-106,-129,165"},EPSG_4184:{towgs84:"-203,141,53"},EPSG_4616:{towgs84:"-289,-124,60"},EPSG_9403:{towgs84:"-307,-92,127"},EPSG_4684:{towgs84:"-133,-321,50"},EPSG_4708:{towgs84:"-491,-22,435"},EPSG_4707:{towgs84:"114,-116,-333"},EPSG_4709:{towgs84:"145,75,-272"},EPSG_4712:{towgs84:"-205,107,53"},EPSG_4711:{towgs84:"124,-234,-25"},EPSG_4718:{towgs84:"230,-199,-752"},EPSG_4719:{towgs84:"211,147,111"},EPSG_4724:{towgs84:"208,-435,-229"},EPSG_4725:{towgs84:"189,-79,-202"},EPSG_4735:{towgs84:"647,1777,-1124"},EPSG_4722:{towgs84:"-794,119,-298"},EPSG_4728:{towgs84:"-307,-92,127"},EPSG_4734:{towgs84:"-632,438,-609"},EPSG_4727:{towgs84:"912,-58,1227"},EPSG_4729:{towgs84:"185,165,42"},EPSG_4730:{towgs84:"170,42,84"},EPSG_4733:{towgs84:"276,-57,149"},ESRI_37218:{towgs84:"230,-199,-752"},ESRI_37240:{towgs84:"-7,215,225"},ESRI_37221:{towgs84:"252,-209,-751"},ESRI_4305:{towgs84:"-123,-206,219"},ESRI_104139:{towgs84:"-73,-247,227"},EPSG_4748:{towgs84:"51,391,-36"},EPSG_4219:{towgs84:"-384,664,-48"},EPSG_4255:{towgs84:"-333,-222,114"},EPSG_4257:{towgs84:"-587.8,519.75,145.76"},EPSG_4646:{towgs84:"-963,510,-359"},EPSG_6881:{towgs84:"-24,-203,268"},EPSG_6882:{towgs84:"-183,-15,273"},EPSG_4715:{towgs84:"-104,-129,239"},IGNF_RGF93GDD:{towgs84:"0,0,0"},IGNF_RGM04GDD:{towgs84:"0,0,0"},IGNF_RGSPM06GDD:{towgs84:"0,0,0"},IGNF_RGTAAF07GDD:{towgs84:"0,0,0"},IGNF_RGFG95GDD:{towgs84:"0,0,0"},IGNF_RGNCG:{towgs84:"0,0,0"},IGNF_RGPFGDD:{towgs84:"0,0,0"},IGNF_ETRS89G:{towgs84:"0,0,0"},IGNF_RGR92GDD:{towgs84:"0,0,0"},EPSG_4173:{towgs84:"0,0,0"},EPSG_4180:{towgs84:"0,0,0"},EPSG_4619:{towgs84:"0,0,0"},EPSG_4667:{towgs84:"0,0,0"},EPSG_4075:{towgs84:"0,0,0"},EPSG_6706:{towgs84:"0,0,0"},EPSG_7798:{towgs84:"0,0,0"},EPSG_4661:{towgs84:"0,0,0"},EPSG_4669:{towgs84:"0,0,0"},EPSG_8685:{towgs84:"0,0,0"},EPSG_4151:{towgs84:"0,0,0"},EPSG_9702:{towgs84:"0,0,0"},EPSG_4758:{towgs84:"0,0,0"},EPSG_4761:{towgs84:"0,0,0"},EPSG_4765:{towgs84:"0,0,0"},EPSG_8997:{towgs84:"0,0,0"},EPSG_4023:{towgs84:"0,0,0"},EPSG_4670:{towgs84:"0,0,0"},EPSG_4694:{towgs84:"0,0,0"},EPSG_4148:{towgs84:"0,0,0"},EPSG_4163:{towgs84:"0,0,0"},EPSG_4167:{towgs84:"0,0,0"},EPSG_4189:{towgs84:"0,0,0"},EPSG_4190:{towgs84:"0,0,0"},EPSG_4176:{towgs84:"0,0,0"},EPSG_4659:{towgs84:"0,0,0"},EPSG_3824:{towgs84:"0,0,0"},EPSG_3889:{towgs84:"0,0,0"},EPSG_4046:{towgs84:"0,0,0"},EPSG_4081:{towgs84:"0,0,0"},EPSG_4558:{towgs84:"0,0,0"},EPSG_4483:{towgs84:"0,0,0"},EPSG_5013:{towgs84:"0,0,0"},EPSG_5264:{towgs84:"0,0,0"},EPSG_5324:{towgs84:"0,0,0"},EPSG_5354:{towgs84:"0,0,0"},EPSG_5371:{towgs84:"0,0,0"},EPSG_5373:{towgs84:"0,0,0"},EPSG_5381:{towgs84:"0,0,0"},EPSG_5393:{towgs84:"0,0,0"},EPSG_5489:{towgs84:"0,0,0"},EPSG_5593:{towgs84:"0,0,0"},EPSG_6135:{towgs84:"0,0,0"},EPSG_6365:{towgs84:"0,0,0"},EPSG_5246:{towgs84:"0,0,0"},EPSG_7886:{towgs84:"0,0,0"},EPSG_8431:{towgs84:"0,0,0"},EPSG_8427:{towgs84:"0,0,0"},EPSG_8699:{towgs84:"0,0,0"},EPSG_8818:{towgs84:"0,0,0"},EPSG_4757:{towgs84:"0,0,0"},EPSG_9140:{towgs84:"0,0,0"},EPSG_8086:{towgs84:"0,0,0"},EPSG_4686:{towgs84:"0,0,0"},EPSG_4737:{towgs84:"0,0,0"},EPSG_4702:{towgs84:"0,0,0"},EPSG_4747:{towgs84:"0,0,0"},EPSG_4749:{towgs84:"0,0,0"},EPSG_4674:{towgs84:"0,0,0"},EPSG_4755:{towgs84:"0,0,0"},EPSG_4759:{towgs84:"0,0,0"},EPSG_4762:{towgs84:"0,0,0"},EPSG_4763:{towgs84:"0,0,0"},EPSG_4764:{towgs84:"0,0,0"},EPSG_4166:{towgs84:"0,0,0"},EPSG_4170:{towgs84:"0,0,0"},EPSG_5546:{towgs84:"0,0,0"},EPSG_7844:{towgs84:"0,0,0"},EPSG_4818:{towgs84:"589,76,480"}};for(var Qv in Fv){var Gv=Fv[Qv];Gv.datumName&&(Fv[Gv.datumName]=Gv)}var Uv=Fv;var zv=function(e,t,r,n,o,i,a){var s={};return s.datum_type=void 0===e||"none"===e?fg:cg,t&&(s.datum_params=t.map(parseFloat),0===s.datum_params[0]&&0===s.datum_params[1]&&0===s.datum_params[2]||(s.datum_type=sg),s.datum_params.length>3&&(0===s.datum_params[3]&&0===s.datum_params[4]&&0===s.datum_params[5]&&0===s.datum_params[6]||(s.datum_type=ug,s.datum_params[3]*=dg,s.datum_params[4]*=dg,s.datum_params[5]*=dg,s.datum_params[6]=s.datum_params[6]/1e6+1))),a&&(s.datum_type=lg,s.grids=a),s.a=r,s.b=n,s.es=o,s.ep2=i,s},Hv={};function qv(e){if(0===e.length)return null;var t="@"===e[0];return t&&(e=e.slice(1)),"null"===e?{name:"null",mandatory:!t,grid:null,isNull:!0}:{name:e,mandatory:!t,grid:Hv[e]||null,isNull:!1}}function Vv(e){return e*Math.PI/180}function Kv(e){return e/3600*Math.PI/180}function Yv(e,t,r){return String.fromCharCode.apply(null,new Uint8Array(e.buffer.slice(t,r)))}function Jv(e){return e.map(function(e){return[Kv(e.longitudeShift),Kv(e.latitudeShift)]})}function Wv(e,t,r){return{name:Yv(e,t+8,t+16).trim(),parent:Yv(e,t+24,t+24+8).trim(),lowerLatitude:e.getFloat64(t+72,r),upperLatitude:e.getFloat64(t+88,r),lowerLongitude:e.getFloat64(t+104,r),upperLongitude:e.getFloat64(t+120,r),latitudeInterval:e.getFloat64(t+136,r),longitudeInterval:e.getFloat64(t+152,r),gridNodeCount:e.getInt32(t+168,r)}}function Xv(e,t,r,n,o){var i=t+176,a=16;!1===o&&(a=8);for(var s=[],u=0;u-1.001*mg)u=-mg;else if(u>mg&&u<1.001*mg)u=mg;else{if(u<-mg)return{x:-1/0,y:-1/0,z:e.z};if(u>mg)return{x:1/0,y:1/0,z:e.z}}return s>Math.PI&&(s-=2*Math.PI),o=Math.sin(u),a=Math.cos(u),i=o*o,{x:((n=r/Math.sqrt(1-t*i))+l)*a*Math.cos(s),y:(n+l)*a*Math.sin(s),z:(n*(1-t)+l)*o}}function tb(e,t,r,n){var o,i,a,s,u,l,c,f,p,h,y,d,m,g,v,b=e.x,A=e.y,w=e.z?e.z:0;if(o=Math.sqrt(b*b+A*A),i=Math.sqrt(b*b+A*A+w*w),o/r<1e-12){if(g=0,i/r<1e-12)return mg,v=-n,{x:e.x,y:e.y,z:e.z}}else g=Math.atan2(A,b);a=w/i,f=(s=o/i)*(1-t)*(u=1/Math.sqrt(1-t*(2-t)*s*s)),p=a*u,m=0;do{m++,l=t*(c=r/Math.sqrt(1-t*p*p))/(c+(v=o*f+w*p-c*(1-t*p*p))),d=(y=a*(u=1/Math.sqrt(1-l*(2-l)*s*s)))*f-(h=s*(1-l)*u)*p,f=h,p=y}while(d*d>1e-24&&m<30);return{x:g,y:Math.atan(y/Math.abs(h)),z:v}}function rb(e){return e===sg||e===ug}function nb(e,t,r){if(function(e,t){return e.datum_type===t.datum_type&&!(e.a!==t.a||Math.abs(e.es-t.es)>5e-11)&&(e.datum_type===sg?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]:e.datum_type!==ug||e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]&&e.datum_params[3]===t.datum_params[3]&&e.datum_params[4]===t.datum_params[4]&&e.datum_params[5]===t.datum_params[5]&&e.datum_params[6]===t.datum_params[6])}(e,t))return r;if(e.datum_type===fg||t.datum_type===fg)return r;var n=e.a,o=e.es;if(e.datum_type===lg){if(0!==ob(e,!1,r))return;n=pg,o=yg}var i=t.a,a=t.b,s=t.es;if(t.datum_type===lg&&(i=pg,a=hg,s=yg),o===s&&n===i&&!rb(e.datum_type)&&!rb(t.datum_type))return r;if((r=eb(r,o,n),rb(e.datum_type)&&(r=function(e,t,r){if(t===sg)return{x:e.x+r[0],y:e.y+r[1],z:e.z+r[2]};if(t===ug){var n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],u=r[5],l=r[6];return{x:l*(e.x-u*e.y+s*e.z)+n,y:l*(u*e.x+e.y-a*e.z)+o,z:l*(-s*e.x+a*e.y+e.z)+i}}}(r,e.datum_type,e.datum_params)),rb(t.datum_type)&&(r=function(e,t,r){if(t===sg)return{x:e.x-r[0],y:e.y-r[1],z:e.z-r[2]};if(t===ug){var n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],u=r[5],l=r[6],c=(e.x-n)/l,f=(e.y-o)/l,p=(e.z-i)/l;return{x:c+u*f-s*p,y:-u*c+f+a*p,z:s*c-a*f+p}}}(r,t.datum_type,t.datum_params)),r=tb(r,s,i,a),t.datum_type===lg)&&0!==ob(t,!0,r))return;return r}function ob(e,t,r){if(null===e.grids||0===e.grids.length)return console.log("Grid shift grids not found"),-1;var n={x:-r.x,y:r.y},o={x:Number.NaN,y:Number.NaN},i=[];e:for(var a=0;an.y||h>n.x||m1e-12&&Math.abs(a.y)>1e-12);if(u<0)return console.log("Inverse grid shift iterator failed to converge."),n;n.x=Iv(i.x+r.ll[0]),n.y=i.y+r.ll[1]}else isNaN(i.x)||(n.x=e.x+i.x,n.y=e.y+i.y);return n}function ab(e,t){var r,n={x:e.x/t.del[0],y:e.y/t.del[1]},o=Math.floor(n.x),i=Math.floor(n.y),a=n.x-1*o,s=n.y-1*i,u={x:Number.NaN,y:Number.NaN};if(o<0||o>=t.lim[0])return u;if(i<0||i>=t.lim[1])return u;r=i*t.lim[0]+o;var l=t.cvs[r][0],c=t.cvs[r][1];r++;var f=t.cvs[r][0],p=t.cvs[r][1];r+=t.lim[0];var h=t.cvs[r][0],y=t.cvs[r][1];r--;var d=t.cvs[r][0],m=t.cvs[r][1],g=a*s,v=a*(1-s),b=(1-a)*(1-s),A=(1-a)*s;return u.x=b*l+v*f+A*d+g*h,u.y=b*c+v*p+A*m+g*y,u}function sb(e,t,r){var n,o,i,a=r.x,s=r.y,u=r.z||0,l={};for(i=0;i<3;i++)if(!t||2!==i||void 0!==r.z)switch(0===i?(n=a,o=-1!=="ew".indexOf(e.axis[i])?"x":"y"):1===i?(n=s,o=-1!=="ns".indexOf(e.axis[i])?"y":"x"):(n=u,o="z"),e.axis[i]){case"e":l[o]=n;break;case"w":l[o]=-n;break;case"n":l[o]=n;break;case"s":l[o]=-n;break;case"u":void 0!==r[o]&&(l.z=n);break;case"d":void 0!==r[o]&&(l.z=-n);break;default:return null}return l}function ub(e){var t={x:e[0],y:e[1]};return e.length>2&&(t.z=e[2]),e.length>3&&(t.m=e[3]),t}function lb(e){cb(e.x),cb(e.y)}function cb(e){if("function"==typeof Number.isFinite){if(Number.isFinite(e))return;throw new TypeError("coordinates must be finite numbers")}if("number"!=typeof e||e!=e||!isFinite(e))throw new TypeError("coordinates must be finite numbers")}function fb(e,t,r,n){var o,i=void 0!==(r=Array.isArray(r)?ub(r):{x:r.x,y:r.y,z:r.z,m:r.m}).z;if(lb(r),e.datum&&t.datum&&function(e,t){return(e.datum.datum_type===sg||e.datum.datum_type===ug||e.datum.datum_type===lg)&&"WGS84"!==t.datumCode||(t.datum.datum_type===sg||t.datum.datum_type===ug||t.datum.datum_type===lg)&&"WGS84"!==e.datumCode}(e,t)&&(r=fb(e,o=new $v("WGS84"),r,n),e=o),n&&"enu"!==e.axis&&(r=sb(e,!1,r)),"longlat"===e.projName)r={x:r.x*wg,y:r.y*wg,z:r.z||0};else if(e.to_meter&&(r={x:r.x*e.to_meter,y:r.y*e.to_meter,z:r.z||0}),!(r=e.inverse(r)))return;if(e.from_greenwich&&(r.x+=e.from_greenwich),r=nb(e.datum,t.datum,r))return t.from_greenwich&&(r={x:r.x-t.from_greenwich,y:r.y,z:r.z||0}),"longlat"===t.projName?r={x:r.x*Sg,y:r.y*Sg,z:r.z||0}:(r=t.forward(r),t.to_meter&&(r={x:r.x/t.to_meter,y:r.y/t.to_meter,z:r.z||0})),n&&"enu"!==t.axis?sb(t,!0,r):(r&&!i&&delete r.z,r)}r.dn(nb),r.dn(sb),r.dn(ub),r.dn(lb);var pb=$v("WGS84");function hb(e,t,r,n){var o,i,a;return Array.isArray(r)?(o=fb(e,t,r,n)||{x:NaN,y:NaN},r.length>2?void 0!==e.name&&"geocent"===e.name||void 0!==t.name&&"geocent"===t.name?"number"==typeof o.z?[o.x,o.y,o.z].concat(r.slice(3)):[o.x,o.y,r[2]].concat(r.slice(3)):[o.x,o.y].concat(r.slice(2)):[o.x,o.y]):(i=fb(e,t,r,n),2===(a=Object.keys(r)).length?i:(a.forEach(function(n){if(void 0!==e.name&&"geocent"===e.name||void 0!==t.name&&"geocent"===t.name){if("x"===n||"y"===n||"z"===n)return}else if("x"===n||"y"===n)return;i[n]=r[n]}),i))}function yb(e){return e instanceof $v?e:e.oProj?e.oProj:$v(e)}var db=function(e,t,r){e=yb(e);var n,o=!1;return void 0===t?(t=e,e=pb,o=!0):(void 0!==t.x||Array.isArray(t))&&(r=t,t=e,e=pb,o=!0),t=yb(t),r?hb(e,t,r):(n={forward:function(r,n){return hb(e,t,r,n)},inverse:function(r,n){return hb(t,e,r,n)}},o&&(n.oProj=t),n)},mb=6,gb="AJSAJS",vb="AFAFAF",bb=65,Ab=73,wb=79,Sb=86,Cb=90,Eb={forward:_b,inverse:function(e){var t=Pb(Tb(e.toUpperCase()));if(t.lat&&t.lon)return[t.lon,t.lat,t.lon,t.lat];return[t.left,t.bottom,t.right,t.top]},toPoint:Ob};function _b(e,t){return t=t||5,function(e,t){var r="00000"+e.easting,n="00000"+e.northing;return e.zoneNumber+e.zoneLetter+(h=e.easting,y=e.northing,d=e.zoneNumber,m=kb(d),g=Math.floor(h/1e5),v=Math.floor(y/1e5)%20,o=g,i=v,a=m,s=a-1,u=gb.charCodeAt(s),l=vb.charCodeAt(s),c=u+o-1,f=l+i,p=!1,c>Cb&&(c=c-Cb+bb-1,p=!0),(c===Ab||uAb||(c>Ab||uwb||(c>wb||uCb&&(c=c-Cb+bb-1),f>Sb?(f=f-Sb+bb-1,p=!0):p=!1,(f===Ab||lAb||(f>Ab||lwb||(f>wb||lSb&&(f=f-Sb+bb-1),String.fromCharCode(c)+String.fromCharCode(f))+r.substr(r.length-5,t)+n.substr(n.length-5,t);var o,i,a,s,u,l,c,f,p;var h,y,d,m,g,v}(function(e){var t,r,n,o,i,a,s,u=e.lat,l=e.lon,c=6378137,f=Ib(u),p=Ib(l);s=Math.floor((l+180)/6)+1,180===l&&(s=60);u>=56&&u<64&&l>=3&&l<12&&(s=32);u>=72&&u<84&&(l>=0&&l<9?s=31:l>=9&&l<21?s=33:l>=21&&l<33?s=35:l>=33&&l<42&&(s=37));a=Ib(6*(s-1)-180+3),.006739496752268451,t=c/Math.sqrt(1-.00669438*Math.sin(f)*Math.sin(f)),r=Math.tan(f)*Math.tan(f),n=.006739496752268451*Math.cos(f)*Math.cos(f),o=Math.cos(f)*(p-a),i=c*(.9983242984503243*f-.002514607064228144*Math.sin(2*f)+2639046602129982e-21*Math.sin(4*f)-3.418046101696858e-9*Math.sin(6*f));var h=.9996*t*(o+(1-r+n)*o*o*o/6+(5-18*r+r*r+72*n-.39089081163157013)*o*o*o*o*o/120)+5e5,y=.9996*(i+t*Math.tan(f)*(o*o/2+(5-r+9*n+4*n*n)*o*o*o*o/24+(61-58*r+r*r+600*n-2.2240339282485886)*o*o*o*o*o*o/720));u<0&&(y+=1e7);return{northing:Math.round(y),easting:Math.round(h),zoneNumber:s,zoneLetter:function(e){var t="Z";84>=e&&e>=72?t="X":72>e&&e>=64?t="W":64>e&&e>=56?t="V":56>e&&e>=48?t="U":48>e&&e>=40?t="T":40>e&&e>=32?t="S":32>e&&e>=24?t="R":24>e&&e>=16?t="Q":16>e&&e>=8?t="P":8>e&&e>=0?t="N":0>e&&e>=-8?t="M":-8>e&&e>=-16?t="L":-16>e&&e>=-24?t="K":-24>e&&e>=-32?t="J":-32>e&&e>=-40?t="H":-40>e&&e>=-48?t="G":-48>e&&e>=-56?t="F":-56>e&&e>=-64?t="E":-64>e&&e>=-72?t="D":-72>e&&e>=-80&&(t="C");return t}(u)}}({lat:e[1],lon:e[0]}),t)}function Ob(e){var t=Pb(Tb(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat]:[(t.left+t.right)/2,(t.top+t.bottom)/2]}function Ib(e){return e*(Math.PI/180)}function xb(e){return e/Math.PI*180}function Pb(e){var t=e.northing,r=e.easting,n=e.zoneLetter,o=e.zoneNumber;if(o<0||o>60)return null;var i,a,s,u,l,c,f,p,h=6378137,y=(1-Math.sqrt(.99330562))/(1+Math.sqrt(.99330562)),d=r-5e5,m=t;n<"N"&&(m-=1e7),c=6*(o-1)-180+3,p=(f=m/.9996/6367449.145945056)+(3*y/2-27*y*y*y/32)*Math.sin(2*f)+(21*y*y/16-55*y*y*y*y/32)*Math.sin(4*f)+151*y*y*y/96*Math.sin(6*f),i=h/Math.sqrt(1-.00669438*Math.sin(p)*Math.sin(p)),a=Math.tan(p)*Math.tan(p),s=.006739496752268451*Math.cos(p)*Math.cos(p),u=.99330562*h/Math.pow(1-.00669438*Math.sin(p)*Math.sin(p),1.5),l=d/(.9996*i);var g=p-i*Math.tan(p)/u*(l*l/2-(5+3*a+10*s-4*s*s-.06065547077041606)*l*l*l*l/24+(61+90*a+298*s+45*a*a-1.6983531815716497-3*s*s)*l*l*l*l*l*l/720);g=xb(g);var v,b=(l-(1+2*a+s)*l*l*l/6+(5-2*s+28*a-3*s*s+.05391597401814761+24*a*a)*l*l*l*l*l/120)/Math.cos(p);if(b=c+xb(b),e.accuracy){var A=Pb({northing:e.northing+e.accuracy,easting:e.easting+e.accuracy,zoneLetter:e.zoneLetter,zoneNumber:e.zoneNumber});v={top:A.lat,right:A.lon,bottom:g,left:b}}else v={lat:g,lon:b};return v}function kb(e){var t=e%mb;return 0===t&&(t=mb),t}function Tb(e){if(e&&0===e.length)throw"MGRSPoint coverting from nothing";for(var t,r=e.length,n=null,o="",i=0;!/[A-Z]/.test(t=e.charAt(i));){if(i>=2)throw"MGRSPoint bad conversion from: "+e;o+=t,i++}var a=parseInt(o,10);if(0===i||i+3>r)throw"MGRSPoint bad conversion from: "+e;var s=e.charAt(i++);if(s<="A"||"B"===s||"Y"===s||s>="Z"||"I"===s||"O"===s)throw"MGRSPoint zone letter "+s+" not handled: "+e;n=e.substring(i,i+=2);for(var u=kb(a),l=function(e,t){var r=gb.charCodeAt(t-1),n=1e5,o=!1;for(;r!==e.charCodeAt(0);){if(++r===Ab&&r++,r===wb&&r++,r>Cb){if(o)throw"Bad character: "+e;r=bb,o=!0}n+=1e5}return n}(n.charAt(0),u),c=function(e,t){if(e>"V")throw"MGRSPoint given invalid Northing "+e;var r=vb.charCodeAt(t-1),n=0,o=!1;for(;r!==e.charCodeAt(0);){if(++r===Ab&&r++,r===wb&&r++,r>Sb){if(o)throw"Bad character: "+e;r=bb,o=!0}n+=1e5}return n}(n.charAt(1),u);c0&&(p=1e5/Math.pow(10,d),h=e.substring(i,i+d),m=parseFloat(h)*p,y=e.substring(i+d),g=parseFloat(y)*p),{easting:m+l,northing:g+c,zoneLetter:s,zoneNumber:a,accuracy:p}}function jb(e){var t;switch(e){case"C":t=11e5;break;case"D":t=2e6;break;case"E":t=28e5;break;case"F":t=37e5;break;case"G":t=46e5;break;case"H":t=55e5;break;case"J":t=64e5;break;case"K":t=73e5;break;case"L":t=82e5;break;case"M":t=91e5;break;case"N":t=0;break;case"P":t=8e5;break;case"Q":t=17e5;break;case"R":t=26e5;break;case"S":t=35e5;break;case"T":t=44e5;break;case"U":t=53e5;break;case"V":t=62e5;break;case"W":t=7e6;break;case"X":t=79e5;break;default:t=-1}if(t>=0)return t;throw"Invalid zone letter: "+e}function Mb(e,t,r){if(!(this instanceof Mb))return new Mb(e,t,r);if(Array.isArray(e))this.x=e[0],this.y=e[1],this.z=e[2]||0;else if("object"==typeof e)this.x=e.x,this.y=e.y,this.z=e.z||0;else if("string"==typeof e&&void 0===t){var n=e.split(",");this.x=parseFloat(n[0],10),this.y=parseFloat(n[1],10),this.z=parseFloat(n[2],10)||0}else this.x=e,this.y=t,this.z=r||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}Mb.fromMGRS=function(e){return new Mb(Ob(e))},Mb.prototype.toMGRS=function(e){return _b([this.x,this.y],e)};var Bb=Mb;r.dn(Kb);var Nb=1,Rb=.25,Lb=.046875,Db=.01953125,Fb=.01068115234375,Qb=.75,Gb=.46875,Ub=.013020833333333334,zb=.007120768229166667,Hb=.3645833333333333,qb=.005696614583333333,Vb=.3076171875;function Kb(e){var t=[];t[0]=Nb-e*(Rb+e*(Lb+e*(Db+e*Fb))),t[1]=e*(Qb-e*(Lb+e*(Db+e*Fb)));var r=e*e;return t[2]=r*(Gb-e*(Ub+e*zb)),r*=e,t[3]=r*(Hb-e*qb),t[4]=r*e*Vb,t}function Yb(e,t,r,n){return r*=t,t*=t,n[0]*e-r*(n[1]+t*(n[2]+t*(n[3]+t*n[4])))}r.dn(Yb),r.dn(Wb);var Jb=20;function Wb(e,t,r){for(var n=1/(1-t),o=e,i=Jb;i;--i){var a=Math.sin(o),s=1-t*a*a;if(o-=s=(Yb(o,a,Math.cos(o),r)-e)*(s*Math.sqrt(s))*n,Math.abs(s)Ag?Math.tan(i):0,y=Math.pow(h,2),d=Math.pow(y,2);t=1-this.es*Math.pow(s,2),l/=Math.sqrt(t);var m=Yb(i,s,u,this.en);r=this.a*(this.k0*l*(1+c/6*(1-y+f+c/20*(5-18*y+d+14*f-58*y*f+c/42*(61+179*d-d*y-479*y)))))+this.x0,n=this.a*(this.k0*(m-this.ml0+s*a*l/2*(1+c/12*(5-y+9*f+4*p+c/30*(61+d-58*y+270*f-330*y*f+c/56*(1385+543*d-d*y-3111*y))))))+this.y0}else{var g=u*Math.sin(a);if(Math.abs(Math.abs(g)-1)=1){if(g-1>Ag)return 93;n=0}else n=Math.acos(n);i<0&&(n=-n),n=this.a*this.k0*(n-this.lat0)+this.y0}return e.x=r,e.y=n,e},inverse:function(e){var t,r,n,o,i=(e.x-this.x0)*(1/this.a),a=(e.y-this.y0)*(1/this.a);if(this.es)if(r=Wb(t=this.ml0+a/this.k0,this.es,this.en),Math.abs(r)Ag?Math.tan(r):0,c=this.ep2*Math.pow(u,2),f=Math.pow(c,2),p=Math.pow(l,2),h=Math.pow(p,2);t=1-this.es*Math.pow(s,2);var y=i*Math.sqrt(t)/this.k0,d=Math.pow(y,2);n=r-(t*=l)*d/(1-this.es)*.5*(1-d/12*(5+3*p-9*c*p+c-4*f-d/30*(61+90*p-252*c*p+45*h+46*c-d/56*(1385+3633*p+4095*h+1574*h*p)))),o=Iv(this.long0+y*(1-d/6*(1+2*p+c-d/20*(5+28*p+24*h+8*c*p+6*c-d/42*(61+662*p+1320*h+720*h*p))))/u)}else n=mg*Ov(a),o=0;else{var m=Math.exp(i/this.k0),g=.5*(m-1/m),v=this.lat0+a/this.k0,b=Math.cos(v);t=Math.sqrt((1-Math.pow(b,2))/(1+Math.pow(g,2))),n=Math.asin(t),a<0&&(n=-n),o=0===g&&0===b?0:Iv(Math.atan2(g,b)+this.long0)}return e.x=o,e.y=n,e},names:["Fast_Transverse_Mercator","Fast Transverse Mercator"]};function Zb(e){var t=Math.exp(e);return t=(t-1/t)/2}function $b(e,t){e=Math.abs(e),t=Math.abs(t);var r=Math.max(e,t),n=Math.min(e,t)/(r||1);return r*Math.sqrt(1+Math.pow(n,2))}function eA(e){var t=1+e,r=t-1;return 0===r?e:e*Math.log(t)/r}function tA(e){var t=Math.abs(e);return t=eA(t*(1+t/($b(1,t)+1))),e<0?-t:t}function rA(e,t){for(var r,n=2*Math.cos(2*t),o=e.length-1,i=e[o],a=0;--o>=0;)r=n*i-a+e[o],a=i,i=r;return t+r*Math.sin(2*t)}function nA(e,t){for(var r,n=2*Math.cos(t),o=e.length-1,i=e[o],a=0;--o>=0;)r=n*i-a+e[o],a=i,i=r;return Math.sin(t)*r}function oA(e){var t=Math.exp(e);return t=(t+1/t)/2}function iA(e,t,r){for(var n,o,i=Math.sin(t),a=Math.cos(t),s=Zb(r),u=oA(r),l=2*a*u,c=-2*i*s,f=e.length-1,p=e[f],h=0,y=0,d=0;--f>=0;)n=y,o=h,p=l*(y=p)-n-c*(h=d)+e[f],d=c*y-o+l*h;return[(l=i*u)*p-(c=a*s)*d,l*d+c*p]}r.dn(Zb),r.dn($b),r.dn(eA),r.dn(tA),r.dn(rA),r.dn(nA),r.dn(oA),r.dn(iA);var aA={init:function(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(Xb.init.apply(this),this.forward=Xb.forward,this.inverse=Xb.inverse),this.x0=void 0!==this.x0?this.x0:0,this.y0=void 0!==this.y0?this.y0:0,this.long0=void 0!==this.long0?this.long0:0,this.lat0=void 0!==this.lat0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var e=this.es/(1+Math.sqrt(1-this.es)),t=e/(2-e),r=t;this.cgb[0]=t*(2+t*(-2/3+t*(t*(116/45+t*(26/45+t*(-2854/675)))-2))),this.cbg[0]=t*(t*(2/3+t*(4/3+t*(-82/45+t*(32/45+t*(4642/4725)))))-2),r*=t,this.cgb[1]=r*(7/3+t*(t*(-227/45+t*(2704/315+t*(2323/945)))-1.6)),this.cbg[1]=r*(5/3+t*(-16/15+t*(-13/9+t*(904/315+t*(-1522/945))))),r*=t,this.cgb[2]=r*(56/15+t*(-136/35+t*(-1262/105+t*(73814/2835)))),this.cbg[2]=r*(-26/15+t*(34/21+t*(1.6+t*(-12686/2835)))),r*=t,this.cgb[3]=r*(4279/630+t*(-332/35+t*(-399572/14175))),this.cbg[3]=r*(1237/630+t*(t*(-24832/14175)-2.4)),r*=t,this.cgb[4]=r*(4174/315+t*(-144838/6237)),this.cbg[4]=r*(-734/315+t*(109598/31185)),r*=t,this.cgb[5]=r*(601676/22275),this.cbg[5]=r*(444337/155925),r=Math.pow(t,2),this.Qn=this.k0/(1+t)*(1+r*(.25+r*(1/64+r/256))),this.utg[0]=t*(t*(2/3+t*(-37/96+t*(1/360+t*(81/512+t*(-96199/604800)))))-.5),this.gtu[0]=t*(.5+t*(-2/3+t*(5/16+t*(41/180+t*(-127/288+t*(7891/37800)))))),this.utg[1]=r*(-1/48+t*(-1/15+t*(437/1440+t*(-46/105+t*(1118711/3870720))))),this.gtu[1]=r*(13/48+t*(t*(557/1440+t*(281/630+t*(-1983433/1935360)))-.6)),r*=t,this.utg[2]=r*(-17/480+t*(37/840+t*(209/4480+t*(-5569/90720)))),this.gtu[2]=r*(61/240+t*(-103/140+t*(15061/26880+t*(167603/181440)))),r*=t,this.utg[3]=r*(-4397/161280+t*(11/504+t*(830251/7257600))),this.gtu[3]=r*(49561/161280+t*(-179/168+t*(6601661/7257600))),r*=t,this.utg[4]=r*(-4583/161280+t*(108847/3991680)),this.gtu[4]=r*(34729/80640+t*(-3418889/1995840)),r*=t,this.utg[5]=-.03233083094085698*r,this.gtu[5]=.6650675310896665*r;var n=rA(this.cbg,this.lat0);this.Zb=-this.Qn*(n+nA(this.gtu,2*n))},forward:function(e){var t=Iv(e.x-this.long0),r=e.y;r=rA(this.cbg,r);var n=Math.sin(r),o=Math.cos(r),i=Math.sin(t),a=Math.cos(t);r=Math.atan2(n,a*o),t=Math.atan2(i*o,$b(n,o*a)),t=tA(Math.tan(t));var s,u,l=iA(this.gtu,2*r,2*t);return r+=l[0],t+=l[1],Math.abs(t)<=2.623395162778?(s=this.a*(this.Qn*t)+this.x0,u=this.a*(this.Qn*r+this.Zb)+this.y0):(s=1/0,u=1/0),e.x=s,e.y=u,e},inverse:function(e){var t,r,n=(e.x-this.x0)*(1/this.a),o=(e.y-this.y0)*(1/this.a);if(o=(o-this.Zb)/this.Qn,n/=this.Qn,Math.abs(n)<=2.623395162778){var i=iA(this.utg,2*o,2*n);o+=i[0],n+=i[1],n=Math.atan(Zb(n));var a=Math.sin(o),s=Math.cos(o),u=Math.sin(n),l=Math.cos(n);o=Math.atan2(a*l,$b(u,l*s)),t=Iv((n=Math.atan2(u,l*s))+this.long0),r=rA(this.cgb,o)}else t=1/0,r=1/0;return e.x=t,e.y=r,e},names:["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"]};function sA(e,t){if(void 0===e){if((e=Math.floor(30*(Iv(t)+Math.PI)/Math.PI)+1)<0)return 0;if(e>60)return 60}return e}r.dn(sA);var uA={init:function(){var e=sA(this.zone,this.long0);if(void 0===e)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(e)-183)*wg,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,aA.init.apply(this),this.forward=aA.forward,this.inverse=aA.inverse},names:["Universal Transverse Mercator System","utm"],dependsOn:"etmerc"};function lA(e,t){return Math.pow((1-e)/(1+e),t)}r.dn(lA);var cA=20;var fA={init:function(){var e=Math.sin(this.lat0),t=Math.cos(this.lat0);t*=t,this.rc=Math.sqrt(1-this.es)/(1-this.es*e*e),this.C=Math.sqrt(1+this.es*t*t/(1-this.es)),this.phic0=Math.asin(e/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+Cg)/(Math.pow(Math.tan(.5*this.lat0+Cg),this.C)*lA(this.e*e,this.ratexp))},forward:function(e){var t=e.x,r=e.y;return e.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*r+Cg),this.C)*lA(this.e*Math.sin(r),this.ratexp))-mg,e.x=this.C*t,e},inverse:function(e){for(var t=e.x/this.C,r=e.y,n=Math.pow(Math.tan(.5*r+Cg)/this.K,1/this.C),o=cA;o>0&&(r=2*Math.atan(n*lA(this.e*Math.sin(e.y),-.5*this.e))-mg,!(Math.abs(r-e.y)<1e-14));--o)e.y=r;return o?(e.x=t,e.y=r,e):null},names:["gauss"]};var pA={init:function(){fA.init.apply(this),this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))},forward:function(e){var t,r,n,o;return e.x=Iv(e.x-this.long0),fA.forward.apply(this,[e]),t=Math.sin(e.y),r=Math.cos(e.y),n=Math.cos(e.x),o=this.k0*this.R2/(1+this.sinc0*t+this.cosc0*r*n),e.x=o*r*Math.sin(e.x),e.y=o*(this.cosc0*t-this.sinc0*r*n),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e},inverse:function(e){var t,r,n,o,i;if(e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,e.x/=this.k0,e.y/=this.k0,i=$b(e.x,e.y)){var a=2*Math.atan2(i,this.R2);t=Math.sin(a),r=Math.cos(a),o=Math.asin(r*this.sinc0+e.y*t*this.cosc0/i),n=Math.atan2(e.x*t,i*this.cosc0*r-e.y*this.sinc0*t)}else o=this.phic0,n=0;return e.x=n,e.y=o,fA.inverse.apply(this,[e]),e.x=Iv(e.x+this.long0),e},names:["Stereographic_North_Pole","Oblique_Stereographic","sterea","Oblique Stereographic Alternative","Double_Stereographic"]};var hA={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.coslat0=Math.cos(this.lat0),this.sinlat0=Math.sin(this.lat0),this.sphere?1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Ag&&(this.k0=.5*(1+Ov(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=Ag&&(this.lat0>0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=Ag&&Math.abs(Math.cos(this.lat_ts))>Ag&&(this.k0=.5*this.cons*_v(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/xv(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=_v(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-mg,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))},forward:function(e){var t,r,n,o,i,a,s=e.x,u=e.y,l=Math.sin(u),c=Math.cos(u),f=Iv(s-this.long0);return Math.abs(Math.abs(s-this.long0)-Math.PI)<=Ag&&Math.abs(u+this.lat0)<=Ag?(e.x=NaN,e.y=NaN,e):this.sphere?(t=2*this.k0/(1+this.sinlat0*l+this.coslat0*c*Math.cos(f)),e.x=this.a*t*c*Math.sin(f)+this.x0,e.y=this.a*t*(this.coslat0*l-this.sinlat0*c*Math.cos(f))+this.y0,e):(r=2*Math.atan(this.ssfn_(u,l,this.e))-mg,o=Math.cos(r),n=Math.sin(r),Math.abs(this.coslat0)<=Ag?(i=xv(this.e,u*this.con,this.con*l),a=2*this.a*this.k0*i/this.cons,e.x=this.x0+a*Math.sin(s-this.long0),e.y=this.y0-this.con*a*Math.cos(s-this.long0),e):(Math.abs(this.sinlat0)0?Iv(this.long0+Math.atan2(e.x,-1*e.y)):Iv(this.long0+Math.atan2(e.x,e.y)):Iv(this.long0+Math.atan2(e.x*Math.sin(s),a*this.coslat0*Math.cos(s)-e.y*this.sinlat0*Math.sin(s))),e.x=t,e.y=r,e)}if(Math.abs(this.coslat0)<=Ag){if(a<=Ag)return r=this.lat0,t=this.long0,e.x=t,e.y=r,e;e.x*=this.con,e.y*=this.con,n=a*this.cons/(2*this.a*this.k0),r=this.con*Pv(this.e,n),t=this.con*Iv(this.con*this.long0+Math.atan2(e.x,-1*e.y))}else o=2*Math.atan(a*this.cosX0/(2*this.a*this.k0*this.ms1)),t=this.long0,a<=Ag?i=this.X0:(i=Math.asin(Math.cos(o)*this.sinX0+e.y*Math.sin(o)*this.cosX0/a),t=Iv(this.long0+Math.atan2(e.x*Math.sin(o),a*this.cosX0*Math.cos(o)-e.y*this.sinX0*Math.sin(o)))),r=-1*Pv(this.e,Math.tan(.5*(mg+i)));return e.x=t,e.y=r,e},names:["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"],ssfn_:function(e,t,r){return t*=r,Math.tan(.5*(mg+e))*Math.pow((1-t)/(1+t),.5*r)}};var yA={init:function(){var e=this.lat0;this.lambda0=this.long0;var t=Math.sin(e),r=this.a,n=1/this.rf,o=2*n-Math.pow(n,2),i=this.e=Math.sqrt(o);this.R=this.k0*r*Math.sqrt(1-o)/(1-o*Math.pow(t,2)),this.alpha=Math.sqrt(1+o/(1-o)*Math.pow(Math.cos(e),4)),this.b0=Math.asin(t/this.alpha);var a=Math.log(Math.tan(Math.PI/4+this.b0/2)),s=Math.log(Math.tan(Math.PI/4+e/2)),u=Math.log((1+i*t)/(1-i*t));this.K=a-this.alpha*s+this.alpha*i/2*u},forward:function(e){var t=Math.log(Math.tan(Math.PI/4-e.y/2)),r=this.e/2*Math.log((1+this.e*Math.sin(e.y))/(1-this.e*Math.sin(e.y))),n=-this.alpha*(t+r)+this.K,o=2*(Math.atan(Math.exp(n))-Math.PI/4),i=this.alpha*(e.x-this.lambda0),a=Math.atan(Math.sin(i)/(Math.sin(this.b0)*Math.tan(o)+Math.cos(this.b0)*Math.cos(i))),s=Math.asin(Math.cos(this.b0)*Math.sin(o)-Math.sin(this.b0)*Math.cos(o)*Math.cos(i));return e.y=this.R/2*Math.log((1+Math.sin(s))/(1-Math.sin(s)))+this.y0,e.x=this.R*a+this.x0,e},inverse:function(e){for(var t=e.x-this.x0,r=e.y-this.y0,n=t/this.R,o=2*(Math.atan(Math.exp(r/this.R))-Math.PI/4),i=Math.asin(Math.cos(this.b0)*Math.sin(o)+Math.sin(this.b0)*Math.cos(o)*Math.cos(n)),a=Math.atan(Math.sin(n)/(Math.cos(this.b0)*Math.cos(n)-Math.sin(this.b0)*Math.tan(o))),s=this.lambda0+a/this.alpha,u=0,l=i,c=-1e3,f=0;Math.abs(l-c)>1e-7;){if(++f>20)return;u=1/this.alpha*(Math.log(Math.tan(Math.PI/4+i/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(l))/2)),c=l,l=2*Math.atan(Math.exp(u))-Math.PI/2}return e.x=s,e.y=l,e},names:["somerc"]},dA=1e-7;var mA={init:function(){var e,t,r,n,o,i,a,s,u,l,c,f,p,h,y=0,d=0,m=0,g=0,v=0,b=0,A=0;this.no_off=(p=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],h="object"==typeof(f=this).projName?Object.keys(f.projName)[0]:f.projName,"no_uoff"in f||"no_off"in f||-1!==p.indexOf(h)||-1!==p.indexOf(Nv(h))),this.no_rot="no_rot"in this;var w=!1;"alpha"in this&&(w=!0);var S=!1;if("rectified_grid_angle"in this&&(S=!0),w&&(A=this.alpha),S&&(y=this.rectified_grid_angle),w||S)d=this.longc;else if(m=this.long1,v=this.lat1,g=this.long2,b=this.lat2,Math.abs(v-b)<=dA||(e=Math.abs(v))<=dA||Math.abs(e-mg)<=dA||Math.abs(Math.abs(this.lat0)-mg)<=dA||Math.abs(Math.abs(b)-mg)<=dA)throw new Error;var C=1-this.es;t=Math.sqrt(C),Math.abs(this.lat0)>Ag?(s=Math.sin(this.lat0),r=Math.cos(this.lat0),e=1-this.es*s*s,this.B=r*r,this.B=Math.sqrt(1+this.es*this.B*this.B/C),this.A=this.B*this.k0*t/e,(o=(n=this.B*t/(r*Math.sqrt(e)))*n-1)<=0?o=0:(o=Math.sqrt(o),this.lat0<0&&(o=-o)),this.E=o+=n,this.E*=Math.pow(xv(this.e,this.lat0,s),this.B)):(this.B=1/t,this.A=this.k0,this.E=n=o=1),w||S?(w?(c=Math.asin(Math.sin(A)/n),S||(y=A)):(c=y,A=Math.asin(n*Math.sin(c))),this.lam0=d-Math.asin(.5*(o-1/o)*Math.tan(c))/this.B):(i=Math.pow(xv(this.e,v,Math.sin(v)),this.B),a=Math.pow(xv(this.e,b,Math.sin(b)),this.B),o=this.E/i,u=(a-i)/(a+i),l=((l=this.E*this.E)-a*i)/(l+a*i),(e=m-g)<-Math.pi?g-=Eg:e>Math.pi&&(g+=Eg),this.lam0=Iv(.5*(m+g)-Math.atan(l*Math.tan(.5*this.B*(m-g))/u)/this.B),c=Math.atan(2*Math.sin(this.B*Iv(m-this.lam0))/(o-1/o)),y=A=Math.asin(n*Math.sin(c))),this.singam=Math.sin(c),this.cosgam=Math.cos(c),this.sinrot=Math.sin(y),this.cosrot=Math.cos(y),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(n*n-1)/Math.cos(A))),this.lat0<0&&(this.u_0=-this.u_0)),o=.5*c,this.v_pole_n=this.ArB*Math.log(Math.tan(Cg-o)),this.v_pole_s=this.ArB*Math.log(Math.tan(Cg+o))},forward:function(e){var t,r,n,o,i,a,s,u,l={};if(e.x=e.x-this.lam0,Math.abs(Math.abs(e.y)-mg)>Ag){if(t=.5*((i=this.E/Math.pow(xv(this.e,e.y,Math.sin(e.y)),this.B))-(a=1/i)),r=.5*(i+a),o=Math.sin(this.B*e.x),n=(t*this.singam-o*this.cosgam)/r,Math.abs(Math.abs(n)-1)0?this.v_pole_n:this.v_pole_s,s=this.ArB*e.y;return this.no_rot?(l.x=s,l.y=u):(s-=this.u_0,l.x=u*this.cosrot+s*this.sinrot,l.y=s*this.cosrot-u*this.sinrot),l.x=this.a*l.x+this.x0,l.y=this.a*l.y+this.y0,l},inverse:function(e){var t,r,n,o,i,a,s,u={};if(e.x=(e.x-this.x0)*(1/this.a),e.y=(e.y-this.y0)*(1/this.a),this.no_rot?(r=e.y,t=e.x):(r=e.x*this.cosrot-e.y*this.sinrot,t=e.y*this.cosrot+e.x*this.sinrot+this.u_0),o=.5*((n=Math.exp(-this.BrA*r))-1/n),i=.5*(n+1/n),s=((a=Math.sin(this.BrA*t))*this.cosgam+o*this.singam)/i,Math.abs(Math.abs(s)-1)Ag?this.ns=Math.log(n/s)/Math.log(o/u):this.ns=t,isNaN(this.ns)&&(this.ns=t),this.f0=n/(this.ns*Math.pow(o,this.ns)),this.rh=this.a*this.f0*Math.pow(l,this.ns),this.title||(this.title="Lambert Conformal Conic")}},forward:function(e){var t=e.x,r=e.y;Math.abs(2*Math.abs(r)-Math.PI)<=Ag&&(r=Ov(r)*(mg-2*Ag));var n,o,i=Math.abs(Math.abs(r)-mg);if(i>Ag)n=xv(this.e,r,Math.sin(r)),o=this.a*this.f0*Math.pow(n,this.ns);else{if((i=r*this.ns)<=0)return null;o=0}var a=this.ns*Iv(t-this.long0);return e.x=this.k0*(o*Math.sin(a))+this.x0,e.y=this.k0*(this.rh-o*Math.cos(a))+this.y0,e},inverse:function(e){var t,r,n,o,i,a=(e.x-this.x0)/this.k0,s=this.rh-(e.y-this.y0)/this.k0;this.ns>0?(t=Math.sqrt(a*a+s*s),r=1):(t=-Math.sqrt(a*a+s*s),r=-1);var u=0;if(0!==t&&(u=Math.atan2(r*a,r*s)),0!==t||this.ns>0){if(r=1/this.ns,n=Math.pow(t/(this.a*this.f0),r),-9999===(o=Pv(this.e,n)))return null}else o=-mg;return i=Iv(u/this.ns+this.long0),e.x=i,e.y=o,e},names:["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"]};var vA={init:function(){this.a=6377397.155,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.4334234309119251),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq},forward:function(e){var t,r,n,o,i,a,s,u=e.x,l=e.y,c=Iv(u-this.long0);return t=Math.pow((1+this.e*Math.sin(l))/(1-this.e*Math.sin(l)),this.alfa*this.e/2),r=2*(Math.atan(this.k*Math.pow(Math.tan(l/2+this.s45),this.alfa)/t)-this.s45),n=-c*this.alfa,o=Math.asin(Math.cos(this.ad)*Math.sin(r)+Math.sin(this.ad)*Math.cos(r)*Math.cos(n)),i=Math.asin(Math.cos(r)*Math.sin(n)/Math.cos(o)),a=this.n*i,s=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(o/2+this.s45),this.n),e.y=s*Math.cos(a)/1,e.x=s*Math.sin(a)/1,this.czech||(e.y*=-1,e.x*=-1),e},inverse:function(e){var t,r,n,o,i,a,s,u=e.x;e.x=e.y,e.y=u,this.czech||(e.y*=-1,e.x*=-1),i=Math.sqrt(e.x*e.x+e.y*e.y),o=Math.atan2(e.y,e.x)/Math.sin(this.s0),n=2*(Math.atan(Math.pow(this.ro0/i,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),t=Math.asin(Math.cos(this.ad)*Math.sin(n)-Math.sin(this.ad)*Math.cos(n)*Math.cos(o)),r=Math.asin(Math.cos(n)*Math.sin(o)/Math.cos(t)),e.x=this.long0-r/this.alfa,a=t,s=0;var l=0;do{e.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(t/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(a))/(1-this.e*Math.sin(a)),this.e/2))-this.s45),Math.abs(a-e.y)<1e-10&&(s=1),a=e.y,l+=1}while(0===s&&l<15);return l>=15?null:e},names:["Krovak","krovak"]};function bA(e,t,r,n,o){return e*o-t*Math.sin(2*o)+r*Math.sin(4*o)-n*Math.sin(6*o)}function AA(e){return 1-.25*e*(1+e/16*(3+1.25*e))}function wA(e){return.375*e*(1+.25*e*(1+.46875*e))}function SA(e){return.05859375*e*e*(1+.75*e)}function CA(e){return e*e*e*(35/3072)}function EA(e,t,r){var n=t*r;return e/Math.sqrt(1-n*n)}function _A(e){return Math.abs(e)1e-7?(1-e*e)*(t/(1-(r=e*t)*r)-.5/e*Math.log((1-r)/(1+r))):2*t}r.dn(xA);var PA=.3333333333333333,kA=.17222222222222222,TA=.10257936507936508,jA=.06388888888888888,MA=.0664021164021164,BA=.016415012942191543;var NA={init:function(){var e,t=Math.abs(this.lat0);if(Math.abs(t-mg)0)switch(this.qp=xA(this.e,1),this.mmf=.5/(1-this.es),this.apa=function(e){var t,r=[];return r[0]=e*PA,t=e*e,r[0]+=t*kA,r[1]=t*jA,t*=e,r[0]+=t*TA,r[1]+=t*MA,r[2]=t*BA,r}(this.es),this.mode){case this.N_POLE:case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),e=Math.sin(this.lat0),this.sinb1=xA(this.e,e)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*e*e)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))},forward:function(e){var t,r,n,o,i,a,s,u,l,c,f=e.x,p=e.y;if(f=Iv(f-this.long0),this.sphere){if(i=Math.sin(p),c=Math.cos(p),n=Math.cos(f),this.mode===this.OBLIQ||this.mode===this.EQUIT){if((r=this.mode===this.EQUIT?1+c*n:1+this.sinph0*i+this.cosph0*c*n)<=Ag)return null;t=(r=Math.sqrt(2/r))*c*Math.sin(f),r*=this.mode===this.EQUIT?i:this.cosph0*i-this.sinph0*c*n}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(n=-n),Math.abs(p+this.lat0)=0?(t=(l=Math.sqrt(a))*o,r=n*(this.mode===this.S_POLE?l:-l)):t=r=0}}return e.x=this.a*t+this.x0,e.y=this.a*r+this.y0,e},inverse:function(e){e.x-=this.x0,e.y-=this.y0;var t,r,n,o,i,a,s,u,l,c,f=e.x/this.a,p=e.y/this.a;if(this.sphere){var h,y=0,d=0;if((r=.5*(h=Math.sqrt(f*f+p*p)))>1)return null;switch(r=2*Math.asin(r),this.mode!==this.OBLIQ&&this.mode!==this.EQUIT||(d=Math.sin(r),y=Math.cos(r)),this.mode){case this.EQUIT:r=Math.abs(h)<=Ag?0:Math.asin(p*d/h),f*=d,p=y*h;break;case this.OBLIQ:r=Math.abs(h)<=Ag?this.lat0:Math.asin(y*this.sinph0+p*d*this.cosph0/h),f*=d*this.cosph0,p=(y-Math.sin(r)*this.sinph0)*h;break;case this.N_POLE:p=-p,r=mg-r;break;case this.S_POLE:r-=mg}t=0!==p||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(f,p):0}else{if(s=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(f/=this.dd,p*=this.dd,(a=Math.sqrt(f*f+p*p))1&&(e=e>1?1:-1),Math.asin(e)}r.dn(RA);var LA={init:function(){Math.abs(this.lat1+this.lat2)Ag?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)},forward:function(e){var t=e.x,r=e.y;this.sin_phi=Math.sin(r),this.cos_phi=Math.cos(r);var n=xA(this.e3,this.sin_phi),o=this.a*Math.sqrt(this.c-this.ns0*n)/this.ns0,i=this.ns0*Iv(t-this.long0),a=o*Math.sin(i)+this.x0,s=this.rh-o*Math.cos(i)+this.y0;return e.x=a,e.y=s,e},inverse:function(e){var t,r,n,o,i,a;return e.x-=this.x0,e.y=this.rh-e.y+this.y0,this.ns0>=0?(t=Math.sqrt(e.x*e.x+e.y*e.y),n=1):(t=-Math.sqrt(e.x*e.x+e.y*e.y),n=-1),o=0,0!==t&&(o=Math.atan2(n*e.x,n*e.y)),n=t*this.ns0/this.a,this.sphere?a=Math.asin((this.c-n*n)/(2*this.ns0)):(r=(this.c-n*n)/this.ns0,a=this.phi1z(this.e3,r)),i=Iv(o/this.ns0+this.long0),e.x=i,e.y=a,e},names:["Albers_Conic_Equal_Area","Albers_Equal_Area","Albers","aea"],phi1z:function(e,t){var r,n,o,i,a,s=RA(.5*t);if(e0||Math.abs(i)<=Ag?(a=this.x0+1*this.a*r*Math.sin(n)/i,s=this.y0+1*this.a*(this.cos_p14*t-this.sin_p14*r*o)/i):(a=this.x0+this.infinity_dist*r*Math.sin(n),s=this.y0+this.infinity_dist*(this.cos_p14*t-this.sin_p14*r*o)),e.x=a,e.y=s,e},inverse:function(e){var t,r,n,o,i,a;return e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,e.x/=this.k0,e.y/=this.k0,(t=Math.sqrt(e.x*e.x+e.y*e.y))?(o=Math.atan2(t,this.rc),r=Math.sin(o),a=RA((n=Math.cos(o))*this.sin_p14+e.y*r*this.cos_p14/t),i=Math.atan2(e.x*r,t*this.cos_p14*n-e.y*this.sin_p14*r),i=Iv(this.long0+i)):(a=this.phic0,i=0),e.x=i,e.y=a,e},names:["gnom"]};function FA(e,t){var r=1-(1-e*e)/(2*e)*Math.log((1-e)/(1+e));if(Math.abs(Math.abs(t)-r)<1e-6)return t<0?-1*mg:mg;for(var n,o,i,a,s=Math.asin(.5*t),u=0;u<30;u++)if(o=Math.sin(s),i=Math.cos(s),a=e*o,s+=n=Math.pow(1-a*a,2)/(2*i)*(t/(1-e*e)-o/(1-a*a)+.5/e*Math.log((1-a)/(1+a))),Math.abs(n)<=1e-10)return s;return NaN}r.dn(FA);var QA={init:function(){this.sphere||(this.k0=_v(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))},forward:function(e){var t,r,n=e.x,o=e.y,i=Iv(n-this.long0);if(this.sphere)t=this.x0+this.a*i*Math.cos(this.lat_ts),r=this.y0+this.a*Math.sin(o)/Math.cos(this.lat_ts);else{var a=xA(this.e,Math.sin(o));t=this.x0+this.a*this.k0*i,r=this.y0+this.a*a*.5/this.k0}return e.x=t,e.y=r,e},inverse:function(e){var t,r;return e.x-=this.x0,e.y-=this.y0,this.sphere?(t=Iv(this.long0+e.x/this.a/Math.cos(this.lat_ts)),r=Math.asin(e.y/this.a*Math.cos(this.lat_ts))):(r=FA(this.e,2*e.y*this.k0/this.a),t=Iv(this.long0+e.x/(this.a*this.k0))),e.x=t,e.y=r,e},names:["cea"]};var GA={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)},forward:function(e){var t=e.x,r=e.y,n=Iv(t-this.long0),o=_A(r-this.lat0);return e.x=this.x0+this.a*n*this.rc,e.y=this.y0+this.a*o,e},inverse:function(e){var t=e.x,r=e.y;return e.x=Iv(this.long0+(t-this.x0)/(this.a*this.rc)),e.y=_A(this.lat0+(r-this.y0)/this.a),e},names:["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"]},UA=20;var zA={init:function(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=AA(this.es),this.e1=wA(this.es),this.e2=SA(this.es),this.e3=CA(this.es),this.ml0=this.a*bA(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(e){var t,r,n,o=e.x,i=e.y,a=Iv(o-this.long0);if(n=a*Math.sin(i),this.sphere)Math.abs(i)<=Ag?(t=this.a*a,r=-1*this.a*this.lat0):(t=this.a*Math.sin(n)/Math.tan(i),r=this.a*(_A(i-this.lat0)+(1-Math.cos(n))/Math.tan(i)));else if(Math.abs(i)<=Ag)t=this.a*a,r=-1*this.ml0;else{var s=EA(this.a,this.e,Math.sin(i))/Math.tan(i);t=s*Math.sin(n),r=this.a*bA(this.e0,this.e1,this.e2,this.e3,i)-this.ml0+s*(1-Math.cos(n))}return e.x=t+this.x0,e.y=r+this.y0,e},inverse:function(e){var t,r,n,o,i,a,s,u,l;if(n=e.x-this.x0,o=e.y-this.y0,this.sphere)if(Math.abs(o+this.a*this.lat0)<=Ag)t=Iv(n/this.a+this.long0),r=0;else{var c;for(a=this.lat0+o/this.a,s=n*n/this.a/this.a+a*a,u=a,i=UA;i;--i)if(u+=l=-1*(a*(u*(c=Math.tan(u))+1)-u-.5*(u*u+s)*c)/((u-a)/c-1),Math.abs(l)<=Ag){r=u;break}t=Iv(this.long0+Math.asin(n*Math.tan(u)/this.a)/Math.sin(r))}else if(Math.abs(o+this.ml0)<=Ag)r=0,t=Iv(this.long0+n/this.a);else{var f,p,h,y,d;for(a=(this.ml0+o)/this.a,s=n*n/this.a/this.a+a*a,u=a,i=UA;i;--i)if(d=this.e*Math.sin(u),f=Math.sqrt(1-d*d)*Math.tan(u),p=this.a*bA(this.e0,this.e1,this.e2,this.e3,u),h=this.e0-2*this.e1*Math.cos(2*u)+4*this.e2*Math.cos(4*u)-6*this.e3*Math.cos(6*u),u-=l=(a*(f*(y=p/this.a)+1)-y-.5*f*(y*y+s))/(this.es*Math.sin(2*u)*(y*y+s-2*a*y)/(4*f)+(a-y)*(f*h-2/Math.sin(2*u))-h),Math.abs(l)<=Ag){r=u;break}f=Math.sqrt(1-this.es*Math.pow(Math.sin(r),2))*Math.tan(r),t=Iv(this.long0+Math.asin(n*f/this.a)/Math.sin(r))}return e.x=t,e.y=r,e},names:["Polyconic","American_Polyconic","poly"]};var HA={init:function(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013},forward:function(e){var t,r=e.x,n=e.y-this.lat0,o=r-this.long0,i=n/dg*1e-5,a=o,s=1,u=0;for(t=1;t<=10;t++)s*=i,u+=this.A[t]*s;var l,c=u,f=a,p=1,h=0,y=0,d=0;for(t=1;t<=6;t++)l=h*c+p*f,p=p*c-h*f,h=l,y=y+this.B_re[t]*p-this.B_im[t]*h,d=d+this.B_im[t]*p+this.B_re[t]*h;return e.x=d*this.a+this.x0,e.y=y*this.a+this.y0,e},inverse:function(e){var t,r,n=e.x,o=e.y,i=n-this.x0,a=(o-this.y0)/this.a,s=i/this.a,u=1,l=0,c=0,f=0;for(t=1;t<=6;t++)r=l*a+u*s,u=u*a-l*s,l=r,c=c+this.C_re[t]*u-this.C_im[t]*l,f=f+this.C_im[t]*u+this.C_re[t]*l;for(var p=0;p.999999999999&&(r=.999999999999),t=Math.asin(r);var n=Iv(this.long0+e.x/(.900316316158*this.a*Math.cos(t)));n<-Math.PI&&(n=-Math.PI),n>Math.PI&&(n=Math.PI),r=(2*t+Math.sin(2*t))/Math.PI,Math.abs(r)>1&&(r=1);var o=Math.asin(r);return e.x=n,e.y=o,e},names:["Mollweide","moll"]};var JA={init:function(){Math.abs(this.lat1+this.lat2)=0?(r=Math.sqrt(e.x*e.x+e.y*e.y),t=1):(r=-Math.sqrt(e.x*e.x+e.y*e.y),t=-1);var i=0;return 0!==r&&(i=Math.atan2(t*e.x,t*e.y)),this.sphere?(o=Iv(this.long0+i/this.ns),n=_A(this.g-r/this.a),e.x=o,e.y=n,e):(n=OA(this.g-r/this.a,this.e0,this.e1,this.e2,this.e3),o=Iv(this.long0+i/this.ns),e.x=o,e.y=n,e)},names:["Equidistant_Conic","eqdc"]};var WA={init:function(){this.R=this.a},forward:function(e){var t,r,n=e.x,o=e.y,i=Iv(n-this.long0);Math.abs(o)<=Ag&&(t=this.x0+this.R*i,r=this.y0);var a=RA(2*Math.abs(o/Math.PI));(Math.abs(i)<=Ag||Math.abs(Math.abs(o)-mg)<=Ag)&&(t=this.x0,r=o>=0?this.y0+Math.PI*this.R*Math.tan(.5*a):this.y0+Math.PI*this.R*-Math.tan(.5*a));var s=.5*Math.abs(Math.PI/i-i/Math.PI),u=s*s,l=Math.sin(a),c=Math.cos(a),f=c/(l+c-1),p=f*f,h=f*(2/l-1),y=h*h,d=Math.PI*this.R*(s*(f-y)+Math.sqrt(u*(f-y)*(f-y)-(y+u)*(p-y)))/(y+u);i<0&&(d=-d),t=this.x0+d;var m=u+f;return d=Math.PI*this.R*(h*m-s*Math.sqrt((y+u)*(u+1)-m*m))/(y+u),r=o>=0?this.y0+d:this.y0-d,e.x=t,e.y=r,e},inverse:function(e){var t,r,n,o,i,a,s,u,l,c,f,p;return e.x-=this.x0,e.y-=this.y0,f=Math.PI*this.R,i=(n=e.x/f)*n+(o=e.y/f)*o,f=3*(o*o/(u=-2*(a=-Math.abs(o)*(1+i))+1+2*o*o+i*i)+(2*(s=a-2*o*o+n*n)*s*s/u/u/u-9*a*s/u/u)/27)/(l=(a-s*s/3/u)/u)/(c=2*Math.sqrt(-l/3)),Math.abs(f)>1&&(f=f>=0?1:-1),p=Math.acos(f)/3,r=e.y>=0?(-c*Math.cos(p+Math.PI/3)-s/3/u)*Math.PI:-(-c*Math.cos(p+Math.PI/3)-s/3/u)*Math.PI,t=Math.abs(n)2*mg*this.a)return;return r=t/this.a,n=Math.sin(r),o=Math.cos(r),i=this.long0,Math.abs(t)<=Ag?a=this.lat0:(a=RA(o*this.sin_p12+e.y*n*this.cos_p12/t),s=Math.abs(this.lat0)-mg,i=Math.abs(s)<=Ag?this.lat0>=0?Iv(this.long0+Math.atan2(e.x,-e.y)):Iv(this.long0-Math.atan2(-e.x,e.y)):Iv(this.long0+Math.atan2(e.x*n,t*this.cos_p12*o-e.y*this.sin_p12*n))),e.x=i,e.y=a,e}return u=AA(this.es),l=wA(this.es),c=SA(this.es),f=CA(this.es),Math.abs(this.sin_p12-1)<=Ag?(a=OA(((p=this.a*bA(u,l,c,f,mg))-(t=Math.sqrt(e.x*e.x+e.y*e.y)))/this.a,u,l,c,f),i=Iv(this.long0+Math.atan2(e.x,-1*e.y)),e.x=i,e.y=a,e):Math.abs(this.sin_p12+1)<=Ag?(p=this.a*bA(u,l,c,f,mg),a=OA(((t=Math.sqrt(e.x*e.x+e.y*e.y))-p)/this.a,u,l,c,f),i=Iv(this.long0+Math.atan2(e.x,e.y)),e.x=i,e.y=a,e):(h=this.lat0/wg,y=this.long0/wg,d=Math.atan2(e.x,e.y)/wg,m=Math.sqrt(e.x*e.x+e.y*e.y),g=this.g.Direct(h,y,d,m,this.g.STANDARD),e.x=g.lon2*wg,e.y=g.lat2*wg,e)},names:["Azimuthal_Equidistant","aeqd"]};var $A={init:function(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)},forward:function(e){var t,r,n,o,i,a,s,u=e.x,l=e.y;return n=Iv(u-this.long0),t=Math.sin(l),r=Math.cos(l),o=Math.cos(n),((i=this.sin_p14*t+this.cos_p14*r*o)>0||Math.abs(i)<=Ag)&&(a=1*this.a*r*Math.sin(n),s=this.y0+1*this.a*(this.cos_p14*t-this.sin_p14*r*o)),e.x=a,e.y=s,e},inverse:function(e){var t,r,n,o,i,a,s;return e.x-=this.x0,e.y-=this.y0,r=RA((t=Math.sqrt(e.x*e.x+e.y*e.y))/this.a),n=Math.sin(r),o=Math.cos(r),a=this.long0,Math.abs(t)<=Ag?(s=this.lat0,e.x=a,e.y=s,e):(s=RA(o*this.sin_p14+e.y*n*this.cos_p14/t),i=Math.abs(this.lat0)-mg,Math.abs(i)<=Ag?(a=this.lat0>=0?Iv(this.long0+Math.atan2(e.x,-e.y)):Iv(this.long0-Math.atan2(-e.x,e.y)),e.x=a,e.y=s,e):(a=Iv(this.long0+Math.atan2(e.x*n,t*this.cos_p14*o-e.y*this.sin_p14*n)),e.x=a,e.y=s,e))},names:["ortho"]},ew={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},tw={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function rw(e,t,r,n){var o;return eCg&&o<=mg+Cg?(n.value=tw.AREA_1,o-=mg):o>mg+Cg||o<=-(mg+Cg)?(n.value=tw.AREA_2,o=o>=0?o-_g:o+_g):(n.value=tw.AREA_3,o+=mg)),o}function nw(e,t){var r=e+t;return r<-_g?r+=Eg:r>+_g&&(r-=Eg),r}var ow={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=mg-Cg/2?this.face=ew.TOP:this.lat0<=-(mg-Cg/2)?this.face=ew.BOTTOM:Math.abs(this.long0)<=Cg?this.face=ew.FRONT:Math.abs(this.long0)<=mg+Cg?this.face=this.long0>0?ew.RIGHT:ew.LEFT:this.face=ew.BACK,0!==this.es&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)},forward:function(e){var t,r,n,o,i,a,s={x:0,y:0},u={value:0};if(e.x-=this.long0,t=0!==this.es?Math.atan(this.one_minus_f_squared*Math.tan(e.y)):e.y,r=e.x,this.face===ew.TOP)o=mg-t,r>=Cg&&r<=mg+Cg?(u.value=tw.AREA_0,n=r-mg):r>mg+Cg||r<=-(mg+Cg)?(u.value=tw.AREA_1,n=r>0?r-_g:r+_g):r>-(mg+Cg)&&r<=-Cg?(u.value=tw.AREA_2,n=r+mg):(u.value=tw.AREA_3,n=r);else if(this.face===ew.BOTTOM)o=mg+t,r>=Cg&&r<=mg+Cg?(u.value=tw.AREA_0,n=-r+mg):r=-Cg?(u.value=tw.AREA_1,n=-r):r<-Cg&&r>=-(mg+Cg)?(u.value=tw.AREA_2,n=-r-mg):(u.value=tw.AREA_3,n=r>0?-r+_g:-r-_g);else{var l,c,f,p,h,y;this.face===ew.RIGHT?r=nw(r,+mg):this.face===ew.BACK?r=nw(r,+_g):this.face===ew.LEFT&&(r=nw(r,-mg)),p=Math.sin(t),h=Math.cos(t),y=Math.sin(r),l=h*Math.cos(r),c=h*y,f=p,this.face===ew.FRONT?n=rw(o=Math.acos(l),f,c,u):this.face===ew.RIGHT?n=rw(o=Math.acos(c),f,-l,u):this.face===ew.BACK?n=rw(o=Math.acos(-l),f,-c,u):this.face===ew.LEFT?n=rw(o=Math.acos(-c),f,l,u):(o=n=0,u.value=tw.AREA_0)}return a=Math.atan(12/_g*(n+Math.acos(Math.sin(n)*Math.cos(Cg))-mg)),i=Math.sqrt((1-Math.cos(o))/(Math.cos(a)*Math.cos(a))/(1-Math.cos(Math.atan(1/Math.cos(n))))),u.value===tw.AREA_1?a+=mg:u.value===tw.AREA_2?a+=_g:u.value===tw.AREA_3&&(a+=1.5*_g),s.x=i*Math.cos(a),s.y=i*Math.sin(a),s.x=s.x*this.a+this.x0,s.y=s.y*this.a+this.y0,e.x=s.x,e.y=s.y,e},inverse:function(e){var t,r,n,o,i,a,s,u,l,c,f,p,h={lam:0,phi:0},y={value:0};if(e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,r=Math.atan(Math.sqrt(e.x*e.x+e.y*e.y)),t=Math.atan2(e.y,e.x),e.x>=0&&e.x>=Math.abs(e.y)?y.value=tw.AREA_0:e.y>=0&&e.y>=Math.abs(e.x)?(y.value=tw.AREA_1,t-=mg):e.x<0&&-e.x>=Math.abs(e.y)?(y.value=tw.AREA_2,t=t<0?t+_g:t-_g):(y.value=tw.AREA_3,t+=mg),l=_g/12*Math.tan(t),i=Math.sin(l)/(Math.cos(l)-1/Math.sqrt(2)),a=Math.atan(i),(s=1-(n=Math.cos(t))*n*(o=Math.tan(r))*o*(1-Math.cos(Math.atan(1/Math.cos(a)))))<-1?s=-1:s>1&&(s=1),this.face===ew.TOP)u=Math.acos(s),h.phi=mg-u,y.value===tw.AREA_0?h.lam=a+mg:y.value===tw.AREA_1?h.lam=a<0?a+_g:a-_g:y.value===tw.AREA_2?h.lam=a-mg:h.lam=a;else if(this.face===ew.BOTTOM)u=Math.acos(s),h.phi=u-mg,y.value===tw.AREA_0?h.lam=-a+mg:y.value===tw.AREA_1?h.lam=-a:y.value===tw.AREA_2?h.lam=-a-mg:h.lam=a<0?-a-_g:-a+_g;else{var d,m,g;l=(d=s)*d,m=(l+=(g=l>=1?0:Math.sqrt(1-l)*Math.sin(a))*g)>=1?0:Math.sqrt(1-l),y.value===tw.AREA_1?(l=m,m=-g,g=l):y.value===tw.AREA_2?(m=-m,g=-g):y.value===tw.AREA_3&&(l=m,m=g,g=-l),this.face===ew.RIGHT?(l=d,d=-m,m=l):this.face===ew.BACK?(d=-d,m=-m):this.face===ew.LEFT&&(l=d,d=m,m=-l),h.phi=Math.acos(-g)-mg,h.lam=Math.atan2(m,d),this.face===ew.RIGHT?h.lam=nw(h.lam,-mg):this.face===ew.BACK?h.lam=nw(h.lam,-_g):this.face===ew.LEFT&&(h.lam=nw(h.lam,+mg))}return 0!==this.es&&(c=h.phi<0?1:0,f=Math.tan(h.phi),p=this.b/Math.sqrt(f*f+this.one_minus_f_squared),h.phi=Math.atan(Math.sqrt(this.a*this.a-p*p)/(this.one_minus_f*p)),c&&(h.phi=-h.phi)),h.lam+=this.long0,e.x=h.lam,e.y=h.phi,e},names:["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"]},iw=[[1,2.2199e-17,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],aw=[[-5.20417e-18,.0124,1.21431e-18,-8.45284e-11],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],sw=.8487,uw=1.3523,lw=Sg/5,cw=1/lw,fw=18,pw=function(e,t){return e[0]+t*(e[1]+t*(e[2]+t*e[3]))},hw=function(e,t){return e[1]+t*(2*e[2]+3*t*e[3])};var yw={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.es=0,this.title=this.title||"Robinson"},forward:function(e){var t=Iv(e.x-this.long0),r=Math.abs(e.y),n=Math.floor(r*lw);n<0?n=0:n>=fw&&(n=fw-1),r=Sg*(r-cw*n);var o={x:pw(iw[n],r)*t,y:pw(aw[n],r)};return e.y<0&&(o.y=-o.y),o.x=o.x*this.a*sw+this.x0,o.y=o.y*this.a*uw+this.y0,o},inverse:function(e){var t={x:(e.x-this.x0)/(this.a*sw),y:Math.abs(e.y-this.y0)/(this.a*uw)};if(t.y>=1)t.x/=iw[fw][0],t.y=e.y<0?-mg:mg;else{var r=Math.floor(t.y*fw);for(r<0?r=0:r>=fw&&(r=fw-1);;)if(aw[r][0]>t.y)--r;else{if(!(aw[r+1][0]<=t.y))break;++r}var n=aw[r],o=5*(t.y-n[0])/(aw[r+1][0]-n[0]);o=function(e,t,r,n){for(var o=t;n;--n){var i=e(o);if(o-=i,Math.abs(i)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,0!==this.es){var e=1-this.es,t=1/e;this.radius_p=Math.sqrt(e),this.radius_p2=e,this.radius_p_inv2=t,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")},forward:function(e){var t,r,n,o,i=e.x,a=e.y;if(i-=this.long0,"ellipse"===this.shape){a=Math.atan(this.radius_p2*Math.tan(a));var s=this.radius_p/$b(this.radius_p*Math.cos(a),Math.sin(a));if(r=s*Math.cos(i)*Math.cos(a),n=s*Math.sin(i)*Math.cos(a),o=s*Math.sin(a),(this.radius_g-r)*r-n*n-o*o*this.radius_p_inv2<0)return e.x=Number.NaN,e.y=Number.NaN,e;t=this.radius_g-r,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/$b(o,t)),e.y=this.radius_g_1*Math.atan(o/t)):(e.x=this.radius_g_1*Math.atan(n/t),e.y=this.radius_g_1*Math.atan(o/$b(n,t)))}else"sphere"===this.shape&&(t=Math.cos(a),r=Math.cos(i)*t,n=Math.sin(i)*t,o=Math.sin(a),t=this.radius_g-r,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/$b(o,t)),e.y=this.radius_g_1*Math.atan(o/t)):(e.x=this.radius_g_1*Math.atan(n/t),e.y=this.radius_g_1*Math.atan(o/$b(n,t))));return e.x=e.x*this.a,e.y=e.y*this.a,e},inverse:function(e){var t,r,n,o,i=-1,a=0,s=0;if(e.x=e.x/this.a,e.y=e.y/this.a,"ellipse"===this.shape){this.flip_axis?(s=Math.tan(e.y/this.radius_g_1),a=Math.tan(e.x/this.radius_g_1)*$b(1,s)):(a=Math.tan(e.x/this.radius_g_1),s=Math.tan(e.y/this.radius_g_1)*$b(1,a));var u=s/this.radius_p;if(t=a*a+u*u+i*i,(n=(r=2*this.radius_g*i)*r-4*t*this.C)<0)return e.x=Number.NaN,e.y=Number.NaN,e;o=(-r-Math.sqrt(n))/(2*t),i=this.radius_g+o*i,a*=o,s*=o,e.x=Math.atan2(a,i),e.y=Math.atan(s*Math.cos(e.x)/i),e.y=Math.atan(this.radius_p_inv2*Math.tan(e.y))}else if("sphere"===this.shape){if(this.flip_axis?(s=Math.tan(e.y/this.radius_g_1),a=Math.tan(e.x/this.radius_g_1)*Math.sqrt(1+s*s)):(a=Math.tan(e.x/this.radius_g_1),s=Math.tan(e.y/this.radius_g_1)*Math.sqrt(1+a*a)),t=a*a+s*s+i*i,(n=(r=2*this.radius_g*i)*r-4*t*this.C)<0)return e.x=Number.NaN,e.y=Number.NaN,e;o=(-r-Math.sqrt(n))/(2*t),i=this.radius_g+o*i,a*=o,s*=o,e.x=Math.atan2(a,i),e.y=Math.atan(s*Math.cos(e.x)/i)}return e.x=e.x+this.long0,e},names:["Geostationary Satellite View","Geostationary_Satellite","geos"]},Aw=1.340264,ww=-.081106,Sw=893e-6,Cw=.003796,Ew=Math.sqrt(3)/2;var _w={init:function(){this.es=0,this.long0=void 0!==this.long0?this.long0:0},forward:function(e){var t=Iv(e.x-this.long0),r=e.y,n=Math.asin(Ew*Math.sin(r)),o=n*n,i=o*o*o;return e.x=t*Math.cos(n)/(Ew*(Aw+3*ww*o+i*(7*Sw+9*Cw*o))),e.y=n*(Aw+ww*o+i*(Sw+Cw*o)),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e},inverse:function(e){e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a;var t,r,n,o,i=e.y;for(o=0;o<12&&(i-=n=(i*(Aw+ww*(t=i*i)+(r=t*t*t)*(Sw+Cw*t))-e.y)/(Aw+3*ww*t+r*(7*Sw+9*Cw*t)),!(Math.abs(n)<1e-9));++o);return r=(t=i*i)*t*t,e.x=Ew*e.x*(Aw+3*ww*t+r*(7*Sw+9*Cw*t))/Math.cos(i),e.y=Math.asin(Math.sin(i)/Ew),e.x=Iv(e.x+this.long0),e},names:["eqearth","Equal Earth","Equal_Earth"]},Ow=1e-10;function Iw(e){var t,r,n,o=Iv(e.x-(this.long0||0)),i=e.y;return t=this.am1+this.m1-Yb(i,r=Math.sin(i),n=Math.cos(i),this.en),r=n*o/(t*Math.sqrt(1-this.es*r*r)),e.x=t*Math.sin(r),e.y=this.am1-t*Math.cos(r),e.x=this.a*e.x+(this.x0||0),e.y=this.a*e.y+(this.y0||0),e}function xw(e){var t,r,n,o;if(e.x=(e.x-(this.x0||0))/this.a,e.y=(e.y-(this.y0||0))/this.a,r=$b(e.x,e.y=this.am1-e.y),o=Wb(this.am1+this.m1-r,this.es,this.en),(t=Math.abs(o))Ow?(e.x=r*Math.sin(t=n*Math.cos(o)/r),e.y=this.cphi1-r*Math.cos(t)):e.x=e.y=0,e.x=this.a*e.x+(this.x0||0),e.y=this.a*e.y+(this.y0||0),e}function kw(e){var t,r;e.x=(e.x-(this.x0||0))/this.a,e.y=(e.y-(this.y0||0))/this.a;var n=$b(e.x,e.y=this.cphi1-e.y);if(r=this.cphi1+this.phi1-n,Math.abs(r)>mg)throw new Error;return t=Math.abs(Math.abs(r)-mg)<=Ow?0:n*Math.atan2(e.x,e.y)/Math.cos(r),e.x=Iv(t+(this.long0||0)),e.y=_A(r),e}var Tw={init:function(){var e;if(this.phi1=this.lat1,Math.abs(this.phi1)=mg?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=kw,this.forward=Pw)},names:["bonne","Bonne (Werner lat_1=90)"]};function jw(e){e.Proj.projections.add(Xb),e.Proj.projections.add(aA),e.Proj.projections.add(uA),e.Proj.projections.add(pA),e.Proj.projections.add(hA),e.Proj.projections.add(yA),e.Proj.projections.add(mA),e.Proj.projections.add(gA),e.Proj.projections.add(vA),e.Proj.projections.add(IA),e.Proj.projections.add(NA),e.Proj.projections.add(LA),e.Proj.projections.add(DA),e.Proj.projections.add(QA),e.Proj.projections.add(GA),e.Proj.projections.add(zA),e.Proj.projections.add(HA),e.Proj.projections.add(qA),e.Proj.projections.add(KA),e.Proj.projections.add(YA),e.Proj.projections.add(JA),e.Proj.projections.add(WA),e.Proj.projections.add(ZA),e.Proj.projections.add($A),e.Proj.projections.add(ow),e.Proj.projections.add(yw),e.Proj.projections.add(dw),e.Proj.projections.add(vw),e.Proj.projections.add(bw),e.Proj.projections.add(_w),e.Proj.projections.add(Tw)}r.dn(jw),db.defaultDatum="WGS84",db.Proj=$v,db.WGS84=new db.Proj("WGS84"),db.Point=Bb,db.toPoint=ub,db.defs=wv,db.nadgrid=function(e,t,r){return t instanceof ArrayBuffer?function(e,t,r){var n=!0;void 0!==r&&!1===r.includeErrorFields&&(n=!1);var o=new DataView(t),i=function(e){var t=e.getInt32(8,!1);return 11!==t&&(11!==(t=e.getInt32(8,!0))&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}(o),a=function(e,t){return{nFields:e.getInt32(8,t),nSubgridFields:e.getInt32(24,t),nSubgrids:e.getInt32(40,t),shiftType:Yv(e,56,64).trim(),fromSemiMajorAxis:e.getFloat64(120,t),fromSemiMinorAxis:e.getFloat64(136,t),toSemiMajorAxis:e.getFloat64(152,t),toSemiMinorAxis:e.getFloat64(168,t)}}(o,i),s=function(e,t,r,n){for(var o=176,i=[],a=0;a=0;o--){var i=await t.getImage(o),a=await i.readRasters(),s=a,u=[i.getWidth(),i.getHeight()],l=i.getBoundingBox().map(Vv),c=[i.fileDirectory.ModelPixelScale[0],i.fileDirectory.ModelPixelScale[1]].map(Vv),f=l[0]+(u[0]-1)*c[0],p=l[3]-(u[1]-1)*c[1],h=s[0],y=s[1],d=[];for(let e=u[1]-1;e>=0;e--)for(let t=u[0]-1;t>=0;t--){var m=e*u[0]+t;d.push([-Kv(y[m]),Kv(h[m])])}r.push({del:c,lim:u,ll:[-f,p],cvs:d})}var g={header:{nSubgrids:n},subgrids:r};return Hv[e]=g,g}(e,t)}},db.transform=fb,db.mgrs=Eb,db.version="__VERSION__",jw(db);var Mw=db;function Bw(e){"@babel/helpers - typeof";return(Bw="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Nw(e){return function(e){if(Array.isArray(e))return Rw(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Rw(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Rw(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Rw(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&void 0!==arguments[2]?arguments[2]:[];if(e<.001)throw new Error("time interval can't' less than 0.001");if(!t||0===t.length)return[];for(var n=t.map(function(e){return Xm(Xm({},e),{},{time:Math.round(1e3*e.time)})}),o=1/0,i=1;i2&&void 0!==arguments[2])||arguments[2],n=0,o=0;e.forEach(function(e,t){(!n||e1&&y&&y.requestVideoFrameCallback){var m=function(e,t){d=t.mediaTime,y.requestVideoFrameCallback(m)};y.requestVideoFrameCallback(m)}e.addSource(this.layerId,{type:"video",urls:[t],drawImageCallback:function(e){if(i.videoParameters.length>1){var t=d||i.video.currentTime(),r=i.finder.findNearest(t);if(r&&(h=r.value),h){var n=i.timeParams[h];h=0,n&&(i.dsize=n.dsize,u=n.dstTri,o=n.result,setTimeout(function(){i.map.getSource(i.layerId).setCoordinates([[o[0],o[3]],[o[2],o[3]],[o[2],o[1]],[o[0],o[1]]])},0))}}var a,c=i.cv.matFromImageData(e),y=new i.cv.Mat,m=i.cv.findHomography(s,u);if(i.cv.warpPerspective(c,y,m,i.dsize),i.timeParams[h].allContained)a=new ImageData(new Uint8ClampedArray(y.data),y.cols,y.rows);else{if(i.videoParameters.length>1){var g=i._updateMask(l,i.timeParams[i.beginIndex].realHeight,i.timeParams[i.beginIndex].ratio);f=g.clipMat,p=g.dst1}y.copyTo(p,f),a=new ImageData(new Uint8ClampedArray(p.data),p.cols,p.rows)}return c.delete(),y.delete(),m.delete(),a},coordinates:[[o[0],o[3]],[o[2],o[3]],[o[2],o[1]],[o[0],o[1]]]}),e.addLayer({id:this.layerId,type:"raster",source:this.layerId,paint:{"raster-fade-duration":0}});var g=e.getSource(this.layerId);g&&g.play()}},{key:"_updateMask",value:function(e,t,r){var n=this;e.width=t*r,e.height=t;var o=e.getContext("2d");o.beginPath(),this.timeParams[0].originBounds.forEach(function(e,t){0===t&&o.moveTo(e,n.timeParams[0].originBounds[t+1]),t%2==0&&o.lineTo(e,n.timeParams[0].originBounds[t+1])}),o.closePath(),o.fillStyle="#ffffff",o.fill();var i=o.getImageData(0,0,e.width,e.height);return{clipMat:this.cv.matFromImageData(i),dst1:new this.cv.Mat}}},{key:"_contain",value:function(e,t){return(e[0]>t[0]||Math.abs(e[0]-t[0])<1e-6)&&(e[0]t[1]||Math.abs(e[1]-t[1])<1e-6)&&(e[1]0?(r.totalTimes--,r.ajaxPolling(e)):r._commit(e)}},{key:"ajaxPolling",value:function(e){var t=this,r=e.url,n=/^http:\/\/([a-z]{9}|(\d+\.){3}\d+):\d{0,4}/;return t.index=parseInt(Math.random()*t.length),t.url=t.urls[t.index],r=r.replace(n,n.exec(t.url)[0]),e.url=r,e.isInTheSameDomain=B.isInTheSameDomain(r),t._commit(e)}},{key:"calculatePollingTimes",value:function(){var e=this;e.times?e.totalTimes>e.POLLING_TIMES?e.times>e.POLLING_TIMES?e.totalTimes=e.POLLING_TIMES:e.totalTimes=e.times:e.timese.POLLING_TIMES&&(e.totalTimes=e.POLLING_TIMES),e.totalTimes--}},{key:"isServiceSupportPolling",value:function(){return!("SuperMap.REST.ThemeService"===this.CLASS_NAME||"SuperMap.REST.EditFeaturesService"===this.CLASS_NAME)}},{key:"transformResult",value:function(e,t){return{result:e=B.transformResult(e),options:t}}},{key:"transformErrorResult",value:function(e,t){return{error:(e=B.transformResult(e)).error||e,options:t}}},{key:"serviceProcessCompleted",value:function(e,t){e=this.transformResult(e).result,this.events.triggerEvent("processCompleted",{result:e,options:t})}},{key:"serviceProcessFailed",value:function(e,t){var r=(e=this.transformErrorResult(e).error).error||e;this.events.triggerEvent("processFailed",{error:r,options:t})}},{key:"_returnContent",value:function(e){return e.scope.format!==cn.FGB&&!!e.scope.returnContent}},{key:"supportDataFormat",value:function(e){return this.dataFormat().includes(e)}},{key:"dataFormat",value:function(){return[cn.GEOJSON,cn.ISERVER]}},{key:"_commit",value:function(e){var t=this;if("POST"===e.method||"PUT"===e.method||"PATCH"===e.method)if(e.params&&(e.url=B.urlAppend(e.url,B.getParameterString(e.params||{}))),"object"!==nS(e.data)||e.data instanceof FormData)e.params=e.data;else try{e.params=B.toJSON(e.data)}catch(e){console.log("不是json对象")}return H.commit(e.method,e.url,e.params,{headers:e.headers,withoutFormatSuffix:e.withoutFormatSuffix,withCredentials:e.withCredentials,crossOrigin:e.crossOrigin,timeout:e.async?0:null,proxy:e.proxy}).then(function(e){return e.text?e.text():e.json?e.json():e}).then(function(t){var r=t;return"string"==typeof t&&(r=(new Or).read(t)),(!r||r.error||r.code>=300&&304!==r.code)&&(r=r&&r.error?{error:r.error}:{error:r}),r&&e.scope.format===cn.FGB&&(r.newResourceLocation=r.newResourceLocation.replace(".json","")+".fgb"),r}).catch(function(e){return{error:e}}).then(function(r){var n={object:t};if(r.error){var o="processFailed";if(t.events&&t.events.listeners[o]&&t.events.listeners[o].length){var i=e.failure&&(e.scope?d.bind(e.failure,e.scope):e.failure);i?i(r,e):t.serviceProcessFailed(r,e)}else(n=tS(tS({},n),t.transformErrorResult(r,e))).type=o,e.failure&&e.failure(n)}else{var a="processCompleted";if(t.events&&t.events.listeners[a]&&t.events.listeners[a].length){var s=e.success&&(e.scope?d.bind(e.success,e.scope):e.success);s?s(r,e):t.serviceProcessCompleted(r,e)}else r.succeed=void 0==r.succeed||r.succeed,(n=tS(tS({},n),t.transformResult(r,e))).type=a,e.success&&e.success(n)}return n})}}])&&oS(e.prototype,t),r&&oS(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function sS(e){"@babel/helpers - typeof";return(sS="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function uS(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return lS(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(lS(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,lS(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,lS(f,"constructor",l),lS(l,"constructor",u),u.displayName="GeneratorFunction",lS(l,o,"GeneratorFunction"),lS(f),lS(f,o,"Generator"),lS(f,n,function(){return this}),lS(f,"toString",function(){return"[object Generator]"}),(uS=function(){return{w:i,m:p}})()}function lS(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(lS=function(e,t,r,n){function i(t,r){lS(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function cS(e){return function(e){if(Array.isArray(e))return fS(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return fS(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fS(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fS(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(SS(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,SS(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,SS(f,"constructor",l),SS(l,"constructor",u),u.displayName="GeneratorFunction",SS(l,o,"GeneratorFunction"),SS(f),SS(f,o,"Generator"),SS(f,n,function(){return this}),SS(f,"toString",function(){return"[object Generator]"}),(wS=function(){return{w:i,m:p}})()}function SS(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(SS=function(e,t,r,n){function i(t,r){SS(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function CS(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function ES(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:"id";return TS()(e,t)}function QS(e){return e.hasOwnProperty("start")&&e.hasOwnProperty("end")}function GS(e,t,r){var n=e.id,o=e.properties,i=e.lables,a=t?function(e,t){if(!t)return{};for(var r=e.id,n=e.labels,o=t.filter(function(e){return"entity"===e.type}),i=0;ie.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:this.hoverColor;return{stroke:e,shadowColor:e,shadowBlur:5,endArrow:{path:"M 0,0 L 4,2 L 4,-2 Z",fill:e}}}},{key:"_getDefaultNodeHighlightStyle",value:function(){return{lineWidth:3,stroke:arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.hoverColor}}},{key:"_getContextMenu",value:function(){var e=this;return new(VS().Menu)({shouldBegin:function(e){return!!(e.target&&e.target.isCanvas&&e.target.isCanvas())||!!e.item},getContent:function(t){var r=t.item;if(!(t.target&&t.target.isCanvas&&t.target.isCanvas())&&r){var n=r.getType(),o=r.getModel();return n&&o&&"node"===n?e.isCollpased(o.id)?"
      \n
    • 展开
    • \n
    ":"
      \n
    • 折叠
    • \n
    ":void 0}},handleMenuClick:function(t,r){switch(t.id.split("-")[0]){case"hide":e.hideItem(r);break;case"expand":e.expandNode(r);break;case"collapse":e.collapseNode(r);break;case"show":e.showItem(r)}},offsetX:26,offsetY:0,itemTypes:["node"]})}},{key:"_getGraphConfig",value:function(e){var t=this,r={speed:150,maxIteration:30,tick:WS()(this.refreshPositions.bind(this),150)},n={type:"fruchterman",gravity:5},o={},i={type:"line",style:{endArrow:{path:"M 0,0 L 4,2 L 4,-2 Z",fill:"#e0e0e0"},lineWidth:.5},labelCfg:{autoRotate:!0,style:{fontSize:4,fill:"#333"}}},a={default:["drag-canvas","zoom-canvas","drag-node"]},s=this._getContextMenu(),u=[new(VS().ToolBar),s];if(!e)return this._setToolBarStyle(),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"knowledgeGraph",s=document.querySelector("#".concat(e));return{container:e,width:s.scrollWidth,height:s.scrollHeight,plugins:u,modes:a,layout:tC(tC({},n),r),defaultNode:o,defaultEdge:i,nodeStateStyles:{hover:t._getDefaultNodeHighlightStyle(),actived:t._getDefaultNodeHighlightStyle()},edgeStateStyles:{hover:t._getDefaultEdgeHighlightStyle(),actived:t._getDefaultEdgeHighlightStyle()}}}();e.container=e.container||"knowledgeGraph";var l="string"==typeof e.container?document.querySelector("#".concat(e.container)):e.container;e.width=e.width||l.scrollWidth,e.height=e.height||l.scrollHeight,e.layout=tC(tC(tC({},n),e.layout||{}),!1!==e.animate?r:{}),e.defaultNode=tC(tC({},o),e.defaultNode||{}),e.defaultEdge=tC(tC({},i),e.defaultEdge||{}),e.modes={default:[]},!1!==e.dragCanvas&&e.modes.default.push("drag-canvas"),!1!==e.zoomCanvas&&e.modes.default.push("zoom-canvas"),!1!==e.dragNode&&e.modes.default.push("drag-node");var c=tC(tC({},this._getDefaultNodeHighlightStyle()),e.nodeHighlightStyle||{}),f=tC(tC({},this._getDefaultEdgeHighlightStyle()),e.edgeHighlightStyle||{});return e.nodeStateStyles={hover:c,actived:c},e.edgeStateStyles={hover:f,actived:f},!1!==e.showToolBar&&(e.plugins=[new(VS().ToolBar)],this._setToolBarStyle()),!1!==e.showContextMenu&&(e.plugins=[].concat(ZS(e.plugins||[]),[s]),this._setToolBarStyle()),e}},{key:"changeSize",value:function(e,t){return this.graph.changeSize(e,t)}},{key:"autoResize",value:function(){var e=this,t=this.getContainer();window.addEventListener("resize",function(){var r=t.scrollWidth,n=t.scrollHeight;e.graph.changeSize(r,n),e.graph.refresh()})}},{key:"zoom",value:function(e,t,r,n){this.graph.zoom(e,t,r,n)}},{key:"zoomTo",value:function(e,t,r,n){this.graph.zoomTo(e,t,r,n)}},{key:"fitView",value:function(e,t,r,n){this.graph.fitView(e,t,r,n)}},{key:"fitCenter",value:function(e,t){this.graph.fitCenter(e,t)}},{key:"getGraphCenterPoint",value:function(){return this.graph.getGraphCenterPoint()}},{key:"getViewPortCenterPoint",value:function(){return this.graph.getViewPortCenterPoint()}},{key:"getZoom",value:function(){return this.graph.getZoom()}},{key:"getMinZoom",value:function(){return this.graph.getMinZoom()}},{key:"setMinZoom",value:function(e){this.graph.setMinZoom(e)}},{key:"getMaxZoom",value:function(){return this.graph.getMaxZoom()}},{key:"setMaxZoom",value:function(e){this.graph.setMaxZoom(e)}},{key:"getWidth",value:function(){return this.graph.getWidth()}},{key:"getHeight",value:function(){return this.graph.getHeight()}},{key:"setCenter",value:function(e){var t=this.graph.getWidth()/2,r=this.graph.getHeight()/2,n=this.graph.getCanvasByPoint(e.x,e.y);this.graph.translate(t-n.x,r-n.y)}},{key:"_setToolBarStyle",value:function(){YS()("\n .g6-component-toolbar li[code='redo'],\n .g6-component-toolbar li[code='undo'],\n .g6-component-toolbar li[code='realZoom'] {\n display: none;\n }\n .g6-component-contextmenu {\n position: absolute;\n z-index: 2;\n list-style-type: none;\n border-radius: 6px;\n font-size: 14px;\n width: fit-content;\n transition: opacity .2s;\n text-align: center;\n box-shadow: 0 5px 18px 0 rgba(0, 0, 0, 0.6);\n border: 0px;\n }\n .g6-component-contextmenu ul {\n padding-left: 0px;\n margin: 0;\n }\n .g6-component-contextmenu li {\n cursor: pointer;\n list-style-type: none;\n list-style: none;\n margin-left: 0;\n line-height: 38px;\n padding: 0px 35px;\n }\n .g6-component-contextmenu li:hover {\n color: #333;\n background: #aaaaaa45;\n }\n ")}},{key:"highlightNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph,t=null;e.on("node:mouseenter",function(r){var n=r.item;e.setAutoPaint(!1),t&&e.clearItemStates(t,"hover"),e.setItemState(n,"hover",!0),t=n,e.paint(),e.setAutoPaint(!0)}),e.on("node:mouseleave",function(){e.setAutoPaint(!1),t&&(e.clearItemStates(t,"hover"),t=null),e.paint(),e.setAutoPaint(!0)})}},{key:"highlightEdge",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph,t=null;e.on("edge:mouseenter",function(r){var n=r.item;e.setAutoPaint(!1),t&&e.clearItemStates(t,"hover"),e.setItemState(n,"hover",!0),t=n,e.paint(),e.setAutoPaint(!0)}),e.on("edge:mouseleave",function(){e.setAutoPaint(!1),t&&(e.clearItemStates(t,"hover"),t=null),e.paint(),e.setAutoPaint(!0)})}},{key:"setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;this.data?t.changeData(e):t.data(e),this.data=e}},{key:"render",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).render()}},{key:"updateGraph",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;this.data=e,t.changeData(e)}},{key:"refresh",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).refresh()}},{key:"getContainer",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).getContainer()}},{key:"getCanvas",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).get("canvas")}},{key:"getNodes",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).getNodes()}},{key:"getEdges",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).getEdges()}},{key:"getNeighbors",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).getNeighbors(e,t)}},{key:"findById",value:function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph).findById(e)}},{key:"find",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).find(e,t)}},{key:"findAll",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).findAll(e,t)}},{key:"getEdgesByNode",value:function(e){return e.getEdges()}},{key:"getInEdges",value:function(e){return e.getInEdges()}},{key:"getOutEdges",value:function(e){return e.getOutEdges()}},{key:"getSourceByEdge",value:function(e){return e.getSource()}},{key:"getTargetByEdge",value:function(e){return e.getTarget()}},{key:"expandNode",value:function(e){var t=e.getModel().id;this._expandCollapseNode(this.collpasedData[t],"show"),delete this.collpasedData[t]}},{key:"collapseNode",value:function(e){var t=e.getModel().id,r=[];this._collapseFunc(e,r),this.collpasedData[t]=r,this._expandCollapseNode(r)}},{key:"isCollpased",value:function(e){return!!this.collpasedData[e]}},{key:"_collapseFunc",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.getNeighbors(e,"target"),n=this.getNeighbors(e,"source"),o=0;o1&&void 0!==arguments[1]?arguments[1]:"hide";e&&e.forEach(function(e){"hide"===r?t.hideItem(e.id):(t.showItem(e.id),t.isCollpased(e.id)&&delete t.collpasedData[e.id]),e.children&&t._expandCollapseNode(e.children,r)})}},{key:"showItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).showItem(e,t)}},{key:"hideItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).hideItem(e,t)}},{key:"show",value:function(e){e.show()}},{key:"hide",value:function(e){e.hide()}},{key:"changeVisibility",value:function(e,t){e.changeVisibility(t)}},{key:"isVisible",value:function(e){return e.isVisible()}},{key:"getModel",value:function(e){return e.getModel()}},{key:"addItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).addItem(e,t)}},{key:"removeItem",value:function(e){(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph).removeItem(e)}},{key:"updateItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).updateItem(e,t)}},{key:"refreshItem",value:function(e){(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph).refreshItem(e)}},{key:"refreshPositions",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).refreshPositions()}},{key:"on",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).on(e,t)}},{key:"off",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).off(e,t)}},{key:"toDataURL",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).toDataURL(e,t)}},{key:"bindNodeDefaultDragEvent",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e.on("node:dragstart",function(e){aC(e)}),e.on("node:drag",function(e){aC(e)}),e.on("node:dragend",function(e){e.item.get("model").fx=null,e.item.get("model").fy=null})}},{key:"stopDefaultEventPropagation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e.on("click",function(e){e.stopPropagation()}),e.on("mousedown",function(e){e.stopPropagation()}),e.on("mouseover",function(e){e.stopPropagation()}),e.on("mouseout",function(e){e.stopPropagation()})}},{key:"clear",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).clear()}},{key:"destroy",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).destroy()}}])&&nC(e.prototype,t),r&&nC(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function aC(e){var t=e.item.get("model");return t.fx=e.x,t.fy=e.y,t.x=e.x,t.y=e.y,t}var sC=r(5611),uC=r.n(sC);function lC(e){"@babel/helpers - typeof";return(lC="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cC(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"G6";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.graph=null,this.config=uC()(t),this.graphRender=null,this.type=r,this.createGraphRender(this.type),this.config=this.graphRender._getGraphConfig(this.config),this.createGraph(this.config),this.CLASS_NAME="SuperMap.KnowledgeGraph"},r=[{key:"dataFromGraphMap",value:function(e,t){return DS(e,t)}},{key:"dataFromKnowledgeGraphQuery",value:function(e){return DS(e)}}],(t=[{key:"_handleNodes",value:function(e,t){var r=this;e.filter(function(e){return""!==e}).forEach(function(e){var n=r.findById(e);t(n,"node")})}},{key:"_handleEdges",value:function(e,t){var r=this;e.filter(function(e){return""!==e}).forEach(function(e){var n=r.find("edge",function(t){return t.get("model").edgeId==e});t(n,"edge")})}},{key:"highlight",value:function(e){var t=e.nodeIDs,r=void 0===t?[]:t,n=e.edgeIDs,o=void 0===n?[]:n,i=this.graph,a=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"node";if(t){var n=e[r+"StateStyles"];n&&i.updateItem(t,{style:t.style,stateStyles:{actived:n}}),i.setItemState(t,"actived",!0),i.paint(),i.setAutoPaint(!0)}};this._handleNodes(r,a),this._handleEdges(o,a)}},{key:"clearHighlight",value:function(e){var t=this.graph,r=function(e){e&&(t.clearItemStates(e,"actived"),t.paint(),t.setAutoPaint(!0))};if(t.setAutoPaint(!1),!e)return t.getNodes().forEach(function(e){r(e)}),void t.getEdges().forEach(function(e){r(e)});var n=e.nodeIDs,o=void 0===n?[]:n,i=e.edgeIDs,a=void 0===i?[]:i;this._handleNodes(o,r),this._handleEdges(a,r)}},{key:"handleNodeStatus",value:function(e){var t=e.expand,r=e.collapse,n=e.hidden;this.expandNodes(t),this.collapseNodes(r),this.hideNodes(n)}},{key:"expandNodes",value:function(e){var t=this;e&&e.forEach(function(e){t.expandNode(e+"")})}},{key:"collapseNodes",value:function(e){var t=this;e&&e.forEach(function(e){t.collapseNode(e+"")})}},{key:"hideNodes",value:function(e){var t=this;e&&e.forEach(function(e){t.hideItem(e+"")})}},{key:"createGraphRender",value:function(e){"G6"===e&&(this.graphRender=new iC)}},{key:"createGraph",value:function(e){var t=this.initGraph(e);return this.graph=t,this.autoResize(),t}},{key:"getGraph",value:function(){return this.graph}},{key:"autoResize",value:function(){this.config&&!1!==this.config.autoResize&&this.graphRender.autoResize()}},{key:"zoom",value:function(e,t,r,n){this.graphRender.zoom(e,t,r,n)}},{key:"zoomTo",value:function(e,t,r,n){this.graphRender.zoomTo(e,t,r,n)}},{key:"fitView",value:function(e,t,r,n){this.graphRender.fitView(e,t,r,n)}},{key:"fitCenter",value:function(e,t){this.graphRender.fitCenter(e,t)}},{key:"getGraphCenterPoint",value:function(){return this.graphRender.getGraphCenterPoint()}},{key:"getViewPortCenterPoint",value:function(){return this.graphRender.getViewPortCenterPoint()}},{key:"getZoom",value:function(){return this.graphRender.getZoom()}},{key:"getMinZoom",value:function(){return this.graphRender.getMinZoom()}},{key:"setMinZoom",value:function(e){this.graphRender.setMinZoom(e)}},{key:"getMaxZoom",value:function(){return this.graphRender.getMaxZoom()}},{key:"setMaxZoom",value:function(e){this.graphRender.setMaxZoom(e)}},{key:"getWidth",value:function(){return this.graphRender.getWidth()}},{key:"getHeight",value:function(){return this.graphRender.getHeight()}},{key:"initGraph",value:function(e){var t=this,r=this.graphRender.initGraph(e);this.graph=r;return this.graph.on("afterlayout",function(){void 0!==t.config.zoom&&t.zoom(t.config.zoom),void 0!==t.config.center&&t.graphRender.setCenter({x:t.config.center[0],y:t.config.center[1]})}),r}},{key:"setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;e=e||{nodes:[],edges:[]},this.config&&this.config.nodeLabelMaxWidth&&(e.nodes=this.nodeLabelOpenEllipsis(this.config.nodeLabelMaxWidth,e.nodes)),this.graphRender.setData(e,t),this.render(t),this.data=e}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e&&this.graphRender.render(e)}},{key:"updateGraph",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;t&&this.graphRender.updateGraph(e,t)}},{key:"refresh",value:function(){return this.graphRender.refresh()}},{key:"changeSize",value:function(e,t){return this.graphRender.changeSize(e,t)}},{key:"resize",value:function(e,t){this.graphRender.changeSize(e,t),this.graphRender.refresh()}},{key:"getContainer",value:function(){return this.graphRender.getContainer()}},{key:"getCanvas",value:function(){return this.graphRender.getCanvas()}},{key:"getNodes",value:function(){return this.graphRender.getNodes()}},{key:"getEdges",value:function(){return this.graphRender.getEdges()}},{key:"getNeighbors",value:function(e,t){return this.graphRender.getNeighbors(e,t)}},{key:"findById",value:function(e){return this.graphRender.findById(e)}},{key:"find",value:function(e,t){return this.graphRender.find(e,t)}},{key:"findAll",value:function(e,t){return this.graphRender.findAll(e,t)}},{key:"getEdgesByNode",value:function(e){return this.graphRender.getEdgesByNode(e)}},{key:"getInEdges",value:function(e){return this.graphRender.getInEdges(e)}},{key:"getOutEdges",value:function(e){return this.graphRender.getOutEdges(e)}},{key:"getSourceByEdge",value:function(e){return this.graphRender.getSourceByEdge(e)}},{key:"getTargetByEdge",value:function(e){return this.graphRender.getTargetByEdge(e)}},{key:"expandNode",value:function(e){var t=this.findById(e);t&&this.graphRender.expandNode(t)}},{key:"collapseNode",value:function(e){var t=this.findById(e);t&&this.graphRender.collapseNode(t)}},{key:"showItem",value:function(e,t){this.graphRender.showItem(e,t)}},{key:"hideItem",value:function(e,t){this.graphRender.hideItem(e,t)}},{key:"show",value:function(e){this.graphRender.show(e)}},{key:"hide",value:function(e){this.graphRender.hide(e)}},{key:"changeVisibility",value:function(e,t){this.graphRender.changeVisibility(e,t)}},{key:"isVisible",value:function(e){return this.graphRender.isVisible(e)}},{key:"getModel",value:function(e){return this.graphRender.getModel(e)}},{key:"addItem",value:function(e,t){return this.graphRender.addItem(e,t)}},{key:"removeItem",value:function(e){return this.graphRender.removeItem(e)}},{key:"updateItem",value:function(e,t){return this.graphRender.updateItem(e,t)}},{key:"refreshItem",value:function(e){return this.graphRender.refreshItem(e)}},{key:"refreshPositions",value:function(){return this.graphRender.refreshPositions()}},{key:"on",value:function(e,t){this.graphRender.on(e,t)}},{key:"off",value:function(e,t){this.graphRender.off(e,t)}},{key:"toDataURL",value:function(e,t){this.graphRender.toDataURL(e,t)}},{key:"nodeLabelOpenEllipsis",value:function(e,t){var r=this;return t?e?t.map(function(t){var n=t.labelCfg&&t.labelCfg.fontSize||r.defaultNode&&r.defaultNode.labelCfg&&r.defaultNode.labelCfg.fontSize||14;return t.label=function(e,t,r){var n=1*r;t*=1.6;if(function(e){for(var t=0,r=0;r0&&e.charCodeAt(r)<128?t++:t+=2;return t}(e)*n>t){var o=Math.floor((t-20)/n),i=e.substring(0,o);return(e.substring(o).length+"…".length)*n>t?i+"\n"+e.substring(o,o+o-2)+"…":0==e.substring(o).length?i:i+"\n"+e.substring(o)}return e}(t.label,e,n),t}):t:[]}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e&&e.clear()}},{key:"destroy",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e&&e.destroy()}}])&&cC(e.prototype,t),r&&cC(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function hC(e){"@babel/helpers - typeof";return(hC="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function yC(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function dC(e,t,r){return(t=AC(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function mC(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return gC(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(gC(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,gC(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,gC(f,"constructor",l),gC(l,"constructor",u),u.displayName="GeneratorFunction",gC(l,o,"GeneratorFunction"),gC(f),gC(f,o,"Generator"),gC(f,n,function(){return this}),gC(f,"toString",function(){return"[object Generator]"}),(mC=function(){return{w:i,m:p}})()}function gC(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(gC=function(e,t,r,n){function i(t,r){gC(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function vC(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function bC(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);rp.length?o:p}if(!o.length){var h=[[0,0],[this.map.transform.width-1,this.map.transform.height-1]];this.queryRenderedFeatures(h,{layerCapture:!1},function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];o=e})}return o}},{key:"setSelectedDatas",value:function(e){this.selectedDatas=e instanceof Array?e:[e]}},{key:"_formatListenType",value:function(e){switch(e){case"mouseover":return"mouseenter";case"mouseleave":return"mouseout";default:return e}}},{key:"_transformFilterValues",value:function(e){for(var t=e.fields,r=e.values,n=e.selectedDatas,o=arguments.length,i=new Array(o>1?o-1:0),a=1;a1&&void 0!==arguments[1]?arguments[1]:{};if(null!=e.bbox&&!0!==t.recompute)return e.bbox;var r=[1/0,1/0,-1/0,-1/0];return FC(e,function(e){r[0]>e[0]&&(r[0]=e[0]),r[1]>e[1]&&(r[1]=e[1]),r[2]2&&void 0!==arguments[2]?arguments[2]:{},n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function HC(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!KC(e[0])||!KC(e[1]))throw new Error("coordinates must contain numbers");return zC({type:"Point",coordinates:e},t,r)}function qC(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"kilometers",r=UC[t];if(!r)throw new Error(t+" units is invalid");return e*r}function VC(e){return e%360*Math.PI/180}function KC(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}var YC=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=GC(e);return HC([(r[0]+r[2])/2,(r[1]+r[3])/2],t.properties,t)},JC=function(){try{return G2}catch(e){return{}}}(),WC={colorRegExp:null,_nameColors:null,initialize:function(){this.colorRegExp=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,this._nameColors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"}},toColor:function(e,t){if(t=t||"rgb",e&&(3===e.length||4===e.length)){if(e=this.map(e,function(e){return e>1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var r=this.map(e.slice(1,3),function(e){return e+"%"});e[1]=r[0],e[2]=r[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=this.adjust(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}},convert:function(e,t){if(!this.isCalculableColor(e))return e;var r=this.getData(e),n=r[3];return void 0===n&&(n=1),e.indexOf("hsb")>-1?r=this._HSV_2_RGB(r):e.indexOf("hsl")>-1&&(r=this._HSL_2_RGB(r)),r[3]=n,this.toColor(r,t)},toRGBA:function(e){return this.convert(e,"rgba")},trim:function(e){return String(e).replace(/\s+/g,"")},normalize:function(e){if(this._nameColors[e]&&(e=this._nameColors[e]),e=(e=this.trim(e)).replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){var t=(3840&(e=parseInt(e.slice(1),16)))<<8,r=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(r<<4)+r+(n<<4)+n).toString(16).slice(1)}return e},getData:function(e){var t,r,n=(e=this.normalize(e)).match(this.colorRegExp);if(null===n)throw new Error("The color format error");var o,i=[];if(n[2])o=[(t=n[2].replace("#","").split(""))[0]+t[1],t[2]+t[3],t[4]+t[5]],i=this.map(o,function(e){return WC.adjust.call(this,parseInt(e,16),[0,255])});else if(n[4]){var a=n[4].split(",");r=a[3],o=a.slice(0,3),i=this.map(o,function(e){return e=Math.floor(e.indexOf("%")>0?2.55*parseInt(e,0):e),WC.adjust.call(this,e,[0,255])}),void 0!==r&&i.push(this.adjust(parseFloat(r),[0,1]))}else if(n[5]||n[6]){var s=(n[5]||n[6]).split(","),u=parseInt(s[0],0)/360,l=s[1],c=s[2];r=s[3],(i=this.map([l,c],function(e){return WC.adjust.call(this,parseFloat(e)/100,[0,1])})).unshift(u),void 0!==r&&i.push(this.adjust(parseFloat(r),[0,1]))}return i},map:function(e,t){if("function"!=typeof t)throw new TypeError;for(var r=e?e.length:0,n=0;n=t[1]&&(e=t[1]),e},isCalculableColor:function(e){return e instanceof Array||"string"==typeof e},_HSV_2_RGB:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s=6*o;6===s&&(s=0);var u=0|s,l=a*(1-i),c=a*(1-i*(s-u)),f=a*(1-i*(1-(s-u))),p=0,h=0,y=0;0===u?(p=a,h=f,y=l):1===u?(p=c,h=a,y=l):2===u?(p=l,h=a,y=f):3===u?(p=l,h=c,y=a):4===u?(p=f,h=l,y=a):(p=a,h=l,y=c),t=255*p,r=255*h,n=255*y}return[t,r,n]},_HSL_2_RGB:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s,u=2*a-(s=a<.5?a*(1+i):a+i-i*a);t=255*this._HUE_2_RGB(u,s,o+1/3),r=255*this._HUE_2_RGB(u,s,o),n=255*this._HUE_2_RGB(u,s,o-1/3)}return[t,r,n]},_HUE_2_RGB:function(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}};WC.initialize();var XC=WC,ZC=r(1855),$C=r.n(ZC);function eE(e,t,r){r.defs(e)||(t?r.defs(e,t):console.error("".concat(e," not define")))}function tE(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Mw;if("[object Object]"!==Object.prototype.toString.call(arguments[0]))eE(e,t,r);else{var n=arguments[0];for(var o in n)eE(o,n[o],r)}}function rE(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Mw;if(!t.defs(e)){var r={"EPSG:3857":'PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]]',"EPSG:4326":'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],AXIS["Easting", "EAST"],AXIS["Northing", "NORTH"],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]',"EPSG:4490":'GEOGCS["China Geodetic Coordinate System 2000", DATUM["China 2000", SPHEROID["CGCS2000", 6378137.0, 298.257222101, AUTHORITY["EPSG","1024"]], AUTHORITY["EPSG","1043"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic latitude", NORTH], AXIS["Geodetic longitude", EAST], AUTHORITY["EPSG","4490"]]'};r[e]&&tE(e,r[e],t)}return t.defs(e)}function nE(e){if("string"!=typeof e)return"";if(0===e.indexOf("EPSG"))return e;var t=e.lastIndexOf("AUTHORITY")+10,r=e.indexOf("]",t)-1;return t>0&&r>0?"EPSG:".concat(e.substring(t,r).split(",")[1].substr(1)):""}function oE(e){var t=e.coordinates,r=e.sourceProjection,n=e.destProjection,o=void 0===n?"EPSG:4326":n,i=e.proj4,a=void 0===i?Mw:i;try{return a(r,o,t)}catch(e){throw"".concat(e," is not defined")}}function iE(e,t){var r=e.replace(/^EPSG:/,""),n=Oo(t);return H.get("".concat(n,"epsgcodes/").concat(r,".json"),null).then(function(e){return e.json()}).then(function(e){return e.wkt}).catch(function(e){console.error(e)})}function aE(e){"@babel/helpers - typeof";return(aE="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function sE(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(aE(e)+" is not iterable")}function uE(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return lE(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(lE(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,lE(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,lE(f,"constructor",l),lE(l,"constructor",u),u.displayName="GeneratorFunction",lE(l,o,"GeneratorFunction"),lE(f),lE(f,o,"Generator"),lE(f,n,function(){return this}),lE(f,"toString",function(){return"[object Generator]"}),(uE=function(){return{w:i,m:p}})()}function lE(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(lE=function(e,t,r,n){function i(t,r){lE(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function cE(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=bE(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function fE(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function pE(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r0}function RE(e,t){if(e){var r,n=SE(r=e)||wE(r)||bE(r)||vE(),o=n[0],i=AE(n).slice(1).filter(function(e){var t=gE(e,2)[1];return!["$type","$id"].includes(t)}),a=Array.from(new Set(function e(t){var r=[];var n,o=cE(t);try{for(o.s();!(n=o.n()).done;){var i=n.value;if(i instanceof Array&&i[1]&&"string"==typeof i[1])r.push(i[1]);else if(i instanceof Array){var a=e(i);a&&a.length>0&&r.push.apply(r,mE(a))}}}catch(e){o.e(e)}finally{o.f()}return r}(i))),s=t([o].concat(mE(i))),u=s.filter.bind(s);return{field:a,values:function(){for(var e=arguments.length,t=new Array(e),r=0;r=0}(e,t)?pE(pE({},t),{},{withCredentials:!0}):pE(pE({},t),{},{withCredentials:void 0})}function v(e,t){return b.apply(this,arguments)}function b(){return(b=dE(uE().m(function e(t,r){var n,o,i,a,u,l,c,f,p,y,d,v,b;return uE().w(function(e){for(;;)switch(e.n){case 0:return n=t.url,o=t.dataSourceName,i=t.datasetName,a=t.credential,u={datasetNames:[o+":"+i],getFeatureMode:"SQL",targetEpsgCode:"4326",queryParameter:{name:i+"@"+o}},l="".concat(n.split("featureResults")[0],"datasources/").concat(o,"/datasets/").concat(i),c=g(l,r),e.n=1,h(l,a,c);case 1:return f=e.v,p=f.fieldNames,y=f.fieldTypes,d=s(n,a),e.n=2,H.post(d,JSON.stringify(u),c);case 2:return v=e.v,e.n=3,v.json();case 3:return b=e.v,e.a(2,{type:"FeatureCollection",features:m((b||{}).features||[],p,y)})}},e)}))).apply(this,arguments)}function A(e,t){return H.get(e,null,t).then(function(e){return e.json()}).then(function(e){if(!1===e.succeed)throw e.error.errorMsg;return e})}function w(e,t){return S.apply(this,arguments)}function S(){return(S=dE(uE().m(function e(t,r){var n,o,i,a,s,u;return uE().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,A(t,r);case 1:if(n=e.v,i=(o=n||{}).features,a=o.links,!(s=(void 0===a?[]:a).find(function(e){return"next"===e.rel}))){e.n=3;break}return u=i,e.n=2,w(s.href,r);case 2:return e.a(2,u.concat.call(u,e.v));case 3:return e.a(2,i);case 4:return e.a(2)}},e)}))).apply(this,arguments)}function C(e,t){return E.apply(this,arguments)}function E(){return(E=dE(uE().m(function e(t,r){var n,o;return uE().w(function(e){for(;;)switch(e.n){case 0:return n="".concat(r.server,"web/datas/").concat(t,"/structureddata/ogc-features/collections/all/items.json?limit=10000&offset=0"),e.n=1,w(n,r);case 1:return o=e.v,e.a(2,{type:"FeatureCollection",features:o})}},e)}))).apply(this,arguments)}function _(e,t,r){if(e===t)return r;if("EPSG:4214"===e&&"EPSG:4326"===t&&180===r[0]){var n=oE({coordinates:r,sourceProjection:e,destProjection:t,proj4:a});return n[0]=180,n}return oE({coordinates:r,sourceProjection:e,destProjection:t,proj4:a})}function O(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"EPSG:4326";if(e&&e.length&&t)return t===r?e:e.map(function(e){var n=function(e,t,r){if("MultiPolygon"===r.type){var n=r.coordinates;return{type:r.type,coordinates:n.map(function(r){return r.map(function(r){return r.map(function(r){return _(e,t,r)})})})}}if("Polygon"===r.type||"MultiLineString"===r.type){var o=r.coordinates;return{type:r.type,coordinates:o.map(function(r){return r.map(function(r){return _(e,t,r)})})}}if("MultiPoint"===r.type||"LineString"===r.type){var i=r.coordinates;return{type:r.type,coordinates:i.map(function(r){return _(e,t,r)})}}if("Point"===r.type)return{type:r.type,coordinates:_(e,t,r.coordinates)}}(t,r,e.geometry),o=pE({},e);return n&&Object.assign(o,{geometry:n}),o})}function I(e,t){return x.apply(this,arguments)}function x(){return(x=dE(uE().m(function e(t,r){var n,o,i,s,u,l;return uE().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,C(t.dataId,r);case 1:return n=e.v,e.n=2,H.get("".concat(r.server,"web/datas/").concat(t.dataId,"/structureddata.json"),null,r);case 2:return o=e.v,e.n=3,o.json();case 3:if(i=e.v,"EPSG:4326"===(s="EPSG:".concat(i.epsgCode))){e.n=6;break}if(rE(s,a)){e.n=5;break}return e.n=4,iE(s,r.server);case 4:u=e.v,tE(s,u,a);case 5:(l=O(n.features,s))&&(n.features=l);case 6:return e.a(2,n)}},e)}))).apply(this,arguments)}function P(e){return{type:"json",x:e.originX,y:e.originY,x1:e.destinationX,y1:e.destinationY}}function k(e){var t=e.clusterField,r=e.clusterMethod,n=e.clusterRadius;return[{type:e.clusterType,field:t,method:r&&{avg:"mean"}[r]||r,size:n}]}function T(e,t,r){return j.apply(this,arguments)}function j(){return(j=dE(uE().m(function e(t,r,n){var o,i,a,s,u,l,c,f,p,h;return uE().w(function(e){for(;;)switch(e.n){case 0:if(o=t.data,i=t.od,a=t.cluster,!o||"FeatureCollection"!==o.type){e.n=1;break}return e.a(2,{data:o});case 1:if(s={"supermap-rest-data":v,"supermap-structured-data":I},u=i&&P(t),l=a&&k(t),!(c=s[o.type])){e.n=3;break}return e.n=2,s[o.type](t.data,n);case 2:c=e.v;case 3:return f=c,p=u,h=l,e.a(2,{data:f,parser:p,transforms:h})}},e)}))).apply(this,arguments)}function M(e,t,r){var n={data:((e||{}).tiles||[])[0],parser:{type:"mvt",extent:e.bounds,sourceLayer:t}},o=r.transformRequest(n.data,"Tile");return o&&(o.credentials&&(n.parser.requestParameters={credentials:o.credentials}),o.headers&&(n.parser.requestParameters=pE(pE({},n.parser.requestParameters),{},{headers:o.headers}))),n}function B(e,t,r){var n=e.type,o={vector:M,geojson:T};return o[n]&&o[n](e,t,r)}function N(e){var r=e.type,n=e.id,o=e.minzoom,i=e.maxzoom,a=e.layout,s=e.paint,u=e.filter,l=e.source;return{id:n,options:{type:r,name:e.id,sourceLayer:e["source-layer"],source:l,layout:a,paint:s,filter:u,minZoom:o,maxZoom:i,visible:"none"!==a.visibility},filter:RE(u,t)}}function R(e){var t=e.value,o=e.property,i=e.multiple,a=e.map;if(!r.isExpression(t))return{values:i?t*i:t};var s={interpolate:function(e){return e.value._styleExpression.expression.input.args[0].args[0].evaluate(e.value._styleExpression._evaluator)},match:function(e){return e.value._styleExpression.expression.input.args[0].evaluate(e.value._styleExpression._evaluator)},case:function(e){var t=e.value._styleExpression.expression.branches[0][0];return t&&t.args?t.args[0].lhs.args[0].args[0].evaluate(e.value._styleExpression._evaluator):t.lhs.args[0].evaluate()}},u=n[{size:"paint_circle",color:"paint_circle",shape:"layout_symbol"}[o]][{size:"circle-radius",color:"circle-color",shape:"icon-image"}[o]],l=r.createPropertyExpression(t,u),c=s[t[0]]&&s[t[0]](l),f=l.value.evaluate.bind(l.value);return{field:c,values:function(e){var t={properties:hE({},c,e),type:"point"},r=f({zoom:a.getZoom()},t);return"shape"===o?r.toString():i?r*i:r}}}function L(e,t){return hE(hE(hE(hE(hE(hE(hE(hE({},"".concat(e,"-dasharray"),"dashArray"),"".concat(e,"-opacity"),"opacity"),"".concat(e,"-pattern-color"),"textureColor"),"".concat(e,"-pattern-opacity"),"opacity"),"".concat(e,"-pattern-interval"),"iconStep"),"".concat(e,"-pattern-blend"),"textureBlend"),"".concat(e,"-segment"),"segmentNumber"),"".concat(e,"-pattern-rotate"),"textureRotate")[t]}function D(e,t){return hE(hE(hE({},"".concat(e,"-animate-duration"),"duration"),"".concat(e,"-animate-interval"),"interval"),"".concat(e,"-animate-trailLength"),"trailLength")[t]}function F(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n1&&!function(e){return 2===e.length&&1===e[0]&&0===e[1]}(e)?"dash":"solid"}function q(e,t,r){var n=e.paint,o=e.layout,i=n["circle-color"]||"#EE4D5A",a=n["circle-radius"]||30,s=n["circle-opacity"],u=o["circle-animate-speed"],l=o["circle-animate-rings"];return pE(pE({},N(e)),{},{type:EE.point,source:t,color:R({value:i,property:"color",map:r}),size:R({value:a,property:"size",multiple:2,map:r}),shape:{values:"circle"},style:{opacity:s},animate:{enable:!0,speed:u,rings:l}})}function V(e,t,r){var n=e.paint,o=e.layout,i=n["radar-color"]||"#EE4D5A",a=n["radar-radius"]||30,s=n["radar-opacity"],u=o["radar-animate-speed"];return pE(pE({},N(e)),{},{type:EE.point,source:t,color:R({value:i,property:"color",map:r}),size:R({value:a,property:"size",map:r}),shape:{values:"radar"},style:{opacity:s,speed:u},animate:{enable:!0}})}function K(e,t,r){var n=e.paint,o=e.layout,i=o["line-curve-shape"]||o["line-curve-extrusion-shape"],a="arc3d"===i?"line-curve-extrusion":"line-curve",s=n["".concat(a,"-color")]||"#ff6b34",u=n["".concat(a,"-width")]||1,l=n["".concat(a,"-dasharray")],c=n["".concat(a,"-pattern")],f=pE(pE({},N(e)),{},{type:EE.line,source:{data:t.data.features.map(function(e){return e.properties}),parser:t.parser},color:R({value:s,property:"color",map:r}),size:R({value:u,property:"size",map:r}),shape:{values:i},style:{lineType:z(l)}});for(var p in n){var h=L(a,p);h&&Object.assign(f.style||{},hE({},h,n[p]))}for(var y in o){var d=L(a,y);d&&Object.assign(f.style||{},hE({},d,o[y]));var m=D(a,y);m&&(f.animate||(f.animate={}),Object.assign(f.animate,hE({},m,o[y])))}return c&&(f.texture={values:c},Object.assign(f.style||{},{lineTexture:!0})),f}function Y(e,t,r){var n=e.paint,o=e.layout,i=n["point-extrusion-color"]||"#EE4D5A",a=n["point-extrusion-width"]||12,s=n["point-extrusion-length"]||12,u=n["point-extrusion-height"]||12,l=n["point-extrusion-opacity"],c=n["point-extrusion-source-color"],f=n["point-extrusion-target-color"],p=n["point-extrusion-opacity-linear-direction"],h=o["point-extrusion-shape"]||"cylinder";return pE(pE({},N(e)),{},{type:EE.point,source:t,color:R({value:i,property:"color",map:r}),size:F(r,{value:a,multiple:.5},{value:s,multiple:.5},{value:u}),shape:R({value:h,property:"shape",map:r}),style:{opacity:l,sourceColor:c,targetColor:f,opacityLinear:{enable:!!p,dir:p}}})}function J(e,t,r){var n=e.paint,o=e.layout,i=n["line-extrusion-color"]||"#ff6b34",a=n["line-extrusion-width"]||12,s=n["line-extrusion-base"]||0,u=n["line-extrusion-dasharray"],l=n["line-extrusion-pattern"],c=pE(pE({},N(e)),{},{type:EE.line,source:t,color:R({value:i,property:"color",map:r}),size:F(r,{value:a,multiple:BE},{value:s}),shape:{values:"line"},style:{lineType:z(u)}});for(var f in n){var p=_E[f];p&&Object.assign(c.style||{},hE({},p,n[f]))}for(var h in o){var y=_E[h];y&&Object.assign(c.style||{},hE({},y,o[h]));var d=OE[h];d&&(c.animate||(c.animate={}),Object.assign(c.animate,hE({},d,o[h])))}return l&&(c.texture={values:l},Object.assign(c.style||{},{lineTexture:!0})),c}function W(e,t){var r=e.paint,n=e.layout,o=r["chart-background-color"],i=r["chart-width"],a=r["chart-height"],s={grid:r["chart-xAxis-grid"],label:r["chart-xAxis-label"],line:r["chart-xAxis-line"]},u={grid:r["chart-yAxis-grid"],label:r["chart-yAxis-label"],line:r["chart-yAxis-line"]},l=n["chart-type"],c=n["chart-attribute-color"],f="line"===l&&c.length>0&&{values:c[0][1]};return pE(pE({},N(e)),{},{type:EE.point,id:e.id,source:t,layerType:IE.MarkerLayer,chartType:l,fields:{values:"bar"===l?Q(c):function(e){return e.map(function(e){return gE(e,1)[0]})}(c)},width:{values:i},height:{values:a},background:{values:o},xAxis:{values:s},yAxis:{values:u},color:f})}function X(e,t){var r=e.paint,n=e.layout,o=r["chart-radius"],i=r["chart-inner-radius"],a=n["chart-type"],s=n["chart-attribute-color"];return pE(pE({},N(e)),{},{type:EE.point,id:e.id,source:t,layerType:IE.MarkerLayer,chartType:a,fields:{values:Q(s)},radius:{values:o},innerRadius:{values:i}})}function Z(e,t,r){var n=e.paint,o=e.layout,i=n["heatmap-color"]||"#EE4D5A",a=n["heatmap-opacity"],s=o["heatmap-shape"],u=o["heatmap-rotate"],l=o["heatmap-coverage"];return pE(pE({},N(e)),{},{type:EE.heatmap,id:e.id,source:t,shape:{values:s},color:R({value:i,property:"color",map:r}),style:{opacity:a,coverage:l,angle:u}})}function $(e,t,r){var n=e.paint,o=e.layout,i=n["heatmap-extrusion-color"]||"#EE4D5A",a=n["heatmap-extrusion-opacity"],s=n["heatmap-extrusion-height"],u=o["heatmap-extrusion-shape"],l=o["heatmap-extrusion-rotate"],c=o["heatmap-extrusion-coverage"];return pE(pE({},N(e)),{},{type:EE.heatmap,id:e.id,source:t,shape:{values:u},size:R({value:s,property:"size",map:r}),color:R({value:i,property:"color",map:r}),style:{opacity:a,coverage:c,angle:l}})}function ee(e,t){var o=e.paint,i=o["heatmap-extrusion-color"],a=o["heatmap-extrusion-opacity"],s=o["heatmap-extrusion-intensity"],u=o["heatmap-extrusion-radius"],l=o["heatmap-extrusion-weight"];return pE(pE({},N(e)),{},{type:EE.heatmap,id:e.id,source:t,size:{field:l,values:[0,1]},shape:{values:"heatmap3D"},style:{rampColors:function(e){var t=n.paint_heatmap["heatmap-color"],o=r.createPropertyExpression(e,t);return{positions:o.value._styleExpression.expression.labels,colors:o.value._styleExpression.expression.outputs.map(function(e){return e.value})}}(i),opacity:a,intensity:s,radius:u}})}function te(e,t,r,n){var o=e.paint,i=e.layout,a=i["text-field"].split("{")[1].split("}")[0],s={};return Object.keys(function(e,t){var r={};for(var n in e)t.includes(n)||(r[n]=e[n]);return e}(xE,["text-color","text-size","text-field"])).forEach(function(t){var r,n=(e[(r=t,PE.includes(r)?"layout":"paint")]||{})[t];void 0!==n&&(s[xE[t]]=n)}),pE(pE({},N(e)),{},{type:EE.point,id:e.id,source:t,color:R({value:o["text-color"],property:"color",map:n}),size:R({value:i["text-size"],property:"size",map:n}),shape:{field:a,values:"text"},style:s})}function re(e){return ne.apply(this,arguments)}function ne(){return(ne=dE(uE().m(function e(t){var r,n,o,i,a,s,u,l,c,f,p,h,y,d;return uE().w(function(e){for(;;)switch(e.p=e.n){case 0:r=t.layers,n=t.sources,o=t.map,i=t.options,a=[],s=cE(r),e.p=1,s.s();case 2:if((u=s.n()).done){e.n=7;break}return l=u.value,e.p=3,c=n[l.source],f=hE(hE(hE(hE(hE(hE(hE(hE(hE(hE({},CE.animatePoint,q),CE.radarPoint,V),CE.od,K),CE.column,Y),CE.line,J),CE.bar,W),CE.pie,X),CE.heatGrid,Z),CE.heat3DGrid,$),CE.heat3D,ee),e.n=4,B(c,l["source-layer"],i);case 4:p=e.v,h=G(l),a.push(f[h]&&f[h](l,p,o)||te(l,p,(l||{}).visible,o)),e.n=6;break;case 5:e.p=5,y=e.v,console.error(y),i.emitterEvent("layercreatefailed",{error:y,map:o,layer:l});case 6:e.n=2;break;case 7:e.n=9;break;case 8:e.p=8,d=e.v,s.e(d);case 9:return e.p=9,s.f(),e.f(9);case 10:return e.a(2,a)}},e,null,[[3,5],[1,8,9,10]])}))).apply(this,arguments)}function oe(e){return ie.apply(this,arguments)}function ie(){return(ie=dE(uE().m(function e(t){return uE().w(function(e){for(;;)switch(e.n){case 0:return e.a(2,new Promise(function(e){t.getL7Scene().then(function(t){e(t)})}))}},e)}))).apply(this,arguments)}function ae(e,t){if(t){var r=document.createElement("canvas");r.width=t.width,r.height=t.height;var n=r.getContext("2d");if(n)return n.drawImage(t,0,0),n.getImageData(e.x,e.y,e.width,e.height)}}function se(e){var t=gE(XC.getData(XC.toRGBA(e)),4);return{r:t[0],g:t[1],b:t[2],a:t[3]}}function ue(e,t){return le.apply(this,arguments)}function le(){return(le=dE(uE().m(function e(t,r){var n,o,i,a,s,u,l,c,f,p,h,y,d;return uE().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,ce(t);case 1:if(n=e.v,o=r.color,i=r.rotate,a=document.createElement("canvas"),s=a.getContext("2d"),a.width=n.width,a.height=n.height,s.translate(a.width/2,a.height/2),0!==i&&s.rotate(i*Math.PI/180),s.drawImage(n,-n.width/2,-n.height/2),o){for(u=s.getImageData(0,0,a.width,a.height),l=u.data,c=se(o),f=c.r,p=c.g,h=c.b,y=c.a,d=0;d1&&!e.includes("/sprite@2x")?function(e){var t=e.split("/"),r=t.slice(-1)[0];if(!r)return e;var n=r.replace("sprite","sprite@2x");return t.splice(t.length-1,1,n),t.join("/")}(e):e}(r)+".png";return n&&(o+="?token=".concat(n)),o}function de(e,t){return new Promise(function(r){var n=ye(e),o=new XMLHttpRequest,i=new Image;i.crossOrigin="",o.responseType="blob",o.open("get",n,!0),o.withCredentials=t.withCredentials,o.setRequestHeader("accept","image/webp,*/*"),o.onreadystatechange=function(){4===o.readyState&&200===o.status&&(i.src=URL.createObjectURL(o.response),i.onload=function(){r(i)},i.onerror=function(){r(null)})},o.send(null)})}function me(e,t,r){return ge.apply(this,arguments)}function ge(){return(ge=dE(uE().m(function e(t,r,n){var o;return uE().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,de(t,n);case 1:if(o=e.v){e.n=2;break}return e.a(2);case 2:return e.a(2,ae(r,o))}},e)}))).apply(this,arguments)}function ve(e){return be.apply(this,arguments)}function be(){return(be=dE(uE().m(function e(t){var r,n,o,i,a,s,u,l,c,f,p,h,y,d,m,g;return uE().w(function(e){for(;;)switch(e.n){case 0:r=t.layers,n=t.sprite,o=t.spriteJson,i=t.scene,a=t.options,s=+new Date,u=0;case 1:if(!(u2&&void 0!==arguments[2]&&arguments[2],n=[],o=t.properties,i=0;return r&&e.forEach(function(e){var t=o?o[e]:0;i+=t}),e.forEach(function(e){var t=o?o[e]:0,a={x:e,y:t};r&&(a.percent=t/i),n.push(a)}),n}function Ee(e,t,r,n){if(!JC){throw console.error("G2 is not define"),new Error("G2 is not define")}var o=new JC.Chart({container:e,width:t,height:r,autoFit:!0});return o.legend(!1),o.data(n),o}function _e(e,t){return new i.Marker({element:e}).setLnglat(t)}function Oe(e,t){var r=Ae.getMarkerLayer(e);r&&(t.removeMarkerLayer(r),Ae.removeMarkerLayer(e))}function Ie(e,t){var r=e.source,n=e.id,o=e.chartType,a=r.data;e.filter&&(a=function(e,t){var r=e.features,n=t.field,o=t.values;return{type:"FeatureCollection",features:r.filter(function(e){var t=n.map(function(t){return(e.properties||{})[t]});return o.apply(void 0,mE(t))})}}(r.data,e.filter)),Oe(n,t);var s=[];if(o===ME.bar){var u=e.fields,l=e.width,c=e.height,f=e.background,p=e.xAxis,h=e.yAxis,y={width:l.values,height:c.values,background:f.values,xAxis:p.values,yAxis:h.values};s=function(e,t,r){var n=t.width,o=t.height,i=t.background,a=t.xAxis,s=t.yAxis,u=r.features,l=Object.keys(e),c=Object.values(e),f=we(a),p=we(s),h=document.createElement("div");return h.style.backgroundColor=i,u.map(function(e){var t=h.cloneNode(),r=Se(e),i=Ce(l,e),a=Ee(t,n,o,i);return a.axis("x",f),a.axis("y",p),a.interval().position("x*y").color("x",c),a.render(),_e(t,r)})}(u.values,y,a)}if(o===ME.line){var d=e.color,m=e.fields,g=e.width,v=e.height,b=e.background,A=e.xAxis,w=e.yAxis,S={width:g.values,height:v.values,background:b.values,xAxis:A.values,yAxis:w.values,color:d.values};s=function(e,t,r){var n=t.color,o=t.width,i=t.height,a=t.background,s=t.xAxis,u=t.yAxis,l=r.features,c=we(s),f=we(u),p=document.createElement("div");return p.style.background=a,l.map(function(t){var r=p.cloneNode(),a=Se(t),s=Ce(e,t),u=Ee(r,o,i,s);return u.axis("x",c),u.axis("y",f),u.line().position("x*y").color(n),u.render(),_e(r,a)})}(m.values,S,a)}if(o===ME.pie){var C=e.fields,E=e.radius,_=e.innerRadius,O={radius:E.values,innerRadius:_.values};s=function(e,t,r){var n=r.features,o=Object.keys(e),i=Object.values(e),a=t.radius,s=t.innerRadius,u=document.createElement("div");return n.map(function(e){var t=u.cloneNode(),r=Se(e),n=Ce(o,e,!0),l=Ee(t,a,a,n);return l.coord("theta",{innerRadius:s}),l.interval().adjust("stack").position("percent").color("x",i).shape("sliceShape"),l.render(),_e(t,r)})}(C.values,O,a)}var I=function(e){var t=new i.MarkerLayer;return e.forEach(function(e){t.addMarker(e)}),t}(s);return t.addMarkerLayer(I),Ae.setMarkerLayer(n,I),I}function xe(e,t){var r=hE(hE(hE(hE({},EE.line,"LineLayer"),EE.point,"PointLayer"),EE.polygon,"PolygonLayer"),EE.heatmap,"HeatmapLayer"),n=e.source||{},i=t.promoteId;i||(i=t.tiles&&t.tiles[0].includes("/structureddata/")?"smpid":void 0);var a=new o({type:r[e.type],options:pE(pE({},e.options),{},{layerID:(e.options||{}).name,featureId:i})}),s=a.getL7Layer(),u={},l=e.shape||{};if(n.parser&&(u.parser=e.source.parser),n.transforms&&(u.transforms=e.source.transforms),s.source(n.data,u),l.field?s.shape(l.field,l.values):s.shape(l.values),e.texture&&s.texture(e.texture.values),e.size&&(e.size.field?s.size(e.size.field,e.size.values):s.size(e.size.values)),e.color&&(e.color.field?s.color(e.color.field,e.color.values):s.color(e.color.values)),e.style&&s.style(e.style),e.animate&&s.animate(e.animate),e.filter){var c=$C()(function(){a.reRender()},500);s.filter(e.filter.field,function(){var t,r=(t=e.filter).values.apply(t,arguments);return r&&c(),r})}return a}return{addL7Layers:function(e){return dE(uE().m(function t(){var r,n,o,i,a,s,u,l,c,f,p,h,y,d,m;return uE().w(function(t){for(;;)switch(t.p=t.n){case 0:return r=e.map,n=e.webMapInfo,o=e.l7Layers,i=e.spriteDatas,a=e.options,s=n.layers,u=n.sources,l=n.sprite,t.n=1,re({layers:o,sources:u,map:r,options:Object.assign({withoutFormatSuffix:!0},a)});case 1:return c=t.v,t.n=2,oe(r);case 2:if(f=t.v,!(Object.keys(i).length>0)){t.n=6;break}return t.p=3,t.n=4,ve({layers:c.filter(function(e){return!!e.texture}),spriteJson:i,sprite:l,scene:f,options:a});case 4:t.n=6;break;case 5:t.p=5,d=t.v,console.error(d),a.emitterEvent("layercreatefailed",{error:d,map:r});case 6:p=cE(c),t.p=7,y=uE().m(function e(){var t,n,o,i,a;return uE().w(function(e){for(;;)switch(e.n){case 0:t=h.value,n=s.findIndex(function(e){return e.id===t.id}),o=s.slice(n+1).find(function(e){return!NE(e)}),t.layerType===IE.MarkerLayer?(i=t,!1!==(t.options||{}).visible&&Ie(i,f),Ae.setSceneChartLayer(t.id,i)):(a=xe(t,u[s[n].source]),r.getLayer(a.id)||r.addLayer(a,o&&o.id));case 1:return e.a(2)}},e)}),p.s();case 8:if((h=p.n()).done){t.n=10;break}return t.d(sE(y()),9);case 9:t.n=8;break;case 10:t.n=12;break;case 11:t.p=11,m=t.v,p.e(m);case 12:return t.p=12,p.f(),t.f(12);case 13:return t.a(2)}},t,null,[[7,11,12,13],[3,5]])}))()},isL7Layer:NE,getL7MarkerLayers:function(){return Ae.markerLayers},removeL7MarkerLayer:Oe,getRestDataGeojsonByWebMap:v}}function DE(e){return function(e){if(Array.isArray(e))return t_(e)}(e)||FE(e)||e_(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function FE(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function QE(e,t){return UE(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||e_(e,t)||GE()}function GE(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function UE(e){if(Array.isArray(e))return e}function zE(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function e_(e,t){if(e){if("string"==typeof e)return t_(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t_(e,t):void 0}}function t_(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r`.",required:!0},import:{id:{type:"string",doc:"Unique import name.",required:!0},url:{type:"string",doc:"The URL of the style.",required:!0},config:{type:"config",doc:"Configuration values for the imported style's options."},data:{type:"$root",doc:"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{type:"colorTheme",optional:!0,doc:"If specified, it overrides the color-theme of the imported style."}},config:{"*":{type:"*",doc:"Value of the imported style's configuration option."}},schema:{"*":{type:"option",doc:"Specification of a configuration option."}},option:{default:{type:"*",doc:"Default configuration value for this option.","property-type":"data-constant",expression:{interpolated:!1},required:!0},type:{type:"enum",doc:"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.",values:{string:{doc:"The result will be coerced to a string."},number:{doc:"The result will be coerced to a number."},boolean:{doc:"The result will be coerced to a boolean."},color:{doc:"The result will be coerced to a color."}}},array:{type:"boolean",doc:"If true, this option is returned as an array"},minValue:{type:"number",doc:"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},maxValue:{type:"number",doc:"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},stepValue:{type:"number",doc:"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},values:{type:"array",value:"*",doc:"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."}},models:{"*":{type:"model",doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}},"light-3d":{id:{type:"string",doc:"Unique light name.",required:!0},properties:{type:"properties",doc:"Properties of the light."},type:{type:"enum",doc:"Type of the light to be added",values:{ambient:{doc:"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},directional:{doc:"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},flat:{doc:"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}}},properties:["properties_light_directional","properties_light_ambient","properties_light_flat"],properties_light_directional:{direction:{type:"array",default:[210,30],minimum:[0,0],maximum:[360,90],length:2,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},doc:"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).",example:[90,40],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"cast-shadows":{type:"boolean",default:!1,doc:"Enable/Disable shadow casting for this light",transition:!1,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-quality":{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,expression:{interpolated:!1,parameters:["zoom"]},transition:!1,doc:"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},experimental:!0},"shadow-intensity":{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},doc:"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.",transition:!0,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-draw-before-layer":{type:"string","property-type":"data-constant",doc:"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},experimental:!0}},properties_light_ambient:{color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}},properties_light_flat:{anchor:{type:"enum",default:"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}},iconsets:{"*":{type:"iconset",doc:"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}},iconset:["iconset_sprite","iconset_source"],iconset_sprite:{type:{required:!0,type:"enum",values:{sprite:{doc:"A sprite icon set."}},doc:"The type of the icon set."},url:{required:!0,type:"string",doc:"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",example:"mapbox://sprites/mapbox/bright"}},iconset_source:{type:{required:!0,type:"enum",values:{source:{doc:"A source icon set."}},doc:"The type of the icon set."},source:{required:!0,type:"string",doc:"Name of a source of `raster-array` type to be used for the icon set."}},sources:{"*":{type:"source",doc:"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}},source:["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"],source_vector:{type:{required:!0,type:"enum",values:{vector:{doc:"A vector tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},default:"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster:{type:{required:!0,type:"enum",values:{raster:{doc:"A raster tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},default:"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{doc:"A RGB-encoded raster DEM source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},encoding:{type:"enum",values:{terrarium:{doc:"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},mapbox:{doc:"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},default:"mapbox",doc:"The encoding used by this source. Mapbox Terrain RGB is used by default"},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster_array:{experimental:!0,type:{required:!0,type:"enum",values:{"raster-array":{doc:"A raster array source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},rasterLayers:{type:"*",doc:"Contains the description of the raster data layers and the bands contained within the tiles."},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{doc:"A GeoJSON data source."}},doc:"The data type of the GeoJSON source."},data:{type:"*",doc:"A URL to a GeoJSON file, or inline GeoJSON."},maxzoom:{type:"number",default:18,doc:"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},minzoom:{type:"number",default:0,doc:"Minimum zoom level at which to create vector tiles"},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},buffer:{type:"number",default:128,maximum:512,minimum:0,doc:"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},filter:{type:"*",doc:"An expression for filtering features prior to processing them for rendering."},tolerance:{type:"number",default:.375,doc:"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},cluster:{type:"boolean",default:!1,doc:"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n * `cluster` Is `true` if the point is a cluster \n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\n * `point_count` Number of original points grouped into this cluster\n * `point_count_abbreviated` An abbreviated point count"},clusterRadius:{type:"number",default:50,minimum:0,doc:"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},clusterMaxZoom:{type:"number",doc:"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},clusterMinPoints:{type:"number",doc:"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},clusterProperties:{type:"*",doc:'An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{"property_name": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `"+"` or `"max"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{"sum": ["+", ["get", "scalerank"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `["accumulated"]` value, e.g.:\n`{"sum": [["+", ["accumulated"], ["get", "sum"]], ["get", "scalerank"]]}`'},lineMetrics:{type:"boolean",default:!1,doc:"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},generateId:{type:"boolean",default:!1,doc:"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},dynamic:{type:"boolean",default:!1,doc:"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{js:"3.4.0"}}}},source_video:{type:{required:!0,type:"enum",values:{video:{doc:"A video data source."}},doc:"The data type of the video source."},urls:{required:!0,type:"array",value:"string",doc:"URLs to video content in order of preferred format."},coordinates:{required:!0,doc:"Corners of video specified in longitude, latitude pairs.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}},source_image:{type:{required:!0,type:"enum",values:{image:{doc:"An image data source."}},doc:"The data type of the image source."},url:{required:!1,type:"string",doc:"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},coordinates:{required:!0,doc:"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}},modelNodeOverride:{orientation:{type:"array",value:"number",length:3,default:[0,0,0],period:360,units:"degrees",doc:"Override the orientation of the model node in euler angles [x, y, z]."}},modelNodeOverrides:{"*":{type:"modelNodeOverride",doc:"An object defining model node properties to override. Object key is the node name as defined in the model."}},modelMaterialOverride:{"model-color":{type:"color",doc:"Override the tint color of the material."},"model-color-mix-intensity":{type:"number",doc:"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors."},"model-opacity":{type:"number",doc:"Override the opacity of the material."},"model-emissive-strength":{type:"number",units:"intensity",doc:"Override strength of the emission of material."}},modelMaterialOverrides:{"*":{type:"modelMaterialOverride",doc:"An object defining material properties to override. Object key is the material name as defined in the model."}},modelSourceModel:{uri:{type:"string",required:!0,doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},position:{type:"array",value:"number",length:2,required:!1,default:[0,0],minimum:[-180,-90],maximum:[180,90],doc:"Position of the model in longitude and latitude [lng, lat]."},orientation:{type:"array",value:"number",length:3,required:!1,default:[0,0,0],period:360,units:"degrees",doc:"Orientation of the model in euler angles [x, y, z]."},nodeOverrides:{type:"modelNodeOverrides",required:!1,doc:"A collection of node overrides."},materialOverrides:{type:"modelMaterialOverrides",required:!1,doc:"A collection of material overrides."},nodeOverrideNames:{type:"array",value:"string",doc:"An array of one or more model node names whose transform will be overridden from model layer paint properties.",required:!1},materialOverrideNames:{type:"array",value:"string",doc:"An array of one or more model material names whose properties will be overridden from model layer paint properties.",required:!1},featureProperties:{type:"*",doc:"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.",required:!1}},modelSourceModels:{"*":{type:"modelSourceModel",doc:"A 3D model and its properties."}},source_model:{type:{required:!0,type:"enum",values:{model:{doc:"A collection of 3D models"},"batched-model":{doc:"A collection of 3D models with anchor data"}},doc:"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},maxzoom:{type:"number",default:18,doc:"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which batched-model tiles are available"},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},models:{type:"modelSourceModels",doc:"Defines properties of 3D models in collection. Requires `model` source type."}},layer:{id:{type:"string",doc:"Unique layer name.",required:!0},type:{type:"enum",values:{fill:{doc:"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},line:{doc:"A stroked line.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},symbol:{doc:"An icon or a text label.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},circle:{doc:"A filled circle.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},heatmap:{doc:"A heatmap.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"fill-extrusion":{doc:"An extruded (3D) polygon.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},building:{doc:"A procedural 3D building.","sdk-support":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},private:!0},raster:{doc:"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},"raster-particle":{experimental:!0,doc:"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},hillshade:{doc:"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}}},model:{doc:"A 3D model","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},background:{doc:"The background color or pattern of the map.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},sky:{doc:"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},slot:{doc:"Marks the position of a slot.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},clip:{doc:"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}}}},doc:"Rendering type of this layer.",required:!0},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."},source:{type:"string",doc:"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{type:"string",doc:"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},slot:{type:"string",doc:"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},minzoom:{type:"number",minimum:0,maximum:24,doc:"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},maxzoom:{type:"number",minimum:0,maximum:24,doc:"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},filter:{type:"filter",doc:'An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `["feature-state", ...]` expression is not supported in filter expressions. The `["pitch"]` and `["distance-from-center"]` expressions are supported only for filter expressions on the symbol layer.'},layout:{type:"layout",doc:"Layout properties for the layer."},paint:{type:"paint",doc:"Default paint properties for this layer."},appearances:{type:"array",value:"appearance","supported-layer-types":["symbol"],experimental:!0,doc:"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with 'Works with appearances' are supported."}},appearance:{condition:{type:"boolean",doc:"A boolean expression that determines when this appearance should be applied.",expression:{interpolated:!0,parameters:["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},name:{type:"string",doc:"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},properties:{type:"*",doc:"Style properties to apply when the condition is met."}},layout:["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"],layout_background:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_sky:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_model:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"model-id":{type:"string",default:"",doc:"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!1,requires:[{source:["geojson","vector"]}]},"model-allow-density-reduction":{type:"boolean",default:!0,transition:!1,experimental:!0,doc:"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},"property-type":"data-constant"}},layout_clip:{"clip-layer-types":{type:"array",value:"enum",values:{model:{doc:"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},symbol:{doc:"If present the clip layer would remove all symbol layers below it."}},default:[],doc:"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"clip-layer-scope":{type:"array",value:"string",default:[],doc:"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{js:"3.6.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:!1},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},expression:{interpolated:!1},"property-type":"data-constant"}},layout_fill:{"fill-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"fill-elevation-reference":{type:"enum",doc:"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-base":{doc:"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as 'hatched areas' that should exist only on top of road polygons."}},default:"none",experimental:!0,private:!0,transition:!1,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{type:"boolean",doc:"Determines whether bridge guard rails are added for elevated roads.",default:"true",transition:!1,experimental:!0,private:!0,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"}},layout_circle:{"circle-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"},"data-driven styling":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{type:"enum",doc:"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},default:"none",experimental:!0,transition:!1,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!1},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"fill-extrusion-edge-radius":{type:"number",experimental:!0,default:0,minimum:0,maximum:1,doc:"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"source-max-zoom":{type:"number",minimum:0,maximum:24,private:!0,experimental:!0,doc:"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}},"property-type":"constant"}},layout_building:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1},"property-type":"constant"},"building-facade":{type:"boolean",default:!1,doc:"Whether to render facade details on the buildings.",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},"property-type":"data-driven"},"building-facade-floors":{type:"number",minimum:1,maximum:200,default:3,doc:"Number of floors created when building-facade is enabled.",private:!0,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},requires:["building-facade"]},"building-facade-unit-width":{type:"number",minimum:1,maximum:20,default:3.1,doc:"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).",private:!0,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},requires:["building-facade"]},"building-facade-window":{type:"array",length:2,value:"number",minimum:.1,maximum:1,default:[.9,.9],doc:"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.",private:!0,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},requires:["building-facade"]},"building-roof-shape":{type:"enum",values:{flat:{doc:"Use flat roof for the procedurally generated buildings."},hipped:{doc:"Use hipped roof for the procedurally generated buildings."},gabled:{doc:"Use gabled roof for the procedurally generated buildings."},parapet:{doc:"Use parapet roof for the procedurally generated buildings."},mansard:{doc:"Use mansard roof for the procedurally generated buildings."},skillion:{doc:"Use skillion roof for the procedurally generated buildings."},pyramidal:{doc:"Use pyramidal roof for the procedurally generated buildings."}},default:"flat",doc:"Roof type to use for the procedural buildings.",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},"property-type":"data-driven"},"building-height":{type:"number",default:0,minimum:0,units:"meters",doc:"The height of the procedural buildings.",transition:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1},"property-type":"data-driven"},"building-base":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.",transition:!0,requires:["building-height"],private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven",type:"number",private:!0,units:"meters",default:0,minimum:0,doc:"The extent of the flood light effect on the walls of the buildings in meters.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven",type:"number",private:!0,units:"meters",default:0,doc:"The extent of the flood light effect on the ground beneath the buildings in meters.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven",type:"boolean",private:!0,units:"meters",default:!1,doc:"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.",transition:!0,requires:["building-roof-shape"],expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}},layout_line:{"line-cap":{type:"enum",values:{butt:{doc:"A cap with a squared-off end which is drawn to the exact endpoint of the line."},round:{doc:"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},square:{doc:"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."}},default:"butt",doc:"The display of line endings.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-join":{type:"enum",values:{bevel:{doc:"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."},round:{doc:"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},miter:{doc:"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},none:{doc:"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can't be used with data-driven styling."}},default:"miter",doc:"The display of lines when joining.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"`none` value":{js:"3.4.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,doc:"Used to automatically convert miter joins to bevel joins for sharp angles.",requires:[{"line-join":"miter"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,doc:"Used to automatically convert round joins to miter joins for shallow angles.",requires:[{"line-join":"round"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{type:"number",doc:"Vertical offset from ground, in meters. Not supported for globe projection at the moment.",default:0,requires:["line-elevation-reference"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{type:"enum",doc:"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},sea:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},default:"none",transition:!1,"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"line-cross-slope":{type:"number",experimental:!0,doc:"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\n * Vertical lines don't support line caps \n * `line-join: round` is not supported with this property",requires:["line-z-offset"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1},"property-type":"constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"line-width-unit":{type:"enum",doc:"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.",values:{pixels:{doc:"Width is rendered in pixels."},meters:{doc:"Width is rendered in meters."}},default:"pixels",experimental:!0,private:!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{type:"number",default:0,minimum:0,maximum:1,doc:"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"},"data-driven styling":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:!0,parameters:["zoom","feature","line-progress"]},requires:["line-z-offset"],transition:!0,"property-type":"data-driven"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{doc:"The label is placed at the point where the geometry is located."},line:{doc:"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{doc:"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},default:"point",doc:"Label placement relative to its geometry.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`line-center` value":{js:"0.47.0",android:"6.4.0",ios:"4.3.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",doc:"Distance between two symbol anchors.",requires:[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,doc:"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"},"data-driven styling":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{doc:"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},source:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},default:"auto",doc:"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{js:"0.49.0",android:"6.6.0",ios:"4.5.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{type:"boolean",default:!1,doc:"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},requires:[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{type:"enum",doc:"Selects the base of symbol-elevation.",values:{sea:{doc:"Elevate symbols relative to the sea level."},ground:{doc:"Elevate symbols relative to the ground's height below them."},"hd-road-markup":{doc:"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},default:"ground",experimental:!0,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},requires:[{"symbol-z-elevate":!0}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,doc:"If true, the icon will be visible even if it collides with other previously drawn symbols.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,doc:"If true, other symbols can be visible even if they collide with the icon.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,doc:"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},viewport:{doc:"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},default:"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of icons.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",doc:"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.",appearance:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{type:"array",value:"number",length:2,default:[.8,2],doc:"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]",minimum:[.1,.1],maximum:[10,10],experimental:!0,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{type:"enum",values:{none:{doc:"The icon is displayed at its intrinsic aspect ratio."},width:{doc:"The icon is scaled in the x-dimension to fit the width of the text."},height:{doc:"The icon is scaled in the y-dimension to fit the height of the text."},both:{doc:"The icon is scaled in both x- and y-dimensions."}},default:"none",doc:"Scales the icon to fit around the associated text.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"stretchable icons":{js:"1.6.0",android:"9.2.0",ios:"5.8.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",doc:"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-image":{type:"resolvedImage",doc:"Name of image in sprite to use for drawing an image background.",tokens:!0,appearance:!0,"use-theme":!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",doc:"Rotates the icon clockwise.",appearance:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",doc:"Size of the additional area around the icon bounding box used for detecting symbol collisions.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,doc:"If true, the icon may be flipped to prevent it from being rendered upside-down.",requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],doc:"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.",appearance:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{doc:"The center of the icon is placed closest to the anchor."},left:{doc:"The left side of the icon is placed closest to the anchor."},right:{doc:"The right side of the icon is placed closest to the anchor."},top:{doc:"The top of the icon is placed closest to the anchor."},bottom:{doc:"The bottom of the icon is placed closest to the anchor."},"top-left":{doc:"The top left corner of the icon is placed closest to the anchor."},"top-right":{doc:"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the icon is placed closest to the anchor."}},default:"center",doc:"Part of the icon placed closest to the anchor.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{doc:"The icon is aligned to the plane of the map."},viewport:{doc:"The icon is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `icon-rotation-alignment`."}},default:"auto",doc:"Orientation of icon when map is pitched.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{doc:"The text is aligned to the plane of the map."},viewport:{doc:"The text is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `text-rotation-alignment`."}},default:"auto",doc:"Orientation of text when map is pitched.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},viewport:{doc:"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},default:"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,doc:"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],doc:"Font stack to use for displaying text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",doc:"Font size.",requires:["text-field"],appearance:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{type:"array",value:"number",length:2,default:[.8,2],doc:"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]",minimum:[.1,.1],maximum:[10,10],experimental:!0,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",doc:"The maximum line width for text wrapping.",requires:["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",doc:"Text leading value for multi-line text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0",android:"10.0.0",ios:"10.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{type:"number",default:0,units:"ems",doc:"Text tracking amount.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{doc:"The text is aligned towards the anchor position."},left:{doc:"The text is aligned to the left."},center:{doc:"The text is centered."},right:{doc:"The text is aligned to the right."}},default:"center",doc:"Text justification options.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"},auto:{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,doc:"Radial offset of text, in the direction of the symbol's anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"},"data-driven styling":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},requires:["text-field",{"symbol-placement":["point"]}],doc:"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},default:"center",doc:"Part of the text placed closest to the anchor.",requires:["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",doc:"Maximum angle change between adjacent characters.",requires:["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{doc:"If a text's language supports horizontal writing mode, symbols would be laid out horizontally."},vertical:{doc:"If a text's language supports vertical writing mode, symbols would be laid out vertically."}},doc:"The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either ['horizontal', 'vertical'] or ['vertical', 'horizontal'], the order doesn't affect the placement.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"1.3.0",android:"8.3.0",ios:"5.3.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",doc:"Rotates the text clockwise.",requires:["text-field"],appearance:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",doc:"Size of the additional area around the text bounding box used for detecting symbol collisions.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,doc:"If true, the text may be flipped vertically to prevent it from being rendered upside-down.",requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{doc:"The text is not altered."},uppercase:{doc:"Forces all letters to be displayed in uppercase."},lowercase:{doc:"Forces all letters to be displayed in lowercase."}},default:"none",doc:"Specifies how to capitalize text, similar to the CSS `text-transform` property.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",doc:"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],appearance:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,doc:"If true, the text will be visible even if it collides with other previously drawn symbols.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,doc:"If true, other symbols can be visible even if they collide with the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,doc:"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.",requires:["text-field","icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},"layout_raster-particle":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"expressions support":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},filter:{type:"array",value:"*",doc:"A filter selects specific features from a layer."},filter_symbol:{type:"boolean",doc:'Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature","pitch","distance-from-center"]}},filter_fill:{type:"boolean",doc:'Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_hillshade:{type:"boolean",doc:'Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_raster:{type:"boolean",doc:'Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},"filter_raster-particle":{type:"boolean",doc:'Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_clip:{type:"boolean",doc:'Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_model:{type:"boolean",doc:'Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_line:{type:"boolean",doc:'Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_circle:{type:"boolean",doc:'Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},"filter_fill-extrusion":{type:"boolean",doc:'Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_building:{type:"boolean",doc:'Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_heatmap:{type:"boolean",doc:'Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_operator:{type:"enum",values:{"==":{doc:'`["==", key, value]` equality: `feature[key] = value`'},"!=":{doc:'`["!=", key, value]` inequality: `feature[key] ≠ value`'},">":{doc:'`[">", key, value]` greater than: `feature[key] > value`'},">=":{doc:'`[">=", key, value]` greater than or equal: `feature[key] ≥ value`'},"<":{doc:'`["<", key, value]` less than: `feature[key] < value`'},"<=":{doc:'`["<=", key, value]` less than or equal: `feature[key] ≤ value`'},in:{doc:'`["in", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`'},"!in":{doc:'`["!in", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`'},all:{doc:'`["all", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`'},any:{doc:'`["any", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`'},none:{doc:'`["none", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`'},has:{doc:'`["has", key]` `feature[key]` exists'},"!has":{doc:'`["!has", key]` `feature[key]` does not exist'}},doc:"The filter operator."},geometry_type:{type:"enum",values:{Point:{doc:"Filter to point geometries."},LineString:{doc:"Filter to line geometries."},Polygon:{doc:"Filter to polygon geometries."}},doc:"The geometry type for the filter to select."},function:{expression:{type:"expression",doc:"An expression."},stops:{type:"array",doc:"An array of stops.",value:"function_stop"},base:{type:"number",default:1,minimum:0,doc:"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},property:{type:"string",doc:"The name of a feature property to use as the function input.",default:"$zoom"},type:{type:"enum",values:{identity:{doc:"Return the input value as the output value."},exponential:{doc:"Generate an output by interpolating between stops just less than and just greater than the function input."},interval:{doc:"Return the output value of the stop just less than the function input."},categorical:{doc:"Return the output value of the stop equal to the function input."}},doc:"The interpolation strategy to use in function evaluation.",default:"exponential"},colorSpace:{type:"enum",values:{rgb:{doc:"Use the RGB color space to interpolate color values"},lab:{doc:"Use the LAB color space to interpolate color values."},hcl:{doc:"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},doc:"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.",default:"rgb"},default:{type:"*",required:!1,doc:"A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n* In categorical functions, when the feature value does not match any of the stop domain values.\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\nIf no default is provided, the style property's default is used in these circumstances."}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2,doc:"Zoom level and value pair."},expression:{type:"array",value:"*",minimum:1,doc:"An expression defines a function that can be used for data-driven style properties or feature filters."},expression_name:{doc:"",type:"enum",values:{let:{doc:'Binds expressions to named variables, which can then be referenced in the result expression using ["var", "variable_name"].',group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},var:{doc:'References variable bound using "let".',group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},config:{doc:"Retrieves the configuration value for the given option. Returns null if the requested option is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},literal:{doc:"Provides a literal array or object value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},array:{doc:"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},at:{doc:"Retrieves an item from an array.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"at-interpolated":{doc:"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.11.0",android:"11.12.0",ios:"11.12.0"}}},in:{doc:"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).",group:"Lookup","sdk-support":{"basic functionality":{js:"1.6.0",android:"9.1.0",ios:"5.8.0"}}},"index-of":{doc:"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},slice:{doc:"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},split:{doc:"Returns an array of substrings from a string, split by a delimiter parameter.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.14.0",android:"11.14.0",ios:"11.14.0"}}},case:{doc:"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},match:{doc:'Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `["get", "building_type"]`). Each label must be unique, and must be either:\n - a single literal value; or\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `["c", "b"]`).\n\nThe input matches if any of the values in the array matches using strict equality, similar to the `"in"` operator.\nIf the input type does not match the type of the labels, the result will be the fallback value.',group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},coalesce:{doc:"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`'image'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},step:{doc:'Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},interpolate:{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\n\nInterpolation types:\n- `["linear"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\n- `["exponential", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n- `["cubic-bezier", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},"interpolate-hcl":{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},"interpolate-lab":{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},ln2:{doc:"Returns mathematical constant ln(2).",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pi:{doc:"Returns the mathematical constant pi.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},e:{doc:"Returns the mathematical constant e.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},typeof:{doc:"Returns a string describing the type of the given value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},string:{doc:"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},number:{doc:"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},boolean:{doc:"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},object:{doc:"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},collator:{doc:"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.",group:"Types","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},format:{doc:'Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\n- `"text-font"`: Overrides the font stack specified by the root layout property.\n- `"text-color"`: Overrides the color specified by the root paint property.\n- `"font-scale"`: Applies a scaling factor on `text-size` as specified by the root layout property.',group:"Types","sdk-support":{"basic functionality":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-font":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"font-scale":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-color":{js:"1.3.0",android:"7.3.0",ios:"4.10.0"},image:{js:"1.6.0",android:"8.6.0",ios:"5.7.0"}}},image:{doc:"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`'format'`](#types-format) expression.\n\nA [`'coalesce'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `'image'` argument.\n\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\n\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `'image'` expression.",group:"Types","sdk-support":{"basic functionality":{js:"1.4.0",android:"8.6.0",ios:"5.7.0"}}},"number-format":{doc:"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.",group:"Types","sdk-support":{"basic functionality":{js:"0.54.0",android:"8.4.0",ios:"5.4.0"}}},"to-string":{doc:'Converts the input value to a string. If the input is `null`, the result is `""`. If the input is a [`boolean`](#types-boolean), the result is `"true"` or `"false"`. If the input is a number, it is converted to a string as specified by the ["NumberToString" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `"rgba(r,g,b,a)"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`\'image\'`](#types-image) expression, `\'to-string\'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.',group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-number":{doc:'Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the ["ToNumber Applied to the String Type" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.',group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-boolean":{doc:"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-rgba":{doc:"Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-hsla":{doc:"Returns a four-element array containing the input color's Hue, Saturation, Luminance and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}}},"to-color":{doc:"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgb:{doc:"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgba:{doc:"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},hsl:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},hsla:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},get:{doc:"Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},has:{doc:"Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},length:{doc:"Returns the length of an array or string.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},properties:{doc:'Returns the feature properties object. Note that in some cases, it may be more efficient to use `["get", "property_name"]` directly.',group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"feature-state":{doc:"Retrieves a property value from the current feature's state. Returns `null` if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.46.0",android:"10.0.0",ios:"10.0.0"}}},"geometry-type":{doc:"Returns the feature's geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},worldview:{doc:"Returns the current worldview being used.",group:"Lookup",experimental:!0,"sdk-support":{"basic functionality":{js:"3.13.0",android:"11.13.0",ios:"11.13.0"}}},id:{doc:"Returns the feature's id, if it has one.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},zoom:{doc:'Returns the current zoom level. Note that in style layout and paint properties, ["zoom"] may only appear as the input to a top-level "step" or "interpolate" expression.',group:"Camera","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pitch:{doc:'Returns the current pitch in degrees. `["pitch"]` may only be used in the `filter` expression for a `symbol` layer.',group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"distance-from-center":{doc:'Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `["distance-from-center"]` may only be used in the `filter` expression for a `symbol` layer.',group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"measure-light":{doc:"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"heatmap-density":{doc:"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.",group:"Heatmap","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"line-progress":{doc:"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.6.0"}}},"sky-radial-progress":{doc:"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.",group:"sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},accumulated:{doc:"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.53.0",android:"8.4.0",ios:"5.5.0"}}},"+":{doc:"Returns the sum of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"*":{doc:"Returns the product of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"-":{doc:"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"/":{doc:"Returns the result of floating point division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"%":{doc:"Returns the remainder after integer division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"^":{doc:"Returns the result of raising the first input to the power specified by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sqrt:{doc:"Returns the square root of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},log10:{doc:"Returns the base-ten logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},ln:{doc:"Returns the natural logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},log2:{doc:"Returns the base-two logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sin:{doc:"Returns the sine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},cos:{doc:"Returns the cosine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},tan:{doc:"Returns the tangent of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},asin:{doc:"Returns the arcsine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},acos:{doc:"Returns the arccosine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},atan:{doc:"Returns the arctangent of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},min:{doc:"Returns the minimum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},max:{doc:"Returns the maximum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},round:{doc:'Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `["round", -1.5]` evaluates to -2.',group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},abs:{doc:"Returns the absolute value of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},ceil:{doc:"Returns the smallest integer that is greater than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},floor:{doc:"Returns the largest integer that is less than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},distance:{doc:"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"9.2.0",ios:"5.9.0"}}},"==":{doc:"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"!=":{doc:"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">":{doc:"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<":{doc:"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">=":{doc:"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<=":{doc:"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},all:{doc:"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},any:{doc:"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"!":{doc:"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},within:{doc:"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",group:"Decision","sdk-support":{"basic functionality":{js:"1.9.0",android:"9.1.0",ios:"5.8.0"}}},"is-supported-script":{doc:"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.6.0",ios:"4.1.0"}}},upcase:{doc:"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},downcase:{doc:"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},concat:{doc:"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"resolved-locale":{doc:"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"raster-value":{doc:"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.",group:"Raster Colorization","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-particle-speed":{doc:"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.",group:"Raster Particle Animation","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"is-active-floor":{doc:"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.",group:"Indoor",experimental:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},random:{doc:"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}},fog:{range:{type:"array",default:[.5,10],minimum:-20,maximum:20,length:2,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",example:[.5,10],"sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"high-color":{type:"color","property-type":"data-constant",default:"#245cdf",expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"space-color":{type:"color","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"horizon-blend":{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],4,.2,7,.1],minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"star-intensity":{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],5,.35,6,0],minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"vertical-range":{type:"array",default:[0,0],minimum:0,length:2,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}},snow:{density:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,.85],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Snow particles color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,.3],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant",default:"#ffffff",experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant",default:.4,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array",default:[0,50],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:!0,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"Main snow particles direction. Azimuth and polar angles",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"flake-size":{type:"number","property-type":"data-constant",default:.71,minimum:0,maximum:5,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}},rain:{density:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,.5],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant",default:["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",.3,"#a8adbc"],experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["measure-light","brightness"],0,.88,1,.7],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,1],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant",default:["interpolate",["linear"],["measure-light","brightness"],0,"#001736",.3,"#464646"],experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant",default:.57,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array",default:[0,80],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:!0,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"Main rain particles direction. Azimuth and polar angles.",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"droplet-size":{type:"array",default:[2.6,18.2],minimum:0,maximum:50,length:2,value:"number","property-type":"data-constant",transition:!0,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"Rain droplet size. x - normal to direction, y - along direction",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"distortion-strength":{type:"number","property-type":"data-constant",default:.7,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}},camera:{"camera-projection":{doc:"Camera projection describes how 3D world geometry get projected into 2D screen",type:"enum",values:{perspective:{doc:"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},orthographic:{doc:"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},default:"perspective","property-type":"data-constant"}},colorTheme:{data:{type:"string",doc:"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.",transition:!1,"property-type":"data-constant",expression:{interpolated:!1}}},indoor_source:{sourceId:{type:"string",doc:"Source ID of a source to be used to retrieve indoor data.",experimental:!0,private:!0,transition:!1,"property-type":"data-constant"},sourceLayers:{type:"array",value:"string",doc:"An array of source layers to be used to retrieve indoor data.",experimental:!0,private:!0,transition:!1,"property-type":"data-constant"}},indoor:{"*":{type:"indoor_source",private:!0,experimental:!0,doc:"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}},light:{anchor:{type:"enum",default:"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}}},projection:{name:{type:"enum",values:{albers:{doc:"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},equalEarth:{doc:"An Equal Earth projection."},equirectangular:{doc:"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},lambertConformalConic:{doc:"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},mercator:{doc:"The Mercator projection is the default projection."},naturalEarth:{doc:"A Natural Earth projection."},winkelTripel:{doc:"A Winkel Tripel projection."},globe:{doc:"A globe projection."}},default:"mercator",doc:"The name of the projection to be used for rendering the map.",required:!0,"sdk-support":{"basic functionality":{js:"2.6.0",ios:"10.5.0",android:"10.5.0"}}},center:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-180,-90],maximum:[180,90],transition:!1,doc:"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].",example:[-96,37.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}},parallels:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-90,-90],maximum:[90,90],transition:!1,doc:"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).",example:[29.5,45.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}}},terrain:{source:{type:"string",doc:"Name of a source of `raster_dem` type to be used for terrain elevation.",required:!0,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},exaggeration:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1e3,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.",requires:["source"],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,doc:"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",doc:"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":!0,transition:!0,requires:[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",doc:"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":!0,transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{doc:"The fill is translated relative to the map."},viewport:{doc:"The fill is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-translate`.",default:"map",requires:["fill-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{type:"number",doc:"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.",default:0,minimum:0,transition:!0,experimental:!0,"sdk-support":{"basic functionality":{js:"3.7.0"},"data-driven styling":{js:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{type:"color",default:"rgba(241, 236, 225, 255)",doc:"The color of bridge guard rail.",experimental:!0,private:!0,"use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{type:"color",default:"rgba(241, 236, 225, 255)",doc:"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":!0,transition:!0,experimental:!0,private:!0,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:!0,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",doc:"The base color of the extruded fill. The extrusion's surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":!0,transition:!0,requires:[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{doc:"The fill extrusion is translated relative to the map."},viewport:{doc:"The fill extrusion is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-extrusion-translate`.",default:"map",requires:["fill-extrusion-translate"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude this layer.",transition:!0,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.",transition:!0,requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{type:"enum",experimental:!0,values:{terrain:{doc:"The fill extrusion height follows terrain slope."},flat:{doc:"The fill extrusion height is flat over terrain."}},doc:"Controls the behavior of fill extrusion height over terrain",default:"flat",requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{type:"enum",experimental:!0,values:{terrain:{doc:"The fill extrusion base follows terrain slope."},flat:{doc:"The fill extrusion base is flat over terrain."}},doc:"Controls the behavior of fill extrusion base over terrain",default:"terrain",requires:["fill-extrusion-base"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,doc:"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.",transition:!1,"sdk-support":{"basic functionality":{js:"0.50.0",android:"7.0.0",ios:"4.7.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant",type:"number",default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.",requires:["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant",type:"number",experimental:!0,default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.",requires:["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number",experimental:!0,default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant",type:"color",experimental:!0,default:"#ffffff",doc:"The color of the flood light effect on the walls of the extruded buildings.",requires:["lights"],"use-theme":!0,transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant",type:"number",experimental:!0,default:0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven",type:"number",experimental:!0,units:"meters",default:0,minimum:0,doc:"The extent of the flood light effect on the walls of the extruded buildings in meters.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven",type:"number",experimental:!0,units:"meters",default:0,doc:"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant",type:"number",experimental:!0,default:1,minimum:0,doc:"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant",type:"boolean",default:!0,experimental:!0,doc:"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.",requires:["fill-extrusion-edge-radius"],transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.10.0",ios:"10.10.0"}},expression:{interpolated:!1,parameters:["zoom"]}},"fill-extrusion-cutoff-fade-range":{type:"number",default:0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:!1,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{type:"array",private:!0,experimental:!0,value:"number","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]},length:3,default:[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"fill-extrusion-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{type:"number",default:0,minimum:0,transition:!0,experimental:!0,units:"meters",doc:"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow casting for this layer",transition:!1,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"}},paint_building:{"building-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number",default:0,minimum:0,maximum:1,private:!0,expression:{interpolated:!1,parameters:[]},transition:!0,doc:"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant",type:"number",default:0,minimum:0,maximum:1,private:!0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number",private:!0,default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number",private:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant",type:"number",private:!0,default:1,minimum:0,doc:"A global multiplier that can be used to scale base and height of the procedural buildings.",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-cast-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow casting for this layer",transition:!1,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-color":{type:"color",default:"rgba(193, 154, 127, 1)",doc:"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).",private:!0,"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{type:"number",default:0,minimum:0,maximum:5,units:"intensity",doc:"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{type:"number",default:.35,minimum:0,maximum:1,doc:"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.",private:!0,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["measure-light","zoom"]}},"building-cutoff-fade-range":{type:"number",private:!0,default:0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:!1,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{type:"array",private:!0,experimental:!0,value:"number","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]},length:3,default:[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant",type:"color",private:!0,default:"#ffffff",doc:"The color of the flood light effect on the walls of the buildings.",requires:["lights"],"use-theme":!0,transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant",type:"number",private:!0,default:0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number",private:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}},paint_line:{"line-opacity":{type:"number",doc:"The opacity at which the line will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{type:"color",doc:"The color with which the line will be drawn.",default:"#000000","use-theme":!0,transition:!0,requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.23.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{doc:"The line is translated relative to the map."},viewport:{doc:"The line is translated relative to the viewport."}},doc:"Controls the frame of reference for `line-translate`.",default:"map",requires:["line-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",doc:"Stroke thickness.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,doc:"Draws a line casing outside of a line's actual path. Value indicates the width of the inner gap.",transition:!0,units:"pixels","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,doc:"The line's offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.",transition:!0,units:"pixels","sdk-support":{"basic functionality":{js:"0.12.1",android:"3.0.0",ios:"3.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",doc:"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won't render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.",minimum:0,transition:!1,units:"line widths",requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{type:"color",doc:'A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature\'s total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `"lineMetrics": true`.',example:["interpolate",["linear"],["line-progress"],0,"blue",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],"use-theme":!0,transition:!1,requires:[{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],"sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.4.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{type:"array",value:"number",doc:"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].",length:2,default:[0,0],minimum:[0,0],maximum:[1,1],transition:!1,requires:[{source:"geojson",has:{lineMetrics:!0}}],"sdk-support":{"basic functionality":{js:"2.9.0",android:"10.5.0",ios:"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{type:"array",value:"number",doc:"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.",experimental:!0,length:2,default:[0,0],minimum:[0,0],maximum:[1,1],transition:!1,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{type:"color",doc:"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.",experimental:!0,default:"transparent","use-theme":!0,transition:!0,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:!0}}],"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.17.0",android:"11.17.0",ios:"11.17.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{type:"number",private:!0,doc:"The width of the line border. A value of zero means no border.",default:0,minimum:0,transition:!0,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{type:"color",private:!0,doc:"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.",default:"rgba(0, 0, 0, 0)","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{type:"number",default:0,minimum:0,maximum:1,doc:"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!0,parameters:["zoom"]},transition:!0,"property-type":"data-constant"},"line-blend-mode":{type:"enum",values:{default:{doc:"Normal non-blended rendering mode."},multiply:{doc:"Line features are composited using multiply blending."},additive:{doc:"Line features are composited using additive density accumulation with tone mapping."}},doc:"Controls the blend mode used for rendering line features.",default:"default",experimental:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.21.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-blend-additive-clamp":{type:"number",default:0,minimum:0,doc:"Controls the brightness of lines in additive blend mode. When set to 0 (the default), brightness is adjusted automatically based on the density of lines visible on screen. Increase this value if the lines appear too bright, or decrease it if they appear too faint.",experimental:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.21.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",doc:"Circle radius.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",doc:"The fill color of the circle.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,doc:"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{type:"number",doc:"The opacity at which the circle will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{doc:"The circle is translated relative to the map."},viewport:{doc:"The circle is translated relative to the viewport."}},doc:"Controls the frame of reference for `circle-translate`.",default:"map",requires:["circle-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{doc:"Circles are scaled according to their apparent distance to the camera."},viewport:{doc:"Circles are not scaled."}},default:"map",doc:"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{doc:"The circle is aligned to the plane of the map."},viewport:{doc:"The circle is aligned to the plane of the viewport."}},default:"viewport",doc:"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"The width of the circle's stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",doc:"The stroke color of the circle.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",doc:"The opacity of the circle's stroke.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",doc:"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,doc:"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,doc:"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],doc:'Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `["heatmap-density"]` as input.',"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",doc:"The global opacity at which the heatmap layer will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{doc:"The opacity at which the icon will be drawn.",type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-occlusion-opacity":{doc:"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",type:"number",minimum:0,maximum:1,default:0,transition:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-emissive-strength":{type:"number",default:1,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature-state"]},appearance:!0,"property-type":"data-driven"},"text-emissive-strength":{type:"number",default:1,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature-state"]},appearance:!0,"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000","use-theme":!0,transition:!0,doc:"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)","use-theme":!0,transition:!0,doc:"The color of the icon's halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Distance of halo to the icon outline.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Fade out the halo towards the outside.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,appearance:!0,units:"pixels",doc:"Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{doc:"Icons are translated relative to the map."},viewport:{doc:"Icons are translated relative to the viewport."}},doc:"Controls the frame of reference for `icon-translate`.",default:"map",requires:["icon-image","icon-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},doc:"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{type:"number",doc:"The opacity at which the text will be drawn.",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-occlusion-opacity":{type:"number",doc:"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",minimum:0,maximum:1,default:0,transition:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-color":{type:"color",doc:"The color with which the text will be drawn.",default:"#000000","use-theme":!0,transition:!0,overridable:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)","use-theme":!0,transition:!0,doc:"The color of the text's halo, which helps it stand out from backgrounds.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"The halo's fadeout distance towards the outside.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,appearance:!0,units:"pixels",doc:"Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{doc:"The text is translated relative to the map."},viewport:{doc:"The text is translated relative to the viewport."}},doc:"Controls the frame of reference for `text-translate`.",default:"map",requires:["text-field","text-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!1,doc:"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"icon-color-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!1,doc:"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"icon-color-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the minimum brightness.",default:0,minimum:0,maximum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"icon-color-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the maximum brightness.",default:1,minimum:0,maximum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"symbol-z-offset":{type:"number",doc:"Specifies an uniform elevation from the ground, in meters.",default:0,minimum:0,transition:!0,experimental:!0,appearance:!0,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},requires:[{"symbol-z-elevate":!0}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"}},paint_raster:{"raster-opacity":{type:"number",doc:"The opacity at which the image will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-color":{type:"color",doc:'Defines a color map by which to colorize a raster layer, parameterized by the `["raster-value"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.',"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{type:"array",default:[.2126,.7152,.0722,0],length:4,value:"number","property-type":"data-constant",transition:!0,requires:["raster-color"],expression:{interpolated:!0,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.",example:[.2126,.7152,.0722,0],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-color-range":{type:"array",length:2,value:"number","property-type":"data-constant",transition:!0,requires:["raster-color"],expression:{interpolated:!0,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source's stated data range is used.",example:[.5,10],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",doc:"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the minimum brightness.",default:0,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the maximum brightness.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",doc:"Increase or reduce the saturation of the image.",default:0,minimum:-1,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",doc:"Increase or reduce the contrast of the image.",default:0,minimum:-1,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",doc:"The resampling/interpolation method to use for overscaling, also known as texture magnification filter",values:{linear:{doc:"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},nearest:{doc:"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},default:"linear","sdk-support":{"basic functionality":{js:"0.47.0",android:"6.3.0",ios:"4.2.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",doc:"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{type:"string",required:!1,experimental:!0,"property-type":"data-constant",transition:!1,requires:[{source:"raster-array"}],doc:"Displayed band of raster array source layer. Defaults to the first band if not set.",example:"band-name","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}}},"raster-elevation":{type:"number",doc:"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.",default:0,minimum:0,transition:!0,experimental:!0,"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.2.0",ios:"11.2.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{type:"enum",doc:"Selects the base of raster-elevation.",values:{sea:{doc:"Use this mode to elevate raster layers relative to the sea level."},ground:{doc:"Use this mode to elevate raster layers relative to the ground's height below them."}},default:"sea",transition:!1,experimental:!0,"sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:!1},"property-type":"data-constant"}},"paint_raster-particle":{"raster-particle-array-band":{type:"string",required:!1,"property-type":"data-constant",transition:!1,doc:"Displayed band of raster array source layer",example:'"1713348000"',"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"raster-particle-count":{type:"number",doc:"Defines the amount of particles per tile.",default:512,minimum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{type:"color",doc:'Defines a color map by which to colorize a raster particle layer, parameterized by the `["raster-particle-speed"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.',"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{type:"number",doc:"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.",default:1,minimum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{type:"number",doc:"Defines a coefficient for the speed of particles’ motion.",default:.2,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{type:"number",doc:"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.",default:.98,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{type:"number",doc:"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).",default:.8,minimum:0,maximum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{type:"number",doc:"Defines an uniform elevation from sea level, in meters.",default:0,minimum:0,transition:!0,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,doc:"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.",transition:!1,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{doc:"The hillshade illumination is relative to the north direction."},viewport:{doc:"The hillshade illumination is relative to the top of the viewport."}},default:"viewport",doc:"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",doc:"Intensity of the hillshade",default:.5,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",doc:"The shading color of areas that face away from the light source.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",doc:"The shading color of areas that faces towards the light source.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",doc:"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"}},paint_background:{"background-pitch-alignment":{type:"enum",values:{map:{doc:"The background is aligned to the plane of the map."},viewport:{doc:"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},default:"map",doc:"Orientation of background layer.","sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:!1,parameters:[]},experimental:!0,"property-type":"data-constant"},"background-color":{type:"color",default:"#000000",doc:"The color with which the background will be drawn.","use-theme":!0,transition:!0,requires:[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity at which the background will be drawn.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"}},paint_sky:{"sky-type":{type:"enum",values:{gradient:{doc:"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},atmosphere:{doc:"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},default:"atmosphere",doc:"The type of the sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{type:"array",value:"number",length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:!1,doc:"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},requires:[{"sky-type":"atmosphere"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{type:"number",requires:[{"sky-type":"atmosphere"}],default:10,minimum:0,maximum:100,transition:!1,doc:"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{type:"array",requires:[{"sky-type":"gradient"}],value:"number",default:[0,0],length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:!1,doc:"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{type:"number",requires:[{"sky-type":"gradient"}],default:90,minimum:0,maximum:180,transition:!1,doc:"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient":{type:"color",default:["interpolate",["linear"],["sky-radial-progress"],.8,"#87ceeb",1,"white"],doc:"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":!0,transition:!1,requires:[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{type:"color",default:"white",doc:"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":!0,transition:!1,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{type:"color",default:"white",doc:"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":!0,transition:!1,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire sky layer.",transition:!0,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_model:{"model-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.",transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},"property-type":"data-driven"},"model-rotation":{type:"array",value:"number",length:3,default:[0,0,0],period:360,units:"degrees","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0,doc:"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{type:"array",value:"number",length:3,default:[1,1,1],doc:"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-translation":{type:"array",value:"number",length:3,default:[0,0,0],"property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0,doc:"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{type:"color",default:"#ffffff",doc:"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"use-theme":!0,transition:!0},"model-color-mix-intensity":{type:"number","property-type":"data-driven",default:0,minimum:0,maximum:1,doc:"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-type":{type:"enum",values:{"common-3d":{doc:"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{doc:"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},default:"common-3d",doc:"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow casting for this layer",transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow receiving for this layer",transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{type:"number",default:1,minimum:0,maximum:1,doc:"Intensity of the ambient occlusion if present in the 3D model.",expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant",transition:!0},"model-emissive-strength":{type:"number","property-type":"data-driven",default:0,minimum:0,maximum:5,units:"intensity",doc:"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-roughness":{type:"number",default:1,minimum:0,maximum:1,doc:"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-height-based-emissive-strength-multiplier":{type:"array",default:[1,1,1,1,0],length:5,value:"number",doc:"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-cutoff-fade-range":{type:"number",default:0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:!1,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{type:"array",private:!0,value:"number","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]},length:3,default:[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.5.0"}}},"model-elevation-reference":{type:"enum",doc:"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.",values:{sea:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},default:"ground",transition:!1,expression:{interpolated:!1},"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.17.0",android:"11.10.0",ios:"11.10.0"}}},"model-ignore-line-cutout":{type:"boolean",doc:"When set to true, the layer is not going to be affected by the line cutout effect.",default:!1,transition:!1,expression:{interpolated:!1},"property-type":"data-constant",experimental:!0,private:!0,"sdk-support":{"basic functionality":{android:"11.21.0",ios:"11.21.0"}}}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds",doc:"Time allotted for transitions to complete."},delay:{type:"number",default:0,minimum:0,units:"milliseconds",doc:"Length of time before a transition begins."}},"property-type":{"data-driven":{type:"property-type",doc:"Property is interpolable and can be represented using a property expression."},"color-ramp":{type:"property-type",doc:"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{type:"property-type",doc:"Property is interpolable but cannot be represented using a property expression."},constant:{type:"property-type",doc:"Property is constant across all zoom levels and property values."}},promoteId:{"*":{type:"*",doc:"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}},$doc:{transition:{type:"transition",doc:"Controls how a property transitions to a new value. Overrides the style's root `transition` for this property."},"use-theme":{type:"enum",doc:'Controls whether the associated color property is affected by the global color theme. When set to "none", the color theme is ignored for this property. When set to "default", the color theme is applied.',values:{default:{doc:"The color theme is applied to this property (default behavior)."},none:{doc:"The color theme is ignored for this property."}},default:"default"}}};var o_=function(e){function t(e,r){var n;return VE(this,t),(n=KE(this,t,[r])).message=r,n.key=e,n}return YE(t,JE(Error)),HE(t)}(),i_=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];VE(this,e),this.parent=t,this.bindings={};var n,o=$E(r);try{for(o.s();!(n=o.n()).done;){var i=QE(n.value,2),a=i[0],s=i[1];this.bindings[a]=s}}catch(e){o.e(e)}finally{o.f()}}return HE(e,[{key:"concat",value:function(t){return new e(this,t)}},{key:"get",value:function(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw new Error("".concat(e," not found in scope."))}},{key:"has",value:function(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}])}(),a_={kind:"null"},s_={kind:"number"},u_={kind:"string"},l_={kind:"boolean"},c_={kind:"color"},f_={kind:"object"},p_={kind:"value"},h_={kind:"collator"},y_={kind:"formatted"},d_={kind:"resolvedImage"};function m_(e,t){return{kind:"array",itemType:e,N:t}}function g_(e){if("array"===e.kind){var t=g_(e.itemType);return"number"==typeof e.N?"array<".concat(t,", ").concat(e.N,">"):"value"===e.itemType.kind?"array":"array<".concat(t,">")}return e.kind}var v_=[a_,s_,u_,l_,c_,y_,f_,m_(p_),d_];function b_(e,t){if("error"===t.kind)return null;if("array"===e.kind){if("array"===t.kind&&(0===t.N&&"value"===t.itemType.kind||!b_(e.itemType,t.itemType))&&("number"!=typeof e.N||e.N===t.N))return null}else{if(e.kind===t.kind)return null;if("value"===e.kind)for(var r=0,n=v_;r255?255:e}function r(e){return e<0?0:e>1?1:e}function n(e){return"%"===e[e.length-1]?t(parseFloat(e)/100*255):t(parseInt(e))}function o(e){return"%"===e[e.length-1]?r(parseFloat(e)/100):r(parseFloat(e))}function i(e,t,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?e+(t-e)*r*6:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}try{E_.parseCSSColor=function(r){var a,s=r.replace(/ /g,"").toLowerCase();if(s in e)return e[s].slice();if("#"===s[0])return 4===s.length?(a=parseInt(s.substr(1),16))>=0&&a<=4095?[(3840&a)>>4|(3840&a)>>8,240&a|(240&a)>>4,15&a|(15&a)<<4,1]:null:7===s.length&&(a=parseInt(s.substr(1),16))>=0&&a<=16777215?[(16711680&a)>>16,(65280&a)>>8,255&a,1]:null;var u=s.indexOf("("),l=s.indexOf(")");if(-1!==u&&l+1===s.length){var c=s.substr(0,u),f=s.substr(u+1,l-(u+1)).split(","),p=1;switch(c){case"rgba":if(4!==f.length)return null;p=o(f.pop());case"rgb":return 3!==f.length?null:[n(f[0]),n(f[1]),n(f[2]),p];case"hsla":if(4!==f.length)return null;p=o(f.pop());case"hsl":if(3!==f.length)return null;var h=(parseFloat(f[0])%360+360)%360/360,y=o(f[1]),d=o(f[2]),m=d<=.5?d*(y+1):d+y-d*y,g=2*d-m;return[t(255*i(g,m,h+1/3)),t(255*i(g,m,h)),t(255*i(g,m,h-1/3)),p];default:return null}}return null}}catch(e){}return E_}();function O_(e,t,r){return e*(1-r)+t*r}var I_=function(){function e(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;VE(this,e),this.r=t,this.g=r,this.b=n,this.a=o}return HE(e,[{key:"toString",value:function(){var e=this.r,t=this.g,r=this.b,n=this.a;return"rgba(".concat(Math.round(255*e),",").concat(Math.round(255*t),",").concat(Math.round(255*r),",").concat(n,")")}},{key:"toNonPremultipliedRenderColor",value:function(e){var t=this.r,r=this.g,n=this.b,o=this.a;return new P_(e,t,r,n,o)}},{key:"toPremultipliedRenderColor",value:function(e){var t=this.r,r=this.g,n=this.b,o=this.a;return new k_(e,t*o,r*o,n*o,o)}},{key:"clone",value:function(){return new e(this.r,this.g,this.b,this.a)}}],[{key:"parse",value:function(t){if(t){if(t instanceof e)return t;if("string"==typeof t){var r=__.parseCSSColor(t);if(r)return new e(r[0]/255,r[1]/255,r[2]/255,r[3])}}}}])}(),x_=function(){return HE(function e(t,r,n,o,i){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(VE(this,e),this.premultiplied=!1,this.premultiplied=a,t){var s=t.image.height,u=s*s;this.premultiplied?(r=0===i?0:r/i*(s-1),n=0===i?0:n/i*(s-1),o=0===i?0:o/i*(s-1)):(r*=s-1,n*=s-1,o*=s-1),r=Math.max(0,Math.min(s-1,r)),n=Math.max(0,Math.min(s-1,n)),o=Math.max(0,Math.min(s-1,o));var l=Math.floor(r),c=Math.floor(n),f=Math.floor(o),p=Math.ceil(r),h=Math.ceil(n),y=Math.ceil(o),d=r-l,m=n-c,g=o-f,v=t.image.data,b=4*(l+c*u+f*s),A=4*(l+c*u+y*s),w=4*(l+h*u+f*s),S=4*(l+h*u+y*s),C=4*(p+c*u+f*s),E=4*(p+c*u+y*s),_=4*(p+h*u+f*s),O=4*(p+h*u+y*s);this.r=O_(O_(O_(v[b],v[A],g),O_(v[w],v[S],g),m),O_(O_(v[C],v[E],g),O_(v[_],v[O],g),m),d)/255*(this.premultiplied?i:1),this.g=O_(O_(O_(v[b+1],v[A+1],g),O_(v[w+1],v[S+1],g),m),O_(O_(v[C+1],v[E+1],g),O_(v[_+1],v[O+1],g),m),d)/255*(this.premultiplied?i:1),this.b=O_(O_(O_(v[b+2],v[A+2],g),O_(v[w+2],v[S+2],g),m),O_(O_(v[C+2],v[E+2],g),O_(v[_+2],v[O+2],g),m),d)/255*(this.premultiplied?i:1),this.a=i}else this.r=r,this.g=n,this.b=o,this.a=i},[{key:"toArray",value:function(){return[255*this.r,255*this.g,255*this.b,this.a]}},{key:"toHslaArray",value:function(){var e=this.r,t=this.g,r=this.b,n=this.a;if(this.premultiplied){if(0===n)return[0,0,0,0];var o=1/n;e*=o,t*=o,r*=o}var i=Math.min(Math.max(e,0),1),a=Math.min(Math.max(t,0),1),s=Math.min(Math.max(r,0),1),u=Math.min(i,a,s),l=Math.max(i,a,s),c=l-u,f=.5*(u+l);if(0===c)return[0,0,100*f,n];var p,h=f>.5?c/(2-l-u):c/(l+u);switch(l){case i:p=60*((a-s)/c+(a1&&void 0!==arguments[1]?arguments[1]:{};VE(this,e),this.id=B_.from(t),this.params=r.params,this.sx=r.sx||1,this.sy=r.sy||1}return HE(e,[{key:"toString",value:function(){return JSON.stringify(this)}},{key:"scaleSelf",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return this.sx*=e,this.sy*=t,this}}],[{key:"parse",value:function(t){var r,n,o,i;try{var a=JSON.parse(t)||{};r=a.id,n=a.params,o=a.sx,i=a.sy}catch(e){return null}return r?new e(r,{params:n,sx:o,sy:i}):null}}])}(),R_=function(){function e(t,r,n,o){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];VE(this,e),this.primaryId=B_.from(t),this.primaryOptions=r,n&&(this.secondaryId=B_.from(n)),this.secondaryOptions=o,this.available=i}return HE(e,[{key:"toString",value:function(){if(this.primaryId&&this.secondaryId){var e=this.primaryId.name,t=this.secondaryId.name;return"[".concat(e,",").concat(t,"]")}return this.primaryId.name}},{key:"hasPrimary",value:function(){return!!this.primaryId}},{key:"getPrimary",value:function(){return new N_(this.primaryId,this.primaryOptions)}},{key:"hasSecondary",value:function(){return!!this.secondaryId}},{key:"getSecondary",value:function(){return this.secondaryId?new N_(this.secondaryId,this.secondaryOptions):null}}],[{key:"from",value:function(t){return"string"==typeof t?e.build({name:t}):t}},{key:"build",value:function(t,r,n,o){return t&&("object"!==r_(t)||"name"in t)?new e(t,n,r,o):null}}])}();function L_(e,t,r,n){return"number"==typeof e&&e>=0&&e<=255&&"number"==typeof t&&t>=0&&t<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value [".concat([e,t,r,n].join(", "),"]: 'a' must be between 0 and 1."):"Invalid rgba value [".concat(("number"==typeof n?[e,t,r,n]:[e,t,r]).join(", "),"]: 'r', 'g', and 'b' must be between 0 and 255.")}function D_(e){if(null===e)return!0;if("string"==typeof e)return!0;if("boolean"==typeof e)return!0;if("number"==typeof e)return!0;if(e instanceof I_)return!0;if(e instanceof T_)return!0;if(e instanceof M_)return!0;if(e instanceof R_)return!0;if(Array.isArray(e)){var t,r=$E(e);try{for(r.s();!(t=r.n()).done;){if(!D_(t.value))return!1}}catch(e){r.e(e)}finally{r.f()}return!0}if("object"===r_(e)){for(var n in e)if(!D_(e[n]))return!1;return!0}return!1}function F_(e){if(null===e)return a_;if("string"==typeof e)return u_;if("boolean"==typeof e)return l_;if("number"==typeof e)return s_;if(e instanceof I_)return c_;if(e instanceof T_)return h_;if(e instanceof M_)return y_;if(e instanceof R_)return d_;if(Array.isArray(e)){var t,r,n=e.length,o=$E(e);try{for(o.s();!(r=o.n()).done;){var i=F_(r.value);if(t){if(t===i)continue;t=p_;break}t=i}}catch(e){o.e(e)}finally{o.f()}return m_(t||p_,n)}return f_}function Q_(e){var t=r_(e);return null===e?"":"string"===t||"number"===t||"boolean"===t?String(e):e instanceof M_||e instanceof R_||e instanceof I_?e.toString():JSON.stringify(e)}var G_=function(){function e(t,r){VE(this,e),this.type=t,this.value=r}return HE(e,[{key:"evaluate",value:function(){return this.value}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof I_?["rgba"].concat(this.value.toNonPremultipliedRenderColor(null).toArray()):this.value instanceof M_?this.value.serialize():this.value}}],[{key:"parse",value:function(t,r){if(2!==t.length)return r.error("'literal' expression requires exactly one argument, but found ".concat(t.length-1," instead."));if(!D_(t[1]))return r.error("invalid value");var n=t[1],o=F_(n),i=r.expectedType;return"array"!==o.kind||0!==o.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(o=i),new e(o,n)}}])}(),U_=function(){return HE(function e(t){VE(this,e),this.name="ExpressionEvaluationError",this.message=t},[{key:"toJSON",value:function(){return this.message}}])}(),z_={string:u_,number:s_,boolean:l_,object:f_},H_=function(){function e(t,r){VE(this,e),this.type=t,this.args=r}return HE(e,[{key:"evaluate",value:function(e){for(var t=0;t1)&&t.push(n)}}return t.concat(this.args.map(function(e){return e.serialize()}))}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expected at least one argument.");var n,o=1,i=t[0];if("array"===i){var a,s;if(t.length>2){var u=t[1];if("string"!=typeof u||!(u in z_)||"object"===u)return r.error('The item type argument of "array" must be one of string, number, boolean',1);a=z_[u],o++}else a=p_;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return r.error('The length argument to "array" must be a positive integer literal',2);s=t[2],o++}n=m_(a,s)}else n=z_[i];for(var l=[];o0?r:void 0}},{key:"serialize",value:function(){var e=["image",this.namePrimary.serialize()];if(this.paramsPrimary||this.iconsetIdPrimary){var t=this.serializeOptions(this.paramsPrimary,this.iconsetIdPrimary);t&&e.push(t)}if(this.nameSecondary&&(e.push(this.nameSecondary.serialize()),this.paramsSecondary||this.iconsetIdSecondary)){var r=this.serializeOptions(this.paramsSecondary,this.iconsetIdSecondary);r&&e.push(r)}return e}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expected two or more arguments.");var n=1,o=[];function i(){if(n4?"Invalid rbga value ".concat(JSON.stringify(t),": expected an array containing either three or four numeric values."):L_(t[0],t[1],t[2],t[3])))return new I_(t[0]/255,t[1]/255,t[2]/255,t[3])}}catch(e){o.e(e)}finally{o.f()}throw new U_(r||"Could not parse color from value '".concat("string"==typeof t?t:String(JSON.stringify(t)),"'"))}if("number"===this.type.kind){var a,s=null,u=$E(this.args);try{for(u.s();!(a=u.n()).done;){if(null===(s=a.value.evaluate(e)))return 0;var l=Number(s);if(!isNaN(l))return l}}catch(e){u.e(e)}finally{u.f()}throw new U_("Could not convert ".concat(JSON.stringify(s)," to number."))}return"formatted"===this.type.kind?M_.fromString(Q_(this.args[0].evaluate(e))):"resolvedImage"===this.type.kind?R_.build(Q_(this.args[0].evaluate(e))):"array"===this.type.kind?this.args.map(function(t){return t.evaluate(e)}):Q_(this.args[0].evaluate(e))}},{key:"eachChild",value:function(e){this.args.forEach(e)}},{key:"outputDefined",value:function(){return this.args.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){if("formatted"===this.type.kind)return new q_([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new V_(this.args[0]).serialize();var e="array"===this.type.kind?[]:["to-".concat(this.type.kind)];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expected at least one argument.");var n=t[0],o=[],i=a_;if("to-array"===n){if(!Array.isArray(t[1]))return null;var a=t[1].length;if(r.expectedType){if("array"!==r.expectedType.kind)return r.error("Expected ".concat(r.expectedType.kind," but found array."));i=m_(r.expectedType.itemType,a)}else{if(!(a>0&&D_(t[1][0])))return null;i=m_(F_(t[1][0]),a)}for(var s=0;s=t[2])&&(!(e[1]<=t[1])&&!(e[3]>=t[3])))}function lO(e,t,r){return t[1]>e[1]!=r[1]>e[1]&&e[0]<(r[0]-t[0])*(e[1]-t[1])/(r[1]-t[1])+t[0]}function cO(e,t){for(var r,n,o,i,a,s,u,l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],c=!1,f=0,p=t.length;f0&&f<0||c<0&&f>0}function pO(e,t,r,n){var o,i,a=[t[0]-e[0],t[1]-e[1]],s=[n[0]-r[0],n[1]-r[1]];return 0!=(o=s)[0]*(i=a)[1]-o[1]*i[0]&&!(!fO(e,t,r,n)||!fO(r,n,e,t))}iO.prototype={clone:function(){return new iO(this.x,this.y)},add:function(e){return this.clone()._add(e)},sub:function(e){return this.clone()._sub(e)},multByPoint:function(e){return this.clone()._multByPoint(e)},divByPoint:function(e){return this.clone()._divByPoint(e)},mult:function(e){return this.clone()._mult(e)},div:function(e){return this.clone()._div(e)},rotate:function(e){return this.clone()._rotate(e)},rotateAround:function(e,t){return this.clone()._rotateAround(e,t)},matMult:function(e){return this.clone()._matMult(e)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(e){return this.x===e.x&&this.y===e.y},dist:function(e){return Math.sqrt(this.distSqr(e))},distSqr:function(e){var t=e.x-this.x,r=e.y-this.y;return t*t+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith:function(e){return this.angleWithSep(e.x,e.y)},angleWithSep:function(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult:function(e){var t=e[0]*this.x+e[1]*this.y,r=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=r,this},_add:function(e){return this.x+=e.x,this.y+=e.y,this},_sub:function(e){return this.x-=e.x,this.y-=e.y,this},_mult:function(e){return this.x*=e,this.y*=e,this},_div:function(e){return this.x/=e,this.y/=e,this},_multByPoint:function(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint:function(e){return this.x/=e.x,this.y/=e.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var e=this.y;return this.y=this.x,this.x=-e,this},_rotate:function(e){var t=Math.cos(e),r=Math.sin(e),n=t*this.x-r*this.y,o=r*this.x+t*this.y;return this.x=n,this.y=o,this},_rotateAround:function(e,t){var r=Math.cos(e),n=Math.sin(e),o=t.x+r*(this.x-t.x)-n*(this.y-t.y),i=t.y+n*(this.x-t.x)+r*(this.y-t.y);return this.x=o,this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:iO},iO.convert=function(e){if(e instanceof iO)return e;if(Array.isArray(e))return new iO(+e[0],+e[1]);if(void 0!==e.x&&void 0!==e.y)return new iO(+e.x,+e.y);throw new Error("Expected [x, y] or {x, y} point format")};var hO=8192;function yO(e,t){var r,n=(180+e[0])/360,o=(r=e[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360),i=Math.pow(2,t.z);return[Math.round(n*i*hO),Math.round(o*i*hO)]}function dO(e,t){for(var r=0;rr[2]){var o=.5*n,i=e[0]-r[0]>o?-n:r[0]-e[0]>o?n:0;0===i&&(i=e[0]-r[2]>o?-n:r[2]-e[0]>o?n:0),e[0]+=i}sO(t,e)}function SO(e,t,r,n){var o=Math.pow(2,n.z)*hO,i=[n.x*hO,n.y*hO],a=[];if(!e)return a;var s,u=$E(e);try{for(u.s();!(s=u.n()).done;){var l,c=$E(s.value);try{for(c.s();!(l=c.n()).done;){var f=l.value,p=[f.x+i[0],f.y+i[1]];wO(p,t,r,o),a.push(p)}}catch(e){c.e(e)}finally{c.f()}}}catch(e){u.e(e)}finally{u.f()}return a}function CO(e,t,r,n){var o=Math.pow(2,n.z)*hO,i=[n.x*hO,n.y*hO],a=[];if(!e)return a;var s,u,l=$E(e);try{for(l.s();!(s=l.n()).done;){var c,f=[],p=$E(s.value);try{for(p.s();!(c=p.n()).done;){var h=c.value,y=[h.x+i[0],h.y+i[1]];sO(t,y),f.push(y)}}catch(e){p.e(e)}finally{p.f()}a.push(f)}}catch(e){l.e(e)}finally{l.f()}if(t[2]-t[0]<=o/2){(u=t)[0]=u[1]=1/0,u[2]=u[3]=-1/0;var d,m=$E(a);try{for(m.s();!(d=m.n()).done;){var g,v=$E(d.value);try{for(v.s();!(g=v.n()).done;){wO(g.value,t,r,o)}}catch(e){v.e(e)}finally{v.f()}}}catch(e){m.e(e)}finally{m.f()}}return a}var EO=function(){function e(t,r){VE(this,e),this.type=l_,this.geojson=t,this.geometries=r}return HE(e,[{key:"evaluate",value:function(e){if(null!=e.geometry()&&null!=e.canonicalID()){if("Point"===e.geometryType())return function(e,t){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],o=e.canonicalID();if(!o)return!1;if("Polygon"===t.type){var i=bO(t.coordinates,n,o),a=SO(e.geometry(),r,n,o);if(!uO(r,n))return!1;var s,u=$E(a);try{for(u.s();!(s=u.n()).done;)if(!cO(s.value,i))return!1}catch(e){u.e(e)}finally{u.f()}}if("MultiPolygon"===t.type){var l=AO(t.coordinates,n,o),c=SO(e.geometry(),r,n,o);if(!uO(r,n))return!1;var f,p=$E(c);try{for(p.s();!(f=p.n()).done;)if(!dO(f.value,l))return!1}catch(e){p.e(e)}finally{p.f()}}return!0}(e,this.geometries);if("LineString"===e.geometryType())return function(e,t){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],o=e.canonicalID();if(!o)return!1;if("Polygon"===t.type){var i=bO(t.coordinates,n,o),a=CO(e.geometry(),r,n,o);if(!uO(r,n))return!1;var s,u=$E(a);try{for(u.s();!(s=u.n()).done;)if(!gO(s.value,i))return!1}catch(e){u.e(e)}finally{u.f()}}if("MultiPolygon"===t.type){var l=AO(t.coordinates,n,o),c=CO(e.geometry(),r,n,o);if(!uO(r,n))return!1;var f,p=$E(c);try{for(p.s();!(f=p.n()).done;)if(!vO(f.value,l))return!1}catch(e){p.e(e)}finally{p.f()}}return!0}(e,this.geometries)}return!1}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){return["within",this.geojson]}}],[{key:"parse",value:function(t,r){if(2!==t.length)return r.error("'within' expression requires exactly one argument, but found ".concat(t.length-1," instead."));if(D_(t[1])){var n=t[1];if("FeatureCollection"===n.type)for(var o=0;ot)return jO(o,i,(t-(r-a))/a)}return e[e.length-1]}},{key:"pointToSegmentDistance",value:function(e,t,r){var n=QE(t,2),o=n[0],i=n[1],a=MO(r[0]-o)*this.kx,s=(r[1]-i)*this.ky;if(0!==a||0!==s){var u=(MO(e[0]-o)*this.kx*a+(e[1]-i)*this.ky*s)/(a*a+s*s);u>1?(o=r[0],i=r[1]):u>0&&(o+=a/this.kx*u,i+=s/this.ky*u)}return a=MO(e[0]-o)*this.kx,s=(e[1]-i)*this.ky,Math.sqrt(a*a+s*s)}},{key:"pointOnLine",value:function(e,t){for(var r=1/0,n=e[0][0],o=e[0][1],i=0,a=0,s=0;s1?(u=e[s+1][0],l=e[s+1][1]):p>0&&(u+=c/this.kx*p,l+=f/this.ky*p));var h=(c=MO(t[0]-u)*this.kx)*c+(f=(t[1]-l)*this.ky)*f;ho.index||n.index===o.index&&n.t>o.t){var i=n;n=o,o=i}var a=[n.point],s=n.index+1,u=o.index;!TO(r[s],a[0])&&s<=u&&a.push(r[s]);for(var l=s+1;l<=u;l++)a.push(r[l]);return TO(r[u],o.point)||a.push(o.point),a}},{key:"lineSliceAlong",value:function(e,t,r){for(var n=0,o=[],i=0;ie&&0===o.length&&o.push(jO(a,s,(e-(n-u))/u)),n>=t)return o.push(jO(a,s,(t-(n-u))/u)),o;n>e&&o.push(s)}return o}},{key:"bufferPoint",value:function(e,t){var r=t/this.ky,n=t/this.kx;return[e[0]-n,e[1]-r,e[0]+n,e[1]+r]}},{key:"bufferBBox",value:function(e,t){var r=t/this.ky,n=t/this.kx;return[e[0]-n,e[1]-r,e[2]+n,e[3]+r]}},{key:"insideBBox",value:function(e,t){return MO(e[0]-t[0])>=0&&MO(e[0]-t[2])<=0&&e[1]>=t[1]&&e[1]<=t[3]}}],[{key:"fromTile",value:function(t,r,n){var o=Math.PI*(1-2*(t+.5)/Math.pow(2,r));return new e(Math.atan(.5*(Math.exp(o)-Math.exp(-o)))/PO,n)}},{key:"units",get:function(){return _O}}])}();function TO(e,t){return e[0]===t[0]&&e[1]===t[1]}function jO(e,t,r){var n=MO(t[0]-e[0]),o=t[1]-e[1];return[e[0]+n*r,e[1]+o*r]}function MO(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}var BO=function(){return HE(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,t){return et?1:0};if(VE(this,e),this.data=t,this.length=this.data.length,this.compare=r,this.length>0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)},[{key:"push",value:function(e){this.data.push(e),this._up(this.length++)}},{key:"pop",value:function(){if(0!==this.length){var e=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),e}}},{key:"peek",value:function(){return this.data[0]}},{key:"_up",value:function(e){for(var t=this.data,r=this.compare,n=t[e];e>0;){var o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}},{key:"_down",value:function(e){for(var t=this.data,r=this.compare,n=this.length>>1,o=t[e];e=0)break;t[e]=t[i],e=i}t[e]=o}}])}(),NO=8192;function RO(e,t){return t.dist-e.dist}var LO=100,DO=50;function FO(e){var t=[1/0,1/0,-1/0,-1/0];if(t.length!==e.length)return!1;for(var r=0;r=e[0]&&e[1]e[1])return[null,null];var r=QO(e);if(t){if(2===r)return[e,null];var n=Math.floor(r/2);return[[e[0],e[0]+n],[e[0]+n,e[1]]]}if(1===r)return[e,null];var o=Math.floor(r/2)-1;return[[e[0],e[0]+o],[e[0]+o+1,e[1]]]}function zO(e,t){var r=[1/0,1/0,-1/0,-1/0];if(!GO(t,e.length))return r;for(var n=t[0];n<=t[1];++n)sO(r,e[n]);return r}function HO(e){for(var t=[1/0,1/0,-1/0,-1/0],r=0;rt[2]&&(n=e[0]-t[2]),e[1]>t[3]&&(o=e[1]-t[3]),e[3]2&&void 0!==arguments[2]?arguments[2]:NO,n=Math.pow(2,t.z),o=(e.x/r+t.x)/n,i=(e.y/r+t.y)/n;return[function(e){return 360*e-180}(o),function(e){var t=180-360*e;return 360/Math.PI*Math.atan(Math.exp(t*Math.PI/180))-90}(i)]}function KO(e,t){for(var r=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:1/0,o=HO(e),i=HO(t);if(n!==1/0&&qO(o,i,r)>=n)return n;if(uO(o,i)){if(tI(e,t))return 0}else if(tI(t,e))return 0;var a,s=n,u=$E(e);try{for(u.s();!(a=u.n()).done;)for(var l=a.value,c=0,f=l.length,p=f-1;c4&&void 0!==arguments[4]?arguments[4]:1/0,i=Math.min(n.distance(e[0],r[0][0]),o);if(0===i)return i;for(var a={dist:0,range1:[0,e.length-1],range2:[0,0]},s=new BO([a],RO),u=t?DO:LO,l=HO(r);s.length;){var c=s.pop();if(!(c.dist>=i)){var f=c.range1;if(QO(f)<=u){if(!GO(f,e.length))return NaN;if(t){var p=eI(e,f,r,n);if(0===(i=Math.min(i,p)))return i}else for(var h=f[0];h<=f[1];++h){var y=$O(e[h],r,n);if(0===(i=Math.min(i,y)))return i}}else{var d=UO(f,t);if(null!==d[0]){var m=qO(zO(e,d[0]),l,n);m5&&void 0!==arguments[5]?arguments[5]:1/0,a=Math.min(i,o.distance(e[0],r[0]));if(0===a)return a;for(var s={dist:0,range1:[0,e.length-1],range2:[0,r.length-1]},u=new BO([s],RO),l=t?DO:LO,c=n?DO:LO;u.length;){var f=u.pop();if(!(f.dist>=a)){var p=f.range1,h=f.range2;if(QO(p)<=l&&QO(h)<=c){if(!GO(p,e.length)||!GO(h,r.length))return NaN;if(t&&n?a=Math.min(a,XO(e,p,r,h,o)):t||n?t&&!n?a=Math.min(a,JO(r,h,e,p,o)):!t&&n&&(a=Math.min(a,JO(e,p,r,h,o))):a=Math.min(a,ZO(e,p,r,h,o)),0===a)return a}else{var y=UO(p,t),d=UO(h,n);nI(u,a,o,e,r,y[0],d[0]),nI(u,a,o,e,r,y[0],d[1]),nI(u,a,o,e,r,y[1],d[0]),nI(u,a,o,e,r,y[1],d[1])}}}return a}function aI(e,t,r,n){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0,a=zO(e,[0,e.length-1]),s=$E(r);try{for(s.s();!(o=s.n()).done;){var u=o.value;if(!(i!==1/0&&qO(a,zO(u,[0,u.length-1]),n)>=i)&&0===(i=Math.min(i,iI(e,t,u,!0,n,i))))return i}}catch(e){s.e(e)}finally{s.f()}return i}function sI(e,t,r,n){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0,a=zO(e,[0,e.length-1]),s=$E(r);try{for(s.s();!(o=s.n()).done;){var u=o.value;if(!(i!==1/0&&qO(a,HO(u),n)>=i)){var l=oI(e,t,u,n,i);if(isNaN(l))return l;if(0===(i=Math.min(i,l)))return i}}}catch(e){s.e(e)}finally{s.f()}return i}function uI(e,t,r){var n,o=[],i=$E(function(e,t){var r=e.length;if(r<=1)return[e];for(var n,o,i=[],a=0;ar&&(e=r),e}var vI=function(){function e(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];VE(this,e),this.type=t,this.key=r,this.scope=n,this.featureConstant=o}return HE(e,[{key:"evaluate",value:function(e){var t=dI(this.key,this.scope,e.scope),r=e.getConfig(t);if(!r)return null;var n=r.type,o=r.value,i=r.values,a=r.minValue,s=r.maxValue,u=r.stepValue,l=r.default.evaluate(e),c=l;if(o){var f=e.scope;e.scope=(f||"").split(yI).slice(1).join(yI),c=o.evaluate(e),e.scope=f}return n&&(c=mI(n,c)),void 0===c||void 0===a&&void 0===s&&void 0===u||("number"==typeof c?c=gI(c,a,s,u):Array.isArray(c)&&(c=c.map(function(e){return"number"==typeof e?gI(e,a,s,u):e}))),void 0!==o&&void 0!==c&&i&&!i.includes(c)&&(c=l,n&&(c=mI(n,c))),(n&&n!==this.type||void 0!==c&&!S_(F_(c),this.type))&&(c=mI(this.type.kind,c)),c}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){var e=["config",this.key];return this.scope&&e.concat(this.scope),e}}],[{key:"parse",value:function(t,r){var n=r.expectedType;if(null!==n&&void 0!==n||(n=p_),t.length<2||t.length>3)return r.error("Invalid number of arguments for 'config' expression.");var o=r.parse(t[1],1);if(!(o instanceof G_))return r.error("Key name of 'config' expression must be a string literal.");var i,a=!0,s=Q_(o.value);if(t.length>=3){var u=r.parse(t[2],2);if(!(u instanceof G_))return r.error("Scope of 'config' expression must be a string literal.");i=Q_(u.value)}if(r.options){var l=dI(s,i,r._scope),c=r.options.get(l);c&&(a=fI(c.value||c.default))}return new e(n,s,i,a)}}])}(),bI=function(){function e(t,r){VE(this,e),this.type=r.type,this.name=t,this.boundExpression=r}return HE(e,[{key:"evaluate",value:function(e){return this.boundExpression.evaluate(e)}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["var",this.name]}}],[{key:"parse",value:function(t,r){if(2!==t.length||"string"!=typeof t[1])return r.error("'var' expression requires exactly one string literal argument.");var n=t[1];return r.scope.has(n)?new e(n,r.scope.get(n)):r.error('Unknown variable "'.concat(n,'". Make sure "').concat(n,'" has been bound in an enclosing "let" expression before using it.'),1)}}])}(),AI=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new i_,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],a=arguments.length>5?arguments[5]:void 0,s=arguments.length>6?arguments[6]:void 0,u=arguments.length>7?arguments[7]:void 0;VE(this,e),this.registry=t,this.path=r,this.scope=o,this.errors=i,this.expectedType=n,this._scope=a,this.options=s,this.iconImageUseTheme=u}return HE(e,[{key:"key",get:function(){if(void 0===this._key){for(var e=this.path,t="",r=0;r4&&void 0!==arguments[4]?arguments[4]:{};return t||r?this.concat(t,null,r,n)._parse(e,o):this._parse(e,o)}},{key:"parseObjectValue",value:function(e,t,r,n,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return this.concat(t,r,n,o)._parse(e,i)}},{key:"_parse",value:function(e,t){function r(e,t,r){return"assert"===r?new H_(t,[e]):"coerce"===r?new $_(t,[e]):e}if(null!==e&&"string"!=typeof e&&"boolean"!=typeof e&&"number"!=typeof e||(e=["literal",e]),Array.isArray(e)){if(0===e.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n="string"==typeof e[0]?this.registry[e[0]]:void 0;if(n){var o=n.parse(e,this);if(!o)return null;if(this.expectedType){var i=this.expectedType,a=o.type;if("string"!==i.kind&&"number"!==i.kind&&"boolean"!==i.kind&&"object"!==i.kind&&"array"!==i.kind||"value"!==a.kind)if("color"!==i.kind&&"formatted"!==i.kind&&"resolvedImage"!==i.kind||"value"!==a.kind&&"string"!==a.kind){if(this.checkSubtype(i,a))return null}else o=r(o,i,t.typeAnnotation||"coerce");else o=r(o,i,t.typeAnnotation||"assert")}if(!(o instanceof G_)&&"resolvedImage"!==o.type.kind&&function e(t){if(t instanceof bI)return e(t.boundExpression);if(t instanceof rO&&"error"===t.name)return!1;if(t instanceof oO)return!1;if(t instanceof EO)return!1;if(t instanceof cI)return!1;if(t instanceof vI)return!1;var r=t instanceof $_||t instanceof H_;var n=!0;t.eachChild(function(t){n=r?n&&e(t):n&&t instanceof G_});if(!n)return!1;return fI(t)&&hI(t,["zoom","heatmap-density","worldview","line-progress","raster-value","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center","measure-light","raster-particle-speed","is-active-floor"])}(o)){var s=new tO(this._scope,this.options,this.iconImageUseTheme);try{o=new G_(o.type,o.evaluate(s))}catch(e){return this.error(e.message),null}}return o}return $_.parse(["to-array",e],this)}return void 0===e?this.error("'undefined' value invalid. Use null instead."):"object"===r_(e)?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found ".concat(r_(e)," instead."))}},{key:"concat",value:function(t,r,n,o){var i="number"==typeof t?this.path.concat(t):this.path;i="string"==typeof r?i.concat(r):i;var a=o?this.scope.concat(o):this.scope;return new e(this.registry,i,n||null,a,this.errors,this._scope,this.options,this.iconImageUseTheme)}},{key:"error",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;nt))throw new U_("Input is not a number.");a=s-1}return 0}var SI,CI,EI=function(){function e(t,r,n){VE(this,e),this.type=t,this.input=r,this.labels=[],this.outputs=[];var o,i=$E(n);try{for(i.s();!(o=i.n()).done;){var a=QE(o.value,2),s=a[0],u=a[1];this.labels.push(s),this.outputs.push(u)}}catch(e){i.e(e)}finally{i.f()}}return HE(e,[{key:"evaluate",value:function(e){var t=this.labels,r=this.outputs;if(1===t.length)return r[0].evaluate(e);var n=this.input.evaluate(e);if(n<=t[0])return r[0].evaluate(e);var o=t.length;return n>=t[o-1]?r[o-1].evaluate(e):r[wI(t,n)].evaluate(e)}},{key:"eachChild",value:function(e){e(this.input);var t,r=$E(this.outputs);try{for(r.s();!(t=r.n()).done;){e(t.value)}}catch(e){r.e(e)}finally{r.f()}}},{key:"outputDefined",value:function(){return this.outputs.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){for(var e=["step",this.input.serialize()],t=0;t0&&e.push(this.labels[t]),e.push(this.outputs[t].serialize());return e}}],[{key:"parse",value:function(t,r){if(t.length-1<4)return r.error("Expected at least 4 arguments, but found only ".concat(t.length-1,"."));if((t.length-1)%2!=0)return r.error("Expected an even number of arguments.");var n=r.parse(t[1],1,s_);if(!n)return null;var o=[],i=null;r.expectedType&&"value"!==r.expectedType.kind&&(i=r.expectedType);for(var a=1;a=s)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var f=r.parse(u,c,i);if(!f)return null;i=i||f.type,o.push([s,f])}return new e(i,n,o)}}])}();var _I=function(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}(function(){if(CI)return SI;function e(e,t,r,n){this.cx=3*e,this.bx=3*(r-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*t,this.by=3*(n-t)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=t,this.p2x=r,this.p2y=n}return CI=1,SI=e,e.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,t){if(void 0===t&&(t=1e-6),e<0)return 0;if(e>1)return 1;for(var r=e,n=0;n<8;n++){var o=this.sampleCurveX(r)-e;if(Math.abs(o)o?a=r:s=r,r=.5*(s-a)+a;return r},solve:function(e,t){return this.sampleCurveY(this.solveCurveX(e,t))}},SI}());var OI=Object.freeze({__proto__:null,array:function(e,t,r){return e.map(function(e,n){return O_(e,t[n],r)})},color:function(e,t,r){return new I_(O_(e.r,t.r,r),O_(e.g,t.g,r),O_(e.b,t.b,r),O_(e.a,t.a,r))},number:O_}),II=.95047,xI=1,PI=1.08883,kI=4/29,TI=6/29,jI=3*TI*TI,MI=TI*TI*TI,BI=Math.PI/180,NI=180/Math.PI;function RI(e){return e>MI?Math.pow(e,1/3):e/jI+kI}function LI(e){return e>TI?e*e*e:jI*(e-kI)}function DI(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function FI(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function QI(e){var t=FI(e.r),r=FI(e.g),n=FI(e.b),o=RI((.4124564*t+.3575761*r+.1804375*n)/II),i=RI((.2126729*t+.7151522*r+.072175*n)/xI);return{l:116*i-16,a:500*(o-i),b:200*(i-RI((.0193339*t+.119192*r+.9503041*n)/PI)),alpha:e.a}}function GI(e){var t=(e.l+16)/116,r=isNaN(e.a)?t:t+e.a/500,n=isNaN(e.b)?t:t-e.b/200;return t=xI*LI(t),r=II*LI(r),n=PI*LI(n),new I_(DI(3.2404542*r-1.5371385*t-.4985314*n),DI(-.969266*r+1.8760108*t+.041556*n),DI(.0556434*r-.2040259*t+1.0572252*n),e.alpha)}var UI={forward:QI,reverse:GI,interpolate:function(e,t,r){return{l:O_(e.l,t.l,r),a:O_(e.a,t.a,r),b:O_(e.b,t.b,r),alpha:O_(e.alpha,t.alpha,r)}}},zI={forward:function(e){var t=QI(e),r=t.l,n=t.a,o=t.b,i=Math.atan2(o,n)*NI;return{h:i<0?i+360:i,c:Math.sqrt(n*n+o*o),l:r,alpha:e.a}},reverse:function(e){var t=e.h*BI,r=e.c;return GI({l:e.l,a:Math.cos(t)*r,b:Math.sin(t)*r,alpha:e.alpha})},interpolate:function(e,t,r){return{h:function(e,t,r){var n=t-e;return e+r*(n>180||n<-180?n-360*Math.round(n/360):n)}(e.h,t.h,r),c:O_(e.c,t.c,r),l:O_(e.l,t.l,r),alpha:O_(e.alpha,t.alpha,r)}}},HI=Object.freeze({__proto__:null,hcl:zI,lab:UI}),qI=function(){function e(t,r,n,o,i){VE(this,e),this.type=t,this.operator=r,this.interpolation=n,this.input=o,this.labels=[],this.outputs=[];var a,s=$E(i);try{for(s.s();!(a=s.n()).done;){var u=QE(a.value,2),l=u[0],c=u[1];this.labels.push(l),this.outputs.push(c)}}catch(e){s.e(e)}finally{s.f()}}return HE(e,[{key:"evaluate",value:function(t){var r=this.labels,n=this.outputs;if(1===r.length)return n[0].evaluate(t);var o=this.input.evaluate(t);if(o<=r[0])return n[0].evaluate(t);var i=r.length;if(o>=r[i-1])return n[i-1].evaluate(t);var a=wI(r,o),s=r[a],u=r[a+1],l=e.interpolationFactor(this.interpolation,o,s,u),c=n[a].evaluate(t),f=n[a+1].evaluate(t);return"interpolate"===this.operator?OI[this.type.kind.toLowerCase()](c,f,l):"interpolate-hcl"===this.operator?zI.reverse(zI.interpolate(zI.forward(c),zI.forward(f),l)):UI.reverse(UI.interpolate(UI.forward(c),UI.forward(f),l))}},{key:"eachChild",value:function(e){e(this.input);var t,r=$E(this.outputs);try{for(r.s();!(t=r.n()).done;){e(t.value)}}catch(e){r.e(e)}finally{r.f()}}},{key:"outputDefined",value:function(){return this.outputs.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){var e;e="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(DE(this.interpolation.controlPoints));for(var t=[this.operator,e,this.input.serialize()],r=0;r1}))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);a={name:"cubic-bezier",controlPoints:c}}if(t.length-1<4)return r.error("Expected at least 4 arguments, but found only ".concat(t.length-1,"."));if(t.length-1>3&&(t.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(!(s=r.parse(s,2,s_)))return null;var f=[],p=null;"interpolate-hcl"===i||"interpolate-lab"===i?p=c_:r.expectedType&&"value"!==r.expectedType.kind&&(p=r.expectedType);for(var h=0;h=y)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',m);var v=r.parse(d,g,p);if(!v)return null;p=p||v.type,f.push([y,v])}return"number"===p.kind||"color"===p.kind||"array"===p.kind&&"number"===p.itemType.kind&&"number"==typeof p.N?new e(p,i,a,s,f):r.error("Type ".concat(g_(p)," is not interpolatable."))}}])}();function VI(e,t,r,n){var o=n-r,i=e-r;return 0===o?0:1===t?i/o:(Math.pow(t,i)-1)/(Math.pow(t,o)-1)}var KI=function(){function e(t,r){VE(this,e),this.type=t,this.args=r}return HE(e,[{key:"evaluate",value:function(e){var t,r,n=null,o=0,i=$E(this.args);try{for(i.s();!(r=i.n()).done;){if(o++,(n=r.value.evaluate(e))&&n instanceof R_&&!n.available&&(t||(t=n),n=null,o===this.args.length))return t;if(null!==n)break}}catch(e){i.e(e)}finally{i.f()}return n}},{key:"eachChild",value:function(e){this.args.forEach(e)}},{key:"outputDefined",value:function(){return this.args.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){var e=["coalesce"];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expectected at least one argument."),null;var n=null,o=r.expectedType;o&&"value"!==o.kind&&(n=o);var i,a=[],s=$E(t.slice(1));try{for(s.s();!(i=s.n()).done;){var u=i.value,l=r.parse(u,1+a.length,n,void 0,{typeAnnotation:"omit"});if(!l)return null;n=n||l.type,a.push(l)}}catch(e){s.e(e)}finally{s.f()}return new e(o&&a.some(function(e){return b_(o,e.type)})?p_:n,a)}}])}(),YI=/[^a-zA-Z0-9_]/,JI=function(){function e(t,r){VE(this,e),this.type=r.type,this.bindings=[].concat(t),this.result=r}return HE(e,[{key:"evaluate",value:function(e){return this.result.evaluate(e)}},{key:"eachChild",value:function(e){var t,r=$E(this.bindings);try{for(r.s();!(t=r.n()).done;){e(t.value[1])}}catch(e){r.e(e)}finally{r.f()}e(this.result)}},{key:"outputDefined",value:function(){return this.result.outputDefined()}},{key:"serialize",value:function(){var e,t=["let"],r=$E(this.bindings);try{for(r.s();!(e=r.n()).done;){var n=QE(e.value,2),o=n[0],i=n[1];t.push(o,i.serialize())}}catch(e){r.e(e)}finally{r.f()}return t.push(this.result.serialize()),t}}],[{key:"parse",value:function(t,r){if(t.length<4)return r.error("Expected at least 3 arguments, but found ".concat(t.length-1," instead."));for(var n=[],o=1;o=r.length)throw new U_("Array index out of bounds: index exceeds array size");if(t!==Math.floor(t))throw new U_("Array index must be an integer. Use at-interpolated for fractional indices");return r[t]}},{key:"eachChild",value:function(e){e(this.index),e(this.input)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["at",this.index.serialize(),this.input.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead."));var n=r.parse(t[1],1,s_),o=r.parse(t[2],2,m_(r.expectedType||p_));return n&&o?new e(o.type.itemType,n,o):null}}])}(),XI=function(){function e(t,r,n){VE(this,e),this.type=t,this.index=r,this.input=n}return HE(e,[{key:"evaluate",value:function(e){var t=this.index.evaluate(e),r=this.input.evaluate(e);if(t<0)throw new U_("Array index out of bounds: ".concat(t," < 0."));if(t>r.length-1)throw new U_("Array index out of bounds: ".concat(t," > ").concat(r.length-1,"."));if(t===Math.floor(t))return r[t];var n=Math.floor(t),o=Math.ceil(t),i=r[n],a=r[o];if("number"!=typeof i||"number"!=typeof a)throw new U_("Cannot interpolate between non-number values at index ".concat(t,"."));var s=t-n;return i*(1-s)+a*s}},{key:"eachChild",value:function(e){e(this.index),e(this.input)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["at-interpolated",this.index.serialize(),this.input.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead."));var n=r.parse(t[1],1,s_),o=r.parse(t[2],2,m_(r.expectedType||p_));return n&&o?new e(o.type.itemType,n,o):null}}])}(),ZI=function(){function e(t,r){VE(this,e),this.type=l_,this.needle=t,this.haystack=r}return HE(e,[{key:"evaluate",value:function(e){var t=this.needle.evaluate(e),r=this.haystack.evaluate(e);if(null==r)return!1;if(!w_(t,["boolean","string","number","null"]))throw new U_("Expected first argument to be of type boolean, string, number or null, but found ".concat(g_(F_(t))," instead."));if(!w_(r,["string","array"]))throw new U_("Expected second argument to be of type array or string, but found ".concat(g_(F_(r))," instead."));return r.includes(t)}},{key:"eachChild",value:function(e){e(this.needle),e(this.haystack)}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){return["in",this.needle.serialize(),this.haystack.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1,p_),o=r.parse(t[2],2,p_);return n&&o?A_(n.type,[l_,u_,s_,a_,p_])?new e(n,o):(r.error("Expected first argument to be of type boolean, string, number or null, but found ".concat(g_(n.type)," instead")),null):null}}])}(),$I=function(){function e(t,r,n){VE(this,e),this.type=s_,this.needle=t,this.haystack=r,this.fromIndex=n}return HE(e,[{key:"evaluate",value:function(e){var t=this.needle.evaluate(e),r=this.haystack.evaluate(e);if(!w_(t,["boolean","string","number","null"]))throw new U_("Expected first argument to be of type boolean, string, number or null, but found ".concat(g_(F_(t))," instead."));if(!w_(r,["string","array"]))throw new U_("Expected second argument to be of type array or string, but found ".concat(g_(F_(r))," instead."));if(this.fromIndex){var n=this.fromIndex.evaluate(e);return r.indexOf(t,n)}return r.indexOf(t)}},{key:"eachChild",value:function(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var e=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),e]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}],[{key:"parse",value:function(t,r){if(t.length<=2||t.length>=5)return r.error("Expected 3 or 4 arguments, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1,p_),o=r.parse(t[2],2,p_);if(!n||!o)return null;if(!A_(n.type,[l_,u_,s_,a_,p_]))return r.error("Expected first argument to be of type boolean, string, number or null, but found ".concat(g_(n.type)," instead")),null;if(4===t.length){var i=r.parse(t[3],3,s_);return i?new e(n,o,i):null}return new e(n,o)}}])}(),ex=function(){function e(t,r,n,o,i,a){VE(this,e),this.inputType=t,this.type=r,this.input=n,this.cases=o,this.outputs=i,this.otherwise=a}return HE(e,[{key:"evaluate",value:function(e){var t=this.input.evaluate(e);return(S_(F_(t),this.inputType)&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}},{key:"eachChild",value:function(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}},{key:"outputDefined",value:function(){return this.outputs.every(function(e){return e.outputDefined()})&&this.otherwise.outputDefined()}},{key:"serialize",value:function(){var e,t=this,r=["match",this.input.serialize()],n=[],o={},i=$E(Object.keys(this.cases).sort());try{for(i.s();!(e=i.n()).done;){var a=e.value,s=o[this.cases[a]];void 0===s?(o[this.cases[a]]=n.length,n.push([this.cases[a],[a]])):n[s][1].push(a)}}catch(e){i.e(e)}finally{i.f()}for(var u=function(e){return"number"===t.inputType.kind?Number(e):e},l=0,c=n;lNumber.MAX_SAFE_INTEGER)return c.error("Branch labels must be integers no larger than ".concat(Number.MAX_SAFE_INTEGER,"."));if("number"==typeof h&&Math.floor(h)!==h)return c.error("Numeric branch labels must be integer values.");if(n){if(c.checkSubtype(n,F_(h)))return null}else n=F_(h);if(void 0!==i[String(h)])return c.error("Branch labels must be unique.");i[String(h)]=a.length}}catch(e){p.e(e)}finally{p.f()}var y=r.parse(l,s,o);if(!y)return null;o=o||y.type,a.push(y)}var d=r.parse(t[1],1,p_);if(!d)return null;var m=r.parse(t.at(-1),t.length-1,o);return m?"value"!==d.type.kind&&r.concat(1).checkSubtype(n,d.type)?null:new e(n,o,d,i,a,m):null}}])}(),tx=function(){function e(t,r,n){VE(this,e),this.type=t,this.branches=r,this.otherwise=n}return HE(e,[{key:"evaluate",value:function(e){var t,r=$E(this.branches);try{for(r.s();!(t=r.n()).done;){var n=QE(t.value,2),o=n[0],i=n[1];if(o.evaluate(e))return i.evaluate(e)}}catch(e){r.e(e)}finally{r.f()}return this.otherwise.evaluate(e)}},{key:"eachChild",value:function(e){var t,r=$E(this.branches);try{for(r.s();!(t=r.n()).done;){var n=QE(t.value,2),o=n[0],i=n[1];e(o),e(i)}}catch(e){r.e(e)}finally{r.f()}e(this.otherwise)}},{key:"outputDefined",value:function(){return this.branches.every(function(e){var t=QE(e,2);t[0];return t[1].outputDefined()})&&this.otherwise.outputDefined()}},{key:"serialize",value:function(){var e=["case"];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(t.length<4)return r.error("Expected at least 3 arguments, but found only ".concat(t.length-1,".")),null;if(t.length%2!=0)return r.error("Expected an odd number of arguments."),null;var n;r.expectedType&&"value"!==r.expectedType.kind&&(n=r.expectedType);for(var o=[],i=1;i=5)return r.error("Expected 3 or 4 arguments, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1,p_),o=r.parse(t[2],2,s_);if(!n||!o)return null;if(!A_(n.type,[m_(p_),u_,p_]))return r.error("Expected first argument to be of type array or string, but found ".concat(g_(n.type)," instead")),null;if(4===t.length){var i=r.parse(t[3],3,s_);return i?new e(n.type,n,o,i):null}return new e(n.type,n,o)}}])}(),nx=function(){function e(t,r){VE(this,e),this.type=m_(u_),this.str=t,this.delimiter=r}return HE(e,[{key:"evaluate",value:function(e){var t=this.str.evaluate(e),r=this.delimiter.evaluate(e);return t.split(r)}},{key:"eachChild",value:function(e){e(this.str),e(this.delimiter)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["split",this.str.serialize(),this.delimiter.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead."));var n=r.parse(t[1],1,u_),o=r.parse(t[2],2,u_);return n&&o?new e(n,o):void 0}}])}();function ox(e,t){return"=="===e||"!="===e?"boolean"===t.kind||"string"===t.kind||"number"===t.kind||"null"===t.kind||"value"===t.kind:"string"===t.kind||"number"===t.kind||"value"===t.kind}function ix(e,t,r,n){return 0===n.compare(t,r)}function ax(e,t,r){var n="=="!==e&&"!="!==e;return function(){function o(e,t,r){VE(this,o),this.type=l_,this.lhs=e,this.rhs=t,this.collator=r,this.hasUntypedArgument="value"===e.type.kind||"value"===t.type.kind}return HE(o,[{key:"evaluate",value:function(o){var i=this.lhs.evaluate(o),a=this.rhs.evaluate(o);if(n&&this.hasUntypedArgument){var s=F_(i),u=F_(a);if(s.kind!==u.kind||"string"!==s.kind&&"number"!==s.kind)throw new U_('Expected arguments for "'.concat(e,'" to be (string, string) or (number, number), but found (').concat(s.kind,", ").concat(u.kind,") instead."))}if(this.collator&&!n&&this.hasUntypedArgument){var l=F_(i),c=F_(a);if("string"!==l.kind||"string"!==c.kind)return t(o,i,a)}return this.collator?r(o,i,a,this.collator.evaluate(o)):t(o,i,a)}},{key:"eachChild",value:function(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator)}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){var t=[e];return this.eachChild(function(e){t.push(e.serialize())}),t}}],[{key:"parse",value:function(e,t){if(3!==e.length&&4!==e.length)return t.error("Expected two or three arguments.");var r=e[0],i=t.parse(e[1],1,p_);if(!i)return null;if(!ox(r,i.type))return t.concat(1).error('"'.concat(r,"\" comparisons are not supported for type '").concat(g_(i.type),"'."));var a=t.parse(e[2],2,p_);if(!a)return null;if(!ox(r,a.type))return t.concat(2).error('"'.concat(r,"\" comparisons are not supported for type '").concat(g_(a.type),"'."));if(i.type.kind!==a.type.kind&&"value"!==i.type.kind&&"value"!==a.type.kind)return t.error("Cannot compare types '".concat(g_(i.type),"' and '").concat(g_(a.type),"'."));n&&("value"===i.type.kind&&"value"!==a.type.kind?i=new H_(a.type,[i]):"value"!==i.type.kind&&"value"===a.type.kind&&(a=new H_(i.type,[a])));var s=null;if(4===e.length){if("string"!==i.type.kind&&"string"!==a.type.kind&&"value"!==i.type.kind&&"value"!==a.type.kind)return t.error("Cannot use collator to compare non-string types.");if(!(s=t.parse(e[3],3,h_)))return null}return new o(i,a,s)}}])}()}var sx=ax("==",function(e,t,r){return t===r},ix),ux=ax("!=",function(e,t,r){return t!==r},function(e,t,r,n){return!ix(0,t,r,n)}),lx=ax("<",function(e,t,r){return t",function(e,t,r){return t>r},function(e,t,r,n){return n.compare(t,r)>0}),fx=ax("<=",function(e,t,r){return t<=r},function(e,t,r,n){return n.compare(t,r)<=0}),px=ax(">=",function(e,t,r){return t>=r},function(e,t,r,n){return n.compare(t,r)>=0}),hx=function(){function e(t,r,n,o,i,a){VE(this,e),this.type=u_,this.number=t,this.locale=r,this.currency=n,this.unit=o,this.minFractionDigits=i,this.maxFractionDigits=a}return HE(e,[{key:"evaluate",value:function(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}},{key:"eachChild",value:function(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){var e={};return this.locale&&(e.locale=this.locale.serialize()),this.currency&&(e.currency=this.currency.serialize()),this.unit&&(e.unit=this.unit.serialize()),this.minFractionDigits&&(e["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(e["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),e]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected two arguments.");var n=r.parse(t[1],1,s_);if(!n)return null;var o=t[2];if("object"!==r_(o)||Array.isArray(o))return r.error("NumberFormat options argument must be an object.");var i=null;if(o.locale&&!(i=r.parseObjectValue(o.locale,2,"locale",u_)))return null;var a=null;if(o.currency&&!(a=r.parseObjectValue(o.currency,2,"currency",u_)))return null;var s=null;if(o.unit&&!(s=r.parseObjectValue(o.unit,2,"unit",u_)))return null;var u=null;if(o["min-fraction-digits"]&&!(u=r.parseObjectValue(o["min-fraction-digits"],2,"min-fraction-digits",s_)))return null;var l=null;return o["max-fraction-digits"]&&!(l=r.parseObjectValue(o["max-fraction-digits"],2,"max-fraction-digits",s_))?null:new e(n,i,a,s,u,l)}}])}();var yx={"==":sx,"!=":ux,">":cx,"<":lx,">=":px,"<=":fx,array:H_,at:WI,"at-interpolated":XI,boolean:H_,case:tx,coalesce:KI,collator:oO,format:q_,image:V_,in:ZI,"index-of":$I,interpolate:qI,"interpolate-hcl":qI,"interpolate-lab":qI,length:function(){function e(t){VE(this,e),this.type=s_,this.input=t}return HE(e,[{key:"evaluate",value:function(e){var t=this.input.evaluate(e);if("string"==typeof t)return t.length;if(Array.isArray(t))return t.length;throw new U_("Expected value to be of type string or array, but found ".concat(g_(F_(t))," instead."))}},{key:"eachChild",value:function(e){e(this.input)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){var e=["length"];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(2!==t.length)return r.error("Expected 1 argument, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1);return n?"array"!==n.type.kind&&"string"!==n.type.kind&&"value"!==n.type.kind?(r.error("Expected argument of type string or array, but found ".concat(g_(n.type)," instead.")),null):new e(n):null}}])}(),let:JI,literal:G_,match:ex,number:H_,"number-format":hx,object:H_,slice:rx,step:EI,string:H_,"to-boolean":$_,"to-color":$_,"to-number":$_,"to-string":$_,var:bI,within:EO,distance:cI,config:vI,split:nx};function dx(e,t){var r=QE(t,4),n=r[0],o=r[1],i=r[2],a=r[3];n=n.evaluate(e),o=o.evaluate(e),i=i.evaluate(e);var s=a?a.evaluate(e):1,u=L_(n,o,i,s);if(u)throw new U_(u);return new I_(n/255,o/255,i/255,s)}function mx(e,t){var r=QE(t,4),n=r[0],o=r[1],i=r[2],a=r[3];n=n.evaluate(e),o=o.evaluate(e),i=i.evaluate(e);var s=a?a.evaluate(e):1,u=function(e,t,r,n){return"number"==typeof e&&e>=0&&e<=360?"number"==typeof t&&t>=0&&t<=100&&"number"==typeof r&&r>=0&&r<=100?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid hsla value [".concat([e,t,r,n].join(", "),"]: 'a' must be between 0 and 1."):"Invalid hsla value [".concat(("number"==typeof n?[e,t,r,n]:[e,t,r]).join(", "),"]: 's', and 'l' must be between 0 and 100."):"Invalid hsla value [".concat(("number"==typeof n?[e,t,r,n]:[e,t,r]).join(", "),"]: 'h' must be between 0 and 360.")}(n,o,i,s);if(u)throw new U_(u);var l="hsla(".concat(n,", ").concat(o,"%, ").concat(i,"%, ").concat(s,")"),c=I_.parse(l);if(!c)throw new U_("Failed to parse HSLA color: ".concat(l));return c}function gx(e,t){return e in t}function vx(e,t){var r=t[e];return void 0===r?null:r}function bx(e){return{type:e}}function Ax(e){if(e instanceof vI)return new Set([e.key]);var t=new Set;return e.eachChild(function(e){t=new Set([].concat(DE(t),DE(Ax(e))))}),t}function wx(e){if(e instanceof rO&&"is-active-floor"===e.name)return!0;var t=!1;return e.eachChild(function(e){!t&&wx(e)&&(t=!0)}),t}function Sx(e){return{result:"success",value:e}}function Cx(e){return{result:"error",value:e}}rO.register(yx,{error:[{kind:"error"},[u_],function(e,t){var r=QE(t,1)[0];throw new U_(r.evaluate(e))}],typeof:[u_,[p_],function(e,t){return g_(F_(QE(t,1)[0].evaluate(e)))}],"to-rgba":[m_(s_,4),[c_],function(e,t){return QE(t,1)[0].evaluate(e).toNonPremultipliedRenderColor(null).toArray()}],"to-hsla":[m_(s_,4),[c_],function(e,t){return QE(t,1)[0].evaluate(e).toNonPremultipliedRenderColor(null).toHslaArray()}],rgb:[c_,[s_,s_,s_],dx],rgba:[c_,[s_,s_,s_,s_],dx],hsl:[c_,[s_,s_,s_],mx],hsla:[c_,[s_,s_,s_,s_],mx],has:{type:l_,overloads:[[[u_],function(e,t){return gx(QE(t,1)[0].evaluate(e),e.properties())}],[[u_,f_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return gx(n.evaluate(e),o.evaluate(e))}]]},get:{type:p_,overloads:[[[u_],function(e,t){return vx(QE(t,1)[0].evaluate(e),e.properties())}],[[u_,f_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return vx(n.evaluate(e),o.evaluate(e))}]]},"feature-state":[p_,[u_],function(e,t){return vx(QE(t,1)[0].evaluate(e),e.featureState||{})}],properties:[f_,[],function(e){return e.properties()}],"geometry-type":[u_,[],function(e){return e.geometryType()}],worldview:[u_,[],function(e){return e.globals.worldview||""}],"is-active-floor":[l_,bx(u_),function(e,t){if(!(e.globals&&e.globals.activeFloors&&e.globals.activeFloors.size>0))return!1;if(0===t.length)return!0;var r=e.globals.activeFloors;return t.some(function(t){var n=t.evaluate(e);return r.has(n)})}],id:[p_,[],function(e){return e.id()}],zoom:[s_,[],function(e){return e.globals.zoom}],pitch:[s_,[],function(e){return e.globals.pitch||0}],"distance-from-center":[s_,[],function(e){return e.distanceFromCenter()}],"measure-light":[s_,[u_],function(e,t){var r=QE(t,1)[0];return e.measureLight(r.evaluate(e))}],"heatmap-density":[s_,[],function(e){return e.globals.heatmapDensity||0}],"line-progress":[s_,[],function(e){return e.globals.lineProgress||0}],"raster-value":[s_,[],function(e){return e.globals.rasterValue||0}],"raster-particle-speed":[s_,[],function(e){return e.globals.rasterParticleSpeed||0}],"sky-radial-progress":[s_,[],function(e){return e.globals.skyRadialProgress||0}],accumulated:[p_,[],function(e){return void 0===e.globals.accumulated?null:e.globals.accumulated}],"+":[s_,bx(s_),function(e,t){var r,n=0,o=$E(t);try{for(o.s();!(r=o.n()).done;){n+=r.value.evaluate(e)}}catch(e){o.e(e)}finally{o.f()}return n}],"*":[s_,bx(s_),function(e,t){var r,n=1,o=$E(t);try{for(o.s();!(r=o.n()).done;){n*=r.value.evaluate(e)}}catch(e){o.e(e)}finally{o.f()}return n}],"-":{type:s_,overloads:[[[s_,s_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return n.evaluate(e)-o.evaluate(e)}],[[s_],function(e,t){return-QE(t,1)[0].evaluate(e)}]]},"/":[s_,[s_,s_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return n.evaluate(e)/o.evaluate(e)}],"%":[s_,[s_,s_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return n.evaluate(e)%o.evaluate(e)}],ln2:[s_,[],function(){return Math.LN2}],pi:[s_,[],function(){return Math.PI}],e:[s_,[],function(){return Math.E}],"^":[s_,[s_,s_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return Math.pow(n.evaluate(e),o.evaluate(e))}],sqrt:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.sqrt(r.evaluate(e))}],log10:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.log(r.evaluate(e))/Math.LN10}],ln:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.log(r.evaluate(e))}],log2:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.log2(r.evaluate(e))}],sin:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.sin(r.evaluate(e))}],cos:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.cos(r.evaluate(e))}],tan:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.tan(r.evaluate(e))}],asin:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.asin(r.evaluate(e))}],acos:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.acos(r.evaluate(e))}],atan:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.atan(r.evaluate(e))}],min:[s_,bx(s_),function(e,t){return Math.min.apply(Math,DE(t.map(function(t){return t.evaluate(e)})))}],max:[s_,bx(s_),function(e,t){return Math.max.apply(Math,DE(t.map(function(t){return t.evaluate(e)})))}],abs:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.abs(r.evaluate(e))}],round:[s_,[s_],function(e,t){var r=QE(t,1)[0].evaluate(e);return r<0?-Math.round(-r):Math.round(r)}],floor:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.floor(r.evaluate(e))}],ceil:[s_,[s_],function(e,t){var r=QE(t,1)[0];return Math.ceil(r.evaluate(e))}],"filter-==":[l_,[u_,p_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return e.properties()[n.value]===o.value}],"filter-id-==":[l_,[p_],function(e,t){var r=QE(t,1)[0];return e.id()===r.value}],"filter-type-==":[l_,[u_],function(e,t){var r=QE(t,1)[0];return e.geometryType()===r.value}],"filter-<":[l_,[u_,p_],function(e,t){var r=QE(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return r_(i)===r_(a)&&i":[l_,[u_,p_],function(e,t){var r=QE(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return r_(i)===r_(a)&&i>a}],"filter-id->":[l_,[p_],function(e,t){var r=QE(t,1)[0],n=e.id(),o=r.value;return r_(n)===r_(o)&&n>o}],"filter-<=":[l_,[u_,p_],function(e,t){var r=QE(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return r_(i)===r_(a)&&i<=a}],"filter-id-<=":[l_,[p_],function(e,t){var r=QE(t,1)[0],n=e.id(),o=r.value;return r_(n)===r_(o)&&n<=o}],"filter->=":[l_,[u_,p_],function(e,t){var r=QE(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return r_(i)===r_(a)&&i>=a}],"filter-id->=":[l_,[p_],function(e,t){var r=QE(t,1)[0],n=e.id(),o=r.value;return r_(n)===r_(o)&&n>=o}],"filter-has":[l_,[p_],function(e,t){return QE(t,1)[0].value in e.properties()}],"filter-has-id":[l_,[],function(e){return null!==e.id()&&void 0!==e.id()}],"filter-type-in":[l_,[m_(u_)],function(e,t){return QE(t,1)[0].value.includes(e.geometryType())}],"filter-id-in":[l_,[m_(p_)],function(e,t){return QE(t,1)[0].value.includes(e.id())}],"filter-in-small":[l_,[u_,m_(p_)],function(e,t){var r=QE(t,2),n=r[0];return r[1].value.includes(e.properties()[n.value])}],"filter-in-large":[l_,[u_,m_(p_)],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return function(e,t,r,n){for(;r<=n;){var o=r+n>>1;if(t[o]===e)return!0;t[o]>e?n=o-1:r=o+1}return!1}(e.properties()[n.value],o.value,0,o.value.length-1)}],all:{type:l_,overloads:[[[l_,l_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return n.evaluate(e)&&o.evaluate(e)}],[bx(l_),function(e,t){var r,n=$E(t);try{for(n.s();!(r=n.n()).done;){if(!r.value.evaluate(e))return!1}}catch(e){n.e(e)}finally{n.f()}return!0}]]},any:{type:l_,overloads:[[[l_,l_],function(e,t){var r=QE(t,2),n=r[0],o=r[1];return n.evaluate(e)||o.evaluate(e)}],[bx(l_),function(e,t){var r,n=$E(t);try{for(n.s();!(r=n.n()).done;){if(r.value.evaluate(e))return!0}}catch(e){n.e(e)}finally{n.f()}return!1}]]},"!":[l_,[l_],function(e,t){return!QE(t,1)[0].evaluate(e)}],"is-supported-script":[l_,[u_],function(e,t){var r=QE(t,1)[0],n=e.globals&&e.globals.isSupportedScript;return!n||n(r.evaluate(e))}],upcase:[u_,[u_],function(e,t){return QE(t,1)[0].evaluate(e).toUpperCase()}],downcase:[u_,[u_],function(e,t){return QE(t,1)[0].evaluate(e).toLowerCase()}],concat:[u_,bx(p_),function(e,t){return t.map(function(t){return Q_(t.evaluate(e))}).join("")}],"resolved-locale":[u_,[h_],function(e,t){return QE(t,1)[0].evaluate(e).resolvedLocale()}],random:[s_,[s_,s_,p_],function(e,t){var r,n,o=QE(t.map(function(t){return t.evaluate(e)}),3),i=o[0],a=o[1],s=o[2];if(i>a)return i;if(i===a)return i;if("string"==typeof s)r=function(e){var t=0;if(0===e.length)return t;for(var r=0;r>>15,1|n);return(((e=e+Math.imul(e^e>>>7,61|e)^e)^e>>>14)>>>0)/4294967296})()*(a-i)}]});function Ex(e,t){return!!e&&!!e.parameters&&e.parameters.includes(t)}function _x(e){return"data-driven"===e["property-type"]}function Ox(e){return Ex(e.expression,"measure-light")}function Ix(e){return Ex(e.expression,"zoom")}function xx(e){return!!e.expression&&e.expression.interpolated}function Px(e){return"object"===r_(e)&&null!==e&&!Array.isArray(e)}function kx(e){return e}function Tx(e,t){var r,n,o,i="color"===t.type,a=e.stops&&"object"===r_(e.stops[0][0]),s=a||void 0!==e.property,u=a||!s,l=e.type||(xx(t)?"exponential":"interval");if(i&&((e=Object.assign({},e)).stops&&(e.stops=e.stops.map(function(e){return[e[0],I_.parse(e[1])]})),e.default?e.default=I_.parse(e.default):e.default=I_.parse(t.default)),e.colorSpace&&"rgb"!==e.colorSpace&&!HI[e.colorSpace])throw new Error("Unknown color space: ".concat(e.colorSpace));if("exponential"===l)r=Nx;else if("interval"===l)r=Bx;else if("categorical"===l){r=Mx,n=Object.create(null);var c,f=$E(e.stops);try{for(f.s();!(c=f.n()).done;){var p=c.value;n[p[0]]=p[1]}}catch(e){f.e(e)}finally{f.f()}o=r_(e.stops[0][0])}else{if("identity"!==l)throw new Error('Unknown function type "'.concat(l,'"'));r=Rx}if(a){for(var h={},y=[],d=0;d=e.stops[n-1][0])return e.stops[n-1][1];var o=wI(e.stops.map(function(e){return e[0]}),r);return e.stops[o][1]}function Nx(e,t,r){var n=void 0!==e.base?e.base:1;if(!W_(r))return jx(e.default,t.default);var o=e.stops.length;if(1===o)return e.stops[0][1];if(r<=e.stops[0][0])return e.stops[0][1];if(r>=e.stops[o-1][0])return e.stops[o-1][1];var i=wI(e.stops.map(function(e){return e[0]}),r),a=function(e,t,r,n){var o=n-r,i=e-r;return 0===o?0:1===t?i/o:(Math.pow(t,i)-1)/(Math.pow(t,o)-1)}(r,n,e.stops[i][0],e.stops[i+1][0]),s=e.stops[i][1],u=e.stops[i+1][1],l=OI[t.type]||kx;if(e.colorSpace&&"rgb"!==e.colorSpace){var c=HI[e.colorSpace];l=function(e,t){return c.reverse(c.interpolate(c.forward(e),c.forward(t),a))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&"string"==typeof e[0]&&e[0]in yx}function Fx(e,t,r,n,o){var i=new AI(yx,[],t?function(e){var t={color:c_,string:u_,number:s_,enum:u_,boolean:l_,formatted:y_,resolvedImage:d_};if("array"===e.type)return m_(t[e.value]||p_,e.length);return t[e.type]}(t):void 0,void 0,void 0,r,n,o),a=i.parse(e,void 0,void 0,void 0,t&&"string"===t.type?{typeAnnotation:"coerce"}:void 0);return a?Sx(new Lx(a,t,r,n,o)):Cx(i.errors)}var Qx=function(){return HE(function e(t,r,n,o){VE(this,e),this.kind=t,this._styleExpression=r,this.isLightConstant=n,this.isLineProgressConstant=o,this.isStateDependent="constant"!==t&&!pI(r.expression),this.configDependencies=Ax(r.expression),this.isIndoorDependent=wx(r.expression)},[{key:"evaluateWithoutErrorHandling",value:function(e,t,r,n,o,i){return this._styleExpression.evaluateWithoutErrorHandling(e,t,r,n,o,i)}},{key:"evaluate",value:function(e,t,r,n,o,i,a){return this._styleExpression.evaluate(e,t,r,n,o,i,void 0,void 0,a)}}])}(),Gx=function(){return HE(function e(t,r,n,o,i,a){VE(this,e),this.kind=t,this.zoomStops=n,this._styleExpression=r,this.isStateDependent="camera"!==t&&!pI(r.expression),this.isIndoorDependent=wx(r.expression),this.isLightConstant=i,this.isLineProgressConstant=a,this.configDependencies=Ax(r.expression),this.interpolationType=o},[{key:"evaluateWithoutErrorHandling",value:function(e,t,r,n,o,i){return this._styleExpression.evaluateWithoutErrorHandling(e,t,r,n,o,i)}},{key:"evaluate",value:function(e,t,r,n,o,i){return this._styleExpression.evaluate(e,t,r,n,o,i)}},{key:"interpolationFactor",value:function(e,t,r){return this.interpolationType?qI.interpolationFactor(this.interpolationType,e,t,r):0}}])}();function Ux(e,t,r,n,o){if("error"===(e=Fx(e,t,r,n,o)).result)return e;var i=e.value.expression,a=fI(i);if(!a&&!_x(t))return Cx([new o_("","data expressions not supported")]);var s=hI(i,["zoom","pitch","distance-from-center"]);if(!s&&!Ix(t))return Cx([new o_("","zoom expressions not supported")]);var u=hI(i,["measure-light"]);if(!u&&!Ox(t))return Cx([new o_("","measure-light expression not supported")]);var l=hI(i,["line-progress"]);if(!l&&!Ex(t.expression,"line-progress"))return Cx([new o_("","line-progress expression not supported")]);var c=t.expression&&t.expression.relaxZoomRestriction,f=function e(t){var r=null;if(t instanceof JI)r=e(t.result);else if(t instanceof KI){var n,o=$E(t.args);try{for(o.s();!(n=o.n()).done;){var i=n.value;if(r=e(i))break}}catch(e){o.e(e)}finally{o.f()}}else(t instanceof EI||t instanceof qI)&&t.input instanceof rO&&"zoom"===t.input.name&&(r=t);if(r instanceof o_)return r;t.eachChild(function(t){var n=e(t);n instanceof o_?r=n:r&&n&&r!==n&&(r=new o_("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))});return r}(i);if(!(f||s||c))return Cx([new o_("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression, or in the properties of atmosphere.')]);if(f instanceof o_)return Cx([f]);if(f instanceof qI&&!xx(t))return Cx([new o_("",'"interpolate" expressions cannot be used with this property')]);if(!f)return Sx(new Qx(a&&l?"constant":"source",e.value,u,l));var p=f instanceof qI?f.interpolation:void 0;return Sx(new Gx(a&&l?"camera":"composite",e.value,f.labels,p,u,l))}var zx=function(){function e(t,r){VE(this,e),this._parameters=t,this._specification=r,Object.assign(this,Tx(this._parameters,this._specification))}return HE(e,null,[{key:"deserialize",value:function(t){return new e(t._parameters,t._specification)}},{key:"serialize",value:function(e){return{_parameters:e._parameters,_specification:e._specification}}}])}();function Hx(e){return e instanceof Number||e instanceof String||e instanceof Boolean?e.valueOf():e}function qx(e){if(Array.isArray(e))return e.map(qx);if(e instanceof Object&&!(e instanceof Number||e instanceof String||e instanceof Boolean)){var t={};for(var r in e)t[r]=qx(e[r]);return t}return Hx(e)}function Vx(e){if(!0===e||!1===e)return!0;if(!Array.isArray(e)||0===e.length)return!1;switch(e[0]){case"has":return e.length>=2&&"$id"!==e[1]&&"$type"!==e[1];case"in":return e.length>=3&&("string"!=typeof e[1]||Array.isArray(e[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==e.length||Array.isArray(e[1])||Array.isArray(e[2]);case"any":case"all":var t,r=$E(e.slice(1));try{for(r.s();!(t=r.n()).done;){var n=t.value;if(!Vx(n)&&"boolean"!=typeof n)return!1}}catch(e){r.e(e)}finally{r.f()}return!0;default:return!0}}function Kx(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"fill";if(null===e||void 0===e)return{filter:function(){return!0},needGeometry:!1,needFeature:!1};Vx(e)||(e=Xx(e));var o=e,i=!0;try{i=function(e){if(!Yx(e))return e;var t=qx(e);return function e(t){var r=!1,n=[];if("case"===t[0]){for(var o=1;o",">=","<","<=","to-boolean"]);function Wx(e,t){return et?1:0}function Xx(e){if(!e)return!0;var t,r=e[0];return e.length<=1?"any"!==r:"=="===r?Zx(e[1],e[2],"=="):"!="===r?tP(Zx(e[1],e[2],"==")):"<"===r||">"===r||"<="===r||">="===r?Zx(e[1],e[2],r):"any"===r?(t=e.slice(1),["any"].concat(t.map(Xx))):"all"===r?["all"].concat(e.slice(1).map(Xx)):"none"===r?["all"].concat(e.slice(1).map(Xx).map(tP)):"in"===r?$x(e[1],e.slice(2)):"!in"===r?tP($x(e[1],e.slice(2))):"has"===r?eP(e[1]):"!has"!==r||tP(eP(e[1]))}function Zx(e,t,r){switch(e){case"$type":return["filter-type-".concat(r),t];case"$id":return["filter-id-".concat(r),t];default:return["filter-".concat(r),e,t]}}function $x(e,t){if(0===t.length)return!1;switch(e){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some(function(e){return r_(e)!==r_(t[0])})?["filter-in-large",e,["literal",t.sort(Wx)]]:["filter-in-small",e,["literal",t]]}}function eP(e){switch(e){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",e]}}function tP(e){return["!",e]}var rP={StyleExpression:Lx,isExpression:Dx,isExpressionFilter:Vx,createExpression:Fx,createPropertyExpression:Ux,normalizePropertyExpression:function(e,t,r,n,o){if(Px(e))return new zx(e,t);if(Dx(e)||Array.isArray(e)&&e.length>0){var i=Ux(e,t,r,n,o);if("error"===i.result)throw new Error(i.value.map(function(e){return"".concat(e.key,": ").concat(e.message)}).join(", "));return i.value}var a=e;return"string"==typeof e&&"color"===t.type&&(a=I_.parse(e)),{kind:"constant",configDependencies:new Set,isIndoorDependent:!1,evaluate:function(){return a}}},ZoomConstantExpression:Qx,ZoomDependentExpression:Gx,StylePropertyFunction:zx};function nP(e){"@babel/helpers - typeof";return(nP="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function oP(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return iP(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?iP(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function iP(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r0}function KP(e){var t=function(e){var t,r,n=e.paint,o=void 0===n?{}:n,i=e.layout,a=void 0===i?{}:i,s=Object.keys(o).concat(Object.keys(a)),u=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=GP(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(qP);try{var l=function(){var e=r.value,n=s.some(function(t){return t.startsWith(e.prefix)});if(n)return t=e.type,1};for(u.s();!(r=u.n()).done&&!l(););}catch(e){u.e(e)}finally{u.f()}return t||HP.symbol}(e);return zP(zP(zP({},HP.symbol,{type:"layout",name:"icon-image"}),HP.line,{type:"paint",name:"line-pattern"}),HP.fill,{type:"paint",name:"fill-pattern"})[t]}var YP=["array","boolean","collator","format","literal","number","object","string","to-boolean","to-color","to-number","to-string","typeof","feature-state","geometry-type","id","line-progress","properties","at","get","has","length","!","!=","<","<=","==",">",">=","all","any","case","match","coalesce","interpolate","interpolate-hcl","interpolate-lab","step","let","var","concat","downcase","is-supported-script","resolved-locale","upcase","rgb","rgba","-","*","/","%","^","+","abs","acos","asin","atan","ceil","cos","e","floor","ln","ln2","log10","log2","max","min","pi","round","sin","sqrt","tan","zoom","heatmap-density"];function JP(e){if(e&&e.length>0){var t=QP(e,1)[0];return"string"==typeof t&&YP.includes(t)}return!1}function WP(e){return Object.keys(e).every(function(t){return!JP(e[t])})}function XP(e){return(VP(e)?e:[e]).every(function(e){return WP(e.paint||{})&&WP(e.layout||{})})}var ZP=function(e){return["background-color","background-color-transition","background-pattern","background-pattern-transition","background-opacity","background-opacity-transition","fill-antialias","fill-opacity","fill-opacity-transition","fill-color","fill-color-transition","fill-outline-color","fill-outline-color-transition","fill-translate","fill-translate-transition","fill-translate-anchor","fill-pattern","fill-pattern-transition","fill-extrusion-opacity","fill-extrusion-opacity-transition","fill-extrusion-color","fill-extrusion-color-transition","fill-extrusion-translate","fill-extrusion-translate-transition","fill-extrusion-translate-anchor","fill-extrusion-pattern","fill-extrusion-pattern-transition","fill-extrusion-height","fill-extrusion-height-transition","fill-extrusion-base","fill-extrusion-base-transition","fill-extrusion-vertical-gradient","line-opacity","line-opacity-transition","line-color","line-color-transition","line-translate","line-translate-transition","line-translate-anchor","line-width","line-width-transition","line-gap-width","line-gap-width-transition","line-offset","line-offset-transition","line-blur","line-blur-transition","line-dasharray","line-dasharray-transition","line-pattern","line-pattern-transition","line-gradient","icon-opacity","icon-opacity-transition","icon-color","icon-color-transition","icon-halo-color","icon-halo-color-transition","icon-halo-width","icon-halo-width-transition","icon-halo-blur","icon-halo-blur-transition","icon-translate","icon-translate-transition","icon-translate-anchor","text-opacity","text-opacity-transition","text-color","text-color-transition","text-halo-color","text-halo-color-transition","text-halo-width","text-halo-width-transition","text-halo-blur","text-halo-blur-transition","text-translate","text-translate-transition","text-translate-anchor","raster-opacity","raster-opacity-transition","raster-hue-rotate","raster-hue-rotate-transition","raster-brightness-min","raster-brightness-min-transition","raster-brightness-max","raster-brightness-max-transition","raster-saturation","raster-saturation-transition","raster-contrast","raster-contrast-transition","raster-fade-duration","raster-resampling","circle-sort-key","circle-radius","circle-radius-transition","circle-color","circle-color-transition","circle-blur","circle-blur-transition","circle-opacity","circle-opacity-transition","circle-translate","circle-translate-transition","circle-translate-anchor","circle-pitch-scale","circle-pitch-alignment","circle-stroke-width","circle-stroke-width-transition","circle-stroke-color","circle-stroke-color-transition","circle-stroke-opacity","circle-stroke-opacity-transition","heatmap-radius","heatmap-radius-transition","heatmap-weight","heatmap-intensity","heatmap-intensity-transition","heatmap-color","heatmap-opacity","heatmap-opacity-transition","hillshade-illumination-direction","hillshade-illumination-anchor","hillshade-exaggeration","hillshade-exaggeration-transition","hillshade-shadow-color","hillshade-shadow-color-transition","hillshade-highlight-color","hillshade-highlight-color-transition","hillshade-accent-color","hillshade-accent-color-transition"].includes(e)};function $P(e){"@babel/helpers - typeof";return($P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ek(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function tk(e){for(var t=1;t0}},{key:"removeSymbol",value:function(e){this.symbolManager.removeSymbol(e)}},{key:"getSymbol",value:function(e){return this.symbolManager.getSymbol(e)}},{key:"getLayerIds",value:function(e){return this.compositeSymbolRender.getLayerIds(e)||[]}},{key:"getLayerId",value:function(e){return this.compositeSymbolRender.getLayerId(e)}},{key:"removeLayerId",value:function(e){return this.compositeSymbolRender.removeLayerId(e)}},{key:"getLayer",value:function(e){var t=this.map.getLayerBySymbolBak(e),r=this.getLayerSymbol(e);if(t)return r?tk(tk({},t),{},{symbol:r}):t;var n=this.getLayerIds(e);if(n[0]){var o=this.map.getLayerBySymbolBak(n[0]);return o&&tk(tk({},o),{},{symbol:r,id:e})}}},{key:"removeLayer",value:function(e){var t=this,r=this.getLayerIds(e);r.length>0?(r.forEach(function(e){return t.map.style.removeLayer(e)}),this.removeLayerId(e)):this.map.style.removeLayer(e)}},{key:"getStyle",value:function(){var e=this,t=this.map.style.serialize();return this.hasSymbol()&&(t.layers=t.layers.reduce(function(t,r){var n=e.getLayerId(r.id);return n?!t.find(function(e){return e.id===n})&&t.push(tk(tk({},r),{},{symbol:e.getLayerSymbol(n),id:n})):e.getLayerSymbol(r.id)?t.push(tk(tk({},r),{},{symbol:e.getLayerSymbol(r.id)})):t.push(r),t},[])),t}},{key:"getFirstLayerId",value:function(e){return this.getLayerIds(e)[0]}},{key:"moveLayer",value:function(e,t){var r=this,n=this.getLayerIds(e),o=t&&this.map.style.getLayer(t),i=o&&o.id||t&&this.getFirstLayerId(t);n.length>0?n.forEach(function(e){return r.map.style.moveLayer(e,i)}):this.map.style.moveLayer(e,i)}},{key:"setFilter",value:function(e,t,r){var n=this;if(JP(this.getLayerSymbol(e))){var o=this.getFirstLayerId(e);this.map.style.setFilter(o,t,r);var i=this.getLayerSymbol(e);this.setSymbol(e,i)}else{var a=this.getLayerIds(e);a.length>0?a.forEach(function(e){return n.map.style.setFilter(e,t,r)}):this.map.style.setFilter(e,t,r)}}},{key:"getFilter",value:function(e){var t=this.getFirstLayerId(e);if(this.map.style.getLayer(t))return this.map.style.getFilter(t)}},{key:"setLayerZoomRange",value:function(e,t,r){var n=this,o=this.getLayerIds(e);o.length>0?o.forEach(function(e){return n.map.style.setLayerZoomRange(e,t,r)}):this.map.style.setLayerZoomRange(e,t,r)}},{key:"setPaintProperty",value:function(e,t,r,n){var o=this,i=this.getLayerIds(e);i.length>0?i.forEach(function(e){return o.map.style.setPaintProperty(e,t,r,n)}):this.map.style.setPaintProperty(e,t,r,n)}},{key:"getPaintProperty",value:function(e,t){var r=this.getFirstLayerId(e);return this.map.style.getPaintProperty(r,t)}},{key:"setLayoutProperty",value:function(e,t,r,n){var o=this,i=this.getLayerIds(e);i.length>0?i.forEach(function(e){return o.map.style.setLayoutProperty(e,t,r,n)}):this.map.style.setLayoutProperty(e,t,r,n)}},{key:"getLayoutProperty",value:function(e,t){var r=this.getFirstLayerId(e);return this.map.style.getLayoutProperty(r,t)}},{key:"updateLayerSymbol",value:function(e){var t=this;Object.keys(this._layerSymbols).forEach(function(r){var n=t._layerSymbols[r];n.includes(e)&&t.setSymbol(r,n)})}},{key:"updateSymbol",value:function(e,t){return this.getSymbol(e)?XP(t)?(this.symbolManager.addSymbol(e,t),void this.updateLayerSymbol(e)):this.map.fire("error",{error:new Error("Symbol is not supported expressions.")}):this.map.fire("error",{error:new Error('Symbol "'.concat(e,'" could not be loaded. Please make sure you have added the symbol with map.addSymbol().'))})}},{key:"setSymbolProperty",value:function(e,t,r,n){var o=this.getSymbol(e);if(!o)return this.map.fire("error",{error:new Error('Symbol "'.concat(e,'" could not be loaded. Please make sure you have added the symbol with map.addSymbol().'))});if(JP(n))return this.map.fire("error",{error:new Error("Symbol value is not supported expressions.")});var i=ZP(r)?"paint":"layout";if(o.length>0){var a=o[t];if(!a)return this.map.fire("error",{error:new Error("symbol[".concat(t,"] does not exist."))});a[i]||(a[i]={}),Object.assign(a[i],rk({},r,n))}else o[i]||(o[i]={}),Object.assign(o[i],rk({},r,n));this.symbolManager.addSymbol(e,o),this.updateLayerSymbol(e)}},{key:"getSymbolProperty",value:function(e,t,r){var n=this.getSymbol(e);if(n){var o=ZP(r)?"paint":"layout";return n.length>0?n[t]&&n[t][o]&&n[t][o][r]:n[o]&&n[o][r]}this.map.fire("error",{error:new Error('Symbol "'.concat(e,'" could not be loaded. Please make sure you have added the symbol with map.addSymbol().'))})}}])&&nk(e.prototype,t),r&&nk(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function ak(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return sk(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(sk(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,sk(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,sk(f,"constructor",l),sk(l,"constructor",u),u.displayName="GeneratorFunction",sk(l,o,"GeneratorFunction"),sk(f),sk(f,o,"Generator"),sk(f,n,function(){return this}),sk(f,"toString",function(){return"[object Generator]"}),(ak=function(){return{w:i,m:p}})()}function sk(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(sk=function(e,t,r,n){function i(t,r){sk(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function uk(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function lk(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){uk(i,n,o,a,s,"next",e)}function s(e){uk(i,n,o,a,s,"throw",e)}a(void 0)})}}var ck=function(){var e=function(e){return o().Map.prototype.symbolHandler||(o().Map.prototype.symbolHandler=new ik(e)),o().Map.prototype.symbolHandler._update(e)};function t(){return(t=lk(ak().m(function e(t,r){var n,o,i,a,s,u,l;return ak().w(function(e){for(;;)switch(e.n){case 0:return n="".concat(r.basePath,"/").concat(t,"/").concat(t),e.n=1,H.get("".concat(n,".json")).then(function(e){return e.ok?e.json():null}).catch(function(){return null});case 1:if(o=e.v){e.n=2;break}return e.a(2,null);case 2:if(i=o.paint||{},a=o.layout||{},s=i["fill-pattern"]||i["line-pattern"]||a["icon-image"],!(l=s)){e.n=4;break}return e.n=3,new Promise(function(e){var t=new Image;t.src="".concat(n,".png"),t.onload=function(r){e(r?t:null)},t.onerror=function(){e(null)}});case 3:l=e.v;case 4:return u=l,e.a(2,{value:o,image:u})}},e)}))).apply(this,arguments)}function r(r,n){return function(e,r){return t.apply(this,arguments)}(r,n).then(function(t){if(!t)return null;var r=t.value,o=t.image;return o&&e(n).addSymbolImageToMap(r,o),r})}void 0===o().Map.prototype.addLayerBySymbolBak&&(o().Map.prototype.addLayerBySymbolBak=o().Map.prototype.addLayer,o().Map.prototype.addLayer=function(t,r){var n=e(this);if(!(n.getLayerIds(t.id).length>0))return t.symbol?(n.addLayer(t,r),this):(this.addLayerBySymbolBak(t,r),this);this.fire("error",{error:new Error("A layer with this id already exists.")})}),void 0===o().Map.prototype.getLayerBySymbolBak&&(o().Map.prototype.getLayerBySymbolBak=o().Map.prototype.getLayer,o().Map.prototype.getLayer=function(t){return e(this).getLayer(t)}),void 0===o().Map.prototype.moveLayerBySymbolBak&&(o().Map.prototype.moveLayerBySymbolBak=o().Map.prototype.moveLayer,o().Map.prototype.moveLayer=function(t,r){return!this.style.getLayer(t)||r&&!this.style.getLayer(r)?(e(this).moveLayer(t,r),this._update(!0)):this.moveLayerBySymbolBak(t,r)}),void 0===o().Map.prototype.removeLayerBySymbolBak&&(o().Map.prototype.removeLayerBySymbolBak=o().Map.prototype.removeLayer,o().Map.prototype.removeLayer=function(t){return this.style.getLayer(t)?this.removeLayerBySymbolBak(t):e(this).removeLayer(t)}),void 0===o().Map.prototype.setLayoutPropertyBySymbolBak&&(o().Map.prototype.setLayoutPropertyBySymbolBak=o().Map.prototype.setLayoutProperty,o().Map.prototype.setLayoutProperty=function(t,r,n,o){return this.overlayLayersManager[t]||this.style.getLayer(t)?this.setLayoutPropertyBySymbolBak(t,r,n,o):(e(this).setLayoutProperty(t,r,n,o),this._update(!0))}),o().Map.prototype.setSymbol=function(t,r){e(this).setSymbol(t,r)},o().Map.prototype.setStyleBak||(o().Map.prototype.setStyleBak=o().Map.prototype.setStyle,o().Map.prototype.setStyle=function(e,t){var r=this;return this.setStyleBak(e,t),this.style&&this.style.once("style.load",function(){e.layers.filter(function(e){return e.symbol}).forEach(function(e){r.setSymbol(e.id,e.symbol)})}),this}),o().Map.prototype.loadSymbol=(n=lk(ak().m(function e(t,n){var o,i,a,s,u,l,c=this;return ak().w(function(e){for(;;)switch(e.n){case 0:if("string"!=typeof t){e.n=2;break}return e.n=1,r(t,this);case 1:o=e.v,i=null,o||(i="Symbol ".concat(t," is not exists")),n(i,o),e.n=5;break;case 2:if(!B.isArray(t)){e.n=4;break}return a=t.map(function(e){return r(e,c)}),e.n=3,Promise.all(a);case 3:s=e.v,u=null,(l=t.filter(function(e,t){return!s[t]})).length>0&&(u="Symbol ".concat(l.join(",")," is not exists")),n(u,s),e.n=5;break;case 4:n({message:"Symbol id must be a string or string[]."});case 5:return e.a(2)}},e,this)})),function(e,t){return n.apply(this,arguments)}),o().Map.prototype.addSymbol=function(t,r){e(this).addSymbol(t,r)},o().Map.prototype.getSymbol=function(t){return e(this).getSymbol(t)},o().Map.prototype.hasSymbol=function(e){return e?!!this.getSymbol(e):(this.fire("error",{error:new Error("Missing required symbol id")}),!1)},o().Map.prototype.removeSymbol=function(t){e(this).removeSymbol(t)},o().Map.prototype.updateSymbol=function(t,r){e(this).updateSymbol(t,r)},o().Map.prototype.setSymbolProperty=function(t,r,n,o){e(this).setSymbolProperty(t,r,n,o)},o().Map.prototype.getSymbolProperty=function(t,r,n){return e(this).getSymbolProperty(t,r,n)},o().Map.prototype.getStyle=function(){if(this.style)return e(this).getStyle()},o().Map.prototype.setFilter=function(t,r,n){return this.style.getLayer(t)?(this.style.setFilter(t,r,n),this._update(!0)):(e(this).setFilter(t,r,n),this._update(!0))},o().Map.prototype.getFilter=function(t){return this.style.getLayer(t)?this.style.getFilter(t):e(this).getFilter(t)},o().Map.prototype.setLayerZoomRange=function(t,r,n){return this.style.getLayer(t)?(this.style.setLayerZoomRange(t,r,n),this._update(!0)):(e(this).setLayerZoomRange(t,r,n),this._update(!0))},o().Map.prototype.setPaintProperty=function(t,r,n,o){return this.style.getLayer(t)?(this.style.setPaintProperty(t,r,n,o),this._update(!0)):(e(this).setPaintProperty(t,r,n,o),this._update(!0))},o().Map.prototype.getPaintProperty=function(t,r){return this.style.getLayer(t)?this.style.getPaintProperty(t,r):e(this).getPaintProperty(t,r)},o().Map.prototype.getLayoutProperty=function(t,r){return this.style.getLayer(t)?this.style.getLayoutProperty(t,r):e(this).getLayoutProperty(t,r)},void 0===o().Map.prototype.onBak&&(o().Map.prototype.onBak=o().Map.prototype.on,o().Map.prototype.on=function(t,r,n){var o=this;return void 0===n||this.style.getLayer(r)?this.onBak(t,r,n):(e(this).getLayerIds(r).forEach(function(e){return o.onBak(t,e,n)}),this)}),void 0===o().Map.prototype.onceBak&&(o().Map.prototype.onceBak=o().Map.prototype.once,o().Map.prototype.once=function(t,r,n){var o=this;return void 0===n||this.style.getLayer(r)?this.onceBak(t,r,n):(e(this).getLayerIds(r).forEach(function(e){return o.onceBak(t,e,n)}),this)}),void 0===o().Map.prototype.offBak&&(o().Map.prototype.offBak=o().Map.prototype.off,o().Map.prototype.off=function(t,r,n){var o=this;return void 0===n||this.style.getLayer(r)?this.offBak(t,r,n):(e(this).getLayerIds(r).forEach(function(e){return o.offBak(t,e,n)}),this)});var n};function fk(e){"@babel/helpers - typeof";return(fk="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function pk(e,t){for(var r=0;r0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.defaultStyle&&(a.defaultStyle.destroy(),a.defaultStyle=null)}},{key:"toServerJSONObject",value:function(){var e={};if((e=B.copyAttributes(e,this)).defaultStyle&&e.defaultStyle.toServerJSONObject&&(e.defaultStyle=e.defaultStyle.toServerJSONObject()),e.items){for(var t=[],r=e.items.length,n=0;n0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.rangeExpression=null,a.rangeMode=null,a.rangeParameter=null,a.colorGradientType=null}}],o=[{key:"fromObj",value:function(e){if(e){var r=new t;B.copy(r,e);var n=e.items,o=n?n.length:0;r.items=[];for(var i=0;i0?e[0].subLayers.layers:null)?r.length:0,this.handleLayers(n,r),{result:e[0],options:t}}},{key:"handleLayers",value:function(e,t){var r;if(e)for(var n=0;n0)this.handleLayers(t[n].subLayers.layers.length,t[n].subLayers.layers);else switch(t[n].ugcLayerType){case"THEME":(r=new pB).fromJson(t[n]),t[n]=r;break;case"GRID":(r=new _B).fromJson(t[n]),t[n]=r;break;case"IMAGE":(r=new BB).fromJson(t[n]),t[n]=r;break;case"VECTOR":(r=new zB).fromJson(t[n]),t[n]=r}}}}])&&qB(r.prototype,n),o&&qB(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function ZB(e){"@babel/helpers - typeof";return(ZB="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $B(e,t){for(var r=0;r0&&(n+='"subLayers":'+e.toJSON()),n+=',"visible":true,',n+='"name":"'+this.getMapName(this.mapUrl)+'"',n+="}]",r.request({method:"PUT",data:n,scope:r,success:t,failure:t})}}},{key:"createTempLayerComplete",value:function(e,t){return t=t.result?t.result:t,(t=B.transformResult(t)).succeed&&(this.lastparams.resourceID=t.newResourceID),this.processAsync(this.lastparams,e)}},{key:"getMapName",value:function(e){var t=e;"/"===t.charAt(t.length-1)&&(t=t.substr(0,t.length-1));var r=t.lastIndexOf("/");return t.substring(r+1,t.length)}},{key:"transformResult",value:function(e,t){return null!=(e=B.transformResult(e))&&null!=this.lastparams&&null!=this.lastparams.resourceID&&(e.newResourceID=this.lastparams.resourceID),{result:e,options:t}}}])&&IN(r.prototype,n),o&&IN(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function BN(e){"@babel/helpers - typeof";return(BN="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function NN(e,t){for(var r=0;r=0&&n.toIndex>=0&&!o&&(n.url=B.urlAppend(n.url,"fromIndex=".concat(n.fromIndex,"&toIndex=").concat(n.toIndex))),n.returnContent&&(e.returnCountOnly||e.returnDatasetInfoOnly||e.returnFeaturesOnly||console.warn("recommend set returnFeaturesOnly config to true to imporve performance. if need get Total amount and Dataset information. FeatureService provide getFeaturesCount and getFeaturesDatasetInfo method"),e.returnCountOnly&&(n.url=B.urlAppend(n.url,"returnCountOnly="+e.returnCountOnly)),e.returnDatasetInfoOnly&&(n.url=B.urlAppend(n.url,"returnDatasetInfoOnly="+e.returnDatasetInfoOnly)),e.returnFeaturesOnly&&(n.url=B.urlAppend(n.url,"returnFeaturesOnly="+e.returnFeaturesOnly))),n.preferServer&&n.format===cn.GEOJSON&&(n.url=B.handleUrlSuffix(n.url,".geojson"),n.withoutFormatSuffix=!0),r=n.getJsonParameters(e),n.request({method:"POST",data:r,scope:n,success:t,failure:t})}}},{key:"transformResult",value:function(e,t){e=B.transformResult(e);var r=new fo;if(this.preferServer&&this.format===cn.GEOJSON){var n=e.succeed;return delete e.succeed,{result:{succeed:n,features:e},options:t}}(this.format===cn.GEOJSON&&e.features&&(e.features=r.toGeoJSON(e.features)),this.returnFeaturesOnly&&Array.isArray(e))&&(e={succeed:e.succeed,features:r.toGeoJSON(e)});return{result:e,options:t}}},{key:"dataFormat",value:function(){return[cn.GEOJSON,cn.ISERVER,cn.FGB]}}])&&XN(r.prototype,n),o&&XN(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function oR(e){"@babel/helpers - typeof";return(oR="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function iR(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}}}],o=[{key:"toJsonParameters",value:function(e){var t,r;return t={datasetNames:e.datasetNames,getFeatureMode:"ID",ids:e.IDs},e.fields&&((r=new sR).name=e.datasetNames,r.fields=e.fields,t.queryParameter=r),e.targetEpsgCode&&(t.targetEpsgCode=e.targetEpsgCode),"boolean"==typeof e.hasGeometry&&(t.hasGeometry=e.hasGeometry),!e.targetEpsgCode&&e.targetPrj&&(t.targetPrj=e.targetPrj),e.aggregations&&(t.aggregations=e.aggregations),B.toJSON(t)}}],n&&hR(r.prototype,n),o&&hR(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function AR(e){"@babel/helpers - typeof";return(AR="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wR(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}a.attributeFilter=null,a.spatialQueryMode=null,a.getFeatureMode=null}}],o=[{key:"toJsonParameters",value:function(e){var r,n,o;return n={leftBottom:{x:e.bounds.left,y:e.bounds.bottom},rightTop:{x:e.bounds.right,y:e.bounds.top}},o={datasetNames:e.datasetNames,getFeatureMode:t.getFeatureMode.BOUNDS,bounds:n,spatialQueryMode:e.spatialQueryMode},e.fields&&((r=new sR).name=e.datasetNames,r.fields=e.fields,o.queryParameter=r),e.attributeFilter&&(o.attributeFilter=e.attributeFilter,o.getFeatureMode=t.getFeatureMode.BOUNDS_ATTRIBUTEFILTER),e.maxFeatures&&!isNaN(e.maxFeatures)&&(o.maxFeatures=e.maxFeatures),"boolean"==typeof e.hasGeometry&&(o.hasGeometry=e.hasGeometry),e.targetEpsgCode&&(o.targetEpsgCode=e.targetEpsgCode),!e.targetEpsgCode&&e.targetPrj&&(o.targetPrj=e.targetPrj),e.aggregations&&(o.aggregations=e.aggregations),B.toJSON(o)}}],n&&qR(r.prototype,n),o&&qR(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function ZR(e){"@babel/helpers - typeof";return(ZR="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $R(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}a.geometry&&(a.geometry.destroy(),a.geometry=null)}}],o=[{key:"toJsonParameters",value:function(e){var t,r,n;return n=ro.fromGeometry(e.geometry),r={datasetNames:e.datasetNames,getFeatureMode:"BUFFER",bufferDistance:e.bufferDistance,geometry:n},e.fields&&((t=new sR).name=e.datasetNames,t.fields=e.fields,r.queryParameter=t),e.attributeFilter&&(r.attributeFilter=e.attributeFilter,r.getFeatureMode="BUFFER_ATTRIBUTEFILTER"),e.maxFeatures&&!isNaN(e.maxFeatures)&&(r.maxFeatures=e.maxFeatures),"boolean"==typeof e.hasGeometry&&(r.hasGeometry=e.hasGeometry),e.targetEpsgCode&&(r.targetEpsgCode=e.targetEpsgCode),!e.targetEpsgCode&&e.targetPrj&&(r.targetPrj=e.targetPrj),B.toJSON(r)}}],n&&sL(r.prototype,n),o&&sL(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function yL(e){"@babel/helpers - typeof";return(yL="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function dL(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}a.attributeFilter=null,a.spatialQueryMode=null,a.getFeatureMode=null,a.orderBy=null}}],o=[{key:"toJsonParameters",value:function(e){var t,r,n;return r=ro.fromGeometry(e.geometry),n={datasetNames:e.datasetNames,getFeatureMode:"SPATIAL",geometry:r,spatialQueryMode:e.spatialQueryMode},(e.fields||e.orderBy)&&((t=new sR).name=e.datasetNames,e.fields&&(t.fields=e.fields),e.orderBy&&(t.orderBy=e.orderBy),n.queryParameter=t),e.attributeFilter&&(n.attributeFilter=e.attributeFilter,n.getFeatureMode="SPATIAL_ATTRIBUTEFILTER"),e.maxFeatures&&!isNaN(e.maxFeatures)&&(n.maxFeatures=e.maxFeatures),"boolean"==typeof e.hasGeometry&&(n.hasGeometry=e.hasGeometry),e.targetEpsgCode&&(n.targetEpsgCode=e.targetEpsgCode),!e.targetEpsgCode&&e.targetPrj&&(n.targetPrj=e.targetPrj),e.aggregations&&(n.aggregations=e.aggregations),B.toJSON(n)}}],n&&CL(r.prototype,n),o&&CL(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function kL(e){"@babel/helpers - typeof";return(kL="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function TL(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return CD(e);throw new Error("coord must be GeoJSON Point or an Array of numbers")}function ID(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=OD(e),o=OD(t),i=VC(o[1]-n[1]),a=VC(o[0]-n[0]),s=VC(n[1]),u=VC(o[1]),l=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(a/2),2)*Math.cos(s)*Math.cos(u);return qC(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),r.units)}function xD(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return PD(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(PD(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,PD(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,PD(f,"constructor",l),PD(l,"constructor",u),u.displayName="GeneratorFunction",PD(l,o,"GeneratorFunction"),PD(f),PD(f,o,"Generator"),PD(f,n,function(){return this}),PD(f,"toString",function(){return"[object Generator]"}),(xD=function(){return{w:i,m:p}})()}function PD(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(PD=function(e,t,r,n){function i(t,r){PD(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function kD(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||RD(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function TD(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function jD(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function MD(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r=c)&&(!f||t<=f)})),{features:a,stationFeature:r}})})})}},{key:"getWLTimeRange",value:function(e,t){var r=this;if("string"!=typeof r.dataUrl)return console.error("dataUrl is required"),null;var n=new SD(r.dataUrl,{proxy:r.options.proxy,withCredentials:r.options.withCredentials,crossOrigin:r.options.crossOrigin,headers:r.options.headers}),o=e.dataset,i=e.dataSource,a=e.timeDataset,s=e.idKey,u=new NR({queryParameter:{name:o+"@"+i},datasetNames:[i+":"+o],returnFeaturesOnly:!0,fromIndex:0,toIndex:1,expectCount:-1});return n.getFeaturesBySQL(u).then(function(e){var r=e.result.features.features[0].properties[s],o=new NR({queryParameter:{name:a+"@"+i,attributeFilter:s+" = '"+r+"'",orderBy:"TIMEPOINT"},datasetNames:[i+":"+a],toIndex:-1,expectCount:-1});return n.getFeaturesBySQL(o,t).then(function(e){return e})}).catch(function(e){throw e})}},{key:"findNearestPointNew",value:function(){var e,t=(e=xD().m(function e(t,r){var n,o,i,a,s,u,l,c;return xD().w(function(e){for(;;)switch(e.n){case 0:if(n=kD(t,2),o=n[0],i=n[1],!(o<-180||o>180||i<-90||i>90)){e.n=1;break}return e.a(2);case 1:return a=new st([o,i]),s=new hL({datasetNames:r,bufferDistance:.03,geometry:a}),e.n=2,new SD(this.dataUrl).getFeaturesByBuffer(s);case 2:if(!((u=e.v).result.features.features.length>0)){e.n=3;break}return l=null,c=1/0,u.result.features.features.forEach(function(e){var r=ID(t,e.geometry.coordinates);r=0){var t=JSON.parse(e.data);return e.filterParam=t,e.eventType="setFilterParamSucceeded",void this.events.triggerEvent("setFilterParamSucceeded",e)}var r=JSON.parse(e.data);e.featureResult=r,e.eventType="messageSucceeded",this.events.triggerEvent("messageSucceeded",e)}},{key:"_connect",value:function(e){return e=$w.appendCredential(e),"WebSocket"in window?new WebSocket(e):"MozWebSocket"in window?new(0,window.MozWebSocket)(e):(console.log("no WebSocket"),null)}}])&&WD(r.prototype,n),o&&WD(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function rF(e){"@babel/helpers - typeof";return(rF="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function nF(e,t){for(var r=0;r=200&&e.code<300||0==e.code||304===e.code,n=e.code&&r;return!e.code||n?{result:e,options:t}:{error:e,options:t}}}])&&vG(r.prototype,n),o&&vG(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function _G(e){"@babel/helpers - typeof";return(_G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function OG(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}}])&&DU(r.prototype,n),o&&DU(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function qU(e){"@babel/helpers - typeof";return(qU="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function VU(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.facilityPathList)return e;var t=new fo;return e.facilityPathList.map(function(e){return e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures)),e}),e}}])&&jz(r.prototype,n),o&&jz(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Fz(e){"@babel/helpers - typeof";return(Fz="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qz(e,t){for(var r=0;r0&&(t+=","),t+=B.toJSON(e[n]);return t+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e)return null;var t=new fo;return e.demandResults&&(e.demandResults=t.toGeoJSON(e.demandResults)),e.supplyResults&&(e.supplyResults=t.toGeoJSON(e.supplyResults)),e}}])&&Hz(r.prototype,n),o&&Hz(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Xz(e){"@babel/helpers - typeof";return(Xz="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Zz(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.pathList)return null;var t=new fo;return e.pathList.map(function(e){return e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures)),e}),e}}])&&rH(r.prototype,n),o&&rH(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function lH(e){"@babel/helpers - typeof";return(lH="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cH(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.pathList||e.pathList.length<1)return null;var t=new fo;return e.pathList.forEach(function(e){e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures))}),e}}])&&yH(r.prototype,n),o&&yH(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function wH(e){"@babel/helpers - typeof";return(wH="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function SH(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.serviceAreaList)return e;var t=new fo;return e.serviceAreaList.map(function(e){return e.serviceRegion&&(e.serviceRegion=t.toGeoJSON(e.serviceRegion)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures)),e.routes&&(e.routes=t.toGeoJSON(e.routes)),e}),e}}])&&OH(r.prototype,n),o&&OH(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function MH(e){"@babel/helpers - typeof";return(MH="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function BH(e,t){for(var r=0;r0&&(t+=","),t+='{"x":'+o[r].x+',"y":'+o[r].y+"}";i+=t+="]"}else if(!0===e.isAnalyzeById){for(var a="[",s=e.nodes,u=s.length,l=0;l0&&(a+=","),a+=s[l];i+=a+="]"}return i}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.tspPathList)return null;var t=new fo;return e.tspPathList.forEach(function(e){e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures))}),e}}])&&DH(r.prototype,n),o&&DH(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function qH(e){"@babel/helpers - typeof";return(qH="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function VH(e,t){for(var r=0;r0)for(var t in e.items)e.items[t].destroy(),e.items[t]=null;e.items=null}e.numericPrecision=null,e.rangeMode=null,e.rangeCount=null,e.colorGradientType=null}}])&&PK(e.prototype,t),r&&PK(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function jK(e){"@babel/helpers - typeof";return(jK="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function MK(e,t){for(var r=0;r=0;a--)this.points[a].destroy();this.points=null}}}],o=[{key:"toObject",value:function(e,t){for(var r in e)"clipRegion"===r?t.clipRegion=ro.fromGeometry(e.clipRegion):t[r]=e[r]}}],n&&r3(r.prototype,n),o&&r3(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function l3(e){"@babel/helpers - typeof";return(l3="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c3(e,t){for(var r=0;r0&&(1===o.length?r+="'displayFilter':\""+o[0]+'",':r+="'displayFilter':\""+o[a]+'",'),(i=e.displayOrderBy)&&i.length>0&&(1===i.length?r+="'displayOrderBy':'"+i[0]+"',":r+="'displayOrderBy':'"+i[a]+"',"),(t=e.fieldValuesDisplayFilter)&&(r+="'fieldValuesDisplayFilter':"+B.toJSON(t)+","),e.joinItems&&e.joinItems.length>0&&e.joinItems[a]&&(r+="'joinItems':["+B.toJSON(e.joinItems[a])+"],"),e.datasetNames&&e.dataSourceNames){var u=e.datasetNames[a]?a:e.datasetNames.length-1,l=e.dataSourceNames[a]?a:e.dataSourceNames.length-1;r+="'datasetInfo': {'name': '"+e.datasetNames[u]+"','dataSourceName': '"+e.dataSourceNames[l]+"'}},"}else r+="},"}e.themes&&e.themes.length>0&&(r=r.substring(0,r.length-1)),r+="]},";var c=this.url.split("/");return r+="'name': '"+c[c.length-2]+"'}]"}}])&&C4(r.prototype,n),o&&C4(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function k4(e){"@babel/helpers - typeof";return(k4="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function T4(e,t){for(var r=0;r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(j5(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,j5(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,j5(f,"constructor",l),j5(l,"constructor",u),u.displayName="GeneratorFunction",j5(l,o,"GeneratorFunction"),j5(f),j5(f,o,"Generator"),j5(f,n,function(){return this}),j5(f,"toString",function(){return"[object Generator]"}),(T5=function(){return{w:i,m:p}})()}function j5(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(j5=function(e,t,r,n){function i(t,r){j5(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function M5(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function B5(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){M5(i,n,o,a,s,"next",e)}function s(e){M5(i,n,o,a,s,"throw",e)}a(void 0)})}}function N5(e,t){for(var r=0;r0&&o.push(","),r=t[i].geometry,o.push(this.extractGeometry(r));return n&&o.push(")"),o.join("")}},{key:"extractGeometry",value:function(e){var t=e.CLASS_NAME.split(".")[2].toLowerCase();return this.extract[t]?("collection"===t?"GEOMETRYCOLLECTION":t.toUpperCase())+"("+this.extract[t].apply(this,[e])+")":null}}])&&k6(r.prototype,n),o&&k6(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function R6(e){"@babel/helpers - typeof";return(R6="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function L6(e,t){for(var r=0;r=0?t.speed:1,this.frequency=t.speed&&t.frequency>=0?t.frequency:1e3,this.startTime=t.startTime&&null!=t.startTime?t.startTime:0,this.endTime=t.endTime&&null!=t.endTime&&t.endTime>=r.startTime?t.endTime:+new Date,this.repeat=void 0===t.repeat||t.repeat,this.reverse=void 0!==t.reverse&&t.reverse,this.currentTime=null,this.oldTime=null,this.running=!1,this.EVENT_TYPES=["start","pause","stop"],r.events=new Na(this,null,this.EVENT_TYPES),r.speed=Number(r.speed),r.frequency=Number(r.frequency),r.startTime=Number(r.startTime),r.endTime=Number(r.endTime),r.startTime=Date.parse(new Date(r.startTime)),r.endTime=Date.parse(new Date(r.endTime)),r.currentTime=r.startTime,this.CLASS_NAME="SuperMap.TimeControlBase"},(t=[{key:"updateOptions",value:function(e){var t=this;(e=e||{}).speed&&e.speed>=0&&(t.speed=e.speed,t.speed=Number(t.speed)),e.speed&&e.frequency>=0&&(t.frequency=e.frequency,t.frequency=Number(t.frequency)),e.startTime&&null!=e.startTime&&(t.startTime=e.startTime,t.startTime=Date.parse(new Date(t.startTime))),e.endTime&&null!=e.endTime&&e.endTime>=t.startTime&&(t.endTime=e.endTime,t.endTime=Date.parse(new Date(t.endTime))),null!=e.repeat&&(t.repeat=e.repeat),null!=e.reverse&&(t.reverse=e.reverse)}},{key:"start",value:function(){var e=this;e.running||(e.running=!0,e.tick(),e.events.triggerEvent("start",e.currentTime))}},{key:"pause",value:function(){this.running=!1,this.events.triggerEvent("pause",this.currentTime)}},{key:"stop",value:function(){var e=this;e.currentTime=e.startTime,e.running&&(e.running=!1),e.events.triggerEvent("stop",e.currentTime)}},{key:"toggle",value:function(){this.running?this.pause():this.start()}},{key:"setSpeed",value:function(e){return e>=0&&(this.speed=e,!0)}},{key:"getSpeed",value:function(){return this.speed}},{key:"setFrequency",value:function(e){return e>=0&&(this.frequency=e,!0)}},{key:"getFrequency",value:function(){return this.frequency}},{key:"setStartTime",value:function(e){var t=this;return!((e=Date.parse(new Date(e)))>t.endTime)&&(t.startTime=e,t.currentTime=t.endTime&&(t.currentTime=t.startTime,t.tick()),!0)}},{key:"getEndTime",value:function(){return this.endTime}},{key:"setCurrentTime",value:function(e){var t=this;return t.currentTime=Date.parse(new Date(t.currentTime)),e>=t.startTime&&e<=t.endTime&&(t.currentTime=e,t.startTime=t.currentTime,t.tick(),!0)}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"setRepeat",value:function(e){this.repeat=e}},{key:"getRepeat",value:function(){return this.repeat}},{key:"setReverse",value:function(e){this.reverse=e}},{key:"getReverse",value:function(){return this.reverse}},{key:"getRunning",value:function(){return this.running}},{key:"destroy",value:function(){var e=this;e.speed=null,e.frequency=null,e.startTime=null,e.endTime=null,e.currentTime=null,e.repeat=null,e.running=!1,e.reverse=null}},{key:"tick",value:function(){}}])&&L6(e.prototype,t),r&&L6(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Q6(e){"@babel/helpers - typeof";return(Q6="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function U6(e,t){for(var r=0;r=e.endTime&&(e.currentTime=e.endTime)}}}])&&U6(r.prototype,n),o&&U6(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function W6(e){"@babel/helpers - typeof";return(W6="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function X6(e,t){for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:{headers:this.headers,crossOrigin:this.crossOrigin,withCredentials:this.withCredentials};return t=$w.appendCredential(t),H.commit(e,t,r,n).then(function(e){return e.json()})}}])&&p8(e.prototype,t),r&&p8(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function d8(e){"@babel/helpers - typeof";return(d8="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function m8(e,t){for(var r=0;r0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.reverseColor=null,a.rangeMode=null,a.rangeParameter=null,a.colorGradientType=null}}],o=[{key:"fromObj",value:function(e){if(e){var r=new t;B.copy(r,e);var n=e.items,o=n?n.length:0;r.items=[];for(var i=0;i0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.defaultcolor&&(a.defaultcolor.destroy(),a.defaultcolor=null)}},{key:"toServerJSONObject",value:function(){var e={};if((e=B.copyAttributes(e,this)).defaultcolor&&e.defaultcolor.toServerJSONObject&&(e.defaultcolor=e.defaultcolor.toServerJSONObject()),e.items){for(var t=[],r=e.items.length,n=0;n0&&(e=e.substring(0,e.length-1)),"{"+e+"}"}return null}}])&&Ete(e.prototype,t),r&&Ete(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Ite(e){"@babel/helpers - typeof";return(Ite="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function xte(e,t){for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:{};return t=$w.appendCredential(t),n.crossOrigin=this.options.crossOrigin,n.headers=this.options.headers,H.commit(e,t,r,n).then(function(e){return e.json()})}}])&&xne(e.prototype,t),r&&xne(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Tne(e){"@babel/helpers - typeof";return(Tne="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function jne(e,t){for(var r=0;r=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var yoe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,doe=function(e){return yoe.exec(e).slice(1)};function moe(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:"/";if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(e=n+"/"+e,t="/"===n.charAt(0))}return(t?"/":"")+(e=hoe(_oe(e.split("/"),function(e){return!!e}),!t).join("/"))||"."}function goe(e){var t=voe(e),r="/"===Ooe(e,-1);return(e=hoe(_oe(e.split("/"),function(e){return!!e}),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function voe(e){return"/"===e.charAt(0)}function boe(){return goe(_oe(Array.prototype.slice.call(arguments,0),function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))}function Aoe(e,t){function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=moe(e).substr(1),t=moe(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),e.exports=t,process.on("uncaughtException",function(e){if(!("unwind"===e||e instanceof P||e.context instanceof P))throw e}),t.inspect=function(){return"[Emscripten Module object]"}}else(i||a)&&(a?u=self.location.href:"undefined"!=typeof document&&document.currentScript&&(u=document.currentScript.src),u=0!==u.indexOf("blob:")?u.substr(0,u.replace(/[?#].*/,"").lastIndexOf("/")+1):"",r=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},a&&(n=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}));t.print||console.log.bind(console);var f,p,h=t.printErr||console.error.bind(console);Object.assign(t,o),o=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram,t.quit&&t.quit,t.wasmBinary&&(f=t.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":soe(WebAssembly))&&S("no native wasm support detected");var y,d=!1;function m(){var e=p.buffer;t.HEAP8=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAPU8=y=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAP32=new Int32Array(e),t.HEAPU32=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}var g=[],v=[],b=[],A=0,w=null;function S(e){throw t.onAbort&&t.onAbort(e),h(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(e)}var C,E,_="data:application/octet-stream;base64,",O=function(e){return e.startsWith(_)},I=function(e){return e.startsWith("file://")};function x(e){return Promise.resolve().then(function(){return function(e){if(e==C&&f)return new Uint8Array(f);var t=function(e){if(O(e))return function(e){if(void 0!==s&&s){var t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.length)}for(var r=atob(e),n=new Uint8Array(r.length),o=0;o0;)e.shift()(t)};t.noExitRuntime;var T,j=function(e){var t=(e-p.buffer.byteLength+65535)/65536;try{return p.grow(t),m(),1}catch(e){}},M={b:function(){S("")},a:function(e){var t=y.length,r=2147483648;if((e>>>=0)>r)return!1;for(var n,o,i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(r,(n=Math.max(e,a))+((o=65536)-n%o)%o);if(j(s))return!0}return!1}},B=function(){var e={a:M};function r(e,r){var n;return B=e.exports,p=B.c,m(),n=B.d,v.unshift(n),function(e){if(A--,t.monitorRunDependencies&&t.monitorRunDependencies(A),0==A&&w){var r=w;w=null,r()}}(),B}if(A++,t.monitorRunDependencies&&t.monitorRunDependencies(A),t.instantiateWasm)try{return t.instantiateWasm(e,r)}catch(e){return h("Module.instantiateWasm callback failed with error: ".concat(e)),!1}return function(e,t,r,n){(function(e,t,r){x(e).then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(r,function(e){h("failed to asynchronously prepare wasm: ".concat(e)),S(e)})})(t,r,n)}(0,C,e,function(e){r(e.instance)}),{}}();function N(){function e(){T||(T=!0,t.calledRun=!0,d||(k(v),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)e=t.postRun.shift(),b.unshift(e);var e;k(b)}()))}A>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)e=t.preRun.shift(),g.unshift(e);var e;k(g)}(),A>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}if(t._UGCWasm_CipherAES_New=function(e,r,n){return(t._UGCWasm_CipherAES_New=B.e)(e,r,n)},t._UGCWasm_CipherAES_Encrypt=function(e,r,n){return(t._UGCWasm_CipherAES_Encrypt=B.f)(e,r,n)},t._UGCWasm_CipherAES_Decrypt=function(e,r,n){return(t._UGCWasm_CipherAES_Decrypt=B.g)(e,r,n)},t._malloc=function(e){return(t._malloc=B.i)(e)},t._free=function(e){return(t._free=B.j)(e)},w=function e(){T||N(),T||(w=e)},t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return N(),t}();e.exports=r}(foe);var xoe=loe(foe.exports);function Poe(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:256;return e.byteLength<=t?e:e.subarray(0,t)}(n,t.decodeSize),i=e.Module;if(t.decrypt)r=Poe(t.decrypt({key:t.key,bytes:o}),n);else{var a=function(e){var t;return Toe[e]?t=Toe[e]:(t=function(e){return function(e){try{for(var t=atob(e),r=t.length,n=Math.ceil(r/32),o=new Array(n),i=0;i1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),e.exports=t,process.on("uncaughtException",function(e){if(!("unwind"===e||e instanceof P||e.context instanceof P))throw e}),t.inspect=function(){return"[Emscripten Module object]"}}else(i||a)&&(a?u=self.location.href:"undefined"!=typeof document&&document.currentScript&&(u=document.currentScript.src),u=0!==u.indexOf("blob:")?u.substr(0,u.replace(/[?#].*/,"").lastIndexOf("/")+1):"",r=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},a&&(n=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}));t.print||console.log.bind(console);var f,p,h=t.printErr||console.error.bind(console);Object.assign(t,o),o=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram,t.quit&&t.quit,t.wasmBinary&&(f=t.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":soe(WebAssembly))&&S("no native wasm support detected");var y,d=!1;function m(){var e=p.buffer;t.HEAP8=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAPU8=y=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAP32=new Int32Array(e),t.HEAPU32=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}var g=[],v=[],b=[],A=0,w=null;function S(e){throw t.onAbort&&t.onAbort(e),h(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(e)}var C,E,_="data:application/octet-stream;base64,",O=function(e){return e.startsWith(_)},I=function(e){return e.startsWith("file://")};function x(e,t,r){return function(e){return Promise.resolve().then(function(){return function(e){if(e==C&&f)return new Uint8Array(f);var t=function(e){if(O(e))return function(e){if(void 0!==s&&s){var t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.length)}for(var r=atob(e),n=new Uint8Array(r.length),o=0;o0;)e.shift()(t)};t.noExitRuntime;var T,j=function(e){var t=(e-p.buffer.byteLength+65535)/65536;try{return p.grow(t),m(),1}catch(e){}},M={a:function(){S("")},c:function(e,t,r){return y.copyWithin(e,t,t+r)},b:function(e){var t=y.length,r=2147483648;if((e>>>=0)>r)return!1;for(var n,o,i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(r,(n=Math.max(e,a))+((o=65536)-n%o)%o);if(j(s))return!0}return!1}},B=function(){var e={a:M};function r(e,r){var n;return B=e.exports,p=B.d,m(),n=B.e,v.unshift(n),function(e){if(A--,t.monitorRunDependencies&&t.monitorRunDependencies(A),0==A&&w){var r=w;w=null,r()}}(),B}if(A++,t.monitorRunDependencies&&t.monitorRunDependencies(A),t.instantiateWasm)try{return t.instantiateWasm(e,r)}catch(e){return h("Module.instantiateWasm callback failed with error: ".concat(e)),!1}return x(C,e,function(e){r(e.instance)}),{}}();function N(){function e(){T||(T=!0,t.calledRun=!0,d||(k(v),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)e=t.postRun.shift(),b.unshift(e);var e;k(b)}()))}A>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)e=t.preRun.shift(),g.unshift(e);var e;k(g)}(),A>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}if(t._UGCWasm_CipherSM4_New=function(e,r,n){return(t._UGCWasm_CipherSM4_New=B.f)(e,r,n)},t._UGCWasm_CipherSM4_Encrypt=function(e,r,n){return(t._UGCWasm_CipherSM4_Encrypt=B.g)(e,r,n)},t._UGCWasm_CipherSM4_Decrypt=function(e,r,n){return(t._UGCWasm_CipherSM4_Decrypt=B.h)(e,r,n)},t._UGCWasm_CipherSM4_Delete=function(e){return(t._UGCWasm_CipherSM4_Delete=B.i)(e)},t._malloc=function(e){return(t._malloc=B.k)(e)},t._free=function(e){return(t._free=B.l)(e)},w=function e(){T||N(),T||(w=e)},t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return N(),t}();e.exports=r}(joe);var Moe=loe(joe.exports);function Boe(e){"@babel/helpers - typeof";return(Boe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Noe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Roe(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=Boe(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=Boe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Boe(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Loe(e){return function(e){if(Array.isArray(e))return Doe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Doe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Doe(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Doe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rt.geoFence.radius&&(t.outOfGeoFence&&t.outOfGeoFence(e),t.events.triggerEvent("outOfGeoFence",{data:e})),r})}},{key:"_distance",value:function(e,t,r,n){return Math.sqrt((e-r)*(e-r)+(t-n)*(t-n))}},{key:"_getMeterPerMapUnit",value:function(e){var t;return"meter"===e?t=1:"degree"===e&&(t=2*Math.PI*6378137/360),t}}])&&Qoe(e.prototype,t),r&&Qoe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function zoe(e){"@babel/helpers - typeof";return(zoe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hoe(e,t){for(var r=0;r=t)if("RANGE"===r)for(o=0;o=0&&this.getSqrtInterval(e,r):"logarithm"===t?this.getMin(e)>0&&this.getGeometricProgression(e,r):void 0}},{key:"getSum",value:function(e){return this.getInstance(e).sum()}},{key:"getMax",value:function(e){return this.getInstance(e).max()}},{key:"getMin",value:function(e){return this.getInstance(e).min()}},{key:"getMean",value:function(e){return this.getInstance(e).mean()}},{key:"getMedian",value:function(e){return this.getInstance(e).median()}},{key:"getTimes",value:function(e){return e.length}},{key:"getEqInterval",value:function(e,t){return this.getInstance(e).getClassEqInterval(t)}},{key:"getJenks",value:function(e,t){return this.getInstance(e).getClassJenks(t)}},{key:"getSqrtInterval",value:function(e,t){return e=e.map(function(e){return Math.sqrt(e)}),this.getInstance(e).getClassEqInterval(t).map(function(e){return e*e})}},{key:"getGeometricProgression",value:function(e,t){return this.getInstance(e).getClassGeometricProgression(t)}}],(t=null)&&Joe(e.prototype,t),r&&Joe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Zoe(e){if(!e)throw new Error("No GeoJSON coords provided");if(!e||0===e.length)return null;var t=e.length,r=new Float64Array(e.flat()),n=window.ugcModule._malloc(2*t*8);window.ugcModule.HEAPF64.set(r,n/8);var o=window.ugcModule._UGCWasm_Geometry_CreatePoint2DsFromBuffer(n,t);return window.ugcModule._free(n),o}function $oe(e){if(!e)throw new Error("No GeoJSON coords provided");if(!e||0===e.length)return null;var t=e.length,r=new Float64Array(e),n=window.ugcModule._malloc(8*t);window.ugcModule.HEAPF64.set(r,n/8);var o=window.ugcModule._UGCWasm_Helper_CreateDoubleArray(n,t);return window.ugcModule._free(n),o}function eie(e){var t=window.ugcModule._UGCWasm_Helper_GetDoubleArrayLength(e),r=window.ugcModule._malloc(8*t);window.ugcModule._UGCWasm_Helper_GetBufferFromDoubleArray(e,r);for(var n=new Float64Array(window.ugcModule.HEAPF64.buffer,r,t),o=[],i=0;i1)for(var i=1;i1)for(var l=1;l2&&void 0!==arguments[2]?arguments[2]:1e-6,n=rie(e),o=rie(t);return 1===this.module._UGCWasm_Geometrist_IsIdentical(n,o,r)}},{key:"hasIntersection",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e-6,n=rie(e),o=rie(t);return 1===this.module._UGCWasm_Geometrist_HasIntersection(n,o,r)}},{key:"hasTouch",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e-6,n=rie(e),o=rie(t);return 1===this.module._UGCWasm_Geometrist_HasTouch(n,o,r)}},{key:"resample",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-6,r=rie(e);return{type:"Feature",geometry:tie(this.module._UGCWasm_Geometrist_Resample(r,t))}}},{key:"isParallel",value:function(e,t,r,n,o,i,a,s){return 1===this.module._UGCWasm_Geometrist_IsParallel(e,t,r,n,o,i,a,s)}},{key:"computePerpendicularPosition",value:function(e,t,r,n,o,i){var a=this.module._UGCWasm_Helper_CreateDoubleArray(0,2);return this.module._UGCWasm_Geometrist_ComputePerpendicularPosition(e,t,r,n,o,i,a),a=eie(a)}},{key:"isPointOnLine",value:function(e,t,r,n,o,i){var a=arguments.length>6&&void 0!==arguments[6]&&arguments[6];return 1===this.module._UGCWasm_Geometrist_IsPointOnLine(e,t,r,n,o,i,a)}},{key:"isProjectOnLineSegment",value:function(e,t,r,n,o,i){return 1===this.module._UGCWasm_Geometrist_IsProjectOnLineSegment(e,t,r,n,o,i)}},{key:"distanceToLineSegment",value:function(e,t,r,n,o,i){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:mn.DEGREE,s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:mn.DEGREE,u=this.module._UGCWasm_Geometrist_DistanceToLineSegment(e,t,r,n,o,i);return s!==mn.DEGREE?u*df(a)/df(s):u}},{key:"nearestPointToVertex",value:function(e,t,r){if("LineString"!==pie(r))throw new Error("only feature type is LineString supported");var n=this.module._UGCWasm_Helper_CreateDoubleArray(0,2),o=rie(r);return this.module._UGCWasm_Geometrist_NearestPointToVertex(e,t,o,n),n=eie(n)}},{key:"computeConcaveHullPoints",value:function(e,t,r){if(!Array.isArray(t)){var n=nie(e);r=t,e=n.xList,t=n.yList}var o=$oe(e),i=$oe(t);return{type:"Feature",geometry:tie(this.module._UGCWasm_Geometrist_ComputeConcaveHullPoints(o,i,e.length,r))}}},{key:"isSegmentIntersect",value:function(e,t,r,n,o,i,a,s){return 1===this.module._UGCWasm_Geometrist_IsSegmentIntersect(e,t,r,n,o,i,a,s)}},{key:"isIntersectRegionWithRect",value:function(e,t,r,n,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1e-6,a=rie(e);return 0!==this.module._UGCWasm_Geometrist_isIntersectRegionWithRect(a,t,r,n,o,i)}},{key:"isOnSameSide",value:function(e,t,r,n,o,i,a,s){return 1===this.module._UGCWasm_Geometrist_IsOnSameSide(e,t,r,n,o,i,a,s)}},{key:"isRight",value:function(e,t,r,n,o,i){return 1===this.module._UGCWasm_Geometrist_IsRight(e,t,r,n,o,i)}},{key:"isLeft",value:function(e,t,r,n,o,i){return 1===this.module._UGCWasm_Geometrist_IsLeft(e,t,r,n,o,i)}},{key:"computeGeodesicArea",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Gn.SQUAREMETER;if(!function(e){if(e&&e.geometry&&e.geometry.type){var t=e.geometry.type;if("Point"===t)return mo(e.geometry.coordinates);if("LineString"===t)return mo(e.geometry.coordinates[0]);if("Polygon"===t||"MultiLineString"===t)return mo(e.geometry.coordinates[0][0])}}(e))throw new Error("coordinates is invalid latlng");if("Polygon"!==pie(e))throw new Error("only feature type is Polygon supported");var r=rie(e),n=this.module._UGCWasm_Geometry_NewUGPrjCoordSys(4326),o=this.module._UGCWasm_Geometrist_ComputeGeodesicArea(r,n);return t!==Gn.SQUAREMETER?o*mf[t]:o}},{key:"smooth",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;if("LineString"!==pie(e))throw new Error("only feature type is LineString supported");var r=rie(e);return{type:"Feature",geometry:tie(this.module._UGCWasm_Geometrist_Smooth(r,t))}}},{key:"computeGeodesicDistance",value:function(e,t,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:mn.METER;if(!Array.isArray(t)){var i=nie(e),a=i.xList,s=i.yList;o=n||mn.METER,n=r,r=t,e=a,t=s}if(!mo([e[0],t[0]]))throw new Error("coordinates is invalid latlng");var u=$oe(e),l=$oe(t),c=this.module._UGCWasm_Geometrist_ComputeGeodesicDistance(u,l,r,n);return o!==mn.METER?c/df(o):c}},{key:"computeParallel",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:mn.DEGREE,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:mn.DEGREE;if("LineString"!==pie(e))throw new Error("only feature type is LineString supported");n!==mn.DEGREE&&(t=t*df(n)/df(r));var o=rie(e);return{type:"Feature",geometry:tie(this.module._UGCWasm_Geometrist_ComputeParallel(o,t))}}},{key:"computeConvexHullPoints",value:function(e,t){if(!Array.isArray(t)){var r=nie(e);e=r.xList,t=r.yList}var n=$oe(e),o=$oe(t);return{type:"Feature",geometry:tie(this.module._UGCWasm_Geometrist_ComputeConvexHullPoints(n,o,e.length))}}}])&&aie(r.prototype,n),o&&aie(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function pie(e){return"Feature"===e.type&&null!==e.geometry?e.geometry.type:e.type}var hie=r(8518),yie=r.n(hie);function die(e){"@babel/helpers - typeof";return(die="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function mie(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function gie(e,t){for(var r=0;rl&&(u[o]=u[o].slice(n-l),l=n)}function d(e){var t,i,a,s;if(e instanceof Function)return e.call(c.parsers);if("string"==typeof e)t=r.charAt(n)===e?e:null,i=1,y();else{if(y(),!(t=e.exec(u[o])))return null;i=t[0].length}if(t){var f=n+=i;for(s=n+u[o].length-i;n=0&&"\n"!==n.charAt(a);a--)e.column++;return new Error([e.filename,e.line,e.column,e.message].join(";"))}return this.env=t=t||{},this.env.filename=this.env.filename||null,this.env.inputs=this.env.inputs||{},c={parse:function(i){var a,c=null;if(n=o=l=s=0,u=[],r=i.replace(/\r\n/g,"\n"),t.filename&&(f.env.inputs[t.filename]=r),u=function(e){for(var t,n,o,i,a=0,s=/(?:@\{[\w-]+\}|[^"'`\{\}\/\(\)\\])+/g,u=/\/\*(?:[^*]|\*+[^\/*])*\*+\/|\/\/.*/g,l=/"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'|`((?:[^`]|\\.)*)`/g,f=0,p=e[0],h=0;h0?"missing closing `}`":"missing opening `{`"}),e.map(function(e){return e.join("")})}([[]]),c)throw m(c);var p=function(e,t){var r=e.specificity,n=t.specificity;return r[0]!=n[0]?n[0]-r[0]:r[1]!=n[1]?n[1]-r[1]:r[2]!=n[2]?n[2]-r[2]:n[3]-r[3]};return(a=new e.Tree.Ruleset([],d(this.parsers.primary))).root=!0,a.toList=function(e){e.error=function(t){e.errors||(e.errors=new Error("")),e.errors.message?e.errors.message+="\n"+m(t).message:e.errors.message=m(t).message},e.frames=e.frames||[];var t=this.flatten([],[],e);return t.sort(p),t},a},parsers:{primary:function(){for(var e,t=[];(e=d(this.rule)||d(this.ruleset)||d(this.comment))||d(/^[\s\n]+/)||(e=d(this.invalid));)e&&t.push(e);return t},invalid:function(){var t=d(/^[^;\n]*[;\n]/);if(t)return new e.Tree.Invalid(t,a)},comment:function(){var t;if("/"===r.charAt(n))return"/"===r.charAt(n+1)?new e.Tree.Comment(d(/^\/\/.*/),!0):(t=d(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/))?new e.Tree.Comment(t):void 0},entities:{quoted:function(){if('"'===r.charAt(n)||"'"===r.charAt(n)){var t=d(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/);return t?new e.Tree.Quoted(t[1]||t[2]):void 0}},field:function(){if(d("[")){var t=d(/(^[^\]]+)/);if(d("]"))return t?new e.Tree.Field(t[1]):void 0}},comparison:function(){var e=d(/^=~|=|!=|<=|>=|<|>/);if(e)return e},keyword:function(){var t=d(/^[A-Za-z\u4e00-\u9fa5-]+[A-Za-z-0-9\u4e00-\u9fa5_]*/);if(t)return new e.Tree.Keyword(t)},call:function(){var t,r;if(t=/^([\w\-]+|%)\(/.exec(u[o])){if("url"===(t=t[1]))return null;n+=t.length;if(d("("),r=d(this.entities.arguments),d(")"))return t?new e.Tree.Call(t,r,n):void 0}},arguments:function(){for(var e,t=[];e=d(this.expression);){t.push(e);if(!d(","))break}return t},literal:function(){return d(this.entities.dimension)||d(this.entities.keywordcolor)||d(this.entities.hexcolor)||d(this.entities.quoted)},url:function(){var t;if("u"===r.charAt(n)&&d(/^url\(/)){t=d(this.entities.quoted)||d(this.entities.variable)||d(/^[\-\w%@_match\/.&=:;#+?~]+/)||"";return d(")")?new e.Tree.URL(void 0!==t.value||t instanceof e.Tree.Variable?t:new e.Tree.Quoted(t)):new e.Tree.Invalid(t,a,"Missing closing ) in URL.")}},variable:function(){var o,i=n;if("@"===r.charAt(n)&&(o=d(/^@[\w-]+/)))return new e.Tree.Variable(o,i,t.filename)},hexcolor:function(){var t;if("#"===r.charAt(n)&&(t=d(/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/)))return new e.Tree.Color(t[1])},keywordcolor:function(){var t=u[o].match(/^[a-z]+/);if(t&&t[0]in e.Tree.Reference.data.colors)return new e.Tree.Color(e.Tree.Reference.data.colors[d(/^[a-z]+/)])},dimension:function(){var t=r.charCodeAt(n);if(!(t>57||t<45||47===t)){var o=d(/^(-?\d*\.?\d+(?:[eE][-+]?\d+)?)(\%|\w+)?/);return o?new e.Tree.Dimension(o[1],o[2],a):void 0}}},variable:function(){var e;if("@"===r.charAt(n)&&(e=d(/^(@[\w-]+)\s*:/)))return e[1]},entity:function(){var e=d(this.entities.call)||d(this.entities.literal),t=d(this.entities.field)||d(this.entities.variable),r=d(this.entities.url)||d(this.entities.keyword);return e||t||r},end:function(){var e;return d(";")||("string"==typeof(e="}")?r.charAt(n)===e:!!e.test(u[o]))},element:function(){var t=d(/^(?:[.#][\w\u4e00-\u9fa5\-]+|\*|Map)/);if(t)return new e.Tree.Element(t)},attachment:function(){var e=d(/^::([\w\-]+(?:\/[\w\-]+)*)/);if(e)return e[1]},selector:function(){for(var t,o,i,s,u,l=[],c=new e.Tree.Filterset,f=[],p=0,h=0;(i=d(this.element))||(u=d(this.zoom))||(s=d(this.filter))||(t=d(this.attachment));){if(p++,i)l.push(i);else if(u)f.push(u),h++;else if(s){var y=c.add(s);if(y)throw m({message:y,index:n-1});h++}else{if(o)throw m({message:"Encountered second attachment name.",index:n-1});o=t}var g=r.charAt(n);if("{"===g||"}"===g||";"===g||","===g)break}if(p)return new e.Tree.Selector(c,f,l,o,h,a)},filter:function(){p();var r,n,o;if(d("[")&&(r=d(/^[a-zA-Z0-9\-_]+/)||d(this.entities.quoted)||d(this.entities.variable)||d(this.entities.keyword)||d(this.entities.field))&&(r instanceof e.Tree.Quoted&&(r=new e.Tree.Field(r.toString())),(n=d(this.entities.comparison))&&(o=d(this.entities.quoted)||d(this.entities.variable)||d(this.entities.dimension)||d(this.entities.keyword)||d(this.entities.field)))){if(!d("]"))throw m({message:"Missing closing ] of filter.",index:a-1});return r.is||(r=new e.Tree.Field(r)),new e.Tree.Filter(r,n,o,a,t.filename)}},zoom:function(){p();var t,r;if(d(/^\[\s*zoom/g)&&(t=d(this.entities.comparison))&&(r=d(this.entities.variable)||d(this.entities.dimension))&&d("]"))return new e.Tree.Zoom(t,r,a);h()},block:function(){var e;if(d("{")&&(e=d(this.primary))&&d("}"))return e},ruleset:function(){var t,r,n=[];for(p();t=d(this.selector);){for(n.push(t);d(this.comment););if(!d(","))break;for(;d(this.comment););}if(t)for(;d(this.comment););if(n.length>0&&(r=d(this.block))){if(1===n.length&&n[0].elements.length&&"Map"===n[0].elements[0].value){var o=new e.Tree.Ruleset(n,r);return o.isMap=!0,o}return new e.Tree.Ruleset(n,r)}h()},rule:function(){var o,i,u=r.charAt(n);if(p(),"."!==u&&"#"!==u&&(o=d(this.variable)||d(this.property))){if((i=d(this.value))&&d(this.end))return new e.Tree.Rule(o,i,a,t.filename);s=n,h()}},font:function(){for(var t,r=[],n=[];t=d(this.entity);)n.push(t);if(r.push(new e.Tree.Expression(n)),d(","))for(;(t=d(this.expression))&&(r.push(t),d(",")););return new e.Tree.Value(r)},value:function(){for(var t,r=[];(t=d(this.expression))&&(r.push(t),d(",")););return r.length>1?new e.Tree.Value(r.map(function(e){return e.value[0]})):1===r.length?new e.Tree.Value(r):void 0},sub:function(){var e;if(d("(")&&(e=d(this.expression))&&d(")"))return e},multiplication:function(){var t,r,n,o;if(t=d(this.operand)){for(;(n=d("/")||d("*")||d("%"))&&(r=d(this.operand));)o=new e.Tree.Operation(n,[o||t,r],a);return o||t}},addition:function(){var t,o,i,s;if(t=d(this.multiplication)){for(;(i=d(/^[-+]\s+/)||" "!=r.charAt(n-1)&&(d("+")||d("-")))&&(o=d(this.multiplication));)s=new e.Tree.Operation(i,[s||t,o],a);return s||t}},operand:function(){return d(this.sub)||d(this.entity)},expression:function(){for(var t,r=[];t=d(this.addition)||d(this.entity);)r.push(t);if(r.length>0)return new e.Tree.Expression(r)},property:function(){var e=d(/^(([a-z][-a-z_0-9]*\/)?\*?-?[-a-z_0-9]+)\s*:/);if(e)return e[1]}}}}},{key:"parse",value:function(e){var t=this.parser;return this.ruleSet=t.parse(e)}},{key:"toShaders",value:function(){if(this.ruleSet){var e=this.ruleSet;if(e){var t=e.toList(this.env);t.reverse();var r={},n=[];this._toShaders(r,n,t);for(var o=[],i={},a=0,s=t.length;a=0){if(!t.featureFilter){var i=o+n.length,a=r.indexOf(")",i+1),s="featureId&&(featureId"+r.substring(i,a)+")";Object.defineProperty(t,"featureFilter",{configurable:!0,enumerable:!1,value:function(e){return!!s}})}return{property:h,getValue:Function("attributes","zoom","seftFilter","var _value = null; var isExcute=typeof seftFilter=='function'?sefgFilter():seftFilter;if(isExcute){"+r+";} return _value; ")}}return{property:h,getValue:Function("attributes","zoom","var _value = null;"+r+"; return _value; ")}}(c[h],f);Object.defineProperty(f,"attachment",{configurable:!0,enumerable:!1,value:l}),Object.defineProperty(f,"elements",{configurable:!0,enumerable:!1,value:u.elements}),o.push(f),i[n[a]]=!0}Object.defineProperty(f,"zoom",{configurable:!0,enumerable:!1,value:u.zoom})}return o}}return null}},{key:"_toShaders",value:function(t,r,n){for(var o=0,i=n.length;o= minzoom - 1e-6 and scale < maxzoom + 1e-6"},maxzoom:{"default-value":"1.79769e+308",type:"float","default-meaning":"The layer will be visible at the maximum possible scale",doc:"The maximum scale denominator that this layer will be visible at. The default is the numeric limit of the C++ double type, which may vary slightly by system, but is likely a massive number like 1.79769e+308 and ensures that this layer will always be visible unless the value is reduced. A layer's visibility is determined by whether its status is true and if the Map scale >= minzoom - 1e-6 and scale < maxzoom + 1e-6"},queryable:{"default-value":!1,type:"boolean","default-meaning":"The layer will not be available for the direct querying of data values",doc:"This property was added for GetFeatureInfo/WMS compatibility and is rarely used. It is off by default meaning that in a WMS context the layer will not be able to be queried unless the property is explicitly set to true"},"clear-label-cache":{"default-value":!1,type:"boolean","default-meaning":"The renderer's collision detector cache (used for avoiding duplicate labels and overlapping markers) will not be cleared immediately before processing this layer",doc:"This property, by default off, can be enabled to allow a user to clear the collision detector cache before a given layer is processed. This may be desirable to ensure that a given layers data shows up on the map even if it normally would not because of collisions with previously rendered labels or markers"},"group-by":{"default-value":"",type:"string","default-meaning":"No special layer grouping will be used during rendering",doc:"https://github.com/mapnik/mapnik/wiki/Grouped-rendering"},"buffer-size":{"default-value":"0",type:"float","default-meaning":"No buffer will be used",doc:"Extra tolerance around the Layer extent (in pixels) used to when querying and (potentially) clipping the layer data during rendering"},"maximum-extent":{"default-value":"none",type:"bbox","default-meaning":"No clipping extent will be used",doc:"An extent to be used to limit the bounds used to query this specific layer data during rendering. Should be minx, miny, maxx, maxy in the coordinates of the Layer."}},symbolizers:{"*":{"image-filters":{css:"image-filters","default-value":"none","default-meaning":"no filters",type:"functions",functions:[["agg-stack-blur",2],["emboss",0],["blur",0],["gray",0],["sobel",0],["edge-detect",0],["x-gradient",0],["y-gradient",0],["invert",0],["sharpen",0]],doc:"A list of image filters."},"comp-op":{css:"comp-op","default-value":"src-over","default-meaning":"add the current layer on top of other layers",doc:"Composite operation. This defines how this layer should behave relative to layers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]},opacity:{css:"opacity",type:"float",doc:"An alpha value for the style (which means an alpha applied to all features in separate buffer and then composited back to main buffer)","default-value":1,"default-meaning":"no separate buffer will be used and no alpha will be applied to the style after rendering"}},map:{"background-color":{css:"background-color","default-value":"none","default-meaning":"transparent",type:"color",doc:"Map Background color"},"background-image":{css:"background-image",type:"uri","default-value":"","default-meaning":"transparent",doc:"An image that is repeated below all features on a map as a background.",description:"Map Background image"},srs:{css:"srs",type:"string","default-value":"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs","default-meaning":"The proj4 literal of EPSG:4326 is assumed to be the Map's spatial reference and all data from layers within this map will be plotted using this coordinate system. If any layers do not declare an srs value then they will be assumed to be in the same srs as the Map and not transformations will be needed to plot them in the Map's coordinate space",doc:"Map spatial reference (proj4 string)"},"buffer-size":{css:"buffer-size","default-value":"0",type:"float","default-meaning":"No buffer will be used",doc:'Extra tolerance around the map (in pixels) used to ensure labels crossing tile boundaries are equally rendered in each tile (e.g. cut in each tile). Not intended to be used in combination with "avoid-edges".'},"maximum-extent":{css:"","default-value":"none",type:"bbox","default-meaning":"No clipping extent will be used",doc:"An extent to be used to limit the bounds used to query all layers during rendering. Should be minx, miny, maxx, maxy in the coordinates of the Map."},base:{css:"base","default-value":"","default-meaning":"This base path defaults to an empty string meaning that any relative paths to files referenced in styles or layers will be interpreted relative to the application process.",type:"string",doc:"Any relative paths used to reference files will be understood as relative to this directory path if the map is loaded from an in memory object rather than from the filesystem. If the map is loaded from the filesystem and this option is not provided it will be set to the directory of the stylesheet."},"paths-from-xml":{css:"","default-value":!0,"default-meaning":"Paths read from XML will be interpreted from the location of the XML",type:"boolean",doc:"value to control whether paths in the XML will be interpreted from the location of the XML or from the working directory of the program that calls load_map()"},"minimum-version":{css:"","default-value":"none","default-meaning":"Mapnik version will not be detected and no error will be thrown about compatibility",type:"string",doc:"The minumum Mapnik version (e.g. 0.7.2) needed to use certain functionality in the stylesheet"},"font-directory":{css:"font-directory",type:"uri","default-value":"none","default-meaning":"No map-specific fonts will be registered",doc:"Path to a directory which holds fonts which should be registered when the Map is loaded (in addition to any fonts that may be automatically registered)."}},polygon:{fill:{css:"polygon-fill",type:"color","default-value":"rgba(128,128,128,1)","default-meaning":"gray and fully opaque (alpha = 1), same as rgb(128,128,128)",doc:"Fill color to assign to a polygon"},"fill-opacity":{css:"polygon-opacity",type:"float",doc:"The opacity of the polygon","default-value":1,"default-meaning":"opaque"},gamma:{css:"polygon-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of polygon edges"},"gamma-method":{css:"polygon-gamma-method",type:["power","linear","none","threshold","multiply"],"default-value":"power","default-meaning":"pow(x,gamma) is used to calculate pixel gamma, which produces slightly smoother line and polygon antialiasing than the 'linear' method, while other methods are usually only used to disable AA",doc:"An Antigrain Geometry specific rendering hint to control the quality of antialiasing. Under the hood in Mapnik this method is used in combination with the 'gamma' value (which defaults to 1). The methods are in the AGG source at https://github.com/mapnik/mapnik/blob/master/deps/agg/include/agg_gamma_functions.h"},clip:{css:"polygon-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"polygon-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"polygon-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"polygon-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},line:{stroke:{css:"line-color","default-value":"rgba(0,0,0,1)",type:"color","default-meaning":"black and fully opaque (alpha = 1), same as rgb(0,0,0)",doc:"The color of a drawn line"},"stroke-width":{css:"line-width","default-value":1,type:"float",doc:"The width of a line in pixels"},"stroke-opacity":{css:"line-opacity","default-value":1,type:"float","default-meaning":"opaque",doc:"The opacity of a line"},"stroke-linejoin":{css:"line-join","default-value":"miter",type:["miter","round","bevel"],doc:"The behavior of lines when joining"},"stroke-linecap":{css:"line-cap","default-value":"butt",type:["butt","round","square"],doc:"The display of line endings"},"stroke-gamma":{css:"line-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of stroke line"},"stroke-gamma-method":{css:"line-gamma-method",type:["power","linear","none","threshold","multiply"],"default-value":"power","default-meaning":"pow(x,gamma) is used to calculate pixel gamma, which produces slightly smoother line and polygon antialiasing than the 'linear' method, while other methods are usually only used to disable AA",doc:"An Antigrain Geometry specific rendering hint to control the quality of antialiasing. Under the hood in Mapnik this method is used in combination with the 'gamma' value (which defaults to 1). The methods are in the AGG source at https://github.com/mapnik/mapnik/blob/master/deps/agg/include/agg_gamma_functions.h"},"stroke-dasharray":{css:"line-dasharray",type:"numbers",doc:"A pair of length values [a,b], where (a) is the dash length and (b) is the gap length respectively. More than two values are supported for more complex patterns.","default-value":"none","default-meaning":"solid line"},"stroke-dashoffset":{css:"line-dash-offset",type:"numbers",doc:"valid parameter but not currently used in renderers (only exists for experimental svg support in Mapnik which is not yet enabled)","default-value":"none","default-meaning":"solid line"},"stroke-miterlimit":{css:"line-miterlimit",type:"float",doc:"The limit on the ratio of the miter length to the stroke-width. Used to automatically convert miter joins to bevel joins for sharp angles to avoid the miter extending beyond the thickness of the stroking path. Normally will not need to be set, but a larger value can sometimes help avoid jaggy artifacts.","default-value":4,"default-meaning":"Will auto-convert miters to bevel line joins when theta is less than 29 degrees as per the SVG spec: 'miterLength / stroke-width = 1 / sin ( theta / 2 )'"},clip:{css:"line-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"line-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},offset:{css:"line-offset",type:"float","default-value":0,"default-meaning":"no offset",doc:"Offsets a line a number of pixels parallel to its actual path. Postive values move the line left, negative values move it right (relative to the directionality of the line)."},rasterizer:{css:"line-rasterizer",type:["full","fast"],"default-value":"full",doc:"Exposes an alternate AGG rendering method that sacrifices some accuracy for speed."},"geometry-transform":{css:"line-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"line-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},markers:{file:{css:"marker-file",doc:"An SVG file that this marker shows at each placement. If no file is given, the marker will show an ellipse.","default-value":"","default-meaning":"An ellipse or circle, if width equals height",type:"uri"},opacity:{css:"marker-opacity",doc:"The overall opacity of the marker, if set, overrides both the opacity of both the fill and stroke","default-value":1,"default-meaning":"The stroke-opacity and fill-opacity will be used",type:"float"},"fill-opacity":{css:"marker-fill-opacity",doc:"The fill opacity of the marker","default-value":1,"default-meaning":"opaque",type:"float"},stroke:{css:"marker-line-color",doc:"The color of the stroke around a marker shape.","default-value":"black",type:"color"},"stroke-width":{css:"marker-line-width",doc:"The width of the stroke around a marker shape, in pixels. This is positioned on the boundary, so high values can cover the area itself.",type:"float"},"stroke-opacity":{css:"marker-line-opacity","default-value":1,"default-meaning":"opaque",doc:"The opacity of a line",type:"float"},placement:{css:"marker-placement",type:["point","line","interior"],"default-value":"point","default-meaning":"Place markers at the center point (centroid) of the geometry",doc:"Attempt to place markers on a point, in the center of a polygon, or if markers-placement:line, then multiple times along a line. 'interior' placement can be used to ensure that points placed on polygons are forced to be inside the polygon interior"},"multi-policy":{css:"marker-multi-policy",type:["each","whole","largest"],"default-value":"each","default-meaning":"If a feature contains multiple geometries and the placement type is either point or interior then a marker will be rendered for each",doc:"A special setting to allow the user to control rendering behavior for 'multi-geometries' (when a feature contains multiple geometries). This setting does not apply to markers placed along lines. The 'each' policy is default and means all geometries will get a marker. The 'whole' policy means that the aggregate centroid between all geometries will be used. The 'largest' policy means that only the largest (by bounding box areas) feature will get a rendered marker (this is how text labeling behaves by default)."},"marker-type":{css:"marker-type",type:["arrow","ellipse"],"default-value":"ellipse",doc:"The default marker-type. If a SVG file is not given as the marker-file parameter, the renderer provides either an arrow or an ellipse (a circle if height is equal to width)"},width:{css:"marker-width","default-value":10,doc:"The width of the marker, if using one of the default types.",type:"expression"},height:{css:"marker-height","default-value":10,doc:"The height of the marker, if using one of the default types.",type:"expression"},fill:{css:"marker-fill","default-value":"blue",doc:"The color of the area of the marker.",type:"color"},"allow-overlap":{css:"marker-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping markers are shown or hidden.","default-meaning":"Do not allow makers to overlap with each other - overlapping markers will not be shown."},"ignore-placement":{css:"marker-ignore-placement",type:"boolean","default-value":!1,"default-meaning":"do not store the bbox of this geometry in the collision detector cache",doc:"value to control whether the placement of the feature will prevent the placement of other features"},spacing:{css:"marker-spacing",doc:"Space between repeated labels","default-value":100,type:"float"},"max-error":{css:"marker-max-error",type:"float","default-value":.2,doc:"The maximum difference between actual marker placement and the marker-spacing parameter. Setting a high value can allow the renderer to try to resolve placement conflicts with other symbolizers."},transform:{css:"marker-transform",type:"functions",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]],"default-value":"","default-meaning":"No transformation",doc:"SVG transformation definition"},clip:{css:"marker-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"marker-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"marker-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"marker-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},shield:{name:{css:"shield-name",type:"expression",serialization:"content",doc:'Value to use for a shield"s text label. Data columns are specified using brackets like [column_name]'},file:{css:"shield-file",required:!0,type:"uri","default-value":"none",doc:"Image file to render behind the shield text"},"face-name":{css:"shield-face-name",type:"string",validate:"font",doc:"Font name and style to use for the shield text","default-value":"",required:!0},"unlock-image":{css:"shield-unlock-image",type:"boolean",doc:"This parameter should be set to true if you are trying to position text beside rather than on top of the shield image","default-value":!1,"default-meaning":"text alignment relative to the shield image uses the center of the image as the anchor for text positioning."},size:{css:"shield-size",type:"float",doc:"The size of the shield text in pixels"},fill:{css:"shield-fill",type:"color",doc:"The color of the shield text"},placement:{css:"shield-placement",type:["point","line","vertex","interior"],"default-value":"point",doc:"How this shield should be placed. Point placement attempts to place it on top of points, line places along lines multiple times per feature, vertex places on the vertexes of polygons, and interior attempts to place inside of polygons."},"avoid-edges":{css:"shield-avoid-edges",doc:"Tell positioning algorithm to avoid labeling near intersection edges.",type:"boolean","default-value":!1},"allow-overlap":{css:"shield-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping shields are shown or hidden.","default-meaning":"Do not allow shields to overlap with other map elements already placed."},"minimum-distance":{css:"shield-min-distance",type:"float","default-value":0,doc:"Minimum distance to the next shield symbol, not necessarily the same shield."},spacing:{css:"shield-spacing",type:"float","default-value":0,doc:"The spacing between repeated occurrences of the same shield on a line"},"minimum-padding":{css:"shield-min-padding","default-value":0,doc:"Determines the minimum amount of padding that a shield gets relative to other shields",type:"float"},"wrap-width":{css:"shield-wrap-width",type:"unsigned","default-value":0,doc:"Length of a chunk of text in characters before wrapping text"},"wrap-before":{css:"shield-wrap-before",type:"boolean","default-value":!1,doc:"Wrap text before wrap-width is reached. If false, wrapped lines will be a bit longer than wrap-width."},"wrap-character":{css:"shield-wrap-character",type:"string","default-value":" ",doc:"Use this character instead of a space to wrap long names."},"halo-fill":{css:"shield-halo-fill",type:"color","default-value":"#FFFFFF","default-meaning":"white",doc:"Specifies the color of the halo around the text."},"halo-radius":{css:"shield-halo-radius",doc:"Specify the radius of the halo in pixels","default-value":0,"default-meaning":"no halo",type:"float"},"character-spacing":{css:"shield-character-spacing",type:"unsigned","default-value":0,doc:"Horizontal spacing between characters (in pixels). Currently works for point placement only, not line placement."},"line-spacing":{css:"shield-line-spacing",doc:"Vertical spacing between lines of multiline labels (in pixels)",type:"unsigned"},dx:{css:"shield-text-dx",type:"float",doc:"Displace text within shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},dy:{css:"shield-text-dy",type:"float",doc:"Displace text within shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},"shield-dx":{css:"shield-dx",type:"float",doc:"Displace shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},"shield-dy":{css:"shield-dy",type:"float",doc:"Displace shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},opacity:{css:"shield-opacity",type:"float",doc:"(Default 1.0) - opacity of the image used for the shield","default-value":1},"text-opacity":{css:"shield-text-opacity",type:"float",doc:"(Default 1.0) - opacity of the text placed on top of the shield","default-value":1},"horizontal-alignment":{css:"shield-horizontal-alignment",type:["left","middle","right","auto"],doc:"The shield's horizontal alignment from its centerpoint","default-value":"auto"},"vertical-alignment":{css:"shield-vertical-alignment",type:["top","middle","bottom","auto"],doc:"The shield's vertical alignment from its centerpoint","default-value":"middle"},"text-transform":{css:"shield-text-transform",type:["none","uppercase","lowercase","capitalize"],doc:"Transform the case of the characters","default-value":"none"},"justify-alignment":{css:"shield-justify-alignment",type:["left","center","right","auto"],doc:"Define how text in a shield's label is justified","default-value":"auto"},clip:{css:"shield-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},"comp-op":{css:"shield-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},"line-pattern":{file:{css:"line-pattern-file",type:"uri","default-value":"none",required:!0,doc:"An image file to be repeated and warped along a line"},clip:{css:"line-pattern-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"line-pattern-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"line-pattern-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"line-pattern-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},"polygon-pattern":{file:{css:"polygon-pattern-file",type:"uri","default-value":"none",required:!0,doc:"Image to use as a repeated pattern fill within a polygon"},alignment:{css:"polygon-pattern-alignment",type:["local","global"],"default-value":"local",doc:"Specify whether to align pattern fills to the layer or to the map."},gamma:{css:"polygon-pattern-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of polygon pattern edges"},opacity:{css:"polygon-pattern-opacity",type:"float",doc:"(Default 1.0) - Apply an opacity level to the image used for the pattern","default-value":1,"default-meaning":"The image is rendered without modifications"},clip:{css:"polygon-pattern-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"polygon-pattern-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"polygon-pattern-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"polygon-pattern-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},raster:{opacity:{css:"raster-opacity","default-value":1,"default-meaning":"opaque",type:"float",doc:"The opacity of the raster symbolizer on top of other symbolizers."},"filter-factor":{css:"raster-filter-factor","default-value":-1,"default-meaning":"Allow the datasource to choose appropriate downscaling.",type:"float",doc:"This is used by the Raster or Gdal datasources to pre-downscale images using overviews. Higher numbers can sometimes cause much better scaled image output, at the cost of speed."},scaling:{css:"raster-scaling",type:["near","fast","bilinear","bilinear8","bicubic","spline16","spline36","hanning","hamming","hermite","kaiser","quadric","catrom","gaussian","bessel","mitchell","sinc","lanczos","blackman"],"default-value":"near",doc:"The scaling algorithm used to making different resolution versions of this raster layer. Bilinear is a good compromise between speed and accuracy, while lanczos gives the highest quality."},"mesh-size":{css:"raster-mesh-size","default-value":16,"default-meaning":"Reprojection mesh will be 1/16 of the resolution of the source image",type:"unsigned",doc:"A reduced resolution mesh is used for raster reprojection, and the total image size is divided by the mesh-size to determine the quality of that mesh. Values for mesh-size larger than the default will result in faster reprojection but might lead to distortion."},"comp-op":{css:"raster-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},point:{file:{css:"point-file",type:"uri",required:!1,"default-value":"none",doc:"Image file to represent a point"},"allow-overlap":{css:"point-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping points are shown or hidden.","default-meaning":"Do not allow points to overlap with each other - overlapping markers will not be shown."},"ignore-placement":{css:"point-ignore-placement",type:"boolean","default-value":!1,"default-meaning":"do not store the bbox of this geometry in the collision detector cache",doc:"value to control whether the placement of the feature will prevent the placement of other features"},opacity:{css:"point-opacity",type:"float","default-value":1,"default-meaning":"Fully opaque",doc:"A value from 0 to 1 to control the opacity of the point"},placement:{css:"point-placement",type:["centroid","interior"],doc:"How this point should be placed. Centroid calculates the geometric center of a polygon, which can be outside of it, while interior always places inside of a polygon.","default-value":"centroid"},transform:{css:"point-transform",type:"functions",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]],"default-value":"","default-meaning":"No transformation",doc:"SVG transformation definition"},"comp-op":{css:"point-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},text:{name:{css:"text-name",type:"expression",required:!0,"default-value":"",serialization:"content",doc:"Value to use for a text label. Data columns are specified using brackets like [column_name]"},"face-name":{css:"text-face-name",type:"string",validate:"font",doc:"Font name and style to render a label in",required:!0},size:{css:"text-size",type:"float","default-value":10,doc:"Text size in pixels"},"text-ratio":{css:"text-ratio",doc:"Define the amount of text (of the total) present on successive lines when wrapping occurs","default-value":0,type:"unsigned"},"wrap-width":{css:"text-wrap-width",doc:"Length of a chunk of text in characters before wrapping text","default-value":0,type:"unsigned"},"wrap-before":{css:"text-wrap-before",type:"boolean","default-value":!1,doc:"Wrap text before wrap-width is reached. If false, wrapped lines will be a bit longer than wrap-width."},"wrap-character":{css:"text-wrap-character",type:"string","default-value":" ",doc:"Use this character instead of a space to wrap long text."},spacing:{css:"text-spacing",type:"unsigned",doc:"Distance between repeated text labels on a line (aka. label-spacing)"},"character-spacing":{css:"text-character-spacing",type:"float","default-value":0,doc:"Horizontal spacing adjustment between characters in pixels"},"line-spacing":{css:"text-line-spacing","default-value":0,type:"unsigned",doc:"Vertical spacing adjustment between lines in pixels"},"label-position-tolerance":{css:"text-label-position-tolerance","default-value":0,type:"unsigned",doc:"Allows the label to be displaced from its ideal position by a number of pixels (only works with placement:line)"},"max-char-angle-delta":{css:"text-max-char-angle-delta",type:"float","default-value":"22.5",doc:"The maximum angle change, in degrees, allowed between adjacent characters in a label. This value internally is converted to radians to the default is 22.5*math.pi/180.0. The higher the value the fewer labels will be placed around around sharp corners."},fill:{css:"text-fill",doc:"Specifies the color for the text","default-value":"#000000",type:"color"},opacity:{css:"text-opacity",doc:"A number from 0 to 1 specifying the opacity for the text","default-value":1,"default-meaning":"Fully opaque",type:"float"},"halo-fill":{css:"text-halo-fill",type:"color","default-value":"#FFFFFF","default-meaning":"white",doc:"Specifies the color of the halo around the text."},"halo-radius":{css:"text-halo-radius",doc:"Specify the radius of the halo in pixels","default-value":0,"default-meaning":"no halo",type:"float"},dx:{css:"text-dx",type:"float",doc:"Displace text by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},dy:{css:"text-dy",type:"float",doc:"Displace text by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},"vertical-alignment":{css:"text-vertical-alignment",type:["top","middle","bottom","auto"],doc:"Position of label relative to point position.","default-value":"auto","default-meaning":'Default affected by value of dy; "bottom" for dy>0, "top" for dy<0.'},"avoid-edges":{css:"text-avoid-edges",doc:"Tell positioning algorithm to avoid labeling near intersection edges.","default-value":!1,type:"boolean"},"minimum-distance":{css:"text-min-distance",doc:"Minimum permitted distance to the next text symbolizer.",type:"float"},"minimum-padding":{css:"text-min-padding",doc:"Determines the minimum amount of padding that a text symbolizer gets relative to other text",type:"float"},"minimum-path-length":{css:"text-min-path-length",type:"float","default-value":0,"default-meaning":"place labels on all paths",doc:"Place labels only on paths longer than this value."},"allow-overlap":{css:"text-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping text is shown or hidden.","default-meaning":"Do not allow text to overlap with other text - overlapping markers will not be shown."},orientation:{css:"text-orientation",type:"expression",doc:"Rotate the text."},placement:{css:"text-placement",type:["point","line","vertex","interior"],"default-value":"point",doc:"Control the style of placement of a point versus the geometry it is attached to."},"placement-type":{css:"text-placement-type",doc:'Re-position and/or re-size text to avoid overlaps. "simple" for basic algorithm (using text-placements string,) "dummy" to turn this feature off.',type:["dummy","simple"],"default-value":"dummy"},placements:{css:"text-placements",type:"string","default-value":"",doc:'If "placement-type" is set to "simple", use this "POSITIONS,[SIZES]" string. An example is `text-placements: "E,NE,SE,W,NW,SW";` '},"text-transform":{css:"text-transform",type:["none","uppercase","lowercase","capitalize"],doc:"Transform the case of the characters","default-value":"none"},"horizontal-alignment":{css:"text-horizontal-alignment",type:["left","middle","right","auto"],doc:"The text's horizontal alignment from its centerpoint","default-value":"auto"},"justify-alignment":{css:"text-align",type:["left","right","center","auto"],doc:"Define how text is justified","default-value":"auto","default-meaning":"Auto alignment means that text will be centered by default except when using the `placement-type` parameter - in that case either right or left justification will be used automatically depending on where the text could be fit given the `text-placements` directives"},clip:{css:"text-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},"comp-op":{css:"text-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},building:{fill:{css:"building-fill","default-value":"#FFFFFF",doc:"The color of the buildings walls.",type:"color"},"fill-opacity":{css:"building-fill-opacity",type:"float",doc:"The opacity of the building as a whole, including all walls.","default-value":1},height:{css:"building-height",doc:"The height of the building in pixels.",type:"expression","default-value":"0"}}},colors:{aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50],transparent:[0,0,0,0]},filter:{value:["true","false","null","point","linestring","polygon","collection"]}};function Sie(e){"@babel/helpers - typeof";return(Sie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Cie(e,t){for(var r=0;r1&&(t=arguments[1]),arguments.length>2&&(r=arguments[2]),{is:"tag",val:e,color:t,mode:r,toString:function(n){return'\n\t"}}},hsl:function(e,t,r){return this.hsla(e,t,r,1)},hsla:function(e,t,r,n){if([e=this.number(e)%360/360,t=this.number(t),r=this.number(r),n=this.number(n)].some(isNaN))return null;var o=r<=.5?r*(t+1):r+t-r*t,i=2*r-o;return this.rgba(255*a(e+1/3),255*a(e),255*a(e-1/3),n);function a(e){return 6*(e=e<0?e+1:e>1?e-1:e)<1?i+(o-i)*e*6:2*e<1?o:3*e<2?i+(o-i)*(2/3-e)*6:i}},hue:function(e){return"toHSL"in e?new Aie.Tree.Dimension(Math.round(e.toHSL().h)):null},saturation:function(e){return"toHSL"in e?new Aie.Tree.Dimension(Math.round(100*e.toHSL().s),"%"):null},lightness:function(e){return"toHSL"in e?new Aie.Tree.Dimension(Math.round(100*e.toHSL().l),"%"):null},alpha:function(e){return"toHSL"in e?new Aie.Tree.Dimension(e.toHSL().a):null},saturate:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.s+=t.value/100,r.s=this.clamp(r.s),this.hsla_simple(r)},desaturate:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.s-=t.value/100,r.s=this.clamp(r.s),this.hsla_simple(r)},lighten:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.l+=t.value/100,r.l=this.clamp(r.l),this.hsla_simple(r)},darken:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.l-=t.value/100,r.l=this.clamp(r.l),this.hsla_simple(r)},fadein:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.a+=t.value/100,r.a=this.clamp(r.a),this.hsla_simple(r)},fadeout:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.a-=t.value/100,r.a=this.clamp(r.a),this.hsla_simple(r)},spin:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL(),n=(r.h+t.value)%360;return r.h=n<0?360+n:n,this.hsla_simple(r)},replace:function(e,t,r){return"field"===e.is?e.toString+".replace("+t.toString()+", "+r.toString()+")":e.replace(t,r)},mix:function(e,t,r){var n=r.value/100,o=2*n-1,i=e.toHSL().a-t.toHSL().a,a=((o*i==-1?o:(o+i)/(1+o*i))+1)/2,s=1-a,u=[e.rgb[0]*a+t.rgb[0]*s,e.rgb[1]*a+t.rgb[1]*s,e.rgb[2]*a+t.rgb[2]*s],l=e.alpha*n+t.alpha*(1-n);return new Aie.Tree.Color(u,l)},greyscale:function(e){return this.desaturate(e,new Aie.Tree.Dimension(100))},"%":function(e){for(var t=Array.prototype.slice.call(arguments,1),r=e.value,n=0;n.5?l/(2-a-s):l/(a+s),a){case r:e=(n-o)/l+(n=0){if(!e.ppi)return e.error({message:"ppi is not set, so metric units can't be used",index:this.index}),{is:"undefined",value:"undefined"};this.value=this.value/this.densities[this.unit]*e.ppi,this.unit="px"}return this}},{key:"toColor",value:function(){return new Aie.Tree.Color([this.value,this.value,this.value])}},{key:"round",value:function(){return this.value=Math.round(this.value),this}},{key:"toString",value:function(){return this.value.toString()}},{key:"operate",value:function(e,t,r){return"%"===this.unit&&"%"!==r.unit?(e.error({message:"If two operands differ, the first must not be %",index:this.index}),{is:"undefined",value:"undefined"}):"%"!==this.unit&&"%"===r.unit?"*"===t||"/"===t||"%"===t?(e.error({message:"Percent values can only be added or subtracted from other values",index:this.index}),{is:"undefined",value:"undefined"}):new Aie.Tree.Dimension(Aie.Tree.operate(t,this.value,this.value*r.value*.01),this.unit):new Aie.Tree.Dimension(Aie.Tree.operate(t,this.value,r.value),this.unit||r.unit)}}])}(),Aie.Tree.Element=function(){return vie(function e(t){mie(this,e),this.value=t.trim(),"#"===this.value[0]&&(this.type="id",this.clean=this.value.replace(/^#/,"")),"."===this.value[0]&&(this.type="class",this.clean=this.value.replace(/^\./,"")),-1!==this.value.indexOf("*")&&(this.type="wildcard")},[{key:"specificity",value:function(){return["id"===this.type?1:0,"class"===this.type?1:0]}},{key:"toString",value:function(){return this.value}}])}(),Aie.Tree.Expression=function(){return vie(function e(t){mie(this,e),this.is="expression",this.value=t},[{key:"ev",value:function(e){return this.value.length>1?new Aie.Tree.Expression(this.value.map(function(t){return t.ev(e)})):this.value[0].ev(e)}},{key:"toString",value:function(e){return this.value.map(function(t){return t.toString(e)}).join(" ")}}])}(),Aie.Tree.Field=function(){return vie(function e(t){mie(this,e),this.is="field",this.value=t||""},[{key:"toString",value:function(){return'["'+this.value.toUpperCase()+'"]'}},{key:"ev",value:function(){return this}}])}(),Aie.Tree.Filter=function(){return vie(function e(t,r,n,o,i){mie(this,e),this.ops={"<":[" < ","numeric"],">":[" > ","numeric"],"=":[" = ","both"],"!=":[" != ","both"],"<=":[" <= ","numeric"],">=":[" >= ","numeric"],"=~":[".match(","string",")"]},this.key=t,this.op=r,this.val=n,this.index=o,this.filename=i,this.id=this.key+this.op+this.val},[{key:"ev",value:function(e){return this.key=this.key.ev(e),this.val=this.val.ev(e),this}},{key:"toString",value:function(){return"["+this.id+"]"}}])}(),Aie.Tree.Filterset=function(){return vie(function e(){mie(this,e),this.filters={}},[{key:"toJS",value:function(e){function t(e){var t=e.op;"="===t&&(t="==");var r=e.val;void 0!==e._val&&(r=e._val.toString(!0)),e.key&&"scale"===e.key.value?r=+r:"string"!=typeof r&&"object"!==die(r)||(r="'"+r+"'");var n="attributes";return n+"&&"+n+e.key+"&&"+n+e.key+" "+t+r}var r=[];for(var n in this.filters)r.push(t(this.filters[n]));return r.join(" && ")}},{key:"toString",value:function(){var e=[];for(var t in this.filters)e.push(this.filters[t].id);return e.sort().join("\t")}},{key:"ev",value:function(e){for(var t in this.filters)this.filters[t].ev(e);return this}},{key:"clone",value:function(){var e=new Aie.Tree.Filterset;for(var t in this.filters)e.filters[t]=this.filters[t];return e}},{key:"cloneWith",value:function(e){var t=[];for(var r in e.filters){var n=this.addable(e.filters[r]);if(!1===n)return!1;!0===n&&t.push(e.filters[r])}if(!t.length)return null;var o=new Aie.Tree.Filterset;for(r in this.filters)o.filters[r]=this.filters[r];for(;r=t.shift();)o.add(r);return o}},{key:"addable",value:function(e){var t=e.key.toString(),r=e.val.toString();switch(r.match(/^[0-9]+(\.[0-9]*)?_match/)&&(r=parseFloat(r)),e.op){case"=":return void 0!==this.filters[t+"="]?this.filters[t+"="].val.toString()==r&&null:void 0===this.filters[t+"!="+r]&&(!(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r)&&(!(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r)&&(!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r)&&!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val"]&&this.filters[t+">"].val>=r?null:void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r?null:void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r?null:!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val":return t+"="in this.filters?!(this.filters[t+"="].val<=r)&&null:!(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r)&&(!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val<=r)&&(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r?null:!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r)||null));case">=":return void 0!==this.filters[t+"="]?!(this.filters[t+"="].val"]&&this.filters[t+">"].val>=r?null:!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>=r)||null));case"<":return void 0!==this.filters[t+"="]?!(this.filters[t+"="].val>=r)&&null:!(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r)&&(!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>=r)&&(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r?null:!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].valr)&&null:!(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r)&&(!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r)&&(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r?null:!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val<=r)||null))}}},{key:"conflict",value:function(e){var t=e.key.toString(),r=e.val.toString();return isNaN(parseFloat(r))||(r=parseFloat(r)),("="===e.op&&void 0!==this.filters[t+"="]&&r!=this.filters[t+"="].val.toString()||"!="===e.op&&void 0!==this.filters[t+"="]&&r==this.filters[t+"="].val.toString()||"="===e.op&&void 0!==this.filters[t+"!="]&&r===this.filters[t+"!="].val.toString())&&e.toString()+" added to "+this.toString()+" produces an invalid filter"}},{key:"add",value:function(e,t){var r,n=e.key.toString(),o=e.op,i=this.conflict(e);if(i)return i;if("="===o){for(var a in this.filters)this.filters[a].key===n&&delete this.filters[a];this.filters[n+"="]=e}else if("!="===o)this.filters[n+"!="+e.val]=e;else if("=~"===o)this.filters[n+"=~"+e.val]=e;else if(">"===o){for(var s in this.filters)this.filters[s].key===n&&this.filters[s].val<=e.val&&delete this.filters[s];this.filters[n+">"]=e}else if(">="===o){for(var u in this.filters)r=+this.filters[u].val.toString(),this.filters[u].key===n&&r",this.filters[n+">"]=e):this.filters[n+">="]=e}else if("<"===o){for(var l in this.filters)r=+this.filters[l].val.toString(),this.filters[l].key===n&&r>=e.val&&delete this.filters[l];this.filters[n+"<"]=e}else if("<="===o){for(var c in this.filters)r=+this.filters[c].val.toString(),this.filters[c].key===n&&r>e.val&&delete this.filters[c];void 0!==this.filters[n+"!="+e.val]?(delete this.filters[n+"!="+e.val],e.op="<",this.filters[n+"<"]=e):this.filters[n+"<="]=e}}}])}(),Aie.Tree.Fontset=vie(function e(t,r){mie(this,e),this.fonts=r,this.name="fontset-"+t.effects.length}),Aie.Tree.Invalid=function(){return vie(function e(t,r,n){mie(this,e),this.is="invalid",this.chunk=t,this.index=r,this.type="syntax",this.message=n||"Invalid code: "+this.chunk},[{key:"ev",value:function(e){return e.error({chunk:this.chunk,index:this.index,type:"syntax",message:this.message||"Invalid code: "+this.chunk}),{is:"undefined"}}}])}(),Aie.Tree.Keyword=function(){return vie(function e(t){mie(this,e),this.value=t;var r={transparent:"color",true:"boolean",false:"boolean"};this.is=r[t]?r[t]:"keyword"},[{key:"ev",value:function(){return this}},{key:"toString",value:function(){return this.value}}])}(),Aie.Tree.Literal=function(){return vie(function e(t){mie(this,e),this.value=t||"",this.is="field"},[{key:"toString",value:function(){return this.value}},{key:"ev",value:function(){return this}}])}(),Aie.Tree.Operation=function(){return vie(function e(t,r,n){mie(this,e),this.is="operation",this.op=t.trim(),this.operands=r,this.index=n},[{key:"ev",value:function(e){var t,r=this.operands[0].ev(e),n=this.operands[1].ev(e);return"undefined"===r.is||"undefined"===n.is?{is:"undefined",value:"undefined"}:(r instanceof Aie.Tree.Dimension&&n instanceof Aie.Tree.Color&&("*"===this.op||"+"===this.op?(t=n,n=r,r=t):e.error({name:"OperationError",message:"Can't substract or divide a color from a number",index:this.index})),r instanceof Aie.Tree.Quoted&&n instanceof Aie.Tree.Quoted&&"+"!==this.op?(e.error({message:"Can't subtract, divide, or multiply strings.",index:this.index,type:"runtime",filename:this.filename}),{is:"undefined",value:"undefined"}):r instanceof Aie.Tree.Field||n instanceof Aie.Tree.Field||r instanceof Aie.Tree.Literal||n instanceof Aie.Tree.Literal?"color"===r.is||"color"===n.is?(e.error({message:"Can't subtract, divide, or multiply colors in expressions.",index:this.index,type:"runtime",filename:this.filename}),{is:"undefined",value:"undefined"}):new Aie.Tree.Literal(r.ev(e).toString(!0)+this.op+n.ev(e).toString(!0)):void 0===r.operate?(e.error({message:"Cannot do math with type "+r.is+".",index:this.index,type:"runtime",filename:this.filename}),{is:"undefined",value:"undefined"}):r.operate(e,this.op,n))}}])}(),Aie.Tree.Quoted=function(){return vie(function e(t){mie(this,e),this.is="string",this.value=t||""},[{key:"toString",value:function(e){var t=this.value.replace(/&/g,"&"),r=t.replace(/\'/g,"\\'").replace(/\"/g,""").replace(//g,">");return!0===e?"'"+r+"'":t}},{key:"ev",value:function(){return this}},{key:"operate",value:function(e,t,r){return new Aie.Tree.Quoted(Aie.Tree.operate(t,this.toString(),r.toString(this.contains_field)))}}])}(),Aie.Tree.Reference={_validateValue:{font:function(e,t){return!e.validation_data||!e.validation_data.fonts||-1!=e.validation_data.fonts.indexOf(t)}},setData:function(e){this.data=e,this.selector_cache=function(e){var t={};for(var r in e.symbolizers)for(var n in e.symbolizers[r])e.symbolizers[r][n].hasOwnProperty("css")&&(t[e.symbolizers[r][n].css]=[e.symbolizers[r][n],r,n]);return t}(e),this.mapnikFunctions=function(e){var t={};for(var r in e.symbolizers)for(var n in e.symbolizers[r])if("functions"===e.symbolizers[r][n].type)for(var o=0;o1?Array.prototype.push.apply(r,n.find(new Aie.Tree.Selector(null,null,e.elements.slice(1)),t)):r.push(n);break}}),this._lookups[n]=r)}},{key:"evZooms",value:function(e){for(var t=0;tAie.Tree.Zoom.maxZoom||t<0)&&e.error({message:"Only zoom levels between 0 and "+Aie.Tree.Zoom.maxZoom+" supported.",index:this.index}),this.op){case"=":return this.zoom="zoom && zoom === "+t,this;case">":this.zoom="zoom && zoom > "+t;break;case">=":this.zoom="zoom && zoom >= "+t;break;case"<":this.zoom="zoom && zoom < "+t;break;case"<=":this.zoom="zoom && zoom <= "+t}return this}},{key:"toString",value:function(){for(var e="",t=0;t<=Aie.Tree.Zoom.maxZoom;t++)e+=this.zoom&1<=l[2]||l[1]<=l[3])&&(this.DVBOrigonPoint=[l[0],l[3]],this.DVBWidth=Math.abs(l[2]-l[0]),this.DVBHeight=Math.abs(l[1]-l[3]),this.DVBCenterPoint=[this.DVBOrigonPoint[0]+this.DVBWidth/2,this.DVBOrigonPoint[1]+this.DVBHeight/2],this.origonPointOffset=[this.DVBOrigonPoint[0]-a[0],this.DVBOrigonPoint[1]-a[1]],!0)}},{key:"resetLocation",value:function(e){e&&(this.lonlat=e);var t=this.getLocalXY(this.lonlat);t[0]+=this.XOffset,t[1]+=this.YOffset,this.location=t;var r=this.width,n=this.height,o=this.location;return this.chartBounds=new Xe(o[0]-r/2,o[1]+n/2,o[0]+r/2,o[1]-n/2),this.resetLinearGradient(),o}},{key:"resetLinearGradient",value:function(){}},{key:"shapesConvertToRelativeCoordinate",value:function(){for(var e=this.shapes,t=this.location,r=0,n=e.length;r=0?n.push(parseFloat(o[a].toString()).toFixed(r)):n.push(parseFloat(o[a].toString()))}catch(e){throw new Error("not a number")}return n.length===t.length&&n};var Gie=function(e){function t(e,r,n,o,i){var a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(a=Lie(this,t,[e,r,n,o,i])).CLASS_NAME="SuperMap.Feature.Theme.Bar",a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Qie(e,t)}(t,Mie),r=t,(n=[{key:"destroy",value:function(){var e,r,n,o,i;(e=t,r="destroy",n=this,i=Die(Fie(1&(o=3)?e.prototype:e),r,n),2&o&&"function"==typeof i?function(e){return i.apply(n,e)}:i)([])}},{key:"assembleShapes",value:function(){var e={showShadow:!0,shadowBlur:8,shadowColor:"rgba(100,100,100,0.8)",shadowOffsetX:2,shadowOffsetY:2},t=this.setting;if(t.barLinearGradient||(t.barLinearGradient=[["#00FF00","#00CD00"],["#00CCFF","#5E87A2"],["#00FF66","#669985"],["#CCFF00","#94A25E"],["#FF9900","#A2945E"]]),t.dataViewBoxParameter||(void 0===t.useAxis||t.useAxis?t.dataViewBoxParameter=[45,15,15,15]:t.dataViewBoxParameter=[5,5,5,5]),this.initBaseParameter()){var r=this.DVBCodomain;this.DVBUnitValue=(r[1]-r[0])/this.DVBHeight;var n=this.dataViewBox,o=this.dataValues;if(!(o.length<1)){for(var i=0,a=o.length;ir[1])return;var s=this.calculateXShapeInfo();if(s){var u=s.xPositions,l=s.width;(void 0===t.useBackground||t.useBackground)&&this.shapes.push(kc.Background(this.shapeFactory,this.chartBox,t)),(void 0===t.useAxis||t.useAxis)&&(this.shapes=this.shapes.concat(kc.GraphAxis(this.shapeFactory,n,t,s)));for(var c=0;c=t.length&&(r%=t.length);var u=t[r][0],l=t[r][1],c=(new Ai).getLinearGradient(a,0,s,0,[[0,u],[1,l]]);o.style.color=c}}}}])&&Nie(r.prototype,n),o&&Nie(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Uie(e){"@babel/helpers - typeof";return(Uie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function zie(e,t){for(var r=0;rt[1])return;var a=this.calculateXShapeInfo();if(a){var s=a.xPositions,u=a.width;(void 0===e.useBackground||e.useBackground)&&this.shapes.push(kc.Background(this.shapeFactory,this.chartBox,e)),(!e.axis3DParameter||isNaN(e.axis3DParameter)||e.axis3DParameter<15)&&(e.axis3DParameter=20),(void 0===e.useAxis||e.useAxis)&&(this.shapes=this.shapes.concat(kc.GraphAxis(this.shapeFactory,r,e,a)));for(var l=e.bar3DParameter&&!isNaN(e.bar3DParameter)?e.bar3DParameter:10,c=0;c=s[2]||s[1]<=s[3])&&(this.DVBOrigonPoint=[s[0],s[3]],this.DVBWidth=Math.abs(s[2]-s[0]),this.DVBHeight=Math.abs(s[1]-s[3]),this.DVBCenterPoint=[this.DVBOrigonPoint[0]+this.DVBWidth/2,this.DVBOrigonPoint[1]+this.DVBHeight/2],this.origonPointOffset=[this.DVBOrigonPoint[0]-o[0],this.DVBOrigonPoint[1]-o[1]],!0)}}])&&Xie(r.prototype,n),o&&Xie(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function oae(e){"@babel/helpers - typeof";return(oae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function iae(e,t){for(var r=0;r0?this.DVBUnitValue=e.maxR/(o[1]-o[0]):this.DVBUnitValue=e.maxR;var i=this.DVBUnitValue,a=n[0]*i+e.minR;if(this.width=2*a,this.height=2*a,this.initBaseParameter()&&(!o||!(n[0]o[1]))){var s=this.DVBCenterPoint,u=new El(s[0],s[1],a);u.style=kc.ShapeStyleTool(null,e.circleStyle,null,null,0),void 0!==e.fillColor?u.style.fillColor=e.fillColor:u.style.fillColor="#ff9277",u.highlightStyle=kc.ShapeStyleTool(null,e.circleHoverStyle),void 0!==e.circleHoverAble&&(u.hoverable=e.circleHoverAble),void 0!==e.circleClickAble&&(u.clickable=e.circleClickAble),u.refDataID=this.data.id,u.dataInfo={field:this.fields[0],r:a,value:n[0]},this.shapes.push(this.shapeFactory.createShape(u)),this.shapesConvertToRelativeCoordinate()}}}])&&iae(r.prototype,n),o&&iae(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function pae(e){"@babel/helpers - typeof";return(pae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function hae(e,t){for(var r=0;rr[1])return null;a=u[f],s=t[1]-(o[f]-r[0])/n;var h=new Su(a,s);h.style=kc.ShapeStyleTool({fillColor:"#ee9900"},e.pointStyle,e.pointStyleByFields,e.pointStyleByCodomain,f,o[f]),h.highlightStyle=kc.ShapeStyleTool(null,e.pointHoverStyle),void 0!==e.pointHoverAble&&(h.hoverable=e.pointHoverAble),void 0!==e.pointClickAble&&(h.clickable=e.pointClickAble),h.refDataID=this.data.id,h.dataInfo={field:this.fields[f],value:o[f]},c.push(this.shapeFactory.createShape(h));var y=[a,s];l.push(y)}var d=new ku(l);d.style=kc.ShapeStyleTool({strokeColor:"#ee9900"},e.lineStyle),d.clickable=!1,d.hoverable=!1;var m=this.shapeFactory.createShape(d);this.shapes.push(m),this.shapes=this.shapes.concat(c),this.shapesConvertToRelativeCoordinate()}}}}},{key:"calculateXShapeInfo",value:function(){var e,t=this.dataViewBox,r=this.setting,n=this.dataValues.length;if(n<1)return null;var o=[],i=this.DVBWidth,a=0;if(r.xShapeBlank&&r.xShapeBlank.length&&2==r.xShapeBlank.length){var s=i-((e=r.xShapeBlank)[0]+e[1]);if(s<=n)return null;a=s/(n-1)}else e=[a=i/(n+1),a,a];for(var u=0,l=0;ln[1])return;for(var i=0,a=0;a=360&&(c=359.9999999);var d=new el(u[0],u[1],p,l,c);if(void 0===e.sectorStyleByFields){var m=h%t.length;d.style=kc.ShapeStyleTool(null,e.sectorStyle,t,null,m)}else d.style=kc.ShapeStyleTool(null,e.sectorStyle,e.sectorStyleByFields,e.sectorStyleByCodomain,h,r[h]);d.highlightStyle=kc.ShapeStyleTool(null,e.sectorHoverStyle),void 0!==e.sectorHoverAble&&(d.hoverable=e.sectorHoverAble),void 0!==e.sectorClickAble&&(d.clickable=e.sectorClickAble),d.refDataID=this.data.id,d.dataInfo={field:this.fields[h],value:r[h]},this.shapes.push(this.shapeFactory.createShape(d)),l=c}this.shapesConvertToRelativeCoordinate()}}}}])&&wae(r.prototype,n),o&&wae(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function xae(e){"@babel/helpers - typeof";return(xae="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pae(e,t){for(var r=0;rr[1])return null;a=u[l],s=t[1]-(o[l]-r[0])/n;var f=new Su(a,s);f.style=kc.ShapeStyleTool({fillColor:"#ee9900"},e.pointStyle,e.pointStyleByFields,e.pointStyleByCodomain,l,o[l]),f.highlightStyle=kc.ShapeStyleTool(null,e.pointHoverStyle),void 0!==e.pointHoverAble&&(f.hoverable=e.pointHoverAble),void 0!==e.pointClickAble&&(f.clickable=e.pointClickAble),f.refDataID=this.data.id,f.dataInfo={field:this.fields[l],value:o[l]},this.shapes.push(this.shapeFactory.createShape(f))}this.shapesConvertToRelativeCoordinate()}}}},{key:"calculateXShapeInfo",value:function(){var e,t=this.dataViewBox,r=this.setting,n=this.dataValues.length;if(n<1)return null;var o=[],i=this.DVBWidth,a=0;if(r.xShapeBlank&&r.xShapeBlank.length&&2==r.xShapeBlank.length){var s=i-((e=r.xShapeBlank)[0]+e[1]);if(s<=n)return null;a=s/(n-1)}else e=[a=i/(n+1),a,a];for(var u=0,l=0;ln[1])return;for(var i=0,a=0;a=0&&t.innerRingRadius1&&void 0!==arguments[1]?arguments[1]:"warring";"success"===t?(this.icon.setAttribute("class","supermapol-icons-message-success"),this.messageBoxContainer.setAttribute("class","component-messageboxcontainer component-border-bottom-green")):"failure"===t?(this.icon.setAttribute("class","supermapol-icons-message-failure"),this.messageBoxContainer.setAttribute("class","component-messageboxcontainer component-border-bottom-red")):"warring"===t&&(this.icon.setAttribute("class","supermapol-icons-message-warning"),this.messageBoxContainer.setAttribute("class","component-messageboxcontainer component-border-bottom-orange")),this.messageBox.innerHTML=e,this.messageBoxContainer.hidden=!1}}])&&qae(e.prototype,t),r&&qae(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),Yae=function(){try{return echarts}catch(e){return{}}}(),Jae={"en-US":{title_dataFlowService:"Data Flow Service",title_distributedAnalysis:"Distributed Analysis",title_clientComputing:"Client Computing",title_dataServiceQuery:"Data Service Query",title_searchCity:"Search city",title_searchLayer:" Search layer",text_input_value_inputDataFlowUrl:"Please enter the data stream service address such as: ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe",text_displayFeaturesInfo:"Display feature information",text_subscribe:"subscribe",text_cancelSubscribe:"unsubscribe",text_densityAnalysis:"Density Analysis",text_CalculateTheValuePerUnitArea:"Calculate the value per unit area within the neighborhood shape",text_option_selectDataset:"Please select a dataset",text_label_dataset:"Dataset",text_option_simplePointDensityAnalysis:"Simple point density analysis",text_option_nuclearDensityAnalysis:"Nuclear density analysis",text_label_analyticalMethod:"Analytical method",text_option_quadrilateral:"Quadrilateral",text_option_hexagon:"hexagon",text_label_meshType:"Mesh type",text_option_notSet:"Not set",text_label_weightField:"Weight field",text_label_gridSizeInMeters:"Grid size",text_label_searchRadius:"Search radius",text_label_queryRange:"Scope of analysis",text_label_areaUnit:"Area unit",text_option_equidistantSegmentation:"Equidistant segmentation",text_option_logarithm:"Logarithm",text_option_equalCountingSegment:"Equal counting segment",text_option_squareRootSegmentation:"Square root segmentation",text_label_thematicMapSegmentationMode:"Thematic map segmentation mode",text_label_thematicMapSegmentationParameters:"Thematic map segmentation parameters",text_option_greenOrangePurpleGradient:"Green orange purple gradient",text_option_greenOrangeRedGradient:"Green orange red gradient",text_option_rainbowGradient:"Rainbow gradient",text_option_spectralGradient:"Spectral gradient",text_option_terrainGradient:"Terrain gradient",text_label_thematicMapColorGradientMode:"Thematic map color gradient mode",text_label_resultLayerName:"Result layer name",text_chooseFile:"Open File",text_isoline:"Isoline",text_extractDiscreteValue:"Extract discrete value generation curve",text_buffer:"Buffer",text_specifyTheDistance:"Specify the distance to create the surrounding area",text_label_analysisLayer:"Analysis layer",text_label_extractField:"Extract field",text_label_extractedValue:"Extracted value",text_label_distanceAttenuation:"Distance attenuation",text_label_gridSize:"gridSize",text_label_bufferRadius:"Buffer radius",text_label_defaultkilometers:"Default 10 kilometers",text_label_kilometer:"kilometer",text_label_unit:"unit",text_retainOriginal:"Retain original object field",text_mergeBuffer:"Merge buffer",text_label_color:"Color",text_label_buffer:"[Buffer]",text_label_isolines:"[Isolines]",text_label_queryRangeTips:"The default is the full range of input data. Example: -74.050, 40.650, -73.850, 40.850",text_label_queryModel:"Query mode",text_label_IDArrayOfFeatures:"ID array of features",text_label_maxFeatures:"The maximum number of features that can be returned",text_label_bufferDistance:"Buffer distance",text_label_queryRange1:"Query range",text_label_spatialQueryMode:"Spatial query mode",text_label_featureFilter:"Feature filter",text_label_geometricObject:"Geometric object",text_label_queryMode:"Query mode",text_label_searchTips:"Search for city locations or layer features",text_label_chooseSearchLayers:"Select a query layer",text_loadSearchCriteria:"Load search criteria",text_saveSearchCriteria:"Save search criteria",btn_analyze:"Analyze",btn_analyzing:"Analyzing",btn_emptyTheAnalysisLayer:"Empty the analysis layer",btn_cancelAnalysis:"Cancel",btn_query:"Query",btn_querying:"Querying",btn_emptyTheRresultLayer:"Clear all result layers","msg_dataReturnedIsEmpty.":"The request is successful and the data returned by the query is empty.",msg_dataFlowServiceHasBeenSubscribed:"The data stream service has been subscribed to.",msg_inputDataFlowUrlFirst:"Please enter the data stream service address first.",msg_datasetOrMethodUnsupport:"This dataset does not support this analysis type. Please reselect the dataset.",msg_selectDataset:"Please select a data set!",msg_setTheWeightField:"Please set the weight field!",msg_theFieldNotSupportAnalysis:"The field you currently select does not support analysis!",msg_resultIsEmpty:"The result of the analysis is empty!",msg_openFileFail:"Failed to open file!",msg_fileTypeUnsupported:"File format is not supported!",msg_fileSizeExceeded:"File size exceeded! The file size should not exceed 10M!",msg_dataInWrongGeoJSONFormat:"Wrong data format! Non standard GEOJSON format data!",msg_dataInWrongFormat:"Wrong data format! Non standard EXCEL, CSV or GEOJSON format data!",msg_searchKeywords:"Search keywords cannot be empty. Please enter your search criteria.",msg_searchGeocodeField:"Did not match the address matching service data!",msg_cityGeocodeField:"The address matching service of the current city is not configured.",msg_getFeatureField:"No related vector features found!",msg_dataflowservicesubscribed:"The data stream service has been subscribed to.",msg_subscribesucceeded:"The data stream service subscription was successful.",msg_crsunsupport:"Does not support the coordinate system of the current map",msg_tilematrixsetunsupport:"Incoming TileMatrixSet is not supported",msg_jsonResolveFiled:"JSON format parsing failure!",msg_requestContentFiled:"Failed to request data through iportal!",msg_getdatafailed:"Failed to get data!"},"zh-CN":{title_dataFlowService:"数据流服务",title_distributedAnalysis:"分布式分析",title_clientComputing:"客户端计算",title_dataServiceQuery:"数据服务查询",title_searchCity:"搜索城市",title_searchLayer:"搜索图层",text_input_value_inputDataFlowUrl:"请输入数据流服务地址如:ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe",text_displayFeaturesInfo:"显示要素信息",text_subscribe:"订阅",text_cancelSubscribe:"取消订阅",text_densityAnalysis:"密度分析",text_CalculateTheValuePerUnitArea:"计算点指定邻域形状内的每单位面积量值",text_option_selectDataset:"请选择数据集",text_label_dataset:"数据集",text_option_simplePointDensityAnalysis:"简单点密度分析",text_option_nuclearDensityAnalysis:"核密度分析",text_label_analyticalMethod:"分析方法",text_option_quadrilateral:"四边形",text_option_hexagon:"六边形",text_label_meshType:"网格面类型",text_option_notSet:"未设置",text_label_weightField:"权重字段",text_label_gridSizeInMeters:"网格大小",text_label_searchRadius:"搜索半径",text_label_queryRange:"分析范围",text_label_areaUnit:"面积单位",text_option_equidistantSegmentation:"等距离分段",text_option_logarithm:"对数",text_option_equalCountingSegment:"等计数分段",text_option_squareRootSegmentation:"平方根分段",text_label_thematicMapSegmentationMode:"专题图分段模式",text_label_thematicMapSegmentationParameters:"专题图分段参数",text_option_greenOrangePurpleGradient:"绿橙紫渐变",text_option_greenOrangeRedGradient:"绿橙红渐变",text_option_rainbowGradient:"彩虹渐变",text_option_spectralGradient:"光谱渐变",text_option_terrainGradient:"地形渐变",text_label_thematicMapColorGradientMode:"专题图颜色渐变模式",text_label_resultLayerName:"结果图层名称",text_chooseFile:"选择文件",text_isoline:"等值线",text_extractDiscreteValue:"提取离散值生成曲线",text_buffer:"缓冲区",text_specifyTheDistance:"指定距离创建周边区域",text_label_analysisLayer:"分析图层",text_label_extractField:"提取字段",text_label_extractedValue:"提取值",text_label_distanceAttenuation:"距离衰减",text_label_gridSize:"栅格大小",text_label_bufferRadius:"缓冲半径",text_label_defaultkilometers:"默认10千米",text_option_kilometer:"千米",text_label_unit:"单位",text_retainOriginal:"保留原对象字段属性",text_mergeBuffer:"合并缓冲区",text_label_color:"颜色",text_label_buffer:"[缓冲区]",text_label_isolines:"[等值线]",text_label_queryRangeTips:"默认为输入数据的全幅范围。范例:-74.050,40.650,-73.850,40.850",text_label_IDArrayOfFeatures:"要素 ID 数组",text_label_maxFeatures:"最多可返回的要素数量",text_label_bufferDistance:"缓冲区距离",text_label_queryRange1:"查询范围",text_label_spatialQueryMode:"空间查询模式",text_label_featureFilter:"要素过滤器",text_label_geometricObject:"几何对象",text_label_queryMode:"查询模式",text_label_searchTips:"搜索城市地点或图层要素",text_label_chooseSearchLayers:"选择查询图层",text_loadSearchCriteria:"加载搜索条件",text_saveSearchCriteria:"保存搜索条件",btn_analyze:"分析",btn_analyzing:"分析中",btn_emptyTheAnalysisLayer:"清空分析图层",btn_cancelAnalysis:"取消",btn_query:"查询",btn_querying:"查询中",btn_emptyTheRresultLayer:"清除所有结果图层",msg_dataFlowServiceHasBeenSubscribed:"已订阅该数据流服务。",msg_inputDataFlowUrlFirst:"请先输入数据流服务地址。",msg_datasetOrMethodUnsupport:"该数据集不支持本分析类型,请重新选择数据集",msg_selectDataset:"请选择数据集!",msg_setTheWeightField:"请设置权重字段!",msg_theFieldNotSupportAnalysis:"您当前选择的字段不支持分析!",msg_resultIsEmpty:"分析的结果为空!",msg_dataReturnedIsEmpty:"请求成功,查询返回的数据为空。",msg_openFileFail:"打开文件失败!",msg_fileTypeUnsupported:"不支持该文件格式!",msg_fileSizeExceeded:"文件大小超限!文件大小不得超过 10M!",msg_dataInWrongGeoJSONFormat:"数据格式错误!非标准的 GEOJSON 格式数据!",msg_dataInWrongFormat:"数据格式错误!非标准的 EXCEL, CSV 或 GEOJSON 格式数据!",msg_searchKeywords:"搜索关键字不能为空,请输入搜索条件。",msg_searchGeocodeField:"未匹配到地址匹配服务数据!",msg_cityGeocodeField:"未配置当前城市的地址匹配服务。",msg_getFeatureField:"未查找到相关矢量要素!",msg_dataflowservicesubscribed:"已订阅该数据流服务。",msg_subscribesucceeded:"数据流服务订阅成功。",msg_crsunsupport:"不支持当前地图的坐标系",msg_tilematrixsetunsupport:"不支持传入的TileMatrixSet",msg_jsonResolveFiled:"json格式解析失败!",msg_requestContentFiled:"通过iportal请求数据失败!",msg_getdatafailed:"获取数据失败!"},code:null,defaultCode:"en-US",getCode:function(){return Jae.code||Jae.setCode(),Jae.code},setCode:function(){var e=this.getLanguageFromCookie();e||(e=Jae.defaultCode,e="Netscape"===navigator.appName?navigator.language:navigator.browserLanguage),0===e.indexOf("zh")&&(e="zh-CN"),0===e.indexOf("en")&&(e="en-US"),Jae.code=e},getLanguageFromCookie:function(){for(var e=document.cookie.split(";"),t=0;t0){var a=i.SheetNames[0],s=Wae.utils.sheet_to_csv(i.Sheets[a]);t&&t.call(n,s)}}catch(e){r&&r.call(n,e)}},o.onerror=function(e){r&&r.call(n,e)},this.rABF&&o.readAsArrayBuffer(e.file)},processDataToGeoJson:function(e,t,r,n,o){var i=null;if("EXCEL"===e||"CSV"===e)i=this.processExcelDataToGeoJson(t),r&&r.call(o,i);else if("JSON"===e||"GEOJSON"===e){var a=t;"string"==typeof a&&(a=JSON.parse(a)),"ISERVER"===a.type?i=a.data.recordsets[0].features:"FeatureCollection"===a.type?i=a:n&&n.call(o,Jae.i18n("msg_dataInWrongGeoJSONFormat")),r&&r.call(o,i)}else n&&n.call(o,Jae.i18n("msg_dataInWrongFormat"))},processExcelDataToGeoJson:function(e){for(var t=this.string2Csv(e),r=t.colTitles,n=-1,o=-1,i=0,a=r.length;i0?(n.dataItemServices.forEach(function(n){if("RESTDATA"===n.serviceType&&"PUBLISHED"===n.serviceStatus)o=n;else{if("RESTMAP"!==n.serviceType||"PUBLISHED"!==n.serviceStatus)return void r.getDatafromContent(e,t);o=n}}),o&&r.getDatafromRest(o.serviceType,o.address,t)):r.getDatafromContent(e,t):r._fireFailedEvent(n)}).catch(function(e){console.log(e),r._fireFailedEvent(e)})}},{key:"getDatafromContent",value:function(e,t){var r=this,n={result:{}},o=this;e+="/content.json?pageSize=9999999¤tPage=1",H.get(e,null,{withCredentials:this.datasets.withCredentials}).then(function(e){return e.json()}).then(function(e){if(!1!==e.succeed){if(e.type){if("JSON"===e.type||"GEOJSON"===e.type){if(e.content=JSON.parse(e.content.trim()),!e.content.features)return void console.log(Jae.i18n("msg_jsonResolveFiled"));var i=r._formatGeoJSON(e.content);n.result.features={type:e.content.type,features:i}}else if("EXCEL"===e.type||"CSV"===e.type){var a=r._excelData2Feature(e.content);n.result.features={type:"FeatureCollection",features:a}}t(n,"content")}}else o._fireFailedEvent(e)},this).catch(function(e){console.log(e),o._fireFailedEvent(e)})}},{key:"getDatafromRest",value:function(e,t,r){var n=this,o=this.datasets.withCredentials;if("RESTDATA"===e){var i,a,s="".concat(t,"/data/datasources");H.get(s,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){i=e.datasourceNames[0],s="".concat(t,"/data/datasources/").concat(i,"/datasets"),H.get(s,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){return a=e.datasetNames[0],n.getDatafromRestData("".concat(t,"/data"),[i+":"+a],r),[i+":"+a]}).catch(function(e){n._fireFailedEvent(e)})}).catch(function(e){n._fireFailedEvent(e)})}else{var u,l,c,f="".concat(t,"/maps");H.get(f,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){u=e[0].name,c=e[0].path,f=f="".concat(t,"/maps/").concat(u,"/layers"),H.get(f,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){return l=e[0].subLayers.layers[0].caption,n.getDatafromRestMap(l,c,r),l}).catch(function(e){n._fireFailedEvent(e)})}).catch(function(e){n._fireFailedEvent(e)})}}},{key:"getDatafromRestData",value:function(e,t,r){var n=this;this.datasets.queryInfo.attributeFilter=this.datasets.queryInfo.attributeFilter||"SmID>0",this._getFeatureBySQL(e,t,this.datasets.queryInfo,function(e){r(e,"RESTDATA")},function(e){console.log(e),n._fireFailedEvent(e)})}},{key:"getDatafromRestMap",value:function(e,t,r){var n=this;this.datasets.queryInfo.attributeFilter=this.datasets.queryInfo.attributeFilter||"smid=1",this._queryFeatureBySQL(t,e,this.datasets.queryInfo,null,null,function(e){r(e,"RESTMAP")},function(e){console.log(e),n._fireFailedEvent(e)})}},{key:"_getFeatureBySQL",value:function(e,t,r,n,o){var i,a,s={name:t.join().replace(":","@")};Object.assign(s,r),i=new sR(s),a=new NR({queryParameter:i,datasetNames:t,fromIndex:0,toIndex:1e5,returnContent:!0}),new zR(e).processAsync(a,function(e){"processCompleted"===e.type?n&&n(e):o&&o(e)})}},{key:"_queryFeatureBySQL",value:function(e,t,r,n,o,i,a,s,u,l){var c,f,p={name:t};Object.assign(p,r),c=new sR(p),n&&(c.fields=n);var h={queryParams:[c]};l&&(h.queryOption=hn.ATTRIBUTE),s&&(h.startRecord=s),u&&(h.expectCount=u),o&&(h.prjCoordSys={epsgCode:o}),f=new VW(h),this._queryBySQL(e,f,function(e){"processCompleted"===e.type?i(e):a(e)})}},{key:"_queryBySQL",value:function(e,t,r,n){new eX(e,{format:this._processFormat(n)}).processAsync(t,r)}},{key:"_processFormat",value:function(e){return e||cn.GEOJSON}},{key:"_formatGeoJSON",value:function(e){var t=e.features;return t.forEach(function(e,t){e.properties.index=t}),t}},{key:"_excelData2Feature",value:function(e){for(var t=e.colTitles,r=-1,n=-1,o=0,i=t.length;o=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function use(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&e.forEach(function(e){e.xAxis&&t.xField.push({field:e.xAxis.field,name:e.xAxis.name}),e.yAxis&&t.yField.push({field:e.yAxis.field,name:e.yAxis.name})})}},{key:"getDatasetInfo",value:function(e){var t=this;this.createChart=e,this.datasets&&this._checkUrl(this.datasets.url)&&(this.chartModel=new ise(this.datasets),"iServer"===this.datasets.type?this.chartModel.getDatasetInfo(this._getDatasetInfoSuccess.bind(this)):"iPortal"===this.datasets.type&&this.chartModel.getDataInfoByIptl(this._getDataInfoSuccess.bind(this)),this.chartModel.events.on({getdatafailed:function(e){t.events.triggerEvent("getdatafailed",e)}}))}},{key:"_getDatasetInfoSuccess",value:function(e){var t=this.datasets.url,r=t.indexOf("rest");if(r>0){var n=t.indexOf("/",r+5),o=t.substring(r+5,n),i=t.substring(0,r+4)+"/data";if("maps"===o){var a=t.indexOf("/",n+1),s=t.substring(n+1,a);i=t.substring(0,r+4)+"/maps/"+s,e.result.dataUrl=i,this._getLayerFeatures(e)}else"data"===o&&(e.result.dataUrl=i,this._getDataFeatures(e))}}},{key:"_getDataInfoSuccess",value:function(e,t){"RESTMAP"===t?this._getChartDatasFromLayer(e):this._getChartDatas(e)}},{key:"_getDataFeatures",value:function(e){this.chartModel.getDataFeatures(e,this._getChartDatas.bind(this))}},{key:"_getLayerFeatures",value:function(e){this.chartModel.getLayerFeatures(e,this._getChartDatasFromLayer.bind(this))}},{key:"_getChartDatas",value:function(e){if(e){this.features=e.result.features;var t=this.features.features,r={};if(t.length){var n=t[0],o=[],i=[];for(var a in n.properties)o.push(a),i.push(this._getDataType(n.properties[a]));for(var s in r={features:t,fieldCaptions:o,fieldTypes:i,fieldValues:[]},i){var u=[];for(var l in t){var c=t[l],f=r.fieldCaptions[s],p=c.properties[f];u.push(p)}r.fieldValues.push(u)}this.createChart(r)}}}},{key:"_getChartDatasFromLayer",value:function(e){if(e.result.recordsets){var t=e.result.recordsets[0],r=t.features.features;this.features=t.features;var n={};if(r.length){for(var o in(n={features:t.features,fieldCaptions:t.fieldCaptions,fieldTypes:t.fieldTypes,fieldValues:[]}).fieldCaptions){var i=[];for(var a in r){var s=r[a],u=n.fieldCaptions[o],l=s.properties[u];i.push(l)}n.fieldValues.push(i)}this.createChart(n)}}}},{key:"_createChartOptions",value:function(e){return this.calculatedData=this._createChartDatas(e),this.updateChartOptions(this.chartType)}},{key:"changeType",value:function(e){if(e!==this.chartType)return this.chartType=e,this.updateChartOptions(this.chartType)}},{key:"updateData",value:function(e,t,r){this.updateChart=r,this.xField=[],this.yField=[],this._initXYField(t),e.type=e.type||"iServer",e.withCredentials=e.withCredentials||!1,this.datasets=e,this.getDatasetInfo(this._updateDataSuccess.bind(this))}},{key:"_updateDataSuccess",value:function(e){var t=this._createChartOptions(e);this.updateChart(t)}},{key:"updateChartOptions",value:function(e,t){if(this.calculatedData){var r=this.grid,n=this._createChartSeries(this.calculatedData,e),o=[];for(var i in this.calculatedData.XData)o.push({value:this.calculatedData.XData[i].fieldsData});var a={type:"category",name:this.xField[0].name||"X",data:o,nameTextStyle:{color:"#fff",fontSize:14},splitLine:{show:!1},axisLine:{lineStyle:{color:"#eee"}}},s={type:"value",name:this.yFieldName||"Y",data:{},nameTextStyle:{color:"#fff",fontSize:14},splitLine:{show:!1},axisLine:{lineStyle:{color:"#eee"}}},u={formatter:"{b0}: {c0}"},l="#404a59";return t&&(t.grid&&(r=t.grid),t.tooltip&&(u=t.tooltip),t.backgroundColor&&(l=t.backgroundColor)),{backgroundColor:l,grid:r,series:n,xAxis:a,yAxis:s,tooltip:u}}}},{key:"_createChartDatas",value:function(e){var t=0,r=[],n=e.fieldCaptions,o=this;n.forEach(function(e,r){o.xField[0]&&e===o.xField[0].field&&(t=r)}),this.yFieldName="",this.yField.forEach(function(e,t){0!==t&&(o.yFieldName=o.yFieldName+","),o.yFieldName=o.yFieldName+e.name,n.forEach(function(t,n){t===e.field&&r.push(n)})});var i=this._getAttrData(e,t),a=[];if(r.length>0)r.forEach(function(t){var r=[];for(var n in e.fieldValues[t])r.push({value:e.fieldValues[t][n]});a.push(r)});else{for(var s=[],u=[],l=i.length,c=0;c0;e--)this.header.removeChild(this.header.children[e]),this.content.removeChild(this.content.children[e])}},{key:"_changeTabsPage",value:function(e){for(var t=e.target.index,r=0;r0;t--)this.content.removeChild(this.content.children[t-1]);var r=this.config[e];for(var n in r)this._createCityItem(n,r[n])}},{key:"_createCityItem",value:function(e,t){var r=document.createElement("div"),n=document.createElement("div");n.setAttribute("class","component-citytabpag__py-key"),n.innerHTML=e,r.appendChild(n);var o=document.createElement("div");o.setAttribute("class","component-citytabpag__content");for(var i=0;i0&&this.appendTabs(e),this.rootContainer=t}},{key:"setTabs",value:function(e){this.removeAllTabs(),this.appendTabs(e)}},{key:"appendTabs",value:function(e){for(var t=0;t0;e--)this.navTabsTitle.removeChild(this.navTabsTitle.children[e]),this.navTabsContent.removeChild(this.navTabsContent.children[e])}},{key:"_changeTabsPage",value:function(e){for(var t=e.target.index,r=0;r=0;e--)this.content.removeChild(this.content.children[e])}},{key:"setPageLink",value:function(e){this.pageNumberLis=[],this.currentPageNumberLis=[],this.clearPageLink(),this._createPageLi(e),this._appendPageLink()}},{key:"_createPageLi",value:function(e){for(var t=0;t1;e--)this.link.removeChild(this.link.children[e])}},{key:"_createLink",value:function(e){for(var t=0;t<4;t++){var r=document.createElement("li");r.setAttribute("class","disable");var n=document.createElement("span");r.appendChild(n),0===t?(n.id="first",n.setAttribute("class","supermapol-icons-first")):1===t?(n.id="prev",n.setAttribute("class","supermapol-icons-prev")):2===t?(n.id="next",n.setAttribute("class","supermapol-icons-next")):3===t&&(n.id="last",n.setAttribute("class","supermapol-icons-last")),e.appendChild(r)}}},{key:"_changePageEvent",value:function(e){var t=e.target;if("disable"!==t.parentElement.classList[0]){var r;if(t.id)r=t.id;else{if(!Number(t.innerHTML))return;r=Number(t.innerHTML)}this._prePageNum(r),this.clearPageLink(),this._appendPageLink()}}},{key:"_changeDisableState",value:function(){this.link.children[0].setAttribute("class",""),this.link.children[1].setAttribute("class",""),this.link.children[this.link.children.length-1].setAttribute("class",""),this.link.children[this.link.children.length-2].setAttribute("class",""),1===this.currentPage&&(this.link.children[0].setAttribute("class","disable"),this.link.children[1].setAttribute("class","disable")),this.currentPage===this.pageNumberLis.length&&(this.link.children[this.link.children.length-1].setAttribute("class","disable"),this.link.children[this.link.children.length-2].setAttribute("class","disable"))}},{key:"_prePageNum",value:function(e){var t=[];if(this.currentPage="first"===e?1:"last"===e?this.pageNumberLis.length:"prev"===e?this.currentPage-1:"next"===e?this.currentPage+1:e,this.pageNumberLis.length<=5)for(var r=0;r=this.pageNumberLis.length-3)for(var o=this.pageNumberLis.length-5;o0&&(this.currentPageNumberLis=t)}}])&&Cue(r.prototype,n),o&&Cue(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Pue(e){"@babel/helpers - typeof";return(Pue="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function kue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Tue(e){for(var t=1;te.phi1&&(e.phi2-=2*Que),1===e.sweepFlag&&e.phi2n)return[];if(0===n)return[[e*r/(e*e+t*t),t*r/(e*e+t*t)]];var o=Math.sqrt(n);return[[(e*r+t*o)/(e*e+t*t),(t*r-e*o)/(e*e+t*t)],[(e*r-t*o)/(e*e+t*t),(t*r+e*o)/(e*e+t*t)]]}var zue,Hue=Math.PI/180;function que(e,t,r){return(1-r)*e+r*t}function Vue(e,t,r,n){return e+Math.cos(n/180*Que)*t+Math.sin(n/180*Que)*r}function Kue(e,t,r,n){var o=t-e,i=r-t,a=3*o+3*(n-r)-6*i,s=6*(i-o),u=3*o;return Math.abs(a)<1e-6?[-u/s]:function(e,t,r){void 0===r&&(r=1e-6);var n=e*e/4-u/a;if(n<-r)return[];if(n<=r)return[-e/2];var o=Math.sqrt(n);return[-e/2-o,-e/2+o]}(s/a,0,1e-6)}function Yue(e,t,r,n,o){var i=1-o;return e*(i*i*i)+t*(3*i*i*o)+r*(3*i*o*o)+n*(o*o*o)}!function(e){function t(){return o(function(e,t,r){return e.relative&&(void 0!==e.x1&&(e.x1+=t),void 0!==e.y1&&(e.y1+=r),void 0!==e.x2&&(e.x2+=t),void 0!==e.y2&&(e.y2+=r),void 0!==e.x&&(e.x+=t),void 0!==e.y&&(e.y+=r),e.relative=!1),e})}function r(){var e=NaN,t=NaN,r=NaN,n=NaN;return o(function(o,i,a){return o.type&ele.SMOOTH_CURVE_TO&&(o.type=ele.CURVE_TO,e=isNaN(e)?i:e,t=isNaN(t)?a:t,o.x1=o.relative?i-e:2*i-e,o.y1=o.relative?a-t:2*a-t),o.type&ele.CURVE_TO?(e=o.relative?i+o.x2:o.x2,t=o.relative?a+o.y2:o.y2):(e=NaN,t=NaN),o.type&ele.SMOOTH_QUAD_TO&&(o.type=ele.QUAD_TO,r=isNaN(r)?i:r,n=isNaN(n)?a:n,o.x1=o.relative?i-r:2*i-r,o.y1=o.relative?a-n:2*a-n),o.type&ele.QUAD_TO?(r=o.relative?i+o.x1:o.x1,n=o.relative?a+o.y1:o.y1):(r=NaN,n=NaN),o})}function n(){var e=NaN,t=NaN;return o(function(r,n,o){if(r.type&ele.SMOOTH_QUAD_TO&&(r.type=ele.QUAD_TO,e=isNaN(e)?n:e,t=isNaN(t)?o:t,r.x1=r.relative?n-e:2*n-e,r.y1=r.relative?o-t:2*o-t),r.type&ele.QUAD_TO){e=r.relative?n+r.x1:r.x1,t=r.relative?o+r.y1:r.y1;var i=r.x1,a=r.y1;r.type=ele.CURVE_TO,r.x1=((r.relative?0:n)+2*i)/3,r.y1=((r.relative?0:o)+2*a)/3,r.x2=(r.x+2*i)/3,r.y2=(r.y+2*a)/3}else e=NaN,t=NaN;return r})}function o(e){var t=0,r=0,n=NaN,o=NaN;return function(i){if(isNaN(n)&&!(i.type&ele.MOVE_TO))throw new Error("path must start with moveto");var a=e(i,t,r,n,o);return i.type&ele.CLOSE_PATH&&(t=n,r=o),void 0!==i.x&&(t=i.relative?t+i.x:i.x),void 0!==i.y&&(r=i.relative?r+i.y:i.y),i.type&ele.MOVE_TO&&(n=t,o=r),a}}function i(e,t,r,n,i,a){return Fue(e,t,r,n,i,a),o(function(o,s,u,l){var c=o.x1,f=o.x2,p=o.relative&&!isNaN(l),h=void 0!==o.x?o.x:p?0:s,y=void 0!==o.y?o.y:p?0:u;function d(e){return e*e}o.type&ele.HORIZ_LINE_TO&&0!==t&&(o.type=ele.LINE_TO,o.y=o.relative?0:u),o.type&ele.VERT_LINE_TO&&0!==r&&(o.type=ele.LINE_TO,o.x=o.relative?0:s),void 0!==o.x&&(o.x=o.x*e+y*r+(p?0:i)),void 0!==o.y&&(o.y=h*t+o.y*n+(p?0:a)),void 0!==o.x1&&(o.x1=o.x1*e+o.y1*r+(p?0:i)),void 0!==o.y1&&(o.y1=c*t+o.y1*n+(p?0:a)),void 0!==o.x2&&(o.x2=o.x2*e+o.y2*r+(p?0:i)),void 0!==o.y2&&(o.y2=f*t+o.y2*n+(p?0:a));var m=e*n-t*r;if(void 0!==o.xRot&&(1!==e||0!==t||0!==r||1!==n))if(0===m)delete o.rX,delete o.rY,delete o.xRot,delete o.lArcFlag,delete o.sweepFlag,o.type=ele.LINE_TO;else{var g=o.xRot*Math.PI/180,v=Math.sin(g),b=Math.cos(g),A=1/d(o.rX),w=1/d(o.rY),S=d(b)*A+d(v)*w,C=2*v*b*(A-w),E=d(v)*A+d(b)*w,_=S*n*n-C*t*n+E*t*t,O=C*(e*n+t*r)-2*(S*r*n+E*e*t),I=S*r*r-C*e*r+E*e*e,x=(Math.atan2(O,_-I)+Math.PI)%Math.PI/2,P=Math.sin(x),k=Math.cos(x);o.rX=Math.abs(m)/Math.sqrt(_*d(k)+O*P*k+I*d(P)),o.rY=Math.abs(m)/Math.sqrt(_*d(P)-O*P*k+I*d(k)),o.xRot=180*x/Math.PI}return void 0!==o.sweepFlag&&0>m&&(o.sweepFlag=+!o.sweepFlag),o})}e.ROUND=function(e){function t(t){return Math.round(t*e)/e}return void 0===e&&(e=1e13),Fue(e),function(e){return void 0!==e.x1&&(e.x1=t(e.x1)),void 0!==e.y1&&(e.y1=t(e.y1)),void 0!==e.x2&&(e.x2=t(e.x2)),void 0!==e.y2&&(e.y2=t(e.y2)),void 0!==e.x&&(e.x=t(e.x)),void 0!==e.y&&(e.y=t(e.y)),void 0!==e.rX&&(e.rX=t(e.rX)),void 0!==e.rY&&(e.rY=t(e.rY)),e}},e.TO_ABS=t,e.TO_REL=function(){return o(function(e,t,r){return e.relative||(void 0!==e.x1&&(e.x1-=t),void 0!==e.y1&&(e.y1-=r),void 0!==e.x2&&(e.x2-=t),void 0!==e.y2&&(e.y2-=r),void 0!==e.x&&(e.x-=t),void 0!==e.y&&(e.y-=r),e.relative=!0),e})},e.NORMALIZE_HVZ=function(e,t,r){return void 0===e&&(e=!0),void 0===t&&(t=!0),void 0===r&&(r=!0),o(function(n,o,i,a,s){if(isNaN(a)&&!(n.type&ele.MOVE_TO))throw new Error("path must start with moveto");return t&&n.type&ele.HORIZ_LINE_TO&&(n.type=ele.LINE_TO,n.y=n.relative?0:i),r&&n.type&ele.VERT_LINE_TO&&(n.type=ele.LINE_TO,n.x=n.relative?0:o),e&&n.type&ele.CLOSE_PATH&&(n.type=ele.LINE_TO,n.x=n.relative?a-o:a,n.y=n.relative?s-i:s),n.type&ele.ARC&&(0===n.rX||0===n.rY)&&(n.type=ele.LINE_TO,delete n.rX,delete n.rY,delete n.xRot,delete n.lArcFlag,delete n.sweepFlag),n})},e.NORMALIZE_ST=r,e.QT_TO_C=n,e.INFO=o,e.SANITIZE=function(e){void 0===e&&(e=0),Fue(e);var t=NaN,r=NaN,n=NaN,i=NaN;return o(function(o,a,s,u,l){var c=Math.abs,f=!1,p=0,h=0;if(o.type&ele.SMOOTH_CURVE_TO&&(p=isNaN(t)?0:a-t,h=isNaN(r)?0:s-r),o.type&(ele.CURVE_TO|ele.SMOOTH_CURVE_TO)?(t=o.relative?a+o.x2:o.x2,r=o.relative?s+o.y2:o.y2):(t=NaN,r=NaN),o.type&ele.SMOOTH_QUAD_TO?(n=isNaN(n)?a:2*a-n,i=isNaN(i)?s:2*s-i):o.type&ele.QUAD_TO?(n=o.relative?a+o.x1:o.x1,i=o.relative?s+o.y1:o.y2):(n=NaN,i=NaN),o.type&ele.LINE_COMMANDS||o.type&ele.ARC&&(0===o.rX||0===o.rY||!o.lArcFlag)||o.type&ele.CURVE_TO||o.type&ele.SMOOTH_CURVE_TO||o.type&ele.QUAD_TO||o.type&ele.SMOOTH_QUAD_TO){var y=void 0===o.x?0:o.relative?o.x:o.x-a,d=void 0===o.y?0:o.relative?o.y:o.y-s;p=isNaN(n)?void 0===o.x1?p:o.relative?o.x:o.x1-a:n-a,h=isNaN(i)?void 0===o.y1?h:o.relative?o.y:o.y1-s:i-s;var m=void 0===o.x2?0:o.relative?o.x:o.x2-a,g=void 0===o.y2?0:o.relative?o.y:o.y2-s;c(y)<=e&&c(d)<=e&&c(p)<=e&&c(h)<=e&&c(m)<=e&&c(g)<=e&&(f=!0)}return o.type&ele.CLOSE_PATH&&c(a-u)<=e&&c(s-l)<=e&&(f=!0),f?[]:o})},e.MATRIX=i,e.ROTATE=function(e,t,r){void 0===t&&(t=0),void 0===r&&(r=0),Fue(e,t,r);var n=Math.sin(e),o=Math.cos(e);return i(o,n,-n,o,t-t*o+r*n,r-t*n-r*o)},e.TRANSLATE=function(e,t){return void 0===t&&(t=0),Fue(e,t),i(1,0,0,1,e,t)},e.SCALE=function(e,t){return void 0===t&&(t=e),Fue(e,t),i(e,0,0,t,0,0)},e.SKEW_X=function(e){return Fue(e),i(1,0,Math.atan(e),1,0,0)},e.SKEW_Y=function(e){return Fue(e),i(1,Math.atan(e),0,1,0,0)},e.X_AXIS_SYMMETRY=function(e){return void 0===e&&(e=0),Fue(e),i(-1,0,0,1,e,0)},e.Y_AXIS_SYMMETRY=function(e){return void 0===e&&(e=0),Fue(e),i(1,0,0,-1,0,e)},e.A_TO_C=function(){return o(function(e,t,r){return ele.ARC===e.type?function(e,t,r){var n,o,i,a;e.cX||Gue(e,t,r);for(var s=Math.min(e.phi1,e.phi2),u=Math.max(e.phi1,e.phi2)-s,l=Math.ceil(u/90),c=new Array(l),f=t,p=r,h=0;hs.maxX&&(s.maxX=e),es.maxY&&(s.maxY=e),eI&&u(Yue(r,o.x1,o.x2,o.x,I));for(var p=0,h=Kue(n,o.y1,o.y2,o.y);pI&&l(Yue(n,o.y1,o.y2,o.y,I))}if(o.type&ele.ARC){u(o.x),l(o.y),Gue(o,r,n);for(var y=o.xRot/180*Math.PI,d=Math.cos(y)*o.rX,m=Math.sin(y)*o.rX,g=-Math.sin(y)*o.rY,v=Math.cos(y)*o.rY,b=o.phi1o.phi2?[o.phi2+360,o.phi1+360]:[o.phi2,o.phi1],A=b[0],w=b[1],S=function(e){var t=e[0],r=e[1],n=180*Math.atan2(r,t)/Math.PI;return nA&&IA&&Iu)throw new SyntaxError('Expected positive number, got "'+u+'" at index "'+o+'"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&"0"!==this.curNumber&&"1"!==this.curNumber)throw new SyntaxError('Expected a flag, got "'+this.curNumber+'" at index "'+o+'"');this.curArgs.push(u),this.curArgs.length===tle[this.curCommandType]&&(ele.HORIZ_LINE_TO===this.curCommandType?n({type:ele.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):ele.VERT_LINE_TO===this.curCommandType?n({type:ele.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===ele.MOVE_TO||this.curCommandType===ele.LINE_TO||this.curCommandType===ele.SMOOTH_QUAD_TO?(n({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),ele.MOVE_TO===this.curCommandType&&(this.curCommandType=ele.LINE_TO)):this.curCommandType===ele.CURVE_TO?n({type:ele.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===ele.SMOOTH_CURVE_TO?n({type:ele.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===ele.QUAD_TO?n({type:ele.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===ele.ARC&&n({type:ele.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!Xue(i))if(","===i&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if("+"!==i&&"-"!==i&&"."!==i)if(s)this.curNumber=i,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError("Unterminated command at index "+o+".");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character "'+i+'" at index '+o+". Command cannot follow comma");if(this.canParseCommandOrComma=!1,"z"!==i&&"Z"!==i)if("h"===i||"H"===i)this.curCommandType=ele.HORIZ_LINE_TO,this.curCommandRelative="h"===i;else if("v"===i||"V"===i)this.curCommandType=ele.VERT_LINE_TO,this.curCommandRelative="v"===i;else if("m"===i||"M"===i)this.curCommandType=ele.MOVE_TO,this.curCommandRelative="m"===i;else if("l"===i||"L"===i)this.curCommandType=ele.LINE_TO,this.curCommandRelative="l"===i;else if("c"===i||"C"===i)this.curCommandType=ele.CURVE_TO,this.curCommandRelative="c"===i;else if("s"===i||"S"===i)this.curCommandType=ele.SMOOTH_CURVE_TO,this.curCommandRelative="s"===i;else if("q"===i||"Q"===i)this.curCommandType=ele.QUAD_TO,this.curCommandRelative="q"===i;else if("t"===i||"T"===i)this.curCommandType=ele.SMOOTH_QUAD_TO,this.curCommandRelative="t"===i;else{if("a"!==i&&"A"!==i)throw new SyntaxError('Unexpected character "'+i+'" at index '+o+".");this.curCommandType=ele.ARC,this.curCommandRelative="a"===i}else t.push({type:ele.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=i,this.curNumberHasDecimal="."===i}else this.curNumber+=i,this.curNumberHasDecimal=!0;else this.curNumber+=i;else this.curNumber+=i,this.curNumberHasExp=!0;else this.curNumber+=i,this.curNumberHasExpDigits=this.curNumberHasExp}return t},t.prototype.transform=function(e){return Object.create(this,{parse:{value:function(t,r){void 0===r&&(r=[]);for(var n=0,o=Object.getPrototypeOf(this).parse.call(this,t);n>>w;if(s[b+3]=Y,0!==Y){var J=255/Y;s[b]=(R*A>>>w)*J,s[b+1]=(L*A>>>w)*J,s[b+2]=(D*A>>>w)*J}else s[b]=s[b+1]=s[b+2]=0;R-=j,L-=M,D-=B,F-=N,j-=m.r,M-=m.g,B-=m.b,N-=m.a;var W=K+i+1;W=v+(W>>w,ae>0?(ae=255/ae,s[Ee]=(fe*A>>>w)*ae,s[Ee+1]=(pe*A>>>w)*ae,s[Ee+2]=(he*A>>>w)*ae):s[Ee]=s[Ee+1]=s[Ee+2]=0,fe-=se,pe-=ue,he-=le,ye-=ce,se-=m.r,ue-=m.g,le-=m.b,ce-=m.a,Ee=re+((Ee=Ce+f)=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function mle(e,t,r){return t=vle(t),gle(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,r||[],vle(e).constructor):t.apply(e,r))}function gle(e,t){if(t&&("object"==ule(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function vle(e){return(vle=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function ble(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ale(e,t)}function Ale(e,t){return(Ale=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function wle(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Sle(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Ple(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Ple(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Ple(f,"constructor",l),Ple(l,"constructor",u),u.displayName="GeneratorFunction",Ple(l,o,"GeneratorFunction"),Ple(f),Ple(f,o,"Generator"),Ple(f,n,function(){return this}),Ple(f,"toString",function(){return"[object Generator]"}),(xle=function(){return{w:i,m:p}})()}function Ple(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Ple=function(e,t,r,n){function i(t,r){Ple(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function kle(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Tle(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){kle(i,n,o,a,s,"next",e)}function s(e){kle(i,n,o,a,s,"throw",e)}a(void 0)})}}function jle(e){return e.replace(/(?!\u3000)\s+/gm," ")}function Mle(e){var t=e.match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm);return t?t.map(parseFloat):[]}var Ble=/^[A-Z-]+$/;function Nle(e){var t=/url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(e);return t&&(t[2]||t[3]||t[4])||""}var Rle=/(\[[^\]]+\])/g,Lle=/(#[^\s+>~.[:]+)/g,Dle=/(\.[^\s+>~.[:]+)/g,Fle=/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi,Qle=/(:[\w-]+\([^)]*\))/gi,Gle=/(:[^\s+>~.[:]+)/g,Ule=/([^\s+>~.[:]+)/g;function zle(e,t){var r=t.exec(e);return r?[e.replace(t," "),r.length]:[e,0]}var Hle=1e-8;function qle(e){return Math.sqrt(Math.pow(e[0],2)+Math.pow(e[1],2))}function Vle(e,t){return(e[0]*t[0]+e[1]*t[1])/(qle(e)*qle(t))}function Kle(e,t){return(e[0]*t[1]0&&void 0!==arguments[0]?arguments[0]:" ",r=this.document,n=this.name;return jle(this.getString()).trim().split(t).map(function(t){return new e(r,n,t)})}},{key:"hasValue",value:function(e){var t=this.value;return null!==t&&""!==t&&(e||0!==t)&&void 0!==t}},{key:"isString",value:function(e){var t=this.value,r="string"==typeof t;return r&&e?e.test(t):r}},{key:"isUrlDefinition",value:function(){return this.isString(/^url\(/)}},{key:"isPixels",value:function(){if(!this.hasValue())return!1;var e=this.getString();switch(!0){case e.endsWith("px"):case/^[0-9]+$/.test(e):return!0;default:return!1}}},{key:"setValue",value:function(e){return this.value=e,this}},{key:"getValue",value:function(e){return void 0===e||this.hasValue()?this.value:e}},{key:"getNumber",value:function(e){if(!this.hasValue())return void 0===e?0:parseFloat(e);var t=this.value,r=parseFloat(t);return this.isString(/%$/)&&(r/=100),r}},{key:"getString",value:function(e){return void 0===e||this.hasValue()?void 0===this.value?"":String(this.value):String(e)}},{key:"getColor",value:function(e){var t=this.getString(e);return this.isNormalizedColor?t:(this.isNormalizedColor=!0,t=function(e){if(!e.startsWith("rgb"))return e;var t=3;return e.replace(/\d+(\.\d+)?/g,function(e,r){return t--&&r?String(Math.round(parseFloat(e))):e})}(t),this.value=t,t)}},{key:"getDpi",value:function(){return 96}},{key:"getRem",value:function(){return this.document.rootEmSize}},{key:"getEm",value:function(){return this.document.emSize}},{key:"getUnits",value:function(){return this.getString().replace(/[0-9.-]/g,"")}},{key:"getPixels",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasValue())return 0;var r=_le("boolean"==typeof e?[void 0,e]:[e],2),n=r[0],o=r[1],i=this.document.screen.viewPort;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(i.computeSize("x"),i.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(i.computeSize("x"),i.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*i.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*i.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return 15*this.getNumber();case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case this.isString(/%$/)&&o:return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*i.computeSize(n);default:var a=this.getNumber();return t&&a<1?a*i.computeSize(n):a}}},{key:"getMilliseconds",value:function(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():1e3*this.getNumber():0}},{key:"getRadians",value:function(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}},{key:"getDefinition",value:function(){var e=this.getString(),t=/#([^)'"]+)/.exec(e),r=(null===t||void 0===t?void 0:t[1])||e;return this.document.definitions.get(r)}},{key:"getFillStyleDefinition",value:function(e,t){var r=this.getDefinition();if(!r)return null;if("function"==typeof r.createGradient&&"getBoundingBox"in e)return r.createGradient(this.document.ctx,e,t);if("function"==typeof r.createPattern){if(r.getHrefAttribute().hasValue()){var n=r.getAttribute("patternTransform");(r=r.getHrefAttribute().getDefinition())&&n.hasValue()&&r.getAttribute("patternTransform",!0).setValue(n.value)}if(r)return r.createPattern(this.document.ctx,e,t)}return null}},{key:"getTextBaseline",value:function(){if(!this.hasValue())return null;var t=this.getString();return e.textBaselineMapping[t]||null}},{key:"addOpacity",value:function(t){for(var r=this.getColor(),n=r.length,o=0,i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=_le(Mle(t),2),o=n[0],i=void 0===o?r:o,a=n[1];return new e(i,void 0===a?r:a)}},{key:"parseScale",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=_le(Mle(t),2),o=n[0],i=void 0===o?r:o,a=n[1];return new e(i,void 0===a?i:a)}},{key:"parsePath",value:function(t){for(var r=Mle(t),n=r.length,o=[],i=0;i0}},{key:"runEvents",value:function(){if(this.working){var e,t=this.screen,r=this.events,n=this.eventElements,o=t.ctx.canvas.style;o&&(o.cursor=""),r.forEach(function(t,r){var o=t.run;for(e=n[r];e;)o(e),e=e.parent}),this.events=[],this.eventElements=[]}}},{key:"checkPath",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;r.forEach(function(r,o){var i=r.x,a=r.y;!n[o]&&t.isPointInPath&&t.isPointInPath(i,a)&&(n[o]=e)})}}},{key:"checkBoundingBox",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;r.forEach(function(r,o){var i=r.x,a=r.y;!n[o]&&t.isPointInBox(i,a)&&(n[o]=e)})}}},{key:"mapXY",value:function(e,t){for(var r=this.screen,n=r.window,o=r.ctx,i=new oce(e,t),a=o.canvas;a;)i.x-=a.offsetLeft,i.y-=a.offsetTop,a=a.offsetParent;return(null===n||void 0===n?void 0:n.scrollX)&&(i.x+=n.scrollX),(null===n||void 0===n?void 0:n.scrollY)&&(i.y+=n.scrollY),i}},{key:"onClick",value:function(e){var t=this.mapXY(e.clientX,e.clientY),r=t.x,n=t.y;this.events.push({type:"onclick",x:r,y:n,run:function(e){e.onClick&&e.onClick()}})}},{key:"onMouseMove",value:function(e){var t=this.mapXY(e.clientX,e.clientY),r=t.x,n=t.y;this.events.push({type:"onmousemove",x:r,y:n,run:function(e){e.onMouseMove&&e.onMouseMove()}})}}])}(),ace="undefined"!=typeof window?window:null,sce="undefined"!=typeof fetch?fetch.bind(void 0):void 0,uce=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.fetch,o=void 0===n?sce:n,i=r.window,a=void 0===i?ace:i;if(wle(this,e),this.ctx=t,this.viewPort=new rce,this.mouse=new ice(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=a,!o)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");this.fetch=o}return Cle(e,[{key:"wait",value:function(e){this.waits.push(e)}},{key:"ready",value:function(){return this.readyPromise?this.readyPromise:Promise.resolve()}},{key:"isReady",value:function(){if(this.isReadyLock)return!0;var e=this.waits.every(function(e){return e()});return e&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=e,e}},{key:"setDefaults",value:function(e){e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4}},{key:"setViewBox",value:function(e){var t=e.document,r=e.ctx,n=e.aspectRatio,o=e.width,i=e.desiredWidth,a=e.height,s=e.desiredHeight,u=e.minX,l=void 0===u?0:u,c=e.minY,f=void 0===c?0:c,p=e.refX,h=e.refY,y=e.clip,d=void 0!==y&&y,m=e.clipX,g=void 0===m?0:m,v=e.clipY,b=void 0===v?0:v,A=_le(jle(n).replace(/^defer\s/,"").split(" "),2),w=A[0],S=A[1],C=w||"xMidYMid",E=S||"meet",_=o/i,O=a/s,I=Math.min(_,O),x=Math.max(_,O),P=i,k=s;"meet"===E&&(P*=I,k*=I),"slice"===E&&(P*=x,k*=x);var T=new tce(t,"refX",p),j=new tce(t,"refY",h),M=T.hasValue()&&j.hasValue();if(M&&r.translate(-I*T.getPixels("x"),-I*j.getPixels("y")),d){var B=I*g,N=I*b;r.beginPath(),r.moveTo(B,N),r.lineTo(o,N),r.lineTo(o,a),r.lineTo(B,a),r.closePath(),r.clip()}if(!M){var R="meet"===E&&I===O,L="slice"===E&&x===O,D="meet"===E&&I===_,F="slice"===E&&x===_;C.startsWith("xMid")&&(R||L)&&r.translate(o/2-P/2,0),C.endsWith("YMid")&&(D||F)&&r.translate(0,a/2-k/2),C.startsWith("xMax")&&(R||L)&&r.translate(o-P,0),C.endsWith("YMax")&&(D||F)&&r.translate(0,a-k)}switch(!0){case"none"===C:r.scale(_,O);break;case"meet"===E:r.scale(I,I);break;case"slice"===E:r.scale(x,x)}r.translate(-l,-f)}},{key:"start",value:function(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.enableRedraw,i=void 0!==o&&o,a=n.ignoreMouse,s=void 0!==a&&a,u=n.ignoreAnimation,l=void 0!==u&&u,c=n.ignoreDimensions,f=void 0!==c&&c,p=n.ignoreClear,h=void 0!==p&&p,y=n.forceRedraw,d=n.scaleWidth,m=n.scaleHeight,g=n.offsetX,v=n.offsetY,b=this.mouse,A=1e3/e.FRAMERATE;if(this.isReadyLock=!1,this.frameDuration=A,this.readyPromise=new Promise(function(e){r.resolveReady=e}),this.isReady()&&this.render(t,f,h,d,m,g,v),i){var w=Date.now(),S=w,C=0,E=function(){w=Date.now(),(C=w-S)>=A&&(S=w-C%A,r.shouldUpdate(l,y)&&(r.render(t,f,h,d,m,g,v),b.runEvents())),r.intervalId=Mue(E)};s||b.start(),this.intervalId=Mue(E)}}},{key:"stop",value:function(){this.intervalId&&(Mue.cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}},{key:"shouldUpdate",value:function(e,t){if(!e){var r=this.frameDuration;if(this.animations.reduce(function(e,t){return t.update(r)||e},!1))return!0}return!("function"!=typeof t||!t())||(!(this.isReadyLock||!this.isReady())||!!this.mouse.hasEvents())}},{key:"render",value:function(e,t,r,n,o,i,a){var s=this.viewPort,u=this.ctx,l=this.isFirstRender,c=u.canvas;s.clear(),c.width&&c.height&&s.setCurrent(c.width,c.height);var f=e.getStyle("width"),p=e.getStyle("height");!t&&(l||"number"!=typeof n&&"number"!=typeof o)&&(f.hasValue()&&(c.width=f.getPixels("x"),c.style&&(c.style.width="".concat(c.width,"px"))),p.hasValue()&&(c.height=p.getPixels("y"),c.style&&(c.style.height="".concat(c.height,"px"))));var h=c.clientWidth||c.width,y=c.clientHeight||c.height;if(t&&f.hasValue()&&p.hasValue()&&(h=f.getPixels("x"),y=p.getPixels("y")),s.setCurrent(h,y),"number"==typeof i&&e.getAttribute("x",!0).setValue(i),"number"==typeof a&&e.getAttribute("y",!0).setValue(a),"number"==typeof n||"number"==typeof o){var d=Mle(e.getAttribute("viewBox").getString()),m=0,g=0;if("number"==typeof n){var v=e.getStyle("width");v.hasValue()?m=v.getPixels("x")/n:d[2]&&!isNaN(d[2])&&(m=d[2]/n)}if("number"==typeof o){var b=e.getStyle("height");b.hasValue()?g=b.getPixels("y")/o:d[3]&&!isNaN(d[3])&&(g=d[3]/o)}m||(m=g),g||(g=m),e.getAttribute("width",!0).setValue(n),e.getAttribute("height",!0).setValue(o);var A=e.getStyle("transform",!0,!0);A.setValue("".concat(A.getString()," scale(").concat(1/m,", ").concat(1/g,")"))}r||u.clearRect(0,0,h,y),e.render(u),l&&(this.isFirstRender=!1)}}])}();uce.defaultWindow=ace,uce.defaultFetch=sce,uce.FRAMERATE=30,uce.MAX_VIRTUAL_PIXELS=3e4;var lce=uce.defaultFetch,cce="undefined"!=typeof DOMParser?DOMParser:void 0,fce=function(){return Cle(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.fetch,n=void 0===r?lce:r,o=t.DOMParser,i=void 0===o?cce:o;if(wle(this,e),!n)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");if(!i)throw new Error("Can't find 'DOMParser' in 'globalThis', please provide it via options");this.fetch=n,this.DOMParser=i},[{key:"parse",value:function(){var e=Tle(xle().m(function e(t){return xle().w(function(e){for(;;)switch(e.n){case 0:if(!t.startsWith("<")){e.n=1;break}return e.a(2,this.parseFromString(t));case 1:return e.a(2,this.load(t))}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"parseFromString",value:function(e){var t=new this.DOMParser;try{return this.checkDocument(t.parseFromString(e,"image/svg+xml"))}catch(r){return this.checkDocument(t.parseFromString(e,"text/xml"))}}},{key:"checkDocument",value:function(e){var t=e.getElementsByTagName("parsererror")[0];if(t)throw new Error(t.textContent||"Unknown parse error");return e}},{key:"load",value:function(){var e=Tle(xle().m(function e(t){var r,n;return xle().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this.fetch(t);case 1:return r=e.v,e.n=2,r.text();case 2:return n=e.v,e.a(2,this.parseFromString(n))}},e,this)}));return function(t){return e.apply(this,arguments)}}()}])}(),pce=function(){return Cle(function e(t,r){wle(this,e),this.type="translate",this.point=oce.parse(r)},[{key:"apply",value:function(e){var t=this.point,r=t.x,n=t.y;e.translate(r||0,n||0)}},{key:"unapply",value:function(e){var t=this.point,r=t.x,n=t.y;e.translate(-1*r||0,-1*n||0)}},{key:"applyToPoint",value:function(e){var t=this.point,r=t.x,n=t.y;e.applyTransform([1,0,0,1,r||0,n||0])}}])}(),hce=function(){return Cle(function e(t,r,n){wle(this,e),this.type="rotate";var o=Mle(r);this.angle=new tce(t,"angle",o[0]),this.originX=n[0],this.originY=n[1],this.cx=o[1]||0,this.cy=o[2]||0},[{key:"apply",value:function(e){var t=this.cx,r=this.cy,n=this.originX,o=this.originY,i=this.angle,a=t+n.getPixels("x"),s=r+o.getPixels("y");e.translate(a,s),e.rotate(i.getRadians()),e.translate(-a,-s)}},{key:"unapply",value:function(e){var t=this.cx,r=this.cy,n=this.originX,o=this.originY,i=this.angle,a=t+n.getPixels("x"),s=r+o.getPixels("y");e.translate(a,s),e.rotate(-1*i.getRadians()),e.translate(-a,-s)}},{key:"applyToPoint",value:function(e){var t=this.cx,r=this.cy,n=this.angle.getRadians();e.applyTransform([1,0,0,1,t||0,r||0]),e.applyTransform([Math.cos(n),Math.sin(n),-Math.sin(n),Math.cos(n),0,0]),e.applyTransform([1,0,0,1,-t||0,-r||0])}}])}(),yce=function(){return Cle(function e(t,r,n){wle(this,e),this.type="scale";var o=oce.parseScale(r);0!==o.x&&0!==o.y||(o.x=Hle,o.y=Hle),this.scale=o,this.originX=n[0],this.originY=n[1]},[{key:"apply",value:function(e){var t=this.scale,r=t.x,n=t.y,o=this.originX,i=this.originY,a=o.getPixels("x"),s=i.getPixels("y");e.translate(a,s),e.scale(r,n||r),e.translate(-a,-s)}},{key:"unapply",value:function(e){var t=this.scale,r=t.x,n=t.y,o=this.originX,i=this.originY,a=o.getPixels("x"),s=i.getPixels("y");e.translate(a,s),e.scale(1/r,1/n||r),e.translate(-a,-s)}},{key:"applyToPoint",value:function(e){var t=this.scale,r=t.x,n=t.y;e.applyTransform([r||0,0,0,n||0,0,0])}}])}(),dce=function(){return Cle(function e(t,r,n){var o;wle(this,e),this.type="matrix",this.matrix=[(o=Mle(r))[0]||0,o[1]||0,o[2]||0,o[3]||0,o[4]||0,o[5]||0],this.originX=n[0],this.originY=n[1]},[{key:"apply",value:function(e){var t=this.originX,r=this.originY,n=this.matrix,o=t.getPixels("x"),i=r.getPixels("y");e.translate(o,i),e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),e.translate(-o,-i)}},{key:"unapply",value:function(e){var t=this.originX,r=this.originY,n=this.matrix,o=n[0],i=n[2],a=n[4],s=n[1],u=n[3],l=n[5],c=1/(o*(1*u-0*l)-i*(1*s-0*l)+a*(0*s-0*u)),f=t.getPixels("x"),p=r.getPixels("y");e.translate(f,p),e.transform(c*(1*u-0*l),c*(0*l-1*s),c*(0*a-1*i),c*(1*o-0*a),c*(i*l-a*u),c*(a*s-o*l)),e.translate(-f,-p)}},{key:"applyToPoint",value:function(e){e.applyTransform(this.matrix)}}])}(),mce=function(e){function t(e,r,n){var o;return wle(this,t),(o=mle(this,t,[e,r,n])).type="skew",o.angle=new tce(e,"angle",r),o}return ble(t,dce),Cle(t)}(),gce=function(e){function t(e,r,n){var o;return wle(this,t),(o=mle(this,t,[e,r,n])).type="skewX",o.matrix=[1,0,Math.tan(o.angle.getRadians()),1,0,0],o}return ble(t,mce),Cle(t)}(),vce=function(e){function t(e,r,n){var o;return wle(this,t),(o=mle(this,t,[e,r,n])).type="skewY",o.matrix=[1,Math.tan(o.angle.getRadians()),0,1,0,0],o}return ble(t,mce),Cle(t)}();var bce=function(){function e(t,r,n){var o=this;wle(this,e),this.document=t,this.transforms=[],jle(r).trim().replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/).forEach(function(t){if("none"!==t){var r=_le(function(e){var t=_le(e.split("("),2),r=t[0],n=void 0===r?"":r,o=t[1],i=void 0===o?"":o;return[n.trim(),i.trim().replace(")","")]}(t),2),i=r[0],a=r[1],s=e.transformTypes[i];s&&o.transforms.push(new s(o.document,a,n))}})}return Cle(e,[{key:"apply",value:function(e){this.transforms.forEach(function(t){return t.apply(e)})}},{key:"unapply",value:function(e){this.transforms.forEach(function(t){return t.unapply(e)})}},{key:"applyToPoint",value:function(e){this.transforms.forEach(function(t){return t.applyToPoint(e)})}}],[{key:"fromElement",value:function(t,r){var n=r.getStyle("transform",!1,!0);if(n.hasValue()){var o=_le(r.getStyle("transform-origin",!1,!0).split(),2),i=o[0],a=o[1],s=void 0===a?i:a;if(i&&s){var u=[i,s];return new e(t,n.getString(),u)}}return null}}])}();bce.transformTypes={translate:pce,rotate:hce,scale:yce,matrix:dce,skewX:gce,skewY:vce};var Ace=function(){function e(t,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(wle(this,e),this.document=t,this.node=r,this.captureTextNodes=o,this.type="",this.attributes=new Map,this.styles=new Map,this.stylesSpecificity=new Map,this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],r&&1===r.nodeType){if(Array.from(r.attributes).forEach(function(e){var r,o=(r=e.nodeName,Ble.test(r)?r.toLowerCase():r);n.attributes.set(o,new tce(t,o,e.value))}),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue())this.getAttribute("style").getString().split(";").map(function(e){return e.trim()}).forEach(function(e){if(e){var r=_le(e.split(":").map(function(e){return e.trim()}),2),o=r[0],i=r[1];o&&n.styles.set(o,new tce(t,o,i))}});var i=t.definitions,a=this.getAttribute("id");a.hasValue()&&(i.has(a.getString())||i.set(a.getString(),this)),Array.from(r.childNodes).forEach(function(e){if(1===e.nodeType)n.addChild(e);else if(o&&(3===e.nodeType||4===e.nodeType)){var r=t.createTextNode(e);r.getText().length>0&&n.addChild(r)}})}}return Cle(e,[{key:"getAttribute",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.attributes.get(e);if(!r&&t){var n=new tce(this.document,e,"");return this.attributes.set(e,n),n}return r||tce.empty(this.document)}},{key:"getHrefAttribute",value:function(){var e,t,r=dle(this.attributes);try{for(r.s();!(t=r.n()).done;){var n=_le(t.value,2),o=n[0],i=n[1];if("href"===o||o.endsWith(":href")){e=i;break}}}catch(e){r.e(e)}finally{r.f()}return e||tce.empty(this.document)}},{key:"getStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.styles.get(e);if(n)return n;var o=this.getAttribute(e);if(o.hasValue())return this.styles.set(e,o),o;if(!r){var i=this.parent;if(i){var a=i.getStyle(e);if(a.hasValue())return a}}if(t){var s=new tce(this.document,e,"");return this.styles.set(e,s),s}return tce.empty(this.document)}},{key:"render",value:function(e){if("none"!==this.getStyle("display").getString()&&"hidden"!==this.getStyle("visibility").getString()){if(e.save(),this.getStyle("mask").hasValue()){var t=this.getStyle("mask").getDefinition();t&&(this.applyEffects(e),t.apply(e,this))}else if("none"!==this.getStyle("filter").getValue("none")){var r=this.getStyle("filter").getDefinition();r&&(this.applyEffects(e),r.apply(e,this))}else this.setContext(e),this.renderChildren(e),this.clearContext(e);e.restore()}}},{key:"setContext",value:function(e){}},{key:"applyEffects",value:function(e){var t=bce.fromElement(this.document,this);t&&t.apply(e);var r=this.getStyle("clip-path",!1,!0);if(r.hasValue()){var n=r.getDefinition();n&&n.apply(e)}}},{key:"clearContext",value:function(e){}},{key:"renderChildren",value:function(e){this.children.forEach(function(t){t.render(e)})}},{key:"addChild",value:function(t){var r=t instanceof e?t:this.document.createElement(t);r.parent=this,e.ignoreChildTypes.includes(r.type)||this.children.push(r)}},{key:"matchesSelector",value:function(e){var t,r=this.node;if("function"==typeof r.matches)return r.matches(e);var n=null===(t=r.getAttribute)||void 0===t?void 0:t.call(r,"class");return!(!n||""===n)&&n.split(" ").some(function(t){return".".concat(t)===e})}},{key:"addStylesFromStyleDefinition",value:function(){var e,t=this.document,r=t.styles,n=t.stylesSpecificity,o=dle(r);try{for(o.s();!(e=o.n()).done;){var i=_le(e.value,2),a=i[0],s=i[1];if(!a.startsWith("@")&&this.matchesSelector(a)){var u=n.get(a);if(s){var l,c=dle(s);try{for(c.s();!(l=c.n()).done;){var f=_le(l.value,2),p=f[0],h=f[1],y=this.stylesSpecificity.get(p);void 0===y&&(y="000"),u&&u>=y&&(h&&this.styles.set(p,h),this.stylesSpecificity.set(p,u))}}catch(e){c.e(e)}finally{c.f()}}}}}catch(e){o.e(e)}finally{o.f()}}},{key:"removeStyles",value:function(e,t){return t.reduce(function(t,r){var n=e.getStyle(r);if(!n.hasValue())return t;var o=n.getString();return n.setValue(""),[].concat(yle(t),[[r,o]])},[])}},{key:"restoreStyles",value:function(e,t){t.forEach(function(t){var r=_le(t,2),n=r[0],o=r[1];e.getStyle(n,!0).setValue(o)})}},{key:"isFirstChild",value:function(){var e;return 0===(null===(e=this.parent)||void 0===e?void 0:e.children.indexOf(this))}}])}();Ace.ignoreChildTypes=["title"];var wce=function(e){function t(e,r,n){return wle(this,t),mle(this,t,[e,r,n])}return ble(t,Ace),Cle(t)}();function Sce(e){var t=e.trim();return/^('|")/.test(t)?t:'"'.concat(t,'"')}var Cce=function(){function e(t,r,n,o,i,a){wle(this,e);var s=a?"string"==typeof a?e.parse(a):a:{};this.fontFamily=i||s.fontFamily,this.fontSize=o||s.fontSize,this.fontStyle=t||s.fontStyle,this.fontWeight=n||s.fontWeight,this.fontVariant=r||s.fontVariant}return Cle(e,[{key:"toString",value:function(){return[function(e){if(!e)return"";var t=e.trim().toLowerCase();switch(t){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return t;default:return/^oblique\s+(-|)\d+deg$/.test(t)?t:""}}(this.fontStyle),this.fontVariant,function(e){if(!e)return"";var t=e.trim().toLowerCase();switch(t){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return t;default:return/^[\d.]+$/.test(t)?t:""}}(this.fontWeight),this.fontSize,(e=this.fontFamily,"undefined"==typeof process?e:e.trim().split(",").map(Sce).join(","))].join(" ").trim();var e}}],[{key:"parse",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1?arguments[1]:void 0,n="",o="",i="",a="",s="",u={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return jle(t).trim().split(" ").forEach(function(t){switch(!0){case!u.fontStyle&&e.styles.includes(t):"inherit"!==t&&(n=t),u.fontStyle=!0;break;case!u.fontVariant&&e.variants.includes(t):"inherit"!==t&&(o=t),u.fontStyle=!0,u.fontVariant=!0;break;case!u.fontWeight&&e.weights.includes(t):"inherit"!==t&&(i=t),u.fontStyle=!0,u.fontVariant=!0,u.fontWeight=!0;break;case!u.fontSize:"inherit"!==t&&(a=t.split("/")[0]||""),u.fontStyle=!0,u.fontVariant=!0,u.fontWeight=!0,u.fontSize=!0;break;default:"inherit"!==t&&(s+=t)}}),new e(n,o,i,a,s,r)}}])}();Cce.styles="normal|italic|oblique|inherit",Cce.variants="normal|small-caps|inherit",Cce.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";var Ece=function(){return Cle(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.NaN,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.NaN,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.NaN,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Number.NaN;wle(this,e),this.x1=t,this.y1=r,this.x2=n,this.y2=o,this.addPoint(t,r),this.addPoint(n,o)},[{key:"x",get:function(){return this.x1}},{key:"y",get:function(){return this.y1}},{key:"width",get:function(){return this.x2-this.x1}},{key:"height",get:function(){return this.y2-this.y1}},{key:"addPoint",value:function(e,t){void 0!==e&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=e,this.x2=e),ethis.x2&&(this.x2=e)),void 0!==t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))}},{key:"addX",value:function(e){this.addPoint(e,0)}},{key:"addY",value:function(e){this.addPoint(0,e)}},{key:"addBoundingBox",value:function(e){if(e){var t=e.x1,r=e.y1,n=e.x2,o=e.y2;this.addPoint(t,r),this.addPoint(n,o)}}},{key:"sumCubic",value:function(e,t,r,n,o){return Math.pow(1-e,3)*t+3*Math.pow(1-e,2)*e*r+3*(1-e)*Math.pow(e,2)*n+Math.pow(e,3)*o}},{key:"bezierCurveAdd",value:function(e,t,r,n,o){var i=6*t-12*r+6*n,a=-3*t+9*r-9*n+3*o,s=3*r-3*t;if(0!==a){var u=Math.pow(i,2)-4*s*a;if(!(u<0)){var l=(-i+Math.sqrt(u))/(2*a);01&&void 0!==arguments[1]&&arguments[1];if(!t){var r=this.getStyle("fill"),n=this.getStyle("fill-opacity"),o=this.getStyle("stroke"),i=this.getStyle("stroke-opacity");if(r.isUrlDefinition()){var a=r.getFillStyleDefinition(this,n);a&&(e.fillStyle=a)}else if(r.hasValue()){"currentColor"===r.getString()&&r.setValue(this.getStyle("color").getColor());var s=r.getColor();"inherit"!==s&&(e.fillStyle="none"===s?"rgba(0,0,0,0)":s)}if(n.hasValue()){var u=new tce(this.document,"fill",e.fillStyle).addOpacity(n).getColor();e.fillStyle=u}if(o.isUrlDefinition()){var l=o.getFillStyleDefinition(this,i);l&&(e.strokeStyle=l)}else if(o.hasValue()){"currentColor"===o.getString()&&o.setValue(this.getStyle("color").getColor());var c=o.getString();"inherit"!==c&&(e.strokeStyle="none"===c?"rgba(0,0,0,0)":c)}if(i.hasValue()){var f=new tce(this.document,"stroke",e.strokeStyle).addOpacity(i).getString();e.strokeStyle=f}var p=this.getStyle("stroke-width");if(p.hasValue()){var h=p.getPixels();e.lineWidth=h||Hle}var y=this.getStyle("stroke-linecap"),d=this.getStyle("stroke-linejoin"),m=this.getStyle("stroke-miterlimit"),g=this.getStyle("stroke-dasharray"),v=this.getStyle("stroke-dashoffset");if(y.hasValue()&&(e.lineCap=y.getString()),d.hasValue()&&(e.lineJoin=d.getString()),m.hasValue()&&(e.miterLimit=m.getNumber()),g.hasValue()&&"none"!==g.getString()){var b=Mle(g.getString());void 0!==e.setLineDash?e.setLineDash(b):void 0!==e.webkitLineDash?e.webkitLineDash=b:void 0===e.mozDash||1===b.length&&0===b[0]||(e.mozDash=b);var A=v.getPixels();void 0!==e.lineDashOffset?e.lineDashOffset=A:void 0!==e.webkitLineDashOffset?e.webkitLineDashOffset=A:void 0!==e.mozDashOffset&&(e.mozDashOffset=A)}}if(this.modifiedEmSizeStack=!1,void 0!==e.font){var w=this.getStyle("font"),S=this.getStyle("font-style"),C=this.getStyle("font-variant"),E=this.getStyle("font-weight"),_=this.getStyle("font-size"),O=this.getStyle("font-family"),I=new Cce(S.getString(),C.getString(),E.getString(),_.hasValue()?"".concat(_.getPixels(!0),"px"):"",O.getString(),Cce.parse(w.getString(),e.font));S.setValue(I.fontStyle),C.setValue(I.fontVariant),E.setValue(I.fontWeight),_.setValue(I.fontSize),O.setValue(I.fontFamily),e.font=I.toString(),_.isPixels()&&(this.document.emSize=_.getPixels(),this.modifiedEmSizeStack=!0)}t||(this.applyEffects(e),e.globalAlpha=this.calculateOpacity())}},{key:"clearContext",value:function(e){ple(t,"clearContext",this,3)([e]),this.modifiedEmSizeStack&&this.document.popEmSize()}}])}(),Oce=function(e){function t(e,r,n){var o;return wle(this,t),(o=mle(this,t,[e,r,(this instanceof t?this.constructor:void 0)===t||n])).type="text",o.x=0,o.y=0,o.leafTexts=[],o.textChunkStart=0,o.minX=Number.POSITIVE_INFINITY,o.maxX=Number.NEGATIVE_INFINITY,o.measureCache=-1,o}return ble(t,_ce),Cle(t,[{key:"setContext",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];ple(t,"setContext",this,3)([e,r]);var n=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();n&&(e.textBaseline=n)}},{key:"initializeCoordinates",value:function(){this.x=0,this.y=0,this.leafTexts=[],this.textChunkStart=0,this.minX=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY}},{key:"getBoundingBox",value:function(e){var t=this;if("text"!==this.type)return this.getTElementBoundingBox(e);this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(e);var r=null;return this.children.forEach(function(n,o){var i=t.getChildBoundingBox(e,t,t,o);r?r.addBoundingBox(i):r=i}),r}},{key:"getFontSize",value:function(){var e=this.document,t=this.parent,r=Cce.parse(e.ctx.font).fontSize;return t.getStyle("font-size").getNumber(r)}},{key:"getTElementBoundingBox",value:function(e){var t=this.getFontSize();return new Ece(this.x,this.y-t,this.x+this.measureText(e),this.y)}},{key:"getGlyph",value:function(e,t,r){var n,o=t[r];if(e.isArabic){var i,a=t.length,s=t[r-1],u=t[r+1],l="isolated";(0===r||" "===s)&&r0&&" "!==s&&r0&&" "!==s&&(r===a-1||" "===u)&&(l="initial"),n=(null===(i=e.arabicGlyphs.get(o))||void 0===i?void 0:i.get(l))||e.glyphs.get(o)}else n=e.glyphs.get(o);return n||(n=e.missingGlyph),n}},{key:"getText",value:function(){return""}},{key:"getTextFromNode",value:function(e){var t=e||this.node,r=Array.from(t.parentNode.childNodes),n=r.indexOf(t),o=r.length-1,i=jle(t.textContent||"");return 0===n&&(i=i.replace(/^[\n \t]+/,"")),n===o&&(i=function(e){return e.replace(/[\n \t]+$/,"")}(i)),i}},{key:"renderChildren",value:function(e){var t=this;if("text"===this.type){this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(e),this.children.forEach(function(r,n){t.renderChild(e,t,t,n)});var r=this.document.screen.mouse;r.isWorking()&&r.checkBoundingBox(this,this.getBoundingBox(e))}else this.renderTElementChildren(e)}},{key:"renderTElementChildren",value:function(e){var t=this.document,r=this.parent,n=this.getText(),o=r.getStyle("font-family").getDefinition();if(o)for(var i=o.fontFace.unitsPerEm,a=Cce.parse(t.ctx.font),s=r.getStyle("font-size").getNumber(a.fontSize),u=r.getStyle("font-style").getString(a.fontStyle),l=s/i,c=o.isRTL?n.split("").reverse().join(""):n,f=Mle(r.getAttribute("dx").getString()),p=c.length,h=0;h=this.leafTexts.length)){var e=this.leafTexts[this.textChunkStart],t=e.getStyle("text-anchor").getString("start"),r=0;r="start"===t?e.x-this.minX:"end"===t?e.x-this.maxX:e.x-(this.minX+this.maxX)/2;for(var n=this.textChunkStart;n0?o.children.forEach(function(r,n){t.adjustChildCoordinatesRecursiveCore(e,t,o,n)}):this.adjustChildCoordinates(e,t,r,n)}},{key:"adjustChildCoordinates",value:function(e,t,r,n){var o=r.children[n];if("function"!=typeof o.measureText)return o;e.save(),o.setContext(e,!0);var i=o.getAttribute("x"),a=o.getAttribute("y"),s=o.getAttribute("dx"),u=o.getAttribute("dy"),l=o.getStyle("font-family").getDefinition(),c=Boolean(null===l||void 0===l?void 0:l.isRTL);0===n&&(i.hasValue()||i.setValue(o.getInheritedAttribute("x")),a.hasValue()||a.setValue(o.getInheritedAttribute("y")),s.hasValue()||s.setValue(o.getInheritedAttribute("dx")),u.hasValue()||u.setValue(o.getInheritedAttribute("dy")));var f=o.measureText(e);return c&&(t.x-=f),i.hasValue()?(t.applyAnchoring(),o.x=i.getPixels("x"),s.hasValue()&&(o.x+=s.getPixels("x"))):(s.hasValue()&&(t.x+=s.getPixels("x")),o.x=t.x),t.x=o.x,c||(t.x+=f),a.hasValue()?(o.y=a.getPixels("y"),u.hasValue()&&(o.y+=u.getPixels("y"))):(u.hasValue()&&(t.y+=u.getPixels("y")),o.y=t.y),t.y=o.y,t.leafTexts.push(o),t.minX=Math.min(t.minX,o.x,o.x+f),t.maxX=Math.max(t.maxX,o.x,o.x+f),o.clearContext(e),e.restore(),o}},{key:"getChildBoundingBox",value:function(e,t,r,n){var o=r.children[n];if("function"!=typeof o.getBoundingBox)return null;var i=o.getBoundingBox(e);return i&&o.children.forEach(function(r,n){var a=t.getChildBoundingBox(e,t,o,n);i.addBoundingBox(a)}),i}},{key:"renderChild",value:function(e,t,r,n){var o=r.children[n];o.render(e),o.children.forEach(function(r,n){t.renderChild(e,t,o,n)})}},{key:"measureText",value:function(e){var t=this.measureCache;if(~t)return t;var r=this.getText(),n=this.measureTargetText(e,r);return this.measureCache=n,n}},{key:"measureTargetText",value:function(e,t){if(!t.length)return 0;var r=this.parent,n=r.getStyle("font-family").getDefinition();if(n){for(var o=this.getFontSize(),i=n.isRTL?t.split("").reverse().join(""):t,a=Mle(r.getAttribute("dx").getString()),s=i.length,u=0,l=0;l0?"":o.getTextFromNode(),o}return ble(t,Oce),Cle(t,[{key:"getText",value:function(){return this.text}}])}(),xce=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o=this.commands.length-1}},{key:"next",value:function(){var e=this.commands[++this.i];return this.previousCommand=this.command,this.command=e,e}},{key:"getPoint",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"x",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",r=new oce(this.command[e],this.command[t]);return this.makeAbsolute(r)}},{key:"getAsControlPoint",value:function(e,t){var r=this.getPoint(e,t);return this.control=r,r}},{key:"getAsCurrentPoint",value:function(e,t){var r=this.getPoint(e,t);return this.current=r,r}},{key:"getReflectedControlPoint",value:function(){var e=this.previousCommand.type;if(e!==ele.CURVE_TO&&e!==ele.SMOOTH_CURVE_TO&&e!==ele.QUAD_TO&&e!==ele.SMOOTH_QUAD_TO)return this.current;var t=this.current,r=t.x,n=t.y,o=this.control,i=o.x,a=o.y;return new oce(2*r-i,2*n-a)}},{key:"makeAbsolute",value:function(e){if(this.command.relative){var t=this.current,r=t.x,n=t.y;e.x+=r,e.y+=n}return e}},{key:"addMarker",value:function(e,t,r){var n=this.points,o=this.angles;r&&o.length>0&&!o[o.length-1]&&(o[o.length-1]=n[n.length-1].angleTo(r)),this.addMarkerAngle(e,t?t.angleTo(e):null)}},{key:"addMarkerAngle",value:function(e,t){this.points.push(e),this.angles.push(t)}},{key:"getMarkerPoints",value:function(){return this.points}},{key:"getMarkerAngles",value:function(){for(var e=this.angles,t=e.length,r=0;rs?a:s,g=a>s?1:a/s,v=a>s?s/a:1;e.translate(c.x,c.y),e.rotate(l),e.scale(g,v),e.arc(0,0,m,f,f+p,Boolean(1-u)),e.scale(1/g,1/v),e.rotate(-l),e.translate(-c.x,-c.y)}}},{key:"pathZ",value:function(e,r){t.pathZ(this.pathParser),e&&r.x1!==r.x2&&r.y1!==r.y2&&e.closePath()}}],[{key:"pathM",value:function(e){var t=e.getAsCurrentPoint();return e.start=e.current,{point:t}}},{key:"pathL",value:function(e){return{current:e.current,point:e.getAsCurrentPoint()}}},{key:"pathH",value:function(e){var t=e.current,r=e.command,n=new oce((r.relative?t.x:0)+r.x,t.y);return e.current=n,{current:t,point:n}}},{key:"pathV",value:function(e){var t=e.current,r=e.command,n=new oce(t.x,(r.relative?t.y:0)+r.y);return e.current=n,{current:t,point:n}}},{key:"pathC",value:function(e){return{current:e.current,point:e.getPoint("x1","y1"),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathS",value:function(e){return{current:e.current,point:e.getReflectedControlPoint(),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathQ",value:function(e){return{current:e.current,controlPoint:e.getAsControlPoint("x1","y1"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathT",value:function(e){var t=e.current,r=e.getReflectedControlPoint();return e.control=r,{current:t,controlPoint:r,currentPoint:e.getAsCurrentPoint()}}},{key:"pathA",value:function(e){var t=e.current,r=e.command,n=r.rX,o=r.rY,i=r.xRot,a=r.lArcFlag,s=r.sweepFlag,u=i*(Math.PI/180),l=e.getAsCurrentPoint(),c=new oce(Math.cos(u)*(t.x-l.x)/2+Math.sin(u)*(t.y-l.y)/2,-Math.sin(u)*(t.x-l.x)/2+Math.cos(u)*(t.y-l.y)/2),f=Math.pow(c.x,2)/Math.pow(n,2)+Math.pow(c.y,2)/Math.pow(o,2);f>1&&(n*=Math.sqrt(f),o*=Math.sqrt(f));var p=(a===s?-1:1)*Math.sqrt((Math.pow(n,2)*Math.pow(o,2)-Math.pow(n,2)*Math.pow(c.y,2)-Math.pow(o,2)*Math.pow(c.x,2))/(Math.pow(n,2)*Math.pow(c.y,2)+Math.pow(o,2)*Math.pow(c.x,2)));isNaN(p)&&(p=0);var h=new oce(p*n*c.y/o,p*-o*c.x/n),y=new oce((t.x+l.x)/2+Math.cos(u)*h.x-Math.sin(u)*h.y,(t.y+l.y)/2+Math.sin(u)*h.x+Math.cos(u)*h.y),d=Kle([1,0],[(c.x-h.x)/n,(c.y-h.y)/o]),m=[(c.x-h.x)/n,(c.y-h.y)/o],g=[(-c.x-h.x)/n,(-c.y-h.y)/o],v=Kle(m,g);return Vle(m,g)<=-1&&(v=Math.PI),Vle(m,g)>=1&&(v=0),{currentPoint:l,rX:n,rY:o,sweepFlag:s,xAxisRotation:u,centp:y,a1:d,ad:v}}},{key:"pathZ",value:function(e){e.current=e.start}}])}(),Tce=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.getAttribute("width",!0),o=this.getAttribute("height",!0),i=this.getAttribute("viewBox"),a=this.getAttribute("style"),s=n.getNumber(0),u=o.getNumber(0);if(r)if("string"==typeof r)this.getAttribute("preserveAspectRatio",!0).setValue(r);else{var l=this.getAttribute("preserveAspectRatio");l.hasValue()&&l.setValue(l.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(n.setValue(e),o.setValue(t),i.hasValue()||i.setValue("0 0 ".concat(s||e," ").concat(u||t)),a.hasValue()){var c=this.getStyle("width"),f=this.getStyle("height");c.hasValue()&&c.setValue("".concat(e,"px")),f.hasValue()&&f.setValue("".concat(t,"px"))}}}])}(),jce=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&n>0&&(e.moveTo(t+s,r),e.lineTo(t+n-s,r),e.bezierCurveTo(t+n-s+l*s,r,t+n,r+u-l*u,t+n,r+u),e.lineTo(t+n,r+o-u),e.bezierCurveTo(t+n,r+o-u+l*u,t+n-s+l*s,r+o,t+n-s,r+o),e.lineTo(t+s,r+o),e.bezierCurveTo(t+s-l*s,r+o,t,r+o-u+l*u,t,r+o-u),e.lineTo(t,r+u),e.bezierCurveTo(t,r+u-l*u,t+s-l*s,r,t+s,r),e.closePath())}return new Ece(t,r,t+n,r+o)}},{key:"getMarkers",value:function(){return null}}])}(),Mce=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&(e.beginPath(),e.arc(t,r,n,0,2*Math.PI,!1),e.closePath()),new Ece(t-n,r-n,t+n,r+n)}},{key:"getMarkers",value:function(){return null}}])}(),Bce=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&n>0&&(e.beginPath(),e.moveTo(o+r,i),e.bezierCurveTo(o+r,i+t*n,o+t*r,i+n,o,i+n),e.bezierCurveTo(o-t*r,i+n,o-r,i+t*n,o-r,i),e.bezierCurveTo(o-r,i-t*n,o-t*r,i-n,o,i-n),e.bezierCurveTo(o+t*r,i-n,o+r,i-t*n,o+r,i),e.closePath()),new Ece(o-r,i-n,o+r,i+n)}},{key:"getMarkers",value:function(){return null}}])}(),Nce=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&r.push([e[e.length-1],r[r.length-1][1]]),r}}])}(),Lce=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;othis.maxDuration){var n=this.getAttribute("fill").getString("remove");if("indefinite"===this.getAttribute("repeatCount").getString()||"indefinite"===this.getAttribute("repeatDur").getString())this.duration=0;else if("freeze"!==n||this.frozen){if("remove"===n&&!this.removed)return this.removed=!0,t&&r&&r.setValue(t.animationFrozen?t.animationFrozenValue:this.initialValue),!0}else this.frozen=!0,t&&r&&(t.animationFrozen=!0,t.animationFrozenValue=r.getString());return!1}this.duration+=e;var o=!1;if(this.begin0&&Array.from(i).every(function(e){return 3===e.nodeType});return o.hasText=s,o.text=s?o.getTextFromNode(a):"",o}return ble(t,Oce),Cle(t,[{key:"getText",value:function(){return this.text}},{key:"renderChildren",value:function(e){if(this.hasText){ple(t,"renderChildren",this,3)([e]);var r=this.document,n=this.x,o=this.y,i=r.screen.mouse,a=new tce(r,"fontSize",Cce.parse(r.ctx.font).fontSize);i.isWorking()&&i.checkBoundingBox(this,new Ece(n,o-a.getPixels("y"),n+this.measureText(e),o))}else if(this.children.length>0){var s=new Gce(this.document);s.children=this.children,s.parent=this,s.render(e)}}},{key:"onClick",value:function(){var e=this.document.window;e&&e.open(this.getHrefAttribute().getString())}},{key:"onMouseMove",value:function(){this.document.ctx.canvas.style.cursor="pointer"}}])}(),tfe=function(e){function t(e,r,n){var o;wle(this,t),(o=mle(this,t,[e,r,n])).type="textPath",o.textWidth=0,o.textHeight=0,o.pathLength=-1,o.glyphInfo=null,o.letterSpacingCache=[],o.measuresCache=new Map([["",0]]);var i=o.getHrefAttribute().getDefinition();return o.text=o.getTextFromNode(),o.dataArray=o.parsePathData(i),o}return ble(t,Oce),Cle(t,[{key:"getText",value:function(){return this.text}},{key:"path",value:function(e){var t=this.dataArray;e&&e.beginPath(),t.forEach(function(t){var r=t.type,n=t.points;switch(r){case Pce.LINE_TO:e&&e.lineTo(n[0],n[1]);break;case Pce.MOVE_TO:e&&e.moveTo(n[0],n[1]);break;case Pce.CURVE_TO:e&&e.bezierCurveTo(n[0],n[1],n[2],n[3],n[4],n[5]);break;case Pce.QUAD_TO:e&&e.quadraticCurveTo(n[0],n[1],n[2],n[3]);break;case Pce.ARC:var o=_le(n,8),i=o[0],a=o[1],s=o[2],u=o[3],l=o[4],c=o[5],f=o[6],p=o[7],h=s>u?s:u,y=s>u?1:s/u,d=s>u?u/s:1;e&&(e.translate(i,a),e.rotate(f),e.scale(y,d),e.arc(0,0,h,l,l+c,Boolean(1-p)),e.scale(1/y,1/d),e.rotate(-f),e.translate(-i,-a));break;case Pce.CLOSE_PATH:e&&e.closePath()}})}},{key:"renderChildren",value:function(e){this.setTextData(e),e.save();var t=this.parent.getStyle("text-decoration").getString(),r=this.getFontSize(),n=this.glyphInfo,o=e.fillStyle;"underline"===t&&e.beginPath(),n.forEach(function(n,o){var i=n.p0,a=n.p1,s=n.rotation,u=n.text;e.save(),e.translate(i.x,i.y),e.rotate(s),e.fillStyle&&e.fillText(u,0,0),e.strokeStyle&&e.strokeText(u,0,0),e.restore(),"underline"===t&&(0===o&&e.moveTo(i.x,i.y+r/8),e.lineTo(a.x,a.y+r/5))}),"underline"===t&&(e.lineWidth=r/20,e.strokeStyle=o,e.stroke(),e.closePath()),e.restore()}},{key:"getLetterSpacingAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.letterSpacingCache[e]||0}},{key:"findSegmentToFitChar",value:function(e,t,r,n,o,i,a,s,u){var l=i,c=this.measureText(e,s);" "===s&&"justify"===t&&r-1&&(l+=this.getLetterSpacingAt(u));var f=this.textHeight/20,p=this.getEquidistantPointOnPath(l,f,0),h=this.getEquidistantPointOnPath(l+c,f,0),y={p0:p,p1:h},d=p&&h?Math.atan2(h.y-p.y,h.x-p.x):0;if(a){var m=Math.cos(Math.PI/2+d)*a,g=Math.cos(-d)*a;y.p0=cle(cle({},p),{},{x:p.x+m,y:p.y+g}),y.p1=cle(cle({},h),{},{x:h.x+m,y:h.y+g})}return{offset:l+=c,segment:y,rotation:d}}},{key:"measureText",value:function(e,t){var r=this.measuresCache,n=t||this.getText();if(r.has(n))return r.get(n);var o=this.measureTargetText(e,n);return r.set(n,o),o}},{key:"setTextData",value:function(e){var t=this;if(!this.glyphInfo){var r=this.getText(),n=r.split(""),o=r.split(" ").length-1,i=this.parent.getAttribute("dx").split().map(function(e){return e.getPixels("x")}),a=this.parent.getAttribute("dy").getPixels("y"),s=this.parent.getStyle("text-anchor").getString("start"),u=this.getStyle("letter-spacing"),l=this.parent.getStyle("letter-spacing"),c=0;u.hasValue()&&"inherit"!==u.getValue()?u.hasValue()&&"initial"!==u.getValue()&&"unset"!==u.getValue()&&(c=u.getPixels()):c=l.getPixels();var f=[],p=r.length;this.letterSpacingCache=f;for(var h=0;h0&&(u-=2*Math.PI),1===o&&u<0&&(u+=2*Math.PI),[a.x,a.y,r,n,s,u,i,o]}},{key:"calcLength",value:function(e,t,r,n){var o=0,i=null,a=null,s=0;switch(r){case Pce.LINE_TO:return this.getLineLength(e,t,n[0],n[1]);case Pce.CURVE_TO:for(o=0,i=this.getPointOnCubicBezier(0,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),s=.01;s<=1;s+=.01)a=this.getPointOnCubicBezier(s,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),o+=this.getLineLength(i.x,i.y,a.x,a.y),i=a;return o;case Pce.QUAD_TO:for(o=0,i=this.getPointOnQuadraticBezier(0,e,t,n[0],n[1],n[2],n[3]),s=.01;s<=1;s+=.01)a=this.getPointOnQuadraticBezier(s,e,t,n[0],n[1],n[2],n[3]),o+=this.getLineLength(i.x,i.y,a.x,a.y),i=a;return o;case Pce.ARC:o=0;var u=n[4],l=n[5],c=n[4]+l,f=Math.PI/180;if(Math.abs(u-c)c;s-=f)a=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],s,0),o+=this.getLineLength(i.x,i.y,a.x,a.y),i=a;else for(s=u+f;s5&&void 0!==arguments[5]?arguments[5]:t,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:r,s=(o-r)/(n-t+Hle),u=Math.sqrt(e*e/(1+s*s));nt)return null;var o,i=dle(this.dataArray);try{for(i.s();!(o=i.n()).done;){var a=o.value;if(!a||!(a.pathLength<5e-5||r+a.pathLength+5e-5=0&&u>f)break;n=this.getPointOnEllipticalArc(a.points[0],a.points[1],a.points[2],a.points[3],u,a.points[6]);break;case Pce.CURVE_TO:(u=s/a.pathLength)>1&&(u=1),n=this.getPointOnCubicBezier(u,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3],a.points[4],a.points[5]);break;case Pce.QUAD_TO:(u=s/a.pathLength)>1&&(u=1),n=this.getPointOnQuadraticBezier(u,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3])}if(n)return n;break}r+=a.pathLength}}catch(e){i.e(e)}finally{i.f()}return null}},{key:"getLineLength",value:function(e,t,r,n){return Math.sqrt((r-e)*(r-e)+(n-t)*(n-t))}},{key:"getPathLength",value:function(){return-1===this.pathLength&&(this.pathLength=this.dataArray.reduce(function(e,t){return t.pathLength>0?e+t.pathLength:e},0)),this.pathLength}},{key:"getPointOnCubicBezier",value:function(e,t,r,n,o,i,a,s,u){return{x:s*Yle(e)+i*Jle(e)+n*Wle(e)+t*Xle(e),y:u*Yle(e)+a*Jle(e)+o*Wle(e)+r*Xle(e)}}},{key:"getPointOnQuadraticBezier",value:function(e,t,r,n,o,i,a){return{x:i*Zle(e)+n*$le(e)+t*ece(e),y:a*Zle(e)+o*$le(e)+r*ece(e)}}},{key:"getPointOnEllipticalArc",value:function(e,t,r,n,o,i){var a=Math.cos(i),s=Math.sin(i),u=r*Math.cos(o),l=n*Math.sin(o);return{x:e+(u*a-l*s),y:t+(u*s+l*a)}}},{key:"buildEquidistantCache",value:function(e,t){var r=this.getPathLength(),n=t||.25,o=e||r/100;if(!this.equidistantCache||this.equidistantCache.step!==o||this.equidistantCache.precision!==n){this.equidistantCache={step:o,precision:n,points:[]};for(var i=0,a=0;a<=r;a+=n){var s=this.getPointOnPath(a),u=this.getPointOnPath(a+n);s&&u&&((i+=this.getLineLength(s.x,s.y,u.x,u.y))>=o&&(this.equidistantCache.points.push({x:s.x,y:s.y,distance:a}),i-=o))}}}},{key:"getEquidistantPointOnPath",value:function(e,t,r){if(this.buildEquidistantCache(t,r),e<0||e-this.getPathLength()>5e-5)return null;var n=Math.round(e/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[n]||null}}])}(),rfe=/^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i,nfe=function(e){function t(e,r,n){var o;wle(this,t),(o=mle(this,t,[e,r,n])).type="image",o.loaded=!1;var i=o.getHrefAttribute().getString();if(!i)return gle(o);var a=i.endsWith(".svg")||/^\s*data:image\/svg\+xml/i.test(i);return e.images.push(o),a?o.loadSvg(i):o.loadImage(i),o}return ble(t,_ce),Cle(t,[{key:"loadImage",value:function(){var e=Tle(xle().m(function e(t){var r,n;return xle().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,this.document.createImage(t);case 1:r=e.v,this.image=r,e.n=3;break;case 2:e.p=2,n=e.v,console.error('Error while loading image "'.concat(t,'":'),n);case 3:this.loaded=!0;case 4:return e.a(2)}},e,this,[[0,2]])}));return function(t){return e.apply(this,arguments)}}()},{key:"loadSvg",value:function(){var e=Tle(xle().m(function e(t){var r,n,o,i,a;return xle().w(function(e){for(;;)switch(e.p=e.n){case 0:if(!(r=rfe.exec(t))){e.n=1;break}(n=r[5])&&("base64"===r[4]?this.image=atob(n):this.image=decodeURIComponent(n)),e.n=5;break;case 1:return e.p=1,e.n=2,this.document.fetch(t);case 2:return o=e.v,e.n=3,o.text();case 3:i=e.v,this.image=i,e.n=5;break;case 4:e.p=4,a=e.v,console.error('Error while loading image "'.concat(t,'":'),a);case 5:this.loaded=!0;case 6:return e.a(2)}},e,this,[[1,4]])}));return function(t){return e.apply(this,arguments)}}()},{key:"renderChildren",value:function(e){var t=this.document,r=this.image,n=this.loaded,o=this.getAttribute("x").getPixels("x"),i=this.getAttribute("y").getPixels("y"),a=this.getStyle("width").getPixels("x"),s=this.getStyle("height").getPixels("y");if(n&&r&&a&&s){if(e.save(),e.translate(o,i),"string"==typeof r){var u=t.canvg.forkString(e,r,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:0,offsetY:0,scaleWidth:a,scaleHeight:s}),l=u.document.documentElement;l&&(l.parent=this),u.render()}else t.setViewBox({ctx:e,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:a,desiredWidth:r.width,height:s,desiredHeight:r.height}),this.loaded&&("complete"in r&&!r.complete||e.drawImage(r,0,0));e.restore()}}},{key:"getBoundingBox",value:function(){var e=this.getAttribute("x").getPixels("x"),t=this.getAttribute("y").getPixels("y"),r=this.getStyle("width").getPixels("x"),n=this.getStyle("height").getPixels("y");return new Ece(e,t,e+r,t+n)}}])}(),ofe=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o~]/g," ").replace(/[#.]/g," "),Ule),2);return r=c[0],n=c[1],t[2]+=n,t.join("")}(r)),"@font-face"===r){var o=n.get("font-family").getString().replace(/"|'/g,"");n.get("src").getString().split(",").forEach(function(t){if(t.indexOf('format("svg")')>0){var r=Nle(t);r&&new ife(e).load(o,r)}})}}})}}),o}return ble(t,Ace),Cle(t)}();afe.parseExternalUrl=Nle;var sfe=function(e){function t(){var e;wle(this,t);for(var r=arguments.length,n=new Array(r),o=0;o1&&void 0!==o[1]&&o[1],n=document.createElement("img"),r&&(n.crossOrigin="Anonymous"),e.a(2,new Promise(function(e,r){n.onload=function(){e(n)},n.onerror=function(e,t,n,o,i){r(i)},n.src=t}))}},e)}))).apply(this,arguments)}var bfe=12,Afe=function(){function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.rootEmSize,i=void 0===o?bfe:o,a=n.emSize,s=void 0===a?bfe:a,u=n.createCanvas,l=void 0===u?e.createCanvas:u,c=n.createImage,f=void 0===c?e.createImage:c,p=n.anonymousCrossOrigin;wle(this,e),this.canvg=t,this.definitions=new Map,this.styles=new Map,this.stylesSpecificity=new Map,this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=t.screen,this.rootEmSize=i,this.emSize=s,this.createCanvas=l,this.createImage=this.bindCreateImage(f,p),this.screen.wait(function(){return r.isImagesLoaded()}),this.screen.wait(function(){return r.isFontsLoaded()})}return Cle(e,[{key:"bindCreateImage",value:function(e,t){return"boolean"==typeof t?function(r,n){return e(r,"boolean"==typeof n?n:t)}:e}},{key:"window",get:function(){return this.screen.window}},{key:"fetch",get:function(){return this.screen.fetch}},{key:"ctx",get:function(){return this.screen.ctx}},{key:"emSize",get:function(){var e=this.emSizeStack;return e[e.length-1]||bfe},set:function(e){this.emSizeStack.push(e)}},{key:"popEmSize",value:function(){this.emSizeStack.pop()}},{key:"getUniqueId",value:function(){return"canvg".concat(++this.uniqueId)}},{key:"isImagesLoaded",value:function(){return this.images.every(function(e){return e.loaded})}},{key:"isFontsLoaded",value:function(){return this.fonts.every(function(e){return e.loaded})}},{key:"createDocumentElement",value:function(e){var t=this.createElement(e.documentElement);return t.root=!0,t.addStylesFromStyleDefinition(),this.documentElement=t,t}},{key:"createElement",value:function(t){var r=t.nodeName.replace(/^[^:]+:/,""),n=e.elementTypes[r];return n?new n(this,t):new wce(this,t)}},{key:"createTextNode",value:function(e){return new xce(this,e)}},{key:"setViewBox",value:function(e){this.screen.setViewBox(cle({document:this},e))}}])}();Afe.createCanvas=function(e,t){var r=document.createElement("canvas");return r.width=e,r.height=t,r},Afe.createImage=function(e){return vfe.apply(this,arguments)},Afe.elementTypes=gfe;var wfe=function(){function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};wle(this,e),this.parser=new fce(n),this.screen=new uce(t,n),this.options=n;var o=new Afe(this,n),i=o.createDocumentElement(r);this.document=o,this.documentElement=i}return Cle(e,[{key:"fork",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.from(t,r,cle(cle({},this.options),n))}},{key:"forkString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.fromString(t,r,cle(cle({},this.options),n))}},{key:"ready",value:function(){return this.screen.ready()}},{key:"isReady",value:function(){return this.screen.isReady()}},{key:"render",value:function(){var e=Tle(xle().m(function e(){var t,r=arguments;return xle().w(function(e){for(;;)switch(e.n){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},this.start(cle({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0},t)),e.n=1,this.ready();case 1:this.stop();case 2:return e.a(2)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.documentElement,r=this.screen,n=this.options;r.start(t,cle(cle({enableRedraw:!0},n),e))}},{key:"stop",value:function(){this.screen.stop()}},{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.documentElement.resize(e,t,r)}}],[{key:"from",value:function(){var t=Tle(xle().m(function t(r,n){var o,i,a,s=arguments;return xle().w(function(t){for(;;)switch(t.n){case 0:return o=s.length>2&&void 0!==s[2]?s[2]:{},i=new fce(o),t.n=1,i.parse(n);case 1:return a=t.v,t.a(2,new e(r,a,o))}},t)}));return function(e,r){return t.apply(this,arguments)}}()},{key:"fromString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new e(t,new fce(n).parseFromString(r),n)}}])}(),Sfe=r(311),Cfe=r.n(Sfe),Efe=new RegExp("^[:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function _fe(e,t){for(var r=[],n=t.exec(e);n;){var o=[];o.startIndex=t.lastIndex-n[0].length;for(var i=n.length,a=0;a0?this.child.push(Rfe(Rfe({},e.tagname,e.child),":@",e[":@"])):this.child.push(Rfe({},e.tagname,e.child)),void 0!==t&&(this.child[this.child.length-1][Mfe]={startIndex:t})}}])&&Lfe(e.prototype,t),r&&Lfe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Qfe(e){"@babel/helpers - typeof";return(Qfe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Gfe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ufe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ufe(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ufe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r"===e[t]){if(a?"-"===e[t-1]&&"-"===e[t-2]&&(a=!1,o--):o--,0===o)break}else"["===e[t]?i=!0:e[t];else{if(i&&Kfe(e,"!ENTITY",t)){t+=7;var s=void 0,u=void 0,l=Gfe(this.readEntityExp(e,t+1,this.suppressValidationErr),3);if(s=l[0],u=l[1],t=l[2],-1===u.indexOf("&")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&n>=this.options.maxEntityCount)throw new Error("Entity count (".concat(n+1,") exceeds maximum allowed (").concat(this.options.maxEntityCount,")"));var c=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");r[s]={regx:RegExp("&".concat(c,";"),"g"),val:u},n++}}else if(i&&Kfe(e,"!ELEMENT",t)){t+=8,t=this.readElementExp(e,t+1).index}else if(i&&Kfe(e,"!ATTLIST",t))t+=8;else if(i&&Kfe(e,"!NOTATION",t)){t+=9,t=this.readNotationExp(e,t+1,this.suppressValidationErr).index}else{if(!Kfe(e,"!--",t))throw new Error("Invalid DOCTYPE");a=!0}o++,""}if(0!==o)throw new Error("Unclosed DOCTYPE");return{entities:r,i:t}}},{key:"readEntityExp",value:function(e,t){for(var r=t=Vfe(e,t);tthis.options.maxEntitySize)throw new Error('Entity "'.concat(n,'" size (').concat(o.length,") exceeds maximum allowed size (").concat(this.options.maxEntitySize,")"));return[n,o,--t]}},{key:"readNotationExp",value:function(e,t){for(var r=t=Vfe(e,t);t=ope&&o<=ipe||o===ape))if(o=55296&&o<=56319){if(n+1=56320&&i<=57343){var a=65536+(o-55296<<10)+(i-56320);if(Wfe.has(a)){r=n;break}}}}else if(Zfe[o-Xfe]!==Jfe||spe.has(o)){r=n;break}}if(-1===r)return e;var s=[];r>0&&s.push(e.slice(0,r));for(var u=r;u=ope&&l<=ipe||l===ape)s.push(e[u]);else if(l=55296&&l<=56319){if(u+1=56320&&c<=57343){var f=65536+(l-55296<<10)+(c-56320),p=Wfe.get(f);if(void 0!==p){s.push(String.fromCharCode(p+48)),u++;continue}}}s.push(e[u])}else if(spe.has(l))s.push("-");else{var h=Zfe[l-Xfe];s.push(h!==Jfe?String.fromCharCode(h+48):e[u])}}return s.join("")},lpe=/^[-+]?0x[a-fA-F0-9]+$/,cpe=/^0b[01]+$/,fpe=/^0o[0-7]+$/,ppe=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,hpe={hex:!0,binary:!1,octal:!1,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original",unicode:!1};function ype(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t=Object.assign({},hpe,t),!e||"string"!=typeof e)return e;var r=e.trim();if(0===r.length)return e;if(void 0!==t.skipLike&&t.skipLike.test(r))return e;if("0"===r)return 0;if(t.unicode&&"0"===(r=upe(r)))return 0;if(t.hex&&lpe.test(r))return mpe(r,16);if(t.binary&&cpe.test(r))return mpe(r,2);if(t.octal&&fpe.test(r))return mpe(r,8);if(isFinite(r)){if(r.includes("e")||r.includes("E"))return function(e,t,r){if(!r.eNotation)return e;var n=t.match(dpe);if(n){var o=n[1]||"",i=-1===n[3].indexOf("e")?"E":"e",a=n[2],s=o?e[a.length+1]===i:e[a.length]===i;return a.length>1&&s?e:(1!==a.length||!n[3].startsWith(".".concat(i))&&n[3][0]!==i)&&a.length>0?r.leadingZeros&&!s?(t=(n[1]||"")+n[3],Number(t)):e:Number(t)}return e}(e,r,t);var n=ppe.exec(r);if(n){var o=n[1]||"",i=n[2],a=function(e){if(e&&-1!==e.indexOf("."))return"."===(e=e.replace(/0+$/,""))?e="0":"."===e[0]?e="0"+e:"."===e[e.length-1]&&(e=e.substring(0,e.length-1)),e;return e}(n[3]),s=o?"."===e[i.length+1]:"."===e[i.length];if(!t.leadingZeros&&(i.length>1||1===i.length&&!s))return e;var u=Number(r),l=String(u);if(0===u)return u;if(-1!==l.search(/[eE]/))return t.eNotation?u:e;if(-1!==r.indexOf("."))return"0"===l?u:l===a?u:l==="".concat(o).concat(a)?u:e;var c=i?a:r;return i?c===l||o+c===l?u:e:c===l||c===o+l?u:e}return e}return function(e,t,r){var n=t===1/0;switch(r.infinity.toLowerCase()){case"null":return null;case"infinity":return t;case"string":return n?"Infinity":"-Infinity";case"original":default:return e}}(e,Number(r),t)}var dpe=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function mpe(e,t){var r=e.trim();if(2!==t&&8!==t||(e=r.substring(2)),parseInt)return parseInt(e,t);if(Number.parseInt)return Number.parseInt(e,t);if(window&&window.parseInt)return window.parseInt(e,t);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function gpe(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return vpe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?vpe(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function vpe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Epe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0?e[e.length-1].tag:void 0}},{key:"getCurrentNamespace",value:function(){var e=this._matcher.path;return e.length>0?e[e.length-1].namespace:void 0}},{key:"getAttrValue",value:function(e){var t,r=this._matcher.path;if(0!==r.length)return null===(t=r[r.length-1].values)||void 0===t?void 0:t[e]}},{key:"hasAttr",value:function(e){var t=this._matcher.path;if(0===t.length)return!1;var r=t[t.length-1];return void 0!==r.values&&e in r.values}},{key:"getPosition",value:function(){var e,t=this._matcher.path;return 0===t.length?-1:null!==(e=t[t.length-1].position)&&void 0!==e?e:0}},{key:"getCounter",value:function(){var e,t=this._matcher.path;return 0===t.length?-1:null!==(e=t[t.length-1].counter)&&void 0!==e?e:0}},{key:"getIndex",value:function(){return this.getPosition()}},{key:"getDepth",value:function(){return this._matcher.path.length}},{key:"toString",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this._matcher.toString(e,t)}},{key:"toArray",value:function(){return this._matcher.path.map(function(e){return e.tag})}},{key:"matches",value:function(e){return this._matcher.matches(e)}},{key:"matchesAny",value:function(e){return e.matchesAny(this._matcher)}}])}(),kpe=function(){return Ipe(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_pe(this,e),this.separator=t.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new Ppe(this)},[{key:"push",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);var n=this.path.length;this.siblingStacks[n]||(this.siblingStacks[n]=new Map);var o,i=this.siblingStacks[n],a=r?"".concat(r,":").concat(e):e,s=i.get(a)||0,u=0,l=Cpe(i.values());try{for(l.s();!(o=l.n()).done;){u+=o.value}}catch(e){l.e(e)}finally{l.f()}i.set(a,s+1);var c={tag:e,position:u,counter:s};null!==r&&void 0!==r&&(c.namespace=r),null!==t&&void 0!==t&&(c.values=t),this.path.push(c)}},{key:"pop",value:function(){if(0!==this.path.length){this._pathStringCache=null;var e=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),e}}},{key:"updateCurrent",value:function(e){if(this.path.length>0){var t=this.path[this.path.length-1];null!==e&&void 0!==e&&(t.values=e)}}},{key:"getCurrentTag",value:function(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}},{key:"getCurrentNamespace",value:function(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}},{key:"getAttrValue",value:function(e){var t;if(0!==this.path.length)return null===(t=this.path[this.path.length-1].values)||void 0===t?void 0:t[e]}},{key:"hasAttr",value:function(e){if(0===this.path.length)return!1;var t=this.path[this.path.length-1];return void 0!==t.values&&e in t.values}},{key:"getPosition",value:function(){var e;return 0===this.path.length?-1:null!==(e=this.path[this.path.length-1].position)&&void 0!==e?e:0}},{key:"getCounter",value:function(){var e;return 0===this.path.length?-1:null!==(e=this.path[this.path.length-1].counter)&&void 0!==e?e:0}},{key:"getIndex",value:function(){return this.getPosition()}},{key:"getDepth",value:function(){return this.path.length}},{key:"toString",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e||this.separator;if(r===this.separator&&!0===t){if(null!==this._pathStringCache)return this._pathStringCache;var n=this.path.map(function(e){return e.namespace?"".concat(e.namespace,":").concat(e.tag):e.tag}).join(r);return this._pathStringCache=n,n}return this.path.map(function(e){return t&&e.namespace?"".concat(e.namespace,":").concat(e.tag):e.tag}).join(r)}},{key:"toArray",value:function(){return this.path.map(function(e){return e.tag})}},{key:"reset",value:function(){this._pathStringCache=null,this.path=[],this.siblingStacks=[]}},{key:"matches",value:function(e){var t=e.segments;return 0!==t.length&&(e.hasDeepWildcard()?this._matchWithDeepWildcard(t):this._matchSimple(t))}},{key:"_matchSimple",value:function(e){if(this.path.length!==e.length)return!1;for(var t=0;t=0&&t>=0;){var n=e[r];if("deep-wildcard"===n.type){if(--r<0)return!0;for(var o=e[r],i=!1,a=t;a>=0;a--)if(this._matchSegment(o,this.path[a],a===this.path.length-1)){t=a-1,r--,i=!0;break}if(!i)return!1}else{if(!this._matchSegment(n,this.path[t],t===this.path.length-1))return!1;t--,r--}}return r<0}},{key:"_matchSegment",value:function(e,t,r){if("*"!==e.tag&&e.tag!==t.tag)return!1;if(void 0!==e.namespace&&"*"!==e.namespace&&e.namespace!==t.namespace)return!1;if(void 0!==e.attrName){if(!r)return!1;if(!(t.values&&e.attrName in t.values))return!1;if(void 0!==e.attrValue&&String(t.values[e.attrName])!==String(e.attrValue))return!1}if(void 0!==e.position){var n;if(!r)return!1;var o=null!==(n=t.counter)&&void 0!==n?n:0;if("first"===e.position&&0!==o)return!1;if("odd"===e.position&&o%2!=1)return!1;if("even"===e.position&&o%2!=0)return!1;if("nth"===e.position&&o!==e.positionValue)return!1}return!0}},{key:"matchesAny",value:function(e){return e.matchesAny(this)}},{key:"snapshot",value:function(){return{path:this.path.map(function(e){return wpe({},e)}),siblingStacks:this.siblingStacks.map(function(e){return new Map(e)})}}},{key:"restore",value:function(e){this._pathStringCache=null,this.path=e.path.map(function(e){return wpe({},e)}),this.siblingStacks=e.siblingStacks.map(function(e){return new Map(e)})}},{key:"readOnly",value:function(){return this._view}}])}();function Tpe(e){"@babel/helpers - typeof";return(Tpe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function jpe(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.pattern=t,this.separator=r.separator||".",this.segments=this._parse(t),this.data=n,this._hasDeepWildcard=this.segments.some(function(e){return"deep-wildcard"===e.type}),this._hasAttributeCondition=this.segments.some(function(e){return void 0!==e.attrName}),this._hasPositionSelector=this.segments.some(function(e){return void 0!==e.position})},(t=[{key:"_parse",value:function(e){for(var t=[],r=0,n="";r0){var r=e.substring(0,t);if("xmlns"!==r)return r}}}var Gpe=function(e,t,r){return t&&Lpe(e.prototype,t),r&&Lpe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(function e(t){var r;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:function(e,t){return rhe(t,10,"&#")}},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:function(e,t){return rhe(t,16,"&#x")}}},this.addExternalEntities=Upe,this.parseXml=Kpe,this.parseTextData=zpe,this.resolveNameSpace=Hpe,this.buildAttributesMap=Vpe,this.isItStopNode=Xpe,this.replaceEntitiesValue=Jpe,this.readStopNodeData=ehe,this.saveTextToParentTag=Wpe,this.addChild=Ype,this.ignoreAttributesFn="function"==typeof(r=this.options.ignoreAttributes)?r:Array.isArray(r)?function(e){var t,n=gpe(r);try{for(n.s();!(t=n.n()).done;){var o=t.value;if("string"==typeof o&&e===o)return!0;if(o instanceof RegExp&&o.test(e))return!0}}catch(e){n.e(e)}finally{n.f()}}:function(){return!1},this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new kpe,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodeExpressions=[];for(var n=0;n0)){a||(e=this.replaceEntitiesValue(e,t,r));var s=this.options.jPath?r.toString():r,u=this.options.tagValueProcessor(t,e,s,o,i);return null===u||void 0===u?e:Rpe(u)!==Rpe(e)||u!==e?u:this.options.trimValues?the(e,this.options.parseTagValue,this.options.numberParseOptions):e.trim()===e?the(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function Hpe(e){if(this.options.removeNSPrefix){var t=e.split(":"),r="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=r+t[1])}return e}var qpe=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function Vpe(e,t,r){if(!0!==this.options.ignoreAttributes&&"string"==typeof e){for(var n=_fe(e,qpe),o=n.length,i={},a={},s=0;s0&&"object"===Rpe(t)&&t.updateCurrent&&t.updateCurrent(a);for(var f=0;f",i,"Closing Tag is not closed."),s=e.substring(i+2,a).trim();if(this.options.removeNSPrefix){var u=s.indexOf(":");-1!==u&&(s=s.substr(u+1))}s=nhe(this.options.transformTagName,s,"",this.options).tagName,r&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher));var l=this.matcher.getCurrentTag();if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error("Unpaired tag can not be used as closing tag: "));l&&-1!==this.options.unpairedTags.indexOf(l)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),n="",i=a}else if("?"===e[i+1]){var c=$pe(e,i,!1,"?>");if(!c)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,this.readonlyMatcher),this.options.ignoreDeclaration&&"?xml"===c.tagName||this.options.ignorePiTags);else{var f=new Ffe(c.tagName);f.add(this.options.textNodeName,""),c.tagName!==c.tagExp&&c.attrExpPresent&&(f[":@"]=this.buildAttributesMap(c.tagExp,this.matcher,c.tagName)),this.addChild(r,f,this.readonlyMatcher,i)}i=c.closeIndex+1}else if("!--"===e.substr(i+1,3)){var p=Zpe(e,"--\x3e",i+4,"Comment is not closed.");if(this.options.commentPropName){var h=e.substring(i+4,p-2);n=this.saveTextToParentTag(n,r,this.readonlyMatcher),r.add(this.options.commentPropName,[Npe({},this.options.textNodeName,h)])}i=p}else if("!D"===e.substr(i+1,2)){var y=o.readDocType(e,i);this.docTypeEntities=y.entities,i=y.i}else if("!["===e.substr(i+1,2)){var d=Zpe(e,"]]>",i,"CDATA is not closed.")-2,m=e.substring(i+9,d);n=this.saveTextToParentTag(n,r,this.readonlyMatcher);var g=this.parseTextData(m,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);void 0==g&&(g=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[Npe({},this.options.textNodeName,m)]):r.add(this.options.textNodeName,g),i=d+2}else{var v=$pe(e,i,this.options.removeNSPrefix);if(!v){var b=e.substring(Math.max(0,i-50),Math.min(e.length,i+50));throw new Error("readTagExp returned undefined at position ".concat(i,'. Context: "').concat(b,'"'))}var A=v.tagName,w=v.rawTagName,S=v.tagExp,C=v.attrExpPresent,E=v.closeIndex,_=nhe(this.options.transformTagName,A,S,this.options);if(A=_.tagName,S=_.tagExp,this.options.strictReservedNames&&(A===this.options.commentPropName||A===this.options.cdataPropName||A===this.options.textNodeName||A===this.options.attributesGroupName))throw new Error("Invalid tag name: ".concat(A));r&&n&&"!xml"!==r.tagname&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher,!1));var O=r;O&&-1!==this.options.unpairedTags.indexOf(O.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());var I=!1;S.length>0&&S.lastIndexOf("/")===S.length-1&&(I=!0,S="/"===A[A.length-1]?A=A.substr(0,A.length-1):S.substr(0,S.length-1),C=A!==S);var x,P=null;x=Qpe(w),A!==t.tagname&&this.matcher.push(A,{},x),A!==S&&C&&(P=this.buildAttributesMap(S,this.matcher,A))&&Fpe(P,this.options),A!==t.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode(this.stopNodeExpressions,this.matcher));var k=i;if(this.isCurrentNodeStopNode){var T="";if(I)i=v.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(A))i=v.closeIndex;else{var j=this.readStopNodeData(e,w,E+1);if(!j)throw new Error("Unexpected end of ".concat(w));i=j.i,T=j.tagContent}var M=new Ffe(A);P&&(M[":@"]=P),M.add(this.options.textNodeName,T),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,M,this.readonlyMatcher,k)}else{if(I){var B=nhe(this.options.transformTagName,A,S,this.options);A=B.tagName,S=B.tagExp;var N=new Ffe(A);P&&(N[":@"]=P),this.addChild(r,N,this.readonlyMatcher,k),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(-1!==this.options.unpairedTags.indexOf(A)){var R=new Ffe(A);P&&(R[":@"]=P),this.addChild(r,R,this.readonlyMatcher,k),this.matcher.pop(),this.isCurrentNodeStopNode=!1,i=v.closeIndex;continue}var L=new Ffe(A);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),P&&(L[":@"]=P),this.addChild(r,L,this.readonlyMatcher,k),r=L}n="",i=E}}else n+=e[i]}return t.child};function Ype(e,t,r,n){this.options.captureMetaData||(n=void 0);var o=this.options.jPath?r.toString():r,i=this.options.updateTag(t.tagname,o,t[":@"]);!1===i||("string"==typeof i?(t.tagname=i,e.addChild(t,n)):e.addChild(t,n))}function Jpe(e,t,r){var n=this.options.processEntities;if(!n||!n.enabled)return e;if(n.allowedTags){var o=this.options.jPath?r.toString():r;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(t):n.allowedTags(t,o)))return e}if(n.tagFilter){var i=this.options.jPath?r.toString():r;if(!n.tagFilter(t,i))return e}for(var a=0,s=Object.keys(this.docTypeEntities);an.maxTotalExpansions)throw new Error("Entity expansion limit exceeded: ".concat(this.entityExpansionCount," > ").concat(n.maxTotalExpansions));var f=e.length;if(e=e.replace(l.regx,l.val),n.maxExpandedLength&&(this.currentExpandedLength+=e.length-f,this.currentExpandedLength>n.maxExpandedLength))throw new Error("Total expanded content size exceeded: ".concat(this.currentExpandedLength," > ").concat(n.maxExpandedLength))}}for(var p=0,h=Object.keys(this.lastEntities);pn.maxTotalExpansions))throw new Error("Entity expansion limit exceeded: ".concat(this.entityExpansionCount," > ").concat(n.maxTotalExpansions));e=e.replace(d.regex,d.val)}if(-1===e.indexOf("&"))return e;if(this.options.htmlEntities)for(var g=0,v=Object.keys(this.htmlEntities);gn.maxTotalExpansions))throw new Error("Entity expansion limit exceeded: ".concat(this.entityExpansionCount," > ").concat(n.maxTotalExpansions));e=e.replace(A.regex,A.val)}return e=e.replace(this.ampEntity.regex,this.ampEntity.val)}function Wpe(e,t,r,n){return e&&(void 0===n&&(n=0===t.child.length),void 0!==(e=this.parseTextData(e,t.tagname,r,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,n))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function Xpe(e,t){if(!e||0===e.length)return!1;for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:">",o="",i=t;i3&&void 0!==arguments[3]?arguments[3]:">");if(n){var o=n.data,i=n.index,a=o.search(/\s/),s=o,u=!0;-1!==a&&(s=o.substring(0,a),o=o.substring(a+1).trimStart());var l=s;if(r){var c=s.indexOf(":");-1!==c&&(u=(s=s.substr(c+1))!==n.data.substr(c+1))}return{tagName:s,tagExp:o,closeIndex:i,attrExpPresent:u,rawTagName:l}}}function ehe(e,t,r){for(var n=r,o=1;r",r,"".concat(t," is not closed"));if(e.substring(r+2,i).trim()===t&&0===--o)return{tagContent:e.substring(n,r),i:i};r=i}else if("?"===e[r+1]){r=Zpe(e,"?>",r+1,"StopNode is not closed.")}else if("!--"===e.substr(r+1,3)){r=Zpe(e,"--\x3e",r+3,"StopNode is not closed.")}else if("!["===e.substr(r+1,2)){r=Zpe(e,"]]>",r,"StopNode is not closed.")-2}else{var a=$pe(e,r,">");if(a)(a&&a.tagName)===t&&"/"!==a.tagExp[a.tagExp.length-1]&&o++,r=a.closeIndex}}function the(e,t,r){if(t&&"string"==typeof e){var n=e.trim();return"true"===n||"false"!==n&&ype(e,r)}return void 0!==e?e:""}function rhe(e,t,r){var n=Number.parseInt(e,t);return n>=0&&n<=1114111?String.fromCodePoint(n):r+e+";"}function nhe(e,t,r,n){if(e){var o=e(t);r===t&&(r=o),t=o}return{tagName:t=ohe(t,n),tagExp:r}}function ohe(e,t){if(xfe.includes(e))throw new Error('[SECURITY] Invalid name: "'.concat(e,'" is a reserved JavaScript keyword that could cause prototype pollution'));return Ife.includes(e)?t.onDangerousProperty(e):e}function ihe(e){"@babel/helpers - typeof";return(ihe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var ahe=Ffe.getMetaDataSymbol();function she(e,t){if(!e||"object"!==ihe(e))return{};if(!t)return e;var r={};for(var n in e){if(n.startsWith(t))r[n.substring(t.length)]=e[n];else r[n]=e[n]}return r}function uhe(e,t,r,n){return function e(t,r,n,o){var i;var a={};for(var s=0;s0&&(a[r.textNodeName]=i):void 0!==i&&(a[r.textNodeName]=i);return a}(e,t,r,n)}function lhe(e){for(var t=Object.keys(e),r=0;r5&&"xml"===n)return She("InvalidXml","XML declaration allowed only at the start of the document.",Ehe(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function dhe(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){var r=1;for(t+=8;t"===e[t]&&0===--r)break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t"===e[t+2]){t+=2;break}return t}var mhe='"',ghe="'";function vhe(e,t){for(var r="",n="",o=!1;t"===e[t]&&""===n){o=!0;break}r+=e[t]}return""===n&&{value:r,index:t,tagClosed:o}}var bhe=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function Ahe(e,t){for(var r=_fe(e,bhe),n={},o=0;o"!==e[i]&&" "!==e[i]&&"\t"!==e[i]&&"\n"!==e[i]&&"\r"!==e[i];i++)u+=e[i];if("/"===(u=u.trim())[u.length-1]&&(u=u.substring(0,u.length-1),i--),!Ofe(u))return She("InvalidTag",0===u.trim().length?"Invalid space after '<'.":"Tag '"+u+"' is an invalid name.",Ehe(e,i));var l=vhe(e,i);if(!1===l)return She("InvalidAttr","Attributes for '"+u+"' have open quote.",Ehe(e,i));var c=l.value;if(i=l.index,"/"===c[c.length-1]){var f=i-c.length,p=Ahe(c=c.substring(0,c.length-1),t);if(!0!==p)return She(p.err.code,p.err.msg,Ehe(e,f+p.err.line));n=!0}else if(s){if(!l.tagClosed)return She("InvalidTag","Closing tag '"+u+"' doesn't have proper closing.",Ehe(e,i));if(c.trim().length>0)return She("InvalidTag","Closing tag '"+u+"' can't have attributes or invalid starting.",Ehe(e,a));if(0===r.length)return She("InvalidTag","Closing tag '"+u+"' has not been opened.",Ehe(e,a));var h=r.pop();if(u!==h.tagName){var y=Ehe(e,h.tagStartPos);return She("InvalidTag","Expected closing tag '"+h.tagName+"' (opened in line "+y.line+", col "+y.col+") instead of closing tag '"+u+"'.",Ehe(e,a))}0==r.length&&(o=!0)}else{var d=Ahe(c,t);if(!0!==d)return She(d.err.code,d.err.msg,Ehe(e,i-c.length+d.err.line));if(!0===o)return She("InvalidXml","Multiple possible root nodes found.",Ehe(e,i));-1!==t.unpairedTags.indexOf(u)||r.push({tagName:u,tagStartPos:a}),n=!0}for(i++;i0)||She("InvalidXml","Invalid '"+JSON.stringify(r.map(function(e){return e.tagName}),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):She("InvalidXml","Start tag expected.",1)}(e,t);if(!0!==r)throw Error("".concat(r.err.msg,":").concat(r.err.line,":").concat(r.err.col))}var n=new Gpe(this.options);n.addExternalEntities(this.externalEntities);var o=n.parseXml(e);return this.options.preserveOrder||void 0===o?o:uhe(o,this.options,n.matcher,n.readonlyMatcher)}},{key:"addEntity",value:function(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}}],r=[{key:"getMetaDataSymbol",value:function(){return Ffe.getMetaDataSymbol()}}],t&&Ihe(e.prototype,t),r&&Ihe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function khe(e){return function(e){if(Array.isArray(e))return The(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return The(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?The(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function The(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Mhe(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Mhe(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Mhe(f,"constructor",l),Mhe(l,"constructor",u),u.displayName="GeneratorFunction",Mhe(l,o,"GeneratorFunction"),Mhe(f),Mhe(f,o,"Generator"),Mhe(f,n,function(){return this}),Mhe(f,"toString",function(){return"[object Generator]"}),(jhe=function(){return{w:i,m:p}})()}function Mhe(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Mhe=function(e,t,r,n){function i(t,r){Mhe(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function Bhe(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Nhe(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Bhe(i,n,o,a,s,"next",e)}function s(e){Bhe(i,n,o,a,s,"throw",e)}a(void 0)})}}function Rhe(e){"@babel/helpers - typeof";return(Rhe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Lhe(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),"string"==typeof t||"number"==typeof t?this.mapId=t:null!==t&&"object"===Rhe(t)&&(this.mapInfo=t),this.serverUrl=r.serverUrl||"https://www.supermapol.com",this.credentialKey=r.credentialKey,this.credentialValue=r.credentialValue,this.tiandituKey=r.tiandituKey||"",this.withCredentials=r.withCredentials||!1,this.excludePortalProxyUrl=r.excludePortalProxyUrl,this.iportalServiceProxyUrl=r.iportalServiceProxyUrlPrefix,this.proxy=r.proxy,this.preferServer=r.preferServer||!1,this.proxyOptions={data:"apps/viewer/getUrlResource.json?url=",image:"apps/viewer/getUrlResource.png?url="}},(t=[{key:"setMapId",value:function(e){"string"==typeof e||"number"==typeof e?(this.mapId=e,this.mapInfo=null):null!==e&&"object"===Rhe(e)&&(this.mapInfo=e,this.mapId="")}},{key:"setServerUrl",value:function(e){this.serverUrl=e}},{key:"setWithCredentials",value:function(e){this.withCredentials=e}},{key:"setProxy",value:function(e){this.proxy=e}},{key:"handleServerUrl",value:function(e){var t=Oo(e);return this.serverUrl=t,t}},{key:"getMapInfo",value:function(){var e=Nhe(jhe().m(function e(){var t,r,n=this;return jhe().w(function(e){for(;;)switch(e.p=e.n){case 0:if(this.mapId||!this.mapInfo){e.n=1;break}return e.a(2,new Promise(function(e){e(n.mapInfo)}));case 1:return t=this._handleMapUrl(),e.p=2,e.n=3,this.getiPortalServiceProxy();case 3:return e.a(2,new Promise(function(e,r){H.get(t,null,{withCredentials:n.withCredentials}).then(function(e){return e.json()}).then(function(t){if(t&&!1===t.succeed){var n={message:t&&t.error&&t.error.errorMsg};r(n)}else t.mapParams={title:t.title,description:t.description},e(t)}).catch(function(e){r(e)})}));case 4:return e.p=4,r=e.v,e.a(2,Promise.reject(r))}},e,this,[[2,4]])}));return function(){return e.apply(this,arguments)}}()},{key:"getiPortalServiceProxy",value:function(){var e=this;return new Promise(function(t,r){H.get("".concat(e.serverUrl,"web/config/portal.json"),{scope:["serviceProxy"]}).then(function(e){return e.json()}).then(function(n){if(n&&n.serviceProxy){var o=n.serviceProxy;o.enable&&(o.proxyServerRootUrl?e.iportalServiceProxyUrl=o.proxyServerRootUrl:o.port&&o.rootUrlPostfix&&(e.iportalServiceProxyUrl="".concat(o.port,"/").concat(o.rootUrlPostfix)),e.serverUrl.indexOf(e.iportalServiceProxyUrl)>-1&&(e.iportalServiceProxyUrl="")),t(o)}else r("serviceProxyFailed")}).catch(function(e){r(e)})})}},{key:"getLayerFeatures",value:function(e,t,r){var n;switch(e){case"hosted":n=this._getFeaturesFromHosted(t,r);break;case"rest_data":n=this._getFeaturesFromRestData(t,r);break;case"rest_map":n=this._getFeaturesFromRestMap(t);break;case"dataflow":n=this._getFeaturesFromDataflow(t);break;case"user_data":n=this._getFeaturesFromUserData(t)}return n}},{key:"getWmsInfo",value:function(e){var t=this;return new Promise(function(r){var n=t.handleProxy(),o=B.urlAppend(e.url,"REQUEST=GetCapabilities&SERVICE=WMS");H.get(o,null,{withCredentials:t.handleWithCredentials(n,e.url,!1),withoutFormatSuffix:!0,proxy:n}).then(function(e){return e.text()}).then(function(e){var t=new Phe({ignoreAttributes:!1,attributeNamePrefix:"@_"}).parse(e),n=t.WMT_MS_Capabilities||t.WMS_Capabilities,o=n.Capability.Layer.LatLonBoundingBox,i=null;o&&(i=[+o["@_minx"],+o["@_miny"],+o["@_maxx"],+o["@_maxy"]]);var a=n.Capability.Layer.EX_GeographicBoundingBox;a&&(i=[+a.westBoundLongitude,+a.southBoundLatitude,+a.eastBoundLongitude,+a.northBoundLatitude]),r({version:n["@_version"],bounds:i})})})}},{key:"getMapBoxStyle",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(n,o){var i=t.handleProxy();H.get(e,{},{withoutFormatSuffix:r,withCredentials:t.handleWithCredentials(i,e,t.withCredentials)}).then(function(e){return e.json()}).then(function(e){n(e)}).catch(function(e){o(e)})})}},{key:"getWmtsInfo",value:function(e,t){var r=this;return new Promise(function(n,o){var i,a=!1,s=22,u=0,l="",c="",f="",p=[],h=r.handleProxy(),y=B.urlAppend(e.url,"REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0");y=r.handleParentRes(y),H.get(y,null,{withCredentials:r.handleWithCredentials(h,e.url,!1),withoutFormatSuffix:!0,proxy:h}).then(function(e){return e.text()}).then(function(o){var h=["Layer","TileMatrixSet","ows:Operation","ows:Get","ResourceURL","Style"],y=new Phe({ignoreAttributes:!1,attributeNamePrefix:"@_",isArray:function(e){if(-1!==h.indexOf(e))return!0}}).parse(o).Capabilities,d=y.Contents,m=y["ows:OperationsMetadata"];if(m){var g=m["ows:Operation"];Array.isArray(g)||(g=[g]);var v=g.find(function(e){return"GetTile"===e["@_name"]});if(v){var b=v["ows:DCP"]["ows:HTTP"]["ows:Get"];Array.isArray(b)||(b=[b]);var A=b.find(function(e){return"KVP"===e["ows:Constraint"]["ows:AllowedValues"]["ows:Value"]});A&&(f=A["@_xlink:href"])}}for(var w=d.TileMatrixSet,S="ows:Identifier",C=0;C0)break}var M=Object.keys(E).map(function(e){return+e});if(s=M.length>0?Math.max.apply(Math,khe(M)):void 0,u=M.length>0?Math.min.apply(Math,khe(M)):void 0,0===M.length)throw Error("TileMatrixSetNotSuppport");a=!0}break}var B=d.Layer&&d.Layer.find(function(t){return t[S]===e.layer});if(B){var N=B.Style;if(l=Array.isArray(B.Style)?N[0][S]?N[0][S]:"":N[S]?N[S]:"",B["ows:WGS84BoundingBox"]){var R=B["ows:WGS84BoundingBox"]["ows:LowerCorner"].split(" "),L=B["ows:WGS84BoundingBox"]["ows:UpperCorner"].split(" ");i=[parseFloat(R[0]),parseFloat(R[1]),parseFloat(L[0]),parseFloat(L[1])]}var D=B.ResourceURL;Array.isArray(D)||(D=[D]);var F=D.find(function(e){return"tile"===e["@_resourceType"]});F&&(c=F["@_template"])}n({isMatched:a,matchMaxZoom:s,matchMinZoom:u,style:l,bounds:i,restResourceURL:c,kvpResourceUrl:f,scales:p})}).catch(function(e){o(e)})})}},{key:"_getFeaturesFromHosted",value:function(e,t){var r=e.dataSource,n=e.layerType,o=r?r.serverId:e.serverId;return o?"MARKER"===n||r&&(!r.accessType||"DIRECT"===r.accessType)?this._getDataFromIportal(o,e):this._getDataFromHosted({layer:e,serverId:o,baseProjection:t}):new Promise(function(e){e({type:"noServerId"})})}},{key:"_getFeaturesFromRestData",value:function(e,t){var r,n=this,o=e.dataSource;return new Promise(function(i,a){n._getFeatureBySQL(o.url,[decodeURIComponent(o.dataSourceName)||e.name],function(e){e.result.features?(r=n.parseGeoJsonData2Feature({allDatas:{features:e.result.features.features}}),i({type:"feature",features:r})):a("features must be valid")},function(e){a(e)},t)})}},{key:"_getFeaturesFromRestMap",value:function(e){var t=this;return new Promise(function(r,n){t._queryFeatureBySQL(e.dataSource.url,e.dataSource.layerName,function(o){var i=o&&o.result.recordsets,a=i&&i[0],s=a.fields;if(a&&s){var u=[];for(var l in s){var c=s[l];0===c.indexOf("Sm")&&"SmID"!==c||u.push(c)}t._getFeatures(u,e,function(e){r({type:"feature",features:e})},function(e){n(e)})}},function(e){n(e)},"smid=1")})}},{key:"_getFeaturesFromUserData",value:function(e){var t=this,r=e.dataSource;return new Promise(function(e,n){var o=t.handleProxy(),i=t.handleParentRes(r.url);H.get(i,null,{withCredentials:t.handleWithCredentials(o,i,t.withCredentials),proxy:o,withoutFormatSuffix:!0}).then(function(e){return e.json()}).then(function(r){var n;n=r&&r instanceof Object&&"FeatureCollection"===r.type?r.features:r,n=t.parseGeoJsonData2Feature({allDatas:{features:n}}),e({type:"feature",features:n})}).catch(function(e){n(e)})})}},{key:"_queryFeatureBySQL",value:function(e,t,r,n,o,i,a,s,u,l){var c=this._getQueryFeaturesParam(t,o,i,a,s,u,l),f=this.handleProxy(),p=this.handleParentRes(e);new eX(p,{proxy:f,withCredentials:this.handleWithCredentials(f,e,!1),eventListeners:{processCompleted:function(e){r&&r(e)},processFailed:function(e){n&&n(e)}}}).processAsync(c)}},{key:"_getFeatures",value:function(e,t,r,n){var o=this,i=t.dataSource;this._queryFeatureBySQL(i.url,i.layerName,function(e){var t=e.result.recordsets[0].features.features,n=o.parseGeoJsonData2Feature({allDatas:{features:t}});r(n)},function(e){n(e)},null,e)}},{key:"_getQueryFeaturesParam",value:function(e,t,r,n,o,i,a){var s=new sR({name:e,attributeFilter:t});r&&(s.fields=r);var u={queryParams:[s]};return a&&(u.queryOption=hn.ATTRIBUTE),o&&(u.startRecord=o),i&&(u.expectCount=i),n&&(u.prjCoordSys={epsgCode:n}),new VW(u)}},{key:"_getFeaturesFromDataflow",value:function(e){var t=this;return new Promise(function(r,n){t._getDataflowInfo(e,function(){r({type:"dataflow"})},function(e){n(e)})})}},{key:"_getDataflowInfo",value:function(e,t,r){var n,o=e.url,i="".concat(o,".json");e.credential&&e.credential.token&&(n=e.credential.token,i+="?token=".concat(n));var a=this.handleProxy();i=this.handleParentRes(i),H.get(i,null,{proxy:a,withCredentials:this.handleWithCredentials(a,i,!1)}).then(function(e){return e.json()}).then(function(n){n?(n.featureMetaData&&(e.featureType=n.featureMetaData.featureType.toUpperCase(),e.dataSource={dataTypes:{}},n.featureMetaData.fieldInfos&&n.featureMetaData.fieldInfos.length>0&&n.featureMetaData.fieldInfos.forEach(function(t){var r=t.name.trim();"TEXT"===t.type?e.dataSource.dataTypes[r]="STRING":["DOUBLE","INT","FLOAT","LONG","SHORT"].includes(t.type)?e.dataSource.dataTypes[r]="NUMBER":e.dataSource.dataTypes[r]="UNKNOWN"})),e.wsUrl=n.urls[0].url,e.name=n.urls[0].url.split("iserver/services/")[1].split("/dataflow")[0],t()):r()}).catch(function(){r()})}},{key:"getDatasourceType",value:function(e){var t,r=e.dataSource,n=e.layerType;return r&&"SAMPLE_DATA"===r.type?r.type:(r&&r.serverId||"MARKER"===n||"HOSTED_TILE"===n?t="hosted":"ZXY_TILE"===n||"SUPERMAP_REST"===n||"TILE"===n||"WMS"===n||"WMTS"===n||"MAPBOXSTYLE"===n?t="tile":r&&"REST_DATA"===r.type?t="rest_data":r&&"REST_MAP"===r.type&&r.url?t="rest_map":"DATAFLOW_POINT_TRACK"===n||"DATAFLOW_HEAT"===n?t="dataflow":r&&"USER_DATA"===r.type&&(t="user_data"),t)}},{key:"getFeatureProperties",value:function(e){var t=[];return e&&e.length&&e.forEach(function(e){var r=e.properties;r&&t.push(r)}),t}},{key:"parseGeoJsonData2Feature",value:function(e){for(var t=e.allDatas.features,r=[],n=0,o=t.length;n0){var u=s[0].name,l=s[0].type.toUpperCase();t._getDataService(n,u).then(function(n){var s=n.dataItemServices;0===s.length&&a("noDataServices");var c={layer:r,dataItemServices:s,datasetName:u,featureType:l,resolve:e,reject:a,baseProjection:o};if(i){var f=s.filter(function(e){return e&&"RESTDATA"===e.serviceType})[0];t._isMvt(f.address,u,o).then(function(e){t._getServiceInfoFromLayer(c,e)}).catch(function(){t._getServiceInfoFromLayer(c)})}else t._getServiceInfoFromLayer(c)})}else a("resultIsEmpty")}).catch(function(e){a(e)})})}},{key:"_isMvt",value:function(e,t,r){return this._getDatasetsInfo(e,t).then(function(e){return e.epsgCode==r.split("EPSG:")[1]?H.get(B.urlPathAppend(e.url,"/tilefeature.mvt")).then(function(e){return e.json()}).then(function(t){return e.isMvt=t.error&&400===t.error.code,e}).catch(function(){return e}):e})}},{key:"_getServiceInfoFromLayer",value:function(e,t){var r=this,n=e.layer,o=e.dataItemServices,i=e.datasetName,a=e.featureType,s=e.resolve,u=e.reject,l=e.baseProjection,c=t?!t.isMvt:"HOSTED_TILE"===n.layerType,f=!1;o.forEach(function(e){f||(e&&c&&"RESTMAP"===e.serviceType?(f=!0,r._getTileLayerInfo(e.address,l).then(function(e){s({type:"restMap",restMaps:e})})):e&&!c&&"RESTDATA"===e.serviceType&&(t&&t.isMvt?s({type:"mvt",info:t,featureType:a}):(f=!0,r._getDatasources(e.address).then(function(t){n.dataSource.dataSourceName=t+":"+i,n.dataSource.url="".concat(e.address,"/data"),r._getFeatureBySQL(n.dataSource.url,[n.dataSource.dataSourceName||n.name],function(e){var t=r.parseGeoJsonData2Feature({allDatas:{features:e.result.features.features}});s({type:"feature",features:t})},function(e){u(e)})},function(e){u(e)}))))},this),f||u("noService")}},{key:"_getDatasetsInfo",value:function(e,t){var r=this;return this._getDatasources(e).then(function(n){var o=B.urlPathAppend(e,"/data/datasources/".concat(n,"/datasets/").concat(t)),i=r.handleProxy();return o=r.handleParentRes(o),H.get(o,null,{withCredentials:r.handleWithCredentials(i,o,!1),proxy:i}).then(function(e){return e.json()}).then(function(e){return{epsgCode:e.datasetInfo.prjCoordSys.epsgCode,bounds:e.datasetInfo.bounds,datasourceName:n,datasetName:t,url:o}})})}},{key:"_getDatasources",value:function(e){var t=this.handleProxy(),r=B.urlPathAppend(e,"/data/datasources.json");return r=this.handleParentRes(r),H.get(r,null,{withCredentials:this.handleWithCredentials(t,r,!1),proxy:t}).then(function(e){return e.json()}).then(function(e){if(401===e.code)throw Error(e.errorMsg);return e.datasourceNames[0]})}},{key:"_getDataService",value:function(e,t){var r=this.handleProxy(),n="".concat(this.serverUrl,"web/datas/").concat(e,".json");return n=this.handleParentRes(n),H.get(n,null,{withCredentials:this.handleWithCredentials(r,n,this.withCredentials),proxy:r}).then(function(e){return e.json()}).then(function(r){return r.fileId=e,r.datasetName=t,r})}},{key:"_checkUploadToRelationship",value:function(e){var t=this.handleProxy(),r="".concat(this.serverUrl,"web/datas/").concat(e,"/datasets.json");return r=this.handleParentRes(r),H.get(r,null,{withCredentials:this.handleWithCredentials(t,r,this.withCredentials),proxy:t}).then(function(e){return e.json()}).then(function(e){return e})}},{key:"_handleMapUrl",value:function(){var e=this.serverUrl+"web/maps/"+this.mapId+"/map";this.credentialValue&&this.credentialKey&&(e+="?"+this.credentialKey+"="+this.credentialValue);var t="getUrlResource.json?url=";if(this.excludePortalProxyUrl&&this.serverUrl.indexOf(t)>-1){var r=this.serverUrl.split(t);r.length>1&&(e=r[0]+t+this.serverUrl+"web/maps/"+this.mapId+"/map.json")}return e=-1===e.indexOf(".json")?"".concat(e,".json"):e}},{key:"handleProxy",value:function(e){if(!this.proxy)return null;var t=this.proxyOptions[e||"data"],r=this.serverUrl+t;return"string"==typeof this.proxy&&(r=this.proxy),r}},{key:"handleWithCredentials",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.withCredentials;return t&&t.includes("https://www.supermapol.com")?"":!(!e||!e.startsWith(this.serverUrl)||t&&!t.startsWith(e))||(!!(t&&this.iportalServiceProxyUrl&&t.indexOf(this.iportalServiceProxyUrl)>=0)||r)}},{key:"isIportalResourceUrl",value:function(e){return e.startsWith(this.serverUrl)||this.iportalServiceProxyUrl&&e.indexOf(this.iportalServiceProxyUrl)>=0}},{key:"handleParentRes",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.mapId,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"MAP";return this.isIportalResourceUrl(e)?B.urlAppend(e,"parentResType=".concat(r,"&parentResId=").concat(t)):e}},{key:"_formatGeoJSON",value:function(e){var t=e.features;return t.forEach(function(e,t){e.properties.index=t}),t}},{key:"_excelData2Feature",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.colTitles,n=r.indexOf(t.xField),o=r.indexOf(t.yField);if(o<0||n<0)for(var i=0,a=r.length;i2&&void 0!==arguments[2]?arguments[2]:1e-5;return Math.abs(+e-+t)<=r}}])&&Lhe(e.prototype,t),r&&Lhe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function zhe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Hhe(e,t,r){return(t=Whe(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function qhe(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return Vhe(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Vhe(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Vhe(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Vhe(f,"constructor",l),Vhe(l,"constructor",u),u.displayName="GeneratorFunction",Vhe(l,o,"GeneratorFunction"),Vhe(f),Vhe(f,o,"Generator"),Vhe(f,n,function(){return this}),Vhe(f,"toString",function(){return"[object Generator]"}),(qhe=function(){return{w:i,m:p}})()}function Vhe(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Vhe=function(e,t,r,n){function i(t,r){Vhe(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function Khe(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Yhe(e){"@babel/helpers - typeof";return(Yhe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jhe(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:Na,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"triggerEvent";return function(r){function n(e,t,r){var o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),(o=Xhe(this,n)).serverUrl=t.serverUrl||"https://www.supermapol.com",o.credentialValue=t.credentialValue,o.credentialKey=t.credentialKey,o.tiandituKey=t.tiandituKey||"",o.googleMapsAPIKey=t.googleMapsAPIKey||"",o.bingMapsKey=t.bingMapsKey||"",o.googleMapsLanguage=t.googleMapsLanguage||"zh-CN",o.withCredentials=t.withCredentials||!1,o.proxy=t.proxy,o.target=t.target||"map",o.excluortalProxyUrl=t.excludePortalProxyUrl,o.isSuperMapOnline=t.isSuperMapOnline,o.ignoreBaseProjection=t.ignoreBaseProjection,o.specifiedProj4=t.proj4,o.echartslayer=[],o.canvgsV=[],o.webMapService=new Uhe(e,t),o.mapOptions=r,o.eventTypes=["mapcreatefailed","layercreatefailed"],o.mapId=e,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&$he(e,t)}(n,e),o=n,(i=[{key:"_initWebMap",value:function(){throw new Error("_initWebMap is not implemented")}},{key:"_getMapInfo",value:function(){throw new Error("_getMapInfo is not implemented")}},{key:"_createMap",value:function(){throw new Error("_createMap is not implemented")}},{key:"_initBaseLayer",value:function(){throw new Error("_initBaseLayer is not implemented")}},{key:"_initOverlayLayer",value:function(){throw new Error("_initOverlayLayer is not implemented")}},{key:"_addLayerSucceeded",value:function(){throw new Error("_addLayerSucceeded is not implemented")}},{key:"_unproject",value:function(){throw new Error("_unproject is not implemented")}},{key:"clean",value:function(){throw new Error("clean is not implemented")}},{key:"echartsLayerResize",value:function(){this.echartslayer.forEach(function(e){e.chart.resize()})}},{key:"setMapId",value:function(e){var t=this;"string"==typeof e||"number"==typeof e?(this.mapId=e,this.webMapInfo=null):null!==e&&"object"===Yhe(e)&&(this.webMapInfo=e,this.mapId=""),this.webMapService.setMapId(e),e&&setTimeout(function(){t._initWebMap()},0)}},{key:"setServerUrl",value:function(e){this.serverUrl=e,this.webMapService.setServerUrl(e)}},{key:"setWithCredentials",value:function(e){this.withCredentials=e,this.webMapService.setWithCredentials(e)}},{key:"setProxy",value:function(e){this.proxy=e,this.webMapService.setProxy(e)}},{key:"setZoom",value:function(e){this.map&&(this.mapOptions.zoom=e,e!==+this.map.getZoom().toFixed(2)&&(e||0===e)&&this.map.setZoom(e,{from:"setZoom"}))}},{key:"setMaxBounds",value:function(e){this.map&&(this.mapOptions.maxBounds=e,e&&this.map.setMaxBounds(e))}},{key:"setMinZoom",value:function(e){this.map&&(this.mapOptions.minZoom=e,(e||0===e)&&this.map.setMinZoom(e))}},{key:"setMaxZoom",value:function(e){this.map&&(this.mapOptions.maxZoom=e,(e||0===e)&&this.map.setMaxZoom(e))}},{key:"initWebMap",value:function(){if(this.clean(),this.serverUrl=this.serverUrl&&this.webMapService.handleServerUrl(this.serverUrl),this.webMapInfo){var e=this.webMapInfo;return e.mapParams={title:this.webMapInfo.title,description:this.webMapInfo.description},this.mapParams=e.mapParams,void this._getMapInfo(e)}this.mapId&&this.serverUrl?(this._taskID=new Date,this.getMapInfo(this._taskID)):this._createMap()}},{key:"getMapInfo",value:function(e){var t=this;this.serverUrl=this.serverUrl&&this.webMapService.handleServerUrl(this.serverUrl),this.webMapService.getMapInfo().then(function(r){t._taskID===e&&(t.mapParams=r.mapParams,t._getMapInfo(r,e))},function(e){throw e}).catch(function(e){t._fire("mapcreatefailed",{error:e}),console.log(e)})}},{key:"getBaseLayerType",value:function(e){var t=e.layerType;switch((t.indexOf("TIANDITU_VEC")>-1||t.indexOf("TIANDITU_IMG")>-1||t.indexOf("TIANDITU_TER")>-1)&&(t="TIANDITU"),t){case"TILE":case"SUPERMAP_REST":return"TILE";case"CLOUD":case"CLOUD_BLACK":return"CLOUD";case"OSM":case"JAPAN_ORT":case"JAPAN_RELIEF":case"JAPAN_PALE":case"JAPAN_STD":case"GOOGLE_CN":case"GOOGLE":return"XYZ";default:return t}}},{key:"getMapurls",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{CLOUD:e.CLOUD||"http://t2.dituhui.com/FileService/image?map=quanguo&type=web&x={x}&y={y}&z={z}",CLOUD_BLACK:e.CLOUD_BLACK||"http://t3.dituhui.com/MapService/getGdp?x={x}&y={y}&z={z}",OSM:e.OSM||"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",GOOGLE:"https://maps.googleapis.com/maps/vt?pb=!1m5!1m4!1i{z}!2i{x}!3i{y}!4i256!2m3!1e0!2sm!3i540264686!3m12!2s{googleMapsLanguage}!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key={googleMapsAPIKey}",GOOGLE_CN:"https://mt{0-3}.google.com/vt/lyrs=m&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}",JAPAN_STD:"https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png",JAPAN_PALE:"https://cyberjapandata.gsi.go.jp/xyz/pale/{z}/{x}/{y}.png",JAPAN_RELIEF:"https://cyberjapandata.gsi.go.jp/xyz/relief/{z}/{x}/{y}.png",JAPAN_ORT:"https://cyberjapandata.gsi.go.jp/xyz/ort/{z}/{x}/{y}.jpg"}}},{key:"getLayerFeatures",value:function(e,t,r){var n=this,o=this.webMapService.getLayerFeatures(r,e,this.baseProjection);o&&o.then(function(){var r,o=(r=qhe().m(function r(o){var i;return qhe().w(function(r){for(;;)switch(r.n){case 0:if(!n.mapId||n._taskID===t){r.n=1;break}return r.a(2);case 1:if(!o||!e.projection){r.n=3;break}if(rE(e.projection,n.specifiedProj4)){r.n=3;break}return r.n=2,iE(e.projection.split(":")[1],n.serverUrl);case 2:(i=r.v)&&tE(e.projection,i,n.specifiedProj4);case 3:n._getLayerFeaturesSucceeded(o,e);case 4:return r.a(2)}},r)}),function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){Khe(i,n,o,a,s,"next",e)}function s(e){Khe(i,n,o,a,s,"throw",e)}a(void 0)})});return function(e){return o.apply(this,arguments)}}(),function(e){throw new Error(e)}).catch(function(t){n._addLayerSucceeded(),n._fire("layercreatefailed",{error:t,layer:e,map:n.map}),console.log(t)})}},{key:"setFeatureInfo",value:function(e){var t,r=e.dv_v5_markerInfo;if(!r||!r.dataViz_title)return r;t=r;var n=e.properties;for(var o in t)n[o]&&(t[o]=n[o],delete n[o]);return t}},{key:"getRankStyleGroup",value:function(e,t,r){var n=[],o=[],i=r.style,a=r.themeSetting,s=a.segmentMethod,u=a.segmentCount,l=a.customSettings,c=r.themeSetting.minRadius,f=r.themeSetting.maxRadius,p=a.colors,h=i.fillColor;t.forEach(function(t){var r=t.properties[e];null==r||""===r||isNaN(+r)||n.push(Number(r))});try{o=Xoe.getArraySegments(n,s,u)}catch(e){console.log(e)}for(var y=0;y0&&(C=l[_]&&l[_].color?l[_].color:E[_]||h,i.fillColor=C),g.push({radius:S,color:C,start:v,end:b,style:i});return g}return!1}},{key:"createRankStyleSource",value:function(e,t){var r=e.themeSetting.themeField,n=this.getRankStyleGroup(r,t,e);return!!n&&{parameters:e,styleGroups:n}}},{key:"getRestMapLayerInfo",value:function(e,t){var r=e.bounds,n=e.coordUnit,o=e.visibleScales,i=e.url;return t.layerType="TILE",t.orginEpsgCode=this.baseProjection,t.units=n&&n.toLowerCase(),t.extent=[r.left,r.bottom,r.right,r.top],t.visibleScales=o,t.url=i,t.sourceType="TILE",t}},{key:"handleLayerFeatures",value:function(e,t){var r=t.layerType,n=t.style,o=t.themeSetting,i=t.filterCondition;return(n||o)&&i&&"RANGE"!==r&&"UNIQUE"!==r&&"RANK_SYMBOL"!==r&&(e=this.getFilterFeatures(i,e)),e}},{key:"getFilterFeatures",value:function(e,t){if(!e)return t;for(var r=this.replaceFilterCharacter(e),n=[],o=0;o0&&n.push(i)}return n}},{key:"replaceFilterCharacter",value:function(e){return e=e.replace(/=/g,"==").replace(/AND|and/g,"&&").replace(/or|OR/g,"||").replace(/<==/g,"<=").replace(/>==/g,">=")}},{key:"getParseSpecialCharacter",value:function(){var e={};return["(",")","(",")",",",","].forEach(function(t,r){e[t]="$".concat(r)}),e}},{key:"parseSpecialCharacter",value:function(e){var t=this.getParseSpecialCharacter();for(var r in t)for(var n=t[r],o=new RegExp("\\".concat(r),"g");o.test(e);)e=e.replace(o,n);return e}},{key:"parseCondition",value:function(e,t){var r=this,n=e;return e.replace(/&|\||>|<|=|!/g," ").split(" ").filter(function(e){return e}).forEach(function(e){var o=t.find(function(t){return t===e});if(r.startsWithNumber(e)&&o&&(n=n.replace(o,"$"+o)),o){var i=r.parseSpecialCharacter(o);n=n.replace(o,i)}}),n}},{key:"parseConditionFeature",value:function(e){var t={};for(var r in e){var n=r;this.startsWithNumber(r)&&(n="$"+r),t[n=this.parseSpecialCharacter(n)]=e[r]}return t}},{key:"startsWithNumber",value:function(e){return/^\d/.test(e)}},{key:"getEchartsLayerOptions",value:function(e,t,r){var n=this.webMapService.getFeatureProperties(t),o=function(e,t){var r=[];if(t&&t.length){var n,o,i=e.from,a=e.to;if("XY_FIELD"===i.type&&i.xField&&i.yField&&a.xField&&a.yField)t.forEach(function(e){var t=e[i.xField],s=e[i.yField],u=e[a.xField],l=e[a.yField];t&&s&&u&&l&&(n=[e[i.xField],e[i.yField]],o=[e[a.xField],e[a.yField]],r.push({coords:[n,o]}))});else if("PLACE_FIELD"===i.type&&i.field&&a.field){var s=vo.concat(go);t.forEach(function(e){var t=e[i.field],u=e[a.field];n=s.find(function(e){return _o(e.name,t)}),o=s.find(function(e){return _o(e.name,u)}),n&&o&&r.push({coords:[n.coord,o.coord]})})}}return r}(e,n),i=this._createPointsData(o,e,n);return this._createOptions(e,o,i,r)}},{key:"getEchartsLayerById",value:function(e){return this.echartslayer.find(function(t){return t.id===e})}},{key:"getDashStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"array";if(!e)return"array"===r?[]:"";var n,o=t;switch(e){case"solid":n=[];break;case"dot":n=[1,4*o];break;case"dash":n=[4*o,4*o];break;case"dashrailway":n=[8*o,12*o];break;case"dashdot":n=[4*o,4*o,1*o,4*o];break;case"longdash":n=[8*o,4*o];break;case"longdashdot":n=[8*o,4*o,1,4*o];break;default:n=B.isArray(e)?e:(e=h.trim(e).replace(/\s+/g,",")).replace(/\[|\]/gi,"").split(",")}return n="array"===r?n:n.join(",")}},{key:"getCanvasFromSVG",value:function(e,t,r){var n=this,o=document.createElement("canvas");if(o.id="dataviz-canvas-".concat((new Date).getTime()),o.style.display="none",t.appendChild(o),e){var i=wfe,a=o.getContext("2d");i.from(a,e,{ignoreMouse:!0,ignoreAnimation:!0,forceRedraw:function(){return!1}}).then(function(e){e.start(),n.canvgsV.push(e),o.width>300||o.height>300||r(o)})}else r(o)}},{key:"stopCanvg",value:function(){this.canvgsV.forEach(function(e){return e.stop()}),this.canvgsV=[]}},{key:"getRangeStyleGroup",value:function(e,t){var r,n=e.featureType,o=e.style,i=e.themeSetting,a=i.customSettings,s=i.themeField,u=i.segmentCount,l=i.segmentMethod,c=i.colors,f=[];t.forEach(function(e){if(r=e.properties){var t=r[s];(t||0===t)&&!isNaN(+t)&&f.push(parseFloat(t))}},this);var p=f&&f.length&&Xoe.getArraySegments(f,l,u);if(p){var h=u;r&&p[0]===p[r.length-1]&&(h=1,p.length=2);for(var y=0;yl&&o>0||"\n"===e[o]?(t=e[o],f++,n=!0):(t=i,c=a)}n?p.push(l):p.push(c)},this);for(var h=0;h=l){c=l;break}y>c&&(c=y)}return c+=a,t=f*i+a-6,s.width=c,s.height=t,r.fillStyle=u,r.fillRect(0,0,c,t),r.lineWidth=n.borderWidth,r.strokeStyle=n.borderColor,r.strokeRect(0,0,c,t),{width:c,height:t}}},{key:"_drawTextWithCanvas",value:function(e){var t=e.context,r=e.canvas,n=e.style,o=Number(n.font.replace(/[^0-9]/gi,""))+3,i=n.text.split("\r\n");t.font=n.font;var a=this._drawTextRectAndGetSize({context:t,style:n,textArray:i,lineHeight:o,doublePadding:16,canvas:r}),s=8;i.forEach(function(e,r){0!==r&&(s+=o),t.font=n.font;var i,u=n.textAlign,l=a.width-16;switch(u){case"center":i=l/2;break;case"right":i=l;break;default:i=8}for(var c=e.split(""),f="",p=n.fillColor,h=n.maxWidth-16,y=0;yh&&y>0||"\n"===c[y]?(t.fillStyle=p,t.textAlign=u,t.textBaseline="top",t.fillText(f,i,s),f=c[y],s+=o):f=d}t.fillStyle=p,t.textAlign=u,t.textBaseline="top",t.fillText(f,i,s)},this)}},{key:"handleSvgColor",value:function(e,t){var r=e.fillColor,n=e.fillOpacity,o=e.strokeColor,i=e.strokeOpacity,a=e.strokeWidth,s=t.getContext("2d");e.text?this._drawTextWithCanvas({context:s,canvas:t,style:e}):(r&&(s.fillStyle=Koe.getColorWithOpacity(r,n),s.fill()),(o||a)&&(s.strokeStyle=Koe.getColorWithOpacity(o,i),s.lineWidth=a,s.stroke()))}},{key:"_createPointsData",value:function(e,t,r){var n=[],o=t.labelSetting;if(!o.show||!e.length)return n;var i=[],a=[];return e.forEach(function(e,t){var n=e.coords,s=n[0],u=n[1],l=r[t][o.from],c=r[t][o.to];!i.find(function(e){return e.value[0]===s[0]&&e.value[1]===s[1]})&&i.push({name:l,value:s}),!a.find(function(e){return e.value[0]===u[0]&&e.value[1]===u[1]})&&a.push({name:c,value:u})}),n=i.concat(a)}},{key:"_createOptions",value:function(e,t,r,n){var o,i=this._createLineSeries(e,t,n);if(r&&r.length){var a=this._createPointSeries(e,r,n);o=i.concat(a)}else o=i.slice();return{series:o,animation:!1}}},{key:"_createPointSeries",value:function(e,t,r){var n=e.lineSetting,o=e.animationSetting,i=e.labelSetting,a=[{name:"point-series",coordinateSystem:r,zlevel:2,label:{normal:{show:i.show,position:"right",formatter:"{b}",color:i.color,fontFamily:i.fontFamily}},itemStyle:{normal:{color:n.color||i.color}},data:t}];return o.show?(a[0].type="effectScatter",a[0].rippleEffect={brushType:"stroke"}):a[0].type="scatter",a}},{key:"_createLineSeries",value:function(e,t,r){var n=e.lineSetting,o=e.animationSetting,i=[{name:"line-series",coordinateSystem:r,type:"lines",zlevel:1,effect:{show:o.show,constantSpeed:o.constantSpeed,trailLength:0,symbol:o.symbol,symbolSize:o.symbolSize},lineStyle:{normal:{color:n.color,type:n.type,width:n.width,opacity:n.opacity,curveness:n.curveness}},data:t}];return t.length>=eye&&(i[0].large=!0,i[0].largeThreshold=100,i[0].blendMode="lighter"),i}},{key:"_getLayerFeaturesSucceeded",value:function(e,t){switch(e.type){case"feature":this._initOverlayLayer(t,e.features);break;case"restMap":t.layerType="restMap",this._initOverlayLayer(t,e.restMaps);break;case"mvt":t.layerType="mvt",this._initOverlayLayer(t,e);break;case"dataflow":case"noServerId":this._initOverlayLayer(t)}}},{key:"_fire",value:function(e,r){this[t]&&this[t](e,r)}}])&&Jhe(o.prototype,i),a&&Jhe(o,a),Object.defineProperty(o,"prototype",{writable:!1}),o;var o,i,a}()}function rye(e){"@babel/helpers - typeof";return(rye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function nye(e){return function(e){if(Array.isArray(e))return oye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return oye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?oye(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function oye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function lye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=mye(this,t)).map=r.map,e.appendLayers=r.appendLayers||!1,e.unexpectedSourceNames=["tdt-search-","tdt-route-","smmeasure","mapbox-gl-draw","maplibre-gl-draw",/tracklayer-\d+-line/,/graticuleLayer_\d+_line/],e.uniqueId=+new Date,e.layersVisibleMap=new Map,e.eventTypes=["layerupdatechanged"],e._styleDataUpdatedHandler=e._styleDataUpdatedHandler.bind(e),e.baseLayerInfoOnMap=null,e.setLayers(r.layers),e._initBaseLayerInfo(r.layers),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&vye(e,t)}(t,Na),r=t,(n=[{key:"setLayers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.layers=e}},{key:"setDefaultBaseLayerInfo",value:function(e){this.baseLayerInfoOnMap=e}},{key:"setBaseLayer",value:function(){throw new Error("setBaseLayer is not implemented")}},{key:"createLayerCatalogs",value:function(){throw new Error("createLayerCatalogs is not implemented")}},{key:"getSelfLayerIds",value:function(){throw new Error("getSelfLayerIds is not implemented")}},{key:"initLayers",value:function(){throw new Error("initLayers is not implemented")}},{key:"changeBaseLayer",value:function(e){if(this.map)return this._removeBaseLayer(),this._addBaseLayer(e),uC()(this.baseLayerInfoOnMap)}},{key:"createAppreciableLayers",value:function(){var e=this.initLayers();return this._initAppreciableLayers(e)}},{key:"getLayerCatalog",value:function(){var e=this.createLayerCatalogs();return this._updateLayerCatalogsVisible(e),this._updateImmutableOrderLayers(e)}},{key:"getLayers",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.createAppreciableLayers();return e&&this.removeLayerExtralFields(t),this._updateImmutableOrderLayers(t,!0)}},{key:"getSelfLayers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getLayers(),t=this.getSelfLayerIds();return e.filter(function(e){return e.renderLayers.some(function(e){return t.some(function(t){return t===e})})})}},{key:"toggleLayerVisible",value:function(e,t){var r=t?"visible":"none";if("group"===e.type){var n=this._getLayerVisibleId(e);this.layersVisibleMap.set(n,t);var o=Po(e.children);o.length?this.setLayersVisible(o,r):this.map.style.fire("data",{dataType:"style"})}else this.setLayersVisible([e],r)}},{key:"setLayersVisible",value:function(e,t){var r=this;e.forEach(function(e){var n=r._getLayerVisibleId(e);if(r.layersVisibleMap.set(n,"visible"===t),e.CLASS_INSTANCE&&e.CLASS_INSTANCE.show&&e.CLASS_INSTANCE.hide)return"visible"===t?e.CLASS_INSTANCE.show():e.CLASS_INSTANCE.hide(),void r.map.style.fire("data",{dataType:"style"});e.renderLayers.forEach(function(n){("L7Layer"!==e.CLASS_NAME||r.map.getLayer(n))&&r.map.setLayoutProperty(n,"visibility",t)})})}},{key:"concatExpectLayers",value:function(e,t,r){var n=r.filter(function(e){return!t.some(function(t){return t===e.id})});return this._filterExpectedLayers(e.concat(n))}},{key:"destroy",value:function(){this.map.off("styledata",this._styleDataUpdatedHandler)}},{key:"initDatas",value:function(){this.map&&(this._styleDataUpdatedHandler(),this._registerMapEvent())}},{key:"removeLayerExtralFields",value:function(e){e.forEach(function(e){delete e.metadata})}},{key:"_initAppreciableLayers",value:function(e){var t=this;return e.reduce(function(e,r){var n=To(r),o=e.find(function(e){return e.id===n});o||(o=t._createCommonFields(r,n),e.push(o));var i=o.renderLayers.concat(r.layerInfo?r.layerInfo.renderLayers:r.id);return o.renderLayers=Array.from(new Set(i)),e},[])}},{key:"_initSourceList",value:function(e){var t=this;return e.slice().reverse().reduce(function(e,r){var n=r.renderSource.sourceLayer?"".concat(r.renderSource.id,"_").concat(t.uniqueId):r.id,o=r.metadata.SM_Layer_Title||(r.renderSource.sourceLayer?r.renderSource.id:r.title),i=e.find(function(e){return e.id===n});if(!i){var a=new sye(pye(pye({},r),{},{id:n,title:o}));e.push(a),i=a}return i.addLayer(r),e},[])}},{key:"_filterExpectedLayers",value:function(e){var t=this;return e.filter(function(e){return t._excludeLayer(e)})}},{key:"_excludeSource",value:function(e){for(var t=0;t0){var i=this._findLayerCatalog(o.children,t);if(i)return i}}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"_getLayerVisibleId",value:function(e){return"".concat(e.type,"-").concat(e.id)}},{key:"_getLayerVisible",value:function(e){var t=this._getLayerVisibleId(e);return this.layersVisibleMap.has(t)?this.layersVisibleMap.get(t):e.visible}},{key:"_updateLayerCatalogsVisible",value:function(e){var t,r=uye(e);try{for(r.s();!(t=r.n()).done;){var n=t.value;n.visible=this._getLayerVisible(n),"group"===n.type&&this._updateLayerCatalogsVisible(n.children)}}catch(e){r.e(e)}finally{r.f()}}},{key:"_registerMapEvent",value:function(){this.map.on("styledata",this._styleDataUpdatedHandler)}},{key:"_styleDataUpdatedHandler",value:function(){var e=this.getLayers();this.triggerEvent("layerupdatechanged",{layers:e,relevantLayers:this.getSelfLayers(e),layerCatalog:this.getLayerCatalog()})}},{key:"_updateImmutableOrderLayers",value:function(e,t){var r=e.filter(function(e){return e.layerOrder&&"top"===e.layerOrder.toLowerCase()}),n=r.filter(function(e){return"MIGRATION"===e.type}),o=r.filter(function(e){return"MIGRATION"!==e.type});r=n.concat(o);var i=e.filter(function(e){return e.layerOrder&&"bottom"===e.layerOrder.toLowerCase()}),a=e.filter(function(e){return!e.layerOrder||"auto"===e.layerOrder.toLowerCase()});return t?i.concat(a,r):r.concat(a,i)}},{key:"_addBaseLayer",value:function(e){var t=this,r=e.layers,n=e.sources,o={};Object.keys(n).forEach(function(e){var r=e;t.map.getSource(e)&&(o[e]="".concat(e,"_").concat(+new Date),r=o[e]),t.map.addSource(r,n[e])});var i=[];r.forEach(function(e){var r=e.beforeId;if(!r){var n=t.map.getStyle();r=n.layers[0]&&n.layers[0].id}var a=Object.assign({},e);delete a.beforeId;var s=a.source;if(o[s]&&(a.source=o[s]),t.map.getLayer(a.id)){var u="".concat(a.id,"_").concat(a.source||+new Date);a.id=u}i.push({layer:a,beforeId:r})}),this.baseLayerInfoOnMap=pye(pye({},e),{},{layers:i.map(function(e){return Object.assign({},e.layer)}),sources:Object.keys(e.sources).reduce(function(e,t){var r=t;return o[r]&&(r=o[r]),e[r]=o[t],e},{})}),this.setBaseLayer(pye({},this.baseLayerInfoOnMap)),i.forEach(function(e){var r=e.layer,n=e.beforeId;t.map.addLayer(r,n)})}},{key:"_removeBaseLayer",value:function(){var e=this;if(this.baseLayerInfoOnMap){var t=this.baseLayerInfoOnMap,r=t.layers,n=t.sources,o=r.map(function(e){return e.id}),i=Object.keys(n);o.forEach(function(t){e.map.getLayer(t)&&e.map.removeLayer(t)}),i.forEach(function(t){e.map.getSource(t)&&e.map.removeSource(t)})}}},{key:"_initBaseLayerInfo",value:function(e){if(e&&e.length&&!this.baseLayerInfoOnMap){var t=this.layers[0],r=this.map.getStyle().layers,n=t.renderLayers.map(function(e){var n=r.find(function(t){return t.id===e});if(n){var o=r.findIndex(function(t){return t.id===e})+1;r[o]&&(n.beforeId=r[o].id),n.metadata&&n.metadata.SM_Layer_Title||(n.metadata=pye(pye({},n.metadata),{},{SM_Layer_Title:t.title}))}return n}).filter(Boolean),o=this.map.getStyle().sources;this.setDefaultBaseLayerInfo({id:"__default__".concat(t.id),title:t.title,layers:n,sources:n.reduce(function(e,t){var r=t.source;return r&&!e[r]&&(e[r]=o[r]),e},{})})}}}])&&yye(r.prototype,n),o&&yye(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Aye(e){"@babel/helpers - typeof";return(Aye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wye(e){return function(e){if(Array.isArray(e))return Sye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Sye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Sye(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Sye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=xye(this,t,[r])).initDatas(),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&kye(e,t)}(t,bye),r=t,(n=[{key:"createLayerCatalogs",value:function(){var e=this.getLayers(!1);return this._initSourceList(e)}},{key:"getSelfLayerIds",value:function(){return this.layers.reduce(function(e,t){return e.concat(t.renderLayers)},[])}},{key:"initLayers",value:function(){var e=this,t=this._getAllLayersOnMap(),r=t;this.appendLayers&&(r=t.filter(function(t){return e.layers.some(function(r){return e._isBelongToMapJSON(r,t)})}));var n=[],o=[];return this.layers.forEach(function(t){var i=r.filter(function(r){return e._isBelongToMapJSON(t,r)}),a=i.find(function(e){return e.id===t.id});if(i.length>0){if(a)n.push(Eye(Eye({},a),{},{layerInfo:Eye(Eye({},t),{},{dataSource:t.dataSource||t.serverId&&{serverId:t.serverId}})}));else{var s=i.map(function(e){var r=Object.assign({},e);return r.metadata=Object.assign({},r.metadata,{SM_Layer_Title:t.name}),r});n.push.apply(n,wye(s))}o.push.apply(o,wye(t.renderLayers))}}),this.concatExpectLayers(n,o,r)}},{key:"setBaseLayer",value:function(e){var t=this.layers.slice(1),r=(e.layers[0]||{}).id||"",n={id:e.id||r,visible:!0,name:e.title||r,title:e.title||r,renderLayers:e.layers.map(function(e){return e.id})};t.unshift(n),this.setLayers(t)}},{key:"_isBelongToMapJSON",value:function(e,t){return e.renderLayers&&e.renderLayers.some(function(e){return e===t.id})}}])&&Oye(r.prototype,n),o&&Oye(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function jye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Mye(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{layerFilter:function(){return!0}},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{style:{version:8,sources:{},layers:[]}};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),t=Dye(this,n),"string"==typeof e||"number"==typeof e?t.mapId=e:null!==e&&"object"===Nye(e)&&(t.webMapInfo=e),t.mapId||o.center||o.zoom||(o.center=[0,0],o.zoom=0),r.map&&(t.map=r.map),t.options=Object.assign({},r),delete t.options.map,t._setServer(r.server||"https://www.supermapol.com"),t.options.target=r.target||"map",t.options.withCredentials=r.withCredentials||!1,t.mapOptions=o,t.webMapService=new Uhe(e,t.options),t.eventTypes=["mapinitialized","mapcreatesucceeded","addlayerssucceeded","mapcreatefailed","getmapfailed","layercreatefailed","getlayersfailed","baidumapnotsupport","layerorsourcenameduplicated","dataflowfeatureupdated","projectionnotmatch","xyztilelayernotsupport","layeraddchanged","layerupdatechanged","mapbeforeremove"],t._cacheCleanLayers=[],t._mapInitializedHandler=t._mapInitializedHandler.bind(t),t._mapCreateSucceededHandler=t._mapCreateSucceededHandler.bind(t),t._addLayerChangedHandler=t._addLayerChangedHandler.bind(t),t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Qye(e,t)}(n,e),o=n,(i=[{key:"resize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.map&&this.map.resize(),this._handler&&this._handler.echartsLayerResize();var t=window.getComputedStyle(document.getElementById(this.options.target)),r=this.mapOptions.bounds;if(e&&this.map&&r&&t){var n=this._getResizedZoom(r,t);n!==this.map.getZoom()&&this.map&&this.map.setZoom(n)}}},{key:"setCenter",value:function(e){if(this.map&&this._centerValid(e)){this.mapOptions.center=e;var t=this.map.getCenter(),r=t.lng,n=t.lat;e[0]===+r.toFixed(4)&&e[1]===+n.toFixed(4)||this.map.setCenter(e,{from:"setCenter"})}}},{key:"setRenderWorldCopies",value:function(e){this.map&&(this.mapOptions.renderWorldCopies=e,this.map.setRenderWorldCopies(e))}},{key:"setBearing",value:function(e){this.map&&(this.mapOptions.bearing=e,e!==+this.map.getBearing().toFixed(2)&&(e||0===e)&&this.map.setBearing(e))}},{key:"setPitch",value:function(e){this.map&&(this.mapOptions.pitch=e,e!==+this.map.getPitch().toFixed(2)&&(e||0===e)&&this.map.setPitch(e))}},{key:"setStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.map){if(this.mapOptions.style=e,t&&this.cleanLayers(),this._isWebMapV3(e))return void this.setMapId(e,t);this._initWebMap(!t)}}},{key:"setRasterTileSize",value:function(e){var t=this;if(this.map&&!(e<=0)){var r=this.map.getStyle().sources;Object.keys(r).forEach(function(n){"raster"===r[n].type&&"iserver"===r[n].rasterSource&&t._updateRasterSource(n,{tileSize:e})})}}},{key:"setMaxBounds",value:function(e){this.map&&(this.mapOptions.maxBounds=e,e&&this.map.setMaxBounds(e))}},{key:"setMinZoom",value:function(e){this.map&&(this.mapOptions.minZoom=e,(e||0===e)&&this.map.setMinZoom(e))}},{key:"setMaxZoom",value:function(e){this.map&&(this.mapOptions.maxZoom=e,(e||0===e)&&this.map.setMaxZoom(e))}},{key:"setWebMapOptions",value:function(e){this.setServerUrl(e.server),this._initWebMap()}},{key:"setMapOptions",value:function(e){var t=e.center,r=e.zoom,n=e.maxBounds,o=e.minZoom,i=e.maxZoom,a=e.isWorldCopy,s=e.bearing,u=e.pitch;t&&t.length&&this.setCenter(t),r&&this.setZoom(r),n&&this.setMaxBounds(n),o&&this.setMinZoom(o),i&&this.setMaxZoom(i),a&&this.setRenderWorldCopies(a),s&&this.setBearing(s),u&&this.setPitch(u)}},{key:"getPopupInfos",value:function(){return this._handler._getPopupInfos()||[]}},{key:"getLayers",value:function(){return this._handler&&this._handler.getLayers()||[]}},{key:"getLegends",value:function(){return this._handler&&this._handler.getLegends()||[]}},{key:"getLayerCatalog",value:function(){return this._handler&&this._handler.getLayerCatalog()||[]}},{key:"setLayersVisible",value:function(){var e;this._handler&&(e=this._handler).setLayersVisible.apply(e,arguments)}},{key:"toggleLayerVisible",value:function(){var e;this._handler&&(e=this._handler).toggleLayerVisible.apply(e,arguments)}},{key:"getWebMapType",value:function(){return this.type}},{key:"rectifyLayersOrder",value:function(){var e;this._handler&&(e=this._handler).rectifyLayersOrder.apply(e,arguments)}},{key:"updateOverlayLayer",value:function(){var e;this._handler&&(e=this._handler).updateOverlayLayer.apply(e,arguments)}},{key:"copyLayer",value:function(){var e;return this._handler&&(e=this._handler).copyLayer.apply(e,arguments)}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.map&&(e&&this._fire("mapbeforeremove",{map:this.map}),this._handler&&(this._handler.clean(e),this._handler=null),e&&(this.map=null),this.mapOptions&&(this.mapId||this.webMapInfo)&&(this.mapOptions.center=null,this.mapOptions.zoom=null))}},{key:"cleanLayers",value:function(){if(this.map){var e=this._cacheCleanLayers.filter(function(e){return!e.reused});this._handler&&this._handler.cleanLayers(e),this._cacheCleanLayers=[],this.clean(!1)}}},{key:"changeBaseLayer",value:function(){var e;return this._handler&&(e=this._handler).changeBaseLayer.apply(e,arguments)}},{key:"_readyForInitializingWebMap",value:function(){this._initWebMap(!this.map)}},{key:"_initWebMap",value:function(){var e=this;if((!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&this.clean(),this.webMapInfo){var t=this.webMapInfo;return t.mapParams={title:this.webMapInfo.title,description:this.webMapInfo.description},this.mapParams=t.mapParams,void Promise.resolve().then(function(){e._getMapInfo(t)}).catch(function(t){e._fire("mapcreatefailed",{error:t})})}this.mapId&&this.options.serverUrl?(this._taskID=new Date,this.getMapInfo(this._taskID)):Promise.resolve().then(function(){e._createMap("MapStyle")}).catch(function(t){e._fire("mapcreatefailed",{error:t})})}},{key:"setZoom",value:function(e){this.map&&(this.mapOptions.zoom=e,e!==+this.map.getZoom().toFixed(2)&&(e||0===e)&&this.map.setZoom(e,{from:"setZoom"}))}},{key:"setServerUrl",value:function(e){this._setServer(e),this.webMapService.setServerUrl(this.options.serverUrl)}},{key:"setWithCredentials",value:function(e){this.options.withCredentials=e,this.webMapService.setWithCredentials(e)}},{key:"setProxy",value:function(e){this.options.proxy=e,this.webMapService.setProxy(e)}},{key:"setMapId",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];"string"==typeof e||"number"==typeof e?(this.mapId=e,this.webMapInfo=null):null!==e&&"object"===Nye(e)&&(this.webMapInfo=e,this.mapId=""),this.webMapService.setMapId(e),e&&setTimeout(function(){t._initWebMap(!r)},0)}},{key:"getMapInfo",value:function(e){var t=this;this.webMapService.getMapInfo().then(function(r){t._taskID===e&&(t.mapParams=r.mapParams,t._getMapInfo(r))},function(e){throw e}).catch(function(e){t._fire("mapcreatefailed",{error:e}),console.log(e)})}},{key:"_createWebMapFactory",value:function(){throw new Error("_createWebMapFactory is not implemented")}},{key:"_mapInitializedHandler",value:function(e){var t=e.map;this.map=t,this._fire("mapinitialized",{map:this.map})}},{key:"_mapCreateSucceededHandler",value:function(e){this.mapParams=e.mapparams,this._cacheCleanLayers=e.layers,this._fire("mapcreatesucceeded",e)}},{key:"_addLayerChangedHandler",value:function(e){this._cacheCleanLayers=e.layers,this.fire("layeraddchanged",e)}},{key:"_isWebMapV3",value:function(e){if(!e.version)return!1;var t="".concat(e.version).split(".");return!(t.length<=1)&&+t[0]>=3}},{key:"_getMapInfo",value:function(e){var t=this._isWebMapV3(e)?"WebMap3":"WebMap2";this._createMap(t,e)}},{key:"_createMap",value:function(e,t){var r=this,n=Mye(Mye({},this.options),{},{iportalServiceProxyUrlPrefix:this.webMapService.iportalServiceProxyUrl}),o=Mye(Mye({},this.eventTypes.reduce(function(e,t){return e[t]=function(e){r._fire(t,e)},e},{})),{},{mapinitialized:this._mapInitializedHandler,mapcreatesucceeded:this._mapCreateSucceededHandler,layeraddchanged:this._addLayerChangedHandler}),i=uC()(this.mapOptions),a=this._createWebMapFactory(e),s=this.mapId||this.webMapInfo;for(var u in this._handler=new a(s,n,i),o)this._handler.on(u,o[u]);var l={},c=this.options.layerFilter;t&&(l=Mye(Mye({},t),{},{layers:"function"==typeof c?t.layers.filter(c):t.layers})),this.type=e,this._handler.initializeMap(l,this.map)}},{key:"_updateRasterSource",value:function(e,t){if(e){var r=this.map.getSource(e);Object.assign(r,t),this.map.style.sourceCaches[e].clearTiles(),this.map.style.sourceCaches[e].update(this.map.transform),this.map.triggerRepaint()}}},{key:"_getResizedZoom",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:512,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Gye,o=t.width,i=t.height,a=Math.abs(e.getEast()-e.getWest()),s=Math.abs(this._getBoundsRadian(e.getSouth())-this._getBoundsRadian(e.getNorth())),u=+Math.log2(n/(a/parseInt(o)*r)).toFixed(2),l=+Math.log2(n/(s/parseInt(i)*r)).toFixed(2);return u<=l?u:l}},{key:"_getBoundsRadian",value:function(e){return 180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360))}},{key:"_centerValid",value:function(e){return!(!e||!(e.length>0||Nye(e)===r.LngLat||e.lng))}},{key:"_getWebMapInstance",value:function(){return this._handler}},{key:"_setServer",value:function(e){this.options.server=Oo(e),this.options.serverUrl=this.options.server}},{key:"_fire",value:function(e,t){var r=this;([["mapcreatesucceeded","addlayerssucceeded"],["mapcreatefailed","getmapfailed"],["layercreatefailed","getlayersfailed"]].find(function(t){return t.includes(e)})||[e]).forEach(function(e){r.fire(e,t)})}}])&&Rye(o.prototype,i),a&&Rye(o,a),Object.defineProperty(o,"prototype",{writable:!1}),o;var o,i,a}()}function zye(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}}function Hye(e){"@babel/helpers - typeof";return(Hye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function qye(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||Yye(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vye(e){return function(e){if(Array.isArray(e))return Jye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||Yye(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kye(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Yye(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Yye(e,t){if(e){if("string"==typeof e)return Jye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Jye(e,t):void 0}}function Jye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(ede(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,ede(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,ede(f,"constructor",l),ede(l,"constructor",u),u.displayName="GeneratorFunction",ede(l,o,"GeneratorFunction"),ede(f),ede(f,o,"Generator"),ede(f,n,function(){return this}),ede(f,"toString",function(){return"[object Generator]"}),($ye=function(){return{w:i,m:p}})()}function ede(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(ede=function(e,t,r,n){function i(t,r){ede(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function tde(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function rde(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){tde(i,n,o,a,s,"next",e)}function s(e){tde(i,n,o,a,s,"throw",e)}a(void 0)})}}function nde(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{layerFilter:function(){return!0}},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{style:{version:8,sources:{},layers:[]}};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),t=ide(this,s,[e,r,n]),"string"!=typeof e&&"number"!=typeof e||(t.mapId=e),t._centerValid(n.center)&&(t.center=n.center),t.zoom=n.zoom,t.renderWorldCopies=n.renderWorldCopies,t.bounds=n.bounds,t.bearing=n.bearing,t.pitch=n.pitch,t.rasterTileSize=n.rasterTileSize||256,t.layerFilter=r.layerFilter,t.checkSameLayer=r.checkSameLayer,t._taskID=new Date,t._cacheLayerId=new Map,t._layerTimerList=[],t._appendLayers=!1,t._tileTransformRequest=r.tileTransformRequest,t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&lde(e,t)}(s,e),u=s,(l=[{key:"initializeMap",value:function(){var e=rde($ye().m(function e(t,r){var n;return $ye().w(function(e){for(;;)switch(e.p=e.n){case 0:return e.p=0,e.n=1,this._registerMapCRS(t);case 1:if(this.baseProjection=e.v,!r){e.n=3;break}if(o.isSameProjection(r,this.baseProjection)||this.ignoreBaseProjection){e.n=2;break}return this.fire("projectionnotmatch"),e.a(2);case 2:this._appendLayers=!0,this.map=r;case 3:this._mapInfo=t,this._loadLayers(t,this._taskID),e.n=5;break;case 4:e.p=4,n=e.v,console.error(n),this.fire("mapcreatefailed",{error:n});case 5:return e.a(2)}},e,this,[[0,4]])}));return function(t,r){return e.apply(this,arguments)}}()},{key:"cleanLayers",value:function(e){ade(s,"cleanLayers",this,3)([e]),this.echartslayer.forEach(function(e){e.remove(),e.features=null,e.id=""})}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.map&&(this._sourceListModel&&(this._sourceListModel.destroy(),this._sourceListModel=null),this.stopCanvg(),e&&this.map.remove(),this.map=null,this._legendList=[],this.center=null,this.zoom=null,this._dataflowService&&(this._dataflowService.off("messageSucceeded",this._handleDataflowFeaturesCallback),this._dataflowService.off("subscribesucceeded",this._initDataflowLayerCallback)),this._unprojectProjection=null,this._cacheLayerId=new Map),this._layerTimerList.length&&(this._layerTimerList.forEach(function(e){clearInterval(e)}),this._layerTimerList=[])}},{key:"_initWebMap",value:function(){}},{key:"_getMapInfo",value:function(){}},{key:"_loadLayers",value:function(e,t){var r=this;this.map?this._handleLayerInfo(e,t):setTimeout(function(){r._createMap(e).then(function(){r.map.on("load",function(){r._handleLayerInfo(e,t)})})},0)}},{key:"_registerMapCRS",value:function(){var e=rde($ye().m(function e(t){var r,n,i,a,s,u,l,c,f,p,h,y;return $ye().w(function(e){for(;;)switch(e.n){case 0:if(r=t.projection,n=t.extent,i=void 0===n?{leftBottom:{},rightTop:{}}:n,a=t.baseLayer,s=void 0===a?{}:a,u=nE(r),l={name:u,extent:[i.leftBottom.x,i.leftBottom.y,i.rightTop.x,i.rightTop.y],wkt:this._getProjectionWKT(r)},o.getCRS(u)){e.n=9;break}y=s.layerType,e.n="MAPBOXSTYLE"===y?1:"TILE"===y?3:"ZXY_TILE"===y?7:8;break;case 1:return(c=s.dataSource.url).indexOf("/restjsr/")>-1&&!/\/style\.json$/.test(c)&&(c=B.urlPathAppend(c,"/style.json")),e.n=2,this.webMapService.getMapBoxStyle(c);case 2:return(f=e.v)&&f.metadata&&f.metadata.indexbounds&&(l.extent=f.metadata.indexbounds),e.a(3,9);case 3:if(l.wkt){e.n=5;break}return e.n=4,this.getEpsgCodeWKT(B.urlPathAppend(s.url,"/prjCoordSys.wkt"),{withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",s.url,!1)});case 4:l.wkt=e.v;case 5:return e.n=6,this.getBounds("".concat(s.url,".json"),{withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",s.url,!1)});case 6:return(p=e.v)&&p.bounds&&(l.extent=[p.bounds.leftBottom.x,p.bounds.leftBottom.y,p.bounds.rightTop.x,p.bounds.rightTop.y]),e.a(3,9);case 7:return h=this._getZXYTileCrsExtent(s),l.extent=h,e.a(3,9);case 8:return l=null,e.a(3,9);case 9:if(l){e.n=10;break}throw new Error("Unsupported coordinate system!");case 10:return o.registerCRS(l),e.a(2,u)}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_getPopupInfos",value:function(){var e=this._mapInfo.layers;return(void 0===e?[]:e).map(function(e){var t=e.popupInfo,r=e.enableFields,n=e.name,o=e.layerID,i=e.captions;if(t){var a=t.elements||[];return i&&(a=(t.elements||[]).map(function(e){return"FIELD"===e.type&&(e.fieldCaption=i[e.fieldName]||e.fieldName),e})),Xye(Xye({},t),{},{layerId:[o],elements:a,title:n})}return r?{elements:r.map(function(e){return{type:"FIELD",fieldName:e,fieldCaption:i&&i[e]||e}}),layerId:[o],title:n}:null}).filter(function(e){return null!==e})}},{key:"_handleLayerInfo",value:function(e,t){var r=this;e=this._setLayerID(e),this._mapInfo=e,this.layerAdded=0,this.expectLayerLen=0;var n=e,o=n.layers,i=n.grid;if(this._setExpectLayerLen(e),0===this.expectLayerLen&&this._sendMapToUser(0,0),this._shouldLoadBaseLayer(e,this.layerFilter)&&this._initBaseLayer(e,function(){r._addLayerSucceeded()}),o&&0!==o.length){var a=o;"function"==typeof this.layerFilter&&(a=o.filter(this.layerFilter)),this._initOverlayLayers(a,t)}i&&i.graticule&&this._initGraticuleLayer(i.graticule)}},{key:"_setExpectLayerLen",value:function(e){this._shouldLoadBaseLayer(e,this.layerFilter)&&this.expectLayerLen++;var t=e.layers;t&&t.length>0&&("function"==typeof this.layerFilter&&(t=t.filter(this.layerFilter)),this.expectLayerLen+=t.length),e.grid&&e.grid.graticule&&this.expectLayerLen++}},{key:"_shouldLoadBaseLayer",value:function(e,t){var r=e.baseLayer;return!!r&&("function"!=typeof t||t(r))}},{key:"_getScales",value:function(){var e=rde($ye().m(function e(t){var r,o,i,a,s,u,l,c,f,p,h,y,d,m;return $ye().w(function(e){for(;;)switch(e.p=e.n){case 0:if(r=t.baseLayer,o=[],(i=r.coordUnit||r.units||n.CRS.get(this.baseProjection).unit)||(i="EPSG:3857"==this.baseProjection?"m":"degree"),a=null,"TILE"!==r.layerType){e.n=4;break}return e.p=1,s={withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",r.url,!1)},e.n=2,this.getBounds("".concat(r.url,".json"),s);case 2:(u=e.v)&&u.visibleScales&&(a=u.visibleScales),e.n=4;break;case 3:e.p=3,d=e.v,console.error(d);case 4:if(!(a&&a.length>0)){e.n=5;break}a.forEach(function(e){var t=1/e;o.push("1:".concat(t))}),e.n=11;break;case 5:if("WMTS"!==r.layerType){e.n=10;break}return e.p=6,e.n=7,this.webMapService.getWmtsInfo(r,this.baseProjection);case 7:e.v.scales.forEach(function(e){o.push("1:".concat(e))}),e.n=9;break;case 8:e.p=8,m=e.v,console.error(m);case 9:e.n=11;break;case 10:if("ZXY_TILE"===r.layerType)r.resolutions.forEach(function(e){var t="1:"+B.getScaleFromResolution(e,i);o.push(t)});else{l="MAPBOXSTYLE"===r.layerType?n.CRS.get(this.baseProjection).extent:t.extent,c=this._getResolutionsByExtent({extent:this._transExtentToBounds(l),tileSize:512}),f=Kye(c);try{for(f.s();!(p=f.n()).done;)h=p.value,y="1:"+B.getScaleFromResolution(h,i),-1===o.indexOf(y)&&o.push(y)}catch(e){f.e(e)}finally{f.f()}}case 11:return e.a(2,o)}},e,this,[[6,8],[1,3]])}));return function(t){return e.apply(this,arguments)}}()},{key:"_transExtentToBounds",value:function(e){return e instanceof Array?e:[e.leftBottom.x,e.leftBottom.y,e.rightTop.x,e.rightTop.y]}},{key:"_createMap",value:function(){var e=rde($ye().m(function e(t){var o,i,a,s,u,l,c,f,p,h,y,d,m=this;return $ye().w(function(e){for(;;)switch(e.n){case 0:if(o=this._getLabelFontFamily(t),i=this._getMapCenter(t),a=t.level||0,s=0,u=this.mapOptions,l=u.bounds,c=u.minZoom,f=u.maxZoom,p=this.mapOptions.interactive,h=t.baseLayer.tileSize,isNaN(c)&&(c=t.minScale?this._transformScaleToZoom(t.minScale,n.CRS.get(this.baseProjection),h):0),isNaN(f)&&(f=t.maxScale?this._transformScaleToZoom(t.maxScale,n.CRS.get(this.baseProjection),h):22),t.visibleExtent&&4===t.visibleExtent.length&&!l&&(l=[this._unproject([t.visibleExtent[0],t.visibleExtent[1]]),this._unproject([t.visibleExtent[2],t.visibleExtent[3]])]),c>f&&(c=(y=[f,c])[0],f=y[1]),l){e.n=4;break}if(!t.minScale||!t.maxScale){e.n=2;break}return e.n=1,this._getScales(t);case 1:d=e.v,s=Math.min(this._transformScaleToZoom(d[0]||t.minScale,n.CRS.get(this.baseProjection),h),this._transformScaleToZoom(t.maxScale,n.CRS.get(this.baseProjection),h)),e.n=3;break;case 2:s=+Math.log2(this._getResolution(n.CRS.get(this.baseProjection).getExtent())/this._getResolution(t.extent)).toFixed(2);case 3:a+=s;case 4:this.map=new r(Xye(Xye({},this.mapOptions),{},{container:this.target,center:this.center||i,zoom:this.zoom||a,minZoom:c,maxZoom:f,bearing:this.bearing||0,pitch:this.pitch||0,interactive:void 0===p||p,style:{version:8,sources:{},layers:[]},crs:this.baseProjection,localIdeographFontFamily:o||"",renderWorldCopies:this.renderWorldCopies||!1,transformRequest:function(e,t){var r=m.webMapService.handleProxy(),n=m.webMapService.handleWithCredentials(r,e,!1)?"include":void 0;return"Tile"===t?(m.isSuperMapOnline&&0===e.indexOf("http://")&&(e="https://www.supermapol.com/apps/viewer/getUrlResource.png?url=".concat(encodeURIComponent(e))),m.webMapService.isIportalResourceUrl(e)&&(e=m.webMapService.handleParentRes(e)),Xye({url:e,credentials:n},m._tileTransformRequest&&m._tileTransformRequest(e))):{url:e,credentials:n}},fadeDuration:0})),this.fire("mapinitialized",{map:this.map});case 5:return e.a(2)}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_createMVTBaseLayer",value:function(e,t){var r=this,n=e.dataSource.url;n.indexOf("/restjsr/")>-1&&!/\/style\.json$/.test(n)&&(n=B.urlPathAppend(n,"/style.json"));var o=-1===n.indexOf("/restjsr/");this.webMapService.getMapBoxStyle(n,o).then(function(o){if(Object.keys(o.sources).some(function(e){return r.map.getSource(e)}))return r.fire("layerorsourcenameduplicated",{}),void(t&&t());if(o.layers.forEach(function(t){t.layout&&(t.layout.visibility=r._getVisibility(e.visible))}),"ARCGIS_VECTORTILE"===e.dataSource.type){var i=n.split("?")[1];Object.keys(o.sources).forEach(function(e){Object.keys(o.sources[e]).forEach(function(t){"url"===t&&("string"!=typeof o.sources[e][t]||r.isAbsoluteURL(o.sources[e][t])||(o.sources[e][t]=r.relative2absolute(o.sources[e][t],n)),o.sources[e][t]=o.sources[e][t]+(i?"?"+i+"&f=json":"?f=json"))})})}r.map.addStyle(o,void 0,void 0,void 0,n);var a=[];o.layers.forEach(function(e){"background"!==e.type&&a.push(e.id)}),r._setCacheLayer({parentLayerId:e.layerID||e.name,subRenderLayers:a.map(function(e){return{layerId:e}})}),t&&t()},function(e){throw t&&t(),new Error(e)}).catch(function(t){r.fire("layercreatefailed",{error:t,layer:e,map:r.map})})}},{key:"_initBaseLayer",value:function(e,t){var r,n=e.baseLayer||e,o=this.getBaseLayerType(n),i=this.getMapurls();switch(this.baseLayerProxy=this.webMapService.handleProxy("image"),o){case"TIANDITU":this.baseLayerProxy=null,this._createTiandituLayer(e,t);break;case"BING":this.baseLayerProxy=null,this._createBingLayer(n.layerID||n.name,n,t);break;case"WMS":this._createWMSLayer(n,t);break;case"WMTS":this._createWMTSLayer(n,t);break;case"TILE":this._createDynamicTiledLayer(n,t);break;case"ZXY_TILE":this._createZXYLayer(n,t);break;case"CLOUD":case"XYZ":r=i[n.layerType].replace("{googleMapsLanguage}",this.googleMapsLanguage).replace("{googleMapsAPIKey}",this.googleMapsAPIKey),this._createXYZLayer(n,r,t);break;case"BAIDU":this.fire("baidumapnotsupport",{}),t&&t();break;case"MAPBOXSTYLE":this._createMVTBaseLayer(n,t)}}},{key:"_initOverlayLayers",value:function(e,t){var r=this;this.expectLayerLen>0&&e.forEach(function(e){var n=r.webMapService.getDatasourceType(e);if("SAMPLE_DATA"===n)return r._addLayerSucceeded(),void r.fire("layercreatefailed",{error:"SAMPLE DATA is not supported",layer:e,map:r.map});if(e.visibleScale){var o=e.visibleScale,i=o.minScale,a=o.maxScale,s=r.map.getCRS();e.minzoom=Math.max(r._transformScaleToZoom(i,s,e.tileSize),0),e.maxzoom=Math.min(r.map.getMaxZoom()+1,r._transformScaleToZoom(a,s,e.tileSize)+1e-7)}"tile"===n?(e.autoUpdateTime&&r._layerTimerList.push(setInterval(function(){r._initBaseLayer(e)},e.autoUpdateTime)),r._initBaseLayer(e,function(){r._addLayerSucceeded()})):(r.getLayerFeatures(e,t,n),e.autoUpdateTime&&r._layerTimerList.push(setInterval(function(){r.getLayerFeatures(e,t,n)},e.autoUpdateTime)))},this)}},{key:"_initOverlayLayer",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,o=e.layerID,i=e.layerType,a=e.visible,s=e.style,u=e.featureType,l=e.projection;if(e.visible=a?"visible":"none",t=xo({sourceId:o,features:t,mergeByField:r,map:this.map}),"restMap"!==i)if("mvt"!==i){t&&t[0]&&t[0].geometry&&"Polygon"===t[0].geometry.type&&(t=this._handleMultyPolygon(t));var c=n||l;if(t&&c&&"EPSG:4326"!==c&&e.dataSource&&"REST_DATA"!==e.dataSource.type&&(this._unprojectProjection=nE(l),t=this.transformFeatures(t)),t=this.handleLayerFeatures(t,e),"VECTOR"===i){var f=this.getVectorStyleGroup(e);this._initLegendConfigInfo(e,f),"POINT"===u?"SYMBOL_POINT"===s.type?this._createSymbolLayer(e,t):this._createGraphicLayer(e,t):(this._createVectorLayer(e,t),this._addLayerSucceeded({layerInfo:e,features:t}))}else"UNIQUE"===i?this._createUniqueLayer(e,t):"RANGE"===i?this._createRangeLayer(e,t):"HEAT"===i?this._createHeatLayer(e,t):"MARKER"===i?this._createMarkerLayer(e,t):"MIGRATION"===i?this._createMigrationLayer(e,t):"RANK_SYMBOL"===i?this._createRankSymbolLayer(e,t):this._isDataflowLayer(i)&&this._createDataflowLayer(e)}else this._createMvtLayer(t.info,e,t.featureType);else this._createRestMapLayer(t,e)}},{key:"_initGraticuleLayer",value:function(e){var t=this._createGraticuleOptions(e),r=new a(t);this._setGraticuleDash(t.strokeStyle,r),this._graticuleLayer=r,this.map.addLayer(r),this._setCacheLayer({parentLayerId:r.id,subRenderLayers:[{layerId:r.id},{layerId:r.sourceId}],metadata:{SM_Layer_Order:"Top"}}),this._addLayerSucceeded()}},{key:"_createGraticuleOptions",value:function(e){var t=e.extent,r=e.lonLabelStyle,n=e.latLabelStyle,o=e.strokeColor,i=e.lineDash,a=e.strokeWidth,s=e.interval,u={lineColor:o,lindDasharray:i,lineWidth:a};return r={textFont:r.fontFamily.split(","),textSize:r.fontSize,textAnchor:n.textBaseline,textColor:r.fill,textHaloColor:r.outlineColor,textHaloWidth:r.outlineWidth},n={textFont:n.fontFamily.split(","),textSize:n.fontSize,textAnchor:n.textBaseline,textColor:n.fill,textHaloColor:n.outlineColor,textHaloWidth:n.outlineWidth},t=t||this.map.getCRS().extent,{minZoom:1,strokeStyle:u,extent:t=[this._unproject([t[0],t[1]]),this._unproject([t[2],t[3]])],interval:s&&s[0],lngLabelStyle:r,latLabelStyle:n,layerID:"graticuleLayer_".concat(+new Date)}}},{key:"_setGraticuleDash",value:function(e,t){var r=this;this.map.on("zoomend",function(){r.map.getZoom()<3?t.setStrokeStyle(Xye(Xye({},e),{},{lineOpacity:.5,lineWidth:e.lineWidth/2,lindDasharray:[.1,3]})):t.setStrokeStyle(e)})}},{key:"_createTiandituLayer",value:function(e,t){var r=this._getTiandituUrl(e),n=e.baseLayer,o=n.labelLayerVisible,i=n.name,a=n.visible,s=Boolean(o),u=r.labelUrl,l=r.tiandituUrl,c=cde.TIANDITU;this._addBaselayer({url:l,layerID:i,visibility:a,bounds:c}),s&&this._addBaselayer({url:u,layerID:this._getTdtLabelLayerName(i),parentLayerId:i,visibility:a,bounds:c}),t&&t()}},{key:"_createWMTSLayer",value:function(e,t){var r=this;this.webMapService.getWmtsInfo(e,this.map.getCRS().epsgCode).then(function(n){var o=e.layerID||e.name;if(n.isMatched){var i=r._getWMTSUrl(Object.assign({},e,n));r._addBaselayer({url:[i],layerID:o,visibility:e.visible,minzoom:n.matchMinZoom,maxzoom:n.matchMaxZoom,isIserver:!1,bounds:n.bounds}),t&&t()}},function(e){throw t&&t(),new Error(e)}).catch(function(t){r.fire("layercreatefailed",{error:t,layer:e,map:r.map})})}},{key:"_createBingLayer",value:function(){var e=rde($ye().m(function e(t,r,n){var o,i,a,s;return $ye().w(function(e){for(;;)switch(e.n){case 0:return o="https://dev.virtualearth.net/REST/v1/Imagery/Metadata/RoadOnDemand?uriScheme=https&include=ImageryProviders&key=".concat(this.bingMapsKey,"&c=zh-cn"),e.n=1,this._fetchRequest(o,"json",{withoutFormatSuffix:!0});case 1:if(200===(i=e.v).statusCode&&1===i.resourceSets.length&&1===i.resourceSets[0].resources.length){e.n=2;break}return e.a(2);case 2:a=i.resourceSets[0].resources[0],s=a.imageUrlSubdomains.map(function(e){return a.imageUrl.replace("{subdomain}",e)}),this._addBaselayer({url:s,layerID:t,visibility:r.visible,bounds:cde.BING}),n&&n();case 3:return e.a(2)}},e,this)}));return function(t,r,n){return e.apply(this,arguments)}}()},{key:"_createXYZLayer",value:function(e,t,r){var n=[];if("OSM"===e.layerType){for(var o=t.match(/\w\-\w/g)[0],i=o[0],a=o[2],s="",u=97;u<123;u++)s+=String.fromCharCode(u);for(var l=s.split(""),c=l.indexOf(i),f=l.indexOf(a),p=l.slice(c,f+1),h=0;h2&&void 0!==arguments[2]?arguments[2]:1e-5;return Math.abs(+e-+t)<=r}},{key:"_isSameOrigin",value:function(e){var t=this.map.getCRS().getExtent();return this.numberEqual(e[0],t[0])&&this.numberEqual(e[1],t[3])}},{key:"_isSameResolutions",value:function(e,t){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:512,o=this._getMapResolutions(),i=n/t;return e.every(function(e,t){return r.numberEqual(e,i*o[t])})}},{key:"_getMapResolutions",value:function(){return this._getResolutionsByExtent({extent:this.map.getCRS().getExtent(),maxZoom:this.map.getMaxZoom()+1,tileSize:512})}},{key:"_getResolutionsByExtent",value:function(e){for(var t=e.extent,r=e.maxZoom,n=void 0===r?24:r,o=e.tileSize,i=t[2]-t[0],a=t[3]-t[1],s=(i>=a?i:a)/o,u=[],l=0;l<=n;l++)u.push(s/Math.pow(2,l));return u}},{key:"_getZXYTileCrsExtent",value:function(e){var t=e.tileSize,r=void 0===t?256:t,n=e.resolutions,o=e.origin;if(n){var i=n.sort(function(e,t){return t-e})[0]*r;return[o[0],o[1]-i,o[0]+i,o[1]]}if("EPSG:3857"==this.baseProjection)return[-20037508.3427892,-20037508.3427892,20037508.3427892,20037508.3427892]}},{key:"_createDynamicTiledLayer",value:function(){var e=rde($ye().m(function e(t,r){var n,o,i,a,s,u,l,c,f,p,h,y,d,m,g,v,b,A,w,S;return $ye().w(function(e){for(;;)switch(e.n){case 0:return n=t.url,o=t.layerID||t.name,i=t.minzoom,a=t.maxzoom,s=n,t.credential&&t.credential.token&&(u=t.credential.token,s=B.urlAppend(s,"token=".concat(u))),l={withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",s,!1)},c=B.handleUrlSuffix(s,".json"),e.n=1,this.getBounds(c,l);case 1:if(f=e.v,p=null,!f||!f.bounds){e.n=4;break}if(p=this._getBoundList(f),4326===(h=f.prjCoordSys.epsgCode)){e.n=4;break}if("EPSG:".concat(h)!==this.baseProjection&&this._mapInfo.baseLayer.url!==n){e.n=2;break}y=this._unproject([f.bounds.left,f.bounds.bottom]),d=qye(y,2),m=d[0],g=d[1],v=this._unproject([f.bounds.right,f.bounds.top]),b=qye(v,2),A=b[0],w=b[1],p=[m,g,A,w],e.n=4;break;case 2:return S=B.urlAppend(c,"prjCoordSys=".concat(JSON.stringify({epsgCode:4326}))),e.n=3,this.getBounds(S,l);case 3:f=e.v,p=this._getBoundList(f);case 4:this._addBaselayer({url:[s],layerID:o,visibility:t.visible,minzoom:i,maxzoom:a,isIserver:!0,bounds:p}),r&&r();case 5:return e.a(2)}},e,this)}));return function(t,r){return e.apply(this,arguments)}}()},{key:"_createWMSLayer",value:function(e,t){var r=this;this.webMapService.getWmsInfo(e).then(function(n){var o=e.layerID||e.name;if(n){var i=r._getWMSUrl(e,n.version);r._addBaselayer({url:[i],layerID:o,visibility:e.visible,bounds:n.bounds}),t&&t()}},function(e){throw t&&t(),new Error(e)}).catch(function(t){r.fire("layercreatefailed",{error:t,layer:e,map:r.map})})}},{key:"_createVectorLayer",value:function(e,t){var r=this,n=e.featureType,o=e.layerID,i=e.minzoom,a=e.maxzoom,s=e.style,u=e.visible,l=e.parentLayerId,c=void 0===l?o:l,f=this.map.getSource(o),p={type:"FeatureCollection",features:t};if(f)f.setData(p);else{var h={type:"geojson",data:p};this.map.addSource(o,h)}var y=Array.isArray(s)?s:[s];2===y.length&&("solid"===y[0].lineDash&&"solid"===y[1].lineDash&&(y[0].strokeWidth=y[1].strokeWidth,y[1].strokeWidth=y[1].strokeWidth-2),"solid"===y[0].lineDash&&"dash"===y[1].lineDash&&(y[0].strokeWidth=y[1].strokeWidth,y[1].strokeWidth=.5*y[1].strokeWidth,y[1].lineDash="dashrailway")),y.forEach(function(e,t){var s={style:r._transformStyleToMapBoxGl(e,n),layout:{visibility:u}},l=0===t?o:"".concat(o,"-additional-").concat(t);r._addOverlayToMap({type:n,source:o,layerID:l,parentLayerId:c,layerStyle:s,minzoom:i,maxzoom:a})}),"POLYGON"===n&&s.strokeColor&&this._addStrokeLineForPoly({style:s,source:o,layerID:o+"-strokeLine",parentLayerId:o,visible:u,minzoom:i,maxzoom:a})}},{key:"_getWMSUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"1.1.1",r=e.url,n={service:"WMS",request:"GetMap",layers:null!==e.layers&&"object"===Hye(e.layers)?e.layers.join(","):e.layers||"0",styles:"",format:"image/png",transparent:"true",version:t,width:256,height:256,bbox:"{bbox}"};if("1.3.0"===t)if(n.crs=this.baseProjection,"EPSG:4326"===this.baseProjection)n.bbox="{bbox-wms-1.3.0}";else{var i=o.getProj4().defs(this.baseProjection);i.axis&&0===i.axis.indexOf("ne")&&(n.bbox="{bbox-wms-1.3.0}")}else n.srs=this.baseProjection;return B.urlAppend(r,this._getParamString(n,r))}},{key:"_setLayerID",value:function(e){var t=this,r={},n=e.baseLayer,o=e.layers,i=void 0===o?[]:o;if(!this.checkSameLayer){var a=this._generateUniqueLayerId({layerId:n.name,repeatIndex:0});n.title=n.name,n.name=a.newId}var s=i.map(function(e){return e.name}),u=i.map(function(e,o){e.name in r||(r[e.name]=n.name===e.name?1:0);var i=s.indexOf(e.name),a=s.lastIndexOf(e.name);o>i&&o<=a&&(r[e.name]=r[e.name]+1);var u=r[e.name]?"".concat(e.name,"-").concat(r[e.name]):e.name;if(!t.checkSameLayer||"raster"!==e.layerType){var l=t._generateUniqueLayerId({layerId:u,repeatIndex:r[e.name],layerType:e.layerType}),c=l.newId,f=l.newIndex;r[e.name]=f,u=c}return Object.assign(e,{layerID:u})});return e.layers=u,e.baseLayer=n,e}},{key:"_generateUniqueLayerId",value:function(e){var t=e.layerId,r=e.repeatIndex,n=e.layerType;return this.map.getLayer(t)?(r++,t=t.match(/-\d+&/gi)?t.replace(/\d+$/gi,r):"".concat(t,"-").concat(r),this._generateUniqueLayerId(Xye(Xye({},e),{},{layerId:t,repeatIndex:r}))):this._isDataflowLayer(n)?{newId:"".concat(t,"_").concat(+new Date),newIndex:r+1}:{newId:t,newIndex:r}}},{key:"_createRestMapLayer",value:function(e,t){var r=this;e.forEach(function(e){t=r.getRestMapLayerInfo(e,t),r._initBaseLayer(t)}),this._addLayerSucceeded()}},{key:"_addLayerSucceeded",value:function(e){(((e||{}).layerInfo||{}).labelStyle||{}).labelField&&"DATAFLOW_POINT_TRACK"!==e.layerInfo.layerType&&this._addLabelLayer(e.layerInfo,e.features,!1),this.layerAdded++,this._sendMapToUser(this.layerAdded,this.expectLayerLen)}},{key:"_createDataflowLayer",value:function(e){var t=new i(e.wsUrl).initSubscribe();this._handleDataflowFeaturesCallback=this._handleDataflowFeatures.bind(this,e),this._initDataflowLayerCallback=this._initDataflowLayer.bind(this,e),t.on("subscribesucceeded",this._initDataflowLayerCallback),t.on("messageSucceeded",this._handleDataflowFeaturesCallback),this._dataflowService=t}},{key:"_initDataflowLayer",value:function(){this._addLayerSucceeded()}},{key:"_handleDataflowFeatures",value:function(e,t){var r=[JSON.parse(t.data)];if(this.fire("dataflowfeatureupdated",{features:r,identifyField:e.identifyField,layerID:e.layerID}),"EPSG:4326"!==e.projection&&(r=this.transformFeatures(r)),e.filterCondition){var n=this.replaceFilterCharacter(e.filterCondition),o=r[0].properties||{};n=this.parseCondition(n,Object.keys(o));var i=this.parseConditionFeature(o),a="select * from json where ("+n+")",s=window.jsonsql.query(a,{attributes:i});s&&s.length>0&&this._addDataflowLayer(e,r[0])}else this._addDataflowLayer(e,r[0])}},{key:"_getDataFlowRotateStyle",value:function(e,t,r){var n=["match",["get",r]];return e.forEach(function(e){var o;if((o=void 0!==t&&"未设置"!==t&&"None"!==t?e.properties[t]:0)>360||o<0)return null;n.push(e.properties[r],parseInt(o))}),n.push(0),n}},{key:"_addDataflowLayer",value:function(){var e=rde($ye().m(function e(t,r){var n,o,i,a,s,u;return $ye().w(function(e){for(;;)switch(e.n){case 0:if(n=t.layerID,"DATAFLOW_HEAT"!==t.layerType){e.n=1;break}this.map.getSource(n)?this._updateDataFlowFeature(n,r,t):this._createHeatLayer(t,[r],!1),e.n=7;break;case 1:if(o=t.pointStyle,t.style=o,this.map.getSource(n)){e.n=5;break}if(i=this._getDataFlowRotateStyle([r],t.directionField,t.identifyField),!["BASIC_POINT","SVG_POINT","IMAGE_POINT"].includes(o.type)){e.n=3;break}return e.n=2,this._createGraphicLayer(t,[r],null,i,!1);case 2:e.n=4;break;case 3:this._createSymbolLayer(t,[r],null,i,!1);case 4:e.n=6;break;case 5:this._updateDataFlowFeature(n,r,t,"point");case 6:t.labelStyle&&t.visible&&(a=this._getSymbolLabelLayerName(n),this.map.getSource(a)?this._updateDataFlowFeature(a,r,t):this._addLabelLayer(t,[r],!0)),t.lineStyle&&t.visible&&(this.map.getSource(n+"-line")?this._updateDataFlowFeature(n+"-line",r,t,"line"):(s=r.geometry.coordinates,u={type:"Feature",properties:r.properties,geometry:{type:"LineString",coordinates:[s]}},this._createVectorLayer({style:t.lineStyle,featureType:"LINE",visible:"visible",layerID:n+"-line",parentLayerId:n},[u])));case 7:return e.a(2)}},e,this)}));return function(t,r){return e.apply(this,arguments)}}()},{key:"_updateDataFlowFeature",value:function(e,t,r,n){var o=r.identifyField,i=r.maxPointCount,a=r.directionField,s=uC()(this.map.getSource(e)._data.features),u=!1;if(s.forEach(function(e,r){if(e.properties[o]===t.properties[o])if(u=!0,"line"===n){var a=e.geometry.coordinates;a.push(t.geometry.coordinates),i&&a.length>i&&a.splice(0,a.length-i),s[r].geometry.coordinates=a}else s[r]=t}),u||("line"===n?s.push({type:"Feature",properties:t.properties,geometry:{type:"LineString",coordinates:[t.geometry.coordinates]}}):s.push(t)),this.map.getSource(e).setData({type:"FeatureCollection",features:s}),"point"===n){var l=r.pointStyle.type,c=this._getDataFlowRotateStyle(s,a,o);["SVG_POINT","IMAGE_POINT"].includes(l)?this.map.setLayoutProperty(e,"icon-rotate",c):"SYMBOL_POINT"===l&&this.map.setLayoutProperty(e,"text-rotate",c)}}},{key:"_createMigrationLayer",value:function(e,t){var r=e.layerID,n=e.layerType,o=this.getEchartsLayerOptions(e,t,"GLMap");o.GLMap={roam:!0};var i=new window.EchartsLayer(this.map);i.chart.setOption(o),i.id=r,i.features=t,this.echartslayer.push(i),this._addLayer({id:r,type:n,setLayoutProperty:function(e,t){"visibility"===e&&(i.chart._dom.style.display="visible"===t?"block":"none")},metadata:{SM_Layer_Order:"top"}}),this._addLayerSucceeded({layerInfo:e,features:t})}},{key:"_createRankSymbolLayer",value:function(e,t){var r=e.minzoom,n=e.maxzoom,o=e.themeSetting.themeField,i=e.themeSetting.colors,a=e.style,s=e.featureType,u=this.createRankStyleSource(e,t).styleGroups;t=this.getFilterFeatures(e.filterCondition,t);for(var l=["match",["get","index"]],c=["match",["get","index"]],f=0;f0&&(a.fillColor=c),"SYMBOL_POINT"===a.type)this._createSymbolLayer(e,t,l);else if(["SVG_POINT","IMAGE_POINT"].includes(a.type))this._createGraphicLayer(e,t,l);else{var m={type:"geojson",data:{type:"FeatureCollection",features:t}},g={layout:{visibility:e.visible},style:this._transformStyleToMapBoxGl(e.style,s,l,"circle-radius")},v=e.layerID;this._addOverlayToMap({type:s,source:m,layerID:v,layerStyle:g,minzoom:r,maxzoom:n}),this._addLayerSucceeded({layerInfo:e,features:t})}}},{key:"_addTextBackgroundImage",value:function(e){if(!e[3])return"";for(var t=new Uint8Array(1600),r=0;r<20;r++)for(var n=0;n<20;n++){var o=4*(20*n+r);t[o+0]=e[0],t[o+1]=e[1],t[o+2]=e[2],t[o+3]=255*e[3]}var i="text-background-".concat(e.join("-"));return this.map.hasImage(i)||this.map.addImage(i,{width:20,height:20,data:t},{stretchX:[[0,20]],stretchY:[[0,20]],content:[0,0,20,20]}),i}},{key:"_addLabelLayer",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this._getSymbolLabelLayerName(e.layerID);if(!this.map.getLayer(n)){var o=e.labelStyle,i=t[0]&&t[0].properties,a=o.labelField.replace(/{(.+)}/g,"$1");if(i&&Object.prototype.hasOwnProperty.call(i,a)){var s=o.backgroundFill,u=void 0===s?[255,255,255,0]:s,l=o.fontFamily,c=e.minzoom,f=e.maxzoom,p=parseFloat(o.fontSize||14),h="";"line"!==o.placement&&(h=this._addTextBackgroundImage(u)),u="rgba(".concat(u.join(","),")");var y="rgba(255,255,255,0)";o.outlineColor&&o.outlineWidth>0&&(y=o.outlineColor);var d=(o.outlineWidth||0)/2,m=o.textAlign||"center";o.textBaseline&&"middle"!==o.textBaseline&&(m="".concat(o.textBaseline).concat("center"===m?"":"-".concat(m)));var g="POINT"===e.featureType?[o.offsetX/p||0,o.offsetY/p||0]:[0,0],v={"text-field":"{".concat(o.labelField,"}"),"text-size":p,"text-offset":g,"text-font":l?[l]:["DIN Offc Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line"===o.placement?"POLYGON"===e.featureType?"line":"line-center":"point","text-max-angle":"POLYGON"===e.featureType?40:30,"symbol-spacing":"POLYGON"===e.featureType?200:50,"text-anchor":m,"text-line-height":1.2,visibility:e.visible};h&&Object.assign(v,{"icon-image":h,"icon-allow-overlap":!0,"icon-text-fit":"both","icon-text-fit-padding":[2,4,2,4]}),this._addLayer({id:n,type:"symbol",source:this.map.getSource(e.layerID)&&!r?e.layerID:{type:"geojson",data:{type:"FeatureCollection",features:t}},paint:{"text-color":o.fill,"text-halo-color":y,"text-halo-width":d},layout:v,minzoom:c||0,maxzoom:f||this.map.getMaxZoom()+1},e.layerID)}}}},{key:"_createSymbolLayer",value:function(e,t,r,n){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=arguments.length>5?arguments[5]:void 0;document.getElementById("".concat(this.target)).classList.add("supermapol-icons-map");var a=e.layerID,s=e.minzoom,u=e.maxzoom,l=e.style,c=l.unicode,f=String.fromCharCode(parseInt(c.replace(/^&#x/,""),16)),p=r||(Array.isArray(l.fontSize)?l.fontSize:l.fontSize&&parseFloat(l.fontSize)||12),h=Array.isArray(l.rotation)?l.rotation:180*(l.rotation||0)/Math.PI;this.map.getSource(a)||this.map.addSource(a,{type:"geojson",data:{type:"FeatureCollection",features:[]}});var y={id:a,type:"symbol",source:a,paint:{"text-color":Array.isArray(l.fillColor)?l.fillColor:Koe.getColorWithOpacity(l.fillColor,l.fillOpacity),"text-halo-color":Array.isArray(l.strokeColor)?l.strokeColor:Koe.getColorWithOpacity(l.strokeColor||"rgba(0,0,0,0)",l.strokeOpacity),"text-halo-width":l.strokeWidth||0},layout:{"text-field":f,"text-size":p,"text-font":["supermapol-icons"],"text-rotate":n||h||0,"text-offset":Array.isArray(l.offsetX)?l.offsetX:[l.offsetX/2||0,l.offsetY/2||0],"text-allow-overlap":!0,visibility:e.visible},minzoom:s||0,maxzoom:u||this.map.getMaxZoom()+1};i&&(y.filter=i),this._addLayer(y),this.map.getSource(a).setData({type:"FeatureCollection",features:t}),o&&this._addLayerSucceeded({layerInfo:e,features:t})}},{key:"_createGraphicLayer",value:function(){var e=rde($ye().m(function e(t,r,n,o){var i,a,s=this,u=arguments;return $ye().w(function(e){for(;;)switch(e.n){case 0:return i=!(u.length>4&&void 0!==u[4])||u[4],a=u.length>5?u[5]:void 0,e.a(2,new Promise(function(e){var u=t.layerID,l=t.minzoom,c=t.maxzoom,f=t.style,p={type:"geojson",data:{type:"FeatureCollection",features:r}};s.map.getSource(u)?s.map.getSource(u).setData(p.data):s.map.addSource(u,p);var h="imageIcon-".concat(u);if("IMAGE_POINT"===f.type){var y=f.imageInfo;s.map.loadImage(y.url,function(p,y){if(p)console.error(p);else{var d=2*Number.parseFloat((f.radius/y.width).toFixed(2));!s.map.hasImage(h)&&s.map.addImage(h,y);var m={id:u,type:"symbol",source:u,layout:{"icon-image":h,"icon-anchor":"bottom-right","icon-size":n||d,"icon-allow-overlap":!0,visibility:t.visible,"icon-offset":[f.offsetX*y.width||0,f.offsetY*y.height||0],"icon-rotate":o||180*(t.style.rotation||0)/Math.PI},minzoom:l||0,maxzoom:c||s.map.getMaxZoom()+1};a&&(m.filter=a),s._addLayer(m),i&&s._addLayerSucceeded({layerInfo:t,features:r}),e()}})}else if("SVG_POINT"===f.type){var d=f.url;s._svgDiv||(s._svgDiv=document.createElement("div"),document.body.appendChild(s._svgDiv)),s.getCanvasFromSVG(d,s._svgDiv,function(p){var h=p.toDataURL("img/png");h&&s.map.loadImage(h,function(h,y){h&&console.log(h);var m=2*Number.parseFloat((f.radius/p.width).toFixed(2));n&&Array.isArray(n)&&(n=n.map(function(e,t){return"number"==typeof e&&t%2==1?e/p.width*2:e})),!s.map.hasImage(d)&&s.map.addImage(d,y,{sdf:!0});var g={id:u,type:"symbol",source:u,layout:{"icon-image":d,"icon-size":n||m,"icon-anchor":"bottom-right",visibility:t.visible,"icon-offset":[f.offsetX*p.width||0,f.offsetY*p.height||0],"icon-allow-overlap":!0,"icon-rotate":o||180*(t.style.rotation||0)/Math.PI},paint:{"icon-color":f.fillColor},minzoom:l||0,maxzoom:c||s.map.getMaxZoom()+1};a&&(g.filter=a),s._addLayer(g),i&&s._addLayerSucceeded({layerInfo:t,features:r}),e()})})}else{var m={style:s._transformStyleToMapBoxGl(f,t.featureType),layout:{visibility:t.visible}};s._addOverlayToMap({type:"POINT",source:u,layerID:u,layerStyle:m,minzoom:l,maxzoom:c}),i&&s._addLayerSucceeded({layerInfo:t,features:r}),e()}}))}},e)}));return function(t,r,n,o){return e.apply(this,arguments)}}()},{key:"_createUniqueLayer",value:function(){var e=rde($ye().m(function e(t,r){var n,o,i,a,s,u,l,c,f,p,h,y,d,m,g,v,b,A,w,S,C,E,_,O,I,x,P,k,T,j,M,B,N,R,L,D,F,Q,G,U,z,H,q,V,K,Y,J,W,X,Z,$,ee,te,re,ne,oe,ie=this;return $ye().w(function(e){for(;;)switch(e.n){case 0:n={unicode:function(e){var t=e.unicode;return String.fromCharCode(parseInt(t.replace(/^&#x/,""),16))},fontSize:function(e){var t=e.fontSize;return t?parseFloat(t):12},rotation:function(e){return 180*(e.rotation||0)/Math.PI},fillColor:function(e){var t=e.fillColor,r=e.fillOpacity;return Koe.getColorWithOpacity(t,r)},strokeColor:function(e){var t=e.strokeColor,r=e.strokeOpacity;return Koe.getColorWithOpacity(t||"rgba(0,0,0,0)",r)},strokeWidth:function(e){return e.strokeWidth||0},offsetX:function(e){var t=e.offsetX,r=e.offsetY;return[t/2||0,r/2||0]}},o={unicode:"",fontSize:12,rotation:0,strokeColor:"rgba(0,0,0,0)",fillColor:"rgba(0,0,0,0)",strokeWidth:0,offsetX:[0,0]},i=this.getUniqueStyleGroup(t,r),r=this.getFilterFeatures(t.filterCondition,r),a=t.layerID,s=t.minzoom,u=t.maxzoom,l=t.style,c=i[0].themeField,f=t.featureType,p=t.style,h={},y={},i.forEach(function(e){y[e.value]=e}),r.forEach(function(e){var t=e.properties,r=y[t[c]];if(r){var o=r.style;for(var i in o)if(Object.prototype.hasOwnProperty.call(o,i)){var a=o[i];a!==p[i]&&(h[i]||(h[i]=["match",["get","index"]]),h[i].push(t.index,n[i]?n[i](o):a))}}}),ne=zye(h);case 1:if((oe=ne()).done){e.n=4;break}if(d=oe.value,!Object.prototype.hasOwnProperty.call(h,d)){e.n=3;break}if(m=h[d],Array.isArray(m)){e.n=2;break}return e.a(3,1);case 2:g=p[d]||o[d],v=Zye({},d,g),"fillColor"===d&&(h.fillOpacity=1,v.fillOpacity=isNaN(p.fillOpacity)?1:p.fillOpacity),"strokeColor"===d&&(h.strokeOpacity=1,v.strokeOpacity=isNaN(p.strokeOpacity)?1:p.strokeOpacity),b=n[d],m.push(void 0===g?null:b&&b(v)||g);case 3:e.n=1;break;case 4:if(this._initLegendConfigInfo(t,i),A={type:"geojson",data:{type:"FeatureCollection",features:r}},w=a,this.map.getSource(w)?this.map.getSource(w).setData(A.data):this.map.addSource(w,A),S=t.visible,C=function(e){var t=e.type,r=e.sourceID,n=e.layerID,o=e.parentLayerId,i=e.beforeId,a=e.style,s=e.minzoom,u=e.maxzoom,l=e.filter,c={style:ie._transformStyleToMapBoxGl(Xye({},a),t),layout:{visibility:S}};ie._addOverlayToMap({type:t,source:r,layerID:n,parentLayerId:o,beforeId:i,layerStyle:c,minzoom:s,maxzoom:u,filter:l})},!["POLYGON","LINE"].includes(f)){e.n=5;break}if(E=h.lineDash,_=["all"],O=!1,I="",E&&E.length>1){for(delete h.lineDash,x=E[1],P="POLYGON"===f?a+"-strokeLine":a,k=2;k1&&C({type:"LINE",sourceID:w,layerID:P,parentLayerId:a,style:Xye(Xye(Xye({},l),h),{},{lineDash:E[E.length]}),minzoom:s,maxzoom:u,filter:_}),O=!0}"LINE"!==f||O||C({type:"LINE",sourceID:w,layerID:a,style:Xye(Xye({},l),h),minzoom:s,maxzoom:u,filter:_}),"POLYGON"===f&&(C({type:"POLYGON",sourceID:w,layerID:a,beforeId:I,style:Xye(Xye({},l),h),minzoom:s,maxzoom:u}),I&&this.map.moveLayer(a,I),O||C({type:"LINE",sourceID:w,layerID:a+"-strokeLine",parentLayerId:a,style:Xye(Xye({},l),h),minzoom:s,maxzoom:u,filter:_})),e.n=10;break;case 5:if(M=["all"],B=h.unicode){for(N=h.className||[],delete h.unicode,delete h.classname,R="".concat(a,"-additional-symbol"),L=["any"],D=2;D1&&(Q.filter=L),this._addLayer(Q,a)}if(G=h.imageInfo||[],U=h.url||[],!(G.length>0||U.length>0)){e.n=6;break}for(delete h.imageInfo,delete h.url,z=[],H=G.length>0?[G[0],G[1]]:[],q=U.length>0?[U[0],U[1]]:[],V=["any"],K=["any"],Y=2;Y1){for(var l=["match",["get","index"]],c=2;c1){for(var d=["match",["get","index"]],m=2;m1?M:void 0),e.n=10;break;case 7:if("IMAGE_POINT"!==l.type&&"SVG_POINT"!==l.type){e.n=9;break}return(re=Xye({},t)).style=Xye(Xye(Xye({},l),h),{},{type:l.type}),e.n=8,this._createGraphicLayer(re,r,"","",!1,M.length>1?M:void 0);case 8:e.n=10;break;case 9:C({type:"POINT",sourceID:w,layerID:a,style:Xye(Xye({},l),h),minzoom:s,maxzoom:u,filter:M.length>1?M:void 0});case 10:this._addLayerSucceeded({layerInfo:t,features:r});case 11:return e.a(2)}},e,this)}));return function(t,r){return e.apply(this,arguments)}}()},{key:"_getWMTSUrl",value:function(e){if("REST"===e.requestEncoding&&e.restResourceURL)return e.restResourceURL.replace("{Style}",e.style||"").replace("{TileMatrixSet}",e.tileMatrixSet).replace("{TileRow}","{y}").replace("{TileCol}","{x}").replace("{TileMatrix}","{z}");var t={service:"WMTS",request:"GetTile",version:"1.0.0",style:e.style||"",layer:e.layer,tilematrixSet:e.tileMatrixSet,format:"image/png",tilematrix:"{z}",tilerow:"{y}",tilecol:"{x}"};return B.urlAppend(e.kvpResourceUrl,this._getParamString(t,e.kvpResourceUrl))}},{key:"_createMarkerLayer",value:function(e,t){var r=this,n=e.minzoom,o=e.maxzoom,i=e.layerID,a={};(t=t||[]).forEach(function(e,t){var n=e.dv_v5_markerStyle,o=e.geometry.type.toUpperCase();"POINT"===o&&n.text&&(o="TEXT");var s=0===t?i:i+"-"+o+"-"+t;"POINT"===o&&n.src&&-1===n.src.indexOf("http://")&&-1===n.src.indexOf("https://")&&(n.src=r.serverUrl+n.src),a[s]||(a[s]={src:n.src,defaultStyle:n,geomType:o})});var s=function(e,t){var n=t.src,o=t.defaultStyle,i=t.geomType;return new Promise(function(t){n||"TEXT"===i?n&&n.indexOf("svg")<0&&(n.startsWith("http://")||n.startsWith("https://"))?r.map.loadImage(n,function(o,i){if(o)return console.log(o),void t(o);!r.map.hasImage(n)&&r.map.addImage(n,i),t(Zye({},e,n))}):(r._svgDiv||(r._svgDiv=document.createElement("div"),document.body.appendChild(r._svgDiv)),r.getCanvasFromSVG(n,r._svgDiv,function(i){r.handleSvgColor(o,i);var a=i.toDataURL("img/png");r.map.loadImage(a,function(o,i){if(o)return console.log(o),void t(o);var s=n||a;!r.map.hasImage(s)&&r.map.addImage(s,i),t(Zye({},e,s))})})):t(Zye({},e,void 0))})},u=[];for(var l in a)u.push(s(l,a[l]));Promise.all(u).then(function(a){for(var s=0;s2&&void 0!==arguments[2])||arguments[2],n=e.minzoom,o=e.maxzoom,i=e.themeSetting,a={gradient:i.colors.slice(),radius:parseInt(i.radius)},s=i.customSettings;for(var u in s)a.gradient[u]=s[u];var l=["interpolate",["linear"],["heatmap-density"]],c=[.1,.3,.5,.7,1];a.gradient.forEach(function(e,t){l.push(c[t]),0===t&&(e=B.hexToRgba(e,0)),1===t&&(e=B.hexToRgba(e,.5)),l.push(e)}),this._initLegendConfigInfo(e,l);var f={"heatmap-color":l,"heatmap-radius":3*i.radius,"heatmap-intensity":2.8};if(i.weight&&t.length>=4){var p=[];t.forEach(function(e){e.properties[i.weight]=+e.properties[i.weight],p.push(e.properties[i.weight])});var h=Xoe.getMax(p),y=Xoe.getMin(p);f["heatmap-weight"]=["interpolate",["linear"],["get",i.weight],y,0,h,1]}this._addLayer({id:e.layerID,type:"heatmap",source:{type:"geojson",data:{type:"FeatureCollection",features:t}},paint:f,layout:{visibility:e.visible},minzoom:n||0,maxzoom:o||this.map.getMaxZoom()+1}),r&&this._addLayerSucceeded({layerInfo:e,features:t})}},{key:"_createRangeLayer",value:function(e,t){var r=e.themeSetting.themeField,n=e.featureType,o=e.minzoom,i=e.maxzoom,a=e.style,s=this.getRangeStyleGroup(e,t),u=["match",["get","index"]],l=(t=this.getFilterFeatures(e.filterCondition,t)).filter(function(e){var t=parseFloat(e.properties[r]);if(!t&&0!==t)return!1;if(s)for(var n=0;n-1;i--){var a=n[i],u=this._getSymbolLabelLayerName(a);this.map.getLayer(u)&&o.push(u)}o.reverse().forEach(function(e){r.map.moveLayer(e)})}},{key:"_getParamString",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[];for(var o in e)n.push((r?o.toUpperCase():o)+"="+e[o]);return(t&&-1!==t.indexOf("?")?"&":"?")+n.join("&")}},{key:"_transformStyleToMapBoxGl",value:function(e,t,r,n){var o={};"POINT"!==e.type&&"BASIC_POINT"!==e.type&&"POINT"!==t||"LINE"===t?["LINE","LINESTRING","MULTILINESTRING"].includes(t)?o={strokeWidth:"line-width",strokeColor:"line-color",strokeOpacity:"line-opacity"}:["REGION","POLYGON","MULTIPOLYGON"].includes(t)&&(o={fillColor:"fill-color",fillOpacity:"fill-opacity"}):o={fillColor:"circle-color",strokeWidth:"circle-stroke-width",fillOpacity:"circle-opacity",radius:"circle-radius",strokeColor:"circle-stroke-color",strokeOpacity:"circle-stroke-opacity"};var i={};for(var a in e)o[a]&&(i[o[a]]=e[a]);if(r&&(n?i[n]=r:i["circle-color"]?i["circle-color"]=r:i["line-color"]?i["line-color"]=r:i["fill-color"]=r),e.lineDash&&!i["line-dasharray"]&&(Array.isArray(e.lineDash)?i["line-dasharray"]=e.lineDash:"solid"!==e.lineDash&&"LINE"===t&&(i["line-dasharray"]=this.getDashStyle(e.lineDash))),e.lineDash&&!i["circle-translate"])if(Array.isArray(e.circleTranslate))i["circle-translate"]=e.circleTranslate;else if("POINT"===e.type||"BASIC_POINT"===e.type||"POINT"===t){var s=e.offsetX||0,u=e.offsetY||0;i["circle-translate"]=[s*e.radius,u*e.radius]}return i}},{key:"_addOverlayToMap",value:function(e){var t=e.type,r=e.source,n=e.layerID,o=e.parentLayerId,i=e.beforeId,a=e.layerStyle,s=e.minzoom,u=e.maxzoom,l=e.filter,c={POINT:"circle",LINE:"line",POLYGON:"fill"}[t];if("circle"===c||"line"===c||"fill"===c){var f={id:n,type:c,source:r,paint:a.style,layout:a.layout||{},minzoom:s||0,maxzoom:u||this.map.getMaxZoom()+1};l&&(f.filter=l),this._addLayer(f,o,i)}}},{key:"_addBaselayer",value:function(e){var t=e.url,r=e.layerID,n=e.parentLayerId,o=e.visibility,i=void 0===o||o,a=e.minzoom,s=void 0===a?0:a,u=e.maxzoom,l=e.isIserver,c=void 0!==l&&l,f=e.tileSize,p=void 0===f?256:f,h=e.bounds,y={type:"raster",tiles:t,minzoom:s||0,maxzoom:u||this.map.getMaxZoom()+1,tileSize:c?this.rasterTileSize:p,rasterSource:c?"iserver":"",prjCoordSys:c&&!this.isOnlineBaseLayer(t[0],this.baseProjection)&&+this.baseProjection.split(":")[1]>0?{epsgCode:this.baseProjection.split(":")[1]}:"",proxy:this.baseLayerProxy};h&&(y.bounds=h);var d=y;!this.map.getSource(r)||this.map.getLayer(r)&&this.checkSameLayer&&this._isSameRasterLayer(r,y)||(d="".concat(r,"_").concat(+new Date),this.map.addSource(d,y)),this._addLayer({id:r,type:"raster",source:d,minzoom:s||0,maxzoom:u||this.map.getMaxZoom()+1,layout:{visibility:this._getVisibility(i)}},n),this.baseLayerProxy=null}},{key:"_addStrokeLineForPoly",value:function(e){var t=e.style,r=e.source,n=e.layerID,o=e.parentLayerId,i=e.visible,a=e.minzoom,s=e.maxzoom,u={style:this._transformStyleToMapBoxGl(t,"LINE"),layout:{visibility:i}};this._addOverlayToMap({type:"LINE",source:r,layerID:n,parentLayerId:o,layerStyle:u,minzoom:a,maxzoom:s})}},{key:"_getThemeField",value:function(e){return"VECTOR"===e.layerType?"":"HEAT"===e.layerType?e.themeSetting.weight:e.themeSetting.themeField}},{key:"_initLegendConfigInfo",value:function(e,t){var r=this,n={layerId:e.layerID,layerTitle:e.layerID,themeField:this._getThemeField(e),styleGroup:t},o=function(e,t){var n={style:{shape:r._getShape(t.featureType),type:r._getType(e.style.type)}};return r._addProps(n,e),n};switch(e.layerType){case"UNIQUE":case"VECTOR":n.styleGroup=n.styleGroup.map(function(t){return Xye({fieldValue:t.value},o(t,e))});break;case"RANGE":case"RANK_SYMBOL":n.styleGroup=n.styleGroup.map(function(t){return Xye({start:t.start,end:t.end},o(t,e))});break;case"HEAT":n.styleGroup=[{style:{shape:"POINT",type:"style",colors:this._heatColorToGradient(n.styleGroup)}}]}var i=this._legendList.findIndex(function(t){return t.layerId===e.layerID});i>-1?this._legendList.splice(i,1,n):this._legendList.push(n)}},{key:"_heatColorToGradient",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];return e.forEach(function(r,n){n>5&&n%2==0&&t.push({value:r,key:6===n?0:e[n-1]})}),t}},{key:"_getType",value:function(e){return["IMAGE_POINT","SVG_POINT"].includes(e)?"image":"style"}},{key:"_getShape",value:function(e){return"POLYGON"===e?"FILL":e}},{key:"_addProps",value:function(e,t){if("POINT"===e.style.shape){if(Object.assign(e.style,{color:t.style.fillColor||t.color,opacity:t.style.fillOpacity,fontSize:2*t.radius||t.style.fontSize||"14px"}),"image"===e.style.type)return void Object.assign(e.style,{url:(t.style.imageInfo||{}).url||t.style.url});if(t.style.className)return void Object.assign(e.style,{icon:t.style.className})}"LINE"!==e.style.shape?"FILL"===e.style.shape&&Object.assign(e.style,{backgroundColor:t.style.fillColor||t.color,opacity:t.style.fillOpacity,outlineColor:t.style.strokeColor,width:20,height:20}):Object.assign(e.style,{width:20,lineStyles:[{color:t.color,lineDash:[],lineOffset:0,lineWidth:2,opacity:t.style.strokeOpacity||1}]})}},{key:"_createMvtLayer",value:function(e,t,r){var o=this._getDataVectorTileStyle(r),i=this._transformStyleToMapBoxGl(o,r),a=e.url+"/tileFeature.mvt",s=n.CRS.get(this.baseProjection).getOrigin(),u=t.minzoom,l=t.maxzoom;a+="?&returnAttributes=true&width=512&height=512&x={x}&y={y}&scale={scale}&origin={x:".concat(s[0],",y:").concat(s[1],"}"),this._addLayer({id:t.layerID,type:o.mbglType,source:{type:"vector",tiles:[a],proxy:this.webMapService.handleProxy("image")},"source-layer":"".concat(e.datasetName,"@").concat(e.datasourceName),paint:i,layout:{visibility:t.visible?"visible":"none"},minzoom:u||0,maxzoom:l||this.map.getMaxZoom()+1}),this._addLayerSucceeded()}},{key:"_getDataVectorTileStyle",value:function(e){var t={radius:8,fillColor:"#EE4D5A",fillOpacity:.9,strokeColor:"#ffffff",strokeWidth:1,strokeOpacity:1,lineDash:"solid",type:"BASIC_POINT",mbglType:"circle"};return["LINE","LINESTRING","MULTILINESTRING"].includes(e)?(t.strokeColor="#4CC8A3",t.strokeWidth=2,t.mbglType="line"):["REGION","POLYGON","MULTIPOLYGON"].includes(e)&&(t.fillColor="#826DBA",t.mbglType="fill"),t}},{key:"_unproject",value:function(e){var t=this._unprojectProjection||this.baseProjection;return"EPSG:4326"===t?e:oE({coordinates:e,sourceProjection:t,proj4:this.specifiedProj4})}},{key:"_getMapCenter",value:function(e){var t=e.center&&[e.center.x,e.center.y];return t||(t=[0,0]),t=this._unproject(t,!1),t=new n.LngLat(t[0],t[1])}},{key:"_getLabelFontFamily",value:function(e){var t=["sans-serif"],r=e.layers;return r&&r.length>0&&r.forEach(function(e){e.labelStyle&&t.push(e.labelStyle.fontFamily)},this),t.push("supermapol-icons"),t.join(",")}},{key:"_getTiandituUrl",value:function(e){for(var t=/t0/gi,r={tiandituUrl:[],labelUrl:[]},n=e.baseLayer.layerType.split("_")[1].toLowerCase(),o=Boolean(e.baseLayer.labelLayerVisible),i=this.tiandituKey||e.baseLayer.tk,a="https://t0.tianditu.gov.cn/{layer}_{proj}/wmts?tk=".concat(i),s=a,u="EPSG:4326"===this.baseProjection?"c":"w",l={service:"WMTS",request:"GetTile",style:"default",version:"1.0.0",layer:n,tilematrixSet:u,format:"tiles",width:256,height:256},c=(a=B.urlAppend(a,this._getParamString(l,a)+"&tilematrix={z}&tilerow={y}&tilecol={x}")).replace("{layer}",n).replace("{proj}",u),f=[],p=0;p<8;p++)f.push(c.replace(t,"t".concat(p)));if(r.tiandituUrl=f,o){var h={vec:"cva",ter:"cta",img:"cia"}[n];l.layer=h,s=(s=B.urlAppend(s,this._getParamString(l,s)+"&tilematrix={z}&tilerow={y}&tilecol={x}")).replace("{layer}",h).replace("{proj}",u);for(var y=[],d=0;d<8;d++)y.push(s.replace(t,"t".concat(d)));r.labelUrl=y}return r}},{key:"_getProjectionWKT",value:function(e){var t=nE(e);return t&&e.match(/^EPSG:/)?rE(t,this.specifiedProj4):e}},{key:"_fetchRequest",value:function(e,t,r){return H.get(e,null,r).then(function(e){return e[t]()}).then(function(e){return e}).catch(function(e){console.log(e)})}},{key:"getEpsgCodeWKT",value:function(e,t){if(e)return this._fetchRequest(e,"text",t)}},{key:"getBounds",value:function(e,t){return e?this._fetchRequest(e,"json",t):Promise.resolve(null)}},{key:"_getBoundList",value:function(e){if(e&&e.bounds)return[e.bounds.left,e.bounds.bottom,e.bounds.right,e.bounds.top]}},{key:"_addLayer",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.id,r=arguments.length>2?arguments[2]:void 0,n=e.id;if(this.map.getLayer(n))return this.checkSameLayer&&this._isSameRasterLayer(n,e.source)?void this._setCacheLayer({layerInfo:e,parentLayerId:t,id:n,reused:!0,beforeId:r}):void this._updateLayer(e);var o=Object.assign({},e);o.metadata=Object.assign({},o.metadata,{SM_Layer_Id:t}),this.map.addLayer(o),this._setCacheLayer({layerInfo:e,parentLayerId:t,id:n,beforeId:r})}},{key:"_setCacheLayer",value:function(e){var t=e.parentLayerId,r=e.layerInfo,n=e.reused,o=void 0!==n&&n,i=e.beforeId,a=e.subRenderLayers,s=e.metadata,u=a||[{layerId:r.id,reused:o}];if(this._cacheLayerId.has(t)){var l,c=this._cacheLayerId.get(t),f=-1;i&&(f=c.renderLayers.findIndex(function(e){return e.layerId===i}));var p=f<0?c.renderLayers.length:f;(l=c.renderLayers).splice.apply(l,[p,0].concat(Vye(u)))}else{var h=Object.assign({},s||r&&r.metadata,{SM_Layer_Id:t});this._cacheLayerId.set(t,{renderLayers:u,metadata:h})}if(this.addLayersSucceededLen&&this._cacheLayerId.size<=this.expectLayerLen){this._changeSourceListModel();var y=this.getLayers(),d=this.getSelfAppreciableLayers(y),m=this._findTopLayerBeforeId(d);this.rectifyLayersOrder(d,m),this.fire("layeraddchanged",this._getSelfAppreciableLayers(y))}}},{key:"_findTopLayerBeforeId",value:function(e){var t=this,r=e.filter(function(e){return!e.reused}).reduce(function(e,t){return e.concat(t.renderLayers)},[]),n=r.find(function(e){return t.map.style._layers[e]});if(n){var o,i=this.map.getStyle().layers,a=i.findIndex(function(e){return e.id===n}),s=Kye(i.filter(function(e){return!r.some(function(t){return t===e.id})}).map(function(e){return e.id}));try{var u,l=function(){var e=o.value;if(i.findIndex(function(t){return t.id===e})>a)return{v:e}};for(s.s();!(o=s.n()).done;)if(u=l())return u.v}catch(e){s.e(e)}finally{s.f()}}}},{key:"_changeSourceListModel",value:function(){var e=this,t=[],r=[this._mapInfo.baseLayer].concat(this._mapInfo.layers);if(this._graticuleLayer){var n=this._graticuleLayer,o=n.id,i=n.visible;r.push({layerID:o,visible:i,name:"GraticuleLayer"})}if(r.forEach(function(r){var n=r.layerID||r.name,o=void 0===r.visible||"visible"===r.visible||!0===r.visible,i=e._cacheLayerId.get(n);if(i){var a=i.renderLayers.map(function(e){return e.layerId});if(!a.length)return;t.push(Xye(Xye(Xye({},r),i),{},{id:n,visible:o,renderLayers:a,reused:i.renderLayers.some(function(e){return e.reused})}))}}),!this._sourceListModel)return this._sourceListModel=new Tye({map:this.map,layers:t,appendLayers:this._appendLayers}),void this._sourceListModel.on({layerupdatechanged:function(t){e.fire("layerupdatechanged",t)}});this._sourceListModel.setLayers(t)}},{key:"_getSelfAppreciableLayers",value:function(e){return{layers:this.getSelfAppreciableLayers(e),allLoaded:this._cacheLayerId.size===this.expectLayerLen}}},{key:"_isSameRasterLayer",value:function(e,t){return ko(t,this.map.getSource(e))}},{key:"_centerValid",value:function(e){return!(!e||!(e.length>0||Hye(e)===n.LngLat||e.lng))}},{key:"_getResolution",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:512;return e.leftBottom&&e.rightTop?Math.max(e.rightTop.x-e.leftBottom.x,e.rightTop.y-e.leftBottom.y)/t:Math.max(e[2]-e[0],e[3]-e[1])/t}},{key:"_transformScaleToZoom",value:function(e,t,r){r=r||512;var n=t.getExtent(),o=t.unit,i=1/B.getScaleFromResolutionDpi((n[2]-n[0])/r,96,o),a=e.split(":")[1];return Math.min(23,+Math.log2(i/+a).toFixed(2))}},{key:"_updateLayer",value:function(e){var t=this,r=e.id,n=e.paint,o=e.source,i=o.type,a=o.tiles,s=o.data,u=o.proxy,l=this.map.getSource(r);l&&("geojson"===i||"geojson"===l.type?(Object.keys(n).forEach(function(e){t.map.setPaintProperty(r,e,n[e])}),s&&l.setData(s)):"raster"===i&&this._updateRasterSource(r,{proxy:u,tiles:a}))}},{key:"_updateRasterSource",value:function(e,t){if(e){var r=this.map.getSource(e);Object.assign(r,t),this.map.style.sourceCaches[e].clearTiles(),this.map.style.sourceCaches[e].update(this.map.transform),this.map.triggerRepaint()}}},{key:"updateOverlayLayer",value:function(e,t,r,n){var o=this._mapInfo.layers.find(function(t){return t.layerID===e.id});if(t)this._initOverlayLayer(o,t,r,n);else{var i=this.webMapService.getDatasourceType(o);this.getLayerFeatures(o,this._taskID,i)}}},{key:"isOnlineBaseLayer",value:function(e,t){return e.startsWith("https://maptiles.supermapol.com/iserver/services/map_China/rest/maps/China_Dark")&&"EPSG:3857"===t}},{key:"_handleMultyPolygon",value:function(e){var t=this;return e.forEach(function(e){if("Polygon"===e.geometry.type){var r=e.geometry.coordinates;if(r.length>1){for(var n=[[r[0]]],o=1;o0?n[n.length-1].push(r[o]):n.push([r[o]]))}e.geometry.coordinates=n,e.geometry.type="MultiPolygon"}}}),e}},{key:"signedArea",value:function(e){for(var t,r,n=0,o=0,i=e.length,a=i-1;oe.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=Sde(this,t,[r]))._mapInfo=r.mapInfo,e._mapResourceInfo=r.mapResourceInfo,e._l7LayerUtil=r.l7LayerUtil,e._legendList=r.legendList,e._immutableTopOrderLayers=["chart","point-extrusion"];var n=r.mapInfo.metadata.layerCatalog;e.setLayerCatalog(n);var o=e._generateLayers();return e.setLayers(o),e.setDefaultBaseLayerInfo(e._generateBaseLayerInfo(n,o)),e.initDatas(),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ede(e,t)}(t,bye),r=t,(n=[{key:"setLayerCatalog",value:function(e){this._layerCatalog=e}},{key:"createLayerCatalogs",value:function(){var e=this.getLayers(!1),t=this._createSourceCatalogs(this._layerCatalog,e),r=this.getSelfLayers(),n=e.filter(function(e){return!r.some(function(t){return t.id===e.id})});return this._initSourceList(n).concat(t)}},{key:"getSelfLayerIds",value:function(){return this.layers.reduce(function(e,t){return e.concat(t.layerInfo.renderLayers)},[])}},{key:"initLayers",value:function(){var e=this,t=this._getAllLayersOnMap();this.appendLayers&&(t=[]);var r=this.layers.map(function(t){var r=Object.assign({},t);return t["source-layer"]&&(r.sourceLayer=t["source-layer"]),e._pickLayerFields(r)}),n=this.layers.reduce(function(e,t){return e.concat(t.layerInfo.renderLayers)},[]);return this.concatExpectLayers(r,n,t)}},{key:"setBaseLayer",value:function(e){var t=this.layers.slice(),r=this._layerCatalog.slice(),n=r.pop();this._removeBaseLayerRenderLayers(n,t);var o=e.layers.map(function(e){var t=e.metadata&&e.metadata.title;return vde(vde({},e),{},{layerInfo:{id:e.id,title:t||e.id,renderLayers:[e.id]}})});t.unshift.apply(t,yde(o));var i=(e.layers[0]||{}).id||"",a={id:i,title:e.title||i,type:"basic",visible:!0};e.layers.length>1&&(a.id=e.id||i,a.type="group",a.children=e.layers.map(function(e){var t=e.metadata&&e.metadata.title;return{id:e.id,title:t||e.id,type:"basic",visible:!0}})),r.push(a),this.setLayerCatalog(r),this.setLayers(t)}},{key:"_createSourceCatalogs",value:function(e,t){var r=this;return e.map(function(e){var n,o=e.id,i=e.title,a=void 0===i?o:i,s=e.type,u=e.visible,l=e.children,c=e.parts;if("group"===s)n={children:r._createSourceCatalogs(l,t),id:o,title:a,type:s,visible:u};else{var f=jo(c,o,r.layers),p=t.find(function(e){return e.id===f[0]});r.removeLayerExtralFields([p]),n=Object.assign({},p)}return n})}},{key:"_generateLayers",value:function(){var e=this,t=this._mapResourceInfo,r=t.catalogs,n=void 0===r?[]:r,o=t.datas,i=void 0===o?[]:o,a=Po(n,"catalogType"),s=Po(this._mapInfo.metadata.layerCatalog),u=this._l7LayerUtil.getL7MarkerLayers(),l=s.map(function(t){var r=jo(t.parts,t.id,e._mapInfo.layers),n=Mo(t.parts,t.id,e._mapInfo.layers),o={id:n.id,title:t.title,renderLayers:r,reused:n.metadata&&n.metadata.reused},s=a.find(function(e){return e.id===t.id})||{},l=s.msDatasetId,c=s.relationMsDatasetId,f=s.filter,p=s.serviceLayerId;f&&(o.filter=f);var h={};if(l){var y,d=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=dde(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(i);try{for(d.s();!(y=d.n()).done;){var m=y.value,g=m.datasets&&m.datasets.find(function(e){return e.msDatasetId===l});if(g){if(h={serverId:g.datasetId,type:m.sourceType},"REST_DATA"===m.sourceType){var v=hde(m.url.split("/rest/data/datasources/"),2),b=v[0],A=v[1];h.url="".concat(b,"/rest/data"),h.dataSourceName="".concat(A,":").concat(g.datasetName),delete h.serverId}break}}}catch(e){d.e(e)}finally{d.f()}}if(c){var w=i.find(function(e){return e.datasets.find(function(e){return e.msDatasetId===c})});if("WFS"===(w&&w.sourceType)){var S=w.withCredential,C=w.url;if(S&&S.key&&S.value){var E=C.includes("?")?"&":"?";C="".concat(C).concat(E).concat(S.key,"=").concat(S.value)}var _=w.datasets.find(function(e){return e.msDatasetId===c});Object.assign(h,{type:"WFS",datasetName:_.datasetName,url:C})}}var O=e.map.getSource(n.source);if(!Object.keys(h).length&&O&&"vector"===O.type){var I=e._mapInfo.sources[n.source]||O;if(I.tiles&&I.tiles[0].includes("/rest/maps/")){var x=hde(I.tiles[0].split("/rest/maps/"),2),P=x[0],k=hde(x[1].split("/tileFeature"),1)[0];h.url="".concat(P,"/rest/maps"),h.mapName=k,h.type="REST_MAP",h.layerName=p}}o.dataSource=h,e._l7LayerUtil.isL7Layer(n)&&(o.CLASS_NAME="L7Layer"),u[n.id]&&(o.CLASS_INSTANCE=u[n.id]);var T=e._legendList.filter(function(e){return e.layerId===n.id}).map(function(e){return e.themeField}).filter(function(e){return!!e}),j=Array.from(new Set(T));return j.length>0&&(o.themeSetting={themeField:j}),e._immutableTopOrderLayers.some(function(e){return e===n.type})&&(o.metadata=Object.assign({},n.metadata,{SM_Layer_Order:"top"})),Object.assign({},n,{layerInfo:o})});return l.reverse(),l}},{key:"_generateBaseLayerInfo",value:function(e,t){var r=e.slice().pop();if(r){var n=this._getBaseLayerRenderLayers(r,t).map(function(e){var r=vde({},e);delete r.layerInfo;var n=t.findIndex(function(t){return t.id===e.id})+1;return t[n]&&(r.beforeId=t[n].id),r}),o=this.map.getStyle().sources;return{id:"__default__".concat(r.id),title:r.title,layers:n,sources:n.reduce(function(e,t){var r=t.source;return r&&!e[r]&&(e[r]=o[r]),e},{})}}}},{key:"_getBaseLayerRenderLayers",value:function(e,t){var r=new Set,n=function(e){e.children&&e.children.forEach(function(e){return n(e)}),(e.parts||[e.id]).forEach(function(e){return r.add(e)})};return n(e),t.filter(function(e){return r.has(e.id)})}},{key:"_removeBaseLayerRenderLayers",value:function(e,t){var r=new Set,n=function(e){e.children&&e.children.forEach(function(e){return n(e)}),(e.parts||[e.id]).forEach(function(e){return r.add(e)})};n(e);for(var o=0,i=0;i=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function xde(e,t){if(e){if("string"==typeof e)return Pde(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pde(e,t):void 0}}function Pde(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Tde(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Tde(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Tde(f,"constructor",l),Tde(l,"constructor",u),u.displayName="GeneratorFunction",Tde(l,o,"GeneratorFunction"),Tde(f),Tde(f,o,"Generator"),Tde(f,n,function(){return this}),Tde(f,"toString",function(){return"[object Generator]"}),(kde=function(){return{w:i,m:p}})()}function Tde(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Tde=function(e,t,r,n){function i(t,r){Tde(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function jde(e){"@babel/helpers - typeof";return(jde="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Mde(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Bde(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(r=Dde(this,a)).mapId=e,r.options=t,r.mapOptions=n,r._mapResourceInfo={},r._relatedInfo=t.relatedInfo||{},r._sprite="",r._spriteDatas={},r._appendLayers=!1,r._baseProjection="",r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Gde(e,t)}(a,e),s=a,(u=[{key:"initializeMap",value:function(e,t){if(this._mapInfo=e,this._baseProjection=this._registerMapCRS(e),t){if(this.map=t,!o.isSameProjection(this.map,this._baseProjection))return void this.fire("projectionnotmatch");this._appendLayers=!0;var r=this._mapInfo.sprite;return r&&(this._sprite=r,this.map.addStyle({sprite:r})),void this._initLayers()}this._createMap()}},{key:"cleanLayers",value:function(e){var t,r,n,o,s;(t=a,r="cleanLayers",n=this,s=Fde(Qde(1&(o=3)?t.prototype:t),r,n),2&o&&"function"==typeof s?function(e){return s.apply(n,e)}:s)([e]);var u=i.getL7MarkerLayers();for(var l in u)i.removeL7MarkerLayer(l,this.map.$l7scene)}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this.map){if(this._sourceListModel&&(this._sourceListModel.destroy(),this._sourceListModel=null),e){var t=this.map.$l7scene;t&&t.removeAllLayer(),this.map.remove()}this.map=null,this._legendList=[],this._mapResourceInfo={},this._sprite="",this._spriteDatas={},this.mapOptions={},this.options={}}}},{key:"copyLayer",value:function(){var e=Rde(kde().m(function e(t){var r,n,o,a,s,u,l=arguments;return kde().w(function(e){for(;;)switch(e.n){case 0:if(r=l.length>1&&void 0!==l[1]?l[1]:{},(n=this._mapInfo.layers.find(function(e){return e.id===t}))&&!this._getLayerOnMap(r.id)){e.n=1;break}return e.a(2);case 1:if(o=r.id||"".concat(n.id,"_copy"),a=Bde(Bde(Bde({},n),r),{},{id:o}),!i.isL7Layer(a)){e.n=3;break}return s=[a],u=this._getAddL7LayersParams(s,this._mapInfo.sources,s),e.n=2,i.addL7Layers(u);case 2:e.n=4;break;case 3:"object"===jde(a.source)&&(this.map.addSource(a.id,a.source),a.source=a.id),this.map.addLayer(a);case 4:return e.a(2,a)}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"updateOverlayLayer",value:function(e,t,r){if("geojson"===e.renderSource.type){var n=e.renderSource.id,o={type:"FeatureCollection",features:t=xo({sourceId:n,features:t,mergeByField:r,map:this.map})};this.map.getSource(n).setData(o)}}},{key:"_createMap",value:function(){var e=this,t=this._mapInfo,o=t.name,i=void 0===o?"":o,a=t.center,s=void 0===a?new n.LngLat(0,0):a,u=t.zoom,l=void 0===u?0:u,c=t.bearing,f=void 0===c?0:c,p=t.pitch,h=void 0===p?0:p,y=t.minzoom,d=t.maxzoom,m=t.sprite,g=void 0===m?"":m;s=this.mapOptions.center||s,l=this.mapOptions.zoom||l,f=this.mapOptions.bearing||f,h=this.mapOptions.pitch||h;var v=this._getLabelFontFamily(),b=Bde(Bde({},this.mapOptions),{},{transformRequest:this._getTransformRequest(),container:this.options.target,crs:this._baseProjection,center:s,zoom:l,style:{sprite:g,name:i,version:8,sources:{},layers:[]},minZoom:y,maxZoom:d,bearing:f,pitch:h,localIdeographFontFamily:v||""});this.map=new r(b),this._sprite=g,this.fire("mapinitialized",{map:this.map}),this.map.on("load",function(){e._initLayers()})}},{key:"_getTransformRequest",value:function(){var e=this;return this.mapOptions.transformRequest?this.mapOptions.transformRequest:function(t,r){var n=e.options.iportalServiceProxyUrlPrefix&&t.indexOf(e.options.iportalServiceProxyUrlPrefix)>=0?"include":void 0;return"Tile"===r||"Image"===r?Bde({url:t,credentials:n},e.options.tileTransformRequest&&e.options.tileTransformRequest(t)):{url:t,credentials:n}}}},{key:"_registerMapCRS",value:function(e){var t=e.crs,r=t;return"object"===jde(t)&&(o.registerCRS(t),r=t.name),r}},{key:"_getFieldCaption",value:function(e){var t=this._mapResourceInfo.datas,r=null;return(void 0===t?[]:t).forEach(function(t){if(t.datasets){var n=t.datasets.findIndex(function(t){return t.msDatasetId===e});-1!==n&&(r=t.datasets[n].fieldsCaptions)}}),r}},{key:"_getPopupInfoContent",value:function(e,t){var r=uC()(e),n=this._getFieldCaption(t);return n&&(r.elements=r.elements?r.elements.map(function(e){return"FIELD"===e.type&&(e.fieldCaption=n[e.fieldName]||e.fieldName),e}):[]),r}},{key:"_getPopupInfoByCatalog",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=e.catalogType,o=e.children;if("group"===n&&o&&o.forEach(function(e){t._getPopupInfoByCatalog(e,r)}),"layer"===n){var i=e.popupInfo,a=e.msDatasetId,s=e.title,u=e.layersContent;if(i){var l=this._getPopupInfoContent(i,a);l&&r.push(Bde(Bde({},l),{},{layerId:u,title:s}))}}}},{key:"_getPopupInfos",value:function(){var e=this,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._mapResourceInfo).catalogs,r=[];return(void 0===t?[]:t).forEach(function(t){e._getPopupInfoByCatalog(t,r)}),r}},{key:"_initLayers",value:function(){var e=Rde(kde().m(function e(){var t=this;return kde().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,this._getSpriteDatas();case 1:if("[object Object]"!==Object.prototype.toString.call(this.mapId)){e.n=2;break}return this.mapParams={title:this._mapInfo.name,description:this._relatedInfo.description},this._relatedInfo.projectInfo&&(this._mapResourceInfo=JSON.parse(this._relatedInfo.projectInfo),this._changeMapInfoFilter()),this._createMapRelatedInfo(),this._addLayersToMap(),e.a(2);case 2:this._getMapRelatedInfo().then(function(e){t.mapParams={title:t._mapInfo.name,description:e.description},t._mapResourceInfo=JSON.parse(e.projectInfo),t._changeMapInfoFilter(),t._createMapRelatedInfo(),t._addLayersToMap()}).catch(function(e){t.fire("mapcreatefailed",{error:e}),console.error(e)});case 3:return e.a(2)}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"_changeMapInfoFilter",value:function(){if(n&&n.convertFilter){var e=this._mapInfo.layers,t=void 0===e?[]:e;t.forEach(function(e){e.filter&&(e.filter=n.convertFilter(e.filter))}),this._mapInfo=Bde(Bde({},this._mapInfo),{},{layers:t})}}},{key:"_createMapRelatedInfo",value:function(){var e=this._mapInfo.glyphs;for(var t in e)this.map.style.addGlyphs(t,e[t])}},{key:"_getMapRelatedInfo",value:function(){var e=function(e){var t=e.url,r=e.server,n=e.excludePortalProxyUrl,o=e.credentialValue,i=e.credentialKey,a=-1===t.indexOf(".json")?"".concat(t,".json"):t,s="getUrlResource.json?url=";if(n&&r.indexOf(s)>-1){var u=r.split(s);u.length>1&&(a=u[0]+s+a)}return o&&i&&(a+="?"+i+"="+o),a}(Object.assign({url:"".concat(this.options.server,"web/maps/").concat(this.mapId)},this.options));return H.get(e,null,{withCredentials:this.options.withCredentials}).then(function(e){return e.json()})}},{key:"_addLayersToMap",value:function(){var e=Rde(kde().m(function e(){var t,r,n,o,a,s,u,l,c,f,p,h,y,d,m,g=this;return kde().w(function(e){for(;;)switch(e.p=e.n){case 0:e.p=0,t=this._setUniqueId(this._mapInfo,this._mapResourceInfo),r=t.sources,n=t.layers,o=t.layerCatalog,a=t.catalogs,Object.assign(this._mapInfo,{sources:r,layers:n,metadata:Object.assign(this._mapInfo.metadata,{layerCatalog:o})}),Object.assign(this._mapResourceInfo,{catalogs:a}),s=n.filter(function(e){return!i.isL7Layer(e)}),u=s.map(function(e){return e.source}),l=Ide(u),e.p=1,l.s();case 2:if((c=l.n()).done){e.n=5;break}if(f=c.value,!(p=r[f])||"geojson"!==p.type||!p.data||"supermap-rest-data"!==p.data.type){e.n=4;break}return e.n=3,i.getRestDataGeojsonByWebMap(p.data,{iportalServiceProxyUrlPrefix:this.options.server,withoutFormatSuffix:!0});case 3:p.data=e.v;case 4:e.n=2;break;case 5:e.n=7;break;case 6:e.p=6,d=e.v,l.e(d);case 7:return e.p=7,l.f(),e.f(7);case 8:if(s.forEach(function(e){e.metadata&&e.metadata.reused||(e.source&&!g.map.getSource(e.source)&&g.map.addSource(e.source,r[e.source]),"symbol"===e.type&&0===e.layout["text-z-offset"]&&delete e.layout["text-z-offset"],g.map.addLayer(e))}),!((h=n.filter(function(e){return i.isL7Layer(e)})).length>0)){e.n=9;break}return y=this._getAddL7LayersParams(n,r,h),e.n=9,i.addL7Layers(y);case 9:this._createLegendInfo(),this._sendMapToUser(),e.n=11;break;case 10:e.p=10,m=e.v,this.fire("mapcreatefailed",{error:m,map:this.map}),console.error(m);case 11:return e.a(2)}},e,this,[[1,6,7,8],[0,10]])}));return function(){return e.apply(this,arguments)}}()},{key:"_getAddL7LayersParams",value:function(e,t,r){return{map:this.map,webMapInfo:Bde(Bde({},this._mapInfo),{},{layers:e,sources:t}),l7Layers:r,spriteDatas:this._spriteDatas,options:Bde(Bde({},this.options),{},{emitterEvent:this.fire.bind(this),transformRequest:this._getTransformRequest()})}}},{key:"_setUniqueId",value:function(e,t){var r=this._handleUnSupportedLayers(e),n=JSON.parse(JSON.stringify(e.layers)).filter(function(e){return!r.includes(e.id)}),o={},i={},a=[],s="_".concat(+new Date);for(var u in e.sources){var l=u;this.map.getSource(u)&&(l=u+s),i[l]=u,o[l]=e.sources[u];var c,f=Ide(n);try{for(f.s();!(c=f.n()).done;){var p=c.value;p.source===u&&(p.source=l)}}catch(e){f.e(e)}finally{f.f()}}var h,y=Ide(n);try{for(y.s();!(h=y.n()).done;){var d=h.value,m=d.id,g=this._getLayerOnMap(d.id);if(g)if(this.options.checkSameLayer&&ko(o[d.source],this.map.getSource(g.source)))d.metadata=d.metadata||{},d.metadata.reused=!0,d.source=i[d.source];else{var v=d.id+s;d.id=v}a.push({originId:m,renderId:d.id,id:m})}}catch(e){y.e(e)}finally{y.f()}var b=JSON.parse(JSON.stringify(e.metadata.layerCatalog),"parts");this._updateLayerCatalogsId({loopData:JSON.parse(JSON.stringify(b)),catalogs:b,layerIdMapList:a,unspportedLayers:r});var A=JSON.parse(JSON.stringify(t.catalogs||[]));return this._updateLayerCatalogsId({loopData:JSON.parse(JSON.stringify(A)),catalogs:A,layerIdMapList:a,catalogTypeField:"catalogType",layerIdsField:"layersContent",unspportedLayers:r}),{sources:o,layers:n,layerCatalog:b,catalogs:A}}},{key:"_getLayerOnMap",value:function(e){var t=this.map.overlayLayersManager[e];if(t)return t;var r=i.getL7MarkerLayers()[e];return r||this.map.getLayer(e)}},{key:"_findLayerCatalog",value:function(e,t){var r,n=Ide(e);try{for(n.s();!(r=n.n()).done;){var o=r.value;if(o.id===t)return o;if(o.children){var i=this._findLayerCatalog(o.children,t);if(i)return i}}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"_deleteLayerCatalog",value:function(e,t){for(var r=0;r0&&t.forEach(function(t){var r=t.layout&&t.layout["text-font"]||[];e.push.apply(e,Ode(r))}),e.join(",")}},{key:"_getSpriteDatas",value:function(){var e=this,t=this._sprite;if(t){var r=[];return"string"==typeof t?r.push(t):"object"===jde(t)&&Object.keys(t).forEach(function(e){r.push(t[e])}),Promise.all(r.map(function(t){return e._getSpriteData(t)})).then(function(t){t.forEach(function(t){e._spriteDatas=Bde(Bde({},e._spriteDatas),t)})})}}},{key:"_getSpriteData",value:function(e){var t=e.replace(/.+(web\/maps\/.+)/,"".concat(this.options.server,"$1"));return H.get(t,null,{withCredentials:this.options.withCredentials}).then(function(e){return e.json()})}},{key:"_createLegendInfo",value:function(){var e,t=this,r=this._mapResourceInfo.catalogs,n=Ide(Po(void 0===r?[]:r,"catalogType"));try{var o=function(){var r,n=e.value,o=n.visualization||{},i=o.renderer,a=o.label;if(!i)return 1;var s,u=Mo(n.layersContent,n.id,t._mapInfo.layers),l=t._mapInfo.sources[u.source];"clusterField"in l&&(s=l.clusterField);var c=Object.assign({},u,{title:n.title,themeField:s}),f=t._parseRendererStyleData(i);a&&(f.push(Bde(Bde({},a),{},{type:"text"})),a.symbolsContent&&a.symbolsContent.value.symbolId&&f.push(Bde(Bde({},a),{},{type:"symbol"}))),f[0].textField&&f[0].textField.value&&f.push(Bde(Bde({},f[0]),{},{type:"text"}));var p=f.reduce(function(e,r){var n=t._createLayerLegendList(c,r);return n&&e.push.apply(e,Ode(n)),e},[]);(r=t._legendList).push.apply(r,Ode(p))};for(n.s();!(e=n.n()).done;)o()}catch(e){n.e(e)}finally{n.f()}}},{key:"_getAliasKey",value:function(e,t){return"isoline3D"===e&&"dashArray"===t?"lineDasharray":t}},{key:"_transStyleKeys",value:function(e,t){var r=this;return t.map(function(t){return r._getAliasKey(e,t)})}},{key:"_transStyleSetting",value:function(e,t){for(var r in t){var n=this._getAliasKey(e,r);n!==r&&(t[n]=t[r])}}},{key:"_getLegendSimpleStyle",value:function(e,t){var r={};t&&t.filter(function(t){return e[t]&&"simple"===e[t].type}).forEach(function(t){var n="outlineColor"===t||"outlineWidth"===t,o=e&&(e.outline&&!0===e.outline.value||e.antialias&&!0===e.antialias.value);n&&!o||(r[t]=(e[t]||{}).value)});return r}},{key:"_getLegendRenderType",value:function(e){switch(e){case"text":return Hde.TEXT;case"circle":case"symbol":case"column":return Hde.POINT;case"heatGrid":case"heatHexagon":case"heat3DGrid":case"heat3DHexagon":return Hde.BUILTINSYMBOL;case"line":case"isoline3D":return Hde.LINE;case"fill":return Hde.FILL;case"fillExtrusion":return Hde.FILLEXTRUSION;case"animatePoint":return Hde.ANIMATEPOINT;case"line3D":case"animateLine":return Hde.ANIMATELINE;case"radarPoint":return Hde.RADARPOINT}}},{key:"_getLegendShape",value:function(e,t){switch(e){case"text":return qde.TEXT;case"circle":case"symbol":return qde.POINT;case"column":return{cylinder:qde.POINT,triangleColumn:qde.TRIANGLE,squareColumn:qde.RECTANGLE,hexagonColumn:qde.HEXAGON}[t.shape.value]||qde.POINT;case"heatHexagon":case"heat3DHexagon":return qde.HEXAGON;case"line":case"isoline3D":return qde.LINE;case"fill":case"heatGrid":case"heat3DGrid":case"fillExtrusion":return qde.RECTANGLE;case"animatePoint":return qde.ANIMATEPOINT;case"animateLine":case"line3D":return qde.ANIMATELINE;case"radarPoint":return qde.RADARPOINT;case"heat":case"heat3D":return qde.LINEGRADIENT}}},{key:"_isShowLegendSingleItem",value:function(e,t){return 0===e.length||1===e.length&&"color"===e[0]&&t}},{key:"_isWebsymbolById",value:function(e){return["line-","polygon-","point-"].some(function(t){return e&&e.startsWith(t)})}},{key:"_getSymbolSDFStatus",value:function(e,t){return!this._isWebsymbolById(e)&&(!!this._getIconById(e)||(t[e]&&t[e].sdf||!1))}},{key:"_isAllPicturePoint",value:function(e,t){var r=this;return"simple"===e.type?!this._getSymbolSDFStatus(e.value.symbolId,t):[].concat(Ode(e.values),[{value:e.defaultValue}]).filter(function(e){return e.value.symbolId}).every(function(e){return!r._getSymbolSDFStatus(e.value.symbolId,t)})}},{key:"_isAllPictureSymbolSaved",value:function(e,t,r){var n=this;return!!t&&("point"===e?this._isAllPicturePoint(t,r):"simple"===t.type?!!this._getImageIdFromValue(t.value.style,Zde[e]).length:t.values.map(function(e){return e.value}).concat(t.defaultValue).every(function(t){return!!n._getImageIdFromValue(t.style,Zde[e]).length}))}},{key:"_getDataDrivenStyleKeys",value:function(e,t,r){return(Ude({},Hde.TEXT,Yde)[e]||t).filter(function(e){return r[e]&&"simple"!==r[e].type})}},{key:"_createLayerLegendList",value:function(e,t){var r=this,n=e.id,o=e.title,i="text"===t.type&&t.textField&&t.textField.value.replace(/^\{|\}$/g,""),a={themeField:e.themeField||t.field,layerId:n,layerTitle:o},s=t.type||e.type,u=this._getLegendRenderType(s),l=this._getLegendShape(s,t);if(["heat","heat3D"].includes(s)){var c=this._heatColorToGradient((e.paint||{})[{heat:"heatmap-color",heat3D:"heatmap-extrusion-color"}[s]]);return[Bde(Bde({},a),{},{styleGroup:[{style:{type:rme.STYLE,shape:l,colors:c}}]})]}var f=Jde[u];if(f){var p=this._transStyleKeys(s,f);this._transStyleSetting(s,t);var h=this._getLegendSimpleStyle(t,p),y=this._parseLegendtyle({legendRenderType:u,customValue:h}),d=this._getDataDrivenStyleKeys(u,p,t);if(u===Hde.ANIMATELINE){var m="replace"===t.textureBlend.value,g=!(!t.symbolsContent.value||!t.symbolsContent.value.symbolId);m&&g&&(d=d.filter(function(e){return"color"!==e}))}else{var v=$de[e.type];this._isAllPictureSymbolSaved(v,t.symbolsContent,this._spriteDatas)&&(d=d.filter(function(e){return"color"!==e}))}var b=t.color&&t.color.interpolateInfo&&"linear"===t.color.interpolateInfo.type,A=[];return this._isShowLegendSingleItem(d,b)&&A.push(Bde(Bde({},a),{},{styleGroup:[{fieldValue:i||o||n,style:Bde(Bde({},y),{},{shape:l})}]})),A.concat(d.map(function(e){var n=t[e],o=r._getSettingStyle(e,n.defaultValue,h),i=[],s=r._getSettingCustom(n),c=r._getSettingInterpolateInfo(n),f={legendRenderType:u,styleField:e,subStyleSetting:n,simpleStyle:h,defaultSetting:o,custom:s,interpolateInfo:c,shape:l};switch(r._getLegendStyleType({styleField:e,currentType:n.type,custom:s,interpolateInfo:c})){case Xde.LINEAR:i=r._parseLinearStyle(f);break;case Xde.RANGE:i=r._parseRangeStyle(f);break;case Xde.UNIQUE:i=r._parseUniqueStyle(f)}return Bde(Bde({},a),{},{themeField:(n.field||[])[0],styleField:e,styleGroup:i})}))}}},{key:"_heatColorToGradient",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];return e.forEach(function(r,n){n>5&&n%2==0&&t.push({value:r,key:6===n?0:e[n-1]})}),t}},{key:"_getSettingCustom",value:function(e){var t=e.value,r=e.values;return this._isLinear(e)?t:r}},{key:"_getSettingInterpolateInfo",value:function(e){var t=e.interpolateInfo,r=void 0===t?{}:t;return this._isLinear(e)?{type:"linear"}:r}},{key:"_isLinear",value:function(e){return"linear"===e.type}},{key:"_getLegendStyleType",value:function(e){var t=e.styleField,r=e.currentType,n=e.custom,o=e.interpolateInfo;return["unique","linear"].includes(r)?this._isColorAttr(t)&&"linear"===o.type&&n.length>1?Xde.LINEAR:Xde.UNIQUE:Xde.RANGE}},{key:"_isColorAttr",value:function(e){return["color","textColor","outlineColor","textHaloColor"].includes(e)}},{key:"_parseLinearStyle",value:function(e){var t=e.shape,r=e.custom;return[{styleField:null,style:{type:rme.STYLE,shape:t,colors:r}}]}},{key:"_parseUniqueStyle",value:function(e){var t=this,r=e.legendRenderType,n=e.styleField,o=e.simpleStyle,i=e.defaultSetting,a=e.custom,s=e.interpolateInfo,u=e.shape,l=a.map(function(e){var i=t._getSettingStyle(n,e.value,o),a=t._parseLegendtyle({legendRenderType:r,customValue:i});return{fieldValue:e.key,style:Bde(Bde({},a),{},{shape:u})}});if(!s.type||"custom"===s.type){var c=this._parseLegendtyle({legendRenderType:r,customValue:i});l.push({fieldValue:null,style:Bde(Bde({},c),{},{shape:u})})}return l}},{key:"_parseRangeStyle",value:function(e){var t=this,r=e.legendRenderType,n=e.styleField,o=e.simpleStyle,i=e.defaultSetting,a=e.custom,s=e.shape,u=a.map(function(e){var i=t._getSettingStyle(n,e.value,o),a=t._parseLegendtyle({legendRenderType:r,customValue:i});return{start:e.start,end:e.end,style:Bde(Bde({},a),{},{shape:s})}}),l=this._parseLegendtyle({legendRenderType:r,customValue:i});return u.push({start:null,end:null,style:Bde(Bde({},l),{},{shape:s})}),u}},{key:"_getSettingStyle",value:function(e,t,r){var n=Object.assign({},r);return n[e]=t,n}},{key:"_parseLegendtyle",value:function(e){var t=this,r=e.legendRenderType,n=e.customValue,o=Bde({},Kde[r]);Object.keys(o).forEach(function(e){var t=n[Vde[e]||e];([Hde.FILL,Hde.FILLEXTRUSION].includes(r)||t)&&(o[e]=t)});var i=n.symbolsContent||{},a=i.symbolId,s=void 0===a?Wde[r]:a,u=i.style;switch(r){case Hde.TEXT:return Bde({type:rme.STYLE,icon:"supermapol-icons-text-layer"},o);case Hde.POINT:return"BASE"===(this._getIconById(s)?"BASE":"SERVICE")?Bde({type:rme.STYLE},o):this._getSpriteStyle(s,o);case Hde.BUILTINSYMBOL:return Bde({type:rme.STYLE},o);case Hde.ANIMATEPOINT:case Hde.RADARPOINT:return Bde({type:rme.STYLE},o);case Hde.LINE:case Hde.ANIMATELINE:u=u||[];var l=Object.assign({},n);delete l.symbolsContent;var c=Bde(Bde({type:rme.STYLE},l),{},{width:eme}),f=Bde({},Kde.LINE),p=u instanceof Array?u:[u],h=p.some(function(e){return!!t._getImageIdByLegendType(e,r)}),y=p[0];if(h){var d=this._getImageIdByLegendType(y,r),m=Bde(Bde(Bde({},o),l),{},{height:o.width,width:eme});return r===Hde.ANIMATELINE&&"replace"===l.textureBlend&&(m.backgroundColor="transparent"),this._getSpriteStyle(d,m)}if(!n.symbolsContent||r===Hde.ANIMATELINE&&!h)return Bde(Bde({},c),{},{height:n.width||f.height,lineWidth:n.width||f.width,color:n.color||f.backgroundColor});if(n.symbolsContent){var g=this._getLineWidth(p),v=p.map(function(e){return t._transformLineStyle({oldWidth:g,symbol:e,defaultStyle:f,customValue:n})});return Bde(Bde({},c),{},{lineStyles:v})}return;case Hde.FILL:case Hde.FILLEXTRUSION:var b=o.backgroundColor,A=((u||{}).paint||{})["fill-color"],w=Bde({},Kde.FILL);return b||Object.assign(o,{backgroundColor:A}),Object.keys(o).forEach(function(e){["backgroundColor","width","height","opacity"].includes(e)&&!o[e]&&(o[e]=w[e])}),Object.assign(o,{outlineStyle:n.antialias||n.outline?"solid":"none"}),this._spriteDatas[s]?this._getSpriteStyle(s,Bde(Bde({},o),{},{backgroundColor:"transparent"})):Bde({type:rme.STYLE},o)}}},{key:"_getIconById",value:function(e){if("image"!==(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"svg")){return[{id:"circle",name:"circle"}].find(function(t){return t.id===e})}}},{key:"_getImageIdFromValue",value:function(e,t){var r=Array.isArray(e)?e:[e],n={symbol:"icon-image",line:"line-pattern",fill:"fill-pattern","fill-extrusion":"fill-pattern"}[t];return"symbol"===t?r.map(function(e){return e.layout&&e.layout[n]}).filter(function(e){return e}):r.map(function(e){return e.paint&&e.paint[n]}).filter(function(e){return e})}},{key:"_getImageIdByLegendType",value:function(e,t){var r={ANIMATELINE:Zde.point,LINE:Zde.line}[t],n=e.paint||{};return r===Zde.line?n["line-pattern"]:r===Zde.polygon?n["fill-pattern"]:(e.layout||{})["icon-image"]}},{key:"_getSpriteStyle",value:function(e,t){if(this._spriteDatas[e]){var r=this._spriteDatas[e];if(r.width&&r.height)return Bde(Bde({type:rme.IMAGE,sprite:r},t),{},{url:"string"==typeof this._sprite?"".concat(this._sprite,".png"):""})}}},{key:"_transformLineStyle",value:function(e){var t,r=e.oldWidth,n=e.symbol,o=e.defaultStyle,i=e.customValue,a=n.paint,s=void 0===a?{}:a;return void 0!==i.height&&(t=this._updateSingleStyleByWidth(r,i.height,n)),{lineWidth:((t||{}).paint||{})[tme]||s[tme]||o.height,opacity:i.opacity||s["line-opacity"]||o.opacity,color:i.color||s["line-color"]||o.backgroundColor,lineDash:s["line-dasharray"]||[],lineOffset:s["line-offset"]||0}}},{key:"_updateSingleStyleByWidth",value:function(e,t,r){if(e===t)return r;var n=(r||{}).paint||{};if(0===e)return{paint:Object.assign({},n,{"line-width":Number(t.toFixed(2))})};var o=t/e,i=n["line-width"],a=n["line-offset"]||0,s=n["line-dasharray"]||[],u=this._updateDash(s,o);return{paint:Object.assign({},n,{"line-width":Number((i*o).toFixed(2)),"line-offset":Number((a*o).toFixed(2)),"line-dasharray":u&&u.map(function(e){return Number(e.toFixed(2))})})}}},{key:"_updateDash",value:function(e,t){if(e&&0!==e.length)return e.map(function(e){return e/t})}},{key:"_getLineWidth",value:function(e){return e instanceof Array?this._getWholeWidth(e):(e.paint||{})[tme]||0}},{key:"_getWholeWidth",value:function(e){var t,r;return e.forEach(function(e){var n=(e||{}).paint||{},o=n["line-width"],i=n["line-offset"]||0,a=i+o/2,s=i-o/2;(a>t||void 0===t)&&(t=a),(s=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function ame(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:fme(function e(){hme(this,e)});return function(t){function r(){var e;return hme(this,r),(e=sme(this,r))._sourceListModel=null,e._legendList=[],e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&lme(e,t)}(r,e),fme(r,[{key:"initializeMap",value:function(){throw new Error("initializeMap is not implemented")}},{key:"clean",value:function(){throw new Error("clean is not implemented")}},{key:"getLayerCatalog",value:function(){return this._sourceListModel&&this._sourceListModel.getLayerCatalog()||[]}},{key:"getLayers",value:function(){return this._sourceListModel&&this._sourceListModel.getLayers()||[]}},{key:"getLegends",value:function(){return this._legendList}},{key:"getSelfAppreciableLayers",value:function(){var e;return this._sourceListModel&&(e=this._sourceListModel).getSelfLayers.apply(e,arguments)||[]}},{key:"setLayersVisible",value:function(){var e;this._sourceListModel&&(e=this._sourceListModel).setLayersVisible.apply(e,arguments)}},{key:"toggleLayerVisible",value:function(){var e;this._sourceListModel&&(e=this._sourceListModel).toggleLayerVisible.apply(e,arguments)}},{key:"rectifyLayersOrder",value:function(e,t){for(var r=this,n=e.filter(function(e){return!e.reused}).reduce(function(e,t){return e.concat(t.renderLayers)},[]).filter(function(e){return!!r.map.getLayer(e)}),o=n.length-1;o>-1;o--){var i=n[o],a=n.slice(o+1),s=a.find(function(e){return r.map.style._layers[e]});a.length||(s=t),this.map.moveLayer(i,s)}return n}},{key:"changeBaseLayer",value:function(){var e;this._sourceListModel&&(e=this._sourceListModel).changeBaseLayer.apply(e,arguments)}},{key:"echartsLayerResize",value:function(){}},{key:"updateOverlayLayer",value:function(){}},{key:"copyLayer",value:function(){}},{key:"cleanLayers",value:function(e){var t,r=this,n=[],o=ime(e);try{var i=function(){var e=t.value;e.renderLayers.forEach(function(t){var o=r.map.getLayer(t);o&&(r.map.removeLayer(t),!e.l7Layer&&o.source&&"string"==typeof o.source&&n.push(o.source))}),r.map.getSource(e.renderSource.id)&&!e.l7Layer&&n.push(e.renderSource.id)};for(o.s();!(t=o.n()).done;)i()}catch(e){o.e(e)}finally{o.f()}Array.from(new Set(n)).forEach(function(e){r.map.removeSource(e)})}}])}()}function dme(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return mme(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?mme(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function mme(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),(t=Cme(this,o)).options=r,t.mapOptions=n,t.webMapService=new Uhe(e,r),t._layerIdRenameMapList=[],t._appendLayers=!1,t._baseProjection="",t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_me(e,t)}(o,e),i=o,(a=[{key:"initializeMap",value:function(e,t){var o=this;if(this._baseProjection=this._registerMapCRS(this.mapOptions),t)return n.isSameProjection(t,this._baseProjection)?(this._appendLayers=!0,this.map=t,void this._addLayersToMap()):void this.fire("projectionnotmatch");this.mapOptions.container=this.options.target,this.mapOptions.transformRequest||(this.mapOptions.transformRequest=function(e,t){var r="";if("string"==typeof o.options.proxy){var n="data";"Tile"===t&&(n="image"),r=o.webMapService.handleProxy(n)}return bme({url:r?"".concat(r).concat(encodeURIComponent(e)):e,credentials:o.webMapService.handleWithCredentials(r,e,!1)?"include":void 0},o.options.tileTransformRequest&&o.options.tileTransformRequest(e))}),this.mapOptions.center=this.mapOptions.center||[0,0],this.mapOptions.zoom=this.mapOptions.zoom||0;var i=0;Object.prototype.hasOwnProperty.call(this.mapOptions,"fadeDuration")&&(i=this.mapOptions.fadeDuration),this.map=new r(bme(bme({},this.mapOptions),{},{fadeDuration:i,crs:this._baseProjection})),this.fire("mapinitialized",{map:this.map}),this.map.on("load",function(){o._sendMapToUser()})}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.map&&(this._sourceListModel&&(this._sourceListModel.destroy(),this._sourceListModel=null),e&&this.map.remove(),this.map=null)}},{key:"_registerMapCRS",value:function(e){var t=e.crs,r=t;if("object"===gme(t)&&t.epsgCode){var o=t.epsgCode,i=t.WKT,a=t.extent,s=t.unit;n.registerCRS({name:o,wkt:i,extent:a,unit:s}),r=o}return r}},{key:"_addLayersToMap",value:function(){var e=this,t=this._setUniqueId(this.mapOptions.style),r=t.sources,n=t.layers,o=t.layerIdMapList;n.forEach(function(t){var n=o.find(function(e){return e.renderId===t.id});n&&n.reused||(t.source&&!e.map.getSource(t.source)&&e.map.addSource(t.source,r[t.source]),e.map.addLayer(t))}),Object.assign(this.mapOptions.style,{layers:n,sources:r}),this._layerIdRenameMapList=o,this._sendMapToUser()}},{key:"_setUniqueId",value:function(e){var t=JSON.parse(JSON.stringify(e.layers)),r={},n={},o=[],i="_".concat(+new Date);for(var a in e.sources){var s=a;this.map.getSource(a)&&(s=a+i),n[s]=a,r[s]=e.sources[a];var u,l=dme(t);try{for(l.s();!(u=l.n()).done;){var c=u.value;c.source===a&&(c.source=s)}}catch(e){l.e(e)}finally{l.f()}}var f,p=dme(t);try{for(p.s();!(f=p.n()).done;){var h=f.value,y=h.id,d=void 0,m=this.map.getLayer(h.id);if(m)if(this.options.checkSameLayer&&ko(r[h.source],this.map.getStyle().sources[m.source]))d=!0,h.source=n[h.source];else{var g=h.id+i;h.id=g}o.push({originId:y,renderId:h.id,reused:d})}}catch(e){p.e(e)}finally{p.f()}return{sources:r,layers:t,layerIdMapList:o}}},{key:"_generateAppreciableLayers",value:function(){var e=this;return this.mapOptions.style.layers.reduce(function(t,r){var n=To(r["source-layer"]?r:bme(bme({},r),{},{layerInfo:{id:r.id}})),o=t.find(function(e){return e.id===n});if(o)o.renderLayers.push(r.id);else{var i=e._layerIdRenameMapList.find(function(e){return e.renderId===r.id});t.push(bme(bme({},r),{},{id:n,name:i&&i.originId,renderLayers:[r.id],reused:i&&i.reused}))}return t},[])}},{key:"_sendMapToUser",value:function(){var e=this,t=this._generateAppreciableLayers();this._sourceListModel=new Tye({map:this.map,layers:t,appendLayers:this._appendLayers}),this._sourceListModel.on({layerupdatechanged:function(t){e.fire("layerupdatechanged",t)}}),this.fire("mapcreatesucceeded",{map:this.map,mapparams:{title:this.mapOptions.name,description:""},layers:this.getSelfAppreciableLayers()})}}])&&wme(i.prototype,a),s&&wme(i,s),Object.defineProperty(i,"prototype",{writable:!1}),i;var i,a,s}()}var Ime=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8],"doc":"Style specification version number. Must be 8.","example":8},"fragment":{"type":"boolean","doc":"Indicates that a style is a fragment style.","example":true},"name":{"type":"string","doc":"A human-readable name for the style.","example":"Bright"},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"center":{"type":"array","value":"number","doc":"Default map center in longitude and latitude. The style center will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":[-73.9749,40.7736]},"zoom":{"type":"number","doc":"Default zoom level. The style zoom will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":12.5},"bearing":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Default bearing, in degrees. The bearing is the compass direction that is \\"up\\"; for example, a bearing of 90° orients the map so that east is up. This value will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":29},"pitch":{"type":"number","default":0,"units":"degrees","doc":"Default pitch, in degrees. Zero is perpendicular to the surface, for a look straight down at the map, while a greater value like 60 looks ahead towards the horizon. The style pitch will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":50},"light":{"type":"light","doc":"The global light source. Note: This API is deprecated. Prefer using `flat` light type instead in the `lights` API.","example":{"anchor":"viewport","color":"white","intensity":0.4}},"lights":{"required":false,"type":"array","value":"light-3d","doc":"Array of light sources affecting the whole map and the default for 3D style, mutually exclusive with the light property","example":[{"id":"environment","type":"ambient","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4}},{"id":"sun_light","type":"directional","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4,"direction":[200,40],"cast-shadows":true,"shadow-intensity":0.2}}],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"terrain":{"type":"terrain","optional":true,"doc":"A global modifier that elevates layers and markers based on a DEM data source."},"fog":{"type":"fog","doc":"A global effect that fades layers and markers based on their distance to the camera. The fog can be used to approximate the effect of atmosphere on distant objects and enhance the depth perception of the map when used with terrain or 3D features. Note: fog is renamed to atmosphere in the Android and iOS SDKs and planned to be changed in GL-JS v.3.0.0."},"snow":{"type":"snow","doc":"Global precipitation particle-based snow. Having snow present in the style forces constant map repaint mode","experimental":true},"rain":{"type":"rain","doc":"Global precipitation particle-based rain effect. Having rain present in the style forces constant map repaint mode.","experimental":true},"camera":{"type":"camera","doc":"Global setting to control additional camera intrinsics parameters, e.g. projection type (perspective / orthographic)."},"color-theme":{"type":"colorTheme","doc":"A global modifier for the colors of the style."},"indoor":{"type":"indoor","private":true,"experimental":true,"doc":"Controls the behaviour of indoor features."},"imports":{"type":"array","value":"import","doc":"Imports other styles into this style.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"iconsets":{"experimental":true,"type":"iconsets","doc":"A collection of icon sets","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.11.0","ios":"11.11.0"}}},"schema":{"type":"schema","doc":"Definition of the schema for configuration options.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"sources":{"required":true,"type":"sources","doc":"Data source specifications.","example":{"mapbox-streets":{"type":"vector","url":"mapbox://mapbox.mapbox-streets-v6"}}},"sprite":{"type":"string","doc":"A base URL for retrieving the sprite image and metadata. The extensions `.png`, `.json` and scale factor `@2x.png` will be automatically appended. This property is required if any layer uses the `background-pattern`, `fill-pattern`, `line-pattern`, `fill-extrusion-pattern`, or `icon-image` properties. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright-v8"},"glyphs":{"type":"string","doc":"A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include `{fontstack}` and `{range}` tokens. This property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","default":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf","example":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"},"transition":{"type":"transition","doc":"A global transition definition to use as a default across properties, to be used for timing transitions between one value and the next when no property-specific transition is set. Collision-based symbol fading is controlled independently of the style\'s `transition` property.","example":{"duration":300,"delay":0}},"projection":{"type":"projection","doc":"The projection the map should be rendered in. Supported projections are Mercator, Globe, Albers, Equal Earth, Equirectangular (WGS84), Lambert conformal conic, Natural Earth, and Winkel Tripel. Terrain, sky and fog are supported by only Mercator and globe. CustomLayerInterface is not supported outside of Mercator.","example":{"name":"albers","center":[-154,50],"parallels":[55,65]}},"layers":{"required":true,"type":"array","value":"layer","doc":"Layers will be drawn in the order of this array.","example":[{"id":"water","source":"mapbox-streets","source-layer":"water","type":"fill","paint":{"fill-color":"#00ffff"}}]},"models":{"type":"models","doc":"Specification of models used in the style.","example":{"spruce1-lod0":"asset://spruce1-lod0.glb","spruce1-lod1":"asset://spruce1-lod1.glb","spruce1-lod2":"asset://spruce1-lod2.glb"}},"featuresets":{"experimental":true,"type":"featuresets","doc":"Defines sets of features for querying, interaction, and state management on the map, referencing individual layers or subsets of layers within the map\'s style.","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"example":{"poi":{"selectors":[{"layer":"poi","properties":{"type":["get","type"],"name":["get","name"],"brand":"ABC"}}]}}}},"featuresets":{"experimental":true,"*":{"type":"featureset","doc":"Defines a combined set of features from one or more underlying layers within the current style. Features in a style featureset can be queried, interacted with, and their states can be queried and updated."}},"featureset":{"experimental":true,"metadata":{"experimental":true,"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"selectors":{"experimental":true,"type":"array","value":"selector","doc":"A collection of categorized selectors."}},"selector":{"experimental":true,"layer":{"experimental":true,"type":"string","doc":"The ID of a layer that exists in the current style.","required":true},"properties":{"experimental":true,"type":"selectorProperty","required":false,"doc":"Properties accessible to the end user through queried feautures. If properties are empty, no feature properties are exposed. If undefined, all original feature properties will be accessible."},"featureNamespace":{"experimental":true,"type":"string","required":false,"doc":"An optional field that represents the feature namespace defined by the selector within a featureset to which this feature belongs. If the underlying source is the same for multiple selectors within a featureset, the same featureNamespace should be used across those selectors."},"_uniqueFeatureID":{"experimental":true,"type":"boolean","private":true,"required":false,"doc":"Internal flag used for standard style, in case multiple features sharing the same featureId, only one feature will be returned for feature query."}},"selectorProperty":{"experimental":true,"*":{"experimental":true,"type":"*","doc":"The value of the property. It can be an expression that generates the returned value from the feature, or a constant value specifying the returned value."}},"model":{"type":"string","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`.","required":true},"import":{"id":{"type":"string","doc":"Unique import name.","required":true},"url":{"type":"string","doc":"The URL of the style.","required":true},"config":{"type":"config","doc":"Configuration values for the imported style\'s options."},"data":{"type":"$root","doc":"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{"type":"colorTheme","optional":true,"doc":"If specified, it overrides the color-theme of the imported style."}},"config":{"*":{"type":"*","doc":"Value of the imported style\'s configuration option."}},"schema":{"*":{"type":"option","doc":"Specification of a configuration option."}},"option":{"default":{"type":"*","doc":"Default configuration value for this option.","property-type":"data-constant","expression":{"interpolated":false},"required":true},"type":{"type":"enum","doc":"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.","values":{"string":{"doc":"The result will be coerced to a string."},"number":{"doc":"The result will be coerced to a number."},"boolean":{"doc":"The result will be coerced to a boolean."},"color":{"doc":"The result will be coerced to a color."}}},"array":{"type":"boolean","doc":"If true, this option is returned as an array"},"minValue":{"type":"number","doc":"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},"maxValue":{"type":"number","doc":"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},"stepValue":{"type":"number","doc":"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},"values":{"type":"array","value":"*","doc":"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."}},"models":{"*":{"type":"model","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}},"light-3d":{"id":{"type":"string","doc":"Unique light name.","required":true},"properties":{"type":"properties","doc":"Properties of the light."},"type":{"type":"enum","doc":"Type of the light to be added","values":{"ambient":{"doc":"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"directional":{"doc":"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"flat":{"doc":"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}}},"properties":["properties_light_directional","properties_light_ambient","properties_light_flat"],"properties_light_directional":{"direction":{"type":"array","default":[210,30],"minimum":[0,0],"maximum":[360,90],"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).","example":[90,40],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"cast-shadows":{"type":"boolean","default":false,"doc":"Enable/Disable shadow casting for this light","transition":false,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-quality":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":false,"parameters":["zoom"]},"transition":false,"doc":"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"experimental":true},"shadow-intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.","transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-draw-before-layer":{"type":"string","property-type":"data-constant","doc":"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"experimental":true}},"properties_light_ambient":{"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"properties_light_flat":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"iconsets":{"*":{"type":"iconset","doc":"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}},"iconset":["iconset_sprite","iconset_source"],"iconset_sprite":{"type":{"required":true,"type":"enum","values":{"sprite":{"doc":"A sprite icon set."}},"doc":"The type of the icon set."},"url":{"required":true,"type":"string","doc":"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright"}},"iconset_source":{"type":{"required":true,"type":"enum","values":{"source":{"doc":"A source icon set."}},"doc":"The type of the icon set."},"source":{"required":true,"type":"string","doc":"Name of a source of `raster-array` type to be used for the icon set."}},"sources":{"*":{"type":"source","doc":"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}},"source":["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{"doc":"A vector tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{"doc":"A raster tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{"doc":"A RGB-encoded raster DEM source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"encoding":{"type":"enum","values":{"terrarium":{"doc":"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},"mapbox":{"doc":"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},"default":"mapbox","doc":"The encoding used by this source. Mapbox Terrain RGB is used by default"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_array":{"experimental":true,"type":{"required":true,"type":"enum","values":{"raster-array":{"doc":"A raster array source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"rasterLayers":{"type":"*","doc":"Contains the description of the raster data layers and the bands contained within the tiles."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{"doc":"A GeoJSON data source."}},"doc":"The data type of the GeoJSON source."},"data":{"type":"*","doc":"A URL to a GeoJSON file, or inline GeoJSON."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level at which to create vector tiles"},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0,"doc":"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},"filter":{"type":"*","doc":"An expression for filtering features prior to processing them for rendering."},"tolerance":{"type":"number","default":0.375,"doc":"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},"cluster":{"type":"boolean","default":false,"doc":"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\\n * `cluster` Is `true` if the point is a cluster \\n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\\n * `point_count` Number of original points grouped into this cluster\\n * `point_count_abbreviated` An abbreviated point count"},"clusterRadius":{"type":"number","default":50,"minimum":0,"doc":"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},"clusterMaxZoom":{"type":"number","doc":"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},"clusterMinPoints":{"type":"number","doc":"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},"clusterProperties":{"type":"*","doc":"An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\\"property_name\\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\\"+\\"` or `\\"max\\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\\n\\nExample: `{\\"sum\\": [\\"+\\", [\\"get\\", \\"scalerank\\"]]}`.\\n\\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\\"accumulated\\"]` value, e.g.:\\n`{\\"sum\\": [[\\"+\\", [\\"accumulated\\"], [\\"get\\", \\"sum\\"]], [\\"get\\", \\"scalerank\\"]]}`"},"lineMetrics":{"type":"boolean","default":false,"doc":"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},"generateId":{"type":"boolean","default":false,"doc":"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},"dynamic":{"type":"boolean","default":false,"doc":"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{"js":"3.4.0"}}}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{"doc":"A video data source."}},"doc":"The data type of the video source."},"urls":{"required":true,"type":"array","value":"string","doc":"URLs to video content in order of preferred format."},"coordinates":{"required":true,"doc":"Corners of video specified in longitude, latitude pairs.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{"doc":"An image data source."}},"doc":"The data type of the image source."},"url":{"required":false,"type":"string","doc":"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},"coordinates":{"required":true,"doc":"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"modelNodeOverride":{"orientation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","doc":"Override the orientation of the model node in euler angles [x, y, z]."}},"modelNodeOverrides":{"*":{"type":"modelNodeOverride","doc":"An object defining model node properties to override. Object key is the node name as defined in the model."}},"modelMaterialOverride":{"model-color":{"type":"color","doc":"Override the tint color of the material."},"model-color-mix-intensity":{"type":"number","doc":"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors."},"model-opacity":{"type":"number","doc":"Override the opacity of the material."},"model-emissive-strength":{"type":"number","units":"intensity","doc":"Override strength of the emission of material."}},"modelMaterialOverrides":{"*":{"type":"modelMaterialOverride","doc":"An object defining material properties to override. Object key is the material name as defined in the model."}},"modelSourceModel":{"uri":{"type":"string","required":true,"doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},"position":{"type":"array","value":"number","length":2,"required":false,"default":[0,0],"minimum":[-180,-90],"maximum":[180,90],"doc":"Position of the model in longitude and latitude [lng, lat]."},"orientation":{"type":"array","value":"number","length":3,"required":false,"default":[0,0,0],"period":360,"units":"degrees","doc":"Orientation of the model in euler angles [x, y, z]."},"nodeOverrides":{"type":"modelNodeOverrides","required":false,"doc":"A collection of node overrides."},"materialOverrides":{"type":"modelMaterialOverrides","required":false,"doc":"A collection of material overrides."},"nodeOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model node names whose transform will be overridden from model layer paint properties.","required":false},"materialOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model material names whose properties will be overridden from model layer paint properties.","required":false},"featureProperties":{"type":"*","doc":"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.","required":false}},"modelSourceModels":{"*":{"type":"modelSourceModel","doc":"A 3D model and its properties."}},"source_model":{"type":{"required":true,"type":"enum","values":{"model":{"doc":"A collection of 3D models"},"batched-model":{"doc":"A collection of 3D models with anchor data"}},"doc":"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which batched-model tiles are available"},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},"models":{"type":"modelSourceModels","doc":"Defines properties of 3D models in collection. Requires `model` source type."}},"layer":{"id":{"type":"string","doc":"Unique layer name.","required":true},"type":{"type":"enum","values":{"fill":{"doc":"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"line":{"doc":"A stroked line.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"symbol":{"doc":"An icon or a text label.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"circle":{"doc":"A filled circle.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"heatmap":{"doc":"A heatmap.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"fill-extrusion":{"doc":"An extruded (3D) polygon.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"building":{"doc":"A procedural 3D building.","sdk-support":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"private":true},"raster":{"doc":"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"raster-particle":{"experimental":true,"doc":"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"hillshade":{"doc":"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}}},"model":{"doc":"A 3D model","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"background":{"doc":"The background color or pattern of the map.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"sky":{"doc":"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"slot":{"doc":"Marks the position of a slot.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"clip":{"doc":"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}}}},"doc":"Rendering type of this layer.","required":true},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"source":{"type":"string","doc":"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{"type":"string","doc":"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},"slot":{"type":"string","doc":"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"minzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},"maxzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},"filter":{"type":"filter","doc":"An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `[\\"feature-state\\", ...]` expression is not supported in filter expressions. The `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions are supported only for filter expressions on the symbol layer."},"layout":{"type":"layout","doc":"Layout properties for the layer."},"paint":{"type":"paint","doc":"Default paint properties for this layer."},"appearances":{"type":"array","value":"appearance","supported-layer-types":["symbol"],"experimental":true,"doc":"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with \'Works with appearances\' are supported."}},"appearance":{"condition":{"type":"boolean","doc":"A boolean expression that determines when this appearance should be applied.","expression":{"interpolated":true,"parameters":["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},"name":{"type":"string","doc":"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},"properties":{"type":"*","doc":"Style properties to apply when the condition is met."}},"layout":["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_model":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"model-id":{"type":"string","default":"","doc":"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":false,"requires":[{"source":["geojson","vector"]}]},"model-allow-density-reduction":{"type":"boolean","default":true,"transition":false,"experimental":true,"doc":"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"property-type":"data-constant"}},"layout_clip":{"clip-layer-types":{"type":"array","value":"enum","values":{"model":{"doc":"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},"symbol":{"doc":"If present the clip layer would remove all symbol layers below it."}},"default":[],"doc":"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"clip-layer-scope":{"type":"array","value":"string","default":[],"doc":"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"layout_fill":{"fill-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-elevation-reference":{"type":"enum","doc":"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-base":{"doc":"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as \'hatched areas\' that should exist only on top of road polygons."}},"default":"none","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{"type":"boolean","doc":"Determines whether bridge guard rails are added for elevated roads.","default":"true","transition":false,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"layout_circle":{"circle-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"},"data-driven styling":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{"type":"enum","doc":"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","experimental":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"source-max-zoom":{"type":"number","minimum":0,"maximum":24,"private":true,"experimental":true,"doc":"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}},"property-type":"constant"}},"layout_building":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"constant"},"building-facade":{"type":"boolean","default":false,"doc":"Whether to render facade details on the buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-facade-floors":{"type":"number","minimum":1,"maximum":200,"default":3,"doc":"Number of floors created when building-facade is enabled.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-unit-width":{"type":"number","minimum":1,"maximum":20,"default":3.1,"doc":"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-window":{"type":"array","length":2,"value":"number","minimum":0.1,"maximum":1,"default":[0.9,0.9],"doc":"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-roof-shape":{"type":"enum","values":{"flat":{"doc":"Use flat roof for the procedurally generated buildings."},"hipped":{"doc":"Use hipped roof for the procedurally generated buildings."},"gabled":{"doc":"Use gabled roof for the procedurally generated buildings."},"parapet":{"doc":"Use parapet roof for the procedurally generated buildings."},"mansard":{"doc":"Use mansard roof for the procedurally generated buildings."},"skillion":{"doc":"Use skillion roof for the procedurally generated buildings."},"pyramidal":{"doc":"Use pyramidal roof for the procedurally generated buildings."}},"default":"flat","doc":"Roof type to use for the procedural buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height of the procedural buildings.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.","transition":true,"requires":["building-height"],"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven","type":"boolean","private":true,"units":"meters","default":false,"doc":"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.","transition":true,"requires":["building-roof-shape"],"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{"doc":"A cap with a squared-off end which is drawn to the exact endpoint of the line."},"round":{"doc":"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"square":{"doc":"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."}},"default":"butt","doc":"The display of line endings.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{"doc":"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."},"round":{"doc":"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"miter":{"doc":"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},"none":{"doc":"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can\'t be used with data-driven styling."}},"default":"miter","doc":"The display of lines when joining.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"`none` value":{"js":"3.4.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"doc":"Used to automatically convert miter joins to bevel joins for sharp angles.","requires":[{"line-join":"miter"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"doc":"Used to automatically convert round joins to miter joins for shallow angles.","requires":[{"line-join":"round"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{"type":"number","doc":"Vertical offset from ground, in meters. Not supported for globe projection at the moment.","default":0,"requires":["line-elevation-reference"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{"type":"enum","doc":"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","transition":false,"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"line-cross-slope":{"type":"number","experimental":true,"doc":"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\\n * Vertical lines don\'t support line caps \\n * `line-join: round` is not supported with this property","requires":["line-z-offset"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"line-width-unit":{"type":"enum","doc":"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.","values":{"pixels":{"doc":"Width is rendered in pixels."},"meters":{"doc":"Width is rendered in meters."}},"default":"pixels","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"},"data-driven styling":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","line-progress"]},"requires":["line-z-offset"],"transition":true,"property-type":"data-driven"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{"doc":"The label is placed at the point where the geometry is located."},"line":{"doc":"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{"doc":"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},"default":"point","doc":"Label placement relative to its geometry.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`line-center` value":{"js":"0.47.0","android":"6.4.0","ios":"4.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","doc":"Distance between two symbol anchors.","requires":[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"doc":"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don\'t have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"},"data-driven styling":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{"doc":"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},"source":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},"default":"auto","doc":"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{"js":"0.49.0","android":"6.6.0","ios":"4.5.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{"type":"boolean","default":false,"doc":"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"requires":[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{"type":"enum","doc":"Selects the base of symbol-elevation.","values":{"sea":{"doc":"Elevate symbols relative to the sea level."},"ground":{"doc":"Elevate symbols relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},"default":"ground","experimental":true,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the icon will be visible even if it collides with other previously drawn symbols.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the icon.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"doc":"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},"viewport":{"doc":"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of icons.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","doc":"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{"type":"enum","values":{"none":{"doc":"The icon is displayed at its intrinsic aspect ratio."},"width":{"doc":"The icon is scaled in the x-dimension to fit the width of the text."},"height":{"doc":"The icon is scaled in the y-dimension to fit the height of the text."},"both":{"doc":"The icon is scaled in both x- and y-dimensions."}},"default":"none","doc":"Scales the icon to fit around the associated text.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"stretchable icons":{"js":"1.6.0","android":"9.2.0","ios":"5.8.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","doc":"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-image":{"type":"resolvedImage","doc":"Name of image in sprite to use for drawing an image background.","tokens":true,"appearance":true,"use-theme":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the icon clockwise.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the icon bounding box used for detecting symbol collisions.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"doc":"If true, the icon may be flipped to prevent it from being rendered upside-down.","requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"doc":"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{"doc":"The center of the icon is placed closest to the anchor."},"left":{"doc":"The left side of the icon is placed closest to the anchor."},"right":{"doc":"The right side of the icon is placed closest to the anchor."},"top":{"doc":"The top of the icon is placed closest to the anchor."},"bottom":{"doc":"The bottom of the icon is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the icon is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the icon is placed closest to the anchor."}},"default":"center","doc":"Part of the icon placed closest to the anchor.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The icon is aligned to the plane of the map."},"viewport":{"doc":"The icon is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `icon-rotation-alignment`."}},"default":"auto","doc":"Orientation of icon when map is pitched.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The text is aligned to the plane of the map."},"viewport":{"doc":"The text is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `text-rotation-alignment`."}},"default":"auto","doc":"Orientation of text when map is pitched.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},"viewport":{"doc":"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"doc":"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"doc":"Font stack to use for displaying text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","doc":"Font size.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","doc":"The maximum line width for text wrapping.","requires":["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","doc":"Text leading value for multi-line text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0","android":"10.0.0","ios":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","doc":"Text tracking amount.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{"doc":"The text is aligned towards the anchor position."},"left":{"doc":"The text is aligned to the left."},"center":{"doc":"The text is centered."},"right":{"doc":"The text is aligned to the right."}},"default":"center","doc":"Text justification options.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"},"auto":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"doc":"Radial offset of text, in the direction of the symbol\'s anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"},"data-driven styling":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"requires":["text-field",{"symbol-placement":["point"]}],"doc":"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"default":"center","doc":"Part of the text placed closest to the anchor.","requires":["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","doc":"Maximum angle change between adjacent characters.","requires":["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{"doc":"If a text\'s language supports horizontal writing mode, symbols would be laid out horizontally."},"vertical":{"doc":"If a text\'s language supports vertical writing mode, symbols would be laid out vertically."}},"doc":"The property allows control over a symbol\'s orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single \'vertical\' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either [\'horizontal\', \'vertical\'] or [\'vertical\', \'horizontal\'], the order doesn\'t affect the placement.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"1.3.0","android":"8.3.0","ios":"5.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the text clockwise.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the text bounding box used for detecting symbol collisions.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"doc":"If true, the text may be flipped vertically to prevent it from being rendered upside-down.","requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{"doc":"The text is not altered."},"uppercase":{"doc":"Forces all letters to be displayed in uppercase."},"lowercase":{"doc":"Forces all letters to be displayed in lowercase."}},"default":"none","doc":"Specifies how to capitalize text, similar to the CSS `text-transform` property.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","doc":"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the text will be visible even if it collides with other previously drawn symbols.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"doc":"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.","requires":["text-field","icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster-particle":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"expressions support":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"filter":{"type":"array","value":"*","doc":"A filter selects specific features from a layer."},"filter_symbol":{"type":"boolean","doc":"Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","doc":"Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_hillshade":{"type":"boolean","doc":"Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster-particle":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_clip":{"type":"boolean","doc":"Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_model":{"type":"boolean","doc":"Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","doc":"Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_building":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","doc":"Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{"doc":"`[\\"==\\", key, value]` equality: `feature[key] = value`"},"!=":{"doc":"`[\\"!=\\", key, value]` inequality: `feature[key] ≠ value`"},">":{"doc":"`[\\">\\", key, value]` greater than: `feature[key] > value`"},">=":{"doc":"`[\\">=\\", key, value]` greater than or equal: `feature[key] ≥ value`"},"<":{"doc":"`[\\"<\\", key, value]` less than: `feature[key] < value`"},"<=":{"doc":"`[\\"<=\\", key, value]` less than or equal: `feature[key] ≤ value`"},"in":{"doc":"`[\\"in\\", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`"},"!in":{"doc":"`[\\"!in\\", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`"},"all":{"doc":"`[\\"all\\", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`"},"any":{"doc":"`[\\"any\\", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`"},"none":{"doc":"`[\\"none\\", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`"},"has":{"doc":"`[\\"has\\", key]` `feature[key]` exists"},"!has":{"doc":"`[\\"!has\\", key]` `feature[key]` does not exist"}},"doc":"The filter operator."},"geometry_type":{"type":"enum","values":{"Point":{"doc":"Filter to point geometries."},"LineString":{"doc":"Filter to line geometries."},"Polygon":{"doc":"Filter to polygon geometries."}},"doc":"The geometry type for the filter to select."},"function":{"expression":{"type":"expression","doc":"An expression."},"stops":{"type":"array","doc":"An array of stops.","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0,"doc":"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},"property":{"type":"string","doc":"The name of a feature property to use as the function input.","default":"$zoom"},"type":{"type":"enum","values":{"identity":{"doc":"Return the input value as the output value."},"exponential":{"doc":"Generate an output by interpolating between stops just less than and just greater than the function input."},"interval":{"doc":"Return the output value of the stop just less than the function input."},"categorical":{"doc":"Return the output value of the stop equal to the function input."}},"doc":"The interpolation strategy to use in function evaluation.","default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{"doc":"Use the RGB color space to interpolate color values"},"lab":{"doc":"Use the LAB color space to interpolate color values."},"hcl":{"doc":"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},"doc":"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.","default":"rgb"},"default":{"type":"*","required":false,"doc":"A value to serve as a fallback function result when a value isn\'t otherwise available. It is used in the following circumstances:\\n* In categorical functions, when the feature value does not match any of the stop domain values.\\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\\nIf no default is provided, the style property\'s default is used in these circumstances."}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2,"doc":"Zoom level and value pair."},"expression":{"type":"array","value":"*","minimum":1,"doc":"An expression defines a function that can be used for data-driven style properties or feature filters."},"expression_name":{"doc":"","type":"enum","values":{"let":{"doc":"Binds expressions to named variables, which can then be referenced in the result expression using [\\"var\\", \\"variable_name\\"].","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"var":{"doc":"References variable bound using \\"let\\".","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"config":{"doc":"Retrieves the configuration value for the given option. Returns null if the requested option is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"literal":{"doc":"Provides a literal array or object value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"array":{"doc":"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at":{"doc":"Retrieves an item from an array.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at-interpolated":{"doc":"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.12.0","ios":"11.12.0"}}},"in":{"doc":"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.6.0","android":"9.1.0","ios":"5.8.0"}}},"index-of":{"doc":"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"slice":{"doc":"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"split":{"doc":"Returns an array of substrings from a string, split by a delimiter parameter.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.14.0","android":"11.14.0","ios":"11.14.0"}}},"case":{"doc":"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"match":{"doc":"Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `[\\"get\\", \\"building_type\\"]`). Each label must be unique, and must be either:\\n - a single literal value; or\\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `[\\"c\\", \\"b\\"]`).\\n\\nThe input matches if any of the values in the array matches using strict equality, similar to the `\\"in\\"` operator.\\nIf the input type does not match the type of the labels, the result will be the fallback value.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"coalesce":{"doc":"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`\'image\'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"step":{"doc":"Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\\n\\nInterpolation types:\\n- `[\\"linear\\"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\\n- `[\\"exponential\\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\\n- `[\\"cubic-bezier\\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate-hcl":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"interpolate-lab":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"ln2":{"doc":"Returns mathematical constant ln(2).","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pi":{"doc":"Returns the mathematical constant pi.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"e":{"doc":"Returns the mathematical constant e.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"typeof":{"doc":"Returns a string describing the type of the given value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"string":{"doc":"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"number":{"doc":"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"boolean":{"doc":"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"object":{"doc":"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"collator":{"doc":"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.","group":"Types","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"format":{"doc":"Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\\n- `\\"text-font\\"`: Overrides the font stack specified by the root layout property.\\n- `\\"text-color\\"`: Overrides the color specified by the root paint property.\\n- `\\"font-scale\\"`: Applies a scaling factor on `text-size` as specified by the root layout property.","group":"Types","sdk-support":{"basic functionality":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-font":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"font-scale":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-color":{"js":"1.3.0","android":"7.3.0","ios":"4.10.0"},"image":{"js":"1.6.0","android":"8.6.0","ios":"5.7.0"}}},"image":{"doc":"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`\'format\'`](#types-format) expression.\\n\\nA [`\'coalesce\'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `\'image\'` argument.\\n\\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\\n\\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `\'image\'` expression.","group":"Types","sdk-support":{"basic functionality":{"js":"1.4.0","android":"8.6.0","ios":"5.7.0"}}},"number-format":{"doc":"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.","group":"Types","sdk-support":{"basic functionality":{"js":"0.54.0","android":"8.4.0","ios":"5.4.0"}}},"to-string":{"doc":"Converts the input value to a string. If the input is `null`, the result is `\\"\\"`. If the input is a [`boolean`](#types-boolean), the result is `\\"true\\"` or `\\"false\\"`. If the input is a number, it is converted to a string as specified by the [\\"NumberToString\\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `\\"rgba(r,g,b,a)\\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`\'image\'`](#types-image) expression, `\'to-string\'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-number":{"doc":"Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the [\\"ToNumber Applied to the String Type\\" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-boolean":{"doc":"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-rgba":{"doc":"Returns a four-element array containing the input color\'s red, green, blue, and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-hsla":{"doc":"Returns a four-element array containing the input color\'s Hue, Saturation, Luminance and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}}},"to-color":{"doc":"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgb":{"doc":"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgba":{"doc":"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"hsl":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"hsla":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"get":{"doc":"Retrieves a property value from the current feature\'s properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"has":{"doc":"Tests for the presence of an property value in the current feature\'s properties, or from another object if a second argument is provided.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"length":{"doc":"Returns the length of an array or string.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"properties":{"doc":"Returns the feature properties object. Note that in some cases, it may be more efficient to use `[\\"get\\", \\"property_name\\"]` directly.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"feature-state":{"doc":"Retrieves a property value from the current feature\'s state. Returns `null` if the requested property is not present on the feature\'s state. A feature\'s state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\\"feature-state\\"] can only be used with paint properties that support data-driven styling.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.46.0","android":"10.0.0","ios":"10.0.0"}}},"geometry-type":{"doc":"Returns the feature\'s geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"worldview":{"doc":"Returns the current worldview being used.","group":"Lookup","experimental":true,"sdk-support":{"basic functionality":{"js":"3.13.0","android":"11.13.0","ios":"11.13.0"}}},"id":{"doc":"Returns the feature\'s id, if it has one.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"zoom":{"doc":"Returns the current zoom level. Note that in style layout and paint properties, [\\"zoom\\"] may only appear as the input to a top-level \\"step\\" or \\"interpolate\\" expression.","group":"Camera","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pitch":{"doc":"Returns the current pitch in degrees. `[\\"pitch\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"distance-from-center":{"doc":"Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `[\\"distance-from-center\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"measure-light":{"doc":"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"heatmap-density":{"doc":"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.","group":"Heatmap","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"line-progress":{"doc":"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.6.0"}}},"sky-radial-progress":{"doc":"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.","group":"sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"accumulated":{"doc":"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.53.0","android":"8.4.0","ios":"5.5.0"}}},"+":{"doc":"Returns the sum of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"*":{"doc":"Returns the product of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"-":{"doc":"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"/":{"doc":"Returns the result of floating point division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"%":{"doc":"Returns the remainder after integer division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"^":{"doc":"Returns the result of raising the first input to the power specified by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sqrt":{"doc":"Returns the square root of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"log10":{"doc":"Returns the base-ten logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"ln":{"doc":"Returns the natural logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"log2":{"doc":"Returns the base-two logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sin":{"doc":"Returns the sine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"cos":{"doc":"Returns the cosine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"tan":{"doc":"Returns the tangent of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"asin":{"doc":"Returns the arcsine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"acos":{"doc":"Returns the arccosine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"atan":{"doc":"Returns the arctangent of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"min":{"doc":"Returns the minimum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"max":{"doc":"Returns the maximum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"round":{"doc":"Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `[\\"round\\", -1.5]` evaluates to -2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"abs":{"doc":"Returns the absolute value of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"ceil":{"doc":"Returns the smallest integer that is greater than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"floor":{"doc":"Returns the largest integer that is less than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"distance":{"doc":"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"9.2.0","ios":"5.9.0"}}},"==":{"doc":"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"!=":{"doc":"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">":{"doc":"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<":{"doc":"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">=":{"doc":"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<=":{"doc":"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"all":{"doc":"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"any":{"doc":"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"!":{"doc":"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"within":{"doc":"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line\'s endpoint is on the boundary.","group":"Decision","sdk-support":{"basic functionality":{"js":"1.9.0","android":"9.1.0","ios":"5.8.0"}}},"is-supported-script":{"doc":"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.6.0","ios":"4.1.0"}}},"upcase":{"doc":"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"downcase":{"doc":"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"concat":{"doc":"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"resolved-locale":{"doc":"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"raster-value":{"doc":"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.","group":"Raster Colorization","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-particle-speed":{"doc":"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.","group":"Raster Particle Animation","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"is-active-floor":{"doc":"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.","group":"Indoor","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"random":{"doc":"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"vertical-range":{"type":"array","default":[0,0],"minimum":0,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"snow":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.85],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow particles color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.3],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.4,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,50],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main snow particles direction. Azimuth and polar angles","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"flake-size":{"type":"number","property-type":"data-constant","default":0.71,"minimum":0,"maximum":5,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"rain":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.5],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",0.3,"#a8adbc"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,0.88,1,0.7],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,1],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#001736",0.3,"#464646"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.57,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,80],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main rain particles direction. Azimuth and polar angles.","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"droplet-size":{"type":"array","default":[2.6,18.2],"minimum":0,"maximum":50,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Rain droplet size. x - normal to direction, y - along direction","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"distortion-strength":{"type":"number","property-type":"data-constant","default":0.7,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"camera":{"camera-projection":{"doc":"Camera projection describes how 3D world geometry get projected into 2D screen","type":"enum","values":{"perspective":{"doc":"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},"orthographic":{"doc":"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"perspective","property-type":"data-constant"}},"colorTheme":{"data":{"type":"string","doc":"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.","transition":false,"property-type":"data-constant","expression":{"interpolated":false}}},"indoor_source":{"sourceId":{"type":"string","doc":"Source ID of a source to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"},"sourceLayers":{"type":"array","value":"string","doc":"An array of source layers to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"}},"indoor":{"*":{"type":"indoor_source","private":true,"experimental":true,"doc":"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}}},"projection":{"name":{"type":"enum","values":{"albers":{"doc":"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"equalEarth":{"doc":"An Equal Earth projection."},"equirectangular":{"doc":"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},"lambertConformalConic":{"doc":"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"mercator":{"doc":"The Mercator projection is the default projection."},"naturalEarth":{"doc":"A Natural Earth projection."},"winkelTripel":{"doc":"A Winkel Tripel projection."},"globe":{"doc":"A globe projection."}},"default":"mercator","doc":"The name of the projection to be used for rendering the map.","required":true,"sdk-support":{"basic functionality":{"js":"2.6.0","ios":"10.5.0","android":"10.5.0"}}},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"doc":"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].","example":[-96,37.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"doc":"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).","example":[29.5,45.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}}},"terrain":{"source":{"type":"string","doc":"Name of a source of `raster_dem` type to be used for terrain elevation.","required":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.","requires":["source"],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"doc":"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","doc":"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color\'s opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","doc":"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill is translated relative to the map."},"viewport":{"doc":"The fill is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-translate`.","default":"map","requires":["fill-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{"type":"number","doc":"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.7.0"},"data-driven styling":{"js":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of bridge guard rail.","experimental":true,"private":true,"use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":true,"transition":true,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","doc":"The base color of the extruded fill. The extrusion\'s surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill extrusion is translated relative to the map."},"viewport":{"doc":"The fill extrusion is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-extrusion-translate`.","default":"map","requires":["fill-extrusion-translate"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude this layer.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.","transition":true,"requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion height follows terrain slope."},"flat":{"doc":"The fill extrusion height is flat over terrain."}},"doc":"Controls the behavior of fill extrusion height over terrain","default":"flat","requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion base follows terrain slope."},"flat":{"doc":"The fill extrusion base is flat over terrain."}},"doc":"Controls the behavior of fill extrusion base over terrain","default":"terrain","requires":["fill-extrusion-base"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"doc":"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.","transition":false,"sdk-support":{"basic functionality":{"js":"0.50.0","android":"7.0.0","ios":"4.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.","requires":["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.","requires":["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant","type":"color","experimental":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the extruded buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant","type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the extruded buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant","type":"number","experimental":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant","type":"boolean","default":true,"experimental":true,"doc":"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.","requires":["fill-extrusion-edge-radius"],"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.10.0","ios":"10.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]}},"fill-extrusion-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"fill-extrusion-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{"type":"number","default":0,"minimum":0,"transition":true,"experimental":true,"units":"meters","doc":"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"}},"paint_building":{"building-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":false,"parameters":[]},"transition":true,"doc":"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant","type":"number","private":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base and height of the procedural buildings.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-color":{"type":"color","default":"rgba(193, 154, 127, 1)","doc":"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).","private":true,"use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{"type":"number","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{"type":"number","default":0.35,"minimum":0,"maximum":1,"doc":"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.","private":true,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["measure-light","zoom"]}},"building-cutoff-fade-range":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant","type":"color","private":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"paint_line":{"line-opacity":{"type":"number","doc":"The opacity at which the line will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{"type":"color","doc":"The color with which the line will be drawn.","default":"#000000","use-theme":true,"transition":true,"requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.23.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{"doc":"The line is translated relative to the map."},"viewport":{"doc":"The line is translated relative to the viewport."}},"doc":"Controls the frame of reference for `line-translate`.","default":"map","requires":["line-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","doc":"Stroke thickness.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"doc":"Draws a line casing outside of a line\'s actual path. Value indicates the width of the inner gap.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"doc":"The line\'s offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.12.1","android":"3.0.0","ios":"3.1.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","doc":"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won\'t render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{"type":"color","doc":"A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature\'s total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `\\"lineMetrics\\": true`.","example":["interpolate",["linear"],["line-progress"],0,"blue",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"use-theme":true,"transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","doc":"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.5.0","ios":"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{"type":"array","value":"number","doc":"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.","experimental":true,"length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{"type":"color","doc":"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.","experimental":true,"default":"transparent","use-theme":true,"transition":true,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.17.0","android":"11.17.0","ios":"11.17.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{"type":"number","private":true,"doc":"The width of the line border. A value of zero means no border.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{"type":"color","private":true,"doc":"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"property-type":"data-constant"},"line-blend-mode":{"type":"enum","values":{"default":{"doc":"Normal non-blended rendering mode."},"multiply":{"doc":"Line features are composited using multiply blending."},"additive":{"doc":"Line features are composited using additive density accumulation with tone mapping."}},"doc":"Controls the blend mode used for rendering line features.","default":"default","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.21.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-blend-additive-clamp":{"type":"number","default":0,"minimum":0,"doc":"Controls the brightness of lines in additive blend mode. When set to 0 (the default), brightness is adjusted automatically based on the density of lines visible on screen. Increase this value if the lines appear too bright, or decrease it if they appear too faint.","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.21.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","doc":"Circle radius.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","doc":"The fill color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"doc":"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","doc":"The opacity at which the circle will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{"doc":"The circle is translated relative to the map."},"viewport":{"doc":"The circle is translated relative to the viewport."}},"doc":"Controls the frame of reference for `circle-translate`.","default":"map","requires":["circle-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{"doc":"Circles are scaled according to their apparent distance to the camera."},"viewport":{"doc":"Circles are not scaled."}},"default":"map","doc":"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The circle is aligned to the plane of the map."},"viewport":{"doc":"The circle is aligned to the plane of the viewport."}},"default":"viewport","doc":"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The width of the circle\'s stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","doc":"The stroke color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","doc":"The opacity of the circle\'s stroke.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","doc":"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"doc":"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"doc":"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"doc":"Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `[\\"heatmap-density\\"]` as input.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","doc":"The global opacity at which the heatmap layer will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"doc":"The opacity at which the icon will be drawn.","type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-occlusion-opacity":{"doc":"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","type":"number","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"text-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"doc":"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the icon\'s halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the icon outline.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Fade out the halo towards the outside.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the icon\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{"doc":"Icons are translated relative to the map."},"viewport":{"doc":"Icons are translated relative to the viewport."}},"doc":"Controls the frame of reference for `icon-translate`.","default":"map","requires":["icon-image","icon-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"doc":"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{"type":"number","doc":"The opacity at which the text will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-occlusion-opacity":{"type":"number","doc":"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-color":{"type":"color","doc":"The color with which the text will be drawn.","default":"#000000","use-theme":true,"transition":true,"overridable":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the text\'s halo, which helps it stand out from backgrounds.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The halo\'s fadeout distance towards the outside.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the text\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{"doc":"The text is translated relative to the map."},"viewport":{"doc":"The text is translated relative to the viewport."}},"doc":"Controls the frame of reference for `text-translate`.","default":"map","requires":["text-field","text-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"symbol-z-offset":{"type":"number","doc":"Specifies an uniform elevation from the ground, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"appearance":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_raster":{"raster-opacity":{"type":"number","doc":"The opacity at which the image will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-color":{"type":"color","doc":"Defines a color map by which to colorize a raster layer, parameterized by the `[\\"raster-value\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{"type":"array","default":[0.2126,0.7152,0.0722,0],"length":4,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.","example":[0.2126,0.7152,0.0722,0],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-color-range":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source\'s stated data range is used.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","doc":"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","doc":"Increase or reduce the saturation of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","doc":"Increase or reduce the contrast of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","doc":"The resampling/interpolation method to use for overscaling, also known as texture magnification filter","values":{"linear":{"doc":"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},"nearest":{"doc":"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},"default":"linear","sdk-support":{"basic functionality":{"js":"0.47.0","android":"6.3.0","ios":"4.2.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","doc":"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{"type":"string","required":false,"experimental":true,"property-type":"data-constant","transition":false,"requires":[{"source":"raster-array"}],"doc":"Displayed band of raster array source layer. Defaults to the first band if not set.","example":"band-name","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}}},"raster-elevation":{"type":"number","doc":"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.2.0","ios":"11.2.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{"type":"enum","doc":"Selects the base of raster-elevation.","values":{"sea":{"doc":"Use this mode to elevate raster layers relative to the sea level."},"ground":{"doc":"Use this mode to elevate raster layers relative to the ground\'s height below them."}},"default":"sea","transition":false,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"paint_raster-particle":{"raster-particle-array-band":{"type":"string","required":false,"property-type":"data-constant","transition":false,"doc":"Displayed band of raster array source layer","example":"\\"1713348000\\"","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"raster-particle-count":{"type":"number","doc":"Defines the amount of particles per tile.","default":512,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{"type":"color","doc":"Defines a color map by which to colorize a raster particle layer, parameterized by the `[\\"raster-particle-speed\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{"type":"number","doc":"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.","default":1,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{"type":"number","doc":"Defines a coefficient for the speed of particles’ motion.","default":0.2,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{"type":"number","doc":"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.","default":0.98,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{"type":"number","doc":"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).","default":0.8,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{"type":"number","doc":"Defines an uniform elevation from sea level, in meters.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"doc":"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.","transition":false,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{"doc":"The hillshade illumination is relative to the north direction."},"viewport":{"doc":"The hillshade illumination is relative to the top of the viewport."}},"default":"viewport","doc":"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","doc":"Intensity of the hillshade","default":0.5,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","doc":"The shading color of areas that face away from the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","doc":"The shading color of areas that faces towards the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","doc":"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_background":{"background-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The background is aligned to the plane of the map."},"viewport":{"doc":"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},"default":"map","doc":"Orientation of background layer.","sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":false,"parameters":[]},"experimental":true,"property-type":"data-constant"},"background-color":{"type":"color","default":"#000000","doc":"The color with which the background will be drawn.","use-theme":true,"transition":true,"requires":[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity at which the background will be drawn.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{"doc":"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},"atmosphere":{"doc":"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},"default":"atmosphere","doc":"The type of the sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"doc":"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"doc":"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"doc":"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":true,"transition":false,"requires":[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","doc":"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","doc":"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire sky layer.","transition":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_model":{"model-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.","transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"property-type":"data-driven"},"model-rotation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{"type":"array","value":"number","length":3,"default":[1,1,1],"doc":"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-translation":{"type":"array","value":"number","length":3,"default":[0,0,0],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{"type":"color","default":"#ffffff","doc":"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"use-theme":true,"transition":true},"model-color-mix-intensity":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":1,"doc":"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-type":{"type":"enum","values":{"common-3d":{"doc":"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{"doc":"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"common-3d","doc":"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow receiving for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Intensity of the ambient occlusion if present in the 3D model.","expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant","transition":true},"model-emissive-strength":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-roughness":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-height-based-emissive-strength-multiplier":{"type":"array","default":[1,1,1,1,0],"length":5,"value":"number","doc":"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{"type":"array","private":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.5.0"}}},"model-elevation-reference":{"type":"enum","doc":"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.","values":{"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"ground","transition":false,"expression":{"interpolated":false},"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.17.0","android":"11.10.0","ios":"11.10.0"}}},"model-ignore-line-cutout":{"type":"boolean","doc":"When set to true, the layer is not going to be affected by the line cutout effect.","default":false,"transition":false,"expression":{"interpolated":false},"property-type":"data-constant","experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.21.0","ios":"11.21.0"}}}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds","doc":"Time allotted for transitions to complete."},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds","doc":"Length of time before a transition begins."}},"property-type":{"data-driven":{"type":"property-type","doc":"Property is interpolable and can be represented using a property expression."},"color-ramp":{"type":"property-type","doc":"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{"type":"property-type","doc":"Property is interpolable but cannot be represented using a property expression."},"constant":{"type":"property-type","doc":"Property is constant across all zoom levels and property values."}},"promoteId":{"*":{"type":"*","doc":"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}},"$doc":{"transition":{"type":"transition","doc":"Controls how a property transitions to a new value. Overrides the style\'s root `transition` for this property."},"use-theme":{"type":"enum","doc":"Controls whether the associated color property is affected by the global color theme. When set to \\"none\\", the color theme is ignored for this property. When set to \\"default\\", the color theme is applied.","values":{"default":{"doc":"The color theme is applied to this property (default behavior)."},"none":{"doc":"The color theme is ignored for this property."}},"default":"default"}}}');function xme(e){"@babel/helpers - typeof";return(xme="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Pme(e,t){for(var r=0;r1&&void 0!==arguments[1])||arguments[1],s=o().CRS.get(t);return s||(s=new(o().CRS)(t,r,n,i||n[2]>180?"meter":"degree"),a&&o().CRS.set(s)),this.proj4&&!this.builtInEPSG.includes(t)&&this.proj4.defs(t,s.getWKT()),s}}])&&Lme(e.prototype,t),r&&Lme(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Gme(e){"@babel/helpers - typeof";return(Gme="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ume(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function zme(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,r=Array.isArray(e)&&e.filter(function(e){return e.metaData.tileType===t.tileType||rge(e.metaData.prjCoordSys)===rge(t.prjCoordSys)});return r&&r[0]&&r[0].metaData}function ige(e,t){var r=e.scale,n=e.dpi,o=e.coordUnit,i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:22,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:512,n=[],o=e.left,i=e.right;Array.isArray(e)&&(o=e[0],i=e[2]);for(var a=Math.abs(o-i)/r,s=0;sMath.abs(e-t[o])&&(r=Math.abs(e-t[o]),n=o);return n}(bf(r,n,o),i)}function age(e){"@babel/helpers - typeof";return(age="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function sge(){var e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var u=n&&n.prototype instanceof s?n:s,l=Object.create(u.prototype);return uge(l,"_invoke",function(r,n,o){var i,s,u,l=0,c=o||[],f=!1,p={p:0,n:0,v:e,a:h,f:h.bind(e,4),d:function(t,r){return i=t,s=0,u=e,p.n=r,a}};function h(r,n){for(s=r,u=n,t=0;!f&&l&&!o&&t3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(uge(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,uge(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,uge(f,"constructor",l),uge(l,"constructor",u),u.displayName="GeneratorFunction",uge(l,o,"GeneratorFunction"),uge(f),uge(f,o,"Generator"),uge(f,n,function(){return this}),uge(f,"toString",function(){return"[object Generator]"}),(sge=function(){return{w:i,m:p}})()}function uge(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(uge=function(e,t,r,n){function i(t,r){uge(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function lge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function cge(e){for(var t=1;t=1&&(this.beforeLayerId=e.getStyle().layers[0].id),e.addLayer({id:this.id,type:"raster",source:this.id},this.beforeLayerId),this.map.fitBounds([t[1],t[3]]),this._afterAddVideoLayer()}}},{key:"_afterAddVideoLayer",value:function(){this.autoplay&&this.map.getSource(this.id).play(),this.fire("loaded",{originCoordsRightBottom:this.originCoordsRightBottom,originCoordsLeftTop:this.originCoordsLeftTop,videoWidth:this.videoWidth,videoHeight:this.videoHeight})}},{key:"_calcCoords",value:function(e){var t=this,r=e.width,n=e.height,o=e.videoHeight,i=e.videoWidth||this.videoWidth,a=o||this.videoHeight,s=i/r,u=a/n,l=Math.min(s,u),c=r/2,f=n/2,p=i/l/2,h=a/l/2,y=[[c-p,f-h],[c+p,f-h],[c+p,f+h],[c-p,f+h]].map(function(e){return t.map.unproject(e)});return this.originCoordsLeftTop=y[0],this.originCoordsRightBottom=y[2],y}},{key:"play",value:function(){this.video.play()}},{key:"pause",value:function(){this.video.pause()}},{key:"remove",value:function(){this.id&&(this.map.removeLayer(this.id),this.map.removeSource(this.id),document.body.removeChild(document.getElementById(this.id)))}}])&&wge(r.prototype,n),i&&wge(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,i}();function Ige(e){return function(e){if(Array.isArray(e))return xge(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return xge(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?xge(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function xge(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r3?(o=y===n)&&(u=i[(s=i[4])?5:(s=3,3)],i[4]=i[5]=e):i[0]<=h&&((o=r<2&&hn||n>y)&&(i[4]=r,i[5]=n,p.n=y,s=0))}if(o||r>1)return a;throw f=!0,n}return function(o,c,y){if(l>1)throw TypeError("Generator is already running");for(f&&1===c&&h(c,y),s=c,u=y;(t=s<2?e:u)||!f;){i||(s?s<3?(s>1&&(p.n=-1),h(s,u)):p.n=u:p.v=u);try{if(l=2,i){if(s||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,s<2&&(s=0)}else 1===s&&(t=i.return)&&t.call(i),s<2&&(u=TypeError("The iterator does not provide a '"+o+"' method"),s=1);i=e}else if((t=(f=p.n<0)?u:r.call(n,p))!==a)break}catch(t){i=e,s=1,u=t}finally{l=1}}return{value:t,done:f}}}(r,o,i),!0),l}var a={};function s(){}function u(){}function l(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(Gge(t={},n,function(){return this}),t),f=l.prototype=s.prototype=Object.create(c);function p(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,l):(e.__proto__=l,Gge(e,o,"GeneratorFunction")),e.prototype=Object.create(f),e}return u.prototype=l,Gge(f,"constructor",l),Gge(l,"constructor",u),u.displayName="GeneratorFunction",Gge(l,o,"GeneratorFunction"),Gge(f),Gge(f,o,"Generator"),Gge(f,n,function(){return this}),Gge(f,"toString",function(){return"[object Generator]"}),(Qge=function(){return{w:i,m:p}})()}function Gge(e,t,r,n){var o=Object.defineProperty;try{o({},"",{})}catch(e){o=0}(Gge=function(e,t,r,n){function i(t,r){Gge(e,t,function(e){return this._invoke(t,r,e)})}t?o?o(e,t,{value:r,enumerable:!n,configurable:!n,writable:!n}):e[t]=r:(i("next",0),i("throw",1),i("return",2))})(e,t,r,n)}function Uge(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function zge(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Hge(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},r=new ege(FG,e,t);return r.getMapInfo((n=hge(sge().m(function n(i,a,s){var u,l,c,f,p,h,y;return sge().w(function(n){for(;;)switch(n.p=n.n){case 0:if(n.p=0,"processCompleted"!==i.type){n.n=4;break}if(u=i.result,l=u.dynamicProjection,c=u.prjCoordSys,f=c.epsgCode,!tge(c.type)){n.n=1;break}return s(new Error("mapbox-gl cannot support plane coordinate system.")),n.a(2);case 1:if(3857===f||l||o().CRS){n.n=2;break}return s(new Error("The EPSG code ".concat(f," needs to include mapbox-gl-enhance.js. Refer to the example: https://iclient.supermap.io/examples/mapboxgl/editor.html#mvtVectorTile_2362"))),n.a(2);case 2:return n.n=3,vge(e,i.result,cge(cge({},t),{},{initMapService:r}));case 3:return p=n.v,(h=new(o().Map)(p)).loaded()?a({map:h}):h.on("load",function(){a({map:h})}),n.a(2);case 4:s(new Error("Fetch mapService is failed.")),n.n=6;break;case 5:n.p=5,y=n.v,s(y);case 6:return n.a(2)}},n,null,[[0,5]])})),function(e,t,r){return n.apply(this,arguments)}));var n},o().supermap.Graphic=vP,o().supermap.map.getDefaultVectorTileStyle=function(e,t){t=t||{};var r={};r.version=t.version||8,r.layers=t.layers||[],r.light=t.light||{anchor:"viewport",color:"#fcf6ef",intensity:.5,position:[1.15,201,20]};var n={version:r.version,sources:{"vector-tiles":{type:"vector",tiles:[e]}},layers:r.layers,light:r.light};return null!=t.sprite&&(n.sprite=t.sprite),null!=t.glyphs&&(n.glyphs=t.glyphs),n},o().supermap.map.setBackground=function(e,t){t&&e&&e.addLayer({id:"background",type:"background",paint:{"background-color":t}},"background")},o().supermap.map.setPaintProperty=function(e,t,r,n,o,i){if(t&&e){"[object Array]"!==Object.prototype.toString.call(t)&&(t=[t]);for(var a=0;ac;)if((l=s[c++])!=l)return!0}else for(;u>c;c++)if((e||c in s)&&s[c]===r)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},4538:function(e,t,r){"use strict";var n=r(398),o=n({}.toString),i=n("".slice);e.exports=function(e){return i(o(e),8,-1)}},578:function(e,t,r){"use strict";var n=r(2791),o=r(7197),i=r(1805),a=r(1807);e.exports=function(e,t,r){for(var s=o(t),u=a.f,l=i.f,c=0;c0&&n[0]<4?1:+(n[0]+n[1])),!o&&a&&(!(n=a.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\/(\d+)/))&&(o=+n[1]),e.exports=o},3768:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(4638),i=r(1805).f,a=r(5233),s=r(5414),u=r(6507),l=r(578),c=r(3670);e.exports=function(e,t){var r,f,p,h,y,d=e.target,m=e.global,g=e.stat;if(r=m?o:g?o[d]||u(d,{}):o[d]&&o[d].prototype)for(f in t){if(h=t[f],p=e.dontCallGetSet?(y=i(r,f))&&y.value:r[f],!c(m?f:d+(g?".":"#")+f,e.forced)&&void 0!==p){if(n(h)==n(p))continue;l(h,p)}(e.sham||p&&p.sham)&&a(h,"sham",!0),s(r,f,h,e)}}},4877:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},8574:function(e,t,r){"use strict";var n=r(4877);e.exports=!n(function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},9707:function(e,t,r){"use strict";var n=r(8574),o=Function.prototype.call;e.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},2756:function(e,t,r){"use strict";var n=r(9234),o=r(2791),i=Function.prototype,a=n&&Object.getOwnPropertyDescriptor,s=o(i,"name"),u=s&&"something"===function(){}.name,l=s&&(!n||n&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:u,CONFIGURABLE:l}},398:function(e,t,r){"use strict";var n=r(8574),o=Function.prototype,i=o.call,a=n&&o.bind.bind(i,i);e.exports=n?a:function(e){return function(){return i.apply(e,arguments)}}},5189:function(e,t,r){"use strict";var n=r(4638),o=r(2631);e.exports=function(e,t){return arguments.length<2?(r=n[e],o(r)?r:void 0):n[e]&&n[e][t];var r}},2968:function(e,t,r){"use strict";var n=r(7644),o=r(155);e.exports=function(e,t){var r=e[t];return o(r)?void 0:n(r)}},4638:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=function(e){return e&&e.Math===Math&&e};e.exports=o("object"==("undefined"==typeof globalThis?"undefined":n(globalThis))&&globalThis)||o("object"==("undefined"==typeof window?"undefined":n(window))&&window)||o("object"==("undefined"==typeof self?"undefined":n(self))&&self)||o("object"==(void 0===r.g?"undefined":n(r.g))&&r.g)||o("object"==n(this)&&this)||function(){return this}()||Function("return this")()},2791:function(e,t,r){"use strict";var n=r(398),o=r(6079),i=n({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},8551:function(e){"use strict";e.exports={}},107:function(e,t,r){"use strict";var n=r(9234),o=r(4877),i=r(2533);e.exports=!n&&!o(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},9213:function(e,t,r){"use strict";var n=r(398),o=r(4877),i=r(4538),a=Object,s=n("".split);e.exports=o(function(){return!a("z").propertyIsEnumerable(0)})?function(e){return"String"===i(e)?s(e,""):a(e)}:a},3128:function(e,t,r){"use strict";var n=r(398),o=r(2631),i=r(4243),a=n(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},7863:function(e,t,r){"use strict";var n,o,i,a=r(5032),s=r(4638),u=r(6220),l=r(5233),c=r(2791),f=r(4243),p=r(109),h=r(8551),y=s.TypeError,d=s.WeakMap;if(a||f.state){var m=f.state||(f.state=new d);m.get=m.get,m.has=m.has,m.set=m.set,n=function(e,t){if(m.has(e))throw new y("Object already initialized");return t.facade=e,m.set(e,t),t},o=function(e){return m.get(e)||{}},i=function(e){return m.has(e)}}else{var g=p("state");h[g]=!0,n=function(e,t){if(c(e,g))throw new y("Object already initialized");return t.facade=e,l(e,g,t),t},o=function(e){return c(e,g)?e[g]:{}},i=function(e){return c(e,g)}}e.exports={set:n,get:o,has:i,enforce:function(e){return i(e)?o(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!u(t)||(r=o(t)).type!==e)throw new y("Incompatible receiver, "+e+" required");return r}}}},2631:function(e){"use strict";function t(e){"@babel/helpers - typeof";return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var r="object"==("undefined"==typeof document?"undefined":t(document))&&document.all;e.exports=void 0===r&&void 0!==r?function(e){return"function"==typeof e||e===r}:function(e){return"function"==typeof e}},3670:function(e,t,r){"use strict";var n=r(4877),o=r(2631),i=/#|\.prototype\./,a=function(e,t){var r=u[s(e)];return r===c||r!==l&&(o(t)?n(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=a.data={},l=a.NATIVE="N",c=a.POLYFILL="P";e.exports=a},155:function(e){"use strict";e.exports=function(e){return null===e||void 0===e}},6220:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(2631);e.exports=function(e){return"object"==n(e)?null!==e:o(e)}},497:function(e){"use strict";e.exports=!1},3443:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(5189),i=r(2631),a=r(7123),s=r(5970),u=Object;e.exports=s?function(e){return"symbol"==n(e)}:function(e){var t=o("Symbol");return i(t)&&a(t.prototype,u(e))}},428:function(e,t,r){"use strict";var n=r(9800);e.exports=function(e){return n(e.length)}},7773:function(e,t,r){"use strict";var n=r(398),o=r(4877),i=r(2631),a=r(2791),s=r(9234),u=r(2756).CONFIGURABLE,l=r(3128),c=r(7863),f=c.enforce,p=c.get,h=String,y=Object.defineProperty,d=n("".slice),m=n("".replace),g=n([].join),v=s&&!o(function(){return 8!==y(function(){},"length",{value:8}).length}),b=String(String).split("String"),A=e.exports=function(e,t,r){"Symbol("===d(h(t),0,7)&&(t="["+m(h(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!a(e,"name")||u&&e.name!==t)&&(s?y(e,"name",{value:t,configurable:!0}):e.name=t),v&&r&&a(r,"arity")&&e.length!==r.arity&&y(e,"length",{value:r.arity});try{r&&a(r,"constructor")&&r.constructor?s&&y(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=f(e);return a(n,"source")||(n.source=g(b,"string"==typeof t?t:"")),e};Function.prototype.toString=A(function(){return i(this)&&p(this).source||l(this)},"toString")},7443:function(e){"use strict";var t=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var n=+e;return(n>0?r:t)(n)}},6355:function(e,t,r){"use strict";var n=r(9234),o=r(398),i=r(9707),a=r(4877),s=r(3334),u=r(791),l=r(15),c=r(6079),f=r(9213),p=Object.assign,h=Object.defineProperty,y=o([].concat);e.exports=!p||a(function(){if(n&&1!==p({b:1},p(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol("assign detection");return e[r]=7,"abcdefghijklmnopqrst".split("").forEach(function(e){t[e]=e}),7!==p({},e)[r]||"abcdefghijklmnopqrst"!==s(p({},t)).join("")})?function(e,t){for(var r=c(e),o=arguments.length,a=1,p=u.f,h=l.f;o>a;)for(var d,m=f(arguments[a++]),g=p?y(s(m),p(m)):s(m),v=g.length,b=0;v>b;)d=g[b++],n&&!i(h,m,d)||(r[d]=m[d]);return r}:p},1807:function(e,t,r){"use strict";var n=r(9234),o=r(107),i=r(4796),a=r(9809),s=r(6779),u=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor;t.f=n?i?function(e,t,r){if(a(e),t=s(t),a(r),"function"==typeof e&&"prototype"===t&&"value"in r&&"writable"in r&&!r.writable){var n=c(e,t);n&&n.writable&&(e[t]=r.value,r={configurable:"configurable"in r?r.configurable:n.configurable,enumerable:"enumerable"in r?r.enumerable:n.enumerable,writable:!1})}return l(e,t,r)}:l:function(e,t,r){if(a(e),t=s(t),a(r),o)try{return l(e,t,r)}catch(e){}if("get"in r||"set"in r)throw new u("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},1805:function(e,t,r){"use strict";var n=r(9234),o=r(9707),i=r(15),a=r(1718),s=r(1059),u=r(6779),l=r(2791),c=r(107),f=Object.getOwnPropertyDescriptor;t.f=n?f:function(e,t){if(e=s(e),t=u(t),c)try{return f(e,t)}catch(e){}if(l(e,t))return a(!o(i.f,e,t),e[t])}},3602:function(e,t,r){"use strict";var n=r(7386),o=r(1009).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},791:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},7123:function(e,t,r){"use strict";var n=r(398);e.exports=n({}.isPrototypeOf)},7386:function(e,t,r){"use strict";var n=r(398),o=r(2791),i=r(1059),a=r(7943).indexOf,s=r(8551),u=n([].push);e.exports=function(e,t){var r,n=i(e),l=0,c=[];for(r in n)!o(s,r)&&o(n,r)&&u(c,r);for(;t.length>l;)o(n,r=t[l++])&&(~a(c,r)||u(c,r));return c}},3334:function(e,t,r){"use strict";var n=r(7386),o=r(1009);e.exports=Object.keys||function(e){return n(e,o)}},15:function(e,t){"use strict";var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!r.call({1:2},1);t.f=o?function(e){var t=n(this,e);return!!t&&t.enumerable}:r},5720:function(e,t,r){"use strict";var n=r(9707),o=r(2631),i=r(6220),a=TypeError;e.exports=function(e,t){var r,s;if("string"===t&&o(r=e.toString)&&!i(s=n(r,e)))return s;if(o(r=e.valueOf)&&!i(s=n(r,e)))return s;if("string"!==t&&o(r=e.toString)&&!i(s=n(r,e)))return s;throw new a("Can't convert object to primitive value")}},7197:function(e,t,r){"use strict";var n=r(5189),o=r(398),i=r(3602),a=r(791),s=r(9809),u=o([].concat);e.exports=n("Reflect","ownKeys")||function(e){var t=i.f(s(e)),r=a.f;return r?u(t,r(e)):t}},5329:function(e,t,r){"use strict";var n=r(4638);e.exports=n},1308:function(e,t,r){"use strict";var n=r(155),o=TypeError;e.exports=function(e){if(n(e))throw new o("Can't call method on "+e);return e}},109:function(e,t,r){"use strict";var n=r(4499),o=r(606),i=n("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},4243:function(e,t,r){"use strict";var n=r(497),o=r(4638),i=r(6507),a=e.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.49.0",mode:n?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"})},4499:function(e,t,r){"use strict";var n=r(4243);e.exports=function(e,t){return n[e]||(n[e]=t||{})}},7161:function(e,t,r){"use strict";var n=r(5161),o=r(4877),i=r(4638).String;e.exports=!!Object.getOwnPropertySymbols&&!o(function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41})},7636:function(e,t,r){"use strict";var n=r(7105),o=Math.max,i=Math.min;e.exports=function(e,t){var r=n(e);return r<0?o(r+t,0):i(r,t)}},1059:function(e,t,r){"use strict";var n=r(9213),o=r(1308);e.exports=function(e){return n(o(e))}},7105:function(e,t,r){"use strict";var n=r(7443);e.exports=function(e){var t=+e;return t!=t||0===t?0:n(t)}},9800:function(e,t,r){"use strict";var n=r(7105),o=Math.min;e.exports=function(e){var t=n(e);return t>0?o(t,9007199254740991):0}},6079:function(e,t,r){"use strict";var n=r(1308),o=Object;e.exports=function(e){return o(n(e))}},8167:function(e,t,r){"use strict";var n=r(9707),o=r(6220),i=r(3443),a=r(2968),s=r(5720),u=r(7709),l=TypeError,c=u("toPrimitive");e.exports=function(e,t){if(!o(e)||i(e))return e;var r,u=a(e,c);if(u){if(void 0===t&&(t="default"),r=n(u,e,t),!o(r)||i(r))return r;throw new l("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},6779:function(e,t,r){"use strict";var n=r(8167),o=r(3443);e.exports=function(e){var t=n(e,"string");return o(t)?t:t+""}},4861:function(e){"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},606:function(e,t,r){"use strict";var n=r(398),o=0,i=Math.random(),a=n(1.1.toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},5970:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(7161);e.exports=o&&!Symbol.sham&&"symbol"==n(Symbol.iterator)},4796:function(e,t,r){"use strict";var n=r(9234),o=r(4877);e.exports=n&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},5032:function(e,t,r){"use strict";var n=r(4638),o=r(2631),i=n.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},2461:function(e,t,r){"use strict";var n=r(5329),o=r(2791),i=r(9385),a=r(1807).f;e.exports=function(e){var t=n.Symbol||(n.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},9385:function(e,t,r){"use strict";var n=r(7709);t.f=n},7709:function(e,t,r){"use strict";var n=r(4638),o=r(4499),i=r(2791),a=r(606),s=r(7161),u=r(5970),l=n.Symbol,c=o("wks"),f=u?l.for||l:l&&l.withoutSetter||a;e.exports=function(e){return i(c,e)||(c[e]=s&&i(l,e)?l[e]:f("Symbol."+e)),c[e]}},7851:function(e,t,r){"use strict";var n=r(3768),o=r(6355);n({target:"Object",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},494:function(e,t,r){"use strict";r(2461)("asyncIterator")},3712:function(e,t,r){"use strict";var n=r(9435);e.exports=n},6433:function(e,t,r){"use strict";var n=r(8142);e.exports=n}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.amdO={},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},r.dn=function(e){(Object.getOwnPropertyDescriptor(e,"name")||{}).writable||Object.defineProperty(e,"name",{value:"default",configurable:!0})},r(9784),r(961),r(2880);r(4539)}(); \ No newline at end of file + */!function(){var e={1358:function(e){!function(t){"use strict";if(t.__disableNativeFetch||!t.fetch){s.prototype.append=function(e,t){e=i(e),t=a(t);var r=this.map[e];r||(r=[],this.map[e]=r),r.push(t)},s.prototype.delete=function(e){delete this.map[i(e)]},s.prototype.get=function(e){var t=this.map[i(e)];return t?t[0]:null},s.prototype.getAll=function(e){return this.map[i(e)]||[]},s.prototype.has=function(e){return this.map.hasOwnProperty(i(e))},s.prototype.set=function(e,t){this.map[i(e)]=[a(t)]},s.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(r){this.map[r].forEach(function(n){e.call(t,n,r,this)},this)},this)};var r={blob:"FileReader"in t&&"Blob"in t&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in t,arrayBuffer:"ArrayBuffer"in t},n=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];p.prototype.clone=function(){return new p(this)},f.call(p.prototype),f.call(y.prototype),y.prototype.clone=function(){return new y(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new s(this.headers),url:this.url})},y.error=function(){var e=new y(null,{status:0,statusText:""});return e.type="error",e};var o=[301,302,303,307,308];y.redirect=function(e,t){if(-1===o.indexOf(t))throw new RangeError("Invalid status code");return new y(null,{status:t,headers:{location:e}})},t.Headers=s,t.Request=p,t.Response=y,t.fetch=function(e,t){return new Promise(function(n,o){var i;i=p.prototype.isPrototypeOf(e)&&!t?e:new p(e,t);var a=new XMLHttpRequest;var u=!1;function l(){if(4===a.readyState){var e=1223===a.status?204:a.status;if(e<100||e>599){if(u)return;return u=!0,void o(new TypeError("Network request failed"))}var t={status:e,statusText:a.statusText,headers:function(e){var t=new s;return e.getAllResponseHeaders().trim().split("\n").forEach(function(e){var r=e.trim().split(":"),n=r.shift().trim(),o=r.join(":").trim();t.append(n,o)}),t}(a),url:"responseURL"in a?a.responseURL:/^X-Request-URL:/m.test(a.getAllResponseHeaders())?a.getResponseHeader("X-Request-URL"):void 0},r="response"in a?a.response:a.responseText;u||(u=!0,n(new y(r,t)))}}a.onreadystatechange=l,a.onload=l,a.onerror=function(){u||(u=!0,o(new TypeError("Network request failed")))},a.open(i.method,i.url,!0);try{"include"===i.credentials&&("withCredentials"in a?a.withCredentials=!0:console&&console.warn&&console.warn("withCredentials is not supported, you can ignore this warning"))}catch(e){console&&console.warn&&console.warn("set withCredentials error:"+e)}"responseType"in a&&r.blob&&(a.responseType="blob"),i.headers.forEach(function(e,t){a.setRequestHeader(t,e)}),a.send(void 0===i._bodyInit?null:i._bodyInit)})},t.fetch.polyfill=!0,e.exports&&(e.exports=t.fetch)}function i(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function a(e){return"string"!=typeof e&&(e=String(e)),e}function s(e){this.map={},e instanceof s?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function u(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function l(e){return new Promise(function(t,r){e.onload=function(){t(e.result)},e.onerror=function(){r(e.error)}})}function c(e){var t=new FileReader;return t.readAsArrayBuffer(e),l(t)}function f(){return this.bodyUsed=!1,this._initBody=function(e,t){if(this._bodyInit=e,"string"==typeof e)this._bodyText=e;else if(r.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e,this._options=t;else if(r.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(e){if(!r.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e))throw new Error("unsupported BodyInit type")}else this._bodyText=""},r.blob?(this.blob=function(){var e=u(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(c)},this.text=function(){var e,t,r,n,o,i,a,s=u(this);if(s)return s;if(this._bodyBlob)return e=this._bodyBlob,t=this._options,r=new FileReader,n=t.headers.map["content-type"]?t.headers.map["content-type"].toString():"",o=/charset\=[0-9a-zA-Z\-\_]*;?/,i=e.type.match(o)||n.match(o),a=[e],i&&a.push(i[0].replace(/^charset\=/,"").replace(/;$/,"")),r.readAsText.apply(r,a),l(r);if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)}):this.text=function(){var e=u(this);return e||Promise.resolve(this._bodyText)},r.formData&&(this.formData=function(){return this.text().then(h)}),this.json=function(){return this.text().then(JSON.parse)},this}function p(e,t){var r,o,i=(t=t||{}).body;if(p.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new s(e.headers)),this.method=e.method,this.mode=e.mode,i||(i=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new s(t.headers)),this.method=(r=t.method||this.method||"GET",o=r.toUpperCase(),n.indexOf(o)>-1?o:r),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i,t)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var r=e.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");t.append(decodeURIComponent(n),decodeURIComponent(o))}}),t}function y(e,t){t||(t={}),this._initBody(e,t),this.type="default",this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof s?t.headers:new s(t.headers),this.url=t.url||""}}("undefined"!=typeof self?self:this)},3678:function(e,t){var r,n,o;n=[t,e],void 0===(o="function"==typeof(r=function(e,t){"use strict";var r={timeout:5e3,jsonpCallback:"callback",jsonpCallbackFunction:null};function n(e){try{delete window[e]}catch(t){window[e]=void 0}}function o(e){var t=document.getElementById(e);t&&document.getElementsByTagName("head")[0].removeChild(t)}t.exports=function(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],i=e,a=t.timeout||r.timeout,s=t.jsonpCallback||r.jsonpCallback,u=void 0;return new Promise(function(r,l){var c=t.jsonpCallbackFunction||"jsonp_"+Date.now()+"_"+Math.ceil(1e5*Math.random()),f=s+"_"+c;window[c]=function(e){r({ok:!0,json:function(){return Promise.resolve(e)}}),u&&clearTimeout(u),o(f),n(c)},i+=-1===i.indexOf("?")?"?":"&";var p=document.createElement("script");p.setAttribute("src",""+i+s+"="+c),t.charset&&p.setAttribute("charset",t.charset),p.id=f,document.getElementsByTagName("head")[0].appendChild(p),u=setTimeout(function(){l(new Error("JSONP request to "+e+" timed out")),n(c),o(f),window[c]=function(){n(c)}},a),p.onerror=function(){l(new Error("JSONP request to "+e+" failed")),n(c),o(f),u&&clearTimeout(u)}})}})?r.apply(t,n):r)||(e.exports=o)},8461:function(e,t,r){var n,o,i;function a(e){"@babel/helpers - typeof";return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),(i={}).Constants={},i.Math={},i.Accumulator={},function(e){"use strict";e.WGS84={a:6378137,f:1/298.257223563},e.version={major:2,minor:2,patch:0},e.version_string="2.2.0"}(i.Constants),function(e){"use strict";e.digits=53,e.epsilon=Math.pow(.5,e.digits-1),e.degree=Math.PI/180,e.sq=function(e){return e*e},e.hypot=function(e,t){return Math.sqrt(e*e+t*t)},e.cbrt=Math.cbrt||function(e){var t=Math.pow(Math.abs(e),1/3);return e>0?t:e<0?-t:e},e.log1p=Math.log1p||function(e){var t=1+e,r=t-1;return 0===r?e:e*Math.log(t)/r},e.atanh=Math.atanh||function(t){var r=Math.abs(t);return r=e.log1p(2*r/(1-r))/2,t>0?r:t<0?-r:t},e.copysign=function(e,t){return Math.abs(e)*(t<0||0===t&&1/t<0?-1:1)},e.sum=function(e,t){var r=e+t,n=r-t,o=r-n;return n-=e,{s:r,t:r?0-(n+(o-=t)):r}},e.polyval=function(e,t,r,n){for(var o=e<0?0:t[r++];--e>=0;)o=o*n+t[r++];return o},e.AngRound=function(t){var r=1/16,n=Math.abs(t);return n=n90?NaN:e},e.AngDiff=function(t,r){var n,o,i=e.sum(e.remainder(-t,360),e.remainder(r,360));return n=(i=e.sum(e.remainder(i.s,360),i.t)).s,o=i.t,0!==n&&180!==Math.abs(n)||(n=e.copysign(n,0===o?r-t:-o)),{d:n,e:o}},e.sincosd=function(t){var r,n,o,i,a,s,u;switch(r=t%360,n=(r-=90*(o=Math.round(r/90)))*this.degree,i=Math.sin(n),a=Math.cos(n),45===Math.abs(r)?(a=Math.sqrt(.5),i=e.copysign(a,n)):30===Math.abs(r)&&(a=Math.sqrt(.75),i=e.copysign(.5,n)),3&o){case 0:s=i,u=a;break;case 1:s=a,u=-i;break;case 2:s=-i,u=-a;break;default:s=-a,u=i}return u+=0,0===s&&(s=e.copysign(s,t)),{s:s,c:u}},e.sincosde=function(t,r){var n,o,i,a,s,u,l;switch(n=t%360,i=Math.round(n/90),o=(n=e.AngRound(n-90*i+r))*this.degree,a=Math.sin(o),s=Math.cos(o),45===Math.abs(n)?(s=Math.sqrt(.5),a=e.copysign(s,o)):30===Math.abs(n)&&(s=Math.sqrt(.75),a=e.copysign(.5,o)),3&i){case 0:u=a,l=s;break;case 1:u=s,l=-a;break;case 2:u=-a,l=-s;break;default:u=-s,l=a}return l+=0,0===u&&(u=e.copysign(u,t+r)),{s:u,c:l}},e.atan2d=function(t,r){var n,o=0;if(Math.abs(t)>Math.abs(r)){var i=[r,t];t=i[0],r=i[1],o=2}switch(e.copysign(1,r)<0&&(r=-r,++o),n=Math.atan2(t,r)/this.degree,o){case 1:n=e.copysign(180,t)-n;break;case 2:n=90-n;break;case 3:n=-90+n}return n}}(i.Math),function(e,t){"use strict";e.Accumulator=function(e){this.Set(e)},e.Accumulator.prototype.Set=function(t){t||(t=0),t.constructor===e.Accumulator?(this._s=t._s,this._t=t._t):(this._s=t,this._t=0)},e.Accumulator.prototype.Add=function(e){var r=t.sum(e,this._t),n=t.sum(r.s,this._s);r=r.t,this._s=n.s,this._t=n.t,0===this._s?this._s=r:this._t+=r},e.Accumulator.prototype.Sum=function(t){var r;return t?((r=new e.Accumulator(this)).Add(t),r._s):this._s},e.Accumulator.prototype.Negate=function(){this._s*=-1,this._t*=-1},e.Accumulator.prototype.Remainder=function(e){this._s=t.remainder(this._s,e),this.Add(0)}}(i.Accumulator,i.Math),i.Geodesic={},i.GeodesicLine={},i.PolygonArea={},function(e,t,r,n,o){"use strict";var i,a,s,u,l,c,f,p,h,y,d,m=20+n.digits+10,v=n.epsilon,g=200*v,b=Math.sqrt(v),A=v,w=1e3*b;e.tiny_=Math.sqrt(Number.MIN_VALUE/Number.EPSILON),e.nC1_=6,e.nC1p_=6,e.nC2_=6,e.nC3_=6,e.nC4_=6,i=e.nC3_*(e.nC3_-1)/2,a=e.nC4_*(e.nC4_+1)/2,e.CAP_C1=1,e.CAP_C1p=2,e.CAP_C2=4,e.CAP_C3=8,e.CAP_C4=16,e.NONE=0,e.ARC=64,e.LATITUDE=128,e.LONGITUDE=256|e.CAP_C3,e.AZIMUTH=512,e.DISTANCE=1024|e.CAP_C1,e.STANDARD=e.LATITUDE|e.LONGITUDE|e.AZIMUTH|e.DISTANCE,e.DISTANCE_IN=2048|e.CAP_C1|e.CAP_C1p,e.REDUCEDLENGTH=4096|e.CAP_C1|e.CAP_C2,e.GEODESICSCALE=8192|e.CAP_C1|e.CAP_C2,e.AREA=16384|e.CAP_C4,e.ALL=32671,e.LONG_UNROLL=32768,e.OUT_MASK=32640|e.LONG_UNROLL,e.SinCosSeries=function(e,t,r,n){var o=n.length,i=o-(e?1:0),a=2*(r-t)*(r+t),s=1&i?n[--o]:0,u=0;for(i=Math.floor(i/2);i--;)s=a*(u=a*s-u+n[--o])-s+n[--o];return e?2*t*r*s:r*(s-u)},s=function(e,t){var r,o,i,a,s,u,l,c,f,p,h,y,d=n.sq(e),m=n.sq(t),v=(d+m-1)/6;return 0===m&&v<=0?r=0:(u=v,(s=(o=d*m/4)*(o+2*(a=v*(i=n.sq(v)))))>=0?(l=o+a,l+=l<0?-Math.sqrt(s):Math.sqrt(s),u+=(c=n.cbrt(l))+(0!==c?i/c:0)):(f=Math.atan2(Math.sqrt(-s),-(o+a)),u+=2*v*Math.cos(f/3)),p=Math.sqrt(n.sq(u)+m),y=((h=u<0?m/(p-u):u+p)-m)/(2*p),r=h/(Math.sqrt(h+n.sq(y))+y)),r},u=[1,4,64,0,256],e.A1m1f=function(e){var t=Math.floor(3);return(n.polyval(t,u,0,n.sq(e))/u[t+1]+e)/(1-e)},l=[-1,6,-16,32,-9,64,-128,2048,9,-16,768,3,-5,512,-7,1280,-7,2048],e.C1f=function(t,r){var o,i,a=n.sq(t),s=t,u=0;for(o=1;o<=e.nC1_;++o)i=Math.floor((e.nC1_-o)/2),r[o]=s*n.polyval(i,l,u,a)/l[u+i+1],u+=i+2,s*=t},c=[205,-432,768,1536,4005,-4736,3840,12288,-225,116,384,-7173,2695,7680,3467,7680,38081,61440],e.C1pf=function(t,r){var o,i,a=n.sq(t),s=t,u=0;for(o=1;o<=e.nC1p_;++o)i=Math.floor((e.nC1p_-o)/2),r[o]=s*n.polyval(i,c,u,a)/c[u+i+1],u+=i+2,s*=t},f=[-11,-28,-192,0,256],e.A2m1f=function(e){var t=Math.floor(3);return(n.polyval(t,f,0,n.sq(e))/f[t+1]-e)/(1+e)},p=[1,2,16,32,35,64,384,2048,15,80,768,7,35,512,63,1280,77,2048],e.C2f=function(t,r){var o,i,a=n.sq(t),s=t,u=0;for(o=1;o<=e.nC2_;++o)i=Math.floor((e.nC2_-o)/2),r[o]=s*n.polyval(i,p,u,a)/p[u+i+1],u+=i+2,s*=t},e.Geodesic=function(e,t){if(this.a=e,this.f=t,this._f1=1-this.f,this._e2=this.f*(2-this.f),this._ep2=this._e2/n.sq(this._f1),this._n=this.f/(2-this.f),this._b=this.a*this._f1,this._c2=(n.sq(this.a)+n.sq(this._b)*(0===this._e2?1:(this._e2>0?n.atanh(Math.sqrt(this._e2)):Math.atan(Math.sqrt(-this._e2)))/Math.sqrt(Math.abs(this._e2))))/2,this._etol2=.1*b/Math.sqrt(Math.max(.001,Math.abs(this.f))*Math.min(1,1-this.f/2)/2),!(isFinite(this.a)&&this.a>0))throw new Error("Equatorial radius is not positive");if(!(isFinite(this._b)&&this._b>0))throw new Error("Polar semi-axis is not positive");this._A3x=new Array(6),this._C3x=new Array(i),this._C4x=new Array(a),this.A3coeff(),this.C3coeff(),this.C4coeff()},h=[-3,128,-2,-3,64,-1,-3,-1,16,3,-1,-2,8,1,-1,2,1,1],e.Geodesic.prototype.A3coeff=function(){var e,t,r=0,o=0;for(e=5;e>=0;--e)t=Math.min(6-e-1,e),this._A3x[o++]=n.polyval(t,h,r,this._n)/h[r+t+1],r+=t+2},y=[3,128,2,5,128,-1,3,3,64,-1,0,1,8,-1,1,4,5,256,1,3,128,-3,-2,3,64,1,-3,2,32,7,512,-10,9,384,5,-9,5,192,7,512,-14,7,512,21,2560],e.Geodesic.prototype.C3coeff=function(){var t,r,o,i=0,a=0;for(t=1;t=t;--r)o=Math.min(e.nC3_-r-1,r),this._C3x[a++]=n.polyval(o,y,i,this._n)/y[i+o+1],i+=o+2},d=[97,15015,1088,156,45045,-224,-4784,1573,45045,-10656,14144,-4576,-858,45045,64,624,-4576,6864,-3003,15015,100,208,572,3432,-12012,30030,45045,1,9009,-2944,468,135135,5792,1040,-1287,135135,5952,-11648,9152,-2574,135135,-64,-624,4576,-6864,3003,135135,8,10725,1856,-936,225225,-8448,4992,-1144,225225,-1440,4160,-4576,1716,225225,-136,63063,1024,-208,105105,3584,-3328,1144,315315,-128,135135,-2560,832,405405,128,99099],e.Geodesic.prototype.C4coeff=function(){var t,r,o,i=0,a=0;for(t=0;t=t;--r)o=e.nC4_-r-1,this._C4x[a++]=n.polyval(o,d,i,this._n)/d[i+o+1],i+=o+2},e.Geodesic.prototype.A3f=function(e){return n.polyval(5,this._A3x,0,e)},e.Geodesic.prototype.C3f=function(t,r){var o,i,a=1,s=0;for(o=1;o=0&&R<.5&&a*l<.5)?(v=n.sq(t+i),v/=v+n.sq(r+a),L.dnm=Math.sqrt(1+this._ep2*v),m=l/(this._f1*L.dnm),b=Math.sin(m),A=Math.cos(m)):(b=c,A=f),L.salp1=a*b,L.calp1=A>=0?R+a*t*n.sq(b)/(1+A):y-a*t*n.sq(b)/(1-A),C=n.hypot(L.salp1,L.calp1),E=t*i+r*a*A,d&&C=0?n.sq(b)/(1+A):1-A),S=n.hypot(L.salp2,L.calp2),L.salp2/=S,L.calp2/=S,L.sig12=Math.atan2(C,E)):Math.abs(this._n)>.1||E>=0||C>=6*Math.abs(this._n)*Math.PI*n.sq(r)||(B=Math.atan2(-c,-f),this.f>=0?(k=(O=n.sq(t)*this._ep2)/(2*(1+Math.sqrt(1+O))+O),x=B/(I=this.f*r*this.A3f(k)*Math.PI),_=y/(I*r)):(P=a*r-i*t,T=Math.atan2(y,P),_=l/(I=((x=(j=this.Lengths(this._n,Math.PI+T,t,-r,o,i,a,u,r,a,e.REDUCEDLENGTH,p,h)).m12b/(r*a*j.m0*Math.PI)-1)<-.01?y/x:-this.f*n.sq(r)*Math.PI)/r)),_>-g&&x>-1-w?this.f>=0?(L.salp1=Math.min(1,-x),L.calp1=-Math.sqrt(1-n.sq(L.salp1))):(L.calp1=Math.max(x>-g?0:-1,x),L.salp1=Math.sqrt(1-n.sq(L.calp1))):(M=s(x,_),N=I*(this.f>=0?-x*M/(1+M):-_*(1+M)/M),b=Math.sin(N),A=-Math.cos(N),L.salp1=a*b,L.calp1=y-a*t*n.sq(b)/(1-A))),L.salp1<=0?(L.salp1=1,L.calp1=0):(S=n.hypot(L.salp1,L.calp1),L.salp1/=S,L.calp1/=S),L},e.Geodesic.prototype.Lambda12=function(t,r,o,i,a,s,u,l,c,f,p,h,y,d){var m,v,g,b,A,w,S,C,E,x,_,I,O,k={};return 0===t&&0===l&&(l=-e.tiny_),v=u*r,g=n.hypot(l,u*t),k.ssig1=t,b=v*t,k.csig1=A=l*r,m=n.hypot(k.ssig1,k.csig1),k.ssig1/=m,k.csig1/=m,k.salp2=a!==r?v/a:u,k.calp2=a!==r||Math.abs(i)!==-t?Math.sqrt(n.sq(l*r)+(r<-t?(a-r)*(r+a):(t-i)*(t+i)))/a:Math.abs(l),k.ssig2=i,w=v*i,k.csig2=S=k.calp2*a,m=n.hypot(k.ssig2,k.csig2),k.ssig2/=m,k.csig2/=m,k.sig12=Math.atan2(Math.max(0,k.csig1*k.ssig2-k.ssig1*k.csig2),k.csig1*k.csig2+k.ssig1*k.ssig2),C=Math.max(0,A*w-b*S),E=A*S+b*w,_=Math.atan2(C*f-E*c,E*f+C*c),I=n.sq(g)*this._ep2,k.eps=I/(2*(1+Math.sqrt(1+I))+I),this.C3f(k.eps,d),x=e.SinCosSeries(!0,k.ssig2,k.csig2,d)-e.SinCosSeries(!0,k.ssig1,k.csig1,d),k.domg12=-this.f*this.A3f(k.eps)*v*(k.sig12+x),k.lam12=_+k.domg12,p&&(0===k.calp2?k.dlam12=-2*this._f1*o/t:(O=this.Lengths(k.eps,k.sig12,k.ssig1,k.csig1,o,k.ssig2,k.csig2,s,r,a,e.REDUCEDLENGTH,h,y),k.dlam12=O.m12b,k.dlam12*=this._f1/(k.calp2*a))),k},e.Geodesic.prototype.Inverse=function(t,r,o,i,a){var s,u;return a||(a=e.STANDARD),a===e.LONG_UNROLL&&(a|=e.STANDARD),a&=e.OUT_MASK,u=(s=this.InverseInt(t,r,o,i,a)).vals,a&e.AZIMUTH&&(u.azi1=n.atan2d(s.salp1,s.calp1),u.azi2=n.atan2d(s.salp2,s.calp2)),u},e.Geodesic.prototype.InverseInt=function(t,r,o,i,a){var s,u,l,c,f,p,h,y,d,g,w,S,C,E,x,_,I,O,k,P,T,j,M,N,B,L,R,D,F,Q,G,U,z,H,q,V,K,Y,W,J,X,Z,$,ee,te,re,ne,oe,ie,ae,se,ue,le,ce,fe,pe,he,ye,de,me,ve,ge,be,Ae,we,Se={};if(Se.lat1=t=n.LatFix(t),Se.lat2=o=n.LatFix(o),t=n.AngRound(t),o=n.AngRound(o),u=(s=n.AngDiff(r,i)).e,s=s.d,a&e.LONG_UNROLL?(Se.lon1=r,Se.lon2=r+s+u):(Se.lon1=n.AngNormalize(r),Se.lon2=n.AngNormalize(i)),u*=l=n.copysign(1,s),x=(s*=l)*n.degree,_=(c=n.sincosde(s,u)).s,I=c.c,u=180-s-u,(f=Math.abs(t)=0?((O<3*e.tiny_||O=180*this.f))k=T=0,P=j=1,w=this.a*x,O=z=x/this._f1,S=this._b*Math.sin(O),a&e.GEODESICSCALE&&(Se.M12=Se.M21=Math.cos(O)),Se.a12=s/this._f1;else if(!L)if(O=(R=this.InverseStart(h,y,C,d,g,E,x,_,I,M,N)).sig12,P=R.salp1,k=R.calp1,O>=0)j=R.salp2,T=R.calp2,H=R.dnm,w=O*this._b*H,S=n.sq(H)*this._b*Math.sin(O/H),a&e.GEODESICSCALE&&(Se.M12=Se.M21=Math.cos(O/H)),Se.a12=O/n.degree,z=x/(this._f1*H);else{for(q=0,V=e.tiny_,K=1,Y=e.tiny_,W=-1,J=!1,X=!1;Z=(R=this.Lambda12(h,y,C,d,g,E,P,k,_,I,q<20,M,N,B)).lam12,j=R.salp2,T=R.calp2,O=R.sig12,D=R.ssig1,F=R.csig1,Q=R.ssig2,G=R.csig2,U=R.eps,de=R.domg12,$=R.dlam12,!X&&Math.abs(Z)>=(J?8:1)*v&&q!=m;++q)Z>0&&(q<20||k/P>W/Y)?(Y=P,W=k):Z<0&&(q<20||k/P0&&(ee=-Z/$,Math.abs(ee)0))?(k=k*re-P*te,P=ne,P/=c=n.hypot(P,k),k/=c,J=Math.abs(Z)<=16*v):(P=(V+Y)/2,k=(K+W)/2,P/=c=n.hypot(P,k),k/=c,J=!1,X=Math.abs(V-P)+(K-k)-.7071&&d-h<1.75?(de=1+ye,me=1+y,ve=1+g,se=2*Math.atan2(he*(h*ve+d*me),de*(h*d+me*ve))):(be=T*k+j*P,0==(ge=j*k-T*P)&&be<0&&(ge=e.tiny_*k,be=-1),se=Math.atan2(ge,be)),Se.S12+=this._c2*se,Se.S12*=f*l*p,Se.S12+=0),f<0){var Ee=[P,j];j=Ee[0],P=Ee[1];var xe=[k,T];if(T=xe[0],k=xe[1],a&e.GEODESICSCALE){var _e=[Se.M12,Se.M21];Se.M21=_e[0],Se.M12=_e[1]}}return{vals:Se,salp1:P*=f*l,calp1:k*=f*p,salp2:j*=f*l,calp2:T*=f*p}},e.Geodesic.prototype.GenDirect=function(r,n,o,i,a,s){return s?s===e.LONG_UNROLL&&(s|=e.STANDARD):s=e.STANDARD,i||(s|=e.DISTANCE_IN),new t.GeodesicLine(this,r,n,o,s).GenPosition(i,a,s)},e.Geodesic.prototype.Direct=function(e,t,r,n,o){return this.GenDirect(e,t,r,!1,n,o)},e.Geodesic.prototype.ArcDirect=function(e,t,r,n,o){return this.GenDirect(e,t,r,!0,n,o)},e.Geodesic.prototype.Line=function(e,r,n,o){return new t.GeodesicLine(this,e,r,n,o)},e.Geodesic.prototype.DirectLine=function(e,t,r,n,o){return this.GenDirectLine(e,t,r,!1,n,o)},e.Geodesic.prototype.ArcDirectLine=function(e,t,r,n,o){return this.GenDirectLine(e,t,r,!0,n,o)},e.Geodesic.prototype.GenDirectLine=function(r,n,o,i,a,s){var u;return s||(s=e.STANDARD|e.DISTANCE_IN),i||(s|=e.DISTANCE_IN),(u=new t.GeodesicLine(this,r,n,o,s)).GenSetDistance(i,a),u},e.Geodesic.prototype.InverseLine=function(r,o,i,a,s){var u,l,c;return s||(s=e.STANDARD|e.DISTANCE_IN),u=this.InverseInt(r,o,i,a,e.ARC),c=n.atan2d(u.salp1,u.calp1),s&e.OUT_MASK&e.DISTANCE_IN&&(s|=e.DISTANCE),(l=new t.GeodesicLine(this,r,o,c,s,u.salp1,u.calp1)).SetArc(u.vals.a12),l},e.Geodesic.prototype.Polygon=function(e){return new r.PolygonArea(this,e)},e.WGS84=new e.Geodesic(o.WGS84.a,o.WGS84.f)}(i.Geodesic,i.GeodesicLine,i.PolygonArea,i.Math,i.Constants),function(e,t,r){"use strict";t.GeodesicLine=function(t,n,o,i,a,s,u){var l,c,f,p,h,y;a||(a=e.STANDARD|e.DISTANCE_IN),this.a=t.a,this.f=t.f,this._b=t._b,this._c2=t._c2,this._f1=t._f1,this.caps=a|e.LATITUDE|e.AZIMUTH|e.LONG_UNROLL,this.lat1=r.LatFix(n),this.lon1=o,void 0===s||void 0===u?(this.azi1=r.AngNormalize(i),l=r.sincosd(r.AngRound(this.azi1)),this.salp1=l.s,this.calp1=l.c):(this.azi1=i,this.salp1=s,this.calp1=u),l=r.sincosd(r.AngRound(this.lat1)),f=this._f1*l.s,c=l.c,f/=l=r.hypot(f,c),c/=l,c=Math.max(e.tiny_,c),this._dn1=Math.sqrt(1+t._ep2*r.sq(f)),this._salp0=this.salp1*c,this._calp0=r.hypot(this.calp1,this.salp1*f),this._ssig1=f,this._somg1=this._salp0*f,this._csig1=this._comg1=0!==f||0!==this.calp1?c*this.calp1:1,l=r.hypot(this._ssig1,this._csig1),this._ssig1/=l,this._csig1/=l,this._k2=r.sq(this._calp0)*t._ep2,p=this._k2/(2*(1+Math.sqrt(1+this._k2))+this._k2),this.caps&e.CAP_C1&&(this._A1m1=e.A1m1f(p),this._C1a=new Array(e.nC1_+1),e.C1f(p,this._C1a),this._B11=e.SinCosSeries(!0,this._ssig1,this._csig1,this._C1a),h=Math.sin(this._B11),y=Math.cos(this._B11),this._stau1=this._ssig1*y+this._csig1*h,this._ctau1=this._csig1*y-this._ssig1*h),this.caps&e.CAP_C1p&&(this._C1pa=new Array(e.nC1p_+1),e.C1pf(p,this._C1pa)),this.caps&e.CAP_C2&&(this._A2m1=e.A2m1f(p),this._C2a=new Array(e.nC2_+1),e.C2f(p,this._C2a),this._B21=e.SinCosSeries(!0,this._ssig1,this._csig1,this._C2a)),this.caps&e.CAP_C3&&(this._C3a=new Array(e.nC3_),t.C3f(p,this._C3a),this._A3c=-this.f*this._salp0*t.A3f(p),this._B31=e.SinCosSeries(!0,this._ssig1,this._csig1,this._C3a)),this.caps&e.CAP_C4&&(this._C4a=new Array(e.nC4_),t.C4f(p,this._C4a),this._A4=r.sq(this.a)*this._calp0*this._salp0*t._e2,this._B41=e.SinCosSeries(!1,this._ssig1,this._csig1,this._C4a)),this.a13=this.s13=NaN},t.GeodesicLine.prototype.GenPosition=function(t,n,o){var i,a,s,u,l,c,f,p,h,y,d,m,v,g,b,A,w,S,C,E,x,_,I,O,k,P,T={};return o?o===e.LONG_UNROLL&&(o|=e.STANDARD):o=e.STANDARD,o&=this.caps&e.OUT_MASK,T.lat1=this.lat1,T.azi1=this.azi1,T.lon1=o&e.LONG_UNROLL?this.lon1:r.AngNormalize(this.lon1),t?T.a12=n:T.s12=n,t||this.caps&e.DISTANCE_IN&e.OUT_MASK?(u=0,l=0,t?(i=n*r.degree,a=(I=r.sincosd(n)).s,s=I.c):(p=n/(this._b*(1+this._A1m1)),h=Math.sin(p),y=Math.cos(p),i=p-((u=-e.SinCosSeries(!0,this._stau1*y+this._ctau1*h,this._ctau1*y-this._stau1*h,this._C1pa))-this._B11),a=Math.sin(i),s=Math.cos(i),Math.abs(this.f)>.01&&(c=this._ssig1*s+this._csig1*a,f=this._csig1*s-this._ssig1*a,u=e.SinCosSeries(!0,c,f,this._C1a),i-=((1+this._A1m1)*(i+(u-this._B11))-n/this._b)/Math.sqrt(1+this._k2*r.sq(c)),a=Math.sin(i),s=Math.cos(i))),c=this._ssig1*s+this._csig1*a,f=this._csig1*s-this._ssig1*a,C=Math.sqrt(1+this._k2*r.sq(c)),o&(e.DISTANCE|e.REDUCEDLENGTH|e.GEODESICSCALE)&&((t||Math.abs(this.f)>.01)&&(u=e.SinCosSeries(!0,c,f,this._C1a)),l=(1+this._A1m1)*(u-this._B11)),v=this._calp0*c,0===(g=r.hypot(this._salp0,this._calp0*f))&&(g=f=e.tiny_),w=this._salp0,S=this._calp0*f,t&&o&e.DISTANCE&&(T.s12=this._b*((1+this._A1m1)*i+l)),o&e.LONGITUDE&&(b=this._salp0*c,A=f,m=r.copysign(1,this._salp0),d=((o&e.LONG_UNROLL?m*(i-(Math.atan2(c,f)-Math.atan2(this._ssig1,this._csig1))+(Math.atan2(m*b,A)-Math.atan2(m*this._somg1,this._comg1))):Math.atan2(b*this._comg1-A*this._somg1,A*this._comg1+b*this._somg1))+this._A3c*(i+(e.SinCosSeries(!0,c,f,this._C3a)-this._B31)))/r.degree,T.lon2=o&e.LONG_UNROLL?this.lon1+d:r.AngNormalize(r.AngNormalize(this.lon1)+r.AngNormalize(d))),o&e.LATITUDE&&(T.lat2=r.atan2d(v,this._f1*g)),o&e.AZIMUTH&&(T.azi2=r.atan2d(w,S)),o&(e.REDUCEDLENGTH|e.GEODESICSCALE)&&(E=e.SinCosSeries(!0,c,f,this._C2a),x=(1+this._A2m1)*(E-this._B21),_=(this._A1m1-this._A2m1)*i+(l-x),o&e.REDUCEDLENGTH&&(T.m12=this._b*(C*(this._csig1*c)-this._dn1*(this._ssig1*f)-this._csig1*f*_)),o&e.GEODESICSCALE&&(I=this._k2*(c-this._ssig1)*(c+this._ssig1)/(this._dn1+C),T.M12=s+(I*c-f*_)*this._ssig1/this._dn1,T.M21=s-(I*this._ssig1-this._csig1*_)*c/C)),o&e.AREA&&(O=e.SinCosSeries(!1,c,f,this._C4a),0===this._calp0||0===this._salp0?(k=w*this.calp1-S*this.salp1,P=S*this.calp1+w*this.salp1):(k=this._calp0*this._salp0*(s<=0?this._csig1*(1-s)+a*this._ssig1:a*(this._csig1*a/(1+s)+this._ssig1)),P=r.sq(this._salp0)+r.sq(this._calp0)*this._csig1*f),T.S12=this._c2*Math.atan2(k,P)+this._A4*(O-this._B41)),t||(T.a12=i/r.degree),T):(T.a12=NaN,T)},t.GeodesicLine.prototype.Position=function(e,t){return this.GenPosition(!1,e,t)},t.GeodesicLine.prototype.ArcPosition=function(e,t){return this.GenPosition(!0,e,t)},t.GeodesicLine.prototype.GenSetDistance=function(e,t){e?this.SetArc(t):this.SetDistance(t)},t.GeodesicLine.prototype.SetDistance=function(t){var r;this.s13=t,r=this.GenPosition(!1,this.s13,e.ARC),this.a13=0+r.a12},t.GeodesicLine.prototype.SetArc=function(t){var r;this.a13=t,r=this.GenPosition(!0,this.a13,e.DISTANCE),this.s13=0+r.s12}}(i.Geodesic,i.GeodesicLine,i.Math),function(e,t,r,n){"use strict";var o,i,a,s;o=function(e,t){var n=r.AngDiff(e,t).d;return e=r.AngNormalize(e),t=r.AngNormalize(t),n>0&&(e<0&&t>=0||e>0&&0===t)?1:n<0&&e>=0&&t<0?-1:0},i=function(e,t){return e%=720,(0<=(t%=720)&&t<360||t<-360?0:1)-(0<=e&&e<360||e<-360?0:1)},a=function(e,t,r,n,o){return e.Remainder(t),1&r&&e.Add((e.Sum()<0?1:-1)*t/2),n||e.Negate(),o?e.Sum()>t/2?e.Add(-t):e.Sum()<=-t/2&&e.Add(+t):e.Sum()>=t?e.Add(-t):e.Sum()<0&&e.Add(+t),0+e.Sum()},s=function(e,t,n,o,i){return e=r.remainder(e,t),1&n&&(e+=(e<0?1:-1)*t/2),o||(e*=-1),i?e>t/2?e-=t:e<=-t/2&&(e+=t):e>=t?e-=t:e<0&&(e+=t),0+e},e.PolygonArea=function(e,r){this._geod=e,this.a=this._geod.a,this.f=this._geod.f,this._area0=4*Math.PI*e._c2,this.polyline=r||!1,this._mask=t.LATITUDE|t.LONGITUDE|t.DISTANCE|(this.polyline?t.NONE:t.AREA|t.LONG_UNROLL),this.polyline||(this._areasum=new n.Accumulator(0)),this._perimetersum=new n.Accumulator(0),this.Clear()},e.PolygonArea.prototype.Clear=function(){this.num=0,this._crossings=0,this.polyline||this._areasum.Set(0),this._perimetersum.Set(0),this._lat0=this._lon0=this.lat=this.lon=NaN},e.PolygonArea.prototype.AddPoint=function(e,t){var r;0===this.num?(this._lat0=this.lat=e,this._lon0=this.lon=t):(r=this._geod.Inverse(this.lat,this.lon,e,t,this._mask),this._perimetersum.Add(r.s12),this.polyline||(this._areasum.Add(r.S12),this._crossings+=o(this.lon,t)),this.lat=e,this.lon=t),++this.num},e.PolygonArea.prototype.AddEdge=function(e,t){var r;this.num&&(r=this._geod.Direct(this.lat,this.lon,e,t,this._mask),this._perimetersum.Add(t),this.polyline||(this._areasum.Add(r.S12),this._crossings+=i(this.lon,r.lon2)),this.lat=r.lat2,this.lon=r.lon2),++this.num},e.PolygonArea.prototype.Compute=function(e,t){var r,i,s={number:this.num};return this.num<2?(s.perimeter=0,this.polyline||(s.area=0),s):this.polyline?(s.perimeter=this._perimetersum.Sum(),s):(r=this._geod.Inverse(this.lat,this.lon,this._lat0,this._lon0,this._mask),s.perimeter=this._perimetersum.Sum(r.s12),(i=new n.Accumulator(this._areasum)).Add(r.S12),s.area=a(i,this._area0,this._crossings+o(this.lon,this._lon0),e,t),s)},e.PolygonArea.prototype.TestPoint=function(e,t,r,n){var i,a,u,l,c={number:this.num+1};if(0===this.num)return c.perimeter=0,this.polyline||(c.area=0),c;for(c.perimeter=this._perimetersum.Sum(),a=this.polyline?0:this._areasum.Sum(),u=this._crossings,l=0;l<(this.polyline?1:2);++l)i=this._geod.Inverse(0===l?this.lat:e,0===l?this.lon:t,0!==l?this._lat0:e,0!==l?this._lon0:t,this._mask),c.perimeter+=i.s12,this.polyline||(a+=i.S12,u+=o(0===l?this.lon:t,0!==l?this._lon0:t));return this.polyline?c:(c.area=s(a,this._area0,u,r,n),c)},e.PolygonArea.prototype.TestEdge=function(e,t,r,n){var a,u,l,c={number:this.num?this.num+1:0};return 0===this.num?c:(c.perimeter=this._perimetersum.Sum()+t,this.polyline?c:(u=this._areasum.Sum(),l=this._crossings,u+=(a=this._geod.Direct(this.lat,this.lon,e,t,this._mask)).S12,l+=i(this.lon,a.lon2),l+=o(a.lon2,this._lon0),a=this._geod.Inverse(a.lat2,a.lon2,this._lat0,this._lon0,this._mask),c.perimeter+=a.s12,u+=a.S12,c.area=s(u,this._area0,l,r,n),c))}}(i.PolygonArea,i.Geodesic,i.Math,i.Accumulator),o=i,"object"===a(e)&&e.exports?e.exports=o:void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)},3448:function(e){var t=[],r=[],n="insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).";function o(e,o){if(o=o||{},void 0===e)throw new Error(n);var i,a=!0===o.prepend?"prepend":"append",s=void 0!==o.container?o.container:document.querySelector("head"),u=t.indexOf(s);return-1===u&&(u=t.push(s)-1,r[u]={}),void 0!==r[u]&&void 0!==r[u][a]?i=r[u][a]:(i=r[u][a]=function(){var e=document.createElement("style");return e.setAttribute("type","text/css"),e}(),"prepend"===a?s.insertBefore(i,s.childNodes[0]):s.appendChild(i)),65279===e.charCodeAt(0)&&(e=e.substr(1,e.length)),i.styleSheet?i.styleSheet.cssText+=e:i.textContent+=e,i}e.exports=o,e.exports.insertCss=o},5611:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e);var o=200,i="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",u="[object Boolean]",l="[object Date]",c="[object Function]",f="[object GeneratorFunction]",p="[object Map]",h="[object Number]",y="[object Object]",d="[object RegExp]",m="[object Set]",v="[object String]",g="[object Symbol]",b="[object ArrayBuffer]",A="[object DataView]",w="[object Float32Array]",S="[object Float64Array]",C="[object Int8Array]",E="[object Int16Array]",x="[object Int32Array]",_="[object Uint8Array]",I="[object Uint8ClampedArray]",O="[object Uint16Array]",k="[object Uint32Array]",P=/\w*$/,T=/^\[object .+?Constructor\]$/,j=/^(?:0|[1-9]\d*)$/,M={};M[s]=M["[object Array]"]=M[b]=M[A]=M[u]=M[l]=M[w]=M[S]=M[C]=M[E]=M[x]=M[p]=M[h]=M[y]=M[d]=M[m]=M[v]=M[g]=M[_]=M[I]=M[O]=M[k]=!0,M["[object Error]"]=M[c]=M["[object WeakMap]"]=!1;var N="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,B="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,L=N||B||Function("return this")(),R="object"==n(t)&&t&&!t.nodeType&&t,D=R&&"object"==n(e)&&e&&!e.nodeType&&e,F=D&&D.exports===R;function Q(e,t){return e.set(t[0],t[1]),e}function G(e,t){return e.add(t),e}function U(e,t,r,n){var o=-1,i=e?e.length:0;for(n&&i&&(r=e[++o]);++o-1},Ie.prototype.set=function(e,t){var r=this.__data__,n=je(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},Oe.prototype.clear=function(){this.__data__={hash:new _e,map:new(ye||Ie),string:new _e}},Oe.prototype.delete=function(e){return Re(this,e).delete(e)},Oe.prototype.get=function(e){return Re(this,e).get(e)},Oe.prototype.has=function(e){return Re(this,e).has(e)},Oe.prototype.set=function(e,t){return Re(this,e).set(e,t),this},ke.prototype.clear=function(){this.__data__=new Ie},ke.prototype.delete=function(e){return this.__data__.delete(e)},ke.prototype.get=function(e){return this.__data__.get(e)},ke.prototype.has=function(e){return this.__data__.has(e)},ke.prototype.set=function(e,t){var r=this.__data__;if(r instanceof Ie){var n=r.__data__;if(!ye||n.length-1&&e%1==0&&e-1&&e%1==0&&e<=a}(e.length)&&!Ye(e)}var Ke=fe||function(){return!1};function Ye(e){var t=We(e)?te.call(e):"";return t==c||t==f}function We(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function Je(e){return Ve(e)?Pe(e):function(e){if(!Ue(e))return pe(e);var t=[];for(var r in Object(e))ee.call(e,r)&&"constructor"!=r&&t.push(r);return t}(e)}e.exports=function(e){return Me(e,!0,!0)}},1855:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o="Expected a function",i=NaN,a="[object Symbol]",s=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt,p="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,h="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,y=p||h||Function("return this")(),d=Object.prototype.toString,m=Math.max,v=Math.min,g=function(){return y.Date.now()};function b(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function A(e){return"symbol"==n(e)||function(e){return!!e&&"object"==n(e)}(e)&&d.call(e)==a}function w(e){if("number"==typeof e)return e;if(A(e))return i;if(b(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=b(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var r=l.test(e);return r||c.test(e)?f(e.slice(2),r?2:8):u.test(e)?i:+e}e.exports=function(e,t,r){var n,i,a,s,u,l,c=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(o);function y(t){var r=n,o=i;return n=i=void 0,c=t,s=e.apply(o,r)}function d(e){var r=e-l;return void 0===l||r>=t||r<0||p&&e-c>=a}function A(){var e=g();if(d(e))return S(e);u=setTimeout(A,function(e){var r=t-(e-l);return p?v(r,a-(e-c)):r}(e))}function S(e){return u=void 0,h&&n?y(e):(n=i=void 0,s)}function C(){var e=g(),r=d(e);if(n=arguments,i=this,l=e,r){if(void 0===u)return function(e){return c=e,u=setTimeout(A,t),f?y(e):s}(l);if(p)return u=setTimeout(A,t),y(l)}return void 0===u&&(u=setTimeout(A,t)),s}return t=w(t)||0,b(r)&&(f=!!r.leading,a=(p="maxWait"in r)?m(w(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h),C.cancel=function(){void 0!==u&&clearTimeout(u),c=0,n=l=i=u=void 0},C.flush=function(){return void 0===u?s:S(g())},C}},311:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=200,i="__lodash_hash_undefined__",a=9007199254740991,s="[object Arguments]",u="[object Function]",l="[object GeneratorFunction]",c=/^\[object .+?Constructor\]$/,f="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,p="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,h=f||p||Function("return this")();function y(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var o=e.length,i=r+(n?1:-1);for(;n?i--:++i-1}function d(e,t,r){for(var n=-1,o=e?e.length:0;++n=o&&(s=g,u=!1,t=new F(t));e:for(;++a-1},R.prototype.set=function(e,t){var r=this.__data__,n=Q(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},D.prototype.clear=function(){this.__data__={hash:new L,map:new(N||R),string:new L}},D.prototype.delete=function(e){return z(this,e).delete(e)},D.prototype.get=function(e){return z(this,e).get(e)},D.prototype.has=function(e){return z(this,e).has(e)},D.prototype.set=function(e,t){return z(this,e).set(e,t),this},F.prototype.add=F.prototype.push=function(e){return this.__data__.set(e,i),this},F.prototype.has=function(e){return this.__data__.has(e)};var V,K,Y=(V=function(e,t){return X(e)?G(e,function e(t,r,n,o,i){var a=-1,s=t.length;for(n||(n=q),i||(i=[]);++a0&&n(u)?r>1?e(u,r-1,n,o,i):m(i,u):o||(i[i.length]=u)}return i}(t,1,X,!0)):[]},K=M(void 0===K?V.length-1:K,0),function(){for(var e=arguments,t=-1,r=M(e.length-K,0),n=Array(r);++t-1&&e%1==0&&e<=a}(e.length)&&!Z(e)}function X(e){return function(e){return!!e&&"object"==n(e)}(e)&&J(e)}function Z(e){var t=$(e)?I.call(e):"";return t==u||t==l}function $(e){var t=n(e);return!!e&&("object"==t||"function"==t)}e.exports=Y},8676:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o="Expected a function",i=NaN,a="[object Symbol]",s=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt,p="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,h="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,y=p||h||Function("return this")(),d=Object.prototype.toString,m=Math.max,v=Math.min,g=function(){return y.Date.now()};function b(e,t,r){var n,i,a,s,u,l,c=0,f=!1,p=!1,h=!0;if("function"!=typeof e)throw new TypeError(o);function y(t){var r=n,o=i;return n=i=void 0,c=t,s=e.apply(o,r)}function d(e){var r=e-l;return void 0===l||r>=t||r<0||p&&e-c>=a}function b(){var e=g();if(d(e))return w(e);u=setTimeout(b,function(e){var r=t-(e-l);return p?v(r,a-(e-c)):r}(e))}function w(e){return u=void 0,h&&n?y(e):(n=i=void 0,s)}function C(){var e=g(),r=d(e);if(n=arguments,i=this,l=e,r){if(void 0===u)return function(e){return c=e,u=setTimeout(b,t),f?y(e):s}(l);if(p)return u=setTimeout(b,t),y(l)}return void 0===u&&(u=setTimeout(b,t)),s}return t=S(t)||0,A(r)&&(f=!!r.leading,a=(p="maxWait"in r)?m(S(r.maxWait)||0,t):a,h="trailing"in r?!!r.trailing:h),C.cancel=function(){void 0!==u&&clearTimeout(u),c=0,n=l=i=u=void 0},C.flush=function(){return void 0===u?s:w(g())},C}function A(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function w(e){return"symbol"==n(e)||function(e){return!!e&&"object"==n(e)}(e)&&d.call(e)==a}function S(e){if("number"==typeof e)return e;if(w(e))return i;if(A(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=A(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var r=l.test(e);return r||c.test(e)?f(e.slice(2),r?2:8):u.test(e)?i:+e}e.exports=function(e,t,r){var n=!0,i=!0;if("function"!=typeof e)throw new TypeError(o);return A(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),b(e,t,{leading:n,maxWait:t,trailing:i})}},8518:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=9007199254740991,i="[object Arguments]",a="[object Function]",s="[object GeneratorFunction]",u="[object Map]",l="[object Set]",c=/^\[object .+?Constructor\]$/,f=/^(?:0|[1-9]\d*)$/,p="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,h="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,y=p||h||Function("return this")();function d(e,t){return function(e,t){for(var r=-1,n=e?e.length:0,o=Array(n);++r-1&&e%1==0&&e-1&&e%1==0&&e<=o}(e.length)&&!Y(e)}function Y(e){var t=W(e)?x.call(e):"";return t==a||t==s}function W(e){var t=n(e);return!!e&&("object"==t||"function"==t)}var J,X=(J=function(e){return K(e)?F(e):G(e)},function(e){var t,r,n,o=z(e);return o==u?(t=e,r=-1,n=Array(t.size),t.forEach(function(e,t){n[++r]=[t,e]}),n):o==l?function(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=[e,e]}),r}(e):d(e,J(e))});e.exports=X},44:function(e,t,r){function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e);var o=200,i="Expected a function",a="__lodash_hash_undefined__",s=1,u=2,l=1/0,c=9007199254740991,f="[object Arguments]",p="[object Array]",h="[object Boolean]",y="[object Date]",d="[object Error]",m="[object Function]",v="[object GeneratorFunction]",g="[object Map]",b="[object Number]",A="[object Object]",w="[object RegExp]",S="[object Set]",C="[object String]",E="[object Symbol]",x="[object ArrayBuffer]",_="[object DataView]",I=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,O=/^\w*$/,k=/^\./,P=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,T=/\\(\\)?/g,j=/^\[object .+?Constructor\]$/,M=/^(?:0|[1-9]\d*)$/,N={};N["[object Float32Array]"]=N["[object Float64Array]"]=N["[object Int8Array]"]=N["[object Int16Array]"]=N["[object Int32Array]"]=N["[object Uint8Array]"]=N["[object Uint8ClampedArray]"]=N["[object Uint16Array]"]=N["[object Uint32Array]"]=!0,N[f]=N[p]=N[x]=N[h]=N[_]=N[y]=N[d]=N[m]=N[g]=N[b]=N[A]=N[w]=N[S]=N[C]=N["[object WeakMap]"]=!1;var B="object"==(void 0===r.g?"undefined":n(r.g))&&r.g&&r.g.Object===Object&&r.g,L="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,R=B||L||Function("return this")(),D="object"==n(t)&&t&&!t.nodeType&&t,F=D&&"object"==n(e)&&e&&!e.nodeType&&e,Q=F&&F.exports===D&&B.process,G=function(){try{return Q&&Q.binding("util")}catch(e){}}(),U=G&&G.isTypedArray;function z(e,t){return!!(e?e.length:0)&&function(e,t,r){if(t!=t)return function(e,t,r,n){var o=e.length,i=r+(n?1:-1);for(;n?i--:++i-1}function H(e,t,r){for(var n=-1,o=e?e.length:0;++n-1},ke.prototype.set=function(e,t){var r=this.__data__,n=Ne(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},Pe.prototype.clear=function(){this.__data__={hash:new Oe,map:new(de||ke),string:new Oe}},Pe.prototype.delete=function(e){return He(this,e).delete(e)},Pe.prototype.get=function(e){return He(this,e).get(e)},Pe.prototype.has=function(e){return He(this,e).has(e)},Pe.prototype.set=function(e,t){return He(this,e).set(e,t),this},Te.prototype.add=Te.prototype.push=function(e){return this.__data__.set(e,a),this},Te.prototype.has=function(e){return this.__data__.has(e)},je.prototype.clear=function(){this.__data__=new ke},je.prototype.delete=function(e){return this.__data__.delete(e)},je.prototype.get=function(e){return this.__data__.get(e)},je.prototype.has=function(e){return this.__data__.has(e)},je.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ke){var n=r.__data__;if(!de||n.lengthl))return!1;var f=i.get(e);if(f&&i.get(t))return f==t;var p=-1,h=!0,y=o&s?new Te:void 0;for(i.set(e,t),i.set(t,e);++p-1&&e%1==0&&e-1&&e%1==0&&e<=c}function st(e){var t=n(e);return!!e&&("object"==t||"function"==t)}function ut(e){return!!e&&"object"==n(e)}function lt(e){return"symbol"==n(e)||ut(e)&&se.call(e)==E}var ct=U?function(e){return function(t){return e(t)}}(U):function(e){return ut(e)&&at(e.length)&&!!N[se.call(e)]};function ft(e){return ot(e)?Me(e):Qe(e)}function pt(e){return e}e.exports=function(e,t){return e&&e.length?function(e,t,r){var n=-1,i=z,a=e.length,s=!0,u=[],l=u;if(r)s=!1,i=H;else if(a>=o){var c=t?null:Ue(e);if(c)return J(c);s=!1,i=K,l=new Te}else l=t?[]:u;e:for(;++n15?(r=Date.now(),a(e)):(t.push(e),1===t.length&&o.setAttribute("a",n=!n))}}i.nextTick=i.setImmediate}(),i.isNodejs="undefined"!=typeof process&&process.versions&&process.versions.node,i.globalScope=i.isNodejs?t:"undefined"==typeof self?window:self,i.isArray=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i.isArrayBuffer=function(e){return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer},i.isArrayBufferView=function(e){return e&&i.isArrayBuffer(e.buffer)&&void 0!==e.byteLength},i.ByteBuffer=u,i.ByteStringBuffer=u,i.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>4096&&(this.data.substr(0,1),this._constructedStringLength=0)},i.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},i.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},i.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))},i.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this},i.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this},i.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(i.encodeUtf8(e))},i.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},i.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},i.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e))},i.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255))},i.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))},i.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(255&e)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))},i.ByteStringBuffer.prototype.putInt=function(e,t){a(t);var r="";do{t-=8,r+=String.fromCharCode(e>>t&255)}while(t>0);return this.putBytes(r)},i.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<0);return t},i.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},i.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},i.ByteStringBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},i.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)},i.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this},i.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},i.ByteStringBuffer.prototype.copy=function(){var e=i.createBuffer(this.data);return e.read=this.read,e},i.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},i.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},i.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this},i.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this},i.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this},i.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this},i.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this},i.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this},i.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this},i.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this},i.DataBuffer.prototype.putInt=function(e,t){a(t),this.accommodate(t/8);do{t-=8,this.data.setInt8(this.write++,e>>t&255)}while(t>0);return this},i.DataBuffer.prototype.putSignedInt=function(e,t){return a(t),this.accommodate(t/8),e<0&&(e+=2<0);return t},i.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<=r&&(t-=r<<1),t},i.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):0===e?t="":(t=0===this.read?this.data:this.data.slice(this.read),this.clear()),t},i.DataBuffer.prototype.bytes=function(e){return void 0===e?this.data.slice(this.read):this.data.slice(this.read,this.read+e)},i.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)},i.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this},i.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},i.DataBuffer.prototype.copy=function(){return new i.DataBuffer(this)},i.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this},i.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},i.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this},i.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t0;)1&t&&(r+=e),(t>>>=1)>0&&(e+=e);return r},i.xorBytes=function(e,t,r){for(var n="",o="",i="",a=0,s=0;r>0;--r,++a)o=e.charCodeAt(a)^t.charCodeAt(a),s>=10&&(n+=i,i="",s=0),i+=String.fromCharCode(o),++s;return n+i},i.hexToBytes=function(e){var t="",r=0;for(!0&e.length&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(255&e)};var l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],f="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";i.encode64=function(e,t){for(var r,n,o,i="",a="",s=0;s>2),i+=l.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=l.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":l.charAt(63&o)),t&&i.length>t&&(a+=i.substr(0,t)+"\r\n",i=i.substr(t));return a+i},i.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t,r,n,o,i="",a=0;a>4),64!==n&&(i+=String.fromCharCode((15&r)<<4|n>>2),64!==o&&(i+=String.fromCharCode((3&n)<<6|o)));return i},i.encodeUtf8=function(e){return unescape(encodeURIComponent(e))},i.decodeUtf8=function(e){return decodeURIComponent(escape(e))},i.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:o.encode,decode:o.decode}},i.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)},i.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,i=0;i>2),i+=l.charAt((3&r)<<4|n>>4),isNaN(n)?i+="==":(i+=l.charAt((15&n)<<2|o>>6),i+=isNaN(o)?"=":l.charAt(63&o)),t&&i.length>t&&(a+=i.substr(0,t)+"\r\n",i=i.substr(t));return a+i},i.binary.base64.decode=function(e,t,r){var n,o,i,a,s=t;s||(s=new Uint8Array(3*Math.ceil(e.length/4))),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var u=0,l=r=r||0;u>4,64!==i&&(s[l++]=(15&o)<<4|i>>2,64!==a&&(s[l++]=(3&i)<<6|a));return t?l-r:s.subarray(0,l)},i.binary.base58.encode=function(e,t){return i.binary.baseN.encode(e,f,t)},i.binary.base58.decode=function(e,t){return i.binary.baseN.decode(e,f,t)},i.text={utf8:{},utf16:{}},i.text.utf8.encode=function(e,t,r){e=i.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length));for(var o=r=r||0,a=0;a0&&i.push(r),a=n.lastIndex;var s=t[0][1];switch(s){case"s":case"o":o");break;case"%":i.push("%");break;default:i.push("<%"+s+"?>")}}return i.push(e.substring(a)),i.join("")},i.formatNumber=function(e,t,r,n){var o=e,i=isNaN(t=Math.abs(t))?2:t,a=void 0===r?",":r,s=void 0===n?".":n,u=o<0?"-":"",l=parseInt(o=Math.abs(+o||0).toFixed(i),10)+"",c=l.length>3?l.length%3:0;return u+(c?l.substr(0,c)+s:"")+l.substr(c).replace(/(\d{3})(?=\d)/g,"$1"+s)+(i?a+Math.abs(o-l).toFixed(i).slice(2):"")},i.formatSize=function(e){return e>=1073741824?i.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?i.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?i.formatNumber(e/1024,0)+" KiB":i.formatNumber(e,0)+" bytes"},i.bytesFromIP=function(e){return-1!==e.indexOf(".")?i.bytesFromIPv4(e):-1!==e.indexOf(":")?i.bytesFromIPv6(e):null},i.bytesFromIPv4=function(e){if(4!==(e=e.split(".")).length)return null;for(var t=i.createBuffer(),r=0;rr[n].end-r[n].start&&(n=r.length-1)):r.push({start:u,end:u})}t.push(a)}if(r.length>0){var l=r[n];l.end-l.start>0&&(t.splice(l.start,l.end-l.start+1,""),0===l.start&&t.unshift(""),7===l.end&&t.push(""))}return t.join(":")},i.estimateCores=function(e,t){if("function"==typeof e&&(t=e,e={}),e=e||{},"cores"in i&&!e.update)return t(null,i.cores);if("undefined"!=typeof navigator&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return i.cores=navigator.hardwareConcurrency,t(null,i.cores);if("undefined"==typeof Worker)return i.cores=1,t(null,i.cores);if("undefined"==typeof Blob)return i.cores=2,t(null,i.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(e){for(var t=Date.now(),r=t+4;Date.now()s.st&&o.sto.st&&s.stt){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}o.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192},o.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30},o.create=function(e,t,r,i,a){if(n.util.isArray(i)){for(var s=[],u=0;ur){if(a.strict){var y=new Error("Too few bytes to read ASN.1 value.");throw y.available=t.length(),y.remaining=r,y.requested=h,y}h=r}var d=32==(32&u);if(d)if(f=[],void 0===h)for(;;){if(i(t,r,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),r-=2;break}s=t.length(),f.push(e(t,r,n+1,a)),r-=s-t.length()}else for(;h>0;)s=t.length(),f.push(e(t,h,n+1,a)),r-=s-t.length(),h-=s-t.length();if(void 0===f&&l===o.Class.UNIVERSAL&&c===o.Type.BITSTRING&&(p=t.bytes(h)),void 0===f&&a.decodeBitStrings&&l===o.Class.UNIVERSAL&&c===o.Type.BITSTRING&&h>1){var m=t.read,v=r,g=0;if(c===o.Type.BITSTRING&&(i(t,r,1),g=t.getByte(),r--),0===g)try{s=t.length();var b=e(t,r,n+1,{strict:!0,decodeBitStrings:!0}),A=s-t.length();r-=A,c==o.Type.BITSTRING&&A++;var w=b.tagClass;A!==h||w!==o.Class.UNIVERSAL&&w!==o.Class.CONTEXT_SPECIFIC||(f=[b])}catch(e){}void 0===f&&(t.read=m,r=v)}if(void 0===f){if(void 0===h){if(a.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");h=r}if(c===o.Type.BMPSTRING)for(f="";h>0;h-=2)i(t,r,2),f+=String.fromCharCode(t.getInt16()),r-=2;else f=t.getBytes(h),r-=h}var S=void 0===p?null:{bitStringContents:p};return o.create(l,c,d,f,S)}(e,e.length(),0,t);if(t.parseAllBytes&&0!==e.length()){var s=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw s.byteCount=r,s.remaining=e.length(),s}return a},o.toDer=function(e){var t=n.util.createBuffer(),r=e.tagClass|e.type,i=n.util.createBuffer(),a=!1;if("bitStringContents"in e&&(a=!0,e.original&&(a=o.equals(e,e.original))),a)i.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:i.putByte(0);for(var s=0;s1&&(0===e.value.charCodeAt(0)&&0==(128&e.value.charCodeAt(1))||255===e.value.charCodeAt(0)&&128==(128&e.value.charCodeAt(1)))?i.putBytes(e.value.substr(1)):i.putBytes(e.value);if(t.putByte(r),i.length()<=127)t.putByte(127&i.length());else{var u=i.length(),l="";do{l+=String.fromCharCode(255&u),u>>>=8}while(u>0);for(t.putByte(128|l.length),s=l.length-1;s>=0;--s)t.putByte(l.charCodeAt(s))}return t.putBuffer(i),t},o.oidToDer=function(e){var t,r,o,i,a=e.split("."),s=n.util.createBuffer();s.putByte(40*parseInt(a[0],10)+parseInt(a[1],10));for(var u=2;u>>=7,t||(i|=128),r.push(i),t=!1}while(o>0);for(var l=r.length-1;l>=0;--l)s.putByte(r[l])}return s},o.derToOid=function(e){var t;"string"==typeof e&&(e=n.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var o=0;e.length()>0;)o<<=7,128&(r=e.getByte())?o+=127&r:(t+="."+(o+r),o=0);return t},o.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,o=parseInt(e.substr(4,2),10),i=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var u=e.charAt(10),l=10;"+"!==u&&"-"!==u&&(s=parseInt(e.substr(10,2),10),l+=2)}if(t.setUTCFullYear(r,n,o),t.setUTCHours(i,a,s,0),l&&("+"===(u=e.charAt(l))||"-"===u)){var c=60*parseInt(e.substr(l+1,2),10)+parseInt(e.substr(l+4,2),10);c*=6e4,"+"===u?t.setTime(+t-c):t.setTime(+t+c)}return t},o.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,o=parseInt(e.substr(6,2),10),i=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),u=0,l=0,c=!1;"Z"===e.charAt(e.length-1)&&(c=!0);var f=e.length-5,p=e.charAt(f);return"+"!==p&&"-"!==p||(l=60*parseInt(e.substr(f+1,2),10)+parseInt(e.substr(f+4,2),10),l*=6e4,"+"===p&&(l*=-1),c=!0),"."===e.charAt(14)&&(u=1e3*parseFloat(e.substr(14),10)),c?(t.setUTCFullYear(r,n,o),t.setUTCHours(i,a,s,u),t.setTime(+t+l)):(t.setFullYear(r,n,o),t.setHours(i,a,s,u)),t},o.dateToUtcTime=function(e){if("string"==typeof e)return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r},o.derToInteger=function(e){"string"==typeof e&&(e=n.util.createBuffer(e));var t=8*e.length();if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)},o.validate=function(e,t,r,i){var a=!1;if(e.tagClass!==t.tagClass&&void 0!==t.tagClass||e.type!==t.type&&void 0!==t.type)i&&(e.tagClass!==t.tagClass&&i.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&i.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));else if(e.constructed===t.constructed||void 0===t.constructed){if(a=!0,t.value&&n.util.isArray(t.value))for(var s=0,u=0;a&&u0&&(i+="\n");for(var s="",u=0;u1?i+="0x"+n.util.bytesToHex(e.value.slice(1)):i+="(none)",e.value.length>0){var p=e.value.charCodeAt(0);1==p?i+=" (1 unused bit shown)":p>1&&(i+=" ("+p+" unused bits shown)")}}else if(e.type===o.Type.OCTETSTRING)a.test(e.value)||(i+="("+e.value+") "),i+="0x"+n.util.bytesToHex(e.value);else if(e.type===o.Type.UTF8)try{i+=n.util.decodeUtf8(e.value)}catch(t){if("URI malformed"!==t.message)throw t;i+="0x"+n.util.bytesToHex(e.value)+" (malformed UTF8)"}else e.type===o.Type.PRINTABLESTRING||e.type===o.Type.IA5String?i+=e.value:a.test(e.value)?i+="0x"+n.util.bytesToHex(e.value):0===e.value.length?i+="[null]":i+=e.value}return i}},function(e,t,r){var n=r(0);e.exports=n.md=n.md||{},n.md.algorithms=n.md.algorithms||{}},function(e,t,r){var n=r(0);function o(e,t){n.cipher.registerAlgorithm(e,function(){return new n.aes.Algorithm(e,t)})}r(13),r(19),r(1),e.exports=n.aes=n.aes||{},n.aes.startEncrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!1,mode:n});return o.start(t),o},n.aes.createEncryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!1,mode:t})},n.aes.startDecrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!0,mode:n});return o.start(t),o},n.aes.createDecryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!0,mode:t})},n.aes.Algorithm=function(e,t){c||f();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(e,t){return h(r._w,e,t,!1)},decrypt:function(e,t){return h(r._w,e,t,!0)}}}),r._init=!1},n.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t,r=e.key;if("string"!=typeof r||16!==r.length&&24!==r.length&&32!==r.length){if(n.util.isArray(r)&&(16===r.length||24===r.length||32===r.length)){t=r,r=n.util.createBuffer();for(var o=0;o>>=2,o=0;o>8^255&f^99,i[d]=f,a[f]=d,h=(p=e[f])<<24^f<<16^f<<8^f^p,y=((r=e[d])^(n=e[r])^(o=e[n]))<<24^(d^o)<<16^(d^n^o)<<8^d^r^o;for(var v=0;v<4;++v)u[v][d]=h,l[v][f]=y,h=h<<24|h>>>8,y=y<<24|y>>>8;0===d?d=m=1:(d=r^e[e[e[r^o]]],m^=e[e[m]])}}function p(e,t){for(var r,n=e.slice(0),o=1,a=n.length,u=4*(a+6+1),c=a;c>>16&255]<<24^i[r>>>8&255]<<16^i[255&r]<<8^i[r>>>24]^s[o]<<24,o++):a>6&&c%a==4&&(r=i[r>>>24]<<24^i[r>>>16&255]<<16^i[r>>>8&255]<<8^i[255&r]),n[c]=n[c-a]^r;if(t){for(var f,p=l[0],h=l[1],y=l[2],d=l[3],m=n.slice(0),v=(c=0,(u=n.length)-4);c>>24]]^h[i[f>>>16&255]]^y[i[f>>>8&255]]^d[i[255&f]];n=m}return n}function h(e,t,r,n){var o,s,c,f,p,h,y,d,m,v,g,b,A=e.length/4-1;n?(o=l[0],s=l[1],c=l[2],f=l[3],p=a):(o=u[0],s=u[1],c=u[2],f=u[3],p=i),h=t[0]^e[0],y=t[n?3:1]^e[1],d=t[2]^e[2],m=t[n?1:3]^e[3];for(var w=3,S=1;S>>24]^s[y>>>16&255]^c[d>>>8&255]^f[255&m]^e[++w],g=o[y>>>24]^s[d>>>16&255]^c[m>>>8&255]^f[255&h]^e[++w],b=o[d>>>24]^s[m>>>16&255]^c[h>>>8&255]^f[255&y]^e[++w],m=o[m>>>24]^s[h>>>16&255]^c[y>>>8&255]^f[255&d]^e[++w],h=v,y=g,d=b;r[0]=p[h>>>24]<<24^p[y>>>16&255]<<16^p[d>>>8&255]<<8^p[255&m]^e[++w],r[n?3:1]=p[y>>>24]<<24^p[d>>>16&255]<<16^p[m>>>8&255]<<8^p[255&h]^e[++w],r[2]=p[d>>>24]<<24^p[m>>>16&255]<<16^p[h>>>8&255]<<8^p[255&y]^e[++w],r[n?1:3]=p[m>>>24]<<24^p[h>>>16&255]<<16^p[y>>>8&255]<<8^p[255&d]^e[++w]}function y(e){var t,r="AES-"+((e=e||{}).mode||"CBC").toUpperCase(),o=(t=e.decrypt?n.cipher.createDecipher(r,e.key):n.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var i=null;r instanceof n.util.ByteBuffer&&(i=r,r={}),(r=r||{}).output=i,r.iv=e,o.call(t,r)},t}},function(e,t,r){var n=r(0);n.pki=n.pki||{};var o=e.exports=n.pki.oids=n.oids=n.oids||{};function i(e,t){o[e]=t,o[t]=e}function a(e,t){o[e]=t}i("1.2.840.113549.1.1.1","rsaEncryption"),i("1.2.840.113549.1.1.4","md5WithRSAEncryption"),i("1.2.840.113549.1.1.5","sha1WithRSAEncryption"),i("1.2.840.113549.1.1.7","RSAES-OAEP"),i("1.2.840.113549.1.1.8","mgf1"),i("1.2.840.113549.1.1.9","pSpecified"),i("1.2.840.113549.1.1.10","RSASSA-PSS"),i("1.2.840.113549.1.1.11","sha256WithRSAEncryption"),i("1.2.840.113549.1.1.12","sha384WithRSAEncryption"),i("1.2.840.113549.1.1.13","sha512WithRSAEncryption"),i("1.3.101.112","EdDSA25519"),i("1.2.840.10040.4.3","dsa-with-sha1"),i("1.3.14.3.2.7","desCBC"),i("1.3.14.3.2.26","sha1"),i("1.3.14.3.2.29","sha1WithRSASignature"),i("2.16.840.1.101.3.4.2.1","sha256"),i("2.16.840.1.101.3.4.2.2","sha384"),i("2.16.840.1.101.3.4.2.3","sha512"),i("2.16.840.1.101.3.4.2.4","sha224"),i("2.16.840.1.101.3.4.2.5","sha512-224"),i("2.16.840.1.101.3.4.2.6","sha512-256"),i("1.2.840.113549.2.2","md2"),i("1.2.840.113549.2.5","md5"),i("1.2.840.113549.1.7.1","data"),i("1.2.840.113549.1.7.2","signedData"),i("1.2.840.113549.1.7.3","envelopedData"),i("1.2.840.113549.1.7.4","signedAndEnvelopedData"),i("1.2.840.113549.1.7.5","digestedData"),i("1.2.840.113549.1.7.6","encryptedData"),i("1.2.840.113549.1.9.1","emailAddress"),i("1.2.840.113549.1.9.2","unstructuredName"),i("1.2.840.113549.1.9.3","contentType"),i("1.2.840.113549.1.9.4","messageDigest"),i("1.2.840.113549.1.9.5","signingTime"),i("1.2.840.113549.1.9.6","counterSignature"),i("1.2.840.113549.1.9.7","challengePassword"),i("1.2.840.113549.1.9.8","unstructuredAddress"),i("1.2.840.113549.1.9.14","extensionRequest"),i("1.2.840.113549.1.9.20","friendlyName"),i("1.2.840.113549.1.9.21","localKeyId"),i("1.2.840.113549.1.9.22.1","x509Certificate"),i("1.2.840.113549.1.12.10.1.1","keyBag"),i("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag"),i("1.2.840.113549.1.12.10.1.3","certBag"),i("1.2.840.113549.1.12.10.1.4","crlBag"),i("1.2.840.113549.1.12.10.1.5","secretBag"),i("1.2.840.113549.1.12.10.1.6","safeContentsBag"),i("1.2.840.113549.1.5.13","pkcs5PBES2"),i("1.2.840.113549.1.5.12","pkcs5PBKDF2"),i("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4"),i("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4"),i("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC"),i("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC"),i("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC"),i("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC"),i("1.2.840.113549.2.7","hmacWithSHA1"),i("1.2.840.113549.2.8","hmacWithSHA224"),i("1.2.840.113549.2.9","hmacWithSHA256"),i("1.2.840.113549.2.10","hmacWithSHA384"),i("1.2.840.113549.2.11","hmacWithSHA512"),i("1.2.840.113549.3.7","des-EDE3-CBC"),i("2.16.840.1.101.3.4.1.2","aes128-CBC"),i("2.16.840.1.101.3.4.1.22","aes192-CBC"),i("2.16.840.1.101.3.4.1.42","aes256-CBC"),i("2.5.4.3","commonName"),i("2.5.4.4","surname"),i("2.5.4.5","serialNumber"),i("2.5.4.6","countryName"),i("2.5.4.7","localityName"),i("2.5.4.8","stateOrProvinceName"),i("2.5.4.9","streetAddress"),i("2.5.4.10","organizationName"),i("2.5.4.11","organizationalUnitName"),i("2.5.4.12","title"),i("2.5.4.13","description"),i("2.5.4.15","businessCategory"),i("2.5.4.17","postalCode"),i("2.5.4.42","givenName"),i("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName"),i("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName"),i("2.16.840.1.113730.1.1","nsCertType"),i("2.16.840.1.113730.1.13","nsComment"),a("2.5.29.1","authorityKeyIdentifier"),a("2.5.29.2","keyAttributes"),a("2.5.29.3","certificatePolicies"),a("2.5.29.4","keyUsageRestriction"),a("2.5.29.5","policyMapping"),a("2.5.29.6","subtreesConstraint"),a("2.5.29.7","subjectAltName"),a("2.5.29.8","issuerAltName"),a("2.5.29.9","subjectDirectoryAttributes"),a("2.5.29.10","basicConstraints"),a("2.5.29.11","nameConstraints"),a("2.5.29.12","policyConstraints"),a("2.5.29.13","basicConstraints"),i("2.5.29.14","subjectKeyIdentifier"),i("2.5.29.15","keyUsage"),a("2.5.29.16","privateKeyUsagePeriod"),i("2.5.29.17","subjectAltName"),i("2.5.29.18","issuerAltName"),i("2.5.29.19","basicConstraints"),a("2.5.29.20","cRLNumber"),a("2.5.29.21","cRLReason"),a("2.5.29.22","expirationDate"),a("2.5.29.23","instructionCode"),a("2.5.29.24","invalidityDate"),a("2.5.29.25","cRLDistributionPoints"),a("2.5.29.26","issuingDistributionPoint"),a("2.5.29.27","deltaCRLIndicator"),a("2.5.29.28","issuingDistributionPoint"),a("2.5.29.29","certificateIssuer"),a("2.5.29.30","nameConstraints"),i("2.5.29.31","cRLDistributionPoints"),i("2.5.29.32","certificatePolicies"),a("2.5.29.33","policyMappings"),a("2.5.29.34","policyConstraints"),i("2.5.29.35","authorityKeyIdentifier"),a("2.5.29.36","policyConstraints"),i("2.5.29.37","extKeyUsage"),a("2.5.29.46","freshestCRL"),a("2.5.29.54","inhibitAnyPolicy"),i("1.3.6.1.4.1.11129.2.4.2","timestampList"),i("1.3.6.1.5.5.7.1.1","authorityInfoAccess"),i("1.3.6.1.5.5.7.3.1","serverAuth"),i("1.3.6.1.5.5.7.3.2","clientAuth"),i("1.3.6.1.5.5.7.3.3","codeSigning"),i("1.3.6.1.5.5.7.3.4","emailProtection"),i("1.3.6.1.5.5.7.3.8","timeStamping")},function(e,t,r){var n=r(0);r(1);var o=e.exports=n.pem=n.pem||{};function i(e){for(var t=e.name+": ",r=[],n=function(e,t){return" "+t},o=0;o65&&-1!==a){var s=t[a];","===s?(++a,t=t.substr(0,a)+"\r\n "+t.substr(a)):t=t.substr(0,a)+"\r\n"+s+t.substr(a+1),i=o-a-1,a=-1,++o}else" "!==t[o]&&"\t"!==t[o]&&","!==t[o]||(a=o);return t}function a(e){return e.replace(/^\s+/,"")}o.encode=function(e,t){t=t||{};var r,o="-----BEGIN "+e.type+"-----\r\n";if(e.procType&&(o+=i(r={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]})),e.contentDomain&&(o+=i(r={name:"Content-Domain",values:[e.contentDomain]})),e.dekInfo&&(r={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&r.values.push(e.dekInfo.parameters),o+=i(r)),e.headers)for(var a=0;at.blockLength&&(t.start(),t.update(a.bytes()),a=t.digest()),r=n.util.createBuffer(),o=n.util.createBuffer(),l=a.length(),u=0;u>>0,u>>>0];for(var l=o.fullMessageLength.length-1;l>=0;--l)o.fullMessageLength[l]+=u[1],u[1]=u[0]+(o.fullMessageLength[l]/4294967296>>>0),o.fullMessageLength[l]=o.fullMessageLength[l]>>>0,u[0]=u[1]/4294967296>>>0;return t.putBytes(i),s(e,r,t),(t.read>2048||0===t.length())&&t.compact(),o},o.digest=function(){var a=n.util.createBuffer();a.putBytes(t.bytes());var u,l=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize&o.blockLength-1;a.putBytes(i.substr(0,o.blockLength-l));for(var c=8*o.fullMessageLength[0],f=0;f>>0,a.putInt32(c>>>0),c=u>>>0;a.putInt32(c);var p={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};s(p,r,a);var h=n.util.createBuffer();return h.putInt32(p.h0),h.putInt32(p.h1),h.putInt32(p.h2),h.putInt32(p.h3),h.putInt32(p.h4),h},o};var i=null,a=!1;function s(e,t,r){for(var n,o,i,a,s,u,l,c=r.length();c>=64;){for(o=e.h0,i=e.h1,a=e.h2,s=e.h3,u=e.h4,l=0;l<16;++l)n=r.getInt32(),t[l]=n,n=(o<<5|o>>>27)+(s^i&(a^s))+u+1518500249+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<20;++l)n=(n=t[l-3]^t[l-8]^t[l-14]^t[l-16])<<1|n>>>31,t[l]=n,n=(o<<5|o>>>27)+(s^i&(a^s))+u+1518500249+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<32;++l)n=(n=t[l-3]^t[l-8]^t[l-14]^t[l-16])<<1|n>>>31,t[l]=n,n=(o<<5|o>>>27)+(i^a^s)+u+1859775393+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<40;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(o<<5|o>>>27)+(i^a^s)+u+1859775393+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<60;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(o<<5|o>>>27)+(i&a|s&(i^a))+u+2400959708+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;for(;l<80;++l)n=(n=t[l-6]^t[l-16]^t[l-28]^t[l-32])<<2|n>>>30,t[l]=n,n=(o<<5|o>>>27)+(i^a^s)+u+3395469782+n,u=s,s=a,a=(i<<30|i>>>2)>>>0,i=o,o=n;e.h0=e.h0+o|0,e.h1=e.h1+i|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,e.h4=e.h4+u|0,c-=64}}},function(e,t,r){var n=r(0);function o(e,t){n.cipher.registerAlgorithm(e,function(){return new n.des.Algorithm(e,t)})}r(13),r(19),r(1),e.exports=n.des=n.des||{},n.des.startEncrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!1,mode:n||(null===t?"ECB":"CBC")});return o.start(t),o},n.des.createEncryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!1,mode:t})},n.des.startDecrypting=function(e,t,r,n){var o=y({key:e,output:r,decrypt:!0,mode:n||(null===t?"ECB":"CBC")});return o.start(t),o},n.des.createDecryptionCipher=function(e,t){return y({key:e,output:null,decrypt:!0,mode:t})},n.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(e,t){return h(r._keys,e,t,!1)},decrypt:function(e,t){return h(r._keys,e,t,!0)}}}),r._init=!1},n.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=n.util.createBuffer(e.key);if(0===this.name.indexOf("3DES")&&24!==t.length())throw new Error("Invalid Triple-DES key size: "+8*t.length());this._keys=function(e){for(var t,r=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],n=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],o=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],a=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],u=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],l=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],c=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],p=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],h=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],y=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=e.length()>8?3:1,v=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],b=0,A=0;A>>4^S))<<4,w^=t=65535&((S^=t)>>>-16^w),w^=(t=858993459&(w>>>2^(S^=t<<-16)))<<2,w^=t=65535&((S^=t)>>>-16^w),w^=(t=1431655765&(w>>>1^(S^=t<<-16)))<<1,w^=t=16711935&((S^=t)>>>8^w),t=(w^=(t=1431655765&(w>>>1^(S^=t<<8)))<<1)<<8|(S^=t)>>>20&240,w=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=t;for(var C=0;C>>26,S=S<<2|S>>>26):(w=w<<1|w>>>27,S=S<<1|S>>>27);var E=r[(w&=-15)>>>28]|n[w>>>24&15]|o[w>>>20&15]|i[w>>>16&15]|a[w>>>12&15]|s[w>>>8&15]|u[w>>>4&15],x=l[(S&=-15)>>>28]|c[S>>>24&15]|f[S>>>20&15]|p[S>>>16&15]|h[S>>>12&15]|y[S>>>8&15]|d[S>>>4&15];t=65535&(x>>>16^E),v[b++]=E^t,v[b++]=x^t<<16}}return v}(t),this._init=!0}},o("DES-ECB",n.cipher.modes.ecb),o("DES-CBC",n.cipher.modes.cbc),o("DES-CFB",n.cipher.modes.cfb),o("DES-OFB",n.cipher.modes.ofb),o("DES-CTR",n.cipher.modes.ctr),o("3DES-ECB",n.cipher.modes.ecb),o("3DES-CBC",n.cipher.modes.cbc),o("3DES-CFB",n.cipher.modes.cfb),o("3DES-OFB",n.cipher.modes.ofb),o("3DES-CTR",n.cipher.modes.ctr);var i=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],a=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],s=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],u=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],l=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],c=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],f=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],p=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function h(e,t,r,n){var o,h,y=32===e.length?3:9;o=3===y?n?[30,-2,-2]:[0,32,2]:n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var d=t[0],m=t[1];d^=(h=252645135&(d>>>4^m))<<4,d^=(h=65535&(d>>>16^(m^=h)))<<16,d^=h=858993459&((m^=h)>>>2^d),d^=h=16711935&((m^=h<<2)>>>8^d),d=(d^=(h=1431655765&(d>>>1^(m^=h<<8)))<<1)<<1|d>>>31,m=(m^=h)<<1|m>>>31;for(var v=0;v>>4|m<<28)^e[A+1];h=d,d=m,m=h^(a[w>>>24&63]|u[w>>>16&63]|c[w>>>8&63]|p[63&w]|i[S>>>24&63]|s[S>>>16&63]|l[S>>>8&63]|f[63&S])}h=d,d=m,m=h}m=m>>>1|m<<31,m^=h=1431655765&((d=d>>>1|d<<31)>>>1^m),m^=(h=16711935&(m>>>8^(d^=h<<1)))<<8,m^=(h=858993459&(m>>>2^(d^=h)))<<2,m^=h=65535&((d^=h)>>>16^m),m^=h=252645135&((d^=h<<16)>>>4^m),d^=h<<4,r[0]=d,r[1]=m}function y(e){var t,r="DES-"+((e=e||{}).mode||"CBC").toUpperCase(),o=(t=e.decrypt?n.cipher.createDecipher(r,e.key):n.cipher.createCipher(r,e.key)).start;return t.start=function(e,r){var i=null;r instanceof n.util.ByteBuffer&&(i=r,r={}),(r=r||{}).output=i,r.iv=e,o.call(t,r)},t}},function(e,t,r){var n=r(0);if(r(3),r(12),r(6),r(26),r(27),r(2),r(1),void 0===o)var o=n.jsbn.BigInteger;var i=n.util.isNodejs?r(16):null,a=n.asn1,u=n.util;n.pki=n.pki||{},e.exports=n.pki.rsa=n.rsa=n.rsa||{};var l=n.pki,c=[6,4,2,4,2,4,6,2],f={name:"PrivateKeyInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},p={name:"RSAPrivateKey",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},h={name:"RSAPublicKey",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:a.Class.UNIVERSAL,type:a.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},y=n.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:a.Class.UNIVERSAL,type:a.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},d={name:"DigestInfo",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:a.Class.UNIVERSAL,type:a.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:a.Class.UNIVERSAL,type:a.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:a.Class.UNIVERSAL,type:a.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:a.Class.UNIVERSAL,type:a.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},m=function(e){var t;if(!(e.algorithm in l.oids)){var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}t=l.oids[e.algorithm];var n=a.oidToDer(t).getBytes(),o=a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[]),i=a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[]);i.value.push(a.create(a.Class.UNIVERSAL,a.Type.OID,!1,n)),i.value.push(a.create(a.Class.UNIVERSAL,a.Type.NULL,!1,""));var s=a.create(a.Class.UNIVERSAL,a.Type.OCTETSTRING,!1,e.digest().getBytes());return o.value.push(i),o.value.push(s),a.toDer(o).getBytes()},v=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);var i;t.dP||(t.dP=t.d.mod(t.p.subtract(o.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(o.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));do{i=new o(n.util.bytesToHex(n.random.getBytes(t.n.bitLength()/8)),16)}while(i.compareTo(t.n)>=0||!i.gcd(t.n).equals(o.ONE));for(var a=(e=e.multiply(i.modPow(t.e,t.n)).mod(t.n)).mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);a.compareTo(s)<0;)a=a.add(t.p);var u=a.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return u.multiply(i.modInverse(t.n)).mod(t.n)};function g(e,t,r){var o=n.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var a=new Error("Message is too long for PKCS#1 v1.5 padding.");throw a.length=e.length,a.max=i-11,a}o.putByte(0),o.putByte(r);var s,u=i-3-e.length;if(0===r||1===r){s=0===r?0:255;for(var l=0;l0;){var c=0,f=n.random.getBytes(u);for(l=0;l1;){if(255!==a.getByte()){--a.read;break}++l}else if(2===u)for(l=0;a.length()>1;){if(0===a.getByte()){--a.read;break}++l}if(0!==a.getByte()||l!==i-3-a.length())throw new Error("Encryption block is invalid.");return a.getBytes()}function A(e,t,r){"function"==typeof t&&(r=t,t={});var i={algorithm:{name:(t=t||{}).algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};function a(){s(e.pBits,function(t,n){return t?r(t):(e.p=n,null!==e.q?u(t,e.q):void s(e.qBits,u))})}function s(e,t){n.prime.generateProbablePrime(e,i,t)}function u(t,n){if(t)return r(t);if(e.q=n,e.p.compareTo(e.q)<0){var i=e.p;e.p=e.q,e.q=i}if(0!==e.p.subtract(o.ONE).gcd(e.e).compareTo(o.ONE))return e.p=null,void a();if(0!==e.q.subtract(o.ONE).gcd(e.e).compareTo(o.ONE))return e.q=null,void s(e.qBits,u);if(e.p1=e.p.subtract(o.ONE),e.q1=e.q.subtract(o.ONE),e.phi=e.p1.multiply(e.q1),0!==e.phi.gcd(e.e).compareTo(o.ONE))return e.p=e.q=null,void a();if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits)return e.q=null,void s(e.qBits,u);var c=e.e.modInverse(e.phi);e.keys={privateKey:l.rsa.setPrivateKey(e.n,e.e,c,e.p,e.q,c.mod(e.p1),c.mod(e.q1),e.q.modInverse(e.p)),publicKey:l.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}"prng"in t&&(i.prng=t.prng),a()}function w(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=n.util.hexToBytes(t);return r.length>1&&(0===r.charCodeAt(0)&&0==(128&r.charCodeAt(1))||255===r.charCodeAt(0)&&128==(128&r.charCodeAt(1)))?r.substr(1):r}function S(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function C(e){return n.util.isNodejs&&"function"==typeof i[e]}function E(e){return void 0!==u.globalScope&&"object"==s(u.globalScope.crypto)&&"object"==s(u.globalScope.crypto.subtle)&&"function"==typeof u.globalScope.crypto.subtle[e]}function x(e){return void 0!==u.globalScope&&"object"==s(u.globalScope.msCrypto)&&"object"==s(u.globalScope.msCrypto.subtle)&&"function"==typeof u.globalScope.msCrypto.subtle[e]}function _(e){for(var t=n.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),o=0;o0;)c.putByte(0),--f;return c.putBytes(n.util.hexToBytes(l)),c.getBytes()},l.rsa.decrypt=function(e,t,r,i){var a=Math.ceil(t.n.bitLength()/8);if(e.length!==a){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=a,s}var u=new o(n.util.createBuffer(e).toHex(),16);if(u.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var l=v(u,t,r).toString(16),c=n.util.createBuffer(),f=a-Math.ceil(l.length/2);f>0;)c.putByte(0),--f;return c.putBytes(n.util.hexToBytes(l)),!1!==i?b(c.getBytes(),t,r):c.getBytes()},l.rsa.createKeyPairGenerationState=function(e,t,r){"string"==typeof e&&(e=parseInt(e,10)),e=e||2048;var i,a=(r=r||{}).prng||n.random,s={nextBytes:function(e){for(var t=a.getBytesSync(e.length),r=0;r>1,pBits:e-(e>>1),pqState:0,num:null,keys:null}).e.fromInt(i.eInt),i},l.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new o(null);r.fromInt(30);for(var n,i=0,a=function(e,t){return e|t},s=+new Date,u=0;null===e.keys&&(t<=0||uf?e.pqState=0:e.num.isProbablePrime(S(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(c[i++%8],0):2===e.pqState?e.pqState=0===e.num.subtract(o.ONE).gcd(e.e).compareTo(o.ONE)?3:0:3===e.pqState&&(e.pqState=0,null===e.p?e.p=e.num:e.q=e.num,null!==e.p&&null!==e.q&&++e.state,e.num=null)}else if(1===e.state)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(2===e.state)e.p1=e.p.subtract(o.ONE),e.q1=e.q.subtract(o.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(3===e.state)0===e.phi.gcd(e.e).compareTo(o.ONE)?++e.state:(e.p=null,e.q=null,e.state=0);else if(4===e.state)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(5===e.state){var h=e.e.modInverse(e.phi);e.keys={privateKey:l.rsa.setPrivateKey(e.n,e.e,h,e.p,e.q,h.mod(e.p1),h.mod(e.q1),e.q.modInverse(e.p)),publicKey:l.rsa.setPublicKey(e.n,e.e)}}u+=(n=+new Date)-s,s=n}return null!==e.keys},l.rsa.generateKeyPair=function(e,t,r,o){if(1===arguments.length?"object"==s(e)?(r=e,e=void 0):"function"==typeof e&&(o=e,e=void 0):2===arguments.length?"number"==typeof e?"function"==typeof t?(o=t,t=void 0):"number"!=typeof t&&(r=t,t=void 0):(r=e,o=t,e=void 0,t=void 0):3===arguments.length&&("number"==typeof t?"function"==typeof r&&(o=r,r=void 0):(o=r,r=t,t=void 0)),r=r||{},void 0===e&&(e=r.bits||2048),void 0===t&&(t=r.e||65537),!n.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(65537===t||3===t))if(o){if(C("generateKeyPair"))return i.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(e,t,r){if(e)return o(e);o(null,{privateKey:l.privateKeyFromPem(r),publicKey:l.publicKeyFromPem(t)})});if(E("generateKey")&&E("exportKey"))return u.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:_(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(e){return u.globalScope.crypto.subtle.exportKey("pkcs8",e.privateKey)}).then(void 0,function(e){o(e)}).then(function(e){if(e){var t=l.privateKeyFromAsn1(a.fromDer(n.util.createBuffer(e)));o(null,{privateKey:t,publicKey:l.setRsaPublicKey(t.n,t.e)})}});if(x("generateKey")&&x("exportKey")){var c=u.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:_(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);return c.oncomplete=function(e){var t=e.target.result,r=u.globalScope.msCrypto.subtle.exportKey("pkcs8",t.privateKey);r.oncomplete=function(e){var t=e.target.result,r=l.privateKeyFromAsn1(a.fromDer(n.util.createBuffer(t)));o(null,{privateKey:r,publicKey:l.setRsaPublicKey(r.n,r.e)})},r.onerror=function(e){o(e)}},void(c.onerror=function(e){o(e)})}}else if(C("generateKeyPairSync")){var f=i.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:l.privateKeyFromPem(f.privateKey),publicKey:l.publicKeyFromPem(f.publicKey)}}var p=l.rsa.createKeyPairGenerationState(e,t,r);if(!o)return l.rsa.stepKeyPairGenerationState(p,0),p.keys;A(p,r,o)},l.setRsaPublicKey=l.rsa.setPublicKey=function(e,t){var r={n:e,e:t,encrypt:function(e,t,o){if("string"==typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5"),"RSAES-PKCS1-V1_5"===t)t={encode:function(e,t,r){return g(e,t,2).getBytes()}};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={encode:function(e,t){return n.pkcs1.encode_rsa_oaep(t,e,o)}};else if(-1!==["RAW","NONE","NULL",null].indexOf(t))t={encode:function(e){return e}};else if("string"==typeof t)throw new Error('Unsupported encryption scheme: "'+t+'".');var i=t.encode(e,r,!0);return l.rsa.encrypt(i,r,!0)},verify:function(e,t,o,i){"string"==typeof o?o=o.toUpperCase():void 0===o&&(o="RSASSA-PKCS1-V1_5"),void 0===i&&(i={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in i||(i._parseAllDigestBytes=!0),"RSASSA-PKCS1-V1_5"===o?o={verify:function(e,t){t=b(t,r,!0);var o=a.fromDer(t,{parseAllBytes:i._parseAllDigestBytes}),s={},u=[];if(!a.validate(o,d,s,u))throw(l=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.")).errors=u,l;var l,c=a.derToOid(s.algorithmIdentifier);if(c!==n.oids.md2&&c!==n.oids.md5&&c!==n.oids.sha1&&c!==n.oids.sha224&&c!==n.oids.sha256&&c!==n.oids.sha384&&c!==n.oids.sha512&&c!==n.oids["sha512-224"]&&c!==n.oids["sha512-256"])throw(l=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.")).oid=c,l;if(!(c!==n.oids.md2&&c!==n.oids.md5||"parameters"in s))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return e===s.digest}}:"NONE"!==o&&"NULL"!==o&&null!==o||(o={verify:function(e,t){return e===b(t,r,!0)}});var s=l.rsa.decrypt(t,r,!0,!1);return o.verify(e,s,r.n.bitLength())}};return r},l.setRsaPrivateKey=l.rsa.setPrivateKey=function(e,t,r,o,i,a,s,u){var c={n:e,e:t,d:r,p:o,q:i,dP:a,dQ:s,qInv:u,decrypt:function(e,t,r){"string"==typeof t?t=t.toUpperCase():void 0===t&&(t="RSAES-PKCS1-V1_5");var o=l.rsa.decrypt(e,c,!1,!1);if("RSAES-PKCS1-V1_5"===t)t={decode:b};else if("RSA-OAEP"===t||"RSAES-OAEP"===t)t={decode:function(e,t){return n.pkcs1.decode_rsa_oaep(t,e,r)}};else{if(-1===["RAW","NONE","NULL",null].indexOf(t))throw new Error('Unsupported encryption scheme: "'+t+'".');t={decode:function(e){return e}}}return t.decode(o,c,!1)},sign:function(e,t){var r=!1;"string"==typeof t&&(t=t.toUpperCase()),void 0===t||"RSASSA-PKCS1-V1_5"===t?(t={encode:m},r=1):"NONE"!==t&&"NULL"!==t&&null!==t||(t={encode:function(){return e}},r=1);var n=t.encode(e,c.n.bitLength());return l.rsa.encrypt(n,c,r)}};return c},l.wrapRsaPrivateKey=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,a.integerToDer(0).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.OID,!1,a.oidToDer(l.oids.rsaEncryption).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.NULL,!1,"")]),a.create(a.Class.UNIVERSAL,a.Type.OCTETSTRING,!1,a.toDer(e).getBytes())])},l.privateKeyFromAsn1=function(e){var t,r,i,s,u,c,h,y,d={},m=[];if(a.validate(e,f,d,m)&&(e=a.fromDer(n.util.createBuffer(d.privateKey))),d={},m=[],!a.validate(e,p,d,m)){var v=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw v.errors=m,v}return t=n.util.createBuffer(d.privateKeyModulus).toHex(),r=n.util.createBuffer(d.privateKeyPublicExponent).toHex(),i=n.util.createBuffer(d.privateKeyPrivateExponent).toHex(),s=n.util.createBuffer(d.privateKeyPrime1).toHex(),u=n.util.createBuffer(d.privateKeyPrime2).toHex(),c=n.util.createBuffer(d.privateKeyExponent1).toHex(),h=n.util.createBuffer(d.privateKeyExponent2).toHex(),y=n.util.createBuffer(d.privateKeyCoefficient).toHex(),l.setRsaPrivateKey(new o(t,16),new o(r,16),new o(i,16),new o(s,16),new o(u,16),new o(c,16),new o(h,16),new o(y,16))},l.privateKeyToAsn1=l.privateKeyToRSAPrivateKey=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,a.integerToDer(0).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.n)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.e)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.d)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.p)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.q)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.dP)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.dQ)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.qInv))])},l.publicKeyFromAsn1=function(e){var t={},r=[];if(a.validate(e,y,t,r)){var i,s=a.derToOid(t.publicKeyOid);if(s!==l.oids.rsaEncryption)throw(i=new Error("Cannot read public key. Unknown OID.")).oid=s,i;e=t.rsaPublicKey}if(r=[],!a.validate(e,h,t,r))throw(i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.")).errors=r,i;var u=n.util.createBuffer(t.publicKeyModulus).toHex(),c=n.util.createBuffer(t.publicKeyExponent).toHex();return l.setRsaPublicKey(new o(u,16),new o(c,16))},l.publicKeyToAsn1=l.publicKeyToSubjectPublicKeyInfo=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.OID,!1,a.oidToDer(l.oids.rsaEncryption).getBytes()),a.create(a.Class.UNIVERSAL,a.Type.NULL,!1,"")]),a.create(a.Class.UNIVERSAL,a.Type.BITSTRING,!1,[l.publicKeyToRSAPublicKey(e)])])},l.publicKeyToRSAPublicKey=function(e){return a.create(a.Class.UNIVERSAL,a.Type.SEQUENCE,!0,[a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.n)),a.create(a.Class.UNIVERSAL,a.Type.INTEGER,!1,w(e.e))])}},function(e,t,r){var n,o=r(0);function i(e,t,r){this.data=[],null!=e&&("number"==typeof e?this.fromNumber(e,t,r):null==t&&"string"!=typeof e?this.fromString(e,256):this.fromString(e,t))}function a(){return new i(null)}function s(e,t,r,n,o,i){for(var a=16383&t,s=t>>14;--i>=0;){var u=16383&this.data[e],l=this.data[e++]>>14,c=s*u+l*a;o=((u=a*u+((16383&c)<<14)+r.data[n]+o)>>28)+(c>>14)+s*l,r.data[n++]=268435455&u}return o}e.exports=o.jsbn=o.jsbn||{},o.jsbn.BigInteger=i,"undefined"==typeof navigator?(i.prototype.am=s,n=28):"Microsoft Internet Explorer"==navigator.appName?(i.prototype.am=function(e,t,r,n,o,i){for(var a=32767&t,s=t>>15;--i>=0;){var u=32767&this.data[e],l=this.data[e++]>>15,c=s*u+l*a;o=((u=a*u+((32767&c)<<15)+r.data[n]+(1073741823&o))>>>30)+(c>>>15)+s*l+(o>>>30),r.data[n++]=1073741823&u}return o},n=30):"Netscape"!=navigator.appName?(i.prototype.am=function(e,t,r,n,o,i){for(;--i>=0;){var a=t*this.data[e++]+r.data[n]+o;o=Math.floor(a/67108864),r.data[n++]=67108863&a}return o},n=26):(i.prototype.am=s,n=28),i.prototype.DB=n,i.prototype.DM=(1<>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}function d(e){this.m=e}function m(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,t+=16),0==(255&e)&&(e>>=8,t+=8),0==(15&e)&&(e>>=4,t+=4),0==(3&e)&&(e>>=2,t+=2),0==(1&e)&&++t,t}function S(e){for(var t=0;0!=e;)e&=e-1,++t;return t}function C(){}function E(e){return e}function x(e){this.r2=a(),this.q3=a(),i.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}d.prototype.convert=function(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e},d.prototype.revert=function(e){return e},d.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},d.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},d.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},m.prototype.convert=function(e){var t=a();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(i.ZERO)>0&&this.m.subTo(t,t),t},m.prototype.revert=function(e){var t=a();return e.copyTo(t),this.reduce(t),t},m.prototype.reduce=function(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},m.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},m.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},i.prototype.copyTo=function(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s},i.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0},i.prototype.fromString=function(e,t){var r;if(16==t)r=4;else if(8==t)r=3;else if(256==t)r=8;else if(2==t)r=1;else if(32==t)r=5;else{if(4!=t)return void this.fromRadix(e,t);r=2}this.t=0,this.s=0;for(var n=e.length,o=!1,a=0;--n>=0;){var s=8==r?255&e[n]:p(e,n);s<0?"-"==e.charAt(n)&&(o=!0):(o=!1,0==a?this.data[this.t++]=s:a+r>this.DB?(this.data[this.t-1]|=(s&(1<>this.DB-a):this.data[this.t-1]|=s<=this.DB&&(a-=this.DB))}8==r&&0!=(128&e[0])&&(this.s=-1,a>0&&(this.data[this.t-1]|=(1<0&&this.data[this.t-1]==e;)--this.t},i.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s},i.prototype.drShiftTo=function(e,t){for(var r=e;r=0;--r)t.data[r+a+1]=this.data[r]>>o|s,s=(this.data[r]&i)<=0;--r)t.data[r]=0;t.data[a]=s,t.t=this.t+a+1,t.s=this.s,t.clamp()},i.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t)t.t=0;else{var n=e%this.DB,o=this.DB-n,i=(1<>n;for(var a=r+1;a>n;n>0&&(t.data[this.t-r-1]|=(this.s&i)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()},i.prototype.multiplyTo=function(e,t){var r=this.abs(),n=e.abs(),o=r.t;for(t.t=o+n.t;--o>=0;)t.data[o]=0;for(o=0;o=0;)e.data[r]=0;for(r=0;r=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()},i.prototype.divRemTo=function(e,t,r){var n=e.abs();if(!(n.t<=0)){var o=this.abs();if(o.t0?(n.lShiftTo(c,s),o.lShiftTo(c,r)):(n.copyTo(s),o.copyTo(r));var f=s.t,p=s.data[f-1];if(0!=p){var h=p*(1<1?s.data[f-2]>>this.F2:0),d=this.FV/h,m=(1<=0&&(r.data[r.t++]=1,r.subTo(A,r)),i.ONE.dlShiftTo(f,A),A.subTo(s,s);s.t=0;){var w=r.data[--g]==p?this.DM:Math.floor(r.data[g]*d+(r.data[g-1]+v)*m);if((r.data[g]+=s.am(0,w,r,b,0,f))0&&r.rShiftTo(c,r),u<0&&i.ZERO.subTo(r,r)}}},i.prototype.invDigit=function(){if(this.t<1)return 0;var e=this.data[0];if(0==(1&e))return 0;var t=3&e;return(t=(t=(t=(t=t*(2-(15&e)*t)&15)*(2-(255&e)*t)&255)*(2-((65535&e)*t&65535))&65535)*(2-e*t%this.DV)%this.DV)>0?this.DV-t:-t},i.prototype.isEven=function(){return 0==(this.t>0?1&this.data[0]:this.s)},i.prototype.exp=function(e,t){if(e>4294967295||e<1)return i.ONE;var r=a(),n=a(),o=t.convert(this),s=y(e)-1;for(o.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<0)t.mulTo(n,o,r);else{var u=r;r=n,n=u}return t.revert(r)},i.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)return this.toRadix(e);t=2}var r,n=(1<0)for(s>s)>0&&(o=!0,i=f(r));a>=0;)s>(s+=this.DB-t)):(r=this.data[a]>>(s-=t)&n,s<=0&&(s+=this.DB,--a)),r>0&&(o=!0),o&&(i+=f(r));return o?i:"0"},i.prototype.negate=function(){var e=a();return i.ZERO.subTo(this,e),e},i.prototype.abs=function(){return this.s<0?this.negate():this},i.prototype.compareTo=function(e){var t=this.s-e.s;if(0!=t)return t;var r=this.t;if(0!=(t=r-e.t))return this.s<0?-t:t;for(;--r>=0;)if(0!=(t=this.data[r]-e.data[r]))return t;return 0},i.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+y(this.data[this.t-1]^this.s&this.DM)},i.prototype.mod=function(e){var t=a();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(i.ZERO)>0&&e.subTo(t,t),t},i.prototype.modPowInt=function(e,t){var r;return r=e<256||t.isEven()?new d(t):new m(t),this.exp(e,r)},i.ZERO=h(0),i.ONE=h(1),C.prototype.convert=E,C.prototype.revert=E,C.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r)},C.prototype.sqrTo=function(e,t){e.squareTo(t)},x.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=a();return e.copyTo(t),this.reduce(t),t},x.prototype.revert=function(e){return e},x.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},x.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},x.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)};var _=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],I=(1<<26)/_[_.length-1];i.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},i.prototype.toRadix=function(e){if(null==e&&(e=10),0==this.signum()||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=h(r),o=a(),i=a(),s="";for(this.divRemTo(n,o,i);o.signum()>0;)s=(r+i.intValue()).toString(e).substr(1)+s,o.divRemTo(n,o,i);return i.intValue().toString(e)+s},i.prototype.fromRadix=function(e,t){this.fromInt(0),null==t&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),o=!1,a=0,s=0,u=0;u=r&&(this.dMultiply(n),this.dAddOffset(s,0),a=0,s=0))}a>0&&(this.dMultiply(Math.pow(t,a)),this.dAddOffset(s,0)),o&&i.ZERO.subTo(this,this)},i.prototype.fromNumber=function(e,t,r){if("number"==typeof t)if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(i.ONE.shiftLeft(e-1),g,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(i.ONE.shiftLeft(e-1),this);else{var n=new Array,o=7&e;n.length=1+(e>>3),t.nextBytes(n),o>0?n[0]&=(1<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()},i.prototype.dMultiply=function(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},i.prototype.dAddOffset=function(e,t){if(0!=e){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}},i.prototype.multiplyLowerTo=function(e,t,r){var n,o=Math.min(this.t+e.t,t);for(r.s=0,r.t=o;o>0;)r.data[--o]=0;for(n=r.t-this.t;o=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n0)if(0==t)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r},i.prototype.millerRabin=function(e){var t=this.subtract(i.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n,o=t.shiftRight(r),a={nextBytes:function(e){for(var t=0;t=0);var u=n.modPow(o,this);if(0!=u.compareTo(i.ONE)&&0!=u.compareTo(t)){for(var l=1;l++>24},i.prototype.shortValue=function(){return 0==this.t?this.s:this.data[0]<<16>>16},i.prototype.signum=function(){return this.s<0?-1:this.t<=0||1==this.t&&this.data[0]<=0?0:1},i.prototype.toByteArray=function(){var e=this.t,t=new Array;t[0]=this.s;var r,n=this.DB-e*this.DB%8,o=0;if(e-- >0)for(n>n)!=(this.s&this.DM)>>n&&(t[o++]=r|this.s<=0;)n<8?(r=(this.data[e]&(1<>(n+=this.DB-8)):(r=this.data[e]>>(n-=8)&255,n<=0&&(n+=this.DB,--e)),0!=(128&r)&&(r|=-256),0==o&&(128&this.s)!=(128&r)&&++o,(o>0||r!=this.s)&&(t[o++]=r);return t},i.prototype.equals=function(e){return 0==this.compareTo(e)},i.prototype.min=function(e){return this.compareTo(e)<0?this:e},i.prototype.max=function(e){return this.compareTo(e)>0?this:e},i.prototype.and=function(e){var t=a();return this.bitwiseTo(e,v,t),t},i.prototype.or=function(e){var t=a();return this.bitwiseTo(e,g,t),t},i.prototype.xor=function(e){var t=a();return this.bitwiseTo(e,b,t),t},i.prototype.andNot=function(e){var t=a();return this.bitwiseTo(e,A,t),t},i.prototype.not=function(){for(var e=a(),t=0;t=this.t?0!=this.s:0!=(this.data[t]&1<1){var f=a();for(n.sqrTo(s[1],f);u<=c;)s[u]=a(),n.mulTo(f,s[u-2],s[u]),u+=2}var p,v,g=e.t-1,b=!0,A=a();for(o=y(e.data[g])-1;g>=0;){for(o>=l?p=e.data[g]>>o-l&c:(p=(e.data[g]&(1<0&&(p|=e.data[g-1]>>this.DB+o-l)),u=r;0==(1&p);)p>>=1,--u;if((o-=u)<0&&(o+=this.DB,--g),b)s[p].copyTo(i),b=!1;else{for(;u>1;)n.sqrTo(i,A),n.sqrTo(A,i),u-=2;u>0?n.sqrTo(i,A):(v=i,i=A,A=v),n.mulTo(A,s[p],i)}for(;g>=0&&0==(e.data[g]&1<=0?(r.subTo(n,r),t&&o.subTo(s,o),a.subTo(u,a)):(n.subTo(r,n),t&&s.subTo(o,s),u.subTo(a,u))}return 0!=n.compareTo(i.ONE)?i.ZERO:u.compareTo(e)>=0?u.subtract(e):u.signum()<0?(u.addTo(e,u),u.signum()<0?u.add(e):u):u},i.prototype.pow=function(e){return this.exp(e,new C)},i.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var o=t.getLowestSetBit(),i=r.getLowestSetBit();if(i<0)return t;for(o0&&(t.rShiftTo(i,t),r.rShiftTo(i,r));t.signum()>0;)(o=t.getLowestSetBit())>0&&t.rShiftTo(o,t),(o=r.getLowestSetBit())>0&&r.rShiftTo(o,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return i>0&&r.lShiftTo(i,r),r},i.prototype.isProbablePrime=function(e){var t,r=this.abs();if(1==r.t&&r.data[0]<=_[_.length-1]){for(t=0;t<_.length;++t)if(r.data[0]==_[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<_.length;){for(var n=_[t],o=t+1;o<_.length&&n>>0,s>>>0];for(var u=o.fullMessageLength.length-1;u>=0;--u)o.fullMessageLength[u]+=s[1],s[1]=s[0]+(o.fullMessageLength[u]/4294967296>>>0),o.fullMessageLength[u]=o.fullMessageLength[u]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),c(e,r,t),(t.read>2048||0===t.length())&&t.compact(),o},o.digest=function(){var a=n.util.createBuffer();a.putBytes(t.bytes());var s=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize&o.blockLength-1;a.putBytes(i.substr(0,o.blockLength-s));for(var u,l=0,f=o.fullMessageLength.length-1;f>=0;--f)l=(u=8*o.fullMessageLength[f]+l)/4294967296>>>0,a.putInt32Le(u>>>0);var p={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3};c(p,r,a);var h=n.util.createBuffer();return h.putInt32Le(p.h0),h.putInt32Le(p.h1),h.putInt32Le(p.h2),h.putInt32Le(p.h3),h},o};var i=null,a=null,s=null,u=null,l=!1;function c(e,t,r){for(var n,o,i,l,c,f,p,h=r.length();h>=64;){for(o=e.h0,i=e.h1,l=e.h2,c=e.h3,p=0;p<16;++p)t[p]=r.getInt32Le(),n=o+(c^i&(l^c))+u[p]+t[p],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;for(;p<32;++p)n=o+(l^c&(i^l))+u[p]+t[a[p]],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;for(;p<48;++p)n=o+(i^l^c)+u[p]+t[a[p]],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;for(;p<64;++p)n=o+(l^(i|~c))+u[p]+t[a[p]],o=c,c=l,l=i,i+=n<<(f=s[p])|n>>>32-f;e.h0=e.h0+o|0,e.h1=e.h1+i|0,e.h2=e.h2+l|0,e.h3=e.h3+c|0,h-=64}}},function(e,t,r){var n=r(0);r(8),r(4),r(1);var o,i=n.pkcs5=n.pkcs5||{};n.util.isNodejs&&!n.options.usePureJavaScript&&(o=r(16)),e.exports=n.pbkdf2=i.pbkdf2=function(e,t,r,i,a,u){if("function"==typeof a&&(u=a,a=null),n.util.isNodejs&&!n.options.usePureJavaScript&&o.pbkdf2&&(null===a||"object"!=s(a))&&(o.pbkdf2Sync.length>4||!a||"sha1"===a))return"string"!=typeof a&&(a="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),u?4===o.pbkdf2Sync.length?o.pbkdf2(e,t,r,i,function(e,t){if(e)return u(e);u(null,t.toString("binary"))}):o.pbkdf2(e,t,r,i,a,function(e,t){if(e)return u(e);u(null,t.toString("binary"))}):4===o.pbkdf2Sync.length?o.pbkdf2Sync(e,t,r,i).toString("binary"):o.pbkdf2Sync(e,t,r,i,a).toString("binary");if(null==a&&(a="sha1"),"string"==typeof a){if(!(a in n.md.algorithms))throw new Error("Unknown hash algorithm: "+a);a=n.md[a].create()}var l=a.digestLength;if(i>4294967295*l){var c=new Error("Derived key is too long.");if(u)return u(c);throw c}var f=Math.ceil(i/l),p=i-(f-1)*l,h=n.hmac.create();h.start(a,e);var y,d,m,v="";if(!u){for(var g=1;g<=f;++g){h.start(null,null),h.update(t),h.update(n.util.int32ToBytes(g)),y=m=h.digest().getBytes();for(var b=2;b<=r;++b)h.start(null,null),h.update(m),d=h.digest().getBytes(),y=n.util.xorBytes(y,d,l),m=d;v+=gf)return u(null,v);h.start(null,null),h.update(t),h.update(n.util.int32ToBytes(g)),y=m=h.digest().getBytes(),b=2,w()}function w(){if(b<=r)return h.start(null,null),h.update(m),d=h.digest().getBytes(),y=n.util.xorBytes(y,d,l),m=d,++b,n.util.setImmediate(w);v+=g128)throw new Error('Invalid "nsComment" content.');e.value=o.create(o.Class.UNIVERSAL,o.Type.IA5STRING,!1,e.comment)}else if("subjectKeyIdentifier"===e.name&&t.cert){var h=t.cert.generateSubjectKeyIdentifier();e.subjectKeyIdentifier=h.toHex(),e.value=o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,h.getBytes())}else if("authorityKeyIdentifier"===e.name&&t.cert){if(e.value=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[]),c=e.value.value,e.keyIdentifier){var y=!0===e.keyIdentifier?t.cert.generateSubjectKeyIdentifier().getBytes():e.keyIdentifier;c.push(o.create(o.Class.CONTEXT_SPECIFIC,0,!1,y))}if(e.authorityCertIssuer){var d=[o.create(o.Class.CONTEXT_SPECIFIC,4,!0,[g(!0===e.authorityCertIssuer?t.cert.issuer:e.authorityCertIssuer)])];c.push(o.create(o.Class.CONTEXT_SPECIFIC,1,!0,d))}if(e.serialNumber){var m=n.util.hexToBytes(!0===e.serialNumber?t.cert.serialNumber:e.serialNumber);c.push(o.create(o.Class.CONTEXT_SPECIFIC,2,!1,m))}}else if("cRLDistributionPoints"===e.name){e.value=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[]),c=e.value.value;var v,b=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[]),A=o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[]);for(p=0;p2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(f.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(u.validity.notBefore=f[0],u.validity.notAfter=f[1],u.tbsCertificate=r.tbsCertificate,t){u.md=m({signatureOid:u.signatureOid,type:"certificate"});var p=o.toDer(u.tbsCertificate);u.md.update(p.getBytes())}var h=n.md.sha1.create(),v=o.toDer(r.certIssuer);h.update(v.getBytes()),u.issuer.getField=function(e){return y(u.issuer,e)},u.issuer.addField=function(e){b([e]),u.issuer.attributes.push(e)},u.issuer.attributes=i.RDNAttributesAsArray(r.certIssuer),r.certIssuerUniqueId&&(u.issuer.uniqueId=r.certIssuerUniqueId),u.issuer.hash=h.digest().toHex();var g=n.md.sha1.create(),A=o.toDer(r.certSubject);return g.update(A.getBytes()),u.subject.getField=function(e){return y(u.subject,e)},u.subject.addField=function(e){b([e]),u.subject.attributes.push(e)},u.subject.attributes=i.RDNAttributesAsArray(r.certSubject),r.certSubjectUniqueId&&(u.subject.uniqueId=r.certSubjectUniqueId),u.subject.hash=g.digest().toHex(),r.certExtensions?u.extensions=i.certificateExtensionsFromAsn1(r.certExtensions):u.extensions=[],u.publicKey=i.publicKeyFromAsn1(r.subjectPublicKeyInfo),u},i.certificateExtensionsFromAsn1=function(e){for(var t=[],r=0;r1&&(r=u.value.charCodeAt(1),i=u.value.length>2?u.value.charCodeAt(2):0),t.digitalSignature=128==(128&r),t.nonRepudiation=64==(64&r),t.keyEncipherment=32==(32&r),t.dataEncipherment=16==(16&r),t.keyAgreement=8==(8&r),t.keyCertSign=4==(4&r),t.cRLSign=2==(2&r),t.encipherOnly=1==(1&r),t.decipherOnly=128==(128&i)}else if("basicConstraints"===t.name){(u=o.fromDer(t.value)).value.length>0&&u.value[0].type===o.Type.BOOLEAN?t.cA=0!==u.value[0].value.charCodeAt(0):t.cA=!1;var s=null;u.value.length>0&&u.value[0].type===o.Type.INTEGER?s=u.value[0].value:u.value.length>1&&(s=u.value[1].value),null!==s&&(t.pathLenConstraint=o.derToInteger(s))}else if("extKeyUsage"===t.name)for(var u=o.fromDer(t.value),l=0;l1&&(r=u.value.charCodeAt(1)),t.client=128==(128&r),t.server=64==(64&r),t.email=32==(32&r),t.objsign=16==(16&r),t.reserved=8==(8&r),t.sslCA=4==(4&r),t.emailCA=2==(2&r),t.objCA=1==(1&r);else if("subjectAltName"===t.name||"issuerAltName"===t.name){var f;t.altNames=[],u=o.fromDer(t.value);for(var p=0;p=S&&e0&&a.value.push(i.certificateExtensionsToAsn1(e.extensions)),a},i.getCertificationRequestInfo=function(e){return o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,o.integerToDer(e.version).getBytes()),g(e.subject),i.publicKeyToAsn1(e.publicKey),function(e){var t=o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[]);if(0===e.attributes.length)return t;for(var r=e.attributes,i=0;if.validity.notAfter)&&(l={message:"Certificate is not valid yet or has expired.",error:i.certificateError.certificate_expired,notBefore:f.validity.notBefore,notAfter:f.validity.notAfter,now:a}),null===l){if(null===(p=t[0]||e.getIssuer(f))&&f.isIssuer(f)&&(h=!0,p=f),p){var y=p;n.util.isArray(y)||(y=[y]);for(var d=!1;!d&&y.length>0;){p=y.shift();try{d=p.verify(f)}catch(e){}}d||(l={message:"Certificate signature is invalid.",error:i.certificateError.bad_certificate})}null!==l||p&&!h||e.hasCertificate(f)||(l={message:"Certificate is not trusted.",error:i.certificateError.unknown_ca})}if(null===l&&p&&!f.isIssuer(p)&&(l={message:"Certificate issuer is invalid.",error:i.certificateError.bad_certificate}),null===l)for(var m={keyUsage:!0,basicConstraints:!0},v=0;null===l&&vb.pathLenConstraint&&(l={message:"Certificate basicConstraints pathLenConstraint violated.",error:i.certificateError.bad_certificate})}var w=null===l||l.error,S=r.verify?r.verify(w,c,o):w;if(!0!==S)throw!0===w&&(l={message:"The application rejected the certificate.",error:i.certificateError.bad_certificate}),(S||0===S)&&("object"!=s(S)||n.util.isArray(S)?"string"==typeof S&&(l.error=S):(S.message&&(l.message=S.message),S.error&&(l.error=S.error))),l;l=null,u=!1,++c}while(t.length>0);return!0}},function(e,t,r){var n=r(0);r(2),r(1),(e.exports=n.pss=n.pss||{}).create=function(e){3===arguments.length&&(e={md:arguments[0],mgf:arguments[1],saltLength:arguments[2]});var t,r=e.md,o=e.mgf,i=r.digestLength,a=e.salt||null;if("string"==typeof a&&(a=n.util.createBuffer(a)),"saltLength"in e)t=e.saltLength;else{if(null===a)throw new Error("Salt length not specified or specific salt not given.");t=a.length()}if(null!==a&&a.length()!==t)throw new Error("Given salt length does not match length of given salt.");var s=e.prng||n.random;return{encode:function(e,u){var l,c,f=u-1,p=Math.ceil(f/8),h=e.digest().getBytes();if(p>8*p-f&255;return(A=String.fromCharCode(A.charCodeAt(0)&~w)+A.substr(1))+d+String.fromCharCode(188)},verify:function(e,a,s){var u,l=s-1,c=Math.ceil(l/8);if(a=a.substr(-c),c>8*c-l&255;if(0!=(p.charCodeAt(0)&y))throw new Error("Bits beyond keysize not zero as expected.");var d=o.generate(h,f),m="";for(u=0;u4){var r=e;e=n.util.createBuffer();for(var o=0;o0))return!0;for(var n=0;n0))return!0;for(var n=0;n0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2||(e.truncate(n),0))},o.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},o.cbc.prototype.start=function(e){if(null===e.iv){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else{if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._prev=this._iv.slice(0)}},o.cbc.prototype.encrypt=function(e,t,r){if(e.length()0))return!0;for(var n=0;n0))return!0;for(var n=0;n0)return!1;var r=e.length(),n=e.at(r-1);return!(n>this.blockSize<<2||(e.truncate(n),0))},o.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},o.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},o.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},o.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},o.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},o.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},o.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(0===e.length())return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0)e.read-=this.blockSize;else for(o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}},o.ofb.prototype.decrypt=o.ofb.prototype.encrypt,o.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0},o.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=i(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},o.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize)for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}a(this._inBlock)},o.ctr.prototype.decrypt=o.ctr.prototype.encrypt,o.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=n.util.createBuffer(),this._partialBytes=0,this._R=3774873600},o.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t,r=n.util.createBuffer(e.iv);if(this._cipherLength=0,t="additionalData"in e?n.util.createBuffer(e.additionalData):n.util.createBuffer(),this._tagLength="tagLength"in e?e.tagLength:128,this._tag=null,e.decrypt&&(this._tag=n.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var o=r.length();if(12===o)this._j0=[r.getInt32(),r.getInt32(),r.getInt32(),1];else{for(this._j0=[0,0,0,0];r.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(s(8*o)))}this._inBlock=this._j0.slice(0),a(this._inBlock),this._partialBytes=0,t=n.util.createBuffer(t),this._aDataLength=s(8*t.length());var i=t.length()%this.blockSize;for(i&&t.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];t.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()])},o.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(0===n)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),0===this._partialBytes&&n>=this.blockSize){for(var o=0;o0&&(i=this.blockSize-i),this._partialOutput.clear(),o=0;o0&&this._partialOutput.getBytes(this._partialBytes),i>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(i-this._partialBytes)),this._partialBytes=i,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),a(this._inBlock)},o.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),a(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var o=0;o0;--n)t[n]=e[n]>>>1|(1&e[n-1])<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)},o.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=e[r/8|0]>>>4*(7-r%8)&15,o=this._m[r][n];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t},o.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)},o.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,o=16*r,i=new Array(o),a=0;a>>1,o=new Array(r);o[n]=e.slice(0);for(var i=n>>>1;i>0;)this.pow(o[2*i],o[i]=[]),i>>=1;for(i=2;i>1,s=a+(1&e.length),u=e.substr(0,s),l=e.substr(a,s),c=n.util.createBuffer(),f=n.hmac.create();r=t+r;var p=Math.ceil(o/16),h=Math.ceil(o/20);f.start("MD5",u);var y=n.util.createBuffer();c.putBytes(r);for(var d=0;d0&&(c.queue(e,c.createAlert(e,{level:c.Alert.Level.warning,description:c.Alert.Description.no_renegotiation})),c.flush(e)),e.process()},c.parseHelloMessage=function(e,t,r){var o=null,i=e.entity===c.ConnectionEnd.client;if(r<38)e.error(e,{message:i?"Invalid ServerHello message. Message too short.":"Invalid ClientHello message. Message too short.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});else{var a=t.fragment,s=a.length();if(o={version:{major:a.getByte(),minor:a.getByte()},random:n.util.createBuffer(a.getBytes(32)),session_id:u(a,1),extensions:[]},i?(o.cipher_suite=a.getBytes(2),o.compression_method=a.getByte()):(o.cipher_suites=u(a,2),o.compression_methods=u(a,1)),(s=r-(s-a.length()))>0){for(var l=u(a,2);l.length()>0;)o.extensions.push({type:[l.getByte(),l.getByte()],data:u(l,2)});if(!i)for(var f=0;f0&&0===h.getByte();)e.session.extensions.server_name.serverNameList.push(u(h,2).getBytes())}}if(e.session.version&&(o.version.major!==e.session.version.major||o.version.minor!==e.session.version.minor))return e.error(e,{message:"TLS version change is disallowed during renegotiation.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.protocol_version}});if(i)e.session.cipherSuite=c.getCipherSuite(o.cipher_suite);else for(var y=n.util.createBuffer(o.cipher_suites.bytes());y.length()>0&&(e.session.cipherSuite=c.getCipherSuite(y.getBytes(2)),null===e.session.cipherSuite););if(null===e.session.cipherSuite)return e.error(e,{message:"No cipher suites in common.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.handshake_failure},cipherSuite:n.util.bytesToHex(o.cipher_suite)});e.session.compressionMethod=i?o.compression_method:c.CompressionMethod.none}return o},c.createSecurityParameters=function(e,t){var r=e.entity===c.ConnectionEnd.client,n=t.random.bytes(),o=r?e.session.sp.client_random:n,i=r?n:c.createRandom().getBytes();e.session.sp={entity:e.entity,prf_algorithm:c.PRFAlgorithm.tls_prf_sha256,bulk_cipher_algorithm:null,cipher_type:null,enc_key_length:null,block_length:null,fixed_iv_length:null,record_iv_length:null,mac_algorithm:null,mac_length:null,mac_key_length:null,compression_algorithm:e.session.compressionMethod,pre_master_secret:null,master_secret:null,client_random:o,server_random:i}},c.handleServerHello=function(e,t,r){var n=c.parseHelloMessage(e,t,r);if(!e.fail){if(!(n.version.minor<=e.version.minor))return e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.protocol_version}});e.version.minor=n.version.minor,e.session.version=e.version;var o=n.session_id.bytes();o.length>0&&o===e.session.id?(e.expect=d,e.session.resuming=!0,e.session.sp.server_random=n.random.bytes()):(e.expect=f,e.session.resuming=!1,c.createSecurityParameters(e,n)),e.session.id=o,e.process()}},c.handleClientHello=function(e,t,r){var o=c.parseHelloMessage(e,t,r);if(!e.fail){var i=o.session_id.bytes(),a=null;if(e.sessionCache&&(null===(a=e.sessionCache.getSession(i))?i="":(a.version.major!==o.version.major||a.version.minor>o.version.minor)&&(a=null,i="")),0===i.length&&(i=n.random.getBytes(32)),e.session.id=i,e.session.clientHelloVersion=o.version,e.session.sp={},a)e.version=e.session.version=a.version,e.session.sp=a.sp;else{for(var s,u=1;u0;)o=u(s.certificate_list,3),i=n.asn1.fromDer(o),o=n.pki.certificateFromAsn1(i,!0),l.push(o)}catch(t){return e.error(e,{message:"Could not parse certificate list.",cause:t,send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.bad_certificate}})}var f=e.entity===c.ConnectionEnd.client;!f&&!0!==e.verifyClient||0!==l.length?0===l.length?e.expect=f?p:A:(f?e.session.serverCertificate=l[0]:e.session.clientCertificate=l[0],c.verifyCertificateChain(e,l)&&(e.expect=f?p:A)):e.error(e,{message:f?"No server certificate provided.":"No client certificate provided.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}}),e.process()},c.handleServerKeyExchange=function(e,t,r){if(r>0)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.unsupported_certificate}});e.expect=h,e.process()},c.handleClientKeyExchange=function(e,t,r){if(r<48)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.unsupported_certificate}});var o=t.fragment,i={enc_pre_master_secret:u(o,2).getBytes()},a=null;if(e.getPrivateKey)try{a=e.getPrivateKey(e,e.session.serverCertificate),a=n.pki.privateKeyFromPem(a)}catch(t){e.error(e,{message:"Could not get private key.",cause:t,send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}})}if(null===a)return e.error(e,{message:"No private key set.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}});try{var s=e.session.sp;s.pre_master_secret=a.decrypt(i.enc_pre_master_secret);var l=e.session.clientHelloVersion;if(l.major!==s.pre_master_secret.charCodeAt(0)||l.minor!==s.pre_master_secret.charCodeAt(1))throw new Error("TLS version rollback attack detected.")}catch(e){s.pre_master_secret=n.random.getBytes(48)}e.expect=S,null!==e.session.clientCertificate&&(e.expect=w),e.process()},c.handleCertificateRequest=function(e,t,r){if(r<3)return e.error(e,{message:"Invalid CertificateRequest. Message too short.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});var n=t.fragment,o={certificate_types:u(n,1),certificate_authorities:u(n,2)};e.session.certificateRequest=o,e.expect=y,e.process()},c.handleCertificateVerify=function(e,t,r){if(r<2)return e.error(e,{message:"Invalid CertificateVerify. Message too short.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});var o=t.fragment;o.read-=4;var i=o.bytes();o.read+=4;var a={signature:u(o,2).getBytes()},s=n.util.createBuffer();s.putBuffer(e.session.md5.digest()),s.putBuffer(e.session.sha1.digest()),s=s.getBytes();try{if(!e.session.clientCertificate.publicKey.verify(s,a.signature,"NONE"))throw new Error("CertificateVerify signature does not match.");e.session.md5.update(i),e.session.sha1.update(i)}catch(t){return e.error(e,{message:"Bad signature in CertificateVerify.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.handshake_failure}})}e.expect=S,e.process()},c.handleServerHelloDone=function(e,t,r){if(r>0)return e.error(e,{message:"Invalid ServerHelloDone message. Invalid length.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.record_overflow}});if(null===e.serverCertificate){var o={message:"No server certificate provided. Not enough security.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.insufficient_security}},i=e.verify(e,o.alert.description,0,[]);if(!0!==i)return(i||0===i)&&("object"!=s(i)||n.util.isArray(i)?"number"==typeof i&&(o.alert.description=i):(i.message&&(o.message=i.message),i.alert&&(o.alert.description=i.alert))),e.error(e,o)}null!==e.session.certificateRequest&&(t=c.createRecord(e,{type:c.ContentType.handshake,data:c.createCertificate(e)}),c.queue(e,t)),t=c.createRecord(e,{type:c.ContentType.handshake,data:c.createClientKeyExchange(e)}),c.queue(e,t),e.expect=g;var a=function(e,t){null!==e.session.certificateRequest&&null!==e.session.clientCertificate&&c.queue(e,c.createRecord(e,{type:c.ContentType.handshake,data:c.createCertificateVerify(e,t)})),c.queue(e,c.createRecord(e,{type:c.ContentType.change_cipher_spec,data:c.createChangeCipherSpec()})),e.state.pending=c.createConnectionState(e),e.state.current.write=e.state.pending.write,c.queue(e,c.createRecord(e,{type:c.ContentType.handshake,data:c.createFinished(e)})),e.expect=d,c.flush(e),e.process()};if(null===e.session.certificateRequest||null===e.session.clientCertificate)return a(e,null);c.getClientSignature(e,a)},c.handleChangeCipherSpec=function(e,t){if(1!==t.fragment.getByte())return e.error(e,{message:"Invalid ChangeCipherSpec message received.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.illegal_parameter}});var r=e.entity===c.ConnectionEnd.client;(e.session.resuming&&r||!e.session.resuming&&!r)&&(e.state.pending=c.createConnectionState(e)),e.state.current.read=e.state.pending.read,(!e.session.resuming&&r||e.session.resuming&&!r)&&(e.state.pending=null),e.expect=r?m:C,e.process()},c.handleFinished=function(e,t,r){var i=t.fragment;i.read-=4;var a=i.bytes();i.read+=4;var s=t.fragment.getBytes();(i=n.util.createBuffer()).putBuffer(e.session.md5.digest()),i.putBuffer(e.session.sha1.digest());var u=e.entity===c.ConnectionEnd.client,l=u?"server finished":"client finished",f=e.session.sp;if((i=o(f.master_secret,l,i.getBytes(),12)).getBytes()!==s)return e.error(e,{message:"Invalid verify_data in Finished message.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.decrypt_error}});e.session.md5.update(a),e.session.sha1.update(a),(e.session.resuming&&u||!e.session.resuming&&!u)&&(c.queue(e,c.createRecord(e,{type:c.ContentType.change_cipher_spec,data:c.createChangeCipherSpec()})),e.state.current.write=e.state.pending.write,e.state.pending=null,c.queue(e,c.createRecord(e,{type:c.ContentType.handshake,data:c.createFinished(e)}))),e.expect=u?v:E,e.handshaking=!1,++e.handshakes,e.peerCertificate=u?e.session.serverCertificate:e.session.clientCertificate,c.flush(e),e.isConnected=!0,e.connected(e),e.process()},c.handleAlert=function(e,t){var r,n=t.fragment,o={level:n.getByte(),description:n.getByte()};switch(o.description){case c.Alert.Description.close_notify:r="Connection closed.";break;case c.Alert.Description.unexpected_message:r="Unexpected message.";break;case c.Alert.Description.bad_record_mac:r="Bad record MAC.";break;case c.Alert.Description.decryption_failed:r="Decryption failed.";break;case c.Alert.Description.record_overflow:r="Record overflow.";break;case c.Alert.Description.decompression_failure:r="Decompression failed.";break;case c.Alert.Description.handshake_failure:r="Handshake failure.";break;case c.Alert.Description.bad_certificate:r="Bad certificate.";break;case c.Alert.Description.unsupported_certificate:r="Unsupported certificate.";break;case c.Alert.Description.certificate_revoked:r="Certificate revoked.";break;case c.Alert.Description.certificate_expired:r="Certificate expired.";break;case c.Alert.Description.certificate_unknown:r="Certificate unknown.";break;case c.Alert.Description.illegal_parameter:r="Illegal parameter.";break;case c.Alert.Description.unknown_ca:r="Unknown certificate authority.";break;case c.Alert.Description.access_denied:r="Access denied.";break;case c.Alert.Description.decode_error:r="Decode error.";break;case c.Alert.Description.decrypt_error:r="Decrypt error.";break;case c.Alert.Description.export_restriction:r="Export restriction.";break;case c.Alert.Description.protocol_version:r="Unsupported protocol version.";break;case c.Alert.Description.insufficient_security:r="Insufficient security.";break;case c.Alert.Description.internal_error:r="Internal error.";break;case c.Alert.Description.user_canceled:r="User canceled.";break;case c.Alert.Description.no_renegotiation:r="Renegotiation not supported.";break;default:r="Unknown error."}if(o.description===c.Alert.Description.close_notify)return e.close();e.error(e,{message:r,send:!1,origin:e.entity===c.ConnectionEnd.client?"server":"client",alert:o}),e.process()},c.handleHandshake=function(e,t){var r=t.fragment,o=r.getByte(),i=r.getInt24();if(i>r.length())return e.fragmented=t,t.fragment=n.util.createBuffer(),r.read-=4,e.process();e.fragmented=null,r.read-=4;var a=r.bytes(i+4);r.read+=4,o in F[e.entity][e.expect]?(e.entity!==c.ConnectionEnd.server||e.open||e.fail||(e.handshaking=!0,e.session={version:null,extensions:{server_name:{serverNameList:[]}},cipherSuite:null,compressionMethod:null,serverCertificate:null,clientCertificate:null,md5:n.md.md5.create(),sha1:n.md.sha1.create()}),o!==c.HandshakeType.hello_request&&o!==c.HandshakeType.certificate_verify&&o!==c.HandshakeType.finished&&(e.session.md5.update(a),e.session.sha1.update(a)),F[e.entity][e.expect][o](e,t,i)):c.handleUnexpected(e,t)},c.handleApplicationData=function(e,t){e.data.putBuffer(t.fragment),e.dataReady(e),e.process()},c.handleHeartbeat=function(e,t){var r=t.fragment,o=r.getByte(),i=r.getInt16(),a=r.getBytes(i);if(o===c.HeartbeatMessageType.heartbeat_request){if(e.handshaking||i>a.length)return e.process();c.queue(e,c.createRecord(e,{type:c.ContentType.heartbeat,data:c.createHeartbeat(c.HeartbeatMessageType.heartbeat_response,a)})),c.flush(e)}else if(o===c.HeartbeatMessageType.heartbeat_response){if(a!==e.expectedHeartbeatPayload)return e.process();e.heartbeatReceived&&e.heartbeatReceived(e,n.util.createBuffer(a))}e.process()};var f=1,p=2,h=3,y=4,d=5,m=6,v=7,g=8,b=1,A=2,w=3,S=4,C=5,E=6,x=c.handleUnexpected,_=c.handleChangeCipherSpec,I=c.handleAlert,O=c.handleHandshake,k=c.handleApplicationData,P=c.handleHeartbeat,T=[];T[c.ConnectionEnd.client]=[[x,I,O,x,P],[x,I,O,x,P],[x,I,O,x,P],[x,I,O,x,P],[x,I,O,x,P],[_,I,x,x,P],[x,I,O,x,P],[x,I,O,k,P],[x,I,O,x,P]],T[c.ConnectionEnd.server]=[[x,I,O,x,P],[x,I,O,x,P],[x,I,O,x,P],[x,I,O,x,P],[_,I,x,x,P],[x,I,O,x,P],[x,I,O,k,P],[x,I,O,x,P]];var j=c.handleHelloRequest,M=c.handleServerHello,N=c.handleCertificate,B=c.handleServerKeyExchange,L=c.handleCertificateRequest,R=c.handleServerHelloDone,D=c.handleFinished,F=[];F[c.ConnectionEnd.client]=[[x,x,M,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x],[j,x,x,x,x,x,x,x,x,x,x,N,B,L,R,x,x,x,x,x,x],[j,x,x,x,x,x,x,x,x,x,x,x,B,L,R,x,x,x,x,x,x],[j,x,x,x,x,x,x,x,x,x,x,x,x,L,R,x,x,x,x,x,x],[j,x,x,x,x,x,x,x,x,x,x,x,x,x,R,x,x,x,x,x,x],[j,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x],[j,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,D],[j,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x],[j,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x]];var Q=c.handleClientHello,G=c.handleClientKeyExchange,U=c.handleCertificateVerify;F[c.ConnectionEnd.server]=[[x,Q,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x],[x,x,x,x,x,x,x,x,x,x,x,N,x,x,x,x,x,x,x,x,x],[x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,G,x,x,x,x],[x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,U,x,x,x,x,x],[x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x],[x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,D],[x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x],[x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x]],c.generateKeys=function(e,t){var r=o,n=t.client_random+t.server_random;e.session.resuming||(t.master_secret=r(t.pre_master_secret,"master secret",n,48).bytes(),t.pre_master_secret=null),n=t.server_random+t.client_random;var i=2*t.mac_key_length+2*t.enc_key_length,a=e.version.major===c.Versions.TLS_1_0.major&&e.version.minor===c.Versions.TLS_1_0.minor;a&&(i+=2*t.fixed_iv_length);var s=r(t.master_secret,"key expansion",n,i),u={client_write_MAC_key:s.getBytes(t.mac_key_length),server_write_MAC_key:s.getBytes(t.mac_key_length),client_write_key:s.getBytes(t.enc_key_length),server_write_key:s.getBytes(t.enc_key_length)};return a&&(u.client_write_IV=s.getBytes(t.fixed_iv_length),u.server_write_IV=s.getBytes(t.fixed_iv_length)),u},c.createConnectionState=function(e){var t=e.entity===c.ConnectionEnd.client,r=function(){var e={sequenceNumber:[0,0],macKey:null,macLength:0,macFunction:null,cipherState:null,cipherFunction:function(e){return!0},compressionState:null,compressFunction:function(e){return!0},updateSequenceNumber:function(){4294967295===e.sequenceNumber[1]?(e.sequenceNumber[1]=0,++e.sequenceNumber[0]):++e.sequenceNumber[1]}};return e},n={read:r(),write:r()};if(n.read.update=function(e,t){return n.read.cipherFunction(t,n.read)?n.read.compressFunction(e,t,n.read)||e.error(e,{message:"Could not decompress record.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.decompression_failure}}):e.error(e,{message:"Could not decrypt record or bad MAC.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.bad_record_mac}}),!e.fail},n.write.update=function(e,t){return n.write.compressFunction(e,t,n.write)?n.write.cipherFunction(t,n.write)||e.error(e,{message:"Could not encrypt record.",send:!1,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}}):e.error(e,{message:"Could not compress record.",send:!1,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.internal_error}}),!e.fail},e.session){var o=e.session.sp;switch(e.session.cipherSuite.initSecurityParameters(o),o.keys=c.generateKeys(e,o),n.read.macKey=t?o.keys.server_write_MAC_key:o.keys.client_write_MAC_key,n.write.macKey=t?o.keys.client_write_MAC_key:o.keys.server_write_MAC_key,e.session.cipherSuite.initConnectionState(n,e,o),o.compression_algorithm){case c.CompressionMethod.none:break;case c.CompressionMethod.deflate:n.read.compressFunction=a,n.write.compressFunction=i;break;default:throw new Error("Unsupported compression algorithm.")}}return n},c.createRandom=function(){var e=new Date,t=+e+6e4*e.getTimezoneOffset(),r=n.util.createBuffer();return r.putInt32(t),r.putBytes(n.random.getBytes(28)),r},c.createRecord=function(e,t){return t.data?{type:t.type,version:{major:e.version.major,minor:e.version.minor},length:t.data.length(),fragment:t.data}:null},c.createAlert=function(e,t){var r=n.util.createBuffer();return r.putByte(t.level),r.putByte(t.description),c.createRecord(e,{type:c.ContentType.alert,data:r})},c.createClientHello=function(e){e.session.clientHelloVersion={major:e.version.major,minor:e.version.minor};for(var t=n.util.createBuffer(),r=0;r0&&(y+=2);var d=e.session.id,m=d.length+1+2+4+28+2+i+1+s+y,v=n.util.createBuffer();return v.putByte(c.HandshakeType.client_hello),v.putInt24(m),v.putByte(e.version.major),v.putByte(e.version.minor),v.putBytes(e.session.sp.client_random),l(v,1,n.util.createBuffer(d)),l(v,2,t),l(v,1,a),y>0&&l(v,2,u),v},c.createServerHello=function(e){var t=e.session.id,r=t.length+1+2+4+28+2+1,o=n.util.createBuffer();return o.putByte(c.HandshakeType.server_hello),o.putInt24(r),o.putByte(e.version.major),o.putByte(e.version.minor),o.putBytes(e.session.sp.server_random),l(o,1,n.util.createBuffer(t)),o.putByte(e.session.cipherSuite.id[0]),o.putByte(e.session.cipherSuite.id[1]),o.putByte(e.session.compressionMethod),o},c.createCertificate=function(e){var t,r=e.entity===c.ConnectionEnd.client,o=null;e.getCertificate&&(t=r?e.session.certificateRequest:e.session.extensions.server_name.serverNameList,o=e.getCertificate(e,t));var i=n.util.createBuffer();if(null!==o)try{n.util.isArray(o)||(o=[o]);for(var a=null,s=0;sc.MaxFragment;)o.push(c.createRecord(e,{type:t.type,data:n.util.createBuffer(i.slice(0,c.MaxFragment))})),i=i.slice(c.MaxFragment);i.length>0&&o.push(c.createRecord(e,{type:t.type,data:n.util.createBuffer(i)}))}for(var a=0;a0&&(o=r.order[0]),null!==o&&o in r.cache)for(var i in t=r.cache[o],delete r.cache[o],r.order)if(r.order[i]===o){r.order.splice(i,1);break}return t},r.setSession=function(e,t){if(r.order.length===r.capacity){var o=r.order.shift();delete r.cache[o]}o=n.util.bytesToHex(e),r.order.push(o),r.cache[o]=t}}return r},c.createConnection=function(e){var t;t=e.caStore?n.util.isArray(e.caStore)?n.pki.createCaStore(e.caStore):e.caStore:n.pki.createCaStore();var r=e.cipherSuites||null;if(null===r)for(var o in r=[],c.CipherSuites)r.push(c.CipherSuites[o]);var i=e.server?c.ConnectionEnd.server:c.ConnectionEnd.client,a=e.sessionCache?c.createSessionCache(e.sessionCache):null,s={version:{major:c.Version.major,minor:c.Version.minor},entity:i,sessionId:e.sessionId,caStore:t,sessionCache:a,cipherSuites:r,connected:e.connected,virtualHost:e.virtualHost||null,verifyClient:e.verifyClient||!1,verify:e.verify||function(e,t,r,n){return t},verifyOptions:e.verifyOptions||{},getCertificate:e.getCertificate||null,getPrivateKey:e.getPrivateKey||null,getSignature:e.getSignature||null,input:n.util.createBuffer(),tlsData:n.util.createBuffer(),data:n.util.createBuffer(),tlsDataReady:e.tlsDataReady,dataReady:e.dataReady,heartbeatReceived:e.heartbeatReceived,closed:e.closed,error:function(t,r){r.origin=r.origin||(t.entity===c.ConnectionEnd.client?"client":"server"),r.send&&(c.queue(t,c.createAlert(t,r.alert)),c.flush(t));var n=!1!==r.fatal;n&&(t.fail=!0),e.error(t,r),n&&t.close(!1)},deflate:e.deflate||null,inflate:e.inflate||null,reset:function(e){s.version={major:c.Version.major,minor:c.Version.minor},s.record=null,s.session=null,s.peerCertificate=null,s.state={pending:null,current:null},s.expect=(s.entity,c.ConnectionEnd.client,0),s.fragmented=null,s.records=[],s.open=!1,s.handshakes=0,s.handshaking=!1,s.isConnected=!1,s.fail=!(e||void 0===e),s.input.clear(),s.tlsData.clear(),s.data.clear(),s.state.current=c.createConnectionState(s)}};return s.reset(),s.handshake=function(e){if(s.entity!==c.ConnectionEnd.client)s.error(s,{message:"Cannot initiate handshake as a server.",fatal:!1});else if(s.handshaking)s.error(s,{message:"Handshake already in progress.",fatal:!1});else{s.fail&&!s.open&&0===s.handshakes&&(s.fail=!1),s.handshaking=!0;var t=null;(e=e||"").length>0&&(s.sessionCache&&(t=s.sessionCache.getSession(e)),null===t&&(e="")),0===e.length&&s.sessionCache&&null!==(t=s.sessionCache.getSession())&&(e=t.id),s.session={id:e,version:null,cipherSuite:null,compressionMethod:null,serverCertificate:null,certificateRequest:null,clientCertificate:null,sp:{},md5:n.md.md5.create(),sha1:n.md.sha1.create()},t&&(s.version=t.version,s.session.sp=t.sp),s.session.sp.client_random=c.createRandom().getBytes(),s.open=!0,c.queue(s,c.createRecord(s,{type:c.ContentType.handshake,data:c.createClientHello(s)})),c.flush(s)}},s.process=function(e){var t=0;return e&&s.input.putBytes(e),s.fail||(null!==s.record&&s.record.ready&&s.record.fragment.isEmpty()&&(s.record=null),null===s.record&&(t=function(e){var t=0,r=e.input,o=r.length();if(o<5)t=5-o;else{e.record={type:r.getByte(),version:{major:r.getByte(),minor:r.getByte()},length:r.getInt16(),fragment:n.util.createBuffer(),ready:!1};var i=e.record.version.major===e.version.major;i&&e.session&&e.session.version&&(i=e.record.version.minor===e.version.minor),i||e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:c.Alert.Level.fatal,description:c.Alert.Description.protocol_version}})}return t}(s)),s.fail||null===s.record||s.record.ready||(t=function(e){var t=0,r=e.input,n=r.length();return n=0;u--)k>>=8,k+=x.at(u)+O.at(u),O.setAt(u,255&k);I.putBuffer(O)}A=I,f.putBuffer(C)}return f.truncate(f.length()-i),f},a.pbe.getCipher=function(e,t,r){switch(e){case a.oids.pkcs5PBES2:return a.pbe.getCipherForPBES2(e,t,r);case a.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case a.oids["pbewithSHAAnd40BitRC2-CBC"]:return a.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}},a.pbe.getCipherForPBES2=function(e,t,r){var o,s={},u=[];if(!i.validate(t,l,s,u))throw(o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=u,o;if((e=i.derToOid(s.kdfOid))!==a.oids.pkcs5PBKDF2)throw(o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.")).oid=e,o.supportedOids=["pkcs5PBKDF2"],o;if((e=i.derToOid(s.encOid))!==a.oids["aes128-CBC"]&&e!==a.oids["aes192-CBC"]&&e!==a.oids["aes256-CBC"]&&e!==a.oids["des-EDE3-CBC"]&&e!==a.oids.desCBC)throw(o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.")).oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o;var c,f,h=s.kdfSalt,y=n.util.createBuffer(s.kdfIterationCount);switch(y=y.getInt(y.length()<<3),a.oids[e]){case"aes128-CBC":c=16,f=n.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,f=n.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,f=n.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,f=n.des.createDecryptionCipher;break;case"desCBC":c=8,f=n.des.createDecryptionCipher}var d=p(s.prfOid),m=n.pkcs5.pbkdf2(r,h,y,c,d),v=s.encIv,g=f(m);return g.start(v),g},a.pbe.getCipherForPKCS12PBE=function(e,t,r){var o={},s=[];if(!i.validate(t,c,o,s))throw(d=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.")).errors=s,d;var u,l,f,h=n.util.createBuffer(o.salt),y=n.util.createBuffer(o.iterations);switch(y=y.getInt(y.length()<<3),e){case a.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:u=24,l=8,f=n.des.startDecrypting;break;case a.oids["pbewithSHAAnd40BitRC2-CBC"]:u=5,l=8,f=function(e,t){var r=n.rc2.createDecryptionCipher(e,40);return r.start(t,null),r};break;default:var d;throw(d=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.")).oid=e,d}var m=p(o.prfOid),v=a.pbe.generatePkcs12Key(r,h,1,y,u,m);return m.start(),f(v,a.pbe.generatePkcs12Key(r,h,2,y,l,m))},a.pbe.opensslDeriveBytes=function(e,t,r,o){if(null==o){if(!("md5"in n.md))throw new Error('"md5" hash algorithm unavailable.');o=n.md.md5.create()}null===t&&(t="");for(var i=[f(o,e+t)],a=16,s=1;a>>0,s>>>0];for(var l=o.fullMessageLength.length-1;l>=0;--l)o.fullMessageLength[l]+=s[1],s[1]=s[0]+(o.fullMessageLength[l]/4294967296>>>0),o.fullMessageLength[l]=o.fullMessageLength[l]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),u(e,r,t),(t.read>2048||0===t.length())&&t.compact(),o},o.digest=function(){var a=n.util.createBuffer();a.putBytes(t.bytes());var s,l=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize&o.blockLength-1;a.putBytes(i.substr(0,o.blockLength-l));for(var c=8*o.fullMessageLength[0],f=0;f>>0,a.putInt32(c>>>0),c=s>>>0;a.putInt32(c);var p={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};u(p,r,a);var h=n.util.createBuffer();return h.putInt32(p.h0),h.putInt32(p.h1),h.putInt32(p.h2),h.putInt32(p.h3),h.putInt32(p.h4),h.putInt32(p.h5),h.putInt32(p.h6),h.putInt32(p.h7),h},o};var i=null,a=!1,s=null;function u(e,t,r){for(var n,o,i,a,u,l,c,f,p,h,y,d,m,v=r.length();v>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=((n=t[u-2])>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,o=((o=t[u-15])>>>7|o<<25)^(o>>>18|o<<14)^o>>>3,t[u]=n+t[u-7]+o+t[u-16]|0;for(l=e.h0,c=e.h1,f=e.h2,p=e.h3,h=e.h4,y=e.h5,d=e.h6,m=e.h7,u=0;u<64;++u)i=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),a=l&c|f&(l^c),n=m+((h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7))+(d^h&(y^d))+s[u]+t[u],m=d,d=y,y=h,h=p+n>>>0,p=f,f=c,c=l,l=n+(o=i+a)>>>0;e.h0=e.h0+l|0,e.h1=e.h1+c|0,e.h2=e.h2+f|0,e.h3=e.h3+p|0,e.h4=e.h4+h|0,e.h5=e.h5+y|0,e.h6=e.h6+d|0,e.h7=e.h7+m|0,v-=64}}},function(e,t,r){var n=r(0);r(1);var o=null;!n.util.isNodejs||n.options.usePureJavaScript||process.versions["node-webkit"]||(o=r(16)),(e.exports=n.prng=n.prng||{}).create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,i=new Array(32),a=0;a<32;++a)i[a]=r.create();function s(){if(t.pools[0].messageLength>=32)return u();var e=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(e)),u()}function u(){t.reseeds=4294967295===t.reseeds?0:t.reseeds+1;var e=t.plugin.md.create();e.update(t.keyBytes);for(var r=1,n=0;n<32;++n)t.reseeds%r==0&&(e.update(t.pools[n].digest().getBytes()),t.pools[n].start()),r<<=1;t.keyBytes=e.digest().getBytes(),e.start(),e.update(t.keyBytes);var o=e.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(o),t.generated=0}function l(e){var t=null,r=n.util.globalScope,o=r.crypto||r.msCrypto;o&&o.getRandomValues&&(t=function(e){return o.getRandomValues(e)});var i=n.util.createBuffer();if(t)for(;i.length()>16)))<<16,p=4294967295&(c=(2147483647&(c+=l>>15))+(c>>31)),u=0;u<3;++u)f=p>>>(u<<3),f^=Math.floor(256*Math.random()),i.putByte(255&f);return i.getBytes(e)}return t.pools=i,t.pool=0,t.generate=function(e,r){if(!r)return t.generateSync(e);var o=t.plugin.cipher,i=t.plugin.increment,a=t.plugin.formatKey,s=t.plugin.formatSeed,l=n.util.createBuffer();t.key=null,function c(f){if(f)return r(f);if(l.length()>=e)return r(null,l.getBytes(e));if(t.generated>1048575&&(t.key=null),null===t.key)return n.util.nextTick(function(){!function(e){if(t.pools[0].messageLength>=32)return u(),e();var r=32-t.pools[0].messageLength<<5;t.seedFile(r,function(r,n){if(r)return e(r);t.collect(n),u(),e()})}(c)});var p=o(t.key,t.seed);t.generated+=p.length,l.putBytes(p),t.key=a(o(t.key,i(t.seed))),t.seed=s(o(t.key,t.seed)),n.util.setImmediate(c)}()},t.generateSync=function(e){var r=t.plugin.cipher,o=t.plugin.increment,i=t.plugin.formatKey,a=t.plugin.formatSeed;t.key=null;for(var u=n.util.createBuffer();u.length()1048575&&(t.key=null),null===t.key&&s();var l=r(t.key,t.seed);t.generated+=l.length,u.putBytes(l),t.key=i(r(t.key,o(t.seed))),t.seed=a(r(t.key,t.seed))}return u.getBytes(e)},o?(t.seedFile=function(e,t){o.randomBytes(e,function(e,r){if(e)return t(e);t(null,r.toString())})},t.seedFileSync=function(e){return o.randomBytes(e).toString()}):(t.seedFile=function(e,t){try{t(null,l(e))}catch(e){t(e)}},t.seedFileSync=l),t.collect=function(e){for(var r=e.length,n=0;n>o&255);t.collect(n)},t.registerWorker=function(e){e===self?t.seedFile=function(e,t){self.addEventListener("message",function e(r){var n=r.data;n.forge&&n.forge.prng&&(self.removeEventListener("message",e),t(n.forge.prng.err,n.forge.prng.bytes))}),self.postMessage({forge:{prng:{needed:e}}})}:e.addEventListener("message",function(r){var n=r.data;n.forge&&n.forge.prng&&t.seedFile(n.forge.prng.needed,function(t,r){e.postMessage({forge:{prng:{err:t,bytes:r}}})})})},t}},function(e,t,r){var n=r(0);r(1);var o=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],i=[1,2,3,5],a=function(e,t){return e<>16-t},s=function(e,t){return(65535&e)>>t|e<<16-t&65535};e.exports=n.rc2=n.rc2||{},n.rc2.expandKey=function(e,t){"string"==typeof e&&(e=n.util.createBuffer(e)),t=t||128;var r,i=e,a=e.length(),s=t,u=Math.ceil(s/8),l=255>>(7&s);for(r=a;r<128;r++)i.putByte(o[i.at(r-1)+i.at(r-a)&255]);for(i.setAt(128-u,o[i.at(128-u)&l]),r=127-u;r>=0;r--)i.setAt(r,o[i.at(r+1)^i.at(r+u)]);return i};var u=function(e,t,r){var o,u,l,c,f=!1,p=null,h=null,y=null,d=[];for(e=n.rc2.expandKey(e,t),l=0;l<64;l++)d.push(e.getInt16Le());r?(o=function(e){for(l=0;l<4;l++)e[l]+=d[c]+(e[(l+3)%4]&e[(l+2)%4])+(~e[(l+3)%4]&e[(l+1)%4]),e[l]=a(e[l],i[l]),c++},u=function(e){for(l=0;l<4;l++)e[l]+=d[63&e[(l+3)%4]]}):(o=function(e){for(l=3;l>=0;l--)e[l]=s(e[l],i[l]),e[l]-=d[c]+(e[(l+3)%4]&e[(l+2)%4])+(~e[(l+3)%4]&e[(l+1)%4]),c--},u=function(e){for(l=3;l>=0;l--)e[l]-=d[63&e[(l+3)%4]]});var m=function(e){var t=[];for(l=0;l<4;l++){var n=p.getInt16Le();null!==y&&(r?n^=y.getInt16Le():y.putInt16Le(n)),t.push(65535&n)}c=r?0:63;for(var o=0;o=8;)m([[5,o],[1,u],[6,o],[1,u],[5,o]])},finish:function(e){var t=!0;if(r)if(e)t=e(8,p,!r);else{var n=8===p.length()?8:8-p.length();p.fillWithByte(n,n)}if(t&&(f=!0,v.update()),!r&&(t=0===p.length()))if(e)t=e(8,h,!r);else{var o=h.length(),i=h.at(o-1);i>o?t=!1:h.truncate(i)}return t}}};n.rc2.startEncrypting=function(e,t,r){var o=n.rc2.createEncryptionCipher(e,128);return o.start(t,r),o},n.rc2.createEncryptionCipher=function(e,t){return u(e,t,!0)},n.rc2.startDecrypting=function(e,t,r){var o=n.rc2.createDecryptionCipher(e,128);return o.start(t,r),o},n.rc2.createDecryptionCipher=function(e,t){return u(e,t,!1)}},function(e,t,r){var n=r(0);r(1),r(2),r(9);var o=e.exports=n.pkcs1=n.pkcs1||{};function i(e,t,r){r||(r=n.md.sha1.create());for(var o="",i=Math.ceil(t/r.digestLength),a=0;a>24&255,a>>16&255,a>>8&255,255&a);r.start(),r.update(e+s),o+=r.digest().getBytes()}return o.substring(0,t)}o.encode_rsa_oaep=function(e,t,r){var o,a,s,u;"string"==typeof r?(o=r,a=arguments[3]||void 0,s=arguments[4]||void 0):r&&(o=r.label||void 0,a=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(u=r.mgf1.md)),s?s.start():s=n.md.sha1.create(),u||(u=s);var l=Math.ceil(e.n.bitLength()/8),c=l-2*s.digestLength-2;if(t.length>c)throw(d=new Error("RSAES-OAEP input message length is too long.")).length=t.length,d.maxLength=c,d;o||(o=""),s.update(o,"raw");for(var f=s.digest(),p="",h=c-t.length,y=0;ye&&(a=u(e,t));var h=a.toString(16);o.target.postMessage({hex:h,workLoad:c}),a.dAddOffset(f,0)}}}h()}(e,t,o,i):s(e,t,o,i)}(e,l,i.options,o);throw new Error("Invalid prime generation algorithm: "+i.name)}}function s(e,t,r,i){var a=u(e,t),s=function(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}(a.bitLength());"millerRabinTests"in r&&(s=r.millerRabinTests);var l=10;"maxBlockTime"in r&&(l=r.maxBlockTime),function e(t,r,i,a,s,l,c){var f=+new Date;do{if(t.bitLength()>r&&(t=u(r,i)),t.isProbablePrime(s))return c(null,t);t.dAddOffset(o[a++%8],0)}while(l<0||+new Date-f=0&&o.push(s):o.push(s))}return o}function h(e){if(e.composed||e.constructed){for(var t=n.util.createBuffer(),r=0;r0&&(u=o.create(o.Class.UNIVERSAL,o.Type.SET,!0,f));var p=[],h=[];null!==t&&(h=n.util.isArray(t)?t:[t]);for(var y=[],d=0;d0){var b=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,y),A=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.data).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,o.toDer(b).getBytes())])]);p.push(A)}var w=null;if(null!==e){var S=i.wrapRsaPrivateKey(i.privateKeyToAsn1(e));w=null===r?o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.keyBag).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[S]),u]):o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.pkcs8ShroudedKeyBag).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[i.encryptPrivateKeyInfo(S,r,s)]),u]);var C=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[w]),E=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.data).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,o.toDer(C).getBytes())])]);p.push(E)}var x,_=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,p);if(s.useMac){var I=n.md.sha1.create(),O=new n.util.ByteBuffer(n.random.getBytes(s.saltSize)),k=s.count,P=(e=a.generateKey(r,O,3,k,20),n.hmac.create());P.start(I,e),P.update(o.toDer(_).getBytes());var T=P.getMac();x=o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.sha1).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.NULL,!1,"")]),o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,T.getBytes())]),o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,O.getBytes()),o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,o.integerToDer(k).getBytes())])}return o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.INTEGER,!1,o.integerToDer(3).getBytes()),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(i.oids.data).getBytes()),o.create(o.Class.CONTEXT_SPECIFIC,0,!0,[o.create(o.Class.UNIVERSAL,o.Type.OCTETSTRING,!1,o.toDer(_).getBytes())])]),x])},a.generateKey=n.pbe.generatePkcs12Key},function(e,t,r){var n=r(0);r(3),r(1);var o=n.asn1,i=e.exports=n.pkcs7asn1=n.pkcs7asn1||{};n.pkcs7=n.pkcs7||{},n.pkcs7.asn1=i;var a={name:"ContentInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};i.contentInfoValidator=a;var s={name:"EncryptedContentInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:o.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};i.envelopedDataValidator={name:"EnvelopedData",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:o.Class.UNIVERSAL,type:o.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(s)},i.encryptedDataValidator={name:"EncryptedData",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"}].concat(s)};var u={name:"SignerInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:o.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:o.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]};i.signedDataValidator={name:"SignedData",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:o.Class.UNIVERSAL,type:o.Type.SET,constructed:!0,captureAsn1:"digestAlgorithms"},a,{name:"SignedData.Certificates",tagClass:o.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:o.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:o.Class.UNIVERSAL,type:o.Type.SET,capture:"signerInfos",optional:!0,value:[u]}]},i.recipientInfoValidator={name:"RecipientInfo",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:o.Class.UNIVERSAL,type:o.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:o.Class.UNIVERSAL,type:o.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:o.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter",optional:!0}]},{name:"RecipientInfo.encryptedKey",tagClass:o.Class.UNIVERSAL,type:o.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]}},function(e,t,r){var n=r(0);r(1),n.mgf=n.mgf||{},(e.exports=n.mgf.mgf1=n.mgf1=n.mgf1||{}).create=function(e){return{generate:function(t,r){for(var o=new n.util.ByteBuffer,i=Math.ceil(r/e.digestLength),a=0;a>>0,a>>>0];for(var s=h.fullMessageLength.length-1;s>=0;--s)h.fullMessageLength[s]+=a[1],a[1]=a[0]+(h.fullMessageLength[s]/4294967296>>>0),h.fullMessageLength[s]=h.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return o.putBytes(e),c(r,i,o),(o.read>2048||0===o.length())&&o.compact(),h},h.digest=function(){var t=n.util.createBuffer();t.putBytes(o.bytes());var s,u=h.fullMessageLength[h.fullMessageLength.length-1]+h.messageLengthSize&h.blockLength-1;t.putBytes(a.substr(0,h.blockLength-u));for(var l=8*h.fullMessageLength[0],f=0;f>>0,t.putInt32(l>>>0),l=s>>>0;t.putInt32(l);var p=new Array(r.length);for(f=0;f=128;){for(P=0;P<16;++P)t[P][0]=r.getInt32()>>>0,t[P][1]=r.getInt32()>>>0;for(;P<80;++P)n=(((T=(M=t[P-2])[0])>>>19|(j=M[1])<<13)^(j>>>29|T<<3)^T>>>6)>>>0,o=((T<<13|j>>>19)^(j<<3|T>>>29)^(T<<26|j>>>6))>>>0,i=(((T=(B=t[P-15])[0])>>>1|(j=B[1])<<31)^(T>>>8|j<<24)^T>>>7)>>>0,a=((T<<31|j>>>1)^(T<<24|j>>>8)^(T<<25|j>>>7))>>>0,N=t[P-7],L=t[P-16],j=o+N[1]+a+L[1],t[P][0]=n+N[0]+i+L[0]+(j/4294967296>>>0)>>>0,t[P][1]=j>>>0;for(y=e[0][0],d=e[0][1],m=e[1][0],v=e[1][1],g=e[2][0],b=e[2][1],A=e[3][0],w=e[3][1],S=e[4][0],C=e[4][1],E=e[5][0],x=e[5][1],_=e[6][0],I=e[6][1],O=e[7][0],k=e[7][1],P=0;P<80;++P)c=((S>>>14|C<<18)^(S>>>18|C<<14)^(C>>>9|S<<23))>>>0,f=(_^S&(E^_))>>>0,s=((y>>>28|d<<4)^(d>>>2|y<<30)^(d>>>7|y<<25))>>>0,l=((y<<4|d>>>28)^(d<<30|y>>>2)^(d<<25|y>>>7))>>>0,p=(y&m|g&(y^m))>>>0,h=(d&v|b&(d^v))>>>0,j=k+(((S<<18|C>>>14)^(S<<14|C>>>18)^(C<<23|S>>>9))>>>0)+((I^C&(x^I))>>>0)+u[P][1]+t[P][1],n=O+c+f+u[P][0]+t[P][0]+(j/4294967296>>>0)>>>0,o=j>>>0,i=s+p+((j=l+h)/4294967296>>>0)>>>0,a=j>>>0,O=_,k=I,_=E,I=x,E=S,x=C,S=A+n+((j=w+o)/4294967296>>>0)>>>0,C=j>>>0,A=g,w=b,g=m,b=v,m=y,v=d,y=n+i+((j=o+a)/4294967296>>>0)>>>0,d=j>>>0;j=e[0][1]+d,e[0][0]=e[0][0]+y+(j/4294967296>>>0)>>>0,e[0][1]=j>>>0,j=e[1][1]+v,e[1][0]=e[1][0]+m+(j/4294967296>>>0)>>>0,e[1][1]=j>>>0,j=e[2][1]+b,e[2][0]=e[2][0]+g+(j/4294967296>>>0)>>>0,e[2][1]=j>>>0,j=e[3][1]+w,e[3][0]=e[3][0]+A+(j/4294967296>>>0)>>>0,e[3][1]=j>>>0,j=e[4][1]+C,e[4][0]=e[4][0]+S+(j/4294967296>>>0)>>>0,e[4][1]=j>>>0,j=e[5][1]+x,e[5][0]=e[5][0]+E+(j/4294967296>>>0)>>>0,e[5][1]=j>>>0,j=e[6][1]+I,e[6][0]=e[6][0]+_+(j/4294967296>>>0)>>>0,e[6][1]=j>>>0,j=e[7][1]+k,e[7][0]=e[7][0]+O+(j/4294967296>>>0)>>>0,e[7][1]=j>>>0,R-=128}}},function(e,t,r){e.exports=r(33)},function(e,t,r){e.exports=r(0),r(5),r(36),r(3),r(13),r(10),r(38),r(8),r(40),r(41),r(42),r(30),r(15),r(7),r(26),r(28),r(43),r(21),r(27),r(24),r(18),r(2),r(25),r(44),r(20),r(1)},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==("undefined"==typeof window?"undefined":s(window))&&(r=window)}e.exports=r},function(e,t){var r={};e.exports=r;var n={};r.encode=function(e,t,r){if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');if(void 0!==r&&"number"!=typeof r)throw new TypeError('"maxline" must be a number.');var n="";if(e instanceof Uint8Array){var o=0,i=t.length,a=t.charAt(0),s=[0];for(o=0;o0;)s.push(l%i),l=l/i|0}for(o=0;0===e[o]&&o=0;--o)n+=t[s[o]]}else n=function(e,t){var r=0,n=t.length,o=t.charAt(0),i=[0];for(r=0;r0;)i.push(s%n),s=s/n|0}var u="";for(r=0;0===e.at(r)&&r=0;--r)u+=t[i[r]];return u}(e,t);if(r){var c=new RegExp(".{1,"+r+"}","g");n=n.match(c).join("\r\n")}return n},r.decode=function(e,t){if("string"!=typeof e)throw new TypeError('"input" must be a string.');if("string"!=typeof t)throw new TypeError('"alphabet" must be a string.');var r=n[t];if(!r){r=n[t]=[];for(var o=0;o>=8;for(;c>0;)s.push(255&c),c>>=8}for(var f=0;e[f]===a&&f=o.Versions.TLS_1_1.minor&&u.output.putBytes(r),u.update(e.fragment),u.finish(s)&&(e.fragment=u.output,e.length=e.fragment.length(),i=!0),i}function s(e,t,r){if(!r){var n=e-t.length()%e;t.fillWithByte(n-1,n)}return!0}function u(e,t,r){var n=!0;if(r){for(var o=t.length(),i=t.last(),a=o-1-i;a=s?(e.fragment=a.output.getBytes(c-s),l=a.output.getBytes(s)):e.fragment=a.output.getBytes(),e.fragment=n.util.createBuffer(e.fragment),e.length=e.fragment.length();var f=t.macFunction(t.macKey,t.sequenceNumber,e);return t.updateSequenceNumber(),function(e,t,r){var o=n.hmac.create();return o.start("SHA1",e),o.update(t),t=o.digest().getBytes(),o.start(null,null),o.update(r),t===(r=o.digest().getBytes())}(t.macKey,l,f)&&i}o.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA={id:[0,47],name:"TLS_RSA_WITH_AES_128_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=o.BulkCipherAlgorithm.aes,e.cipher_type=o.CipherType.block,e.enc_key_length=16,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=o.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:i},o.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA={id:[0,53],name:"TLS_RSA_WITH_AES_256_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=o.BulkCipherAlgorithm.aes,e.cipher_type=o.CipherType.block,e.enc_key_length=32,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=o.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:i}},function(e,t,r){var n=r(0);r(30),e.exports=n.mgf=n.mgf||{},n.mgf.mgf1=n.mgf1},function(e,t,r){var n=r(0);r(12),r(2),r(31),r(1);var o=r(39),i=o.publicKeyValidator,a=o.privateKeyValidator;if(void 0===s)var s=n.jsbn.BigInteger;var u=n.util.ByteBuffer,l="undefined"==typeof Buffer?Uint8Array:Buffer;n.pki=n.pki||{},e.exports=n.pki.ed25519=n.ed25519=n.ed25519||{};var c=n.ed25519;function f(e){var t=e.message;if(t instanceof Uint8Array||t instanceof l)return t;var r=e.encoding;if(void 0===t){if(!e.md)throw new TypeError('"options.message" or "options.md" not specified.');t=e.md.digest().getBytes(),r="binary"}if("string"==typeof t&&!r)throw new TypeError('"options.encoding" must be "binary" or "utf8".');if("string"==typeof t){if("undefined"!=typeof Buffer)return Buffer.from(t,r);t=new u(t,r)}else if(!(t instanceof u))throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.');for(var n=new l(t.length()),o=0;o=0;--r)D(n,n),1!==r&&F(n,n,t);for(r=0;r<16;++r)e[r]=n[r]}(r,r),F(r,r,o),F(r,r,i),F(r,r,i),F(e[0],r,i),D(n,e[0]),F(n,n,i),I(n,o)&&F(e[0],e[0],b),D(n,e[0]),F(n,n,i),I(n,o)?-1:(k(e[0])===t[31]>>7&&R(e[0],p,e[0]),F(e[3],e[0],e[1]),0)}(s,n))return-1;for(o=0;o=0};var p=B(),h=B([1]),y=B([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),d=B([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),m=B([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),v=B([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),g=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),b=B([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function A(e,t){var r=n.md.sha512.create(),o=new u(e);r.update(o.getBytes(t),"binary");var i=r.digest().getBytes();if("undefined"!=typeof Buffer)return Buffer.from(i,"binary");for(var a=new l(c.constants.HASH_BYTE_LENGTH),s=0;s<64;++s)a[s]=i.charCodeAt(s);return a}function w(e,t){var r,n,o,i;for(n=63;n>=32;--n){for(r=0,o=n-32,i=n-12;o>8,t[o]-=256*r;t[o]+=r,t[n]=0}for(r=0,o=0;o<32;++o)t[o]+=r-(t[31]>>4)*g[o],r=t[o]>>8,t[o]&=255;for(o=0;o<32;++o)t[o]-=r*g[o];for(n=0;n<32;++n)t[n+1]+=t[n]>>8,e[n]=255&t[n]}function S(e){for(var t=new Float64Array(64),r=0;r<64;++r)t[r]=e[r],e[r]=0;w(e,t)}function C(e,t){var r=B(),n=B(),o=B(),i=B(),a=B(),s=B(),u=B(),l=B(),c=B();R(r,e[1],e[0]),R(c,t[1],t[0]),F(r,r,c),L(n,e[0],e[1]),L(c,t[0],t[1]),F(n,n,c),F(o,e[3],t[3]),F(o,o,d),F(i,e[2],t[2]),L(i,i,i),R(a,n,r),R(s,i,o),L(u,i,o),L(l,n,r),F(e[0],a,s),F(e[1],l,u),F(e[2],u,s),F(e[3],a,l)}function E(e,t,r){for(var n=0;n<4;++n)N(e[n],t[n],r)}function x(e,t){var r=B(),n=B(),o=B();!function(e,t){var r,n=B();for(r=0;r<16;++r)n[r]=t[r];for(r=253;r>=0;--r)D(n,n),2!==r&&4!==r&&F(n,n,t);for(r=0;r<16;++r)e[r]=n[r]}(o,t[2]),F(r,t[0],o),F(n,t[1],o),_(e,n),e[31]^=k(r)<<7}function _(e,t){var r,n,o,i=B(),a=B();for(r=0;r<16;++r)a[r]=t[r];for(M(a),M(a),M(a),n=0;n<2;++n){for(i[0]=a[0]-65517,r=1;r<15;++r)i[r]=a[r]-65535-(i[r-1]>>16&1),i[r-1]&=65535;i[15]=a[15]-32767-(i[14]>>16&1),o=i[15]>>16&1,i[14]&=65535,N(a,i,1-o)}for(r=0;r<16;r++)e[2*r]=255&a[r],e[2*r+1]=a[r]>>8}function I(e,t){var r=new l(32),n=new l(32);return _(r,e),_(n,t),O(r,0,n,0)}function O(e,t,r,n){return function(e,t,r,n,o){var i,a=0;for(i=0;i<32;++i)a|=e[t+i]^r[n+i];return(1&a-1>>>8)-1}(e,t,r,n)}function k(e){var t=new l(32);return _(t,e),1&t[0]}function P(e,t,r){var n,o;for(j(e[0],p),j(e[1],h),j(e[2],h),j(e[3],p),o=255;o>=0;--o)E(e,t,n=r[o/8|0]>>(7&o)&1),C(t,e),C(e,e),E(e,t,n)}function T(e,t){var r=[B(),B(),B(),B()];j(r[0],m),j(r[1],v),j(r[2],h),F(r[3],m,v),P(e,r,t)}function j(e,t){var r;for(r=0;r<16;r++)e[r]=0|t[r]}function M(e){var t,r,n=1;for(t=0;t<16;++t)r=e[t]+n+65535,n=Math.floor(r/65536),e[t]=r-65536*n;e[0]+=n-1+37*(n-1)}function N(e,t,r){for(var n,o=~(r-1),i=0;i<16;++i)n=o&(e[i]^t[i]),e[i]^=n,t[i]^=n}function B(e){var t,r=new Float64Array(16);if(e)for(t=0;t0&&(a=n.util.fillString(String.fromCharCode(0),u)+a),{encapsulation:t.encrypt(a,"NONE"),key:e.generate(a,i)}},decrypt:function(t,r,n){var o=t.decrypt(r,"NONE");return e.generate(o,n)}}},n.kem.kdf1=function(e,t){i(this,e,0,t||e.digestLength)},n.kem.kdf2=function(e,t){i(this,e,1,t||e.digestLength)}},function(e,t,r){var n=r(0);r(1),e.exports=n.log=n.log||{},n.log.levels=["none","error","warning","info","debug","verbose","max"];var o={},i=[],a=null;n.log.LEVEL_LOCKED=2,n.log.NO_LEVEL_CHECK=4,n.log.INTERPOLATE=8;for(var s=0;s0){for(var r=o.create(o.Class.CONTEXT_SPECIFIC,1,!0,[]),i=0;i=r&&a0&&a.value[0].value.push(o.create(o.Class.CONTEXT_SPECIFIC,0,!0,t)),i.length>0&&a.value[0].value.push(o.create(o.Class.CONTEXT_SPECIFIC,1,!0,i)),a.value[0].value.push(o.create(o.Class.UNIVERSAL,o.Type.SET,!0,e.signerInfos)),o.create(o.Class.UNIVERSAL,o.Type.SEQUENCE,!0,[o.create(o.Class.UNIVERSAL,o.Type.OID,!1,o.oidToDer(e.type).getBytes()),a])},addSigner:function(t){var r=t.issuer,o=t.serialNumber;if(t.certificate){var i=t.certificate;"string"==typeof i&&(i=n.pki.certificateFromPem(i)),r=i.issuer.attributes,o=i.serialNumber}var a=t.key;if(!a)throw new Error("Could not add PKCS#7 signer; no private key specified.");"string"==typeof a&&(a=n.pki.privateKeyFromPem(a));var s=t.digestAlgorithm||n.pki.oids.sha1;switch(s){case n.pki.oids.sha1:case n.pki.oids.sha256:case n.pki.oids.sha384:case n.pki.oids.sha512:case n.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+s)}var u=t.authenticatedAttributes||[];if(u.length>0){for(var l=!1,c=!1,f=0;f="8"&&(r="00"+r);var o=n.util.hexToBytes(r);e.putInt32(o.length),e.putBytes(o)}function a(e,t){e.putInt32(t.length),e.putString(t)}function s(){for(var e=n.md.sha1.create(),t=arguments.length,r=0;r=e.minX&&t.maxY>=e.minY}function d(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function m(e,t,r,o,i){for(var a,s=[t,r];s.length;)(r=s.pop())-(t=s.pop())<=o||(a=t+Math.ceil((r-t)/o/2)*o,n(e,a,t,r,i),s.push(t,a,a,r))}o.prototype={all:function(){return this._all(this.data,[])},search:function(e){var t=this.data,r=[],n=this.toBBox;if(!y(e,t))return r;for(var o,i,a,s,u=[];t;){for(o=0,i=t.children.length;o=0&&i[t].children.length>this._maxEntries;)this._split(i,t),t--;this._adjustParentBBoxes(o,i,t)},_split:function(e,t){var r=e[t],n=r.children.length,o=this._minEntries;this._chooseSplitAxis(r,o,n);var i=this._chooseSplitIndex(r,o,n),s=d(r.children.splice(i,r.children.length-i));s.height=r.height,s.leaf=r.leaf,a(r,this.toBBox),a(s,this.toBBox),t?e[t-1].children.push(s):this._splitRoot(r,s)},_splitRoot:function(e,t){this.data=d([e,t]),this.data.height=e.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},_chooseSplitIndex:function(e,t,r){var n,o,i,a,u,l,c,p,h,y,d,m,v,g;for(l=c=1/0,n=t;n<=r-t;n++)o=s(e,0,n,this.toBBox),i=s(e,n,r,this.toBBox),h=o,y=i,void 0,void 0,void 0,void 0,d=Math.max(h.minX,y.minX),m=Math.max(h.minY,y.minY),v=Math.min(h.maxX,y.maxX),g=Math.min(h.maxY,y.maxY),a=Math.max(0,v-d)*Math.max(0,g-m),u=f(o)+f(i),a=t;o--)i=e.children[o],u(c,e.leaf?a(i):i),f+=p(c);return f},_adjustParentBBoxes:function(e,t,r){for(var n=r;n>=0;n--)u(t[n],e)},_condense:function(e){for(var t,r=e.length-1;r>=0;r--)0===e[r].children.length?r>0?(t=e[r-1].children).splice(t.indexOf(e[r]),1):this.clear():a(e[r],this.toBBox)},_initFormat:function(e){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(e[0])),this.compareMinY=new Function("a","b",t.join(e[1])),this.toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}},2299:function(e,t,r){var n,o,i;function a(e){"@babel/helpers - typeof";return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}i=function(){"use strict";function e(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function t(e,t){return et?1:0}return function(r,n,o,i,a){!function t(r,n,o,i,a){for(;i>o;){if(i-o>600){var s=i-o+1,u=n-o+1,l=Math.log(s),c=.5*Math.exp(2*l/3),f=.5*Math.sqrt(l*c*(s-c)/s)*(u-s/2<0?-1:1),p=Math.max(o,Math.floor(n-u*c/s+f)),h=Math.min(i,Math.floor(n+(s-u)*c/s+f));t(r,n,p,h,a)}var y=r[n],d=o,m=i;for(e(r,o,n),a(r[i],y)>0&&e(r,o,i);d0;)m--}0===a(r[o],y)?e(r,o,m):e(r,++m,i),m<=n&&(o=m+1),n<=m&&(i=m-1)}}(r,n,o||0,i||r.length-1,a||t)}},"object"===a(t)?e.exports=i():void 0===(o="function"==typeof(n=i)?n.call(t,r,t,e):n)||(e.exports=o)},9973:function(e){e.exports=function(e){this.ok=!1,this.alpha=1,"#"==e.charAt(0)&&(e=e.substr(1,6)),e=(e=e.replace(/ /g,"")).toLowerCase();var t={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dodgerblue:"1e90ff",feldspar:"d19275",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgrey:"d3d3d3",lightgreen:"90ee90",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslateblue:"8470ff",lightslategray:"778899",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"00ff00",limegreen:"32cd32",linen:"faf0e6",magenta:"ff00ff",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370d8",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"d87093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"ff0000",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",violetred:"d02090",wheat:"f5deb3",white:"ffffff",whitesmoke:"f5f5f5",yellow:"ffff00",yellowgreen:"9acd32"};e=t[e]||e;for(var r=[{re:/^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((?:\d?\.)?\d)\)$/,example:["rgba(123, 234, 45, 0.8)","rgba(255,234,245,1.0)"],process:function(e){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3]),parseFloat(e[4])]}},{re:/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/,example:["rgb(123, 234, 45)","rgb(255,234,245)"],process:function(e){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}},{re:/^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,example:["#00ff00","336699"],process:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/^([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,example:["#fb0","f0f"],process:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}}],n=0;n3&&(this.alpha=s[3]),this.ok=!0}}this.r=this.r<0||isNaN(this.r)?0:this.r>255?255:this.r,this.g=this.g<0||isNaN(this.g)?0:this.g>255?255:this.g,this.b=this.b<0||isNaN(this.b)?0:this.b>255?255:this.b,this.alpha=this.alpha<0?0:this.alpha>1||isNaN(this.alpha)?1:this.alpha,this.toRGB=function(){return"rgb("+this.r+", "+this.g+", "+this.b+")"},this.toRGBA=function(){return"rgba("+this.r+", "+this.g+", "+this.b+", "+this.alpha+")"},this.toHex=function(){var e=this.r.toString(16),t=this.g.toString(16),r=this.b.toString(16);return 1==e.length&&(e="0"+e),1==t.length&&(t="0"+t),1==r.length&&(r="0"+r),"#"+e+t+r},this.getHelpXML=function(){for(var e=new Array,n=0;n "+l.toRGB()+" -> "+l.toHex());u.appendChild(c),u.appendChild(f),s.appendChild(u)}catch(e){}return s}}},5400:function(e,t,r){var n,o;function i(e){"@babel/helpers - typeof";return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),function(a,s){"use strict";"object"===i(e)&&e.exports?e.exports=s():void 0===(o="function"==typeof(n=s)?n.call(t,r,t,e):n)||(e.exports=o)}(0,function(e){"use strict";var t=e&&e.IPv6;return{best:function(e){var t,r,n=e.toLowerCase().split(":"),o=n.length,i=8;for(""===n[0]&&""===n[1]&&""===n[2]?(n.shift(),n.shift()):""===n[0]&&""===n[1]?n.shift():""===n[o-1]&&""===n[o-2]&&n.pop(),-1!==n[(o=n.length)-1].indexOf(".")&&(i=7),t=0;t1;s++)r.splice(0,1);n[a]=r.join("")}var u=-1,l=0,c=0,f=-1,p=!1;for(a=0;al&&(u=f,l=c)):"0"===n[a]&&(p=!0,f=a,c=1);c>l&&(u=f,l=c),l>1&&n.splice(u,l,""),o=n.length;var h="";for(""===n[0]&&(h=":"),a=0;a=e.length-1)return!1;var n=e.lastIndexOf(".",t-1);if(n<=0||n>=t-1)return!1;var o=r.list[e.slice(t+1)];return!!o&&o.indexOf(" "+e.slice(n+1,t)+" ")>=0},is:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return!1;if(e.lastIndexOf(".",t-1)>=0)return!1;var n=r.list[e.slice(t+1)];return!!n&&n.indexOf(" "+e.slice(0,t)+" ")>=0},get:function(e){var t=e.lastIndexOf(".");if(t<=0||t>=e.length-1)return null;var n=e.lastIndexOf(".",t-1);if(n<=0||n>=t-1)return null;var o=r.list[e.slice(t+1)];return o?o.indexOf(" "+e.slice(n+1,t)+" ")<0?null:e.slice(n+1):null},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return r})},7411:function(e,t,r){var n,o,i;function a(e){"@babel/helpers - typeof";return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e=r.nmd(e),function(s,u){"use strict";"object"===a(e)&&e.exports?e.exports=u(r(9018),r(5400),r(2714)):(o=[r(9018),r(5400),r(2714)],void 0===(i="function"==typeof(n=u)?n.apply(t,o):n)||(e.exports=i))}(0,function(e,t,r,n){"use strict";var o=n&&n.URI;function i(e,t){var r=arguments.length>=1,n=arguments.length>=2;if(!(this instanceof i))return r?n?new i(e,t):new i(e):new i;if(void 0===e){if(r)throw new TypeError("undefined is not a valid argument for URI");e="undefined"!=typeof location?location.href+"":""}if(null===e&&r)throw new TypeError("null is not a valid argument for URI");return this.href(e),void 0!==t?this.absoluteTo(t):this}i.version="1.19.11";var s=i.prototype,u=Object.prototype.hasOwnProperty;function l(e){return e.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function c(e){return void 0===e?"Undefined":String(Object.prototype.toString.call(e)).slice(8,-1)}function f(e){return"Array"===c(e)}function p(e,t){var r,n,o={};if("RegExp"===c(t))o=null;else if(f(t))for(r=0,n=t.length;r]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi,i.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},i.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,i.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,i.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},i.hostProtocols=["http","https"],i.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,i.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},i.getDomAttribute=function(e){if(e&&e.nodeName){var t=e.nodeName.toLowerCase();if("input"!==t||"image"===e.type)return i.domAttributes[t]}},i.encode=v,i.decode=decodeURIComponent,i.iso8859=function(){i.encode=escape,i.decode=unescape},i.unicode=function(){i.encode=v,i.decode=decodeURIComponent},i.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/gi,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/gi,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/gi,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},i.encodeQuery=function(e,t){var r=i.encode(e+"");return void 0===t&&(t=i.escapeQuerySpace),t?r.replace(/%20/g,"+"):r},i.decodeQuery=function(e,t){e+="",void 0===t&&(t=i.escapeQuerySpace);try{return i.decode(t?e.replace(/\+/g,"%20"):e)}catch(t){return e}};var g,b={encode:"encode",decode:"decode"},A=function(e,t){return function(r){try{return i[t](r+"").replace(i.characters[e][t].expression,function(r){return i.characters[e][t].map[r]})}catch(e){return r}}};for(g in b)i[g+"PathSegment"]=A("pathname",b[g]),i[g+"UrnPathSegment"]=A("urnpath",b[g]);var w=function(e,t,r){return function(n){var o;o=r?function(e){return i[t](i[r](e))}:i[t];for(var a=(n+"").split(e),s=0,u=a.length;s-1&&(t.fragment=e.substring(r+1)||null,e=e.substring(0,r)),(r=e.indexOf("?"))>-1&&(t.query=e.substring(r+1)||null,e=e.substring(0,r)),"//"===(e=(e=e.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://")).replace(/^[/\\]{2,}/i,"//")).substring(0,2)?(t.protocol=null,e=e.substring(2),e=i.parseAuthority(e,t)):(r=e.indexOf(":"))>-1&&(t.protocol=e.substring(0,r)||null,t.protocol&&!t.protocol.match(i.protocol_expression)?t.protocol=void 0:"//"===e.substring(r+1,r+3).replace(/\\/g,"/")?(e=e.substring(r+3),e=i.parseAuthority(e,t)):(e=e.substring(r+1),t.urn=!0)),t.path=e,t},i.parseHost=function(e,t){e||(e="");var r,n,o=(e=e.replace(/\\/g,"/")).indexOf("/");if(-1===o&&(o=e.length),"["===e.charAt(0))r=e.indexOf("]"),t.hostname=e.substring(1,r)||null,t.port=e.substring(r+2,o)||null,"/"===t.port&&(t.port=null);else{var a=e.indexOf(":"),s=e.indexOf("/"),u=e.indexOf(":",a+1);-1!==u&&(-1===s||u-1?o:e.length-1);return a>-1&&(-1===o||a-1?h.slice(0,y)+h.slice(y).replace(a,""):h.replace(a,"")).length<=l[0].length||r.ignore&&r.ignore.test(h))){var v=t(h,c,p=c+h.length,e);void 0!==v?(v=String(v),e=e.slice(0,c)+v+e.slice(p),n.lastIndex=c+v.length):n.lastIndex=p}}return n.lastIndex=0,e},i.ensureValidHostname=function(t,r){var n=!!t,o=!1;if(!!r&&(o=h(i.hostProtocols,r)),o&&!n)throw new TypeError("Hostname cannot be empty, if protocol is "+r);if(t&&t.match(i.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(t).match(i.invalid_hostname_characters))throw new TypeError('Hostname "'+t+'" contains characters other than [A-Z0-9.-:_]')}},i.ensureValidPort=function(e){if(e){var t=Number(e);if(!(/^[0-9]+$/.test(t)&&t>0&&t<65536))throw new TypeError('Port "'+e+'" is not a valid port')}},i.noConflict=function(e){if(e){var t={URI:this.noConflict()};return n.URITemplate&&"function"==typeof n.URITemplate.noConflict&&(t.URITemplate=n.URITemplate.noConflict()),n.IPv6&&"function"==typeof n.IPv6.noConflict&&(t.IPv6=n.IPv6.noConflict()),n.SecondLevelDomains&&"function"==typeof n.SecondLevelDomains.noConflict&&(t.SecondLevelDomains=n.SecondLevelDomains.noConflict()),t}return n.URI===this&&(n.URI=o),this},s.build=function(e){return!0===e?this._deferred_build=!0:(void 0===e||this._deferred_build)&&(this._string=i.build(this._parts),this._deferred_build=!1),this},s.clone=function(){return new i(this)},s.valueOf=s.toString=function(){return this.build(!1)._string},s.protocol=S("protocol"),s.username=S("username"),s.password=S("password"),s.hostname=S("hostname"),s.port=S("port"),s.query=C("query","?"),s.fragment=C("fragment","#"),s.search=function(e,t){var r=this.query(e,t);return"string"==typeof r&&r.length?"?"+r:r},s.hash=function(e,t){var r=this.fragment(e,t);return"string"==typeof r&&r.length?"#"+r:r},s.pathname=function(e,t){if(void 0===e||!0===e){var r=this._parts.path||(this._parts.hostname?"/":"");return e?(this._parts.urn?i.decodeUrnPath:i.decodePath)(r):r}return this._parts.urn?this._parts.path=e?i.recodeUrnPath(e):"":this._parts.path=e?i.recodePath(e):"/",this.build(!t),this},s.path=s.pathname,s.href=function(e,t){var r;if(void 0===e)return this.toString();this._string="",this._parts=i._parts();var n=e instanceof i,o="object"===a(e)&&(e.hostname||e.path||e.pathname);e.nodeName&&(e=e[i.getDomAttribute(e)]||"",o=!1);if(!n&&o&&void 0!==e.pathname&&(e=e.toString()),"string"==typeof e||e instanceof String)this._parts=i.parse(String(e),this._parts);else{if(!n&&!o)throw new TypeError("invalid input");var s=n?e._parts:e;for(r in s)"query"!==r&&u.call(this._parts,r)&&(this._parts[r]=s[r]);s.query&&this.query(s.query,!1)}return this.build(!t),this},s.is=function(e){var t=!1,n=!1,o=!1,a=!1,s=!1,u=!1,l=!1,c=!this._parts.urn;switch(this._parts.hostname&&(c=!1,n=i.ip4_expression.test(this._parts.hostname),o=i.ip6_expression.test(this._parts.hostname),s=(a=!(t=n||o))&&r&&r.has(this._parts.hostname),u=a&&i.idn_expression.test(this._parts.hostname),l=a&&i.punycode_expression.test(this._parts.hostname)),e.toLowerCase()){case"relative":return c;case"absolute":return!c;case"domain":case"name":return a;case"sld":return s;case"ip":return t;case"ip4":case"ipv4":case"inet4":return n;case"ip6":case"ipv6":case"inet6":return o;case"idn":return u;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return l}return null};var E=s.protocol,x=s.port,_=s.hostname;s.protocol=function(e,t){if(e&&!(e=e.replace(/:(\/\/)?$/,"")).match(i.protocol_expression))throw new TypeError('Protocol "'+e+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return E.call(this,e,t)},s.scheme=s.protocol,s.port=function(e,t){return this._parts.urn?void 0===e?"":this:(void 0!==e&&(0===e&&(e=null),e&&(":"===(e+="").charAt(0)&&(e=e.substring(1)),i.ensureValidPort(e))),x.call(this,e,t))},s.hostname=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0!==e){var r={preventInvalidHostname:this._parts.preventInvalidHostname};if("/"!==i.parseHost(e,r))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');e=r.hostname,this._parts.preventInvalidHostname&&i.ensureValidHostname(e,this._parts.protocol)}return _.call(this,e,t)},s.origin=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var r=this.protocol();return this.authority()?(r?r+"://":"")+this.authority():""}var n=i(e);return this.protocol(n.protocol()).authority(n.authority()).build(!t),this},s.host=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildHost(this._parts):"";if("/"!==i.parseHost(e,this._parts))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.authority=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e)return this._parts.hostname?i.buildAuthority(this._parts):"";if("/"!==i.parseAuthority(e,this._parts))throw new TypeError('Hostname "'+e+'" contains characters other than [A-Z0-9.-]');return this.build(!t),this},s.userinfo=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){var r=i.buildUserinfo(this._parts);return r?r.substring(0,r.length-1):r}return"@"!==e[e.length-1]&&(e+="@"),i.parseUserinfo(e,this._parts),this.build(!t),this},s.resource=function(e,t){var r;return void 0===e?this.path()+this.search()+this.hash():(r=i.parse(e),this._parts.path=r.path,this._parts.query=r.query,this._parts.fragment=r.fragment,this.build(!t),this)},s.subdomain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,r)||""}var n=this._parts.hostname.length-this.domain().length,o=this._parts.hostname.substring(0,n),a=new RegExp("^"+l(o));if(e&&"."!==e.charAt(e.length-1)&&(e+="."),-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");return e&&i.ensureValidHostname(e,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(a,e),this.build(!t),this},s.domain=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"==typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var r=this._parts.hostname.match(/\./g);if(r&&r.length<2)return this._parts.hostname;var n=this._parts.hostname.length-this.tld(t).length-1;return n=this._parts.hostname.lastIndexOf(".",n-1)+1,this._parts.hostname.substring(n)||""}if(!e)throw new TypeError("cannot set domain empty");if(-1!==e.indexOf(":"))throw new TypeError("Domains cannot contain colons");if(i.ensureValidHostname(e,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=e;else{var o=new RegExp(l(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(o,e)}return this.build(!t),this},s.tld=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("boolean"==typeof e&&(t=e,e=void 0),void 0===e){if(!this._parts.hostname||this.is("IP"))return"";var n=this._parts.hostname.lastIndexOf("."),o=this._parts.hostname.substring(n+1);return!0!==t&&r&&r.list[o.toLowerCase()]&&r.get(this._parts.hostname)||o}var i;if(!e)throw new TypeError("cannot set TLD empty");if(e.match(/[^a-zA-Z0-9-]/)){if(!r||!r.is(e))throw new TypeError('TLD "'+e+'" contains characters other than [A-Z0-9]');i=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");i=new RegExp(l(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(i,e)}return this.build(!t),this},s.directory=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var r=this._parts.path.length-this.filename().length-1,n=this._parts.path.substring(0,r)||(this._parts.hostname?"/":"");return e?i.decodePath(n):n}var o=this._parts.path.length-this.filename().length,a=this._parts.path.substring(0,o),s=new RegExp("^"+l(a));return this.is("relative")||(e||(e="/"),"/"!==e.charAt(0)&&(e="/"+e)),e&&"/"!==e.charAt(e.length-1)&&(e+="/"),e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e),this.build(!t),this},s.filename=function(e,t){if(this._parts.urn)return void 0===e?"":this;if("string"!=typeof e){if(!this._parts.path||"/"===this._parts.path)return"";var r=this._parts.path.lastIndexOf("/"),n=this._parts.path.substring(r+1);return e?i.decodePathSegment(n):n}var o=!1;"/"===e.charAt(0)&&(e=e.substring(1)),e.match(/\.?\//)&&(o=!0);var a=new RegExp(l(this.filename())+"$");return e=i.recodePath(e),this._parts.path=this._parts.path.replace(a,e),o?this.normalizePath(t):this.build(!t),this},s.suffix=function(e,t){if(this._parts.urn)return void 0===e?"":this;if(void 0===e||!0===e){if(!this._parts.path||"/"===this._parts.path)return"";var r,n,o=this.filename(),a=o.lastIndexOf(".");return-1===a?"":(r=o.substring(a+1),n=/^[a-z0-9%]+$/i.test(r)?r:"",e?i.decodePathSegment(n):n)}"."===e.charAt(0)&&(e=e.substring(1));var s,u=this.suffix();if(u)s=e?new RegExp(l(u)+"$"):new RegExp(l("."+u)+"$");else{if(!e)return this;this._parts.path+="."+i.recodePath(e)}return s&&(e=i.recodePath(e),this._parts.path=this._parts.path.replace(s,e)),this.build(!t),this},s.segment=function(e,t,r){var n=this._parts.urn?":":"/",o=this.path(),i="/"===o.substring(0,1),a=o.split(n);if(void 0!==e&&"number"!=typeof e&&(r=t,t=e,e=void 0),void 0!==e&&"number"!=typeof e)throw new Error('Bad segment "'+e+'", must be 0-based integer');if(i&&a.shift(),e<0&&(e=Math.max(a.length+e,0)),void 0===t)return void 0===e?a:a[e];if(null===e||void 0===a[e])if(f(t)){a=[];for(var s=0,u=t.length;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},E=p-h,x=Math.floor,_=String.fromCharCode;function I(e){throw new RangeError(C[e])}function O(e,t){for(var r=e.length,n=[];r--;)n[r]=t(e[r]);return n}function k(e,t){var r=e.split("@"),n="";return r.length>1&&(n=r[0]+"@",e=r[1]),n+O((e=e.replace(S,".")).split("."),t).join(".")}function P(e){for(var t,r,n=[],o=0,i=e.length;o=55296&&t<=56319&&o65535&&(t+=_((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=_(e)}).join("")}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function M(e,t,r){var n=0;for(e=r?x(e/m):e>>1,e+=x(e/t);e>E*y>>1;n+=p)e=x(e/E);return x(n+(E+1)*e/(e+d))}function N(e){var t,r,n,o,i,a,s,u,l,c,d,m=[],A=e.length,w=0,S=g,C=v;for((r=e.lastIndexOf(b))<0&&(r=0),n=0;n=128&&I("not-basic"),m.push(e.charCodeAt(n));for(o=r>0?r+1:0;o=A&&I("invalid-input"),((u=(d=e.charCodeAt(o++))-48<10?d-22:d-65<26?d-65:d-97<26?d-97:p)>=p||u>x((f-w)/a))&&I("overflow"),w+=u*a,!(u<(l=s<=C?h:s>=C+y?y:s-C));s+=p)a>x(f/(c=p-l))&&I("overflow"),a*=c;C=M(w-i,t=m.length+1,0==i),x(w/t)>f-S&&I("overflow"),S+=x(w/t),w%=t,m.splice(w++,0,S)}return T(m)}function B(e){var t,r,n,o,i,a,s,u,l,c,d,m,A,w,S,C=[];for(m=(e=P(e)).length,t=g,r=0,i=v,a=0;a=t&&dx((f-r)/(A=n+1))&&I("overflow"),r+=(s-t)*A,t=s,a=0;af&&I("overflow"),d==t){for(u=r,l=p;!(u<(c=l<=i?h:l>=i+y?y:l-i));l+=p)S=u-c,w=p-c,C.push(_(j(c+S%w,0))),u=x(S/w);C.push(_(j(u,0))),i=M(r,A,n==o),r=0,++n}++r,++t}return C.join("")}if(l={version:"1.3.2",ucs2:{decode:P,encode:T},decode:N,encode:B,toASCII:function(e){return k(e,function(e){return w.test(e)?"xn--"+B(e):e})},toUnicode:function(e){return k(e,function(e){return A.test(e)?N(e.slice(4).toLowerCase()):e})}},"object"==o(r.amdO)&&r.amdO)void 0===(n=function(){return l}.call(t,r,t,e))||(e.exports=n);else if(a&&s)if(e.exports==a)s.exports=l;else for(c in l)l.hasOwnProperty(c)&&(a[c]=l[c]);else i.punycode=l}(this)},4539:function(){"use strict"},8099:function(e,t,r){"use strict";var n=mapboxgl,o=r.n(n),i={values:[],set:function(e){return this.values=e,this.values},add:function(e){return this.values.push(e),this.values}},a=(r(5246),r(1358),r(3678)),s=r.n(a),u={lastSeqID:0,parentUtil:null,setRelativeParentUtil:function(e){u.parentUtil=e},createUniqueID:function(e){return function(e,t){null==e&&(e="id_");return t.lastSeqID+=1,e+t.lastSeqID}(e,u.parentUtil||u)},extend:function(e,t){if(e=e||{},t){for(var r in t){var n=t[r];void 0!==n&&(e[r]=n)}!("function"==typeof window.Event&&t instanceof window.Event)&&t.hasOwnProperty&&t.hasOwnProperty("toString")&&(e.toString=t.toString)}return e}};function l(e){"@babel/helpers - typeof";return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var r=0;r0&&(r=parseFloat(e.toPrecision(t))),r},format:function(e,t,r,n){t=void 0!==t?t:0,r=void 0!==r?r:y.thousandsSeparator,n=void 0!==n?n:y.decimalSeparator,null!=t&&(e=parseFloat(e.toFixed(t)));var o=e.toString().split(".");1===o.length&&null==t&&(t=0);var i,a=o[0];if(r)for(var s=/(-?[0-9]+)([0-9]{3})/;s.test(a);)a=a.replace(s,"$1"+r+"$2");if(0==t)i=a;else{var u=o.length>1?o[1]:"0";null!=t&&(u+=new Array(t-u.length+1).join("0")),i=a+n+u}return i}};Number.prototype.limitSigDigs||(Number.prototype.limitSigDigs=function(e){return y.limitSigDigs(this,e)});var d={bind:function(e,t){var r=Array.prototype.slice.apply(arguments,[2]);return function(){var n=r.concat(Array.prototype.slice.apply(arguments,[0]));return e.apply(t,n)}},bindAsEventListener:function(e,t){return function(r){return e.call(t,r||window.event)}},False:function(){return!1},True:function(){return!0},Void:function(){}},m={filter:function(e,t,r){var n=[];if(Array.prototype.filter)n=e.filter(t,r);else{var o=e.length;if("function"!=typeof t)throw new TypeError;for(var i=0;i-1||O.indexOf("trident")>-1&&O.indexOf("rv")>-1?(x="msie",E=O.match(/msie ([\d.]+)/)||O.match(/rv:([\d.]+)/)):O.indexOf("chrome")>-1?(x="chrome",E=O.match(/chrome\/([\d.]+)/)):O.indexOf("firefox")>-1?(x="firefox",E=O.match(/firefox\/([\d.]+)/)):O.indexOf("opera")>-1?(x="opera",E=O.match(/version\/([\d.]+)/)):O.indexOf("safari")>-1&&(x="safari",E=O.match(/version\/([\d.]+)/)),_=E?E[1]:"",O.indexOf("ipad")>-1||O.indexOf("ipod")>-1||O.indexOf("iphone")>-1?I="apple":O.indexOf("android")>-1&&(_=(E=O.match(/version\/([\d.]+)/))?E[1]:"",I="android"),{name:x,version:_,device:I}),j=(k=!0,P=T,document.createElement("canvas").getContext?("firefox"===P.name&&parseFloat(P.version)<5&&(k=!1),"safari"===P.name&&parseFloat(P.version)<4&&(k=!1),"opera"===P.name&&parseFloat(P.version)<10&&(k=!1),"msie"===P.name&&parseFloat(P.version)<9&&(k=!1)):k=!1,k),M=function(){var e=navigator.userAgent.toLowerCase();return-1===e.indexOf("webkit")&&-1!==e.indexOf("gecko")}(),N={assign:function(e){for(var t=0;t=0;r--)e[r]===t&&e.splice(r,1);return e},indexOf:function(e,t){if(null==e)return-1;if("function"==typeof e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r=0&&parseFloat(s)<1?(e.style.filter="alpha(opacity="+100*s+")",e.style.opacity=s):1===parseFloat(s)&&(e.style.filter="",e.style.opacity="")},applyDefaults:function(e,t){e=e||{};var r="function"==typeof window.Event&&t instanceof window.Event;for(var n in t)(void 0===e[n]||!r&&t.hasOwnProperty&&t.hasOwnProperty(n)&&!e.hasOwnProperty(n))&&(e[n]=t[n]);return!r&&t&&t.hasOwnProperty&&t.hasOwnProperty("toString")&&!e.hasOwnProperty("toString")&&(e.toString=t.toString),e},getParameterString:function(e){var t=[];for(var r in e){var n,o=e[r];if(null!=o&&"function"!=typeof o)n=Array.isArray(o)||"[object Object]"===o.toString()?encodeURIComponent(JSON.stringify(o)):encodeURIComponent(o),t.push(encodeURIComponent(r)+"="+n)}return t.join("&")},handleUrlSuffix:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:".json";if(e.indexOf("?")<0)e+=t;else{var r=e.split("?");2===r.length&&(e=r[0]+t+"?"+r[1])}return e},urlAppend:function(e,t){var r=e;if(t){0===t.indexOf("?")&&(t=t.substring(1));var n=(e+" ").split(/[?&]/);r+=" "===n.pop()?t:n.length?"&"+t:"?"+t}return r},urlPathAppend:function(e,t){var r=e;if(!t)return r;0===t.indexOf("/")&&(t=t.substring(1));var n=e.split("?");return n[0].indexOf("/",n[0].length-1)<0&&(n[0]+="/"),r="".concat(n[0]).concat(t).concat(n.length>1?"?".concat(n[1]):"")},DEFAULT_PRECISION:14,toFloat:function(e,t){return null==t&&(t=N.DEFAULT_PRECISION),"number"!=typeof e&&(e=parseFloat(e)),0===t?e:parseFloat(e.toPrecision(t))},rad:function(e){return e*Math.PI/180},getParameters:function(e){e=null===e||void 0===e?window.location.href:e;var t="";if(h.contains(e,"?")){var r=e.indexOf("?")+1,n=h.contains(e,"#")?e.indexOf("#"):e.length;t=e.substring(r,n)}for(var o={},i=t.split(/[&;]/),a=0,s=i.length;a1?1/e:e},getResolutionFromScale:function(e,t){var r;e&&(null==t&&(t="degrees"),r=1/(N.normalizeScale(e)*B[t]*96));return r},getScaleFromResolution:function(e,t){return null==t&&(t="degrees"),e*B[t]*96},getBrowser:function(){return T},isSupportCanvas:j,supportCanvas:function(){return N.isSupportCanvas},isInTheSameDomain:function(e){return!e||(-1===e.indexOf("//")||N.isSameDomain(e,document.location.toString()))},isSameDomain:function(e,t){return new(S())(e).normalize().origin()===new(S())(t).normalize().origin()},calculateDpi:function(e,t,r,n,o){if(e&&t&&r){var i,a=e.getWidth(),s=e.getHeight(),u=t.w,l=t.h;if(o=o||6378137,"degree"===(n=n||"degrees").toLowerCase()||"degrees"===n.toLowerCase()||"dd"===n.toLowerCase()){var c=a/u,f=s/l;i=254/(c>f?c:f)/r/(2*Math.PI*o/360)/1e4}else{i=254/(a/u)/r/1e4}return i}},toJSON:function(e){var t=e;if(null==t)return null;switch(t.constructor){case String:return t=(t=(t=(t=(t=(t=(t='"'+t.replace(/(["\\])/g,"\\$1")+'"').replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace("<","<")).replace(">",">")).replace(/%/g,"%25")).replace(/&/g,"%26");case Array:for(var r="",n=0,o=t.length;n0?"{"+u.join(",")+"}":"{}"}return t.toString()}},getResolutionFromScaleDpi:function(e,t,r,n){return n=n||6378137,r=r||"",e>0&&t>0?(e=N.normalizeScale(e),"degree"===r.toLowerCase()||"degrees"===r.toLowerCase()||"dd"===r.toLowerCase()?254/t/e/(2*Math.PI*n/360)/1e4:254/t/e/1e4):-1},getScaleFromResolutionDpi:function(e,t,r,n){return n=n||6378137,r=r||"",e>0&&t>0?"degree"===r.toLowerCase()||"degrees"===r.toLowerCase()||"dd"===r.toLowerCase()?254/t/e/(2*Math.PI*n/360)/1e4:254/t/e/1e4:-1},transformResult:function(e){return e.responseText&&"string"==typeof e.responseText&&(e=JSON.parse(e.responseText)),e},copyAttributes:function(e,t){if(e=e||{},t)for(var r in t){var n=t[r];void 0!==n&&"CLASS_NAME"!==r&&"function"!=typeof n&&(e[r]=n)}return e},copyAttributesWithClip:function(e,t,r){if(e=e||{},t)for(var n in t){var o=!1;if(r&&r.length)for(var i=0,a=r.length;i=0&&i<=1&&o<=1&&i>=0?new A.Point(e.x+o*(t.x-e.x),e.y+o*(t.y-e.y)):"No Intersection";else if(0==s&&0==u){var c=Math.max(e.y,t.y),f=Math.min(e.y,t.y),p=Math.max(e.x,t.x),h=Math.min(e.x,t.x);a=(r.y>=f&&r.y<=c||n.y>=f&&n.y<=c)&&r.x>=h&&r.x<=p||n.x>=h&&n.x<=p?"Coincident":"Parallel"}else a="Parallel";return a},getTextBounds:function(e,t,r){document.body.appendChild(r),r.style.width="auto",r.style.height="auto",e.fontSize&&(r.style.fontSize=e.fontSize),e.fontFamily&&(r.style.fontFamily=e.fontFamily),e.fontWeight&&(r.style.fontWeight=e.fontWeight),r.style.position="relative",r.style.visibility="hidden",r.style.display="inline-block",r.innerHTML=t;var n=r.clientWidth,o=r.clientHeight;return document.body.removeChild(r),{textWidth:n,textHeight:o}},convertPath:function(e,t){return t?e.replace(/\{([\w-\.]+)\}/g,function(e,r){var n;return n=t.hasOwnProperty(r)?function(e){if(void 0==e||null==e)return"";if(e instanceof Date)return e.toJSON();if(function(e){if("string"!=typeof e&&"object"!==C(e))return!1;try{var t=e.toString();return"[object Object]"===t||"[object Array]"===t}catch(e){return!1}}(e))return JSON.stringify(e);return e.toString()}(t[r]):e,encodeURIComponent(n)}):e},hexToRgba:function(e,t){var r=[],n=[];if(3==(e=e.replace(/#/,"")).length){for(var o=[],i=0;i<3;i++)o.push(e.charAt(i)+e.charAt(i));e=o.join("")}for(var a=0;a<6;a+=2)r[a]="0x"+e.substr(a,2),n.push(parseInt(Number(r[a])));return n.push(t),"rgba("+n.join(",")+")"},isAbsoluteURL:function(e){try{return!!new URL(e)}catch(e){return!1}},relative2absolute:function(e,t){var r=new URL(e,t);if(r&&r.href)return decodeURIComponent(r.href)}},B={inches:1,ft:12,mi:63360,m:39.3701,km:39370.1,dd:4374754,yd:36};B.in=B.inches,B.degrees=B.dd,B.nmi=1852*B.m;var L=.0254000508001016;N.extend(B,{Inch:B.inches,Meter:39.37,Foot:12,IFoot:11.999976,ClarkeFoot:11.999868327581488,SearsFoot:11.999955194477684,GoldCoastFoot:11.999964589846002,IInch:.9999979999999999,MicroInch:999998e-9,Mil:9.99998e-7,Centimeter:.3937,Kilometer:39370,Yard:36,SearsYard:35.99986558343306,IndianYard:35.99987015540864,IndianYd37:35.999740205100004,IndianYd62:35.999880755999996,IndianYd75:35.999868945,IndianFoot:11.9999567087,IndianFt37:11.9999134017,IndianFt62:11.999960252000001,IndianFt75:11.999956315,Mile:63360,IYard:35.999928,IMile:63359.87328,NautM:72913.24,"Lat-66":4367838.370169282,"Lat-83":4367954.152606599,Decimeter:3.9370000000000003,Millimeter:.03937,Dekameter:393.7,Decameter:393.7,Hectometer:3937,GermanMeter:39.370535294205006,CaGrid:39.359685060000004,ClarkeChain:791.991309620512,GunterChain:792.0000000000001,BenoitChain:791.9977268035781,SearsChain:791.9970428354235,ClarkeLink:7.91991309620512,GunterLink:7.920000000000001,BenoitLink:7.919977268035781,SearsLink:7.919970428354236,Rod:198.00000000000014,IntnlChain:791.998416,IntnlLink:7.91998416,Perch:198.00000000000014,Pole:198.00000000000014,Furlong:7919.999999999997,Rood:148.75036777426,CapeFoot:11.999868185255002,Brealey:14763.75,ModAmFt:12.000458400000001,Fathom:71.999856,"NautM-UK":72959.85408,"50kilometers":1968500,"150kilometers":5905500}),N.extend(B,{mm:B.Meter/1e3,cm:B.Meter/100,dm:100*B.Meter,km:1e3*B.Meter,kmi:B.nmi,fath:B.Fathom,ch:B.IntnlChain,link:B.IntnlLink,"us-in":B.inches,"us-ft":B.Foot,"us-yd":B.Yard,"us-ch":B.GunterChain,"us-mi":B.Mile,"ind-yd":B.IndianYd37,"ind-ft":B.IndianFt37,"ind-ch":791.9942845122}),B.degree=B.dd,B.meter=B.m,B.foot=B.ft,B.inch=B.inches,B.mile=B.mi,B.kilometer=B.km,B.yard=B.yd,u.setRelativeParentUtil(N);var R,D,F,Q=window.fetch,G={limitLength:1500,queryKeys:[],queryValues:[],supermap_callbacks:{},addQueryStrings:function(e){for(var t in e){this.queryKeys.push(t),"string"!=typeof e[t]&&(e[t]=N.toJSON(e[t]));var r=encodeURIComponent(e[t]);this.queryValues.push(r)}},issue:function(e){for(var t=this,r=t.getUid(),n=e.url,o=[],i=n,a=0,s=t.queryKeys?t.queryKeys.length:0,u=0;u=t.limitLength){if(0==a)return!1;o.push(i),i=n,a=0,u--}else if(i.length+t.queryKeys[u].length+2+t.queryValues[u].length>t.limitLength)for(var l=t.queryValues[u];l.length>0;){var c=t.limitLength-i.length-t.queryKeys[u].length-2;i.indexOf("?")>-1?i+="&":i+="?";var f=l.substring(0,c);"%"===f.substring(c-1,c)?(c-=1,f=l.substring(0,c)):"%"===f.substring(c-2,c-1)&&(c-=2,f=l.substring(0,c)),i+=t.queryKeys[u]+"="+f,l=l.substring(c),f.length>0&&(o.push(i),i=n,a=0)}else a++,i.indexOf("?")>-1?i+="&":i+="?",i+=t.queryKeys[u]+"="+t.queryValues[u];return o.push(i),t.send(o,"SuperMapJSONPCallbacks_"+r,e&&e.proxy)},getUid:function(){return 1e3*(new Date).getTime()+Math.floor(1e17*Math.random())},send:function(e,t,r){var n=e.length;if(n>0)return new Promise(function(o){for(var i=(new Date).getTime(),a=0;a-1?u+="&":u+="?",u+="sectionCount="+n,u+="§ionIndex="+a,u+="&jsonpUserID="+i,r&&(u=decodeURIComponent(u),u=r+encodeURIComponent(u)),s()(u,{jsonpCallbackFunction:t,timeout:3e4}).then(function(e){o(e.json())})}})},GET:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings(e.params),this.issue(e)},POST:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings({requestEntity:e.data}),this.issue(e)},PUT:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings({requestEntity:e.data}),this.issue(e)},DELETE:function(e){return this.queryKeys.length=0,this.queryValues.length=0,this.addQueryStrings({requestEntity:e.data}),this.issue(e)}},U=function(){return void 0!=R?R:window.XMLHttpRequest&&"withCredentials"in new window.XMLHttpRequest},z=function(){return D||45e3},H={commit:function(e,t,r,n){switch(e=e?e.toUpperCase():e){case"GET":return this.get(t,r,n);case"POST":return this.post(t,r,n);case"PUT":return this.put(t,r,n);case"DELETE":return this.delete(t,r,n);default:return this.get(t,r,n)}},supportDirectRequest:function(e,t){return!!N.isInTheSameDomain(e)||(void 0!=t.crossOrigin?t.crossOrigin:U()||t.proxy)},get:function(e,t,r){r=r||{};if(e=N.urlAppend(e,this._getParameterString(t||{})),e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){var n={url:e=e.replace(".json",".jsonp"),data:t};return G.GET(n)}return this.urlIsLong(e)?this._postSimulatie("GET",e.substring(0,e.indexOf("?")),t,r):this._fetch(e,t,r,"GET")},delete:function(e,t,r){r=r||{};if(e=N.urlAppend(e,this._getParameterString(t||{})),e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){e=e.replace(".json",".jsonp");var n={url:e+="&_method=DELETE",data:t};return G.DELETE(n)}return this.urlIsLong(e)?this._postSimulatie("DELETE",e.substring(0,e.indexOf("?")),t,r):this._fetch(e,t,r,"DELETE")},post:function(e,t,r){if(r=r||{},e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){e=e.replace(".json",".jsonp");var n={url:N.urlAppend(e,"_method=POST"),data:t};return G.POST(n)}return this._fetch(e,t,r,"POST")},put:function(e,t,r){if(r=r||{},e=this._processUrl(e,r),!this.supportDirectRequest(e,r)){e=e.replace(".json",".jsonp");var n={url:e+="&_method=PUT",data:t};return G.PUT(n)}return this._fetch(e,t,r,"PUT")},urlIsLong:function(e){for(var t=0,r=null,n=0,o=e.length;n-1?"&":"?")+"_method="+e,"string"!=typeof r&&(r=JSON.stringify(r)),this.post(t,r,n)},_processUrl:function(e,t){return this._isMVTRequest(e)?e:(-1!==e.indexOf(".json")||t.withoutFormatSuffix||(e=N.handleUrlSuffix(e)),t&&t.proxy&&("function"==typeof t.proxy?e=t.proxy(e):(e=decodeURIComponent(e),e=t.proxy+encodeURIComponent(e))),e)},_fetch:function(e,t,r,n){(r=r||{}).headers=r.headers||{},r.headers["Content-Type"]||FormData.prototype.isPrototypeOf(t)||(r.headers["Content-Type"]="application/x-www-form-urlencoded;charset=UTF-8");var o=F&&F(e);return o&&(r.headers=N.extend(r.headers,o)),r.timeout?this._timeout(r.timeout,Q(e,{method:n,headers:r.headers,body:"PUT"===n||"POST"===n?t:void 0,credentials:this._getWithCredentials(r),mode:"cors",timeout:z()}).then(function(e){return e})):Q(e,{method:n,body:"PUT"===n||"POST"===n?t:void 0,headers:r.headers,credentials:this._getWithCredentials(r),mode:"cors",timeout:z()}).then(function(e){return e})},_getWithCredentials:function(e){return!0===e.withCredentials?"include":!1===e.withCredentials?"omit":"same-origin"},_fetchJsonp:function(e,t){return t=t||{},s()(e,{method:"GET",timeout:t.timeout}).then(function(e){return e})},_timeout:function(e,t){return new Promise(function(r,n){setTimeout(function(){n(new Error("timeout"))},e),t.then(r,n)})},_getParameterString:function(e){var t=[];for(var r in e){var n,o=e[r];if(null!=o&&"function"!=typeof o)n=Array.isArray(o)||"[object Object]"===o.toString()?encodeURIComponent(JSON.stringify(o)):encodeURIComponent(o),t.push(encodeURIComponent(r)+"="+n)}return t.join("&")},_isMVTRequest:function(e){return e.indexOf(".mvt")>-1||e.indexOf(".pbf")>-1}},q=r(7915);function V(e,t){e&&-1===e.indexOf("BEGIN PUBLIC KEY")&&(e="-----BEGIN PUBLIC KEY-----\n".concat(e,"\n-----END PUBLIC KEY-----"));var r=q.pki.publicKeyFromPem(e),n={md:q.md.sha256.create(),mgf1:{md:q.md.sha1.create()}},o=r.encrypt(t,"RSA-OAEP",n);return!!o&&window.btoa(o)}function K(e,t,r){r=q.util.encodeUtf8(r);var n=q.cipher.createCipher("AES-GCM",e);if(n.start({iv:t,additionalData:"",tagLength:128}),n.update(q.util.createBuffer(r)),n.finish()){var o=n.output,i=n.mode.tag;return window.btoa(o.data+i.data)}return!1}function Y(e){for(var t="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r="",n=e;n>0;--n)r+=t[Math.floor(Math.random()*t.length)];return r}function W(e){"@babel/helpers - typeof";return(W="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function J(){J=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==W(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function X(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Z(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Z(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Z(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r 1 ? 1 : y;},toY:function(y){return (0.5-y)*"+s+"+"+i+";}}"],{type:"text/javascript"}))}},{key:"getPaintProperty",value:function(e,r){var n=this.overlayLayersManager[e];return n?n.getPaintProperty?n.getPaintProperty(r):void 0:t.getPaintProperty.call(this,e,r)}},{key:"getLayoutProperty",value:function(e,r){var n=this.overlayLayersManager[e];return n?n.getLayoutProperty?n.getLayoutProperty(r):void 0:t.getLayoutProperty.call(this,e,r)}},{key:"getFilter",value:function(e,r,n){var o=this.overlayLayersManager[e];return o?o.getFilter?o.getFilter(r,n):void 0:t.getFilter.call(this,e,r,n)}},{key:"setFilter",value:function(e,r,n){var o=this.overlayLayersManager[e];return o?(o.setFilter&&o.setFilter(r,n),this):t.setFilter.call(this,e,r,n)}},{key:"on",value:function(e,t,r){return this._eventsModeHandler({type:e,layerId:t,listener:r,mode:"on"})}},{key:"once",value:function(e,t,r){return this._eventsModeHandler({type:e,layerId:t,listener:r,mode:"once"})}},{key:"off",value:function(e,t,r){return this._eventsModeHandler({type:e,layerId:t,listener:r,mode:"off"})}},{key:"queryRenderedFeatures",value:function(e,r){var n,o=this,i=Object.keys(this.overlayLayersManager);r&&r.layers&&(i=r.layers.filter(function(e){return o.overlayLayersManager[e]}),n=r.layers.filter(function(e){return!o.overlayLayersManager[e]}));var a=e||[[0,0],[this.transform.width,this.transform.height]],s=r||{};delete s.layers;var u=i.reduce(function(e,t){var r=o.overlayLayersManager[t];return r.query&&r.queryRenderedFeatures&&r.queryRenderedFeatures(a,s,function(t){e=e.concat(t)}),e},[]);return t.queryRenderedFeatures.call(this,e,pe(pe({},r),{},{layers:n})).concat(u)}},{key:"querySourceFeatures",value:function(e,r){var n=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof le});return n?n.query?n.querySourceFeatures(r):void 0:t.querySourceFeatures.call(this,e,r)}},{key:"getSource",value:function(e){var r=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof le});return r?r.getSource():t.getSource.call(this,e)}},{key:"removeSource",value:function(e){var r=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof le});return r?r.removeSource():t.removeSource.call(this,e)}},{key:"isSourceLoaded",value:function(e){var r=Object.values(this.overlayLayersManager).find(function(t){return t.sourceId===e&&t instanceof le});return r?r.isSourceLoaded():t.isSourceLoaded.call(this,e)}},{key:"_eventsModeHandler",value:function(e){var r=this,n=e.type,o=e.layerId,i=e.listener,a=e.mode,s=[];i&&(s=s.concat(o)),s.forEach(function(e){var t=r.overlayLayersManager[e]||{};t.interaction&&t[a]&&("all"===t.events||t.events.includes(n))&&t[a](n,i||o)});var u=i&&s.filter(function(e){return!r.overlayLayersManager[e]});if(u&&!u.length)return this;var l=u&&"string"!=typeof o?u:o;return t[a].call(this,n,l,i)}},{key:"_moveToHandler",value:function(t,r){var n,o=document.getElementById(t);r&&((n=document.getElementById(r))||e.Evented.prototype.fire("error",{error:new Error('Layer with id "'.concat(r,'" does not exist on this document.'))})),o&&(n?n.parentNode.insertBefore(o,n):o.parentNode.appendChild(o))}}])&&me(o.prototype,i),a&&me(o,a),Object.defineProperty(o,"prototype",{writable:!1}),o;var o,i,a}()}function Se(e){"@babel/helpers - typeof";return(Se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ce(e,t){for(var r=0;r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function ke(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}o().VectorTileSource&&void 0===o().VectorTileSource.prototype.beforeLoadBak&&(o().VectorTileSource.prototype.beforeLoadBak=o().VectorTileSource.prototype.beforeLoad,o().VectorTileSource.prototype.beforeLoad=function(){var e,t=(e=Oe().mark(function e(t,r){var n,o;return Oe().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r&&r.tiles&&r.tiles[0],!i.values.includes(t)||!n){e.next=6;break}return e.next=4,oe(n);case 4:(o=e.sent)&&(this.decryptOptions={key:o.serviceKey,algorithm:o.algorithm});case 6:this.beforeLoadBak(t,r);case 7:case"end":return e.stop()}},e,this)}),function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){ke(i,n,o,a,s,"next",e)}function s(e){ke(i,n,o,a,s,"throw",e)}a(void 0)})});return function(e,r){return t.apply(this,arguments)}}()),o().Map.prototype._inherit||(o().Map=function(e){function t(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),xe(this,t,[e])}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ie(e,t)}(t,we(o())),r=t,n&&Ce(r.prototype,n),i&&Ce(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,i}(),o().Map.prototype._inherit=!0);function Pe(e){"@babel/helpers - typeof";return(Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Te(e,t){for(var r=0;r";return this._container.innerHTML=a?""+s+"":s,this._createStyleSheet(),this._container}},{key:"_createStyleSheet",value:function(){var e=document.createElement("style");e.type="text/css",e.innerHTML=".iclient-logo{margin:0 !important;}.iclient-logo a{border: none;display: block;height:31px;}.iclient-logo img{border: none;white-space: nowrap}",document.getElementsByTagName("head")[0].appendChild(e)}},{key:"_extend",value:function(e){for(var t=0;te.right;)t.lon-=e.getWidth()}return t}},{key:"destroy",value:function(){this.lon=null,this.lat=null}}])&&ze(t.prototype,r),n&&ze(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function Ve(e){"@babel/helpers - typeof";return(Ve="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ke(e,t){for(var r=0;rthis.right)&&(this.right=r.right),(null==this.top||r.top>this.top)&&(this.top=r.top))}}},{key:"containsLonLat",value:function(e,t){"boolean"==typeof t&&(t={inclusive:t}),t=t||{};var r=this.contains(e.lon,e.lat,t.inclusive),n=t.worldBounds;if(n&&!r){var o=n.getWidth(),i=(n.left+n.right)/2,a=Math.round((e.lon-i)/o);r=this.containsLonLat({lon:e.lon-a*o,lat:e.lat},{inclusive:t.inclusive})}return r}},{key:"containsPixel",value:function(e,t){return this.contains(e.x,e.y,t)}},{key:"contains",value:function(e,t,r){if(null==r&&(r=!0),null==e||null==t)return!1;var n=!1;return n=r?e>=this.left&&e<=this.right&&t>=this.bottom&&t<=this.top:e>this.left&&ethis.bottom&&t=r.bottom&&e.bottom<=r.top||r.bottom>=e.bottom&&r.bottom<=e.top,a=e.top>=r.bottom&&e.top<=r.top||r.top>e.bottom&&r.top=r.left&&e.left<=r.right||r.left>=e.left&&r.left<=e.right,u=e.right>=r.left&&e.right<=r.right||r.right>=e.left&&r.right<=e.right;n=(i||a)&&(s||u)}if(t.worldBounds&&!n){var l=t.worldBounds,c=l.getWidth(),f=!l.containsBounds(r),p=!l.containsBounds(e);f&&!p?(e=e.add(-c,0),n=r.intersectsBounds(e,{inclusive:t.inclusive})):p&&!f&&(r=r.add(-c,0),n=e.intersectsBounds(r,{inclusive:t.inclusive}))}return n}},{key:"containsBounds",value:function(e,t,r){null==t&&(t=!1),null==r&&(r=!0);var n=this.contains(e.left,e.bottom,r),o=this.contains(e.right,e.bottom,r),i=this.contains(e.left,e.top,r),a=this.contains(e.right,e.top,r);return t?n||o||i||a:n&&o&&i&&a}},{key:"determineQuadrant",value:function(e){var t="",r=this.getCenterLonLat();return t+=e.lat=e.right&&o.right>e.right;)o=o.add(-i,0);var a=o.left+r;ae.left&&o.right-n>e.right&&(o=o.add(-i,0))}return o}},{key:"toServerJSONObject",value:function(){return{rightTop:{x:this.right,y:this.top},leftBottom:{x:this.left,y:this.bottom},left:this.left,right:this.right,top:this.top,bottom:this.bottom}}},{key:"destroy",value:function(){this.left=null,this.right=null,this.top=null,this.bottom=null,this.centerLonLat=null}}])&&Ke(t.prototype,r),n&&Ke(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function Je(e){"@babel/helpers - typeof";return(Je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Xe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return Ze(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ze(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ze(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r-1)){if(null!=t&&t=0;--r)t=this.removeComponent(e[r])||t;return t}},{key:"removeComponent",value:function(e){return N.removeItem(this.components,e),this.clearBounds(),!0}},{key:"getArea",value:function(){for(var e=0,t=0,r=this.components.length;t2;return s&&(r=t,n="removeComponent",o=this,i=1,a=jt(Mt(1&i?r.prototype:r),n,o),2&i&&"function"==typeof a?function(e){return a.apply(o,e)}:a).apply(this,arguments),s}},{key:"getSortedSegments",value:function(){for(var e,t,r=this.components.length-1,n=new Array(r),o=0;o=1?1:v)<=-1?-1:v,c=180*Math.acos(v)/Math.PI,a=(c=o.x==r.x?t.x>r.x&&n.x>r.x||t.xp*t.x+h&&n.y>p*n.x+h||t.yr.y?n.xr.x&&(s=!1):o.xp*n.x+h&&(s=!1):o.x>r.x?n.y>r.y&&(s=!1):n.y=0?180*Math.atan(g)/Math.PI:Math.abs(180*Math.atan(g)/Math.PI)+90,A=Math.abs(t.y);r.y==A&&A==o.y&&r.x=0?g>=0?l+=u:l=180-(l-90)+u:l=g>0?l-180+u:90-l+u:w>=0?g>=0?l-=u:l=180-(l-90)-u:l=g>=0?l-180-u:90-l-u,l=l*Math.PI/180;var C=t.x+i*Math.cos(l),E=t.y+i*Math.sin(l);f.push(new it(C,E))}f.push(o)}return f}},{key:"createLineEPS",value:function(e){var r=[],n=e.length;if(n<2)return e;for(var o=0;o1&&e[0].equals(e[e.length-1])&&(t=e.length-1);for(var r=0;r3;if(r){this.components.pop(),Qt(t,"removeComponent",this,1).apply(this,arguments);var n=this.components[0];Qt(t,"addComponent",this,1).apply(this,[n])}return r}},{key:"getArea",value:function(){var e=0;if(this.components&&this.components.length>2){for(var t=0,r=0,n=this.components.length;r0){e+=Math.abs(this.components[0].getArea());for(var t=1,r=this.components.length;t0&&r.push(","),r.push(this.writeNewline(),this.writeIndent(),t));return this.level-=1,r.push(this.writeNewline(),this.writeIndent(),"]"),r.join("")},string:function(e){var t={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return/["\\\x00-\x1f]/.test(e)?'"'+e.replace(/([\x00-\x1f\\"])/g,function(e,r){var n=t[r];return n||(n=r.charCodeAt(),"\\u00"+Math.floor(n/16).toString(16)+(n%16).toString(16))})+'"':'"'+e+'"'},number:function(e){return isFinite(e)?String(e):"null"},boolean:function(e){return String(e)},date:function(e){function t(e){return e<10?"0"+e:e}return'"'+e.getFullYear()+"-"+t(e.getMonth()+1)+"-"+t(e.getDate())+"T"+t(e.getHours())+":"+t(e.getMinutes())+":"+t(e.getSeconds())+'"'}},r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Cr(e,t)}(t,vr),r=t,(n=[{key:"read",value:function(e,t){var r;if(this.nativeJSON)try{r=JSON.parse(e,t)}catch(t){return{data:e}}return this.keepData&&(this.data=r),r}},{key:"write",value:function(e,t){this.pretty=!!t;var r=null,n=gr(e);if(this.serialize[n])try{r=!this.pretty&&this.nativeJSON?JSON.stringify(e):this.serialize[n].apply(this,[e])}catch(e){}return r}},{key:"writeIndent",value:function(){var e=[];if(this.pretty)for(var t=0;t0))return null;for(var a=0,s=0,u=[];a0){e+='"points":[';for(var r=0,n=this.components.length;re[i]){var a=e[i];e[i]=e[o],e[o]=a;var s=t[i];if(t[i]=t[o],t[o]=s,r&&r.length>0){var u=r[i];r[i]=r[o],r[o]=u}if(n&&n.length>0){var l=n[i];n[i]=n[o],n[o]=l}}}}],(r=[{key:"destroy",value:function(){var e=this;e.id=null,e.style=null,e.parts=null,e.partTopo=null,e.points=null,e.type=null,e.prjCoordSys=null}},{key:"toGeometry",value:function(){var e=this;switch(e.type.toUpperCase()){case cn.POINT:case cn.POINT3D:return e.toGeoPoint();case cn.LINE:return e.toGeoLine();case cn.LINEM:return e.toGeoLinem();case cn.REGION:return e.toGeoRegion();case cn.POINTEPS:return e.toGeoPoint();case cn.LINEEPS:return e.toGeoLineEPS();case cn.REGIONEPS:return e.toGeoRegionEPS();case cn.GEOCOMPOUND:return e.transformGeoCompound()}}},{key:"toGeoPoint",value:function(){var e=this.parts||[],t=this.points||[],r=e.length;if(r>0){if(1===r){var n=t[0],o=n.x,i=n.y,a=n.z,s=n.m;return new it([o,i,a,s])}for(var u=[],l=0;l0){if(1===r){for(var n=[],o=0;o0){if(1===s){for(e=0,r=[];e=0;k--)if(I[O]=-1,m[k].containsBounds(m[O])){v[O]=-1*v[k],v[O]<0&&(I[O]=k);break}for(var P=0;P0?i.push(d[P]):(i[I[P]].components=i[I[P]].components.concat(d[P].components),i.push(""))}else{i=new Array;for(var T=0;T0&&i.length>0&&(i[i.length-1].components=i[i.length-1].components.concat(h),h=[]),i.push(d[T])),T==o-1){var j=i.length;if(j)i[j-1].components=i[j-1].components.concat(h);else for(var M=0,N=h.length;M=0;P--)if(O[k]=-1,v[P].containsBounds(v[k])){g[k]=-1*g[P],g[k]<0&&(O[k]=P);break}for(var T=0;T0?a.push(m[T]):(a[O[T]].components=a[O[T]].components.concat(m[T].components),a.push(""))}else{a=new Array;for(var j=0;j0&&a.length>0&&(a[a.length-1].components=a[a.length-1].components.concat(y),y=[]),a.push(m[j])),j==o-1){var M=a.length;if(M)a[M-1].components=a[M-1].components.concat(y);else for(var N=0,B=y.length;N-1)){var l=this._transformValue(e[u],n);o?a[u]=l:a.properties[u]=l}return a},geometry:function(e){if(null==e)return null;!e.parts&&e.points&&(e.parts=[e.points.length]);var t,r=e.hasOwnProperty("geometryType")?e:new eo(e).toGeometry()||e,n=r.geometryType||r.type;return"LinearRing"===n&&(n="LineString"),"LINEM"===n&&(n="MultiLineString"),"POINT3D"===n&&(n="Point"),t=this.extract[n.toLowerCase()].apply(this,[r]),"Collection"===(n="TEXT"===n?"Point":n)?{type:"GeometryCollection",geometries:t}:{type:n,coordinates:t}},point:function(e){var t=[e.x,e.y];for(var r in null!=e.z&&t.push(e.z),null!=e.m&&(2===t.length&&t.push(null),t.push(e.m)),e)["x","y","z","m"].indexOf(r)<0&&null!==e[r]&&!isNaN(e[r])&&t.push(e[r]);return t},text:function(e){return[e.points[0].x,e.points[0].y]},multipoint:function(e){for(var t=[],r=0,n=e.components.length;r=-180&&e[0]<=180&&e[1]>=-90&&e[1]<=90}var yo=JSON.parse('[{"name":"克拉玛依市","coord":[85.01486759299489,45.406422237230046]},{"name":"昌吉回族自治州","coord":[88.7154624754753,44.26991024636568]},{"name":"石河子市","coord":[86.0208600035924,44.239045558096805]},{"name":"霍林郭勒市","coord":[114.73479243733115,44.16058374713977]},{"name":"本溪市","coord":[124.64357865201586,41.177197783134275]},{"name":"嘉峪关市","coord":[98.16891560537093,39.76279786284264]},{"name":"莱芜市","coord":[117.65723565456207,36.27916499211527]},{"name":"神农架林区","coord":[110.48296222218153,31.581260143666697]},{"name":"天门市","coord":[113.00615321481195,30.64105781887143]},{"name":"鄂州市","coord":[114.94764081970385,30.325634953844585]},{"name":"潜江市","coord":[112.70703817700621,30.349210666019893]},{"name":"仙桃市","coord":[113.34688900729822,30.315951161935402]},{"name":"萍乡市","coord":[113.88072263074415,27.47193090553213]},{"name":"台湾省","coord":[120.14338943402045,23.596002465926095]},{"name":"东莞市","coord":[113.89443658529342,22.897826158636448]},{"name":"中山市","coord":[113.37118387764659,22.501478858616522]},{"name":"珠海市","coord":[113.21799258934986,22.23782602992192]},{"name":"北海市","coord":[109.18248083043899,21.695773689750148]},{"name":"香港","coord":[114.20689279508653,22.36016760139811]},{"name":"舟山市","coord":[122.22514712841459,30.338633120695956]},{"name":"克孜勒苏柯尔克孜","coord":[74.62910472637343,39.59886016069875]},{"name":"喀什地区","coord":[77.19899922143753,37.85462871211595]},{"name":"阿克苏地区","coord":[81.43930290016381,41.067304799230456]},{"name":"和田地区","coord":[80.69780509160952,36.95287032287055]},{"name":"阿里地区","coord":[82.536487505389,32.69566569631762]},{"name":"日喀则地区","coord":[86.5996831353606,29.54861754814263]},{"name":"那曲地区","coord":[88.32523292667608,33.20600450932715]},{"name":"玉树藏族自治州","coord":[95.2107128446203,33.90320387919257]},{"name":"迪庆藏族自治州","coord":[99.42465312188943,28.052797714348895]},{"name":"怒江傈傈族自治州","coord":[98.85737910439825,26.98345757528851]},{"name":"大理白族自治州","coord":[99.93934374816013,25.684737357453045]},{"name":"德宏傣族景颇族自","coord":[98.13830877778075,24.593421919561205]},{"name":"保山市","coord":[99.19031013453166,24.979380341662]},{"name":"临沧市","coord":[99.62483778975081,24.058807858948214]},{"name":"普洱市","coord":[100.94440267992684,23.44121660743221]},{"name":"西双版纳傣族自治","coord":[100.86105801845994,21.882475641324206]},{"name":"拉萨市","coord":[91.3684790613129,30.14176592960237]},{"name":"山南地区","coord":[92.11665242621062,28.33000201578789]},{"name":"林芝地区","coord":[94.9307847458166,29.125110156601963]},{"name":"昌都地区","coord":[97.33912235873476,30.48520825551814]},{"name":"丽江市","coord":[100.65713436205135,26.96190318191959]},{"name":"攀枝花市","coord":[101.73355913301131,26.714486678752795]},{"name":"凉山彝族自治州","coord":[102.08678551422615,27.683020519860396]},{"name":"楚雄彝族自治州","coord":[101.68264761198458,25.369603845264024]},{"name":"红河哈尼族彝族自","coord":[102.95101719613119,23.624860095239875]},{"name":"文山壮族苗族自治","coord":[104.8708359910614,23.579587266862504]},{"name":"百色市","coord":[106.69546907589859,23.98220841166522]},{"name":"崇左市","coord":[107.3277087317123,22.49769755349952]},{"name":"防城港市","coord":[107.88939931155171,21.94550204069006]},{"name":"南宁市","coord":[108.67078983716917,23.12207641861882]},{"name":"钦州市","coord":[108.8532307305186,22.157690108421384]},{"name":"玉林市","coord":[110.26918466489103,22.391823643610415]},{"name":"湛江市","coord":[109.93033457863683,21.086751055633457]},{"name":"茂名市","coord":[110.80336192333934,22.069184739040775]},{"name":"阳江市","coord":[111.70471342186183,22.108751366417575]},{"name":"江门市","coord":[112.53715618649149,22.297368082806777]},{"name":"广州市","coord":[113.4949302208309,23.28359314707863]},{"name":"清远市","coord":[113.10957368131268,24.334444053233856]},{"name":"肇庆市","coord":[112.11117530204233,23.60241158796112]},{"name":"梧州市","coord":[111.01709510772797,23.518132876753846]},{"name":"贺州市","coord":[111.50423061842756,24.4095096817199]},{"name":"桂林市","coord":[110.44046163393094,25.353966673735407]},{"name":"柳州市","coord":[109.34854449214147,24.972408051485047]},{"name":"河池市","coord":[107.81191841865586,24.649291651298164]},{"name":"黔东南苗族侗族自","coord":[108.39952601614591,26.429286420465576]},{"name":"贵阳市","coord":[106.59784062851153,26.797907456479816]},{"name":"安顺市","coord":[105.76161265300635,25.988644902171018]},{"name":"黔西南布依族苗族","coord":[105.5954078788574,25.404850939549405]},{"name":"曲靖市","coord":[103.9164335632742,25.697243690315265]},{"name":"六盘水市","coord":[104.77723228072432,26.15402255629164]},{"name":"毕节地区","coord":[105.03867422931839,27.077913968069666]},{"name":"昭通市","coord":[104.29730513046874,27.62418247971078]},{"name":"宜宾市","coord":[104.76748901448207,28.553501804266475]},{"name":"乐山市","coord":[103.56027669102787,29.160754519210577]},{"name":"自贡市","coord":[104.63272827056402,29.273152614922402]},{"name":"内江市","coord":[104.82644562304716,29.61272653799929]},{"name":"遵义市","coord":[106.82413636302059,28.191847588570702]},{"name":"达州市","coord":[107.59704170009518,31.32138258839703]},{"name":"遂宁市","coord":[105.48979445433736,30.677687821242678]},{"name":"广安市","coord":[106.56708164098042,30.43500706741521]},{"name":"泸州市","coord":[105.42591761727707,28.50277238478137]},{"name":"资阳市","coord":[104.97995126874034,30.154251886139654]},{"name":"雅安市","coord":[102.69931299964517,29.892630706195035]},{"name":"眉山市","coord":[104.07052881858888,29.894202166560405]},{"name":"甘孜藏族自治州","coord":[100.50721042614238,30.975216556269658]},{"name":"果洛藏族自治州","coord":[99.30775565051923,34.03539865224808]},{"name":"海南藏族自治州","coord":[100.39969108016373,35.90048272566899]},{"name":"黄南藏族自治州","coord":[101.5360706381689,35.10286360841902]},{"name":"赣南藏族自治州","coord":[102.97083885806067,34.326752803339026]},{"name":"陇南市","coord":[105.24780098912132,33.57031117443431]},{"name":"天水市","coord":[105.53503634660417,34.62320421368087]},{"name":"定西市","coord":[104.58787768541339,35.08900966621695]},{"name":"临夏回族自治州","coord":[103.2612870434902,35.591577124455235]},{"name":"西宁市","coord":[101.57680657999033,36.84800271717157]},{"name":"海东地区","coord":[102.30909850729282,36.287400615025646]},{"name":"海北藏族自治州","coord":[100.27122484450717,37.892557516083826]},{"name":"金昌市","coord":[102.02244049169511,38.497330414886164]},{"name":"酒泉市","coord":[95.94486678270127,40.56891536586272]},{"name":"海西蒙古族藏族自","coord":[94.67143298050689,36.022725148503724]},{"name":"巴音郭楞蒙古自治","coord":[88.18116214759745,39.556478810319916]},{"name":"哈密地区","coord":[93.84302392518026,42.95015211178875]},{"name":"叶鲁番地区","coord":[89.82035217277885,42.399368632283505]},{"name":"乌鲁木齐市","coord":[88.00048109561487,43.549986370786]},{"name":"阿勒泰地区","coord":[88.11213933257655,47.05593413019629]},{"name":"博尔塔拉蒙古自治","coord":[82.26402238163408,44.671135542630864]},{"name":"伊犁哈萨克自治州","coord":[82.80778717477179,43.53783381365267]},{"name":"阿拉善盟","coord":[103.29923966842289,40.10955801781495]},{"name":"武威市","coord":[102.73362058791429,37.94211141321436]},{"name":"兰州市","coord":[103.73793563506032,36.27379827886003]},{"name":"中卫市","coord":[105.6943786030716,37.20654236148948]},{"name":"银川市","coord":[106.20022174140034,38.52103167597483]},{"name":"石嘴山市","coord":[106.41544011793628,38.84054137571417]},{"name":"乌海市","coord":[106.8984175998405,39.54616572239788]},{"name":"鄂尔多斯市","coord":[108.43285571424619,39.24036799350715]},{"name":"巴彦淖尔市","coord":[107.45840392808307,41.30159860424196]},{"name":"包头市","coord":[110.46472193224272,41.48017783644221]},{"name":"呼和浩特市","coord":[111.48365173603975,40.498363056149884]},{"name":"乌兰察布市","coord":[112.61568977597707,41.75789561273154]},{"name":"大同市","coord":[113.7107192749083,39.898956799744184]},{"name":"朔州市","coord":[112.65428748167508,39.681772914701924]},{"name":"忻州市","coord":[112.36127575589583,38.88990233614568]},{"name":"榆林市","coord":[109.68473112169593,38.19921027134876]},{"name":"延安市","coord":[109.52425222161318,36.406522726136814]},{"name":"庆阳市","coord":[107.73052193155061,36.183821532624464]},{"name":"固原市","coord":[106.20191575442442,36.11634909496382]},{"name":"白银市","coord":[104.68634478137065,36.51582865625868]},{"name":"宝鸡市","coord":[107.33534779230747,34.3387216485855]},{"name":"汉中市","coord":[107.03534754266246,33.00142998064871]},{"name":"广元市","coord":[105.92928137563939,32.21872447205537]},{"name":"巴中市","coord":[107.03422410306194,31.99874720836291]},{"name":"南充市","coord":[106.32964805032347,31.156657700184095]},{"name":"绵阳市","coord":[104.58949560201106,31.88628780630976]},{"name":"德阳市","coord":[104.41542984932845,31.110558133718676]},{"name":"成都市","coord":[103.8852290010473,30.777258040348634]},{"name":"阿坝藏族羌族自治","coord":[102.26209319552814,32.45725845387284]},{"name":"安康市","coord":[109.14236501848015,32.77467694678074]},{"name":"十堰市","coord":[110.39934083416314,32.376209039347906]},{"name":"襄阳市","coord":[111.97539147094662,31.93399822417465]},{"name":"宜昌市","coord":[111.22204852395754,30.772457669035354]},{"name":"恩施市","coord":[109.42158366502872,30.260366574390105]},{"name":"张家界市","coord":[110.59760006538717,29.330107409240718]},{"name":"吉首市","coord":[109.72176899848378,28.681903937242495]},{"name":"铜仁地区","coord":[108.54247523485463,28.11736237519646]},{"name":"重庆市","coord":[107.86007108564992,30.186253395053196]},{"name":"怀化市","coord":[109.94325166787243,27.43919084801186]},{"name":"益阳市","coord":[112.43060358108062,28.75127294553697]},{"name":"娄底市","coord":[111.41891416951897,27.696312460064604]},{"name":"常德市","coord":[111.72571610131646,29.27189463838195]},{"name":"荆州市","coord":[112.65896596965268,30.05161542755362]},{"name":"荆门市","coord":[112.6586855902184,31.01267124474617]},{"name":"岳阳市","coord":[113.2595036144316,29.106247116930163]},{"name":"长沙市","coord":[113.15415586456598,28.222934680488425]},{"name":"湘潭市","coord":[112.51092596317824,27.69881544105668]},{"name":"株州市","coord":[113.49665538546823,27.03993794610501]},{"name":"衡阳市","coord":[112.48849636578527,26.783613569970782]},{"name":"邵阳市","coord":[110.6723832117475,26.81652287086792]},{"name":"永州市","coord":[111.8565364154186,25.768488267811968]},{"name":"韶关市","coord":[113.53420325850979,24.69848878771937]},{"name":"惠州市","coord":[114.32029589634925,23.25504544231892]},{"name":"佛山市","coord":[112.95925897403649,23.10116677189257]},{"name":"云浮市","coord":[111.78042514904234,22.840400494105687]},{"name":"深圳市","coord":[114.13138648919008,22.649563063468342]},{"name":"汕尾市","coord":[115.57412892884373,23.06989642104901]},{"name":"河源市","coord":[114.89746229844398,23.97971937124767]},{"name":"揭阳市","coord":[116.04290004239446,23.304802704715357]},{"name":"汕头市","coord":[116.7008461897183,23.35898625947344]},{"name":"潮州市","coord":[116.75405548481658,23.854381508863064]},{"name":"梅州市","coord":[116.13719397345734,24.15633544812716]},{"name":"漳州市","coord":[117.38279760543345,24.41111215459575]},{"name":"厦门市","coord":[118.04275971554665,24.675908246507944]},{"name":"龙岩市","coord":[116.69341144552507,25.20284542644492]},{"name":"泉州市","coord":[118.12035864630246,25.22984144365049]},{"name":"莆田市","coord":[118.82439690138142,25.439653480972687]},{"name":"福州市","coord":[119.1608285845262,25.99117532466728]},{"name":"三明市","coord":[117.51188176216434,26.318292906961602]},{"name":"南平市","coord":[118.16153136678187,27.306303151805437]},{"name":"抚州市","coord":[116.3455359885574,27.487043655935366]},{"name":"鹰潭市","coord":[117.01082360702333,28.241253742969946]},{"name":"吉安市","coord":[114.91377151807418,26.957486660664525]},{"name":"赣州市","coord":[115.046455717572,25.81565075681663]},{"name":"郴州市","coord":[113.1544526703492,25.871927095452524]},{"name":"新余市","coord":[114.94161795877827,27.79044654578371]},{"name":"宜春市","coord":[115.04574494880995,28.306428044943356]},{"name":"南昌市","coord":[115.9963824234495,28.664803351584705]},{"name":"九江市","coord":[115.53225905704193,29.362905920276297]},{"name":"上饶市","coord":[117.8595355766598,28.765755150094634]},{"name":"景德镇市","coord":[117.25387030721845,29.33426823662448]},{"name":"黄山市","coord":[117.85476357809696,29.969632034273722]},{"name":"池州市","coord":[117.34517113140791,30.208089337922335]},{"name":"铜陵市","coord":[117.93160431300694,30.926442655001676]},{"name":"安庆市","coord":[116.54307680610799,30.524265461641296]},{"name":"黄石市","coord":[115.02354597728443,29.924060229331015]},{"name":"咸宁市","coord":[114.26967602231792,29.652174021136048]},{"name":"黄冈市","coord":[115.2859016705373,30.65856897065683]},{"name":"武汉市","coord":[114.34552076948799,30.68836237966767]},{"name":"随州市","coord":[113.3850627838818,31.87891659924412]},{"name":"信阳市","coord":[114.81374730587638,32.0309685135914]},{"name":"驻马店市","coord":[114.07756451509235,32.896720987266114]},{"name":"商洛市","coord":[109.82044421310393,33.77403373563189]},{"name":"西安市","coord":[109.11839808451401,34.225257215515896]},{"name":"渭南市","coord":[109.75732444226935,35.025913644359306]},{"name":"铜川市","coord":[108.98695328111377,35.19235092947735]},{"name":"咸阳市","coord":[108.36398776446165,34.84311348287181]},{"name":"三门峡市","coord":[110.80049688104964,34.31818709571671]},{"name":"运城市","coord":[111.1736679525165,35.19010372283576]},{"name":"洛阳市","coord":[111.87577573098216,34.33379926109848]},{"name":"平顶山市","coord":[112.80931281928427,33.759895800153096]},{"name":"漯河市","coord":[113.83505724178012,33.70034266174508]},{"name":"许昌市","coord":[113.78762484088509,34.051835688452435]},{"name":"郑州市","coord":[113.49619951867594,34.61181797865449]},{"name":"焦作市","coord":[113.13404280173008,35.134167097471625]},{"name":"晋城市","coord":[112.7495732073233,35.63186423091449]},{"name":"长治市","coord":[112.85900842873183,36.45872910742828]},{"name":"临汾市","coord":[111.49379787924448,36.22810800777857]},{"name":"太原市","coord":[112.15628804033796,37.91704444063036]},{"name":"吕梁市","coord":[111.31901105774872,37.712740463356496]},{"name":"晋中市","coord":[113.08199599739676,37.36532613794343]},{"name":"邯郸市","coord":[114.41824047234618,36.530119932543315]},{"name":"安阳市","coord":[113.88883283163116,35.7797611183252]},{"name":"鹤壁市","coord":[114.3654094911545,35.75770487428472]},{"name":"新乡市","coord":[113.9184107718167,35.348471214026716]},{"name":"开封市","coord":[114.52801677500626,34.61371216679872]},{"name":"周口市","coord":[114.88509782391864,33.69999759722657]},{"name":"阜阳市","coord":[115.44595951398213,32.98060371610532]},{"name":"淮南市","coord":[116.68941991880993,32.79972275772595]},{"name":"蚌埠市","coord":[117.38594715783302,33.106729536033896]},{"name":"淮北市","coord":[116.69651711889378,33.69527529383458]},{"name":"宿州市","coord":[117.30175405886838,33.943330421260015]},{"name":"亳州市","coord":[116.12410804185097,33.46769392946132]},{"name":"商丘市","coord":[115.59575176872548,34.28339840831147]},{"name":"菏泽市","coord":[115.53631974831816,35.197319393220624]},{"name":"濮阳市","coord":[115.3070485514902,35.775883510964334]},{"name":"聊城市","coord":[115.8870069012884,36.40529594548765]},{"name":"邢台市","coord":[114.74259008644859,37.251396750084155]},{"name":"石家庄市","coord":[114.56923838363613,38.13141710980106]},{"name":"阳泉市","coord":[113.39216149668508,38.09075470547468]},{"name":"保定市","coord":[115.261524468934,39.09118520781398]},{"name":"衡水市","coord":[115.8182936677897,37.715661598187154]},{"name":"德州市","coord":[116.4582273790399,37.19372347888644]},{"name":"沧州市","coord":[116.76192710911863,38.20240042039232]},{"name":"廊坊市","coord":[116.50410772133856,39.27896741763884]},{"name":"天津市","coord":[117.31988934444873,39.37154482470619]},{"name":"北京市","coord":[116.59734730757869,40.237112944270976]},{"name":"张家口市","coord":[115.1823606483226,40.83732566607167]},{"name":"唐山市","coord":[117.8693184261954,39.71862889477249]},{"name":"秦皇岛市","coord":[119.30467355367742,39.990574652162564]},{"name":"承德市","coord":[117.16275671911026,41.36623845548547]},{"name":"葫芦岛市","coord":[119.9342336210531,40.5628822626519]},{"name":"朝阳市","coord":[120.11853493535794,41.471852354885755]},{"name":"赤峰市","coord":[118.50943546234379,43.25452976059767]},{"name":"锦州市","coord":[121.5167549323861,41.45933087433065]},{"name":"营口市","coord":[122.58571915054674,40.42093503997384]},{"name":"丹东市","coord":[124.33549382902183,40.46369290272115]},{"name":"辽阳市","coord":[123.34064798039414,41.152331397771356]},{"name":"盘锦市","coord":[122.06718005354679,41.05573599862555]},{"name":"阜新市","coord":[121.93889757908204,42.27641773244204]},{"name":"鞍山市","coord":[122.78904432242356,40.77781183142038]},{"name":"沈阳市","coord":[122.99508899709724,42.1162195010079]},{"name":"铁岭市","coord":[124.23100515588399,42.72666083611828]},{"name":"扶顺市","coord":[124.46027188217573,41.82955407638859]},{"name":"通辽市","coord":[122.0729370657937,43.90889130864869]},{"name":"兴安盟","coord":[120.79456431092532,45.92003249442161]},{"name":"白城市","coord":[123.10619907715235,45.25475749267784]},{"name":"齐齐哈尔市","coord":[124.5462214659102,47.55395009317394]},{"name":"大兴安岭地区","coord":[124.50992855161529,52.18438447846694]},{"name":"黑河市","coord":[127.14721400335922,49.25080134026901]},{"name":"大庆市","coord":[124.40329830095243,46.401048760966745]},{"name":"绥化市","coord":[126.5214484055605,46.76992452194825]},{"name":"松原市","coord":[124.21244334807682,44.75779381338502]},{"name":"四平市","coord":[124.27839350328821,43.52139065090318]},{"name":"通化市","coord":[125.67392830706305,41.91771808663852]},{"name":"辽源市","coord":[125.33529527643432,42.758340204944986]},{"name":"吉林市","coord":[126.83350281902375,43.60730120049175]},{"name":"长春市","coord":[125.53597875970374,44.24624314701737]},{"name":"白山市","coord":[127.16780160322108,42.093893880305075]},{"name":"哈尔滨市","coord":[127.39125008786029,45.36200668820575]},{"name":"鹤岗市","coord":[130.4703811258197,47.66520688940109]},{"name":"伊春市","coord":[128.91240831703635,47.93833794565277]},{"name":"七台河市","coord":[131.2677920224311,45.945099776108584]},{"name":"鸡西市","coord":[132.38059153660274,45.722934218318535]},{"name":"双鸭山市","coord":[132.3184817002743,46.65813679030265]},{"name":"佳木斯市","coord":[132.26174446608726,47.17569713691394]},{"name":"呼伦贝尔市","coord":[122.3210739998419,50.18176996070858]},{"name":"孝感市","coord":[113.83749892135485,31.11757234692128]},{"name":"贵港市","coord":[110.07354588052804,23.380735604767374]},{"name":"黔南布依族苗族自","coord":[107.30931767543106,26.2976919432269]},{"name":"宁德市","coord":[119.52482556634342,27.013151692716413]},{"name":"温州市","coord":[120.30037042732202,27.8699145504001]},{"name":"台州市","coord":[120.88886782713843,28.670799172772313]},{"name":"丽水市","coord":[119.56796851966463,28.170268394477755]},{"name":"衢州市","coord":[118.79479802644406,28.865874397158763]},{"name":"金华市","coord":[119.99381920686633,29.093455548185744]},{"name":"绍兴市","coord":[120.46546691682343,29.69382513836818]},{"name":"宁波市","coord":[121.42142987830871,29.70001162878972]},{"name":"杭州市","coord":[119.4405685790891,29.87218307296989]},{"name":"宣城市","coord":[118.68748382914703,30.628143499626418]},{"name":"湖州市","coord":[119.98261306633574,30.7945175862809]},{"name":"嘉兴市","coord":[120.83889215988998,30.67538495499343]},{"name":"上海市","coord":[121.37534147322967,31.25628247908459]},{"name":"苏州市","coord":[120.6906182622391,31.381280695137775]},{"name":"无锡市","coord":[120.32182300914366,31.54113306724517]},{"name":"常州市","coord":[119.61953292830165,31.611878565375576]},{"name":"南京市","coord":[118.71890548838064,31.910863187910323]},{"name":"镇江市","coord":[119.42349332902813,31.97942313430778]},{"name":"合肥市","coord":[117.30651975617157,31.79407863049138]},{"name":"六安市","coord":[116.24668220575353,31.820846193819513]},{"name":"滁州市","coord":[117.88422385307969,32.51792621904418]},{"name":"泰州市","coord":[120.03124303305091,32.56503102346783]},{"name":"南通市","coord":[120.85599446760912,32.18496706099728]},{"name":"盐城市","coord":[120.01812490612667,33.54219948734023]},{"name":"淮安市","coord":[119.0749424205415,33.39203631772854]},{"name":"宿迁市","coord":[118.45404943216346,33.666258719120265]},{"name":"徐州市","coord":[117.77482249295966,34.30847766157078]},{"name":"济宁市","coord":[116.74147276546373,35.27488504351119]},{"name":"枣庄市","coord":[117.43359942491492,34.884162021736]},{"name":"连云港市","coord":[119.01553213785074,34.54316517587849]},{"name":"临沂市","coord":[118.31478835349617,35.28173079028279]},{"name":"日照市","coord":[119.14265350444272,35.54479073199592]},{"name":"青岛市","coord":[120.27779044405756,36.3464117375903]},{"name":"威海市","coord":[122.12963327195605,37.13879077904251]},{"name":"烟台市","coord":[120.7689567423966,37.19772002195597]},{"name":"潍坊市","coord":[119.02178548592039,36.49292234053931]},{"name":"淄博市","coord":[117.92936024367185,36.60871347163638]},{"name":"泰安市","coord":[116.93810893944303,36.0423330118612]},{"name":"济南市","coord":[117.34560282551296,36.769574973846304]},{"name":"东营市","coord":[118.4915054457184,37.52194690335787]},{"name":"滨州市","coord":[117.67610299757533,37.4439597758601]},{"name":"昆明市","coord":[102.93100245594789,25.481300763922075]},{"name":"玉溪市","coord":[102.23080854291823,24.156168324611663]},{"name":"塔城地区","coord":[83.60908162840168,45.3721852373893]},{"name":"张掖市","coord":[100.47710030600572,38.704239320458385]},{"name":"南阳市","coord":[112.1400670951149,33.03033276715801]},{"name":"扬州市","coord":[119.48949608990988,32.80956776339646]},{"name":"延边朝鲜族自治州","coord":[129.3577692895626,43.24968794080283]},{"name":"牡丹江市","coord":[129.87240796405672,44.7073040108322]},{"name":"澳门","coord":[113.56289691515346,22.14602596262204]},{"name":"吴忠市","coord":[106.76894508116403,37.72566765880316]},{"name":"来宾市","coord":[109.25592217010114,23.86346274681084]},{"name":"平凉市","coord":[107.0708132782897,35.30329631658711]},{"name":"马鞍山市","coord":[118.27245878467022,31.657727937739004]},{"name":"芜湖市","coord":[118.32992684415504,31.081688223101658]},{"name":"澄迈县","coord":[110.04198076060266,19.694955078668105]},{"name":"保亭黎族苗族自治","coord":[109.6055304964257,18.6101488675304]},{"name":"乐东黎族自治县","coord":[109.04051999525574,18.643137437909203]},{"name":"儋州市","coord":[109.3431358337404,19.550974957403195]},{"name":"定安县","coord":[110.38744429685676,19.47557074114284]},{"name":"屯昌县","coord":[110.00574767630334,19.367175093044388]},{"name":"白沙黎族自治县","coord":[109.36860737761768,19.214416393082217]},{"name":"琼中黎族苗族自治","coord":[109.86691465937548,19.073671135862682]},{"name":"东方市","coord":[108.86903802405428,19.017352815445214]},{"name":"昌江黎族自治县","coord":[108.9686431884767,19.182594167127824]},{"name":"海口市","coord":[110.420654296875,19.806565564640795]},{"name":"济源市","coord":[112.38051465474433,35.07958362422394]},{"name":"五指山市","coord":[109.53595187364496,18.832908264613966]},{"name":"大连市","coord":[121.96662235866603,39.444150542439914]},{"name":"文昌市三沙市","coord":[110.81828537536748,19.756501444162936]},{"name":"三亚市","coord":[109.38424600793707,18.39186315877128]},{"name":"万宁市","coord":[110.28485046979574,18.860240588635115]},{"name":"陵水黎族自治县","coord":[109.95577603229562,18.594712684620465]},{"name":"临高县","coord":[109.71915395436967,19.79420403032508]},{"name":"琼海市","coord":[110.41650700703043,19.22315873149372]}]'),mo=JSON.parse('[{"name":"黑龙江省","coord":[127.64559817675396,48.48668098449708]},{"name":"内蒙古自治区","coord":[118.34519572208615,45.370218276977525]},{"name":"新疆维吾尔自治区","coord":[87.13479065593184,41.75497055053711]},{"name":"吉林省","coord":[126.12985278813787,43.57983207702637]},{"name":"辽宁省","coord":[124.02494773936439,41.105743408203125]},{"name":"甘肃省","coord":[102.87785725633012,37.69582366943361]},{"name":"河北省","coord":[115.66327227481898,39.33383178710938]},{"name":"北京市","coord":[116.62199343603638,40.25053787231445]},{"name":"山西省","coord":[112.45180235808988,37.666561126708984]},{"name":"天津市","coord":[117.35711842642581,39.406789779663086]},{"name":"陕西省","coord":[109.56294003056632,35.64754199981689]},{"name":"宁夏回族自治区","coord":[105.96110877640074,37.3081169128418]},{"name":"青海省","coord":[96.07301048277901,35.44417190551758]},{"name":"山东省","coord":[118.03833752951093,36.29800605773925]},{"name":"西藏自治区","coord":[87.47361520439412,31.6703872680664]},{"name":"河南省","coord":[113.07832397097275,33.87751102447509]},{"name":"江苏省","coord":[119.93926538201052,32.945452690124505]},{"name":"安徽省","coord":[117.15146765881019,32.024482727050774]},{"name":"四川省","coord":[102.28998890142759,30.182161331176758]},{"name":"湖北省","coord":[112.87798261431585,31.157071113586426]},{"name":"重庆市","coord":[107.870126637831,30.188085556030266]},{"name":"上海市","coord":[121.42561166015514,31.276043891906745]},{"name":"浙江省","coord":[119.75337092707514,29.175934791564945]},{"name":"湖南省","coord":[111.52770282777405,27.38110256195069]},{"name":"江西省","coord":[115.51091280655628,27.283511161804206]},{"name":"云南省","coord":[101.27053825991308,25.19783210754396]},{"name":"贵州省","coord":[106.49672346773299,26.92267990112305]},{"name":"福建省","coord":[117.9976766946587,25.939599990844727]},{"name":"广西壮族自治区","coord":[108.98706831086302,23.891559600830078]},{"name":"台湾省","coord":[120.82468432537434,23.602651596069336]},{"name":"香港特别行政区","coord":[114.21036850371561,22.374858856201172]},{"name":"海南省","coord":[109.62792940960824,19.163116455078125]},{"name":"广东省","coord":[113.32127888266032,22.873867034912106]},{"name":"澳门特别行政区","coord":[113.56819996291901,22.160347992976]}]');function vo(e){"@babel/helpers - typeof";return(vo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function go(e){return function(e){if(Array.isArray(e))return bo(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return bo(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?bo(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function bo(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:"type",r=[],n=0;n0){var i=Io(o,t);r.push.apply(r,go(i))}}else r.push(e[n])}return r}function Oo(e,t){var r=e.type,n=e.tiles;return"raster"===r&&(r===t.type&&n&&t.tiles&&function(e,t){if(e===t)return!0;var r=new URL(e),n=new URL(t);if(r.origin!==n.origin)return!1;var o=/\/([^/?#]+\.\w+)$/,i=r.pathname.replace(o,""),a=n.pathname.replace(o,"");return i===a||i.startsWith(a+(a.endsWith("/")?"":"/"))}(n[0],t.tiles[0]))}function ko(e){return e.layerInfo&&e.layerInfo.id?e.layerInfo.id:e.metadata&&e.metadata.SM_Layer_Id?e.metadata.SM_Layer_Id:e.sourceLayer||e.source||e.id}function Po(e,t,r){var n=r.some(function(e){return e.id===t})?[t]:[];return e&&n.push.apply(n,go(e)),Array.from(new Set(n)).filter(function(e){return!!e})}function To(e,t,r){var n=Po(e,t,r);return r.find(function(e){return e.id===n[0]})}var jo={toSuperMapGeometry:function(e){if(e&&e.type){var t=(new lo).read(e,"FeatureCollection");return t&&t[0].geometry}},toSuperMapBounds:function(e){return fo(e)?new We(e[0],e[1],e[2],e[3]):e instanceof o().LngLatBounds?new We(e.getWest(),e.getSouth(),e.getEast(),e.getNorth()):e},toSuperMapPoint:function(e){return fo(e)?new it(e[0],e[1]):e.lng&&e.lat?new it(e.lng,e.lat):new it(e.geometry.coordinates[0],e.geometry.coordinates[1])},toSuperMapPolygon:function(e){var t=e.getWest(),r=e.getEast(),n=e.getSouth(),o=e.getNorth();return new Xt([new Ht([new it(t,n),new it(r,n),new it(r,o),new it(t,o)])])},isArray:fo,toGeoJSON:function(e){if(e)return(new lo).toGeoJSON(e)},toProcessingParam:function(e){var t={};if(e.length<1)t="";else{for(var r=[],n=0;n1e-7;s++)t=1,a+=u=Math.PI/2-2*Math.atan(i*t)-a;return new(o().LngLat)(e[0]*r/n,a*r)},transformUrl:function(e){var t=e.url,r=e.server,n=e.excludePortalProxyUrl,o=e.credentialValue,i=e.credentialKey,a=-1===t.indexOf(".json")?"".concat(t,".json"):t,s="getUrlResource.json?url=";if(n&&r.indexOf(s)>-1){var u=r.split(s);u.length>1&&(a=u[0]+s+a)}return o&&i&&(a+="?"+i+"="+o),a}};function Mo(e){"@babel/helpers - typeof";return(Mo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function No(e,t){for(var r=0;r1&&(r=parseFloat(r)*l),n.labelAlign&&"cm"!==n.labelAlign)switch(n.labelAlign){case"lt":u.x+=t/2,u.y+=r/2;break;case"lm":u.x+=t/2;break;case"lb":u.x+=t/2,u.y-=r/2;break;case"ct":u.y+=r/2;break;case"cb":u.y-=r/2;break;case"rt":u.x-=t/2,u.y+=r/2;break;case"rm":u.x-=t/2;break;case"rb":u.x-=t/2,u.y-=r/2}return this.bsInfo.h=r,this.bsInfo.w=t,o=u.x-parseFloat(t)/2,i=u.y+parseFloat(r)/2,s=u.x+parseFloat(t)/2,a=u.y-parseFloat(r)/2,new We(o,i,s,a)}},{key:"getLabelPxBoundsByText",value:function(e,t){var r,n,o,i,a=this.getLabelPxSize(t),s=N.cloneObject(e);if(t.labelAlign&&"cm"!==t.labelAlign)switch(t.labelAlign){case"lt":s.x+=a.w/2,s.y+=a.h/2;break;case"lm":s.x+=a.w/2;break;case"lb":s.x+=a.w/2,s.y-=a.h/2;break;case"ct":s.y+=a.h/2;break;case"cb":s.y-=a.h/2;break;case"rt":s.x-=a.w/2,s.y+=a.h/2;break;case"rm":s.x-=a.w/2;break;case"rb":s.x-=a.w/2,s.y-=a.h/2}return this.bsInfo.h=a.h,this.bsInfo.w=a.w,r=s.x-a.w/2,n=s.y+a.h/2,i=t.fontStyle&&"italic"===t.fontStyle?s.x+a.w/2+parseInt(parseFloat(t.fontSize)/2):s.x+a.w/2,o=s.y-a.h/2,new We(r,n,i,o)}},{key:"getLabelPxSize",value:function(e){var t,r,n,o,i=parseFloat(e.strokeWidth);t=e.label||this.text,r=e.fontSize?parseFloat(e.fontSize):parseFloat("12px");var a=t.split("\n"),s=a.length;o=s>1?r*s+s+i+.2*r:r+i+.2*r+1,n=0,this.labelWTmp&&n255?r++:n++;return t.cnC=r,t.enC=n,t.textC=e.length,t}}])&&No(r.prototype,n),o&&No(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Go(e){"@babel/helpers - typeof";return(Go="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Uo(e,t){for(var r=0;r1&&(e=new it(t[0],t[1])),new hr(e,this.attributes)}}])&&Vo(e.prototype,t),r&&Vo(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Wo(e){"@babel/helpers - typeof";return(Wo="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Jo(e,t){for(var r=0;ri&&(i=e+s+100,n.width=i,r=!0),t+u>a&&(a=t+u+100,n.height=a,r=!0),e<-s&&(i+=s=100*Math.ceil(-e/100),n.width=i,r=!0),t<-u&&(a+=u=100*Math.ceil(-t/100),n.height=a,r=!0),r&&o.translate(s,u)}},{key:"getPixelOffset",value:function(){return{x:this._offsetX,y:this._offsetY}}},{key:"indexOf",value:function(e,t){if(e.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r3&&(t=Array.prototype.slice.call(t,1));for(var n=this._handlers[e],o=n.length,i=0;i4&&(t=Array.prototype.slice.call(t,1,t.length-1));for(var n=t[t.length-1],o=this._handlers[e],i=o.length,a=0;a-this.EPSILON&&ethis.EPSILON||e<-this.EPSILON}},{key:"cubicAt",value:function(e,t,r,n,o){var i=1-o;return i*i*(i*e+3*o*t)+o*o*(o*n+3*i*r)}},{key:"cubicDerivativeAt",value:function(e,t,r,n,o){var i=1-o;return 3*(((t-e)*i+2*(r-t)*o)*i+(n-r)*o*o)}},{key:"cubicRootAt",value:function(e,t,r,n,o,i){var a=n+3*(t-r)-e,s=3*(r-2*t+e),u=3*(t-e),l=e-o,c=s*s-3*a*u,f=s*u-9*a*l,p=u*u-3*s*l,h=0;if(this.isAroundZero(c)&&this.isAroundZero(f))if(this.isAroundZero(s))i[0]=0;else{var y=-u/s;y>=0&&y<=1&&(i[h++]=y)}else{var d=f*f-4*c*p;if(this.isAroundZero(d)){var m=f/c,v=-s/a+m,g=-m/2;v>=0&&v<=1&&(i[h++]=v),g>=0&&g<=1&&(i[h++]=g)}else if(d>0){var b=Math.sqrt(d),A=c*s+1.5*a*(-f+b),w=c*s+1.5*a*(-f-b),S=(-s-((A=A<0?-Math.pow(-A,this.ONE_THIRD):Math.pow(A,this.ONE_THIRD))+(w=w<0?-Math.pow(-w,this.ONE_THIRD):Math.pow(w,this.ONE_THIRD))))/(3*a);S>=0&&S<=1&&(i[h++]=S)}else{var C=(2*c*s-3*a*f)/(2*Math.sqrt(c*c*c)),E=Math.acos(C)/3,x=Math.sqrt(c),_=Math.cos(E),I=(-s-2*x*_)/(3*a),O=(-s+x*(_+this.THREE_SQRT*Math.sin(E)))/(3*a),k=(-s+x*(_-this.THREE_SQRT*Math.sin(E)))/(3*a);I>=0&&I<=1&&(i[h++]=I),O>=0&&O<=1&&(i[h++]=O),k>=0&&k<=1&&(i[h++]=k)}}return h}},{key:"cubicExtrema",value:function(e,t,r,n,o){var i=6*r-12*t+6*e,a=9*t+3*n-3*e-9*r,s=3*t-3*e,u=0;if(this.isAroundZero(a)){if(this.isNotAroundZero(i)){var l=-s/i;l>=0&&l<=1&&(o[u++]=l)}}else{var c=i*i-4*a*s;if(this.isAroundZero(c))o[0]=-i/(2*a);else if(c>0){var f=Math.sqrt(c),p=(-i+f)/(2*a),h=(-i-f)/(2*a);p>=0&&p<=1&&(o[u++]=p),h>=0&&h<=1&&(o[u++]=h)}}return u}},{key:"cubicSubdivide",value:function(e,t,r,n,o,i){var a=(t-e)*o+e,s=(r-t)*o+t,u=(n-r)*o+r,l=(s-a)*o+a,c=(u-s)*o+s,f=(c-l)*o+l;i[0]=e,i[1]=a,i[2]=l,i[3]=f,i[4]=f,i[5]=c,i[6]=u,i[7]=n}},{key:"cubicProjectPoint",value:function(e,t,r,n,o,i,a,s,u,l,c){var f,p=this.vector.create(),h=this.vector.create(),y=this.vector.create(),d=.005,m=1/0;p[0]=u,p[1]=l;for(var v=0;v<1;v+=.05){h[0]=this.cubicAt(e,r,o,a,v),h[1]=this.cubicAt(t,n,i,s,v);var g=this.vector.distSquare(p,h);g=0&&S=0&&l<=1&&(o[u++]=l)}}else{var c=a*a-4*i*s;if(this.isAroundZero(c)){var f=-a/(2*i);f>=0&&f<=1&&(o[u++]=f)}else if(c>0){var p=Math.sqrt(c),h=(-a+p)/(2*i),y=(-a-p)/(2*i);h>=0&&h<=1&&(o[u++]=h),y>=0&&y<=1&&(o[u++]=y)}}return u}},{key:"quadraticExtremum",value:function(e,t,r){var n=e+r-2*t;return 0===n?.5:(e-t)/n}},{key:"quadraticProjectPoint",value:function(e,t,r,n,o,i,a,s,u){var l,c=this.vector.create(),f=this.vector.create(),p=this.vector.create(),h=.005,y=1/0;c[0]=a,c[1]=s;for(var d=0;d<1;d+=.05){f[0]=this.quadraticAt(e,r,o,d),f[1]=this.quadraticAt(t,n,i,d);var m=this.vector.distSquare(c,f);m=0&&A0){for(var g=this.isInsidePolygon(t.pointList,m,v),b=e.holePolygonPointLists,A=!1,w=0,S=b.length;wt+s&&a>n+s||ae+s&&i>r+s||it+f&&c>n+f&&c>i+f&&c>s+f||ce+f&&l>r+f&&l>o+f&&l>a+f||lt+l&&u>n+l&&u>i+l||ue+l&&s>r+l&&s>o+l||sr||f+c=l)return!0;if(i){var p=n;n=this.normalizeRadian(o),o=this.normalizeRadian(p)}else n=this.normalizeRadian(n),o=this.normalizeRadian(o);n>o&&(o+=l);var h=Math.atan2(u,s);return h<0&&(h+=l),h>=n&&h<=o||h+l>=n&&h+l<=o}},{key:"isInsideBrokenLine",value:function(e,t,r,n){for(var o=Math.max(t,10),i=0,a=e.length-1;ir*r}},{key:"isInsideRect",value:function(e,t,r,n,o,i){return o>=e&&o<=e+r&&i>=t&&i<=t+n}},{key:"isInsideCircle",value:function(e,t,r,n,o){return(n-e)*(n-e)+(o-t)*(o-t)t&&i>n||io?nt&&l>n&&l>i&&l>s||l1&&this.swapExtrema(),y=c.cubicAt(t,n,i,s,p[0]),v>1&&(d=c.cubicAt(t,n,i,s,p[1]))),2==v?bt&&s>n&&s>i||s=0&&f<=1){for(var p=0,h=u.quadraticAt(t,n,i,f),y=0;ya||(l[y]a?0:ir||s<-r)return 0;var c=Math.sqrt(r*r-s*s);if(u[0]=-c,u[1]=c,Math.abs(n-o)>=l){n=0,o=l;var f=i?1:-1;return a>=u[0]+e&&a<=u[1]+e?f:0}if(i){var p=n;n=this.normalizeRadian(o),o=this.normalizeRadian(p)}else n=this.normalizeRadian(n),o=this.normalizeRadian(o);n>o&&(o+=l);for(var h=0,y=0;y<2;y++){var d=u[y];if(d+e>a){var m=Math.atan2(s,d),v=i?1:-1;m<0&&(m=l+m),(m>=n&&m<=o||m+l>=n&&m+l<=o)&&(m>Math.PI/2&&m<1.5*Math.PI&&(v=-v),h+=v)}}return h}},{key:"isInsidePath",value:function(e,t,r,n,o){for(var i=0,a=0,s=0,u=0,l=0,c=!0,f=!0,p="stroke"===(r=r||"fill")||"both"===r,h="fill"===r||"both"===r,y=0;y0&&(h&&(i+=this.windingLine(a,s,u,l,n,o)),0!==i))return!0;u=m[m.length-2],l=m[m.length-1],c=!1,f&&"A"!==d.command&&(f=!1,a=u,s=l)}switch(d.command){case"M":a=m[0],s=m[1];break;case"L":if(p&&this.isInsideLine(a,s,m[0],m[1],t,n,o))return!0;h&&(i+=this.windingLine(a,s,m[0],m[1],n,o)),a=m[0],s=m[1];break;case"C":if(p&&this.isInsideCubicStroke(a,s,m[0],m[1],m[2],m[3],m[4],m[5],t,n,o))return!0;h&&(i+=this.windingCubic(a,s,m[0],m[1],m[2],m[3],m[4],m[5],n,o)),a=m[4],s=m[5];break;case"Q":if(p&&this.isInsideQuadraticStroke(a,s,m[0],m[1],m[2],m[3],t,n,o))return!0;h&&(i+=this.windingQuadratic(a,s,m[0],m[1],m[2],m[3],n,o)),a=m[2],s=m[3];break;case"A":var v=m[0],g=m[1],b=m[2],A=m[3],w=m[4],S=m[5],C=Math.cos(w)*b+v,E=Math.sin(w)*A+g;f?(f=!1,u=C,l=E):i+=this.windingLine(a,s,C,E);var x=(n-v)*A/b+v;if(p&&this.isInsideArcStroke(v,g,A,w,w+S,1-m[7],t,x,o))return!0;h&&(i+=this.windingArc(v,g,A,w,w+S,1-m[7],x,o)),a=Math.cos(w+S)*b+v,s=Math.sin(w+S)*A+g;break;case"z":if(p&&this.isInsideLine(a,s,u,l,t,n,o))return!0;c=!0}}return h&&(i+=this.windingLine(a,s,u,l,n,o)),0!==i}},{key:"getTextWidth",value:function(e,t){var r=e+":"+t;if(this._textWidthCache[r])return this._textWidthCache[r];this._ctx=this._ctx||this.util.getContext(),this._ctx.save(),t&&(this._ctx.font=t);for(var n=0,o=0,i=(e=(e+"").split("\n")).length;othis.TEXT_CACHE_MAX&&(this._textWidthCacheCounter=0,this._textWidthCache={}),n}},{key:"getTextHeight",value:function(e,t){var r=e+":"+t;if(this._textHeightCache[r])return this._textHeightCache[r];this._ctx=this._ctx||this.util.getContext(),this._ctx.save(),t&&(this._ctx.font=t),e=(e+"").split("\n");var n=(this._ctx.measureText("ZH").width+2)*e.length;return this._ctx.restore(),this._textHeightCache[r]=n,++this._textHeightCacheCounter>this.TEXT_CACHE_MAX&&(this._textHeightCacheCounter=0,this._textHeightCache={}),n}}])&&pi(e.prototype,t),r&&pi(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function di(e){"@babel/helpers - typeof";return(di="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function mi(e,t){for(var r=0;r1)for(var o=0,i=n-1;o1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var r=this.map(e.slice(1,3),function(e){return e+"%"});e[1]=r[0],e[2]=r[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=this.adjust(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}}},{key:"toArray",value:function(e){(e=this.trim(e)).indexOf("rgba")<0&&(e=this.toRGBA(e));var t=[],r=0;return e.replace(/[\d.]+/g,function(e){r<3?e|=0:e=+e,t[r++]=e}),t}},{key:"convert",value:function(e,t){if(!this.isCalculableColor(e))return e;var r=this.getData(e),n=r[3];return void 0===n&&(n=1),e.indexOf("hsb")>-1?r=this._HSV_2_RGB(r):e.indexOf("hsl")>-1&&(r=this._HSL_2_RGB(r)),t.indexOf("hsb")>-1||t.indexOf("hsv")>-1?r=this._RGB_2_HSB(r):t.indexOf("hsl")>-1&&(r=this._RGB_2_HSL(r)),r[3]=n,this.toColor(r,t)}},{key:"toRGBA",value:function(e){return this.convert(e,"rgba")}},{key:"toRGB",value:function(e){return this.convert(e,"rgb")}},{key:"toHex",value:function(e){return this.convert(e,"hex")}},{key:"toHSVA",value:function(e){return this.convert(e,"hsva")}},{key:"toHSV",value:function(e){return this.convert(e,"hsv")}},{key:"toHSBA",value:function(e){return this.convert(e,"hsba")}},{key:"toHSB",value:function(e){return this.convert(e,"hsb")}},{key:"toHSLA",value:function(e){return this.convert(e,"hsla")}},{key:"toHSL",value:function(e){return this.convert(e,"hsl")}},{key:"toName",value:function(e){for(var t in this._nameColors)if(this.toHex(this._nameColors[t])===this.toHex(e))return t;return null}},{key:"trim",value:function(e){return String(e).replace(/\s+/g,"")}},{key:"normalize",value:function(e){if(this._nameColors[e]&&(e=this._nameColors[e]),e=(e=this.trim(e)).replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){var t=(3840&(e=parseInt(e.slice(1),16)))<<8,r=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(r<<4)+r+(n<<4)+n).toString(16).slice(1)}return e}},{key:"lift",value:function(e,t){if(!this.isCalculableColor(e))return e;var r=t>0?1:-1;void 0===t&&(t=0),t=Math.abs(t)>1?1:Math.abs(t),e=this.toRGB(e);for(var n=this.getData(e),o=0;o<3;o++)n[o]=1===r?n[o]*(1-t)|0:(255-n[o])*t+n[o]|0;return"rgb("+n.join(",")+")"}},{key:"reverse",value:function(e){if(!this.isCalculableColor(e))return e;var t=this.getData(this.toRGBA(e));return t=this.map(t,function(e){return 255-e}),this.toColor(t,"rgb")}},{key:"mix",value:function(e,t,r){if(!this.isCalculableColor(e)||!this.isCalculableColor(t))return e;void 0===r&&(r=.5);for(var n=2*(r=1-this.adjust(r,[0,1]))-1,o=this.getData(this.toRGBA(e)),i=this.getData(this.toRGBA(t)),a=o[3]-i[3],s=((n*a==-1?n:(n+a)/(1+n*a))+1)/2,u=1-s,l=[],c=0;c<3;c++)l[c]=o[c]*s+i[c]*u;var f=o[3]*r+i[3]*(1-r);return f=Math.max(0,Math.min(1,f)),1===o[3]&&1===i[3]?this.toColor(l,"rgb"):(l[3]=f,this.toColor(l,"rgba"))}},{key:"random",value:function(){return"#"+Math.random().toString(16).slice(2,8)}},{key:"getData",value:function(t){var r,n,o=(t=this.normalize(t)).match(this.colorRegExp);if(null===o)throw new Error("The color format error");var i,a=[];if(o[2])i=[(r=o[2].replace("#","").split(""))[0]+r[1],r[2]+r[3],r[4]+r[5]],a=this.map(i,function(t){return e.prototype.adjust.call(this,parseInt(t,16),[0,255])});else if(o[4]){var s=o[4].split(",");n=s[3],i=s.slice(0,3),a=this.map(i,function(t){return t=Math.floor(t.indexOf("%")>0?2.55*parseInt(t,0):t),e.prototype.adjust.call(this,t,[0,255])}),void 0!==n&&a.push(this.adjust(parseFloat(n),[0,1]))}else if(o[5]||o[6]){var u=(o[5]||o[6]).split(","),l=parseInt(u[0],0)/360,c=u[1],f=u[2];n=u[3],(a=this.map([c,f],function(t){return e.prototype.adjust.call(this,parseFloat(t)/100,[0,1])})).unshift(l),void 0!==n&&a.push(this.adjust(parseFloat(n),[0,1]))}return a}},{key:"alpha",value:function(e,t){if(!this.isCalculableColor(e))return e;null===t&&(t=1);var r=this.getData(this.toRGBA(e));return r[3]=this.adjust(Number(t).toFixed(4),[0,1]),this.toColor(r,"rgba")}},{key:"map",value:function(e,t){if("function"!=typeof t)throw new TypeError;for(var r=e?e.length:0,n=0;n=t[1]&&(e=t[1]),e}},{key:"isCalculableColor",value:function(e){return e instanceof Array||"string"==typeof e}},{key:"_HSV_2_RGB",value:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s=6*o;6===s&&(s=0);var u=0|s,l=a*(1-i),c=a*(1-i*(s-u)),f=a*(1-i*(1-(s-u))),p=0,h=0,y=0;0===u?(p=a,h=f,y=l):1===u?(p=c,h=a,y=l):2===u?(p=l,h=a,y=f):3===u?(p=l,h=c,y=a):4===u?(p=f,h=l,y=a):(p=a,h=l,y=c),t=255*p,r=255*h,n=255*y}return[t,r,n]}},{key:"_HSL_2_RGB",value:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s,u=2*a-(s=a<.5?a*(1+i):a+i-i*a);t=255*this._HUE_2_RGB(u,s,o+1/3),r=255*this._HUE_2_RGB(u,s,o),n=255*this._HUE_2_RGB(u,s,o-1/3)}return[t,r,n]}},{key:"_HUE_2_RGB",value:function(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}},{key:"_RGB_2_HSB",value:function(e){var t,r,n=e[0]/255,o=e[1]/255,i=e[2]/255,a=Math.min(n,o,i),s=Math.max(n,o,i),u=s-a,l=s;if(0===u)t=0,r=0;else{r=u/s;var c=((s-n)/6+u/2)/u,f=((s-o)/6+u/2)/u,p=((s-i)/6+u/2)/u;n===s?t=p-f:o===s?t=1/3+c-p:i===s&&(t=2/3+f-c),t<0&&(t+=1),t>1&&(t-=1)}return[t*=360,r*=100,l*=100]}},{key:"_RGB_2_HSL",value:function(e){var t,r,n=e[0]/255,o=e[1]/255,i=e[2]/255,a=Math.min(n,o,i),s=Math.max(n,o,i),u=s-a,l=(s+a)/2;if(0===u)t=0,r=0;else{r=l<.5?u/(s+a):u/(2-s-a);var c=((s-n)/6+u/2)/u,f=((s-o)/6+u/2)/u,p=((s-i)/6+u/2)/u;n===s?t=p-f:o===s?t=1/3+c-p:i===s&&(t=2/3+f-c),t<0&&(t+=1),t>1&&(t-=1)}return[t*=360,r*=100,l*=100]}}])&&mi(t.prototype,r),n&&mi(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function bi(e){"@babel/helpers - typeof";return(bi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ai(e,t){for(var r=0;ro&&(o=u[0]),u[1]a&&(a=u[1])}t[0]=n,t[1]=i,r[0]=o,r[1]=a}}},{key:"cubeBezier",value:function(e,t,r,n,o,i){var a=new ci,s=[];a.cubicExtrema(e[0],t[0],r[0],n[0],s);for(var u=0;uo&&!i?o+=2*Math.PI:nn&&(f[0]=Math.cos(h)*r+e,f[1]=Math.sin(h)*r+t,u.min(a,f,a),u.max(s,f,s))}}])&&Ai(e.prototype,t),r&&Ai(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Ci(e){"@babel/helpers - typeof";return(Ci="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ei(e,t){for(var r=0;r=200&&o.status<300||304===o.status?t&&t(o.responseText):r&&r(),o.onreadystatechange=new Function,o=null)},o.send(null)}}])&&ji(e.prototype,t),r&&ji(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Bi(e){"@babel/helpers - typeof";return(Bi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Li(e,t){for(var r=0;r1)for(var t in arguments)console.log(arguments[t])}},(t=[{key:"destory",value:function(){return!0}}])&&Qi(e.prototype,t),r&&Qi(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function zi(e){"@babel/helpers - typeof";return(zi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hi(e,t){for(var r=0;ra-2?a-1:h+1][0]+i[0],t[h>a-2?a-1:h+1][1]+i[1]],g=[t[h>a-3?a-1:h+2][0]+i[0],t[h>a-3?a-1:h+2][1]+i[1]]);var b=y*y,A=y*b;s.push([w(d[0],m[0],v[0],g[0],y,b,A),w(d[1],m[1],v[1],g[1],y,b,A)])}return s;function w(e,t,r,n,o,i,a){var s=.5*(r-e),u=.5*(n-t);return(2*(t-r)+s+u)*a+(-3*(t-r)-2*s-u)*i+s*o+t}}},{key:"SUtil_dashedLineTo",value:function(e,t,r,n,o,i,a){var s=[5,5];if(i="number"!=typeof i?5:i,e.setLineDash)return s[0]=i,s[1]=i,a&&a instanceof Array?e.setLineDash(a):e.setLineDash(s),e.moveTo(t,r),void e.lineTo(n,o);var u=n-t,l=o-r,c=Math.floor(Math.sqrt(u*u+l*l)/i);u/=c,l/=c;for(var f=!0,p=0;p-5e-5&&e<5e-5}ea.Util_vector.sub(t,e,this.position),n(t[0])&&n(t[1])||(ea.Util_vector.normalize(t,t),r[2]=t[0]*this.scale[1],r[3]=t[1]*this.scale[1],r[0]=t[1]*this.scale[0],r[1]=-t[0]*this.scale[0],r[4]=this.position[0],r[5]=this.position[1],this.decomposeTransform())})},(t=[{key:"destroy",value:function(){this.position=null,this.rotation=null,this.scale=null,this.needLocalTransform=null,this.needTransform=null}},{key:"updateNeedTransform",value:function(){function e(e){return e>5e-5||e<-5e-5}this.needLocalTransform=e(this.rotation[0])||e(this.position[0])||e(this.position[1])||e(this.scale[0]-1)||e(this.scale[1]-1)}},{key:"updateTransform",value:function(){if(this.updateNeedTransform(),this.parent?this.needTransform=this.needLocalTransform||this.parent.needTransform:this.needTransform=this.needLocalTransform,this.needTransform){var e=[0,0],t=this.transform||ea.Util_matrix.create();if(ea.Util_matrix.identity(t),this.needLocalTransform){if(o(this.scale[0])||o(this.scale[1])){e[0]=-this.scale[2]||0,e[1]=-this.scale[3]||0;var r=o(e[0])||o(e[1]);r&&ea.Util_matrix.translate(t,t,e),ea.Util_matrix.scale(t,t,this.scale),r&&(e[0]=-e[0],e[1]=-e[1],ea.Util_matrix.translate(t,t,e))}if(this.rotation instanceof Array){if(0!==this.rotation[0]){e[0]=-this.rotation[1]||0,e[1]=-this.rotation[2]||0;var n=o(e[0])||o(e[1]);n&&ea.Util_matrix.translate(t,t,e),ea.Util_matrix.rotate(t,t,this.rotation[0]),n&&(e[0]=-e[0],e[1]=-e[1],ea.Util_matrix.translate(t,t,e))}}else 0!=+this.rotation&&ea.Util_matrix.rotate(t,t,this.rotation);(o(this.position[0])||o(this.position[1]))&&ea.Util_matrix.translate(t,t,this.position)}this.transform=t,this.parent&&this.parent.needTransform&&(this.needLocalTransform?ea.Util_matrix.mul(this.transform,this.parent.transform,this.transform):ea.Util_matrix.copy(this.transform,this.parent.transform))}function o(e){return e>5e-5||e<-5e-5}}},{key:"setTransform",value:function(e){if(this.needTransform){var t=this.transform;e.transform(t[0],t[1],t[2],t[3],t[4],t[5])}}},{key:"decomposeTransform",value:function(){if(this.transform){var e=this.transform,t=e[0]*e[0]+e[1]*e[1],r=this.position,n=this.scale,o=this.rotation;a(t-1)&&(t=Math.sqrt(t));var i=e[2]*e[2]+e[3]*e[3];a(i-1)&&(i=Math.sqrt(i)),r[0]=e[4],r[1]=e[5],n[0]=t,n[1]=i,n[2]=n[3]=0,o[0]=Math.atan2(-e[1]/i,e[0]/t),o[1]=o[2]=0}function a(e){return e>5e-5||e<-5e-5}}}])&&ra(e.prototype,t),r&&ra(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function ia(e){"@babel/helpers - typeof";return(ia="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function aa(e,t){for(var r=0;r0}},{key:"addRoot",value:function(e){e instanceof pa&&e.addChildrenToStorage(this),this.addToMap(e),this._roots.push(e)}},{key:"delRoot",value:function(e){if(void 0===e){for(var t=0;t=0&&(this.delFromMap(i.id),this._roots.splice(a,1),i instanceof pa&&i.delChildrenFromStorage(this))}}},{key:"addToMap",value:function(e){return e instanceof pa&&(e._storage=this),e.modSelf(),this._elements[e.id]=e,this}},{key:"get",value:function(e){return this._elements[e]}},{key:"delFromMap",value:function(e){var t=this._elements[e];return t&&(delete this._elements[e],t instanceof pa&&(t._storage=null)),this}},{key:"dispose",value:function(){this._elements=null,this._roots=null,this._hoverElements=null}}])&&ya(t.prototype,r),n&&ya(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function va(e){"@babel/helpers - typeof";return(va="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ga(e,t){for(var r=0;r1},isLeftClick:function(e){return e.which&&1===e.which||e.button&&1===e.button},isRightClick:function(e){return e.which&&3===e.which||e.button&&2===e.button},stop:function(e,t){t||(e.preventDefault?e.preventDefault():e.returnValue=!1),e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},findElement:function(e,t){for(var r=ka.element(e);r.parentNode&&(!r.tagName||r.tagName.toUpperCase()!=t.toUpperCase());)r=r.parentNode;return r},observe:function(e,t,r,n){var o=N.getElement(e);if(n=n||!1,"keypress"===t&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||o.attachEvent)&&(t="keydown"),this.observers||(this.observers={}),!o._eventCacheID){var i="eventCacheID_";o.id&&(i=o.id+"_"+i),o._eventCacheID=N.createUniqueID(i)}var a=o._eventCacheID;this.observers[a]||(this.observers[a]=[]),this.observers[a].push({element:o,name:t,observer:r,useCapture:n}),o.addEventListener?"mousewheel"===t?o.addEventListener(t,r,{useCapture:n,passive:!1}):o.addEventListener(t,r,n):o.attachEvent&&o.attachEvent("on"+t,r)},stopObservingElement:function(e){var t=N.getElement(e)._eventCacheID;this._removeElementObservers(ka.observers[t])},_removeElementObservers:function(e){if(e)for(var t=e.length-1;t>=0;t--){var r=e[t],n=new Array(r.element,r.name,r.observer,r.useCapture);ka.stopObserving.apply(this,n)}},stopObserving:function(e,t,r,n){n=n||!1;var o=N.getElement(e),i=o._eventCacheID;"keypress"===t&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||o.detachEvent)&&(t="keydown");var a=!1,s=ka.observers[i];if(s)for(var u=0;!a&&u0&&(this.setCtxGlobalAlpha(e,"stroke",r),e.stroke()),this.setCtxGlobalAlpha(e,"reset",r);break;case"stroke":this.setCtxGlobalAlpha(e,"stroke",r),r.lineWidth>0&&e.stroke(),this.setCtxGlobalAlpha(e,"reset",r);break;default:this.setCtxGlobalAlpha(e,"fill",r),e.fill(),this.setCtxGlobalAlpha(e,"reset",r)}this.drawText(e,r,this.style),this.afterBrush(e)}},{key:"beforeBrush",value:function(e,t){var r=this.style;return this.brushTypeOnly&&(r.brushType=this.brushTypeOnly),t&&(r=this.getHighlightStyle(r,this.highlightStyle||{},this.brushTypeOnly)),"stroke"==this.brushTypeOnly&&(r.strokeColor=r.strokeColor||r.color),e.save(),this.doClip(e),this.setContext(e,r),this.setTransform(e),r}},{key:"afterBrush",value:function(e){e.restore()}},{key:"setContext",value:function(e,t){for(var r=[["color","fillStyle"],["strokeColor","strokeStyle"],["opacity","globalAlpha"],["lineCap","lineCap"],["lineJoin","lineJoin"],["miterLimit","miterLimit"],["lineWidth","lineWidth"],["shadowBlur","shadowBlur"],["shadowColor","shadowColor"],["shadowOffsetX","shadowOffsetX"],["shadowOffsetY","shadowOffsetY"]],n=0,o=r.length;n=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height&&ea.Util_area.isInside(this,this.style,e,t)}},{key:"drawText",value:function(e,r,n){if(void 0!==r.text&&!1!==r.text){var o=r.textColor||r.color||r.strokeColor;e.fillStyle=o;var i,a,s,u,l=10,c=r.textPosition||this.textPosition||"top",f=[];switch(f=this.refOriginalPosition&&2===this.refOriginalPosition.length?this.refOriginalPosition:[0,0],c){case"inside":case"top":case"bottom":case"left":case"right":if(this.getRect){var p=(n||r).__rect||this.getRect(n||r);switch(c){case"inside":s=p.x+p.width/2,u=p.y+p.height/2,i="center",a="middle","stroke"!=r.brushType&&o==r.color&&(e.fillStyle="#fff");break;case"left":s=p.x-l,u=p.y+p.height/2,i="end",a="middle";break;case"right":s=p.x+p.width+l,u=p.y+p.height/2,i="start",a="middle";break;case"top":s=p.x+p.width/2,u=p.y-l,i="center",a="bottom";break;case"bottom":s=p.x+p.width/2,u=p.y+p.height+l,i="center",a="top"}}break;case"start":case"end":var h=0,y=0,d=0,m=0;if(void 0!==r.pointList){var v=r.pointList;if(v.length<2)return;var g=v.length;switch(c){case"start":h=v[0][0]+f[0],y=v[1][0]+f[0],d=v[0][1]+f[1],m=v[1][1]+f[1];break;case"end":h=v[g-2][0]+f[0],y=v[g-1][0]+f[0],d=v[g-2][1]+f[1],m=v[g-1][1]+f[1]}}else h=r.xStart+f[0]||0,y=r.xEnd+f[0]||0,d=r.yStart+f[1]||0,m=r.yEnd+f[1]||0;switch(c){case"start":i=h0&&e>this._zlevelList[0]){for(o=0;oe);o++);n=this._layers[this._zlevelList[o]]}this._zlevelList.splice(o+1,0,e),t=new ps(N.createUniqueID("_levelLayer_"+e),this);var i=n?n.dom:this._bgDom;i.nextSibling?i.parentNode.insertBefore(t.dom,i.nextSibling):i.parentNode.appendChild(t.dom),t.initContext(),this._layers[e]=t,this._layerConfig[e]&&(new Zo).merge(t,this._layerConfig[e],!0),t.updateTransform()}return t}},{key:"getLayers",value:function(){return this._layers}},{key:"_updateLayerStatus",value:function(e){var t=this._layers,r={};for(var n in t)"hover"!==n&&(r[n]=t[n].elCount,t[n].elCount=0);for(var o=0;o0?1.1:1/1.1,r=this.painter.getLayers(),n=!1;for(var o in r)if("hover"!==o){var i=r[o],a=i.position;if(i.zoomable){i.__zoom=i.__zoom||1;var s=i.__zoom;s*=t,t=(s=Math.max(Math.min(i.maxZoom,s),i.minZoom))/i.__zoom,i.__zoom=s,a[0]-=(this._mouseX-a[0])*(t-1),a[1]-=(this._mouseY-a[1])*(t-1),i.scale[0]*=t,i.scale[1]*=t,i.dirty=!0,n=!0}}n&&this.painter.refresh(),this._dispatchAgency(this._lastHover,Di.EVENT.MOUSEWHEEL,e),this._mousemoveHandler(e)},mousemove:function(e){this._clickThreshold++,e=this._zrenderEventFixed(e),this._lastX=this._mouseX,this._lastY=this._mouseY,this._mouseX=ea.Util_event.getX(e),this._mouseY=ea.Util_event.getY(e);var t=this._mouseX-this._lastX,r=this._mouseY-this._lastY;this._processDragStart(e),this._hasfound=0,this._event=e,this._iterateAndFindHover(),this._hasfound||((!this._draggingTarget||this._lastHover&&this._lastHover!=this._draggingTarget)&&(this._processOutShape(e),this._processDragLeave(e)),this._lastHover=null,this.storage.delHover(),this.painter.clearHover());var n="";if(this._draggingTarget)this.storage.drift(this._draggingTarget.id,t,r),this._draggingTarget.modSelf(),this.storage.addHover(this._draggingTarget);else if(this._isMouseDown){var o=this.painter.getLayers(),i=!1;for(var a in o)if("hover"!==a){var s=o[a];s.panable&&(n="move",s.position[0]+=t,s.position[1]+=r,i=!0,s.dirty=!0)}i&&this.painter.refresh()}this._draggingTarget||this._hasfound&&this._lastHover.draggable?n="move":this._hasfound&&this._lastHover.clickable&&(n="pointer"),this.root.style.cursor=n,this._dispatchAgency(this._lastHover,Di.EVENT.MOUSEMOVE,e),(this._draggingTarget||this._hasfound||this.storage.hasHoverShape())&&this.painter.refreshHover()},mouseout:function(e){var t=(e=this._zrenderEventFixed(e)).toElement||e.relatedTarget;if(t!=this.root)for(;t&&9!=t.nodeType;){if(t==this.root)return void this._mousemoveHandler(e);t=t.parentNode}e.zrenderX=this._lastX,e.zrenderY=this._lastY,this.root.style.cursor="",this._isMouseDown=0,this._processOutShape(e),this._processDrop(e),this._processDragEnd(e),this.painter.refreshHover(),this.dispatch(Di.EVENT.GLOBALOUT,e)},mousedown:function(e){if(this._clickThreshold=0,2==this._lastDownButton)return this._lastDownButton=e.button,void(this._mouseDownTarget=null);this._lastMouseDownMoment=new Date,e=this._zrenderEventFixed(e),this._isMouseDown=1,this._mouseDownTarget=this._lastHover,this._dispatchAgency(this._lastHover,Di.EVENT.MOUSEDOWN,e),this._lastDownButton=e.button},mouseup:function(e){e=this._zrenderEventFixed(e),this.root.style.cursor="",this._isMouseDown=0,this._mouseDownTarget=null,this._dispatchAgency(this._lastHover,Di.EVENT.MOUSEUP,e),this._processDrop(e),this._processDragEnd(e)},touchstart:function(e){e=this._zrenderEventFixed(e,!0),this._lastTouchMoment=new Date,this._mobildFindFixed(e),this._mousedownHandler(e)},touchmove:function(e){e=this._zrenderEventFixed(e,!0),this._mousemoveHandler(e),this._isDragging&&ea.Util_event.stop(e)},touchend:function(e){e=this._zrenderEventFixed(e,!0),this._mouseupHandler(e);var t=new Date;t-this._lastTouchMoment=0;o--){var i=r[o];if(void 0!==i.zlevel&&(e=this.painter.getLayer(i.zlevel,e),n[0]=this._mouseX,n[1]=this._mouseY,e.needTransform&&(ea.Util_matrix.invert(t,e.transform),ea.Util_vector.applyTransform(n,n,t))),this._findHover(i,n[0],n[1]))break}}},{key:"_mobildFindFixed",value:function(e){var t=[{x:10},{x:-20},{x:10,y:10},{y:-20}];this._lastHover=null,this._mouseX=e.zrenderX,this._mouseY=e.zrenderY,this._event=e,this._iterateAndFindHover();for(var r=0;!this._lastHover&&r=0&&this._clips.splice(t,1)}},{key:"_update",value:function(){for(var e=(new Date).getTime(),t=e-this._time,r=this._clips,n=r.length,o=[],i=[],a=0;a=0&&!(d[A]<=a);A--);A=Math.min(A,l-2)}else{for(A=_;Aa);A++);A=Math.min(A-1,l-2)}_=A,I=a;var s=d[A+1]-d[A];if(0!==s){var c,y;for(w=(a-d[A])/s,i?(C=m[A],S=m[0===A?A:A-1],E=m[A>l-2?l-1:A+1],x=m[A>l-3?l-1:A+2],f?Ls._catmullRomInterpolateArray(S,C,E,x,w,w*w,w*w*w,n(e,u),h):(c=p?Ls.rgba2String(O):Ls._catmullRomInterpolate(S,C,E,x,w,w*w,w*w*w),r(e,u,c))):f?Ls._interpolateArray(m[A],m[A+1],w,n(e,u),h):(p?(Ls._interpolateArray(m[A],m[A+1],w,O,1),y=Ls.rgba2String(O)):y=Ls._interpolateNumber(m[A],m[A+1],w),r(e,u,y)),A=0;A=0;t--)e[t].destroy()}}},{key:"setVisibility",value:function(e){e!==this.visibility&&(this.visibility=e,this.display(e),this.redrawThematicFeatures(this.map.getBounds()))}},{key:"display",value:function(e){this.div.style.display=e?"block":"none"}},{key:"setOpacity",value:function(e){if(e!==this.opacity){this.opacity=e;var t=this.div;N.modifyDOMElement(t,null,null,null,null,null,null,e),null!==this.map&&o().Evented.prototype.fire("changelayer",{layer:this,property:"opacity"})}}},{key:"addFeatures",value:function(e){}},{key:"removeFeatures",value:function(e){var t=this;if(e){if(e===t.features)return t.removeAllFeatures();N.isArray(e)||"function"==typeof e||(e=[e]);for(var r=[],n=0;n=r.left&&a.x<=r.right&&a.y>=r.top&&a.y<=r.bottom){n=!0;break}}return n}},{key:"clearCache",value:function(){this.cache={},this.charts=[]}},{key:"removeFeatures",value:function(e){this.clearCache(),ou(t,"removeFeatures",this,3)([e])}},{key:"removeAllFeatures",value:function(){this.clearCache(),ou(t,"removeAllFeatures",this,3)([])}},{key:"redraw",value:function(){return this.clearCache(),!!this.renderer&&(this.redrawThematicFeatures(this.map.getBounds()),!0)}},{key:"clear",value:function(){this.renderer&&(this.renderer.clearAll(),this.renderer.refresh()),this.removeAllFeatures(),this.clearCache()}}])&&tu(r.prototype,n),i&&tu(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,i}();function lu(e){"@babel/helpers - typeof";return(lu="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cu(e,t){for(var r=0;rn&&(n=u[0]),u[1]o&&(o=u[1]))}return e.__rect={x:t,y:r,width:n-t,height:o-r},e.__rect}},{key:"getRectNoRotation",value:function(e){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var t,r=this.refOriginalPosition,n=ea.Util_area.getTextHeight("ZH",e.textFont),o=ea.Util_area.getTextWidth(e.text,e.textFont),i=ea.Util_area.getTextHeight(e.text,e.textFont),a=e.x+r[0];"end"==e.textAlign||"right"==e.textAlign?a-=o:"center"==e.textAlign&&(a-=o/2),t="top"==e.textBaseline?e.y+r[1]:"bottom"==e.textBaseline?e.y+r[1]-i:e.y+r[1]-i/2;var s,u=!1;if(e.maxWidth){var l=parseInt(e.maxWidth);l-1&&(o+=!0===u?n/3*(o/s):n/3));return{x:a,y:t,width:o,height:i}}},{key:"getTextBackground",value:function(e,t){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var r=this.refOriginalPosition;if(!t&&e.__textBackground)return e.__textBackground;var n=this.getRectNoRotation(e),o=e.x+r[0],i=e.y+r[1],a=[];if(e.textRotation&&0!==e.textRotation){var s=e.textRotation,u=this.getRotatedLocation(n.x,n.y,o,i,s),l=this.getRotatedLocation(n.x+n.width,n.y,o,i,s),c=this.getRotatedLocation(n.x+n.width,n.y+n.height,o,i,s),f=this.getRotatedLocation(n.x,n.y+n.height,o,i,s);a.push(u),a.push(l),a.push(c),a.push(f)}else{var p=[n.x,n.y],h=[n.x+n.width,n.y],y=[n.x+n.width,n.y+n.height],d=[n.x,n.y+n.height];a.push(p),a.push(h),a.push(y),a.push(d)}return e.__textBackground=a,e.__textBackground}},{key:"getRotatedLocation",value:function(e,t,r,n,o){var i,a,s=new Array;return t=-t,n=-n,o=-o,i=(e-r)*Math.cos(o/180*Math.PI)-(t-n)*Math.sin(o/180*Math.PI)+r,a=(e-r)*Math.sin(o/180*Math.PI)+(t-n)*Math.cos(o/180*Math.PI)+n,s[0]=i,s[1]=-a,s}}])&&jl(r.prototype,n),o&&jl(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Fl(e){"@babel/helpers - typeof";return(Fl="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ql(e,t){for(var r=0;r0&&("stroke"==r.brushType||"both"==r.brushType)&&(n||(e.beginPath(),this.buildPath(e,r)),this.setCtxGlobalAlpha(e,"stroke",r),e.stroke(),this.setCtxGlobalAlpha(e,"reset",r)),this.drawText(e,r,this.style);var o=N.cloneObject(r);if(o.pointList&&this.holePolygonPointLists&&this.holePolygonPointLists.length>0)for(var i=this.holePolygonPointLists,a=i.length,s=0;s0&&("stroke"==o.brushType||"both"==o.brushType)?(n||(e.beginPath(),this.buildPath(e,o)),e.globalCompositeOperation="source-over",this.setCtxGlobalAlpha(e,"stroke",o),e.stroke(),this.setCtxGlobalAlpha(e,"reset",o)):e.globalCompositeOperation="source-over"}e.restore()}},{key:"buildPath",value:function(e,t){t.showShadow&&(e.shadowBlur=t.shadowBlur,e.shadowColor=t.shadowColor,e.shadowOffsetX=t.shadowOffsetX,e.shadowOffsetY=t.shadowOffsetY),this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var r=this.refOriginalPosition,n=t.pointList;if(!(n.length<2))if(t.smooth&&"spline"!==t.smooth){var o,i,a,s=ea.SUtil_smoothBezier(n,t.smooth,!0,t.smoothConstraint,r);e.moveTo(n[0][0]+r[0],n[0][1]+r[1]);for(var u=n.length,l=0;li&&(i=u[l][0]+r[0]),u[l][1]+r[1]s&&(s=u[l][1]+r[1]);return n="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(o-n/2),y:Math.round(a-n/2),width:i-o+n,height:s-a+n},e.__rect}}])&&Yl(r.prototype,n),o&&Yl(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function tc(e){"@babel/helpers - typeof";return(tc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function rc(e,t){for(var r=0;rc&&(r*=c/(a=r+n),n*=c/a),o+i>c&&(o*=c/(a=o+i),i*=c/a),n+o>f&&(n*=f/(a=n+o),o*=f/a),r+i>f&&(r*=f/(a=r+i),i*=f/a),e.moveTo(u+r,l),e.lineTo(u+c-n,l),0!==n&&e.quadraticCurveTo(u+c,l,u+c,l+n),e.lineTo(u+c,l+f-o),0!==o&&e.quadraticCurveTo(u+c,l+f,u+c-o,l+f),e.lineTo(u+i,l+f),0!==i&&e.quadraticCurveTo(u,l+f,u,l+f-i),e.lineTo(u,l+r),0!==r&&e.quadraticCurveTo(u,l,u+r,l)}},{key:"buildPath",value:function(e,t){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var r=this.refOriginalPosition;t.radius?this._buildRadiusPath(e,t):(e.moveTo(t.x+r[0],t.y+r[1]),e.lineTo(t.x+r[0]+t.width,t.y+r[1]),e.lineTo(t.x+r[0]+t.width,t.y+r[1]+t.height),e.lineTo(t.x+r[0],t.y+r[1]+t.height),e.lineTo(t.x+r[0],t.y+r[1])),e.closePath()}},{key:"getRect",value:function(e){this.refOriginalPosition&&2===this.refOriginalPosition.length||(this.refOriginalPosition=[0,0]);var t,r=this.refOriginalPosition;return e.__rect?e.__rect:(t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x+r[0]-t/2),y:Math.round(e.y+r[1]-t/2),width:e.width+t,height:e.height+t},e.__rect)}}])&&cc(r.prototype,n),o&&cc(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function vc(e){"@babel/helpers - typeof";return(vc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function gc(e,t){for(var r=0;r1?ea.Util_computeBoundingBox.arc(a,s,u,c,f,!p,r,o):(r[0]=o[0]=a,r[1]=o[1]=s),ea.Util_computeBoundingBox.arc(a,s,l,c,f,!p,n,i),ea.Util_vector.min(r,r,n),ea.Util_vector.max(o,o,i),e.__rect={x:r[0],y:r[1],width:o[0]-r[0],height:o[1]-r[1]},e.__rect}}])&&gc(r.prototype,n),o&&gc(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function xc(e){"@babel/helpers - typeof";return(xc="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _c(e,t){for(var r=0;r=15){var p=parseInt(i.axis3DParameter),h=[o[0]-p,o[1]+p];i.axisUseArrow?(c.push([h[0]+1.5,h[1]-7.5]),c.push([h[0]-1,h[1]+1]),c.push([h[0]+7.5,h[1]-1.5]),f.push([h[0],h[1]])):f.push([h[0],h[1]]),f.push([o[0],o[1]])}f.push([o[2]+5,o[1]])}else{var y=Math.abs(o[1]-o[3])/l,d=o[3];f.push([o[0],d-5]);for(var m=0;m=15){var g=parseInt(i.axis3DParameter),b=[o[0]-g,o[1]+g];i.axisUseArrow?(c.push([b[0]+1.5,b[1]-7.5]),c.push([b[0]-1,b[1]+1]),c.push([b[0]+7.5,b[1]-1.5]),f.push([b[0],b[1]])):f.push([b[0],b[1]]),f.push([o[0],o[1]])}f.push([o[2]+5,o[1]])}if(i.axisUseArrow){var A=[[o[2]+5,o[1]+4],[o[2]+13,o[1]],[o[2]+5,o[1]-4]],w=[[o[0]-4,o[3]-5],[o[0],o[3]-13],[o[0]+4,o[3]-5]],S=new Lu(A);S.style={fillColor:"#008acd"},N.copyAttributesWithClip(S.style,i.axisStyle),s.push(e.createShape(S));var C=new Lu(w);if(C.style={fillColor:"#008acd"},N.copyAttributesWithClip(C.style,i.axisStyle),s.push(e.createShape(C)),i.axis3DParameter&&!isNaN(i.axis3DParameter)&&i.axis3DParameter>=15){var E=new Lu(c);E.style={fillColor:"#008acd"},N.copyAttributesWithClip(E.style,i.axisStyle),s.push(e.createShape(E))}}var x=new Ou(f);x.style={strokeLinecap:"butt",strokeLineJoin:"round",strokeColor:"#008acd",strokeWidth:1},i.axisStyle&&N.copyAttributesWithClip(x.style,i.axisStyle),x.clickable=!1,x.hoverable=!1;var _=[e.createShape(x)],I=[];if(i.axisYLabels&&i.axisYLabels.length&&i.axisYLabels.length>0){var O=i.axisYLabels,k=O.length,P=[0,0];if(i.axisYLabelsOffset&&i.axisYLabelsOffset.length&&(P=i.axisYLabelsOffset),1==k){var T=new al(o[0]-5+P[0],o[3]+P[1],O[0]);T.style={labelAlign:"right"},i.axisYLabelsStyle&&N.copyAttributesWithClip(T.style,i.axisYLabelsStyle),T.clickable=!1,T.hoverable=!1,I.push(e.createShape(T))}else for(var j=o[3],M=Math.abs(o[1]-o[3])/(k-1),B=0;B0){var D=i.axisXLabels,F=D.length,Q=[0,0];if(i.axisXLabelsOffset&&i.axisXLabelsOffset.length&&(Q=i.axisXLabelsOffset),n&&n.xPositions&&n.xPositions.length&&n.xPositions.length==F)for(var G=n.xPositions,U=0;U=0&&r[o]&&N.copyAttributesWithClip(a,r[o]),n&&n.length&&void 0!==i)for(var s=n,u=s.length,l=parseFloat(i),c=0;c0){var l=i[i.length-1];if(Math.abs(l[0]-n[0])<=a&&Math.abs(l[1]-n[1])<=a)continue}i.push(n)}if(i.length<2)return null;var c=new Object;(c=N.copyAttributesWithClip(c,this.style,["pointList"])).pointList=i;var f=new uc({style:c,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(f.highlightStyle=this.highlightStyle),f.refOriginalPosition=this.location,f.refDataID=this.data.id,f.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&N.copyAttributesWithClip(f,this.shapeOptions),this.shapes.push(f)}},{key:"multiPointToTF",value:function(e){for(var t=e.components,r=[],n=[],o=this.location,i=[],a=this.nodesClipPixel,s=0;s0){var l=i[i.length-1];if(Math.abs(l[0]-n[0])<=a&&Math.abs(l[1]-n[1])<=a)continue}i.push(n);var c=new Object;c.r=6,(c=N.copyAttributesWithClip(c,this.style)).x=n[0],c.y=n[1];var f=new Pl({style:c,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(f.highlightStyle=this.highlightStyle),f.refOriginalPosition=o,f.refDataID=this.data.id,f.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&N.copyAttributesWithClip(f,this.shapeOptions),this.shapes.push(f)}}},{key:"multiLineStringToTF",value:function(e){for(var t=e.components,r=0;r0){var p=i[i.length-1];if(Math.abs(p[0]-n[0])<=u&&Math.abs(p[1]-n[1])<=u)continue}i.push(n)}}else{a=[];for(var h=0;h0){var y=a[a.length-1];if(Math.abs(y[0]-n[0])<=u&&Math.abs(y[1]-n[1])<=u)continue}a.push(n)}}a.length<2||s.push(a)}if(!(i.length<2)){var d={};(d=N.copyAttributesWithClip(d,this.style,["pointList"])).pointList=i;var m=new ec({style:d,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(m.highlightStyle=this.highlightStyle),m.refOriginalPosition=this.location,m.refDataID=this.data.id,m.isHoverByRefDataID=this.isMultiHover,s.length>0&&(m.holePolygonPointLists=s),this.shapeOptions&&N.copyAttributesWithClip(m,this.shapeOptions),this.shapes.push(m)}}},{key:"rectangleToTF",value:function(e){var t=this.location,r=new qe(e.x,e.y),n=this.layer.map.getResolution(),o=this.getLocalXY(r),i=new Object;i.r=6,(i=N.copyAttributesWithClip(i,this.style)).x=o[0]-t[0],i.y=o[1]-t[1]-2*e.width/n,i.width=e.width/n,i.height=e.height/n;var a=new mc({style:i,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(a.highlightStyle=this.highlightStyle),a.refOriginalPosition=t,a.refDataID=this.data.id,a.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&N.copyAttributesWithClip(a,this.shapeOptions),this.shapes.push(a)}},{key:"geoTextToTF",value:function(e){var t=this.location,r=this.getLocalXY(e),n=new Object;n.r=6,(n=N.copyAttributesWithClip(n,this.style,["x","y","text"])).x=r[0]-t[0],n.y=r[1]-t[1],n.text=e.text;var o=new Dl({style:n,clickable:this.isClickAble,hoverable:this.isHoverAble});this.highlightStyle&&(o.highlightStyle=this.highlightStyle),o.refOriginalPosition=t,o.refDataID=this.data.id,o.isHoverByRefDataID=this.isMultiHover,this.shapeOptions&&N.copyAttributesWithClip(o,this.shapeOptions),this.shapes.push(o)}},{key:"updateAndAddShapes",value:function(){var e=this.getLocalXY(this.lonlat);this.location=e;for(var t=this.layer.renderer,r=0,n=this.shapes.length;rs){var p=i[0];i.splice(0,1),delete o[p]}}}if(this.renderer.render(),r&&this.isHoverAble&&this.isMultiHover){var h=this.getShapesByFeatureID(r);this.renderer.updateHoverShapes(h)}}},{key:"createThematicFeature",value:function(e){var t=N.copyAttributesWithClip(this.style);e.style&&!0===this.isAllowFeatureStyle&&(t=N.copyAttributesWithClip(e.style));var r={};r.nodesClipPixel=this.nodesClipPixel,r.isHoverAble=this.isHoverAble,r.isMultiHover=this.isMultiHover,r.isClickAble=this.isClickAble,r.highlightStyle=Oc.transformStyle(this.highlightStyle);for(var n=new Rc(e,this,Oc.transformStyle(t),r),o=0;o0&&0==this.labelFeatures.length)for(var r=this.setLabelsStyle(this.features),n=0,o=r.length;n=0&&y.x<=f.x&&y.y>=0&&y.y<=f.y){if(r.style.minZoomLevel>-1&&l<=r.style.minZoomLevel)continue;if(r.style.maxZoomLevel>-1&&l>r.style.maxZoomLevel)continue;var d=null;r.isStyleChange?(r.isStyleChange=null,d=this.calculateLabelBounds(r,y)):d=r.geometry.bsInfo.w&&r.geometry.bsInfo.h?this.calculateLabelBounds2(r,y):this.calculateLabelBounds(r,y);var m=new We(0,f.y,f.x,0),v=d.length;if(this.isAvoid){var g=this.getAvoidInfo(m,d);if(g){if("left"===g.aspectW){r.style.labelXOffset+=g.offsetX;for(var b=0;b=o[u].start&&a=o[u].start&&as&&(s=r,u="top")}if(t.y>e.bottom){var n=Math.abs(t.y-e.bottom);n>s&&(s=n,u="bottom")}if(t.xa&&(a=o,l="left")}if(t.x>e.right){var i=Math.abs(t.x-e.right);i>a&&(a=i,l="right")}}}}},{key:"isQuadrilateralOverLap",value:function(e,t){var r=e.length,n=t.length;if(5!==r||5!==n)return null;for(var o=!1,i=0;ie-n&&r.time-1?t=1:["degrees","deg","degree","dd"].indexOf(e.toLocaleLowerCase())>-1?t=2*Math.PI*6378137/360:e===yn.KILOMETER?t=1e3:e===yn.INCH?t=.025399999918:e===yn.FOOT&&(t=.3048),t},yf={SquareFoot:10.763910417,SquareKiloMeter:1e-6,SquareMeter:1,SquareMile:3.86e-7,SquareYard:1.195990046};function df(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[-180,180],o=n[1],i=n[0],a=o-i;return e===o&&t?e:e===i&&r?e:0===((e-i)%a+a)%a&&t?o:((e-i)%a+a)%a+i}function mf(e){var t=parseInt(e),r=parseInt(60*(e-t)),n=parseInt(60*(60*(e-t)-r));return r=0===parseInt(r/10)?"0".concat(r):r,n=0===parseInt(n/10)?"0".concat(n):n,"".concat(t,"°").concat(r,"'").concat(n)}function vf(e,t,r){return 1/(e*t*(1/.0254)*hf(r))}function gf(e){"@babel/helpers - typeof";return(gf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function bf(e,t){for(var r=0;rthis.mapVOptions.maxZoom)}},{key:"_getResolution",value:function(){var e=this.map.getBounds(),t=(e.getEast()-e.getWest())/this.map.getCanvas().getBoundingClientRect().width;return hf("DEGREE")*t}},{key:"_getCenterPixel",value:function(){return this.map.project(new(o().LngLat)(0,0))}},{key:"addData",value:function(e,t){this.renderer.addData(e,t)}},{key:"update",value:function(e){this.renderer.update(e)}},{key:"getData",value:function(){return this.renderer&&(this.dataSet=this.renderer.getData()),this.dataSet}},{key:"removeData",value:function(e){this.renderer&&this.renderer.removeData(e)}},{key:"clearData",value:function(){this.renderer.clearData()}},{key:"show",value:function(){return this.renderer&&this.renderer.show(),this}},{key:"hide",value:function(){return this.renderer&&this.renderer.hide(),this}},{key:"getTopLeft",value:function(){var e,t=this.map;t&&(e=t.getBounds().getNorthWest());return e}},{key:"bindEvent",value:function(){var e=this.map;this.mapVOptions.methods&&(this.mapVOptions.methods.click&&e.on("click",this.renderer.clickEvent),this.mapVOptions.methods.mousemove&&e.on("mousemove",this.renderer.mousemoveEvent))}},{key:"unbindEvent",value:function(){var e=this.map;this.mapvOptions.methods&&(this.mapvOptions.methods.click&&e.off("click",this.clickEvent),this.mapvOptions.methods.mousemove&&e.off("mousemove",this.mousemoveEvent))}},{key:"setVisibility",value:function(e){e!==this.visibility&&(this.visibility=e,e?this.show():this.hide())}},{key:"setZIndex",value:function(e){this.renderer.setZIndex(e)}}])&&bf(e.prototype,t),r&&bf(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Sf(e){"@babel/helpers - typeof";return(Sf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Cf(e,t){for(var r=0;r",a="
    "+(t._createLegendElement.call(t)||"")+"
    ";this._container.innerHTML=i+a}return t._appendLegendCSSStyle(),this._container},r.prototype.onRemove=function(){this._container.parentNode.removeChild(this._container),this._map=void 0},new r}},{key:"_createLegendElement",value:function(){}},{key:"_addLayer",value:function(){var e=this.getLayerStyleOptions(),t=this.id?this.id:"theme3DLayer",r=this.sourceId=t+"Source";this.map.getSource(r)?(this.map.removeSource(r),this.map.addSource(r,{type:"geojson",data:this.data})):this.map.addSource(r,{type:"geojson",data:this.data}),this.map.addLayer({id:t,type:"fill-extrusion",source:r,paint:e}),this.map.moveLayer(t)}},{key:"_addHighLightLayer",value:function(){if(this.map){var e=this.map;e.addLayer({id:this._highlightLayerId,type:"fill-extrusion",source:this.sourceId,paint:this.getHighlightStyleOptions(),filter:["in","$id",""]}),this._selectFeatureId=null,e.on("mousemove",this.id,this._onMouseMove.bind(this)),e.on("mouseout",this.id,this._onMouseMove.bind(this))}}},{key:"_onMouseMove",value:function(e){var t=this,r=this.map,n=r.queryRenderedFeatures(e.point,{layers:[t.id]});if(t.highlight&&t.highlight.callback&&t.highlight.callback(n,e),!n||n.length<1)return t._clearHighlight.call(t),void(t._selectFeatureId=null);var o=n[0].id;t._selectFeatureId!==o&&(t._selectFeatureId=o,r.setFilter(t._highlightLayerId,["==","$id",t._selectFeatureId]))}},{key:"_clearHighlight",value:function(){this.map&&this.map.setFilter(this._highlightLayerId,["in","$id",""])}},{key:"_appendLegendCSSStyle",value:function(){var e=document.createElement("style");e.type="text/css";e.innerHTML="\n .legend {\n display: inline-block;\n border-radius: 2px;\n -moz-border-radius: 2px;\n -webkit-border-radius: 2px;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.8);\n background-color: rgb(255, 255, 255);\n }\n .legend-light {\n color: rgba(0, 0, 0, 0.8);\n background-color: rgb(255, 255, 255);\n box-shadow: 0px 0px 6px #bbbbbb;\n -moz-box-shadow: 0px 6px 10px #bbbbbb;\n -webkit-box-shadow: 0px 0px 6px #bbbbbb;\n }\n .legend-dark {\n color: rgba(255, 255, 255, 0.8);\n background-color: rgb(64, 64, 64);\n }\n .legend .legend-title {\n min-height: 14px;\n max-width: 500px;\n padding:6px 10px;\n }\n .legend-light .legend-title {\n color: rgba(0, 0, 0, 0.8);\n }\n .legend-dark .legend-title {\n color: rgba(255, 255, 255, 0.8);\n }\n .legend-content{\n padding:6px 10px;\n }\n "+this._legendCSSStyle(),document.getElementsByTagName("head")[0].appendChild(e)}},{key:"_legendCSSStyle",value:function(){return"\n .legend ul {\n padding: 0;\n margin: 0 16px;\n height: 100%;\n display: block;\n list-style: none;\n }\n\n .legend li {\n vertical-align: middle;\n }\n\n .legend li span:first-child {\n vertical-align: middle;\n }\n\n .legend li span:last-child {\n line-height: 28px;\n max-width: 200px;\n vertical-align: middle;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n -ms-text-overflow: ellipsis;\n }\n\n .legend-vertical li {\n height: 28px;\n }\n\n .legend-vertical li span:first-child {\n display: inline-block;\n width: 60px;\n height: 100%;\n }\n\n .legend-vertical li span:last-child {\n display: inline-block;\n margin-left: 16px;\n height: 100%;\n }\n\n .legend-horizontal li {\n height: 56px;\n float: left;\n }\n\n .legend-horizontal li span:first-child {\n display: block;\n width: 100%;\n height: 50%;\n }\n\n .legend-horizontal li span:last-child {\n display: block;\n vertical-align: middle;\n width: 60px;\n height: 50%;\n text-align: center;\n }\n "}},{key:"_extend",value:function(e){for(var t=0;t";for(e=0;e "+o;else o=o+"-"+this._getWrapperText(this.colorStops[e+1][0]);r+="
  • "+o+"
  • "}return r+=""}},{key:"_getWrapperText",value:function(e){var t=e*(null==this.legendRatio?1:parseFloat(this.legendRatio)),r=parseFloat(t);return r%1e6<=1e6?r.toString():parseInt(r/1e3)+"k"}}])&&If(r.prototype,n),o&&If(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Mf(e){"@babel/helpers - typeof";return(Mf="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Nf(e,t){for(var r=0;r0&&r.attributes){var n=this.themeField,o=r.attributes,i=this.styleGroups,a=!1,s=null;for(var u in o)if(n===u){a=!0,s=o[u];break}if(a)for(var l=0,c=i.length;l=i[l].start&&s"+n+""}return e+=""}}])&&Yf(r.prototype,n),o&&Yf(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function ep(e){"@babel/helpers - typeof";return(ep="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function tp(e,t){for(var r=0;r0&&r.attributes){var n=this.themeField,o=r.attributes,i=this.styleGroups,a=!1,s=null;for(var u in o)if(n===u){a=!0,s=o[u];break}if(a)for(var l=0,c=i.length;l0&&void 0!==arguments[0]?arguments[0]:null;if(!e||0===e.length||e===this.graphics)return this.graphics.length=0,this.layer.props.data&&(this.layer.props.data.length=0),void this.update();N.isArray(e)||(e=[e]);for(var t=e.length-1;t>=0;t--){var r=e[t],n=N.indexOf(this.graphics,r);-1!==n&&this.graphics.splice(n,1)}this.update()}},{key:"update",value:function(){if("Awaiting state"!==this.layer.lifecycle){this.layer.setChangeFlags({dataChanged:!0,propsChanged:!0,viewportChanged:!0,updateTriggersChanged:!0});var e=this.getState(),t=parseInt(this.canvas.style.width),r=parseInt(this.canvas.style.height);e.width=t,e.height=r,this.layer.setState(e)}}},{key:"clear",value:function(){this.removeGraphics(),this.deckGL.finalize()}},{key:"remove",value:function(){this.mapOptions.targetElement.removeChild(this.canvas)}},{key:"destroy",value:function(){this.remove(),this.clear()}},{key:"moveTo",value:function(e,t){var r=document.getElementById(this.id);if(t=void 0===t||t){var n=document.getElementById(e);r&&n&&n.parentNode.insertBefore(r,n)}else{var o=document.getElementById(e);if(r){if(o.nextSibling)return void o.parentNode.insertBefore(r,o.nextSibling);o.parentNode.appendChild(r)}}}},{key:"setVisibility",value:function(e){this.canvas&&e!==this.visibility&&(this.visibility=e,this.canvas.style.display=e?"block":"none")}},{key:"draw",value:function(){var e=this.getState(),t={};for(var r in e)t[r]=e[r];var n=parseInt(this.canvas.style.width),o=parseInt(this.canvas.style.height);t.width=n,t.height=o,t.layers=[this.layer],t.canvas=this.canvas,this.deckGL.setProps(t)}},{key:"_initContainer",value:function(){this.canvas=this._createCanvas(this.mapOptions.mapElement),this.mapOptions.targetElement.appendChild(this.canvas)}},{key:"_createCanvas",value:function(e){var t=document.createElement("canvas");return this.id&&(t.id=this.id),t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.cursor="",t.width=parseInt(e.style.width),t.height=parseInt(e.style.height),t.style.width=e.style.width,t.style.height=e.style.height,t}},{key:"getState",value:function(){var e=this.functions.getMapState();return function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:null;this.renderer&&this.renderer.removeGraphics(e)}},{key:"clear",value:function(){this.renderer&&this.renderer.clear()}},{key:"remove",value:function(){this.renderer&&this.renderer.remove()}},{key:"moveTo",value:function(e,t){this.renderer.moveTo(e,t)}},{key:"setVisibility",value:function(e){this.renderer.setVisibility(e)}},{key:"getState",value:function(){return this.renderer.getState()}},{key:"getMapState",value:function(){var e={},t=this.map.getCenter(),r={longitude:t.lng,latitude:t.lat,zoom:this.map.getZoom(),maxZoom:this.map.getMaxZoom(),pitch:this.map.getPitch(),bearing:this.map.getBearing()};for(var n in r)e[n]=r[n];return this.map.getCRS&&this.map.getCRS()!==o().CRS.EPSG3857&&(e.coordinateSystem=this.coordinateSystem,e.isGeographicCoordinateSystem=this.isGeographicCoordinateSystem),e}}])&&dp(e.prototype,t),r&&dp(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),gp=function(){try{return THREE}catch(e){return{}}}();function bp(e,t,r){if(e===r||e===t)return e;var n=r-t;return((e-t)%n+n)%n+t}function Ap(e){return e*Math.PI/180}var wp={matrix:[1,-1,0,0],projection:{R:6378137,minZoom:0,maxZoom:22,nativeMaxZoom:19,RAD:Math.PI/180,METERS_PER_DEGREE:6378137*Math.PI/180,MAX_LATITUDE:85.0511287798,project:function(e){var t=this.RAD,r=this.METERS_PER_DEGREE,n=this.MAX_LATITUDE,o=e instanceof Array?{lng:e[0],lat:e[1]}:{lng:e.lng,lat:e.lat},i=o.lng,a=Math.max(Math.min(n,o.lat),-n);return{x:i*r,y:(0===a?0:Math.log(Math.tan((90+a)*t/2))/t)*r}},unproject:function(e){var t,r=e.x,n=e.y,o=this.RAD,i=this.METERS_PER_DEGREE;return 0===n?t=0:(t=n/i,t=(2*Math.atan(Math.exp(t*o))-Math.PI/2)/o),{lng:bp(r/i,-180,180),lat:bp(t,-this.MAX_LATITUDE,this.MAX_LATITUDE)}},locate:function(e,t,r){if(!e)return null;if(t=t||0,r=r||0,!t&&!r)return e;var n=e.lng;if(0!==t){var o=Math.abs(t),i=Ap(e.lng);n=bp(180*(i+=2*Math.sqrt(Math.pow(Math.sin(o/(2*this.R)),2)/Math.pow(Math.cos(i),2))*(o>0?1:-1))/Math.PI,-180,180)}var a=e.lat;if(0!==r){var s=Math.abs(r),u=Ap(e.lat);a=bp(180*(u+=2*Math.sin(s/(2*this.R))*(s>0?1:-1))/Math.PI,-90,90)}return{lng:n,lat:a}},getResolution:function(e){if(!this.resolutions){for(var t=[],r=12756274*Math.PI,n=0;n<=this.maxZoom;n++)t[n]=r/(256*Math.pow(2,n));this.resolutions=t}var o=0|e,i=this.resolutions.length;o=o<0?0:o>i-1?i-1:o;var a=this.resolutions[o];return(0|e)!==e&&o!==i-1?a+(this.resolutions[o+1]-a)*(e-o):a}},project:function(e){return this.projection.project(e)},unproject:function(e){return this.projection.unproject(e)},lngLatToPoint:function(e,t){var r=this.project(e);return this.transform(r,this.projection.getResolution(t))},locate:function(e,t,r){return this.projection.locate(e,t,r)},transform:function(e,t){return{x:this.matrix[0]*(e.x-this.matrix[2])/t,y:this.matrix[1]*(e.y-this.matrix[3])/t}}};function Sp(e){"@babel/helpers - typeof";return(Sp="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Cp(e,t){for(var r=0;r=0;t--)e.children[t]instanceof gp.Mesh&&e.remove(e.children[t]);return this}},{key:"clearAll",value:function(e){var t=this.scene;if(!t)return this;for(var r=t.children.length-1;r>=0;r--)!e&&t.children[r]instanceof gp.Camera||t.remove(t.children[r]);return this}},{key:"setPosition",value:function(e,t){if(!e||!t)return this;var r=this.lngLatToPosition(t);return e.position.set(r.x,r.y,r.z),this}},{key:"lngLatToPosition",value:function(e){var t=wp.projection.nativeMaxZoom,r=wp.lngLatToPoint(e,t);return new Pp(r.x,r.y,-0)}},{key:"distanceToThreeVector3",value:function(e,t,r){var n=this.map,o=r||n.getCenter(),i=wp.projection.nativeMaxZoom,a=wp.locate(o,e,t),s=wp.lngLatToPoint(o,i),u=wp.lngLatToPoint(a,i),l=Math.abs(u.x-s.x)*Math.sign(e),c=Math.abs(u.y-s.y)*Math.sign(t);return new Pp(l,c,0)}},{key:"removeDuplicatedCoordinates",value:function(e){function t(e,t){return e[0]===t[0]&&e[1]===t[1]}for(var r=[].concat(e),n=r.length-1;n>=1;n--)t(r[n],r[n-1])&&r.splice(n,1);return t(r[0],r[r.length-1])&&r.splice(r.length-1,1),r}},{key:"getCoordinatesCenter",value:function(e){for(var t=0,r=0,n=0,o=0,i=e.length;o0?this.convertFastToPixelPoints(e):this.canvasContext.clearRect(0,0,this.maxWidth,this.maxWidth)}},{key:"convertFastToPixelPoints",value:function(e){var t,r,n,o,i,a,s,u=[],l=e.getEast()-e.getWest(),c=e.getNorth()-e.getSouth(),f=this.mapElement;o=l/f.width>c/f.height?l/f.width:c/f.height,this.useRadius=this.useGeoUnit?parseInt(this.radius/o):this.radius;for(var p=0;p0&&this.maxWidth>0))return!1;var r=this.canvasContext;r.setTransform(1,0,0,1,0,0),this.canvasContext.clearRect(0,0,this.maxWidth,this.maxHeight),this.drawCircle(this.useRadius),this.createGradient();for(var n=0;ne.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:this.options;(e=e||{}).strokeStyle=Object.assign({},Eh,e.strokeStyle||{}),e.lngLabelStyle=Object.assign({},Ch,e.lngLabelStyle||{}),e.latLabelStyle=Object.assign({},Ch,e.latLabelStyle||{}),this.options=Object.assign({},xh,e,{extent:this.getDefaultExtent(e.extent),wrapX:e.wrapX}),this.oldExtent=this.options.extent,this._calcInterval(),this.isRotate=!1,this.visible=this.options.visible,this.features=this._getGraticuleFeatures()}},{key:"_createCanvas",value:function(){if(!this.canvas){var e=this.mapElement;this.canvas=document.createElement("canvas"),this.canvas.id=this.canvasId,this.canvas.style.position="absolute",this.canvas.style.top="0px",this.canvas.style.left="0px";var t=("undefined"==typeof window?{}:window).devicePixelRatio||1;this.canvas.width=parseInt(e.style.width)*t,this.canvas.height=parseInt(e.style.height)*t,this.canvas.style.width=e.style.width,this.canvas.style.height=e.style.height,this.canvas.globalAlpha=this.options.opacity,this.targetElement.appendChild(this.canvas)}}},{key:"_drawCanvas",value:function(){this.canvas||this._createCanvas(),this.setVisibility(),this._reset()}},{key:"_resizeCallback",value:function(){this.targetElement&&this.targetElement.removeChild(this.canvas),this.canvas=null,this._drawCanvas()}},{key:"_reset",value:function(){this._updateRotate(),this._updateExtent(),this._calcInterval(),this._drawLabel()}},{key:"_updateRotate",value:function(){var e=this.getMapStateByKey("getBearing");this.isRotate=e>-180&&e<=-90||e>=90&&e<180}},{key:"_updateExtent",value:function(){if(this.options.wrapX&&!this.oldExtent){var e=this.getMapStateByKey("getBounds"),t=e._ne,r=e._sw;this.options.extent=[r.lng,r.lat,t.lng,t.lat]}}},{key:"_calcInterval",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.interval;"function"==typeof e?(e=e(this.map),this._currLngInterval=e,this._currLatInterval=e):(this._currLngInterval=e,this._currLatInterval=e)}},{key:"_formatLat",value:function(e){return this.options.latFormatTickLabel?this.options.latLabelFormatter(e):e<0?mf(-1*e)+"S":e>0?mf(e)+"N":""+mf(e)}},{key:"_formatLng",value:function(e){return this.options.lngLabelFormatter?this.options.lngLabelFormatter(e):(e=df(e))>0&&e<=180?mf(e)+"E":e<0&&e>=-180?mf(-1*e)+"W":""+mf(e)}},{key:"_parsePxToInt",value:function(e){e.length>2&&"p"===e.charAt(e.length-2)&&(e=e.substr(0,e.length-2));try{return parseInt(e,10)}catch(e){console.log(e)}return 0}},{key:"_drawLabel",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.visible,r=this.canvas,n=r.getContext("2d");if(t&&this.options.showLabel){if(this.mapElement){this._currLngInterval&&this._currLatInterval||this._calcInterval(),n.clearRect(0,0,r.width,r.height);var o=this.options,i=o.lngLabelStyle,a=o.latLabelStyle,s=this._getGridiculePoints(),u=s.lngPoints,l=s.latPonits;u.forEach(function(t){e._drawLng(n,t[0],t[1],t[2],i)}),l.forEach(function(t){e._drawLat(n,t[0],t[1],t[2],a)})}}else n.clearRect(0,0,r.width,r.height)}},{key:"_drawLat",value:function(e,t,r,n,o){e=this._setLabelStyle(e,o);var i=this.canvas.width,a=12;try{var s=e.font.split(" ")[0];a=this._parsePxToInt(s)}catch(e){console.log(e)}if(!n){var u=t;t=r,r=this.getMapStateByKey("project",[u,t])}var l=this._formatLat(t),c=e.measureText(l).width;e.strokeText(l,(n?i:r.x)-c,(n?r:r.y)+a/2),e.fillText(l,(n?i:r.x)-c,(n?r:r.y)+a/2)}},{key:"_drawLng",value:function(e,t,r,n,o){e=this._setLabelStyle(e,o);var i=this.canvas.height;if(!n){var a=r;r=this.getMapStateByKey("project",[t,a])}var s=this._formatLng(t),u=e.measureText(s).width;e.strokeText(s,(n?r:r.x)-u/2,n?i:r.y),e.fillText(s,(n?r:r.x)-u/2,n?i:r.y)}},{key:"_getLatPoints",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-180,180],r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.features;if(o){if(this.options.wrapX&&-180===t[0]&&180===t[1])return[];var i=[];return o.forEach(function(o){var a=o.geometry.coordinates[0][1];if(o.geometry.coordinates[1][1]===a){var s="number"==typeof n?n:t[1];e.isRotate&&(s="number"==typeof r?r:t[0]),e.options.wrapX&&(i=i.concat(e._getWrapPoints(s,a,[s,s]))),i.push([s,a])}}),i}}},{key:"_getLngPoints",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[-90,90],r=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.features;if(o){var i="number"==typeof r?r:t[0];this.isRotate&&(i="number"==typeof n?n:t[1]);var a=[];return o.forEach(function(t){var r=t.geometry.coordinates[0][0];t.geometry.coordinates[1][0]===r&&(a.push([r,i]),e.options.wrapX&&(a=a.concat(e._getWrapPoints(r,i))))}),a}}},{key:"_getWrapPoints",value:function(e,t){for(var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.oldExtent,n=[],o=this.getMapStateByKey("getBounds"),i=o._ne,a=o._sw,s=r.length>2?r[2]:r[1];e>=a.lng;){var u=df(e,180===s,-180===r[0]);(!r||u>=r[0]&&u<=s)&&n.push([e,t]),e-=360}for(;e<=i.lng;){var l=df(e,180===s,-180===r[0]);(!r||l>=r[0]&&l<=s)&&n.push([e,t]),e+=360}return n}},{key:"_getGridiculePoints",value:function(){var e=this._getEdgeLat(),t=this._getEdgeLng(),r=this._getRange(),n=r.latRange,o=r.lngRange,i=r.firstLat,a=r.firstLng,s=r.lastLat,u=r.lastLng;return{latPonits:this._getUniquePoint(this._getLatPoints(o,a,u),e,1),lngPoints:this._getUniquePoint(this._getLngPoints(n,i,s),t,0)}}},{key:"_getEdgeLat",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._currLatInterval,r=[],n=[],o=this.canvas.width,i=this.canvas.height,a=this._getRange().extent,s=this.getMapStateByKey("getBounds")._ne;if(this.options.wrapX&&df(s.lng)>a[2])return[];for(var u=this._countDecimals(t),l=0;l<=i;l++){var c=this.getMapStateByKey("unproject",[o,l]),f=df(c.lng);(this.options.wrapX?f>=a[0]&&f<=a[2]:c.lng>=a[0]&&c.lng<=a[2])&&c.lat>=a[1]&&c.lat<=a[3]&&(r.push([c.lat,l]),n.push(c.lat),void 0===e&&c.lat.toFixed(u)%t==0&&(e=Number(c.lat.toFixed(u))))}var p=this._getIntersectRange(e,n,r,t),h=p.first,y=p.last,d=p.coordinates,m=p.points;e=Math.min(Math.max(h,-90),90);var v=Math.max(Math.min(Math.round(y),90),-90);return-90!==e||-90!==v?this._getClosestCoordinate(e,v,d,m,t):[]}},{key:"_getEdgeLng",value:function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._currLngInterval,r=[],n=[],o=this.canvas.width,i=this.canvas.height,a=this.options.extent,s=this._countDecimals(t),u=this.getMapStateByKey("getBounds")._sw;if(this.options.wrapX&&df(u.lat)>a[3])return[];for(var l=0;l<=o;l++){var c=this.getMapStateByKey("unproject",[l,i]),f=df(c.lng);(this.options.wrapX?f>=a[0]&&f<=a[2]:c.lng>=a[0]&&c.lng<=a[2])&&c.lat>=a[1]&&c.lat<=a[3]&&(r.push([c.lng,l]),n.push(c.lng),void 0===e&&c.lng.toFixed(s)%t==0&&(e=Number(c.lng.toFixed(s))))}var p=this._getIntersectRange(e,n,r,t),h=p.first,y=p.last,d=p.coordinates,m=p.points;return e=h,this._getClosestCoordinate(e,y,d,m,t)}},{key:"_getIntersectRange",value:function(e,t,r,n){var o=t[t.length-1];if(e>o){o=e,t.reverse(),r.reverse();for(var i=this._countDecimals(n),a=0;a<=t.length;a++){var s=t[a];if(s.toFixed(i)%n==0){e=Number(s.toFixed(i));break}}}return{first:e,last:o,coordinates:t,points:r}}},{key:"_getClosestCoordinate",value:function(e,t,r,n,o){for(var i=[],a=e;a<=t;){var s=this._getClosestNumberIndex(a,r),u=n[s];i.push([Math.round(u[0]),u[1],!0]),a+=o,r=r.slice(s),n=n.slice(s)}return i}},{key:"_getClosestNumberIndex",value:function(e,t){for(var r=0,n=Number.MAX_VALUE,o=0;o2&&void 0!==arguments[2]?arguments[2]:0;if(this.options.wrapX)return e.concat(t);if(!t||0===t.length)return e;var n=t,o=this.canvas.width,i=this.canvas.height;for(var a in e){var s=this.getMapStateByKey("project",e[a]),u=n.findIndex(function(t){return t[0]===e[a][r]});u<=-1?n.push(e[a]):s&&s.x>=0&&s.x<=o&&s.y>=0&&s.y<=i&&(n[u]=e[a])}return n}},{key:"_countDecimals",value:function(e){return Math.floor(e)!==e&&e.toString().split(".")[1].length||0}},{key:"_getGraticuleFeatures",value:function(){var e=this._currLngInterval||10,t=this._currLatInterval||10,r=[],n=this._getRange(),o=n.latRange,i=n.lngRange,a=n.firstLat,s=n.firstLng,u=n.lastLat,l=n.lastLng;this.options.wrapX&&!this.oldExtent&&(o=[-90,90],i=[-180,180],a=s=u=l=null),"number"==typeof s&&r.unshift(this._makeLineFeature(this._makeLineCoords(s,o,a,u))),"number"==typeof l&&r.unshift(this._makeLineFeature(this._makeLineCoords(l,o,a,u)));for(var c=i[0];c<=i[1];c+=e)r.unshift(this._makeLineFeature(this._makeLineCoords(c,o,a,u)));"number"==typeof a&&r.unshift(this._makeLineFeature(this._makeLineCoords(a,i,s,l,"lat"))),"number"==typeof u&&r.unshift(this._makeLineFeature(this._makeLineCoords(u,i,s,l,"lat")));for(var f=o[0];f<=o[1];f+=t)r.unshift(this._makeLineFeature(this._makeLineCoords(f,i,s,l,"lat")));return r}},{key:"_getRange",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.extent&&bh(this.options.extent);e&&0!==e.length||(e=this.getDefaultExtent());var t={};if((e=e.map(function(e){return Number(e.toFixed(6))}))[1]%this._currLatInterval!=0){t.firstLat=e[1];var r=Math.ceil(e[1]/this._currLatInterval);e[1]=r*this._currLatInterval}if(e[3]%this._currLatInterval!=0){t.lastLat=e[3];var n=Math.floor(e[3]/this._currLatInterval);e[3]=n*this._currLatInterval}if(e[0]%this._currLngInterval!=0){t.firstLng=e[0];var o=Math.ceil(e[0]/this._currLngInterval);e[0]=o*this._currLngInterval}if(e[2]%this._currLngInterval!=0){t.lastLng=e[2];var i=Math.floor(e[2]/this._currLngInterval);e[2]=i*this._currLngInterval}return Object.assign({latRange:[e[1],e[3]],lngRange:[e[0],e[2]],extent:e},t)}},{key:"_makeLineCoords",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[-90,90],r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"lng";e="lng"===o?this._lngFix(e):e,r="number"==typeof r?r:t[0],n="number"==typeof n?n:t[1];for(var i=Math.abs(r-n),a=[],s=r;s<=n;s+=i)"lng"===o?a.push([e,s]):a.push([s,e]);return a}},{key:"_makeLineFeature",value:function(e){return{type:"Feature",geometry:{type:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"LineString",coordinates:e}}}},{key:"_lngFix",value:function(e){return e>=180?180:e<=-180?-180:e}},{key:"_transformStrokeStyle",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.options.strokeStyle;if(!e||"string"==typeof e)return{paint:{"line-color":e||"rgba(0,0,0,0.2)"}};var t={visibility:this.visible?"visible":"none","line-join":e.lineJoin||"round","line-cap":e.lineCap||"round"},r={"line-color":e.lineColor||"rgba(0,0,0,0.2)","line-width":e.lineWidth||1,"line-offset":e.lineDashOffset||0,"line-translate-anchor":"viewport","line-opacity":e.lineOpacity||1};return e.lineWidth&&("function"==typeof e.lineWidth?r["line-width"]=e.lineWidth(this.map):r["line-width"]=e.lineWidth),e.lindDasharray&&("function"==typeof e.lindDasharray?r["line-dasharray"]=e.lindDasharray(this.map):r["line-dasharray"]=e.lindDasharray),{layout:t,paint:r}}},{key:"_setLabelStyle",value:function(e,t){return t.textColor&&(e.fillStyle=t.textColor),t.textSize&&(e.font=t.textSize+" "+(t.textFont||["Calibri","sans-serif"]).join(",")),t.textHaloColor&&(e.strokeStyle=t.textHaloColor,e.lineWidth=t.textHaloWidth||1),t.textAnchor&&(e.textBaseline=this._getTxetBaseline(t.textAnchor),e.textAligin=this._getTxetAlign(t.textAligin)),e}},{key:"_getTxetBaseline",value:function(e){if(!e)return"bottom";var t=e.split("-");return t.includes("bottom")?"bottom":t.includes("top")?"top":t.includes("center")?"middle":void 0}},{key:"_getTxetAlign",value:function(e){if(!e)return"center";var t=e.split("-");return t.includes("left")?"left":t.includes("right")?"right":t.includes("center")?"center":void 0}}])&&wh(e.prototype,t),r&&wh(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Ih(e){"@babel/helpers - typeof";return(Ih="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Oh(e,t){for(var r=0;r=this.options.minZoom&&t<=this.options.maxZoom,this.renderer&&(this.renderer.visible=this.visible),this.map.getLayer(this.sourceId)&&this.map.setLayoutProperty(this.sourceId,"visibility",this.visible?"visible":"none"),this.renderer&&this.renderer._drawLabel()}},{key:"setMinZoom",value:function(e){this.options.minZoom=e,this.setVisibility()}},{key:"setMaxZoom",value:function(e){this.options.maxZoom=e,this.setVisibility()}},{key:"setShowLabel",value:function(e){this.options.showLabel=e,this.renderer._drawLabel()}},{key:"setExtent",value:function(e){this.options.extent=this.getDefaultExtent(e,this.map),this.renderer.setExtent(e)}},{key:"setStrokeStyle",value:function(e){if(this.map&&this.map.getLayer(this.sourceId)){this.options.strokeStyle=e;var t=this.renderer._transformStrokeStyle(e),r=t.layout,n=t.paint;for(var o in r)this.map.setLayoutProperty(this.sourceId,o,r[o]);for(var i in n)this.map.setPaintProperty(this.sourceId,i,n[i])}}},{key:"setLngLabelStyle",value:function(e){this.options.lngLabelStyle=e,this.renderer._drawLabel()}},{key:"setLatLabelStyle",value:function(e){this.options.latLabelStyle=e,this.renderer._drawLabel()}},{key:"setIntervals",value:function(e){this.renderer&&this.renderer.setIntervals(e)}},{key:"getDefaultExtent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.map,r=(t.getCRS&&t.getCRS()||{}).lngLatExtent;if(r||(r=[-180,-85.05119,180,85.05119]),!e||0===e.length)return r;var n=o().LngLatBounds.convert(e),i=n._sw,a=n._ne;return e=[i.lng,i.lat,a.lng,a.lat],e=[Math.max(r[0],e[0]),Math.max(r[1],e[1]),Math.min(r[2],e[2]),Math.min(r[3],e[3])]}},{key:"addGraticuleLayer",value:function(){if(!this.map.getSource(this.sourceId)){var e={type:"geojson",data:{type:"FeatureCollection",features:this.renderer.features}};this.map.addSource(this.sourceId,e)}if(!this.map.getLayer(this.sourceId)){var t=Object.assign({id:this.sourceId,type:"line",source:this.sourceId},this.renderer._transformStrokeStyle());this.map.addLayer(t)}}},{key:"_getLatPoints",value:function(e,t,r,n){return this.renderer._getLatPoints(e,t,r,n)}},{key:"_bindEvent",value:function(){this.map.on("styledata",this.styleDataEevent),this.map.on("resize",this.resizeEvent),this.map.on("zoomend",this.zoomendEvent)}},{key:"_unbindEvent",value:function(){this.map.off("styledata",this.styleDataEevent),this.map.off("resize",this.resizeEvent),this.map.off("zoomend",this.zoomendEvent)}},{key:"_setLayerTop",value:function(){var e=this,t=this.map;if(t){var r=t.getStyle&&t.getStyle().layers;r&&r.length&&r.findIndex(function(t){return t.id===e.sourceId})!==r.length-1&&t.getLayer(this.sourceId)&&(t.removeLayer(this.sourceId),this.addGraticuleLayer())}}},{key:"updateGraticuleLayer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.renderer.features;if(this.map.getSource(this.sourceId)){var t={type:"FeatureCollection",features:e};this.map.getSource(this.sourceId).setData(t)}this.addGraticuleLayer()}}])&&Oh(e.prototype,t),r&&Oh(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();!function(e){e[e.Unknown=0]="Unknown",e[e.Point=1]="Point",e[e.LineString=2]="LineString",e[e.Polygon=3]="Polygon",e[e.MultiPoint=4]="MultiPoint",e[e.MultiLineString=5]="MultiLineString",e[e.MultiPolygon=6]="MultiPolygon",e[e.GeometryCollection=7]="GeometryCollection",e[e.CircularString=8]="CircularString",e[e.CompoundCurve=9]="CompoundCurve",e[e.CurvePolygon=10]="CurvePolygon",e[e.MultiCurve=11]="MultiCurve",e[e.MultiSurface=12]="MultiSurface",e[e.Curve=13]="Curve",e[e.Surface=14]="Surface",e[e.PolyhedralSurface=15]="PolyhedralSurface",e[e.TIN=16]="TIN",e[e.Triangle=17]="Triangle"}(Ph||(Ph={}));var Bh,Lh=new Int32Array(2),Rh=new Float32Array(Lh.buffer),Dh=new Float64Array(Lh.buffer),Fh=1===new Uint16Array(new Uint8Array([1,0]).buffer)[0];function Qh(e){"@babel/helpers - typeof";return(Qh="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Gh(e,t){for(var r=0;r>24}},{key:"readUint8",value:function(e){return this.bytes_[e]}},{key:"readInt16",value:function(e){return this.readUint16(e)<<16>>16}},{key:"readUint16",value:function(e){return this.bytes_[e]|this.bytes_[e+1]<<8}},{key:"readInt32",value:function(e){return this.bytes_[e]|this.bytes_[e+1]<<8|this.bytes_[e+2]<<16|this.bytes_[e+3]<<24}},{key:"readUint32",value:function(e){return this.readInt32(e)>>>0}},{key:"readInt64",value:function(e){return BigInt.asIntN(64,BigInt(this.readUint32(e))+(BigInt(this.readUint32(e+4))<>8}},{key:"writeUint16",value:function(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8}},{key:"writeInt32",value:function(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}},{key:"writeUint32",value:function(e,t){this.bytes_[e]=t,this.bytes_[e+1]=t>>8,this.bytes_[e+2]=t>>16,this.bytes_[e+3]=t>>24}},{key:"writeInt64",value:function(e,t){this.writeInt32(e,Number(BigInt.asIntN(32,t))),this.writeInt32(e+4,Number(BigInt.asIntN(32,t>>BigInt(32))))}},{key:"writeUint64",value:function(e,t){this.writeUint32(e,Number(BigInt.asUintN(32,t))),this.writeUint32(e+4,Number(BigInt.asUintN(32,t>>BigInt(32))))}},{key:"writeFloat32",value:function(e,t){Rh[0]=t,this.writeInt32(e,Lh[0])}},{key:"writeFloat64",value:function(e,t){Dh[0]=t,this.writeInt32(e,Lh[Fh?0:1]),this.writeInt32(e+4,Lh[Fh?1:0])}},{key:"getBufferIdentifier",value:function(){if(this.bytes_.length=0;r--)e.addInt32(t[r]);return e.endVector()}},{key:"startEndsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"addXy",value:function(e,t){e.addFieldOffset(1,t,0)}},{key:"createXyVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startXyVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addZ",value:function(e,t){e.addFieldOffset(2,t,0)}},{key:"createZVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startZVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addM",value:function(e,t){e.addFieldOffset(3,t,0)}},{key:"createMVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startMVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addT",value:function(e,t){e.addFieldOffset(4,t,0)}},{key:"createTVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startTVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addTm",value:function(e,t){e.addFieldOffset(5,t,0)}},{key:"createTmVector",value:function(e,t){e.startVector(8,t.length,8);for(var r=t.length-1;r>=0;r--)e.addInt64(t[r]);return e.endVector()}},{key:"startTmVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addType",value:function(e,t){e.addFieldInt8(6,t,Ph.Unknown)}},{key:"addParts",value:function(e,t){e.addFieldOffset(7,t,0)}},{key:"createPartsVector",value:function(e,t){e.startVector(4,t.length,4);for(var r=t.length-1;r>=0;r--)e.addOffset(t[r]);return e.endVector()}},{key:"startPartsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"endGeometry",value:function(e){return e.endObject()}},{key:"createGeometry",value:function(t,r,n,o,i,a,s,u,l){return e.startGeometry(t),e.addEnds(t,r),e.addXy(t,n),e.addZ(t,o),e.addM(t,i),e.addT(t,a),e.addTm(t,s),e.addType(t,u),e.addParts(t,l),e.endGeometry(t)}}],(r=[{key:"__init",value:function(e,t){return this.bb_pos=e,this.bb=t,this}},{key:"ends",value:function(e){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.readUint32(this.bb.__vector(this.bb_pos+t)+4*e):0}},{key:"endsLength",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"endsArray",value:function(){var e=this.bb.__offset(this.bb_pos,4);return e?new Uint32Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"xy",value:function(e){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"xyLength",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"xyArray",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"z",value:function(e){var t=this.bb.__offset(this.bb_pos,8);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"zLength",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"zArray",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"m",value:function(e){var t=this.bb.__offset(this.bb_pos,10);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"mLength",value:function(){var e=this.bb.__offset(this.bb_pos,10);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"mArray",value:function(){var e=this.bb.__offset(this.bb_pos,10);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"t",value:function(e){var t=this.bb.__offset(this.bb_pos,12);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"tLength",value:function(){var e=this.bb.__offset(this.bb_pos,12);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"tArray",value:function(){var e=this.bb.__offset(this.bb_pos,12);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"tm",value:function(e){var t=this.bb.__offset(this.bb_pos,14);return t?this.bb.readUint64(this.bb.__vector(this.bb_pos+t)+8*e):BigInt(0)}},{key:"tmLength",value:function(){var e=this.bb.__offset(this.bb_pos,14);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"type",value:function(){var e=this.bb.__offset(this.bb_pos,16);return e?this.bb.readUint8(this.bb_pos+e):Ph.Unknown}},{key:"parts",value:function(t,r){var n=this.bb.__offset(this.bb_pos,18);return n?(r||new e).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+n)+4*t),this.bb):null}},{key:"partsLength",value:function(){var e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}}])&&qh(t.prototype,r),n&&qh(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function Wh(e,t){for(var r=[],n=0;n>1]),r.push(o)}return r}function Jh(e,t,r){if(!r||0===r.length)return[Wh(e,t)];var n,o=0,i=Array.from(r).map(function(t){return e.slice(o,o=t<<1)});return t&&(o=0,n=Array.from(r).map(function(e){return t.slice(o,o=e)})),i.map(function(e,t){return Wh(e,n?n[t]:void 0)})}function Xh(e,t){var r=t;if(r===Ph.Unknown&&(r=e.type()),r===Ph.GeometryCollection){for(var n=[],o=0;o=0;r--)e.addInt8(t[r]);return e.endVector()}},{key:"startPropertiesVector",value:function(e,t){e.startVector(1,t,1)}},{key:"addColumns",value:function(e,t){e.addFieldOffset(2,t,0)}},{key:"createColumnsVector",value:function(e,t){e.startVector(4,t.length,4);for(var r=t.length-1;r>=0;r--)e.addOffset(t[r]);return e.endVector()}},{key:"startColumnsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"endFeature",value:function(e){return e.endObject()}},{key:"finishFeatureBuffer",value:function(e,t){e.finish(t)}},{key:"finishSizePrefixedFeatureBuffer",value:function(e,t){e.finish(t,void 0,!0)}},{key:"createFeature",value:function(t,r,n,o){return e.startFeature(t),e.addGeometry(t,r),e.addProperties(t,n),e.addColumns(t,o),e.endFeature(t)}}],(r=[{key:"__init",value:function(e,t){return this.bb_pos=e,this.bb=t,this}},{key:"geometry",value:function(e){var t=this.bb.__offset(this.bb_pos,4);return t?(e||new Yh).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}},{key:"properties",value:function(e){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readUint8(this.bb.__vector(this.bb_pos+t)+e):0}},{key:"propertiesLength",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"propertiesArray",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?new Uint8Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"columns",value:function(e,t){var r=this.bb.__offset(this.bb_pos,8);return r?(t||new ty).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"columnsLength",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.__vector_len(this.bb_pos+e):0}}])&&ny(t.prototype,r),n&&ny(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}(),ay=(new TextEncoder,new TextDecoder);function sy(e,t){var r={};if(!t||0===t.length)return r;var n=e.propertiesArray();if(!n)return r;for(var o=new DataView(n.buffer,n.byteOffset),i=e.propertiesLength(),a=0;a0?{done:!1,value:t}:{done:!0,value:void 0}:{done:!1,value:function(e,t){if(!e.length)return t;if(!t.length)return e;var r=new Uint8Array(e.length+t.length);return r.set(e),r.set(t,e.length),r}(t,r.value)}})},cy.prototype.slice=function(e){if((e|=0)<0)throw new Error("invalid length");var t=this,r=this._array.length-this._index;if(this._index+e<=this._array.length)return Promise.resolve(this._array.subarray(this._index,this._index+=e));var n=new Uint8Array(e);return n.set(this._array.subarray(this._index)),function o(){return t._source.read().then(function(i){return i.done?(t._array=ly,t._index=0,r>0?n.subarray(0,r):null):r+i.value.length>=e?(t._array=i.value,t._index=e-r,n.set(i.value.subarray(0,e-r),r),n):(n.set(i.value,r),r+=i.value.length,o())})}()},cy.prototype.cancel=function(){return this._source.cancel()};var yy=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.bb=null,this.bb_pos=0}return t=e,n=[{key:"getRootAsCrs",value:function(t,r){return(r||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"getSizePrefixedRootAsCrs",value:function(t,r){return t.setPosition(t.position()+4),(r||new e).__init(t.readInt32(t.position())+t.position(),t)}},{key:"startCrs",value:function(e){e.startObject(6)}},{key:"addOrg",value:function(e,t){e.addFieldOffset(0,t,0)}},{key:"addCode",value:function(e,t){e.addFieldInt32(1,t,0)}},{key:"addName",value:function(e,t){e.addFieldOffset(2,t,0)}},{key:"addDescription",value:function(e,t){e.addFieldOffset(3,t,0)}},{key:"addWkt",value:function(e,t){e.addFieldOffset(4,t,0)}},{key:"addCodeString",value:function(e,t){e.addFieldOffset(5,t,0)}},{key:"endCrs",value:function(e){return e.endObject()}},{key:"createCrs",value:function(t,r,n,o,i,a,s){return e.startCrs(t),e.addOrg(t,r),e.addCode(t,n),e.addName(t,o),e.addDescription(t,i),e.addWkt(t,a),e.addCodeString(t,s),e.endCrs(t)}}],(r=[{key:"__init",value:function(e,t){return this.bb_pos=e,this.bb=t,this}},{key:"org",value:function(e){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"code",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.readInt32(this.bb_pos+e):0}},{key:"name",value:function(e){var t=this.bb.__offset(this.bb_pos,8);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"description",value:function(e){var t=this.bb.__offset(this.bb_pos,10);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"wkt",value:function(e){var t=this.bb.__offset(this.bb_pos,12);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"codeString",value:function(e){var t=this.bb.__offset(this.bb_pos,14);return t?this.bb.__string(this.bb_pos+t,e):null}}])&&py(t.prototype,r),n&&py(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function dy(e){"@babel/helpers - typeof";return(dy="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function my(e,t){for(var r=0;r=0;r--)e.addFloat64(t[r]);return e.endVector()}},{key:"startEnvelopeVector",value:function(e,t){e.startVector(8,t,8)}},{key:"addGeometryType",value:function(e,t){e.addFieldInt8(2,t,Ph.Unknown)}},{key:"addHasZ",value:function(e,t){e.addFieldInt8(3,+t,0)}},{key:"addHasM",value:function(e,t){e.addFieldInt8(4,+t,0)}},{key:"addHasT",value:function(e,t){e.addFieldInt8(5,+t,0)}},{key:"addHasTm",value:function(e,t){e.addFieldInt8(6,+t,0)}},{key:"addColumns",value:function(e,t){e.addFieldOffset(7,t,0)}},{key:"createColumnsVector",value:function(e,t){e.startVector(4,t.length,4);for(var r=t.length-1;r>=0;r--)e.addOffset(t[r]);return e.endVector()}},{key:"startColumnsVector",value:function(e,t){e.startVector(4,t,4)}},{key:"addFeaturesCount",value:function(e,t){e.addFieldInt64(8,t,BigInt("0"))}},{key:"addIndexNodeSize",value:function(e,t){e.addFieldInt16(9,t,16)}},{key:"addCrs",value:function(e,t){e.addFieldOffset(10,t,0)}},{key:"addTitle",value:function(e,t){e.addFieldOffset(11,t,0)}},{key:"addDescription",value:function(e,t){e.addFieldOffset(12,t,0)}},{key:"addMetadata",value:function(e,t){e.addFieldOffset(13,t,0)}},{key:"endHeader",value:function(e){return e.endObject()}},{key:"finishHeaderBuffer",value:function(e,t){e.finish(t)}},{key:"finishSizePrefixedHeaderBuffer",value:function(e,t){e.finish(t,void 0,!0)}}],(r=[{key:"__init",value:function(e,t){return this.bb_pos=e,this.bb=t,this}},{key:"name",value:function(e){var t=this.bb.__offset(this.bb_pos,4);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"envelope",value:function(e){var t=this.bb.__offset(this.bb_pos,6);return t?this.bb.readFloat64(this.bb.__vector(this.bb_pos+t)+8*e):0}},{key:"envelopeLength",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"envelopeArray",value:function(){var e=this.bb.__offset(this.bb_pos,6);return e?new Float64Array(this.bb.bytes().buffer,this.bb.bytes().byteOffset+this.bb.__vector(this.bb_pos+e),this.bb.__vector_len(this.bb_pos+e)):null}},{key:"geometryType",value:function(){var e=this.bb.__offset(this.bb_pos,8);return e?this.bb.readUint8(this.bb_pos+e):Ph.Unknown}},{key:"hasZ",value:function(){var e=this.bb.__offset(this.bb_pos,10);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"hasM",value:function(){var e=this.bb.__offset(this.bb_pos,12);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"hasT",value:function(){var e=this.bb.__offset(this.bb_pos,14);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"hasTm",value:function(){var e=this.bb.__offset(this.bb_pos,16);return!!e&&!!this.bb.readInt8(this.bb_pos+e)}},{key:"columns",value:function(e,t){var r=this.bb.__offset(this.bb_pos,18);return r?(t||new ty).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos+r)+4*e),this.bb):null}},{key:"columnsLength",value:function(){var e=this.bb.__offset(this.bb_pos,18);return e?this.bb.__vector_len(this.bb_pos+e):0}},{key:"featuresCount",value:function(){var e=this.bb.__offset(this.bb_pos,20);return e?this.bb.readUint64(this.bb_pos+e):BigInt("0")}},{key:"indexNodeSize",value:function(){var e=this.bb.__offset(this.bb_pos,22);return e?this.bb.readUint16(this.bb_pos+e):16}},{key:"crs",value:function(e){var t=this.bb.__offset(this.bb_pos,24);return t?(e||new yy).__init(this.bb.__indirect(this.bb_pos+t),this.bb):null}},{key:"title",value:function(e){var t=this.bb.__offset(this.bb_pos,26);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"description",value:function(e){var t=this.bb.__offset(this.bb_pos,28);return t?this.bb.__string(this.bb_pos+t,e):null}},{key:"metadata",value:function(e){var t=this.bb.__offset(this.bb_pos,30);return t?this.bb.__string(this.bb_pos+t,e):null}}])&&my(t.prototype,r),n&&my(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,r,n}();function by(e){for(var t=gy.getRootAsHeader(e),r=t.featuresCount(),n=t.indexNodeSize(),o=[],i=0;i0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ey(e){return this instanceof Ey?(this.v=e,this):new Ey(e)}function xy(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,o=r.apply(e,t||[]),i=[];return n={},a("next"),a("throw"),a("return"),n[Symbol.asyncIterator]=function(){return this},n;function a(e){o[e]&&(n[e]=function(t){return new Promise(function(r,n){i.push([e,t,r,n])>1||s(e,t)})})}function s(e,t){try{(r=o[e](t)).value instanceof Ey?Promise.resolve(r.value.v).then(u,l):c(i[0][2],r)}catch(e){c(i[0][3],e)}var r}function u(e){s("next",e)}function l(e){s("throw",e)}function c(e,t){e(t),i.shift(),i.length&&s(i[0][0],i[0][1])}}var _y=function(e){function t(t){var r=e.call(this,t)||this;return Object.defineProperty(r,"name",{value:"RepeaterOverflowError",enumerable:!1}),"function"==typeof Object.setPrototypeOf?Object.setPrototypeOf(r,r.constructor.prototype):r.__proto__=r.constructor.prototype,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(r,r.constructor),r}return function(e,t){function r(){this.constructor=e}Ay(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}(t,e),t}(Error);(function(){function e(e){if(e<0)throw new RangeError("Capacity may not be less than 0");this._c=e,this._q=[]}Object.defineProperty(e.prototype,"empty",{get:function(){return 0===this._q.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return this._q.length>=this._c},enumerable:!1,configurable:!0}),e.prototype.add=function(e){if(this.full)throw new Error("Buffer full");this._q.push(e)},e.prototype.remove=function(){if(this.empty)throw new Error("Buffer empty");return this._q.shift()}})(),function(){function e(e){if(e<1)throw new RangeError("Capacity may not be less than 1");this._c=e,this._q=[]}Object.defineProperty(e.prototype,"empty",{get:function(){return 0===this._q.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.add=function(e){for(;this._q.length>=this._c;)this._q.shift();this._q.push(e)},e.prototype.remove=function(){if(this.empty)throw new Error("Buffer empty");return this._q.shift()}}(),function(){function e(e){if(e<1)throw new RangeError("Capacity may not be less than 1");this._c=e,this._q=[]}Object.defineProperty(e.prototype,"empty",{get:function(){return 0===this._q.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"full",{get:function(){return!1},enumerable:!1,configurable:!0}),e.prototype.add=function(e){this._q.length=Ty;return Promise.resolve(t).then(function(t){return!r&&e.state>=jy?By(e).then(function(e){return{value:e,done:!0}}):{value:t,done:r}})}function Ry(e,t){var r,n;if(!(e.state>=Py))if(e.state=Py,e.onnext(),e.onstop(),null==e.err&&(e.err=t),0!==e.pushes.length||void 0!==e.buffer&&!e.buffer.empty)try{for(var o=Cy(e.pushes),i=o.next();!i.done;i=o.next()){i.value.resolve()}}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=o.return)&&n.call(o)}finally{if(r)throw r.error}}else Dy(e)}function Dy(e){var t,r;if(!(e.state>=Ty)){e.state=jy||(e.state=ky)){e.state=ky;var t=function(e,t){if(Iy(t),e.pushes.length>=My)throw new _y("No more than "+My+" pending calls to push are allowed on a single repeater.");if(e.state>=Py)return Promise.resolve(void 0);var r,n=void 0===e.pending?Promise.resolve(t):e.pending.then(function(){return t});n=n.catch(function(t){e.state=My)throw new _y("No more than "+My+" pending calls to next are allowed on a single repeater.");if(t.state<=Oy&&Qy(t),t.onnext(e),void 0!==t.buffer&&!t.buffer.empty){var r=Ly(t,t.buffer.remove());if(t.pushes.length){var n=t.pushes.shift();t.buffer.add(n.value),t.onnext=n.resolve}return r}if(t.pushes.length){var o=t.pushes.shift();return t.onnext=o.resolve,Ly(t,o.value)}return t.state>=Py?(Dy(t),Ly(t,By(t))):new Promise(function(r){return t.nexts.push({resolve:r,value:e})})},e.prototype.return=function(e){Iy(e);var t=Gy.get(this);if(void 0===t)throw new Error("WeakMap error");return Dy(t),t.execution=Promise.resolve(t.execution).then(function(){return e}),Ly(t,By(t))},e.prototype.throw=function(e){var t=Gy.get(this);if(void 0===t)throw new Error("WeakMap error");return t.state<=Oy||t.state>=Py||void 0!==t.buffer&&!t.buffer.empty?(Dy(t),null==t.err&&(t.err=e),Ly(t,By(t))):this.next(Promise.reject(e))},e.prototype[Symbol.asyncIterator]=function(){return this},e.race=Hy,e.merge=qy,e.zip=Vy,e.latest=Ky,e}();function zy(e,t){var r,n,o=[],i=function(e){null!=e&&"function"==typeof e[Symbol.asyncIterator]?o.push(e[Symbol.asyncIterator]()):null!=e&&"function"==typeof e[Symbol.iterator]?o.push(e[Symbol.iterator]()):o.push(function(){return xy(this,arguments,function(){return Sy(this,function(r){switch(r.label){case 0:return t.yieldValues?[4,Ey(e)]:[3,3];case 1:return[4,r.sent()];case 2:r.sent(),r.label=3;case 3:return t.returnValues?[4,Ey(e)]:[3,5];case 4:return[2,r.sent()];case 5:return[2]}})})}())};try{for(var a=Cy(e),s=a.next();!s.done;s=a.next()){i(s.value)}}catch(e){r={error:e}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return o}function Hy(e){var t=this,r=zy(e,{returnValues:!0});return new Uy(function(e,n){return wy(t,void 0,void 0,function(){var t,o,i,a,s,u;return Sy(this,function(l){switch(l.label){case 0:if(!r.length)return n(),[2];o=!1,n.then(function(){t(),o=!0}),l.label=1;case 1:l.trys.push([1,,5,7]),a=void 0,s=0,u=function(){var o,u,l,c,f,p;return Sy(this,function(h){switch(h.label){case 0:o=s;try{for(f=void 0,u=Cy(r),l=u.next();!l.done;l=u.next())c=l.value,Promise.resolve(c.next()).then(function(e){e.done?(n(),void 0===i&&(i=e)):s===o&&(s++,t(e))},function(e){return n(e)})}catch(e){f={error:e}}finally{try{l&&!l.done&&(p=u.return)&&p.call(u)}finally{if(f)throw f.error}}return[4,new Promise(function(e){return t=e})];case 1:return void 0===(a=h.sent())?[3,3]:[4,e(a.value)];case 2:h.sent(),h.label=3;case 3:return[2]}})},l.label=2;case 2:return o?[3,4]:[5,u()];case 3:return l.sent(),[3,2];case 4:return[2,i&&i.value];case 5:return n(),[4,Promise.race(r.map(function(e){return e.return&&e.return()}))];case 6:return l.sent(),[7];case 7:return[2]}})})})}function qy(e){var t=this,r=zy(e,{yieldValues:!0});return new Uy(function(e,n){return wy(t,void 0,void 0,function(){var t,o,i,a=this;return Sy(this,function(s){switch(s.label){case 0:if(!r.length)return n(),[2];t=[],o=!1,n.then(function(){var e,r;o=!0;try{for(var n=Cy(t),i=n.next();!i.done;i=n.next()){(0,i.value)()}}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}}),s.label=1;case 1:return s.trys.push([1,,3,4]),[4,Promise.all(r.map(function(r,s){return wy(a,void 0,void 0,function(){var a;return Sy(this,function(u){switch(u.label){case 0:u.trys.push([0,,6,9]),u.label=1;case 1:return o?[3,5]:(Promise.resolve(r.next()).then(function(e){return t[s](e)},function(e){return n(e)}),[4,new Promise(function(e){t[s]=e})]);case 2:return void 0===(a=u.sent())?[3,4]:a.done?(i=a,[2]):[4,e(a.value)];case 3:u.sent(),u.label=4;case 4:return[3,1];case 5:return[3,9];case 6:return r.return?[4,r.return()]:[3,8];case 7:u.sent(),u.label=8;case 8:return[7];case 9:return[2]}})})}))];case 2:return s.sent(),[2,i&&i.value];case 3:return n(),[7];case 4:return[2]}})})})}function Vy(e){var t=this,r=zy(e,{returnValues:!0});return new Uy(function(e,n){return wy(t,void 0,void 0,function(){var t,o,i,a;return Sy(this,function(s){switch(s.label){case 0:if(!r.length)return n(),[2,[]];o=!1,n.then(function(){t(),o=!0}),s.label=1;case 1:s.trys.push([1,,6,8]),s.label=2;case 2:return o?[3,5]:(Promise.all(r.map(function(e){return e.next()})).then(function(e){return t(e)},function(e){return n(e)}),[4,new Promise(function(e){return t=e})]);case 3:return void 0===(i=s.sent())?[2]:(a=i.map(function(e){return e.value}),i.some(function(e){return e.done})?[2,a]:[4,e(a)]);case 4:return s.sent(),[3,2];case 5:return[3,8];case 6:return n(),[4,Promise.all(r.map(function(e){return e.return&&e.return()}))];case 7:return s.sent(),[7];case 8:return[2]}})})})}function Ky(e){var t=this,r=zy(e,{yieldValues:!0,returnValues:!0});return new Uy(function(e,n){return wy(t,void 0,void 0,function(){var t,o,i,a,s,u=this;return Sy(this,function(l){switch(l.label){case 0:if(!r.length)return n(),[2,[]];o=[],i=!1,n.then(function(){var e,r;t();try{for(var n=Cy(o),a=n.next();!a.done;a=n.next()){(0,a.value)()}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(e)throw e.error}}i=!0}),l.label=1;case 1:return l.trys.push([1,,5,7]),Promise.all(r.map(function(e){return e.next()})).then(function(e){return t(e)},function(e){return n(e)}),[4,new Promise(function(e){return t=e})];case 2:return void 0===(a=l.sent())?[2]:(s=a.map(function(e){return e.value}),a.every(function(e){return e.done})?[2,s]:[4,e(s.slice())]);case 3:return l.sent(),[4,Promise.all(r.map(function(t,r){return wy(u,void 0,void 0,function(){var u;return Sy(this,function(l){switch(l.label){case 0:if(a[r].done)return[2,a[r].value];l.label=1;case 1:return i?[3,4]:(Promise.resolve(t.next()).then(function(e){return o[r](e)},function(e){return n(e)}),[4,new Promise(function(e){return o[r]=e})]);case 2:return void 0===(u=l.sent())?[2,a[r].value]:u.done?[2,u.value]:(s[r]=u.value,[4,e(s.slice())]);case 3:return l.sent(),[3,1];case 4:return[2]}})})}))];case 4:return[2,l.sent()];case 5:return n(),[4,Promise.all(r.map(function(e){return e.return&&e.return()}))];case 6:return l.sent(),[7];case 7:return[2]}})})})}function Yy(e){"@babel/helpers - typeof";return(Yy="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Wy(e,t){for(var r=0;re)){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function sd(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ud(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?ud(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ud(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rthis.nodes[1]),this.nodes[1]=e}},{key:"toString",value:function(){return"[NodeRange level: ".concat(this._level,", nodes: ").concat(this.nodes[0],"-").concat(this.nodes[1],"]")}}])&&cd(e.prototype,t),r&&cd(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),a=n.minX,s=n.minY,u=n.maxX,l=n.maxY,od.info("tree items: ".concat(t,", nodeSize: ").concat(r)),c=md(t,r),f=c[0][0],void 0,d=c.length-1,p=new i([0,1],d),h=[p],od.debug("starting stream search with queue: ".concat(h,", numItems: ").concat(t,", nodeSize: ").concat(r,", levelBounds: ").concat(c)),y=ad().mark(function e(){var n,p,y,d,m,v,g,b,A;return ad().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=h.shift(),od.debug("popped node: ".concat(n,", queueLength: ").concat(h.length)),p=n.startNodeIdx(),y=p>=f,d=function(){var e=sd(c[n.level()],2)[1],t=Math.min(n.endNodeIdx()+r,e);return y&&tg.getFloat64(c+16,!0))){e.next=8;break}return e.abrupt("return",0);case 8:if(!(s>g.getFloat64(c+24,!0))){e.next=10;break}return e.abrupt("return",0);case 10:if(d=g.getBigUint64(c+32,!0),!y){e.next=18;break}return m=d,v=function(){if(r ").concat(A)),S.extendEndNodeIdx(Number(A)),e.abrupt("return",0);case 25:void 0,void 0,E=n.level()-1,x=[Number(A),Number(A)+1],C=new i(x,E),void 0!==S&&S.level()==C.level()?od.info("Same level, but too far away. Pushing new request for nodeIdx: ".concat(A," rather than merging with distant ").concat(S)):od.info("Pushing new level for ".concat(C," onto queue with nearestNodeRange: ").concat(S," since there's not already a range for this level.")),h.push(C);case 28:case"end":return e.stop()}var E,x},e)}),A=p;case 12:if(!(A=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Cd(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||Ed(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ed(e,t){if(e){if("string"==typeof e)return xd(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?xd(e,t):void 0}}function xd(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function Id(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Od(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Id(i,n,o,a,s,"next",e)}function s(e){Id(i,n,o,a,s,"throw",e)}a(void 0)})}}function kd(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Pd(e,t){for(var r=0;r$y.global.extraRequestThreshold()&&(od.info("Pushing new feature batch, since gap ".concat(b," was too large")),a.push(s),s=[]),s.push([d,v]);case 23:u=!1,r.next=9;break;case 26:r.next=32;break;case 28:r.prev=28,r.t0=r.catch(7),l=!0,c=r.t0;case 32:if(r.prev=32,r.prev=33,!u||null==f.return){r.next=37;break}return r.next=37,Bd(f.return());case 37:if(r.prev=37,!l){r.next=40;break}throw c;case 40:return r.finish(37);case 41:return r.finish(32);case 42:return t.headerClient.logUsage("header+index"),s.length>0&&a.push(s),A=a.flatMap(function(e){return t.readFeatureBatch(e,t.nocache)}),r.delegateYield(Ld(Dd(Uy.merge(A))),"t1",46);case 46:case"end":return r.stop()}},r,null,[[7,28,32,42],[33,,37,41]])}))()}},{key:"lengthBeforeTree",value:function(){return bd.length+Ad+this.headerLength}},{key:"lengthBeforeFeatures",value:function(){return this.lengthBeforeTree()+this.indexLength}},{key:"buildFeatureClient",value:function(e){return new Gd(this.headerClient.httpClient,e)}},{key:"readFeatureBatch",value:function(e,t){var r=this;return Md(_d().mark(function n(){var o,i,a,s,u,l,c,f,p,h,y,d;return _d().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:o=Cd(e[0],1),i=o[0],a=Cd(e[e.length-1],2),s=a[0],u=a[1],l=s+u-i,c=r.buildFeatureClient(t),f=l,p=Sd(e),n.prev=8,p.s();case 10:if((h=p.n()).done){n.next=19;break}return y=Cd(h.value,1),d=y[0],n.next=14,Bd(r.readFeature(c,d,f));case 14:return n.next=16,n.sent;case 16:f=0;case 17:n.next=10;break;case 19:n.next=24;break;case 21:n.prev=21,n.t0=n.catch(8),p.e(n.t0);case 24:return n.prev=24,p.f(),n.finish(24);case 27:c.logUsage("feature");case 28:case"end":return n.stop()}},n,null,[[8,21,24,27]])}))()}},{key:"readFeature",value:function(){var e=Od(_d().mark(function e(t,r,n){var o,i,a,s,u,l,c;return _d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o=r+this.lengthBeforeFeatures(),e.next=3,t.getRange(o,4,n,"feature length");case 3:return a=e.sent,i=new DataView(a).getUint32(0,!0),e.next=7,t.getRange(o+4,i,n,"feature data");case 7:return s=e.sent,u=new Uint8Array(s),(l=new Uint8Array(i+Ad)).set(u,Ad),(c=new zh(l)).setPosition(Ad),e.abrupt("return",iy.getRootAsFeature(c));case 14:case"end":return e.stop()}},e,this)}));return function(t,r,n){return e.apply(this,arguments)}}()}],[{key:"open",value:function(){var t=Od(_d().mark(function t(r,n){var o,i,a,s,u,l,c,f,p,h,y;return _d().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return o=2024,i=new Gd(r,n),a=function(){var e,t=0;for(e=0;e<3;e++){t+=Math.pow(16,e)*yd}return t}(),s=o+a,od.debug("fetching header. minReqLength: ".concat(s," (assumedHeaderLength: ").concat(o,", assumedIndexLength: ").concat(a,")")),t.t0=Uint8Array,t.next=8,i.getRange(0,8,s,"header");case 8:if(t.t1=t.sent,(u=new t.t0(t.t1)).subarray(0,3).every(function(e,t){return bd[t]===e})){t.next=13;break}throw od.error("bytes: ".concat(u," != ").concat(bd)),new Error("Not a FlatGeobuf file");case 13:return od.debug("magic bytes look good"),t.next=16,i.getRange(8,4,s,"header");case 16:if(c=t.sent,!((l=new DataView(c).getUint32(0,!0))>10485760||l<8)){t.next=21;break}throw new Error("Invalid header size");case 21:return od.debug("headerLength: ".concat(l)),t.next=24,i.getRange(12,l,s,"header");case 24:return f=t.sent,p=new zh(new Uint8Array(f)),h=by(p),y=dd(h.featuresCount,h.indexNodeSize),od.debug("completed: opening http reader"),t.abrupt("return",new e(i,h,l,y,n));case 30:case"end":return t.stop()}},t)}));return function(e,r){return t.apply(this,arguments)}}()}])}(),Gd=function(){return Td(function e(t,r){if(kd(this,e),this.bytesEverUsed=0,this.bytesEverFetched=0,this.buffer=new ArrayBuffer(0),this.head=0,"string"==typeof t)this.httpClient=new Ud(t,r);else{if(!(t instanceof Ud))throw new Error("Unknown source ");this.httpClient=t}},[{key:"getRange",value:function(){var e=Od(_d().mark(function e(t,r,n,o){var i,a,s;return _d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.bytesEverUsed+=r,i=t-this.head,a=i+r,!(i>=0&&a<=this.buffer.byteLength)){e.next=5;break}return e.abrupt("return",this.buffer.slice(i,a));case 5:return s=Math.max(r,n),this.bytesEverFetched+=s,od.debug("requesting for new Range: ".concat(t,"-").concat(t+s-1)),e.next=10,this.httpClient.getRange(t,s,o);case 10:return this.buffer=e.sent,this.head=t,e.abrupt("return",this.buffer.slice(0,r));case 13:case"end":return e.stop()}},e,this)}));return function(t,r,n,o){return e.apply(this,arguments)}}()},{key:"logUsage",value:function(e){var t=e.split(" ")[0],r=this.bytesEverUsed,n=this.bytesEverFetched,o=(100*r/n).toFixed(2);od.info("".concat(t," bytes used/requested: ").concat(r," / ").concat(n," = ").concat(o,"%"))}}])}(),Ud=function(){return Td(function e(t,r){kd(this,e),this.requestsEverMade=0,this.bytesEverRequested=0,this.url=t,this.nocache=r},[{key:"getRange",value:function(){var e=Od(_d().mark(function e(t,r,n){var o,i,a;return _d().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return this.requestsEverMade+=1,this.bytesEverRequested+=r,o="bytes=".concat(t,"-").concat(t+r-1),od.info("request: #".concat(this.requestsEverMade,", purpose: ").concat(n,"), bytes: (this_request: ").concat(r,", ever: ").concat(this.bytesEverRequested,"), Range: ").concat(o)),i={Range:o},this.nocache&&(i["Cache-Control"]="no-cache, no-store"),e.next=8,fetch(this.url,{headers:i});case 8:return a=e.sent,e.abrupt("return",a.arrayBuffer());case 10:case"end":return e.stop()}},e,this)}));return function(t,r,n){return e.apply(this,arguments)}}()}])}();function zd(e){"@babel/helpers - typeof";return(zd="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hd(){Hd=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==zd(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function qd(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Vd(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){qd(i,n,o,a,s,"next",e)}function s(e){qd(i,n,o,a,s,"throw",e)}a(void 0)})}}function Kd(e){var t,r,n,o=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);o--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new Yd(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function Yd(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then(function(e){return{value:e,done:t}})}return(Yd=function(e){this.s=e,this.n=e.next}).prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new Yd(e)}function Wd(e){return new Zd(e,0)}function Jd(e){return function(){return new Xd(e.apply(this,arguments))}}function Xd(e){var t,r;function n(t,r){try{var i=e[t](r),a=i.value,s=a instanceof Zd;Promise.resolve(s?a.v:a).then(function(r){if(s){var u="return"===t?"return":"next";if(!a.k||r.done)return n(u,r);r=e[u](r).value}o(i.done?"return":"normal",r)},function(e){n("throw",e)})}catch(e){o("throw",e)}}function o(e,o){switch(e){case"return":t.resolve({value:o,done:!0});break;case"throw":t.reject(o);break;default:t.resolve({value:o,done:!1})}(t=t.next)?n(t.key,t.arg):r=null}this._invoke=function(e,o){return new Promise(function(i,a){var s={key:e,arg:o,resolve:i,reject:a,next:null};r?r=r.next=s:(t=r=s,n(e,o))})},"function"!=typeof e.return&&(this.return=void 0)}function Zd(e,t){this.v=e,this.k=t}function $d(){return($d=Jd(Hd().mark(function e(t,r,n){var o,i,a,s,u,l,c,f,p,h;return Hd().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o="function"==typeof(y=t).slice?y:new cy("function"==typeof y.read?y:y.getReader()),i=function(){var e=Vd(Hd().mark(function e(t){return Hd().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.slice(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}(),e.t0=Uint8Array,e.next=5,Wd(i(8,"magic bytes"));case 5:if(e.t1=e.sent,(a=new e.t0(e.t1)).subarray(0,3).every(function(e,t){return bd[t]===e})){e.next=9;break}throw new Error("Not a FlatGeobuf file");case 9:return e.t2=Uint8Array,e.next=12,Wd(i(4,"header length"));case 12:return e.t3=e.sent,a=new e.t2(e.t3),s=new zh(a),u=s.readUint32(0),e.t4=Uint8Array,e.next=19,Wd(i(u,"header data"));case 19:if(e.t5=e.sent,a=new e.t4(e.t5),s=new zh(a),l=by(s),n&&n(l),c=l.indexNodeSize,f=l.featuresCount,!(c>0)){e.next=29;break}return p=dd(f,c),e.next=29,Wd(i(p,"entire index, w/o rect"));case 29:return e.next=31,Wd(tm(i,l,r));case 31:if(!(h=e.sent)){e.next=36;break}return e.next=34,h;case 34:e.next=29;break;case 36:case"end":return e.stop()}var y},e)}))).apply(this,arguments)}function em(){return(em=Jd(function(e,t,r,n){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return Hd().mark(function i(){var a,s,u,l,c,f,p;return Hd().wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return i.next=2,Wd(Qd.open(e,o));case 2:a=i.sent,od.debug("opened reader"),n&&n(a.header),s=!1,u=!1,i.prev=7,c=Kd(a.selectBbox(t));case 9:return i.next=11,Wd(c.next());case 11:if(!(s=!(f=i.sent).done)){i.next=18;break}return p=f.value,i.next=15,r(p,a.header);case 15:s=!1,i.next=9;break;case 18:i.next=24;break;case 20:i.prev=20,i.t0=i.catch(7),u=!0,l=i.t0;case 24:if(i.prev=24,i.prev=25,!s||null==c.return){i.next=29;break}return i.next=29,Wd(c.return());case 29:if(i.prev=29,!u){i.next=32;break}throw l;case 32:return i.finish(29);case 33:return i.finish(24);case 34:case"end":return i.stop()}},i,null,[[7,20,24,34],[25,,29,33]])})()})).apply(this,arguments)}function tm(e,t,r){return rm.apply(this,arguments)}function rm(){return(rm=Vd(Hd().mark(function e(t,r,n){var o,i,a,s,u;return Hd().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=Uint8Array,e.next=3,t(4,"feature length");case 3:if(e.t1=e.sent,0!==(o=new e.t0(e.t1)).byteLength){e.next=7;break}return e.abrupt("return");case 7:return i=new zh(o),a=i.readUint32(0),e.t2=Uint8Array,e.next=12,t(a,"feature data");case 12:return e.t3=e.sent,o=new e.t2(e.t3),(s=new Uint8Array(a+4)).set(o,4),(i=new zh(s)).setPosition(Ad),u=iy.getRootAsFeature(i),e.abrupt("return",n(u,r));case 20:case"end":return e.stop()}},e)}))).apply(this,arguments)}function nm(e,t){return{type:"FeatureCollection",features:function(e,t,r){if(!e.subarray(0,3).every(function(e,t){return bd[t]===e}))throw new Error("Not a FlatGeobuf file");var n=new zh(e),o=n.readUint32(bd.length);n.setPosition(bd.length+Ad);var i=by(n);r&&r(i);var a=bd.length+Ad+o,s=i.indexNodeSize,u=i.featuresCount;s>0&&(a+=dd(u,s));for(var l=[];a3&&void 0!==arguments[3]&&arguments[3])}function am(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return e instanceof Uint8Array?nm(e,r):e instanceof ReadableStream?om(e,r):im(e,t,r,n)}Xd.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},Xd.prototype.next=function(e){return this._invoke("next",e)},Xd.prototype.throw=function(e){return this._invoke("throw",e)},Xd.prototype.return=function(e){return this._invoke("return",e)};var sm=r(833),um=r.n(sm);function lm(e){"@babel/helpers - typeof";return(lm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cm(){cm=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==lm(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function fm(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function pm(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){fm(i,n,o,a,s,"next",e)}function s(e){fm(i,n,o,a,s,"throw",e)}a(void 0)})}}function hm(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=t.layerID?t.layerID:N.createUniqueID("FGBLayer_"),this.layerId=this.id+"outer",this.sourceId=this.layerId,this.options=t,this.strategy=t.strategy||"bbox",this.url=t.url,this.layerType="",this.extent=t.extent,this.init()},(t=[{key:"init",value:function(){"bbox"===this.strategy&&(this.loadedExtentsRtree_=new(um()))}},{key:"iterateFeatures",value:function(){var e=pm(cm().mark(function e(t){var r,n,o,i,a,s,u;return cm().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r={type:"FeatureCollection",features:[]},n=!1,o=!1,e.prev=3,a=dm(t);case 5:return e.next=7,a.next();case 7:if(!(n=!(s=e.sent).done)){e.next=15;break}u=s.value,this.options.featureLoader&&"function"==typeof this.options.featureLoader&&(u=this.options.featureLoader(u)),this.layerType||(this.layerType=vm[u.geometry.type]),r.features.push(u);case 12:n=!1,e.next=5;break;case 15:e.next=21;break;case 17:e.prev=17,e.t0=e.catch(3),o=!0,i=e.t0;case 21:if(e.prev=21,e.prev=22,!n||null==a.return){e.next=26;break}return e.next=26,a.return();case 26:if(e.prev=26,!o){e.next=29;break}throw i;case 29:return e.finish(26);case 30:return e.finish(21);case 31:return e.abrupt("return",r);case 32:case"end":return e.stop()}},e,this,[[3,17,21,31],[22,,26,30]])}));return function(t){return e.apply(this,arguments)}}()},{key:"_loadData",value:function(){var e=pm(cm().mark(function e(t){var r,n,o=this;return cm().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n={minX:t[0],minY:t[1],maxX:t[2],maxY:t[3]},t.length){e.next=7;break}return e.next=4,this._getStream(this.url);case 4:r=e.sent,e.next=9;break;case 7:n.value={extent:t.slice()},this.loadedExtentsRtree_.insert(n);case 9:return e.next=11,am(r&&r.body||this.url,n,function(e){o.layerType=vm[e.geometryType]});case 11:return e.abrupt("return",e.sent);case 12:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_getStream",value:function(){var e=pm(cm().mark(function e(t){return cm().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,H.get(t,{},{withoutFormatSuffix:!0}).then(function(e){return e});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}},e)}));return function(t){return e.apply(this,arguments)}}()},{key:"_containsExtent",value:function(e,t){return e[0]<=t[0]&&t[2]<=e[2]&&e[1]<=t[1]&&t[3]<=e[3]}},{key:"_getInExtent",value:function(e){var t={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]};return this.loadedExtentsRtree_.search(t).map(function(e){return e.value})}},{key:"_forEachInExtent",value:function(e,t){return this._forEach(this._getInExtent(e),t)}},{key:"_forEach",value:function(e,t){for(var r,n=0,o=e.length;n=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function wm(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Sm(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){wm(i,n,o,a,s,"next",e)}function s(e){wm(i,n,o,a,s,"throw",e)}a(void 0)})}}function Cm(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.id=t.layerID?t.layerID:N.createUniqueID("FGBLayer_"),this.layerId=this.id+"outer",this._sourceId=this.layerId,this.options=t,this.strategy=t.strategy||"bbox",this.url=t.url,this.layerType="",this.extent=t.extent,this.overlay=!0,this.type="custom",this.renderingMode="3d",this._updateFeaturesFn=this._updateFeatures.bind(this),this.interaction=!0,this.events="all"},(t=[{key:"onAdd",value:function(e){this.map=e;var t,r,n,o=[];if("bbox"===this.strategy){var i=this.map.getBounds().toArray();o=[i[0][0],i[0][1],i[1][0],i[1][1]],this.map.on("moveend",this._updateFeaturesFn)}if(this.extent){var a=(t=this.extent,n=[],function(e,t){return e[0]<=t[2]&&e[2]>=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}(t,r=o)&&(t[0]>r[0]?n[0]=t[0]:n[0]=r[0],t[1]>r[1]?n[1]=t[1]:n[1]=r[1],t[2]0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=t,this.url=t.url,this.layerId=t.id,this.autoplay=void 0===t.autoplay||t.autoplay,this.loop=void 0===t.loop||t.loop},(t=[{key:"_createVideoElement",value:function(){var e=document.createElement("video");e.id=this.layerId,e.className="video-js",e.style.position="fixed",e.style.left="-300%",e.setAttribute("crossorigin","anonymous"),document.body.appendChild(e)}},{key:"createVideo",value:function(){this._createVideoElement();var e=this._getVideoOptions();return this.video=Om()(this.layerId,e,function(){}),this.video}},{key:"_getVideoOptions",value:function(){if(this.url){var e={autoplay:this.autoplay,muted:!0,loop:this.loop};return this.url.includes("mp4")||this.url.includes("MP4")?e.sources=[{src:this.url,type:"video/mp4"}]:this.url.includes("flv")||this.url.includes("FLV")?e={loop:this.loop,autoplay:this.autoplay,muted:!0,techOrder:["html5","flvjs"],flvjs:{mediaDataSource:{isLive:!0,cors:!0,withCredentials:!1}},sources:[{src:this.url,type:"video/x-flv"}]}:(this.url.includes("m3u8")||this.url.includes("M3U8"))&&(e.sources=[{src:this.url}]),e}}},{key:"getVideoDomId",value:function(){if(this.url){var e;if(this.url.includes("flv")){var t=document.querySelector("#".concat(this.layerId));e="".concat(this.layerId,"_flvjs_api"),t.style.position="fixed",t.style.left="-200%"}else e=this.video.el_.firstChild.id;return e}}}])&&Pm(e.prototype,t),r&&Pm(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),Mm=function(){try{return turf}catch(e){return{}}}();function Nm(e){"@babel/helpers - typeof";return(Nm="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Bm(e,t){for(var r=0;r=this.data[r])return{index:r,ratio:0};for(var n=0,o=r;n<=o;){var i=n+o>>1;if(this.data[i]<=t&&this.data[i+1]>t){var a=this.data[i+1]-this.data[i];return{index:i,ratio:a>0?(t-this.data[i])/a:0}}this.data[i]>1;this.data[i]>=t?(o=i,n=i-1):r=i+1}return-1===o&&(o=this.data.length-1),{value:this.raw[o]}}}])&&Um(e.prototype,t),r&&Um(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Wm(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];if(e<.001)throw new Error("time interval can't' less than 0.001");if(!t||0===t.length)return[];for(var n=t.map(function(e){return Qm(Qm({},e),{},{time:Math.round(1e3*e.time)})}),o=1/0,i=1;i=3?{authority:t[1],code:parseInt(t[2],10)}:null}},{key:"convertUnit",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"unit";if(!e||e.length<3)return{type:t,name:"unknown",conversion_factor:null};var r=e[1],n=parseFloat(e[2])||null,o=e.find(function(e){return Array.isArray(e)&&"ID"===e[0]});return{type:t,name:r,conversion_factor:n,id:o?{authority:o[1],code:parseInt(o[2],10)}:null}}},{key:"convertAxis",value:function(e){var t,r=e[1]||"Unknown",n=r.match(/^\((.)\)$/);if(n){var o=n[1].toUpperCase();if("E"===o)t="east";else if("N"===o)t="north";else if("U"===o)t="up";else{if(!e[2])throw new Error("Unknown axis abbreviation: ".concat(o));t=e[2]}}else t=e[2]||"unknown";var i=e.find(function(e){return Array.isArray(e)&&"ORDER"===e[0]}),a=i?parseInt(i[1],10):null,s=e.find(function(e){return Array.isArray(e)&&("LENGTHUNIT"===e[0]||"ANGLEUNIT"===e[0]||"SCALEUNIT"===e[0])});return{name:r,direction:t,unit:this.convertUnit(s),order:a}}},{key:"extractAxes",value:function(e){var t=this;return e.filter(function(e){return Array.isArray(e)&&"AXIS"===e[0]}).map(function(e){return t.convertAxis(e)}).sort(function(e,t){return(e.order||0)-(t.order||0)})}},{key:"convert",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(e[0]){case"PROJCRS":r.type="ProjectedCRS",r.name=e[1],r.base_crs=e.find(function(e){return Array.isArray(e)&&"BASEGEOGCRS"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"BASEGEOGCRS"===e[0]})):null,r.conversion=e.find(function(e){return Array.isArray(e)&&"CONVERSION"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"CONVERSION"===e[0]})):null;var n=e.find(function(e){return Array.isArray(e)&&"CS"===e[0]});n&&(r.coordinate_system={subtype:n[1],axis:this.extractAxes(e)});var o=e.find(function(e){return Array.isArray(e)&&"LENGTHUNIT"===e[0]});if(o){var i=this.convertUnit(o);r.coordinate_system.unit=i}r.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":r.type="GEODCRS"===e[0]?"GeodeticCRS":"GeographicCRS",r.name=e[1];var a=e.find(function(e){return Array.isArray(e)&&("DATUM"===e[0]||"ENSEMBLE"===e[0])});if(a){var s=this.convert(a);"ENSEMBLE"===a[0]?r.datum_ensemble=s:r.datum=s;var u=e.find(function(e){return Array.isArray(e)&&"PRIMEM"===e[0]});u&&"Greenwich"!==u[1]&&(s.prime_meridian={name:u[1],longitude:parseFloat(u[2])})}var l=e.find(function(e){return Array.isArray(e)&&"CS"===e[0]});r.coordinate_system={subtype:l?l[1]:"ellipsoidal",axis:this.extractAxes(e)},r.id=this.getId(e);break;case"DATUM":r.type="GeodeticReferenceFrame",r.name=e[1],r.ellipsoid=e.find(function(e){return Array.isArray(e)&&"ELLIPSOID"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"ELLIPSOID"===e[0]})):null;break;case"ENSEMBLE":r.type="DatumEnsemble",r.name=e[1],r.members=e.filter(function(e){return Array.isArray(e)&&"MEMBER"===e[0]}).map(function(e){return{type:"DatumEnsembleMember",name:e[1],id:t.getId(e)}});var c=e.find(function(e){return Array.isArray(e)&&"ENSEMBLEACCURACY"===e[0]});c&&(r.accuracy=parseFloat(c[1]));var f=e.find(function(e){return Array.isArray(e)&&"ELLIPSOID"===e[0]});f&&(r.ellipsoid=this.convert(f)),r.id=this.getId(e);break;case"ELLIPSOID":r.type="Ellipsoid",r.name=e[1],r.semi_major_axis=parseFloat(e[2]),r.inverse_flattening=parseFloat(e[3]);e.find(function(e){return Array.isArray(e)&&"LENGTHUNIT"===e[0]})&&this.convert(e.find(function(e){return Array.isArray(e)&&"LENGTHUNIT"===e[0]}),r);break;case"CONVERSION":r.type="Conversion",r.name=e[1],r.method=e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})):null,r.parameters=e.filter(function(e){return Array.isArray(e)&&"PARAMETER"===e[0]}).map(function(e){return t.convert(e)});break;case"METHOD":r.type="Method",r.name=e[1],r.id=this.getId(e);break;case"PARAMETER":r.type="Parameter",r.name=e[1],r.value=parseFloat(e[2]),r.unit=this.convertUnit(e.find(function(e){return Array.isArray(e)&&("LENGTHUNIT"===e[0]||"ANGLEUNIT"===e[0]||"SCALEUNIT"===e[0])})),r.id=this.getId(e);break;case"BOUNDCRS":r.type="BoundCRS";var p=e.find(function(e){return Array.isArray(e)&&"SOURCECRS"===e[0]});if(p){var h=p.find(function(e){return Array.isArray(e)});r.source_crs=h?this.convert(h):null}var y=e.find(function(e){return Array.isArray(e)&&"TARGETCRS"===e[0]});if(y){var d=y.find(function(e){return Array.isArray(e)});r.target_crs=d?this.convert(d):null}var m=e.find(function(e){return Array.isArray(e)&&"ABRIDGEDTRANSFORMATION"===e[0]});r.transformation=m?this.convert(m):null;break;case"ABRIDGEDTRANSFORMATION":if(r.type="Transformation",r.name=e[1],r.method=e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})?this.convert(e.find(function(e){return Array.isArray(e)&&"METHOD"===e[0]})):null,r.parameters=e.filter(function(e){return Array.isArray(e)&&("PARAMETER"===e[0]||"PARAMETERFILE"===e[0])}).map(function(e){return"PARAMETER"===e[0]?t.convert(e):"PARAMETERFILE"===e[0]?{name:e[1],value:e[2],id:{authority:"EPSG",code:8656}}:void 0}),7===r.parameters.length){var v=r.parameters[6];"Scale difference"===v.name&&(v.value=Math.round(1e12*(v.value-1))/1e6)}r.id=this.getId(e);break;case"AXIS":r.coordinate_system||(r.coordinate_system={type:"unspecified",axis:[]}),r.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":var g=this.convertUnit(e,"LinearUnit");r.coordinate_system&&r.coordinate_system.axis&&r.coordinate_system.axis.forEach(function(e){e.unit||(e.unit=g)}),g.conversion_factor&&1!==g.conversion_factor&&r.semi_major_axis&&(r.semi_major_axis={value:r.semi_major_axis,unit:g});break;default:r.keyword=e[0]}return r}}],(t=null)&&Sv(e.prototype,t),r&&Sv(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();var xv=function(e){return new jv(e).output()},_v=1,Iv=/\s/,Ov=/[A-Za-z]/,kv=/[A-Za-z84_]/,Pv=/[,\]]/,Tv=/[\d\.E\-\+]/;function jv(e){if("string"!=typeof e)throw new Error("not a string");this.text=e.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=_v}function Mv(e,t,r){Array.isArray(t)&&(r.unshift(t),t=null);var n=t?{}:e,o=r.reduce(function(e,t){return Nv(t,e),e},n);t&&(e[t]=o)}function Nv(e,t){if(Array.isArray(e)){var r=e.shift();if("PARAMETER"===r&&(r=e.shift()),1===e.length)return Array.isArray(e[0])?(t[r]={},void Nv(e[0],t[r])):void(t[r]=e[0]);if(e.length)if("TOWGS84"!==r){if("AXIS"===r)return r in t||(t[r]=[]),void t[r].push(e);var n;switch(Array.isArray(r)||(t[r]={}),r){case"UNIT":case"PRIMEM":case"VERT_DATUM":return t[r]={name:e[0].toLowerCase(),convert:e[1]},void(3===e.length&&Nv(e[2],t[r]));case"SPHEROID":case"ELLIPSOID":return t[r]={name:e[0],a:e[1],rf:e[2]},void(4===e.length&&Nv(e[3],t[r]));case"EDATUM":case"ENGINEERINGDATUM":case"LOCAL_DATUM":case"DATUM":case"VERT_CS":case"VERTCRS":case"VERTICALCRS":return e[0]=["name",e[0]],void Mv(t,r,e);case"COMPD_CS":case"COMPOUNDCRS":case"FITTED_CS":case"PROJECTEDCRS":case"PROJCRS":case"GEOGCS":case"GEOCCS":case"PROJCS":case"LOCAL_CS":case"GEODCRS":case"GEODETICCRS":case"GEODETICDATUM":case"ENGCRS":case"ENGINEERINGCRS":return e[0]=["name",e[0]],Mv(t,r,e),void(t[r].type=r);default:for(n=-1;++n=this.text.length)return;e=this.text[this.place++]}switch(this.state){case _v:return this.neutral(e);case 2:return this.keyword(e);case 4:return this.quoted(e);case 5:return this.afterquote(e);case 3:return this.number(e);case-1:return}},jv.prototype.afterquote=function(e){if('"'===e)return this.word+='"',void(this.state=4);if(Pv.test(e))return this.word=this.word.trim(),void this.afterItem(e);throw new Error("havn't handled \""+e+'" in afterquote yet, index '+this.place)},jv.prototype.afterItem=function(e){return","===e?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=_v)):"]"===e?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=_v,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},jv.prototype.number=function(e){if(!Tv.test(e)){if(Pv.test(e))return this.word=parseFloat(this.word),void this.afterItem(e);throw new Error("havn't handled \""+e+'" in number yet, index '+this.place)}this.word+=e},jv.prototype.quoted=function(e){'"'!==e?this.word+=e:this.state=5},jv.prototype.keyword=function(e){if(kv.test(e))this.word+=e;else{if("["===e){var t=[];return t.push(this.word),this.level++,null===this.root?this.root=t:this.currentObject.push(t),this.stack.push(this.currentObject),this.currentObject=t,void(this.state=_v)}if(!Pv.test(e))throw new Error("havn't handled \""+e+'" in keyword yet, index '+this.place);this.afterItem(e)}},jv.prototype.neutral=function(e){if(Ov.test(e))return this.word=e,void(this.state=2);if('"'===e)return this.word="",void(this.state=4);if(Tv.test(e))return this.word=e,void(this.state=3);if(!Pv.test(e))throw new Error("havn't handled \""+e+'" in neutral yet, index '+this.place);this.afterItem(e)},jv.prototype.output=function(){for(;this.place0?90:-90),delete e.lat1):(e.lat0=Lv(e.lat1>0?90:-90),e.lat_ts=e.lat1,delete e.lat1)}function Dv(e){"@babel/helpers - typeof";return(Dv="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Fv(e){var t={units:null,to_meter:void 0};return"string"==typeof e?(t.units=e.toLowerCase(),"metre"===t.units&&(t.units="meter"),"meter"===t.units&&(t.to_meter=1)):e&&e.name&&(t.units=e.name.toLowerCase(),"metre"===t.units&&(t.units="meter"),t.to_meter=e.conversion_factor),t}function Qv(e){return"object"===Dv(e)?e.value*e.unit.conversion_factor:e}function Gv(e,t){e.ellipsoid.radius?(t.a=e.ellipsoid.radius,t.rf=0):(t.a=Qv(e.ellipsoid.semi_major_axis),void 0!==e.ellipsoid.inverse_flattening?t.rf=e.ellipsoid.inverse_flattening:void 0!==e.ellipsoid.semi_major_axis&&void 0!==e.ellipsoid.semi_minor_axis&&(t.rf=t.a/(t.a-Qv(e.ellipsoid.semi_minor_axis))))}function Uv(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e&&"object"===Dv(e)?"BoundCRS"===e.type?(Uv(e.source_crs,t),e.transformation&&(e.transformation.method&&"NTv2"===e.transformation.method.name?t.nadgrids=e.transformation.parameters[0].value:t.datum_params=e.transformation.parameters.map(function(e){return e.value})),t):(Object.keys(e).forEach(function(r){var n=e[r];if(null!==n)switch(r){case"name":if(t.srsCode)break;t.name=n,t.srsCode=n;break;case"type":"GeographicCRS"===n?t.projName="longlat":"GeodeticCRS"===n?e.coordinate_system&&"Cartesian"===e.coordinate_system.subtype?t.projName="geocent":t.projName="longlat":"ProjectedCRS"===n&&e.conversion&&e.conversion.method&&(t.projName=e.conversion.method.name);break;case"datum":case"datum_ensemble":n.ellipsoid&&(t.ellps=n.ellipsoid.name,Gv(n,t)),n.prime_meridian&&(t.from_greenwich=n.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":t.ellps=n.name,Gv(n,t);break;case"prime_meridian":t.long0=(n.longitude||0)*Math.PI/180;break;case"coordinate_system":if(n.axis){var o={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},i=n.axis.map(function(e){return o[e.direction.toLowerCase()]});if(i.every(Boolean)&&(t.axis=i.join(""),2===t.axis.length&&(t.axis+="u")),n.unit){var a=Fv(n.unit),s=a.units,u=a.to_meter;t.units=s,t.to_meter=u}else if(n.axis[0]&&n.axis[0].unit){var l=Fv(n.axis[0].unit),c=l.units,f=l.to_meter;t.units=c,t.to_meter=f}}break;case"id":n.authority&&n.code&&(t.title=n.authority+":"+n.code);break;case"conversion":n.method&&n.method.name&&(t.projName=n.method.name),n.parameters&&n.parameters.forEach(function(e){var r=e.name.toLowerCase().replace(/\s+/g,"_"),n=e.value;e.unit&&e.unit.conversion_factor?t[r]=n*e.unit.conversion_factor:"degree"===e.unit?t[r]=n*Math.PI/180:t[r]=n});break;case"unit":n.name&&(t.units=n.name.toLowerCase(),"metre"===t.units&&(t.units="meter")),n.conversion_factor&&(t.to_meter=n.conversion_factor);break;case"base_crs":Uv(n,t),t.datumCode=n.id?n.id.authority+"_"+n.id.code:n.name}}),void 0!==t.latitude_of_false_origin&&(t.lat0=t.latitude_of_false_origin),void 0!==t.longitude_of_false_origin&&(t.long0=t.longitude_of_false_origin),void 0!==t.latitude_of_standard_parallel&&(t.lat0=t.latitude_of_standard_parallel,t.lat1=t.latitude_of_standard_parallel),void 0!==t.latitude_of_1st_standard_parallel&&(t.lat1=t.latitude_of_1st_standard_parallel),void 0!==t.latitude_of_2nd_standard_parallel&&(t.lat2=t.latitude_of_2nd_standard_parallel),void 0!==t.latitude_of_projection_centre&&(t.lat0=t.latitude_of_projection_centre),void 0!==t.longitude_of_projection_centre&&(t.longc=t.longitude_of_projection_centre),void 0!==t.easting_at_false_origin&&(t.x0=t.easting_at_false_origin),void 0!==t.northing_at_false_origin&&(t.y0=t.northing_at_false_origin),void 0!==t.latitude_of_natural_origin&&(t.lat0=t.latitude_of_natural_origin),void 0!==t.longitude_of_natural_origin&&(t.long0=t.longitude_of_natural_origin),void 0!==t.longitude_of_origin&&(t.long0=t.longitude_of_origin),void 0!==t.false_easting&&(t.x0=t.false_easting),t.easting_at_projection_centre&&(t.x0=t.easting_at_projection_centre),void 0!==t.false_northing&&(t.y0=t.false_northing),t.northing_at_projection_centre&&(t.y0=t.northing_at_projection_centre),void 0!==t.standard_parallel_1&&(t.lat1=t.standard_parallel_1),void 0!==t.standard_parallel_2&&(t.lat2=t.standard_parallel_2),void 0!==t.scale_factor_at_natural_origin&&(t.k0=t.scale_factor_at_natural_origin),void 0!==t.scale_factor_at_projection_centre&&(t.k0=t.scale_factor_at_projection_centre),void 0!==t.scale_factor_on_pseudo_standard_parallel&&(t.k0=t.scale_factor_on_pseudo_standard_parallel),void 0!==t.azimuth&&(t.alpha=t.azimuth),void 0!==t.azimuth_at_projection_centre&&(t.alpha=t.azimuth_at_projection_centre),t.angle_from_rectified_to_skew_grid&&(t.rectified_grid_angle=t.angle_from_rectified_to_skew_grid),Rv(t),t):e}function zv(e){"@babel/helpers - typeof";return(zv="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var Hv=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function qv(e){if(e.AUTHORITY){var t=Object.keys(e.AUTHORITY)[0];t&&t in e.AUTHORITY&&(e.title=t+":"+e.AUTHORITY[t])}if("GEOGCS"===e.type?e.projName="longlat":"LOCAL_CS"===e.type?(e.projName="identity",e.local=!0):"object"===zv(e.PROJECTION)?e.projName=Object.keys(e.PROJECTION)[0]:e.projName=e.PROJECTION,e.AXIS){for(var r="",n=0,o=e.AXIS.length;n-1}}(t))return Yv["EPSG:3857"];var r=function(e){var t=bv(e,"extension");if(t)return bv(t,"proj4")}(t);return r?Av(r):t}return function(e){return"+"===e[0]}(e)?Av(e):void 0};function Xv(e,t){var r,n;if(e=e||{},!t)return e;for(n in t)void 0!==(r=t[n])&&(e[n]=r);return e}function Zv(e,t,r){var n=e*t;return r/Math.sqrt(1-n*n)}function $v(e){return e<0?-1:1}function eg(e){return Math.abs(e)<=dv?e:e-$v(e)*yv}function tg(e,t,r){var n=e*r,o=.5*e;return n=Math.pow((1-n)/(1+n),o),Math.tan(.5*(av-t))/n}function rg(e,t){for(var r,n,o=.5*e,i=av-2*Math.atan(t),a=0;a<=15;a++)if(r=e*Math.sin(i),i+=n=av-2*Math.atan(t*Math.pow((1-r)/(1+r),o))-i,Math.abs(n)<=1e-10)return i;return-9999}function ng(e){return e}var og=[{init:function(){var e=this.b/this.a;this.es=1-e*e,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=Zv(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)},forward:function(e){var t,r,n=e.x,o=e.y;if(o*pv>90&&o*pv<-90&&n*pv>180&&n*pv<-180)return null;if(Math.abs(Math.abs(o)-av)<=cv)return null;if(this.sphere)t=this.x0+this.a*this.k0*eg(n-this.long0),r=this.y0+this.a*this.k0*Math.log(Math.tan(hv+.5*o));else{var i=Math.sin(o),a=tg(this.e,o,i);t=this.x0+this.a*this.k0*eg(n-this.long0),r=this.y0-this.a*this.k0*Math.log(a)}return e.x=t,e.y=r,e},inverse:function(e){var t,r,n=e.x-this.x0,o=e.y-this.y0;if(this.sphere)r=av-2*Math.atan(Math.exp(-o/(this.a*this.k0)));else{var i=Math.exp(-o/(this.a*this.k0));if(-9999===(r=rg(this.e,i)))return null}return t=eg(this.long0+n/(this.a*this.k0)),e.x=t,e.y=r,e},names:["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"]},{init:function(){},forward:ng,inverse:ng,names:["longlat","identity"]}],ig={},ag=[];function sg(e,t){var r=ag.length;return e.names?(ag[r]=e,e.names.forEach(function(e){ig[e.toLowerCase()]=r}),this):(console.log(t),!0)}function ug(e){return e.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}var lg={start:function(){og.forEach(sg)},add:sg,get:function(e){if(!e)return!1;var t=e.toLowerCase();return void 0!==ig[t]&&ag[ig[t]]?ag[ig[t]]:(t=ug(t))in ig&&ag[ig[t]]?ag[ig[t]]:void 0}},cg={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},andrae:{a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},clrk80:{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:6378249.2,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:6355834.8467,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const fg=cg.WGS84;var pg={wgs84:{towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},ch1903:{towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"},ggrs87:{towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},nad83:{towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},nad27:{nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},potsdam:{towgs84:"598.1,73.7,418.2,0.202,0.045,-2.455,6.7",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},carthage:{towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},hermannskogel:{towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Hermannskogel"},mgi:{towgs84:"577.326,90.129,463.919,5.137,1.474,5.297,2.4232",ellipse:"bessel",datumName:"Militar-Geographische Institut"},osni52:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"airy",datumName:"Irish National"},ire65:{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},rassadiran:{towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"},nzgd49:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},osgb36:{towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Ordnance Survey of Great Britain 1936"},s_jtsk:{towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"},beduaram:{towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"},gunung_segara:{towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"},rnb72:{towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"},EPSG_5451:{towgs84:"6.41,-49.05,-11.28,1.5657,0.5242,6.9718,-5.7649"},IGNF_LURESG:{towgs84:"-192.986,13.673,-39.309,-0.4099,-2.9332,2.6881,0.43"},EPSG_4614:{towgs84:"-119.4248,-303.65872,-11.00061,1.164298,0.174458,1.096259,3.657065"},EPSG_4615:{towgs84:"-494.088,-312.129,279.877,-1.423,-1.013,1.59,-0.748"},ESRI_37241:{towgs84:"-76.822,257.457,-12.817,2.136,-0.033,-2.392,-0.031"},ESRI_37249:{towgs84:"-440.296,58.548,296.265,1.128,10.202,4.559,-0.438"},ESRI_37245:{towgs84:"-511.151,-181.269,139.609,1.05,2.703,1.798,3.071"},EPSG_4178:{towgs84:"24.9,-126.4,-93.2,-0.063,-0.247,-0.041,1.01"},EPSG_4622:{towgs84:"-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,1.8984"},EPSG_4625:{towgs84:"126.93,547.94,130.41,-2.7867,5.1612,-0.8584,13.8227"},EPSG_5252:{towgs84:"0.023,0.036,-0.068,0.00176,0.00912,-0.01136,0.00439"},EPSG_4314:{towgs84:"597.1,71.4,412.1,0.894,0.068,-1.563,7.58"},EPSG_4282:{towgs84:"-178.3,-316.7,-131.5,5.278,6.077,10.979,19.166"},EPSG_4231:{towgs84:"-83.11,-97.38,-117.22,0.0276,-0.2167,0.2147,0.1218"},EPSG_4274:{towgs84:"-230.994,102.591,25.199,0.633,-0.239,0.9,1.95"},EPSG_4134:{towgs84:"-180.624,-225.516,173.919,-0.81,-1.898,8.336,16.71006"},EPSG_4254:{towgs84:"18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013"},EPSG_4159:{towgs84:"-194.513,-63.978,-25.759,-3.4027,3.756,-3.352,-0.9175"},EPSG_4687:{towgs84:"0.072,-0.507,-0.245,0.0183,-0.0003,0.007,-0.0093"},EPSG_4227:{towgs84:"-83.58,-397.54,458.78,-17.595,-2.847,4.256,3.225"},EPSG_4746:{towgs84:"599.4,72.4,419.2,-0.062,-0.022,-2.723,6.46"},EPSG_4745:{towgs84:"612.4,77,440.2,-0.054,0.057,-2.797,2.55"},EPSG_6311:{towgs84:"8.846,-4.394,-1.122,-0.00237,-0.146528,0.130428,0.783926"},EPSG_4289:{towgs84:"565.7381,50.4018,465.2904,-1.91514,1.60363,-9.09546,4.07244"},EPSG_4230:{towgs84:"-68.863,-134.888,-111.49,-0.53,-0.14,0.57,-3.4"},EPSG_4154:{towgs84:"-123.02,-158.95,-168.47"},EPSG_4156:{towgs84:"570.8,85.7,462.8,4.998,1.587,5.261,3.56"},EPSG_4299:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4179:{towgs84:"33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84"},EPSG_4313:{towgs84:"-106.8686,52.2978,-103.7239,0.3366,-0.457,1.8422,-1.2747"},EPSG_4194:{towgs84:"163.511,127.533,-159.789"},EPSG_4195:{towgs84:"105,326,-102.5"},EPSG_4196:{towgs84:"-45,417,-3.5"},EPSG_4611:{towgs84:"-162.619,-276.959,-161.764,0.067753,-2.243649,-1.158827,-1.094246"},EPSG_4633:{towgs84:"137.092,131.66,91.475,-1.9436,-11.5993,-4.3321,-7.4824"},EPSG_4641:{towgs84:"-408.809,366.856,-412.987,1.8842,-0.5308,2.1655,-121.0993"},EPSG_4643:{towgs84:"-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7002"},EPSG_4300:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4188:{towgs84:"482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15"},EPSG_4660:{towgs84:"982.6087,552.753,-540.873,32.39344,-153.25684,-96.2266,16.805"},EPSG_4662:{towgs84:"97.295,-263.247,310.882,-1.5999,0.8386,3.1409,13.3259"},EPSG_3906:{towgs84:"577.88891,165.22205,391.18289,4.9145,-0.94729,-13.05098,7.78664"},EPSG_4307:{towgs84:"-209.3622,-87.8162,404.6198,0.0046,3.4784,0.5805,-1.4547"},EPSG_6892:{towgs84:"-76.269,-16.683,68.562,-6.275,10.536,-4.286,-13.686"},EPSG_4690:{towgs84:"221.597,152.441,176.523,2.403,1.3893,0.884,11.4648"},EPSG_4691:{towgs84:"218.769,150.75,176.75,3.5231,2.0037,1.288,10.9817"},EPSG_4629:{towgs84:"72.51,345.411,79.241,-1.5862,-0.8826,-0.5495,1.3653"},EPSG_4630:{towgs84:"165.804,216.213,180.26,-0.6251,-0.4515,-0.0721,7.4111"},EPSG_4692:{towgs84:"217.109,86.452,23.711,0.0183,-0.0003,0.007,-0.0093"},EPSG_9333:{towgs84:"0,0,0,-8.393,0.749,-10.276,0"},EPSG_9059:{towgs84:"0,0,0"},EPSG_4312:{towgs84:"601.705,84.263,485.227,4.7354,1.3145,5.393,-2.3887"},EPSG_4123:{towgs84:"-96.062,-82.428,-121.753,4.801,0.345,-1.376,1.496"},EPSG_4309:{towgs84:"-124.45,183.74,44.64,-0.4384,0.5446,-0.9706,-2.1365"},ESRI_104106:{towgs84:"-283.088,-70.693,117.445,-1.157,0.059,-0.652,-4.058"},EPSG_4281:{towgs84:"-219.247,-73.802,269.529"},EPSG_4322:{towgs84:"0,0,4.5"},EPSG_4324:{towgs84:"0,0,1.9"},EPSG_4284:{towgs84:"43.822,-108.842,-119.585,1.455,-0.761,0.737,0.549"},EPSG_4277:{towgs84:"446.448,-125.157,542.06,0.15,0.247,0.842,-20.489"},EPSG_4207:{towgs84:"-282.1,-72.2,120,-1.529,0.145,-0.89,-4.46"},EPSG_4688:{towgs84:"347.175,1077.618,2623.677,33.9058,-70.6776,9.4013,186.0647"},EPSG_4689:{towgs84:"410.793,54.542,80.501,-2.5596,-2.3517,-0.6594,17.3218"},EPSG_4720:{towgs84:"0,0,4.5"},EPSG_4273:{towgs84:"278.3,93,474.5,7.889,0.05,-6.61,6.21"},EPSG_4240:{towgs84:"204.64,834.74,293.8"},EPSG_4817:{towgs84:"278.3,93,474.5,7.889,0.05,-6.61,6.21"},ESRI_104131:{towgs84:"426.62,142.62,460.09,4.98,4.49,-12.42,-17.1"},EPSG_4265:{towgs84:"-104.1,-49.1,-9.9,0.971,-2.917,0.714,-11.68"},EPSG_4263:{towgs84:"-111.92,-87.85,114.5,1.875,0.202,0.219,0.032"},EPSG_4298:{towgs84:"-689.5937,623.84046,-65.93566,-0.02331,1.17094,-0.80054,5.88536"},EPSG_4270:{towgs84:"-253.4392,-148.452,386.5267,0.15605,0.43,-0.1013,-0.0424"},EPSG_4229:{towgs84:"-121.8,98.1,-10.7"},EPSG_4220:{towgs84:"-55.5,-348,-229.2"},EPSG_4214:{towgs84:"12.646,-155.176,-80.863"},EPSG_4232:{towgs84:"-345,3,223"},EPSG_4238:{towgs84:"-1.977,-13.06,-9.993,0.364,0.254,0.689,-1.037"},EPSG_4168:{towgs84:"-170,33,326"},EPSG_4131:{towgs84:"199,931,318.9"},EPSG_4152:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_5228:{towgs84:"572.213,85.334,461.94,4.9732,1.529,5.2484,3.5378"},EPSG_8351:{towgs84:"485.021,169.465,483.839,7.786342,4.397554,4.102655,0"},EPSG_4683:{towgs84:"-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06"},EPSG_4133:{towgs84:"0,0,0"},EPSG_7373:{towgs84:"0.819,-0.5762,-1.6446,-0.00378,-0.03317,0.00318,0.0693"},EPSG_9075:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_9072:{towgs84:"-0.9102,2.0141,0.5602,0.029039,0.010065,0.010101,0"},EPSG_9294:{towgs84:"1.16835,-1.42001,-2.24431,-0.00822,-0.05508,0.01818,0.23388"},EPSG_4212:{towgs84:"-267.434,173.496,181.814,-13.4704,8.7154,7.3926,14.7492"},EPSG_4191:{towgs84:"-44.183,-0.58,-38.489,2.3867,2.7072,-3.5196,-8.2703"},EPSG_4237:{towgs84:"52.684,-71.194,-13.975,-0.312,-0.1063,-0.3729,1.0191"},EPSG_4740:{towgs84:"-1.08,-0.27,-0.9"},EPSG_4124:{towgs84:"419.3836,99.3335,591.3451,0.850389,1.817277,-7.862238,-0.99496"},EPSG_5681:{towgs84:"584.9636,107.7175,413.8067,1.1155,0.2824,-3.1384,7.9922"},EPSG_4141:{towgs84:"23.772,17.49,17.859,-0.3132,-1.85274,1.67299,-5.4262"},EPSG_4204:{towgs84:"-85.645,-273.077,-79.708,2.289,-1.421,2.532,3.194"},EPSG_4319:{towgs84:"226.702,-193.337,-35.371,-2.229,-4.391,9.238,0.9798"},EPSG_4200:{towgs84:"24.82,-131.21,-82.66"},EPSG_4130:{towgs84:"0,0,0"},EPSG_4127:{towgs84:"-82.875,-57.097,-156.768,-2.158,1.524,-0.982,-0.359"},EPSG_4149:{towgs84:"674.374,15.056,405.346"},EPSG_4617:{towgs84:"-0.991,1.9072,0.5129,1.25033e-7,4.6785e-8,5.6529e-8,0"},EPSG_4663:{towgs84:"-210.502,-66.902,-48.476,2.094,-15.067,-5.817,0.485"},EPSG_4664:{towgs84:"-211.939,137.626,58.3,-0.089,0.251,0.079,0.384"},EPSG_4665:{towgs84:"-105.854,165.589,-38.312,-0.003,-0.026,0.024,-0.048"},EPSG_4666:{towgs84:"631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"},EPSG_4756:{towgs84:"-192.873,-39.382,-111.202,-0.00205,-0.0005,0.00335,0.0188"},EPSG_4723:{towgs84:"-179.483,-69.379,-27.584,-7.862,8.163,6.042,-13.925"},EPSG_4726:{towgs84:"8.853,-52.644,180.304,-0.393,-2.323,2.96,-24.081"},EPSG_4267:{towgs84:"-8.0,160.0,176.0"},EPSG_5365:{towgs84:"-0.16959,0.35312,0.51846,0.03385,-0.16325,0.03446,0.03693"},EPSG_4218:{towgs84:"304.5,306.5,-318.1"},EPSG_4242:{towgs84:"-33.722,153.789,94.959,-8.581,-4.478,4.54,8.95"},EPSG_4216:{towgs84:"-292.295,248.758,429.447,4.9971,2.99,6.6906,1.0289"},ESRI_104105:{towgs84:"631.392,-66.551,481.442,1.09,-4.445,-4.487,-4.43"},ESRI_104129:{towgs84:"0,0,0"},EPSG_4673:{towgs84:"174.05,-25.49,112.57"},EPSG_4202:{towgs84:"-124,-60,154"},EPSG_4203:{towgs84:"-117.763,-51.51,139.061,0.292,0.443,0.277,-0.191"},EPSG_3819:{towgs84:"595.48,121.69,515.35,4.115,-2.9383,0.853,-3.408"},EPSG_8694:{towgs84:"-93.799,-132.737,-219.073,-1.844,0.648,-6.37,-0.169"},EPSG_4145:{towgs84:"275.57,676.78,229.6"},EPSG_4283:{towgs84:"61.55,-10.87,-40.19,39.4924,32.7221,32.8979,-9.994"},EPSG_4317:{towgs84:"2.3287,-147.0425,-92.0802,-0.3092483,0.32482185,0.49729934,5.68906266"},EPSG_4272:{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993"},EPSG_4248:{towgs84:"-307.7,265.3,-363.5"},EPSG_5561:{towgs84:"24,-121,-76"},EPSG_5233:{towgs84:"-0.293,766.95,87.713,0.195704,1.695068,3.473016,-0.039338"},ESRI_104130:{towgs84:"-86,-98,-119"},ESRI_104102:{towgs84:"682,-203,480"},ESRI_37207:{towgs84:"7,-10,-26"},EPSG_4675:{towgs84:"59.935,118.4,-10.871"},ESRI_104109:{towgs84:"-89.121,-348.182,260.871"},ESRI_104112:{towgs84:"-185.583,-230.096,281.361"},ESRI_104113:{towgs84:"25.1,-275.6,222.6"},IGNF_WGS72G:{towgs84:"0,12,6"},IGNF_NTFG:{towgs84:"-168,-60,320"},IGNF_EFATE57G:{towgs84:"-127,-769,472"},IGNF_PGP50G:{towgs84:"324.8,153.6,172.1"},IGNF_REUN47G:{towgs84:"94,-948,-1262"},IGNF_CSG67G:{towgs84:"-186,230,110"},IGNF_GUAD48G:{towgs84:"-467,-16,-300"},IGNF_TAHI51G:{towgs84:"162,117,154"},IGNF_TAHAAG:{towgs84:"65,342,77"},IGNF_NUKU72G:{towgs84:"84,274,65"},IGNF_PETRELS72G:{towgs84:"365,194,166"},IGNF_WALL78G:{towgs84:"253,-133,-127"},IGNF_MAYO50G:{towgs84:"-382,-59,-262"},IGNF_TANNAG:{towgs84:"-139,-967,436"},IGNF_IGN72G:{towgs84:"-13,-348,292"},IGNF_ATIGG:{towgs84:"1118,23,66"},IGNF_FANGA84G:{towgs84:"150.57,158.33,118.32"},IGNF_RUSAT84G:{towgs84:"202.13,174.6,-15.74"},IGNF_KAUE70G:{towgs84:"126.74,300.1,-75.49"},IGNF_MOP90G:{towgs84:"-10.8,-1.8,12.77"},IGNF_MHPF67G:{towgs84:"338.08,212.58,-296.17"},IGNF_TAHI79G:{towgs84:"160.61,116.05,153.69"},IGNF_ANAA92G:{towgs84:"1.5,3.84,4.81"},IGNF_MARQUI72G:{towgs84:"330.91,-13.92,58.56"},IGNF_APAT86G:{towgs84:"143.6,197.82,74.05"},IGNF_TUBU69G:{towgs84:"237.17,171.61,-77.84"},IGNF_STPM50G:{towgs84:"11.363,424.148,373.13"},EPSG_4150:{towgs84:"674.374,15.056,405.346"},EPSG_4754:{towgs84:"-208.4058,-109.8777,-2.5764"},ESRI_104101:{towgs84:"374,150,588"},EPSG_4693:{towgs84:"0,-0.15,0.68"},EPSG_6207:{towgs84:"293.17,726.18,245.36"},EPSG_4153:{towgs84:"-133.63,-157.5,-158.62"},EPSG_4132:{towgs84:"-241.54,-163.64,396.06"},EPSG_4221:{towgs84:"-154.5,150.7,100.4"},EPSG_4266:{towgs84:"-80.7,-132.5,41.1"},EPSG_4193:{towgs84:"-70.9,-151.8,-41.4"},EPSG_5340:{towgs84:"-0.41,0.46,-0.35"},EPSG_4246:{towgs84:"-294.7,-200.1,525.5"},EPSG_4318:{towgs84:"-3.2,-5.7,2.8"},EPSG_4121:{towgs84:"-199.87,74.79,246.62"},EPSG_4223:{towgs84:"-260.1,5.5,432.2"},EPSG_4158:{towgs84:"-0.465,372.095,171.736"},EPSG_4285:{towgs84:"-128.16,-282.42,21.93"},EPSG_4613:{towgs84:"-404.78,685.68,45.47"},EPSG_4607:{towgs84:"195.671,332.517,274.607"},EPSG_4475:{towgs84:"-381.788,-57.501,-256.673"},EPSG_4208:{towgs84:"-157.84,308.54,-146.6"},EPSG_4743:{towgs84:"70.995,-335.916,262.898"},EPSG_4710:{towgs84:"-323.65,551.39,-491.22"},EPSG_7881:{towgs84:"-0.077,0.079,0.086"},EPSG_4682:{towgs84:"283.729,735.942,261.143"},EPSG_4739:{towgs84:"-156,-271,-189"},EPSG_4679:{towgs84:"-80.01,253.26,291.19"},EPSG_4750:{towgs84:"-56.263,16.136,-22.856"},EPSG_4644:{towgs84:"-10.18,-350.43,291.37"},EPSG_4695:{towgs84:"-103.746,-9.614,-255.95"},EPSG_4292:{towgs84:"-355,21,72"},EPSG_4302:{towgs84:"-61.702,284.488,472.052"},EPSG_4143:{towgs84:"-124.76,53,466.79"},EPSG_4606:{towgs84:"-153,153,307"},EPSG_4699:{towgs84:"-770.1,158.4,-498.2"},EPSG_4247:{towgs84:"-273.5,110.6,-357.9"},EPSG_4160:{towgs84:"8.88,184.86,106.69"},EPSG_4161:{towgs84:"-233.43,6.65,173.64"},EPSG_9251:{towgs84:"-9.5,122.9,138.2"},EPSG_9253:{towgs84:"-78.1,101.6,133.3"},EPSG_4297:{towgs84:"-198.383,-240.517,-107.909"},EPSG_4269:{towgs84:"0,0,0"},EPSG_4301:{towgs84:"-147,506,687"},EPSG_4618:{towgs84:"-59,-11,-52"},EPSG_4612:{towgs84:"0,0,0"},EPSG_4678:{towgs84:"44.585,-131.212,-39.544"},EPSG_4250:{towgs84:"-130,29,364"},EPSG_4144:{towgs84:"214,804,268"},EPSG_4147:{towgs84:"-17.51,-108.32,-62.39"},EPSG_4259:{towgs84:"-254.1,-5.36,-100.29"},EPSG_4164:{towgs84:"-76,-138,67"},EPSG_4211:{towgs84:"-378.873,676.002,-46.255"},EPSG_4182:{towgs84:"-422.651,-172.995,84.02"},EPSG_4224:{towgs84:"-143.87,243.37,-33.52"},EPSG_4225:{towgs84:"-205.57,168.77,-4.12"},EPSG_5527:{towgs84:"-67.35,3.88,-38.22"},EPSG_4752:{towgs84:"98,390,-22"},EPSG_4310:{towgs84:"-30,190,89"},EPSG_9248:{towgs84:"-192.26,65.72,132.08"},EPSG_4680:{towgs84:"124.5,-63.5,-281"},EPSG_4701:{towgs84:"-79.9,-158,-168.9"},EPSG_4706:{towgs84:"-146.21,112.63,4.05"},EPSG_4805:{towgs84:"682,-203,480"},EPSG_4201:{towgs84:"-165,-11,206"},EPSG_4210:{towgs84:"-157,-2,-299"},EPSG_4183:{towgs84:"-104,167,-38"},EPSG_4139:{towgs84:"11,72,-101"},EPSG_4668:{towgs84:"-86,-98,-119"},EPSG_4717:{towgs84:"-2,151,181"},EPSG_4732:{towgs84:"102,52,-38"},EPSG_4280:{towgs84:"-377,681,-50"},EPSG_4209:{towgs84:"-138,-105,-289"},EPSG_4261:{towgs84:"31,146,47"},EPSG_4658:{towgs84:"-73,46,-86"},EPSG_4721:{towgs84:"265.025,384.929,-194.046"},EPSG_4222:{towgs84:"-136,-108,-292"},EPSG_4601:{towgs84:"-255,-15,71"},EPSG_4602:{towgs84:"725,685,536"},EPSG_4603:{towgs84:"72,213.7,93"},EPSG_4605:{towgs84:"9,183,236"},EPSG_4621:{towgs84:"137,248,-430"},EPSG_4657:{towgs84:"-28,199,5"},EPSG_4316:{towgs84:"103.25,-100.4,-307.19"},EPSG_4642:{towgs84:"-13,-348,292"},EPSG_4698:{towgs84:"145,-187,103"},EPSG_4192:{towgs84:"-206.1,-174.7,-87.7"},EPSG_4311:{towgs84:"-265,120,-358"},EPSG_4135:{towgs84:"58,-283,-182"},ESRI_104138:{towgs84:"198,-226,-347"},EPSG_4245:{towgs84:"-11,851,5"},EPSG_4142:{towgs84:"-125,53,467"},EPSG_4213:{towgs84:"-106,-87,188"},EPSG_4253:{towgs84:"-133,-77,-51"},EPSG_4129:{towgs84:"-132,-110,-335"},EPSG_4713:{towgs84:"-77,-128,142"},EPSG_4239:{towgs84:"217,823,299"},EPSG_4146:{towgs84:"295,736,257"},EPSG_4155:{towgs84:"-83,37,124"},EPSG_4165:{towgs84:"-173,253,27"},EPSG_4672:{towgs84:"175,-38,113"},EPSG_4236:{towgs84:"-637,-549,-203"},EPSG_4251:{towgs84:"-90,40,88"},EPSG_4271:{towgs84:"-2,374,172"},EPSG_4175:{towgs84:"-88,4,101"},EPSG_4716:{towgs84:"298,-304,-375"},EPSG_4315:{towgs84:"-23,259,-9"},EPSG_4744:{towgs84:"-242.2,-144.9,370.3"},EPSG_4244:{towgs84:"-97,787,86"},EPSG_4293:{towgs84:"616,97,-251"},EPSG_4714:{towgs84:"-127,-769,472"},EPSG_4736:{towgs84:"260,12,-147"},EPSG_6883:{towgs84:"-235,-110,393"},EPSG_6894:{towgs84:"-63,176,185"},EPSG_4205:{towgs84:"-43,-163,45"},EPSG_4256:{towgs84:"41,-220,-134"},EPSG_4262:{towgs84:"639,405,60"},EPSG_4604:{towgs84:"174,359,365"},EPSG_4169:{towgs84:"-115,118,426"},EPSG_4620:{towgs84:"-106,-129,165"},EPSG_4184:{towgs84:"-203,141,53"},EPSG_4616:{towgs84:"-289,-124,60"},EPSG_9403:{towgs84:"-307,-92,127"},EPSG_4684:{towgs84:"-133,-321,50"},EPSG_4708:{towgs84:"-491,-22,435"},EPSG_4707:{towgs84:"114,-116,-333"},EPSG_4709:{towgs84:"145,75,-272"},EPSG_4712:{towgs84:"-205,107,53"},EPSG_4711:{towgs84:"124,-234,-25"},EPSG_4718:{towgs84:"230,-199,-752"},EPSG_4719:{towgs84:"211,147,111"},EPSG_4724:{towgs84:"208,-435,-229"},EPSG_4725:{towgs84:"189,-79,-202"},EPSG_4735:{towgs84:"647,1777,-1124"},EPSG_4722:{towgs84:"-794,119,-298"},EPSG_4728:{towgs84:"-307,-92,127"},EPSG_4734:{towgs84:"-632,438,-609"},EPSG_4727:{towgs84:"912,-58,1227"},EPSG_4729:{towgs84:"185,165,42"},EPSG_4730:{towgs84:"170,42,84"},EPSG_4733:{towgs84:"276,-57,149"},ESRI_37218:{towgs84:"230,-199,-752"},ESRI_37240:{towgs84:"-7,215,225"},ESRI_37221:{towgs84:"252,-209,-751"},ESRI_4305:{towgs84:"-123,-206,219"},ESRI_104139:{towgs84:"-73,-247,227"},EPSG_4748:{towgs84:"51,391,-36"},EPSG_4219:{towgs84:"-384,664,-48"},EPSG_4255:{towgs84:"-333,-222,114"},EPSG_4257:{towgs84:"-587.8,519.75,145.76"},EPSG_4646:{towgs84:"-963,510,-359"},EPSG_6881:{towgs84:"-24,-203,268"},EPSG_6882:{towgs84:"-183,-15,273"},EPSG_4715:{towgs84:"-104,-129,239"},IGNF_RGF93GDD:{towgs84:"0,0,0"},IGNF_RGM04GDD:{towgs84:"0,0,0"},IGNF_RGSPM06GDD:{towgs84:"0,0,0"},IGNF_RGTAAF07GDD:{towgs84:"0,0,0"},IGNF_RGFG95GDD:{towgs84:"0,0,0"},IGNF_RGNCG:{towgs84:"0,0,0"},IGNF_RGPFGDD:{towgs84:"0,0,0"},IGNF_ETRS89G:{towgs84:"0,0,0"},IGNF_RGR92GDD:{towgs84:"0,0,0"},EPSG_4173:{towgs84:"0,0,0"},EPSG_4180:{towgs84:"0,0,0"},EPSG_4619:{towgs84:"0,0,0"},EPSG_4667:{towgs84:"0,0,0"},EPSG_4075:{towgs84:"0,0,0"},EPSG_6706:{towgs84:"0,0,0"},EPSG_7798:{towgs84:"0,0,0"},EPSG_4661:{towgs84:"0,0,0"},EPSG_4669:{towgs84:"0,0,0"},EPSG_8685:{towgs84:"0,0,0"},EPSG_4151:{towgs84:"0,0,0"},EPSG_9702:{towgs84:"0,0,0"},EPSG_4758:{towgs84:"0,0,0"},EPSG_4761:{towgs84:"0,0,0"},EPSG_4765:{towgs84:"0,0,0"},EPSG_8997:{towgs84:"0,0,0"},EPSG_4023:{towgs84:"0,0,0"},EPSG_4670:{towgs84:"0,0,0"},EPSG_4694:{towgs84:"0,0,0"},EPSG_4148:{towgs84:"0,0,0"},EPSG_4163:{towgs84:"0,0,0"},EPSG_4167:{towgs84:"0,0,0"},EPSG_4189:{towgs84:"0,0,0"},EPSG_4190:{towgs84:"0,0,0"},EPSG_4176:{towgs84:"0,0,0"},EPSG_4659:{towgs84:"0,0,0"},EPSG_3824:{towgs84:"0,0,0"},EPSG_3889:{towgs84:"0,0,0"},EPSG_4046:{towgs84:"0,0,0"},EPSG_4081:{towgs84:"0,0,0"},EPSG_4558:{towgs84:"0,0,0"},EPSG_4483:{towgs84:"0,0,0"},EPSG_5013:{towgs84:"0,0,0"},EPSG_5264:{towgs84:"0,0,0"},EPSG_5324:{towgs84:"0,0,0"},EPSG_5354:{towgs84:"0,0,0"},EPSG_5371:{towgs84:"0,0,0"},EPSG_5373:{towgs84:"0,0,0"},EPSG_5381:{towgs84:"0,0,0"},EPSG_5393:{towgs84:"0,0,0"},EPSG_5489:{towgs84:"0,0,0"},EPSG_5593:{towgs84:"0,0,0"},EPSG_6135:{towgs84:"0,0,0"},EPSG_6365:{towgs84:"0,0,0"},EPSG_5246:{towgs84:"0,0,0"},EPSG_7886:{towgs84:"0,0,0"},EPSG_8431:{towgs84:"0,0,0"},EPSG_8427:{towgs84:"0,0,0"},EPSG_8699:{towgs84:"0,0,0"},EPSG_8818:{towgs84:"0,0,0"},EPSG_4757:{towgs84:"0,0,0"},EPSG_9140:{towgs84:"0,0,0"},EPSG_8086:{towgs84:"0,0,0"},EPSG_4686:{towgs84:"0,0,0"},EPSG_4737:{towgs84:"0,0,0"},EPSG_4702:{towgs84:"0,0,0"},EPSG_4747:{towgs84:"0,0,0"},EPSG_4749:{towgs84:"0,0,0"},EPSG_4674:{towgs84:"0,0,0"},EPSG_4755:{towgs84:"0,0,0"},EPSG_4759:{towgs84:"0,0,0"},EPSG_4762:{towgs84:"0,0,0"},EPSG_4763:{towgs84:"0,0,0"},EPSG_4764:{towgs84:"0,0,0"},EPSG_4166:{towgs84:"0,0,0"},EPSG_4170:{towgs84:"0,0,0"},EPSG_5546:{towgs84:"0,0,0"},EPSG_7844:{towgs84:"0,0,0"},EPSG_4818:{towgs84:"589,76,480"}};for(var hg in pg){var yg=pg[hg];yg.datumName&&(pg[yg.datumName]=yg)}var dg=pg;var mg=function(e,t,r,n,o,i,a){var s={};return s.datum_type=void 0===e||"none"===e?tv:ev,t&&(s.datum_params=t.map(parseFloat),0===s.datum_params[0]&&0===s.datum_params[1]&&0===s.datum_params[2]||(s.datum_type=Xm),s.datum_params.length>3&&(0===s.datum_params[3]&&0===s.datum_params[4]&&0===s.datum_params[5]&&0===s.datum_params[6]||(s.datum_type=Zm,s.datum_params[3]*=iv,s.datum_params[4]*=iv,s.datum_params[5]*=iv,s.datum_params[6]=s.datum_params[6]/1e6+1))),a&&(s.datum_type=$m,s.grids=a),s.a=r,s.b=n,s.es=o,s.ep2=i,s},vg={};function gg(e){if(0===e.length)return null;var t="@"===e[0];return t&&(e=e.slice(1)),"null"===e?{name:"null",mandatory:!t,grid:null,isNull:!0}:{name:e,mandatory:!t,grid:vg[e]||null,isNull:!1}}function bg(e){return e*Math.PI/180}function Ag(e){return e/3600*Math.PI/180}function wg(e,t,r){return String.fromCharCode.apply(null,new Uint8Array(e.buffer.slice(t,r)))}function Sg(e){return e.map(function(e){return[Ag(e.longitudeShift),Ag(e.latitudeShift)]})}function Cg(e,t,r){return{name:wg(e,t+8,t+16).trim(),parent:wg(e,t+24,t+24+8).trim(),lowerLatitude:e.getFloat64(t+72,r),upperLatitude:e.getFloat64(t+88,r),lowerLongitude:e.getFloat64(t+104,r),upperLongitude:e.getFloat64(t+120,r),latitudeInterval:e.getFloat64(t+136,r),longitudeInterval:e.getFloat64(t+152,r),gridNodeCount:e.getInt32(t+168,r)}}function Eg(e,t,r,n,o){var i=t+176,a=16;!1===o&&(a=8);for(var s=[],u=0;u-1.001*av)u=-av;else if(u>av&&u<1.001*av)u=av;else{if(u<-av)return{x:-1/0,y:-1/0,z:e.z};if(u>av)return{x:1/0,y:1/0,z:e.z}}return s>Math.PI&&(s-=2*Math.PI),o=Math.sin(u),a=Math.cos(u),i=o*o,{x:((n=r/Math.sqrt(1-t*i))+l)*a*Math.cos(s),y:(n+l)*a*Math.sin(s),z:(n*(1-t)+l)*o}}function Og(e,t,r,n){var o,i,a,s,u,l,c,f,p,h,y,d,m,v,g,b=e.x,A=e.y,w=e.z?e.z:0;if(o=Math.sqrt(b*b+A*A),i=Math.sqrt(b*b+A*A+w*w),o/r<1e-12){if(v=0,i/r<1e-12)return av,g=-n,{x:e.x,y:e.y,z:e.z}}else v=Math.atan2(A,b);a=w/i,f=(s=o/i)*(1-t)*(u=1/Math.sqrt(1-t*(2-t)*s*s)),p=a*u,m=0;do{m++,l=t*(c=r/Math.sqrt(1-t*p*p))/(c+(g=o*f+w*p-c*(1-t*p*p))),d=(y=a*(u=1/Math.sqrt(1-l*(2-l)*s*s)))*f-(h=s*(1-l)*u)*p,f=h,p=y}while(d*d>1e-24&&m<30);return{x:v,y:Math.atan(y/Math.abs(h)),z:g}}function kg(e){return e===Xm||e===Zm}function Pg(e,t,r){if(function(e,t){return e.datum_type===t.datum_type&&!(e.a!==t.a||Math.abs(e.es-t.es)>5e-11)&&(e.datum_type===Xm?e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]:e.datum_type!==Zm||e.datum_params[0]===t.datum_params[0]&&e.datum_params[1]===t.datum_params[1]&&e.datum_params[2]===t.datum_params[2]&&e.datum_params[3]===t.datum_params[3]&&e.datum_params[4]===t.datum_params[4]&&e.datum_params[5]===t.datum_params[5]&&e.datum_params[6]===t.datum_params[6])}(e,t))return r;if(e.datum_type===tv||t.datum_type===tv)return r;var n=e.a,o=e.es;if(e.datum_type===$m){if(0!==Tg(e,!1,r))return;n=rv,o=ov}var i=t.a,a=t.b,s=t.es;if(t.datum_type===$m&&(i=rv,a=nv,s=ov),o===s&&n===i&&!kg(e.datum_type)&&!kg(t.datum_type))return r;if((r=Ig(r,o,n),kg(e.datum_type)&&(r=function(e,t,r){if(t===Xm)return{x:e.x+r[0],y:e.y+r[1],z:e.z+r[2]};if(t===Zm){var n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],u=r[5],l=r[6];return{x:l*(e.x-u*e.y+s*e.z)+n,y:l*(u*e.x+e.y-a*e.z)+o,z:l*(-s*e.x+a*e.y+e.z)+i}}}(r,e.datum_type,e.datum_params)),kg(t.datum_type)&&(r=function(e,t,r){if(t===Xm)return{x:e.x-r[0],y:e.y-r[1],z:e.z-r[2]};if(t===Zm){var n=r[0],o=r[1],i=r[2],a=r[3],s=r[4],u=r[5],l=r[6],c=(e.x-n)/l,f=(e.y-o)/l,p=(e.z-i)/l;return{x:c+u*f-s*p,y:-u*c+f+a*p,z:s*c-a*f+p}}}(r,t.datum_type,t.datum_params)),r=Og(r,s,i,a),t.datum_type===$m)&&0!==Tg(t,!0,r))return;return r}function Tg(e,t,r){if(null===e.grids||0===e.grids.length)return console.log("Grid shift grids not found"),-1;var n={x:-r.x,y:r.y},o={x:Number.NaN,y:Number.NaN},i=[];e:for(var a=0;an.y||h>n.x||m1e-12&&Math.abs(a.y)>1e-12);if(u<0)return console.log("Inverse grid shift iterator failed to converge."),n;n.x=eg(i.x+r.ll[0]),n.y=i.y+r.ll[1]}else isNaN(i.x)||(n.x=e.x+i.x,n.y=e.y+i.y);return n}function Mg(e,t){var r,n={x:e.x/t.del[0],y:e.y/t.del[1]},o=Math.floor(n.x),i=Math.floor(n.y),a=n.x-1*o,s=n.y-1*i,u={x:Number.NaN,y:Number.NaN};if(o<0||o>=t.lim[0])return u;if(i<0||i>=t.lim[1])return u;r=i*t.lim[0]+o;var l=t.cvs[r][0],c=t.cvs[r][1];r++;var f=t.cvs[r][0],p=t.cvs[r][1];r+=t.lim[0];var h=t.cvs[r][0],y=t.cvs[r][1];r--;var d=t.cvs[r][0],m=t.cvs[r][1],v=a*s,g=a*(1-s),b=(1-a)*(1-s),A=(1-a)*s;return u.x=b*l+g*f+A*d+v*h,u.y=b*c+g*p+A*m+v*y,u}function Ng(e,t,r){var n,o,i,a=r.x,s=r.y,u=r.z||0,l={};for(i=0;i<3;i++)if(!t||2!==i||void 0!==r.z)switch(0===i?(n=a,o=-1!=="ew".indexOf(e.axis[i])?"x":"y"):1===i?(n=s,o=-1!=="ns".indexOf(e.axis[i])?"y":"x"):(n=u,o="z"),e.axis[i]){case"e":l[o]=n;break;case"w":l[o]=-n;break;case"n":l[o]=n;break;case"s":l[o]=-n;break;case"u":void 0!==r[o]&&(l.z=n);break;case"d":void 0!==r[o]&&(l.z=-n);break;default:return null}return l}function Bg(e){var t={x:e[0],y:e[1]};return e.length>2&&(t.z=e[2]),e.length>3&&(t.m=e[3]),t}function Lg(e){if("function"==typeof Number.isFinite){if(Number.isFinite(e))return;throw new TypeError("coordinates must be finite numbers")}if("number"!=typeof e||e!=e||!isFinite(e))throw new TypeError("coordinates must be finite numbers")}function Rg(e,t,r,n){var o,i=void 0!==(r=Array.isArray(r)?Bg(r):{x:r.x,y:r.y,z:r.z,m:r.m}).z;if(function(e){Lg(e.x),Lg(e.y)}(r),e.datum&&t.datum&&function(e,t){return(e.datum.datum_type===Xm||e.datum.datum_type===Zm||e.datum.datum_type===$m)&&"WGS84"!==t.datumCode||(t.datum.datum_type===Xm||t.datum.datum_type===Zm||t.datum.datum_type===$m)&&"WGS84"!==e.datumCode}(e,t)&&(r=Rg(e,o=new _g("WGS84"),r,n),e=o),n&&"enu"!==e.axis&&(r=Ng(e,!1,r)),"longlat"===e.projName)r={x:r.x*fv,y:r.y*fv,z:r.z||0};else if(e.to_meter&&(r={x:r.x*e.to_meter,y:r.y*e.to_meter,z:r.z||0}),!(r=e.inverse(r)))return;if(e.from_greenwich&&(r.x+=e.from_greenwich),r=Pg(e.datum,t.datum,r))return t.from_greenwich&&(r={x:r.x-t.from_greenwich,y:r.y,z:r.z||0}),"longlat"===t.projName?r={x:r.x*pv,y:r.y*pv,z:r.z||0}:(r=t.forward(r),t.to_meter&&(r={x:r.x/t.to_meter,y:r.y/t.to_meter,z:r.z||0})),n&&"enu"!==t.axis?Ng(t,!0,r):(r&&!i&&delete r.z,r)}var Dg=_g("WGS84");function Fg(e,t,r,n){var o,i,a;return Array.isArray(r)?(o=Rg(e,t,r,n)||{x:NaN,y:NaN},r.length>2?void 0!==e.name&&"geocent"===e.name||void 0!==t.name&&"geocent"===t.name?"number"==typeof o.z?[o.x,o.y,o.z].concat(r.slice(3)):[o.x,o.y,r[2]].concat(r.slice(3)):[o.x,o.y].concat(r.slice(2)):[o.x,o.y]):(i=Rg(e,t,r,n),2===(a=Object.keys(r)).length?i:(a.forEach(function(n){if(void 0!==e.name&&"geocent"===e.name||void 0!==t.name&&"geocent"===t.name){if("x"===n||"y"===n||"z"===n)return}else if("x"===n||"y"===n)return;i[n]=r[n]}),i))}function Qg(e){return e instanceof _g?e:e.oProj?e.oProj:_g(e)}var Gg=function(e,t,r){e=Qg(e);var n,o=!1;return void 0===t?(t=e,e=Dg,o=!0):(void 0!==t.x||Array.isArray(t))&&(r=t,t=e,e=Dg,o=!0),t=Qg(t),r?Fg(e,t,r):(n={forward:function(r,n){return Fg(e,t,r,n)},inverse:function(r,n){return Fg(t,e,r,n)}},o&&(n.oProj=t),n)},Ug=6,zg="AJSAJS",Hg="AFAFAF",qg=65,Vg=73,Kg=79,Yg=86,Wg=90,Jg={forward:Xg,inverse:function(e){var t=tb(nb(e.toUpperCase()));if(t.lat&&t.lon)return[t.lon,t.lat,t.lon,t.lat];return[t.left,t.bottom,t.right,t.top]},toPoint:Zg};function Xg(e,t){return t=t||5,function(e,t){var r="00000"+e.easting,n="00000"+e.northing;return e.zoneNumber+e.zoneLetter+(h=e.easting,y=e.northing,d=e.zoneNumber,m=rb(d),v=Math.floor(h/1e5),g=Math.floor(y/1e5)%20,o=v,i=g,a=m,s=a-1,u=zg.charCodeAt(s),l=Hg.charCodeAt(s),c=u+o-1,f=l+i,p=!1,c>Wg&&(c=c-Wg+qg-1,p=!0),(c===Vg||uVg||(c>Vg||uKg||(c>Kg||uWg&&(c=c-Wg+qg-1),f>Yg?(f=f-Yg+qg-1,p=!0):p=!1,(f===Vg||lVg||(f>Vg||lKg||(f>Kg||lYg&&(f=f-Yg+qg-1),String.fromCharCode(c)+String.fromCharCode(f))+r.substr(r.length-5,t)+n.substr(n.length-5,t);var o,i,a,s,u,l,c,f,p;var h,y,d,m,v,g}(function(e){var t,r,n,o,i,a,s,u=e.lat,l=e.lon,c=6378137,f=$g(u),p=$g(l);s=Math.floor((l+180)/6)+1,180===l&&(s=60);u>=56&&u<64&&l>=3&&l<12&&(s=32);u>=72&&u<84&&(l>=0&&l<9?s=31:l>=9&&l<21?s=33:l>=21&&l<33?s=35:l>=33&&l<42&&(s=37));a=$g(6*(s-1)-180+3),.006739496752268451,t=c/Math.sqrt(1-.00669438*Math.sin(f)*Math.sin(f)),r=Math.tan(f)*Math.tan(f),n=.006739496752268451*Math.cos(f)*Math.cos(f),o=Math.cos(f)*(p-a),i=c*(.9983242984503243*f-.002514607064228144*Math.sin(2*f)+2639046602129982e-21*Math.sin(4*f)-3.418046101696858e-9*Math.sin(6*f));var h=.9996*t*(o+(1-r+n)*o*o*o/6+(5-18*r+r*r+72*n-.39089081163157013)*o*o*o*o*o/120)+5e5,y=.9996*(i+t*Math.tan(f)*(o*o/2+(5-r+9*n+4*n*n)*o*o*o*o/24+(61-58*r+r*r+600*n-2.2240339282485886)*o*o*o*o*o*o/720));u<0&&(y+=1e7);return{northing:Math.round(y),easting:Math.round(h),zoneNumber:s,zoneLetter:function(e){var t="Z";84>=e&&e>=72?t="X":72>e&&e>=64?t="W":64>e&&e>=56?t="V":56>e&&e>=48?t="U":48>e&&e>=40?t="T":40>e&&e>=32?t="S":32>e&&e>=24?t="R":24>e&&e>=16?t="Q":16>e&&e>=8?t="P":8>e&&e>=0?t="N":0>e&&e>=-8?t="M":-8>e&&e>=-16?t="L":-16>e&&e>=-24?t="K":-24>e&&e>=-32?t="J":-32>e&&e>=-40?t="H":-40>e&&e>=-48?t="G":-48>e&&e>=-56?t="F":-56>e&&e>=-64?t="E":-64>e&&e>=-72?t="D":-72>e&&e>=-80&&(t="C");return t}(u)}}({lat:e[1],lon:e[0]}),t)}function Zg(e){var t=tb(nb(e.toUpperCase()));return t.lat&&t.lon?[t.lon,t.lat]:[(t.left+t.right)/2,(t.top+t.bottom)/2]}function $g(e){return e*(Math.PI/180)}function eb(e){return e/Math.PI*180}function tb(e){var t=e.northing,r=e.easting,n=e.zoneLetter,o=e.zoneNumber;if(o<0||o>60)return null;var i,a,s,u,l,c,f,p,h=6378137,y=(1-Math.sqrt(.99330562))/(1+Math.sqrt(.99330562)),d=r-5e5,m=t;n<"N"&&(m-=1e7),c=6*(o-1)-180+3,p=(f=m/.9996/6367449.145945056)+(3*y/2-27*y*y*y/32)*Math.sin(2*f)+(21*y*y/16-55*y*y*y*y/32)*Math.sin(4*f)+151*y*y*y/96*Math.sin(6*f),i=h/Math.sqrt(1-.00669438*Math.sin(p)*Math.sin(p)),a=Math.tan(p)*Math.tan(p),s=.006739496752268451*Math.cos(p)*Math.cos(p),u=.99330562*h/Math.pow(1-.00669438*Math.sin(p)*Math.sin(p),1.5),l=d/(.9996*i);var v=p-i*Math.tan(p)/u*(l*l/2-(5+3*a+10*s-4*s*s-.06065547077041606)*l*l*l*l/24+(61+90*a+298*s+45*a*a-1.6983531815716497-3*s*s)*l*l*l*l*l*l/720);v=eb(v);var g,b=(l-(1+2*a+s)*l*l*l/6+(5-2*s+28*a-3*s*s+.05391597401814761+24*a*a)*l*l*l*l*l/120)/Math.cos(p);if(b=c+eb(b),e.accuracy){var A=tb({northing:e.northing+e.accuracy,easting:e.easting+e.accuracy,zoneLetter:e.zoneLetter,zoneNumber:e.zoneNumber});g={top:A.lat,right:A.lon,bottom:v,left:b}}else g={lat:v,lon:b};return g}function rb(e){var t=e%Ug;return 0===t&&(t=Ug),t}function nb(e){if(e&&0===e.length)throw"MGRSPoint coverting from nothing";for(var t,r=e.length,n=null,o="",i=0;!/[A-Z]/.test(t=e.charAt(i));){if(i>=2)throw"MGRSPoint bad conversion from: "+e;o+=t,i++}var a=parseInt(o,10);if(0===i||i+3>r)throw"MGRSPoint bad conversion from: "+e;var s=e.charAt(i++);if(s<="A"||"B"===s||"Y"===s||s>="Z"||"I"===s||"O"===s)throw"MGRSPoint zone letter "+s+" not handled: "+e;n=e.substring(i,i+=2);for(var u=rb(a),l=function(e,t){var r=zg.charCodeAt(t-1),n=1e5,o=!1;for(;r!==e.charCodeAt(0);){if(++r===Vg&&r++,r===Kg&&r++,r>Wg){if(o)throw"Bad character: "+e;r=qg,o=!0}n+=1e5}return n}(n.charAt(0),u),c=function(e,t){if(e>"V")throw"MGRSPoint given invalid Northing "+e;var r=Hg.charCodeAt(t-1),n=0,o=!1;for(;r!==e.charCodeAt(0);){if(++r===Vg&&r++,r===Kg&&r++,r>Yg){if(o)throw"Bad character: "+e;r=qg,o=!0}n+=1e5}return n}(n.charAt(1),u);c0&&(p=1e5/Math.pow(10,d),h=e.substring(i,i+d),m=parseFloat(h)*p,y=e.substring(i+d),v=parseFloat(y)*p),{easting:m+l,northing:v+c,zoneLetter:s,zoneNumber:a,accuracy:p}}function ob(e){var t;switch(e){case"C":t=11e5;break;case"D":t=2e6;break;case"E":t=28e5;break;case"F":t=37e5;break;case"G":t=46e5;break;case"H":t=55e5;break;case"J":t=64e5;break;case"K":t=73e5;break;case"L":t=82e5;break;case"M":t=91e5;break;case"N":t=0;break;case"P":t=8e5;break;case"Q":t=17e5;break;case"R":t=26e5;break;case"S":t=35e5;break;case"T":t=44e5;break;case"U":t=53e5;break;case"V":t=62e5;break;case"W":t=7e6;break;case"X":t=79e5;break;default:t=-1}if(t>=0)return t;throw"Invalid zone letter: "+e}function ib(e,t,r){if(!(this instanceof ib))return new ib(e,t,r);if(Array.isArray(e))this.x=e[0],this.y=e[1],this.z=e[2]||0;else if("object"==typeof e)this.x=e.x,this.y=e.y,this.z=e.z||0;else if("string"==typeof e&&void 0===t){var n=e.split(",");this.x=parseFloat(n[0],10),this.y=parseFloat(n[1],10),this.z=parseFloat(n[2],10)||0}else this.x=e,this.y=t,this.z=r||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}ib.fromMGRS=function(e){return new ib(Zg(e))},ib.prototype.toMGRS=function(e){return Xg([this.x,this.y],e)};var ab=ib,sb=1,ub=.25,lb=.046875,cb=.01953125,fb=.01068115234375,pb=.75,hb=.46875,yb=.013020833333333334,db=.007120768229166667,mb=.3645833333333333,vb=.005696614583333333,gb=.3076171875;function bb(e){var t=[];t[0]=sb-e*(ub+e*(lb+e*(cb+e*fb))),t[1]=e*(pb-e*(lb+e*(cb+e*fb)));var r=e*e;return t[2]=r*(hb-e*(yb+e*db)),r*=e,t[3]=r*(mb-e*vb),t[4]=r*e*gb,t}function Ab(e,t,r,n){return r*=t,t*=t,n[0]*e-r*(n[1]+t*(n[2]+t*(n[3]+t*n[4])))}var wb=20;function Sb(e,t,r){for(var n=1/(1-t),o=e,i=wb;i;--i){var a=Math.sin(o),s=1-t*a*a;if(o-=s=(Ab(o,a,Math.cos(o),r)-e)*(s*Math.sqrt(s))*n,Math.abs(s)cv?Math.tan(i):0,y=Math.pow(h,2),d=Math.pow(y,2);t=1-this.es*Math.pow(s,2),l/=Math.sqrt(t);var m=Ab(i,s,u,this.en);r=this.a*(this.k0*l*(1+c/6*(1-y+f+c/20*(5-18*y+d+14*f-58*y*f+c/42*(61+179*d-d*y-479*y)))))+this.x0,n=this.a*(this.k0*(m-this.ml0+s*a*l/2*(1+c/12*(5-y+9*f+4*p+c/30*(61+d-58*y+270*f-330*y*f+c/56*(1385+543*d-d*y-3111*y))))))+this.y0}else{var v=u*Math.sin(a);if(Math.abs(Math.abs(v)-1)=1){if(v-1>cv)return 93;n=0}else n=Math.acos(n);i<0&&(n=-n),n=this.a*this.k0*(n-this.lat0)+this.y0}return e.x=r,e.y=n,e},inverse:function(e){var t,r,n,o,i=(e.x-this.x0)*(1/this.a),a=(e.y-this.y0)*(1/this.a);if(this.es)if(r=Sb(t=this.ml0+a/this.k0,this.es,this.en),Math.abs(r)cv?Math.tan(r):0,c=this.ep2*Math.pow(u,2),f=Math.pow(c,2),p=Math.pow(l,2),h=Math.pow(p,2);t=1-this.es*Math.pow(s,2);var y=i*Math.sqrt(t)/this.k0,d=Math.pow(y,2);n=r-(t*=l)*d/(1-this.es)*.5*(1-d/12*(5+3*p-9*c*p+c-4*f-d/30*(61+90*p-252*c*p+45*h+46*c-d/56*(1385+3633*p+4095*h+1574*h*p)))),o=eg(this.long0+y*(1-d/6*(1+2*p+c-d/20*(5+28*p+24*h+8*c*p+6*c-d/42*(61+662*p+1320*h+720*h*p))))/u)}else n=av*$v(a),o=0;else{var m=Math.exp(i/this.k0),v=.5*(m-1/m),g=this.lat0+a/this.k0,b=Math.cos(g);t=Math.sqrt((1-Math.pow(b,2))/(1+Math.pow(v,2))),n=Math.asin(t),a<0&&(n=-n),o=0===v&&0===b?0:eg(Math.atan2(v,b)+this.long0)}return e.x=o,e.y=n,e},names:["Fast_Transverse_Mercator","Fast Transverse Mercator"]};function Eb(e){var t=Math.exp(e);return t=(t-1/t)/2}function xb(e,t){e=Math.abs(e),t=Math.abs(t);var r=Math.max(e,t),n=Math.min(e,t)/(r||1);return r*Math.sqrt(1+Math.pow(n,2))}function _b(e){var t=Math.abs(e);return t=function(e){var t=1+e,r=t-1;return 0===r?e:e*Math.log(t)/r}(t*(1+t/(xb(1,t)+1))),e<0?-t:t}function Ib(e,t){for(var r,n=2*Math.cos(2*t),o=e.length-1,i=e[o],a=0;--o>=0;)r=n*i-a+e[o],a=i,i=r;return t+r*Math.sin(2*t)}function Ob(e,t,r){for(var n,o,i=Math.sin(t),a=Math.cos(t),s=Eb(r),u=function(e){var t=Math.exp(e);return t=(t+1/t)/2}(r),l=2*a*u,c=-2*i*s,f=e.length-1,p=e[f],h=0,y=0,d=0;--f>=0;)n=y,o=h,p=l*(y=p)-n-c*(h=d)+e[f],d=c*y-o+l*h;return[(l=i*u)*p-(c=a*s)*d,l*d+c*p]}var kb={init:function(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(Cb.init.apply(this),this.forward=Cb.forward,this.inverse=Cb.inverse),this.x0=void 0!==this.x0?this.x0:0,this.y0=void 0!==this.y0?this.y0:0,this.long0=void 0!==this.long0?this.long0:0,this.lat0=void 0!==this.lat0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var e=this.es/(1+Math.sqrt(1-this.es)),t=e/(2-e),r=t;this.cgb[0]=t*(2+t*(-2/3+t*(t*(116/45+t*(26/45+t*(-2854/675)))-2))),this.cbg[0]=t*(t*(2/3+t*(4/3+t*(-82/45+t*(32/45+t*(4642/4725)))))-2),r*=t,this.cgb[1]=r*(7/3+t*(t*(-227/45+t*(2704/315+t*(2323/945)))-1.6)),this.cbg[1]=r*(5/3+t*(-16/15+t*(-13/9+t*(904/315+t*(-1522/945))))),r*=t,this.cgb[2]=r*(56/15+t*(-136/35+t*(-1262/105+t*(73814/2835)))),this.cbg[2]=r*(-26/15+t*(34/21+t*(1.6+t*(-12686/2835)))),r*=t,this.cgb[3]=r*(4279/630+t*(-332/35+t*(-399572/14175))),this.cbg[3]=r*(1237/630+t*(t*(-24832/14175)-2.4)),r*=t,this.cgb[4]=r*(4174/315+t*(-144838/6237)),this.cbg[4]=r*(-734/315+t*(109598/31185)),r*=t,this.cgb[5]=r*(601676/22275),this.cbg[5]=r*(444337/155925),r=Math.pow(t,2),this.Qn=this.k0/(1+t)*(1+r*(.25+r*(1/64+r/256))),this.utg[0]=t*(t*(2/3+t*(-37/96+t*(1/360+t*(81/512+t*(-96199/604800)))))-.5),this.gtu[0]=t*(.5+t*(-2/3+t*(5/16+t*(41/180+t*(-127/288+t*(7891/37800)))))),this.utg[1]=r*(-1/48+t*(-1/15+t*(437/1440+t*(-46/105+t*(1118711/3870720))))),this.gtu[1]=r*(13/48+t*(t*(557/1440+t*(281/630+t*(-1983433/1935360)))-.6)),r*=t,this.utg[2]=r*(-17/480+t*(37/840+t*(209/4480+t*(-5569/90720)))),this.gtu[2]=r*(61/240+t*(-103/140+t*(15061/26880+t*(167603/181440)))),r*=t,this.utg[3]=r*(-4397/161280+t*(11/504+t*(830251/7257600))),this.gtu[3]=r*(49561/161280+t*(-179/168+t*(6601661/7257600))),r*=t,this.utg[4]=r*(-4583/161280+t*(108847/3991680)),this.gtu[4]=r*(34729/80640+t*(-3418889/1995840)),r*=t,this.utg[5]=-.03233083094085698*r,this.gtu[5]=.6650675310896665*r;var n=Ib(this.cbg,this.lat0);this.Zb=-this.Qn*(n+function(e,t){for(var r,n=2*Math.cos(t),o=e.length-1,i=e[o],a=0;--o>=0;)r=n*i-a+e[o],a=i,i=r;return Math.sin(t)*r}(this.gtu,2*n))},forward:function(e){var t=eg(e.x-this.long0),r=e.y;r=Ib(this.cbg,r);var n=Math.sin(r),o=Math.cos(r),i=Math.sin(t),a=Math.cos(t);r=Math.atan2(n,a*o),t=Math.atan2(i*o,xb(n,o*a)),t=_b(Math.tan(t));var s,u,l=Ob(this.gtu,2*r,2*t);return r+=l[0],t+=l[1],Math.abs(t)<=2.623395162778?(s=this.a*(this.Qn*t)+this.x0,u=this.a*(this.Qn*r+this.Zb)+this.y0):(s=1/0,u=1/0),e.x=s,e.y=u,e},inverse:function(e){var t,r,n=(e.x-this.x0)*(1/this.a),o=(e.y-this.y0)*(1/this.a);if(o=(o-this.Zb)/this.Qn,n/=this.Qn,Math.abs(n)<=2.623395162778){var i=Ob(this.utg,2*o,2*n);o+=i[0],n+=i[1],n=Math.atan(Eb(n));var a=Math.sin(o),s=Math.cos(o),u=Math.sin(n),l=Math.cos(n);o=Math.atan2(a*l,xb(u,l*s)),t=eg((n=Math.atan2(u,l*s))+this.long0),r=Ib(this.cgb,o)}else t=1/0,r=1/0;return e.x=t,e.y=r,e},names:["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"]};var Pb={init:function(){var e=function(e,t){if(void 0===e){if((e=Math.floor(30*(eg(t)+Math.PI)/Math.PI)+1)<0)return 0;if(e>60)return 60}return e}(this.zone,this.long0);if(void 0===e)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(e)-183)*fv,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,kb.init.apply(this),this.forward=kb.forward,this.inverse=kb.inverse},names:["Universal Transverse Mercator System","utm"],dependsOn:"etmerc"};function Tb(e,t){return Math.pow((1-e)/(1+e),t)}var jb=20;var Mb={init:function(){var e=Math.sin(this.lat0),t=Math.cos(this.lat0);t*=t,this.rc=Math.sqrt(1-this.es)/(1-this.es*e*e),this.C=Math.sqrt(1+this.es*t*t/(1-this.es)),this.phic0=Math.asin(e/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+hv)/(Math.pow(Math.tan(.5*this.lat0+hv),this.C)*Tb(this.e*e,this.ratexp))},forward:function(e){var t=e.x,r=e.y;return e.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*r+hv),this.C)*Tb(this.e*Math.sin(r),this.ratexp))-av,e.x=this.C*t,e},inverse:function(e){for(var t=e.x/this.C,r=e.y,n=Math.pow(Math.tan(.5*r+hv)/this.K,1/this.C),o=jb;o>0&&(r=2*Math.atan(n*Tb(this.e*Math.sin(e.y),-.5*this.e))-av,!(Math.abs(r-e.y)<1e-14));--o)e.y=r;return o?(e.x=t,e.y=r,e):null},names:["gauss"]};var Nb={init:function(){Mb.init.apply(this),this.rc&&(this.sinc0=Math.sin(this.phic0),this.cosc0=Math.cos(this.phic0),this.R2=2*this.rc,this.title||(this.title="Oblique Stereographic Alternative"))},forward:function(e){var t,r,n,o;return e.x=eg(e.x-this.long0),Mb.forward.apply(this,[e]),t=Math.sin(e.y),r=Math.cos(e.y),n=Math.cos(e.x),o=this.k0*this.R2/(1+this.sinc0*t+this.cosc0*r*n),e.x=o*r*Math.sin(e.x),e.y=o*(this.cosc0*t-this.sinc0*r*n),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e},inverse:function(e){var t,r,n,o,i;if(e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,e.x/=this.k0,e.y/=this.k0,i=xb(e.x,e.y)){var a=2*Math.atan2(i,this.R2);t=Math.sin(a),r=Math.cos(a),o=Math.asin(r*this.sinc0+e.y*t*this.cosc0/i),n=Math.atan2(e.x*t,i*this.cosc0*r-e.y*this.sinc0*t)}else o=this.phic0,n=0;return e.x=n,e.y=o,Mb.inverse.apply(this,[e]),e.x=eg(e.x+this.long0),e},names:["Stereographic_North_Pole","Oblique_Stereographic","sterea","Oblique Stereographic Alternative","Double_Stereographic"]};var Bb={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.coslat0=Math.cos(this.lat0),this.sinlat0=Math.sin(this.lat0),this.sphere?1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=cv&&(this.k0=.5*(1+$v(this.lat0)*Math.sin(this.lat_ts))):(Math.abs(this.coslat0)<=cv&&(this.lat0>0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),1===this.k0&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=cv&&Math.abs(Math.cos(this.lat_ts))>cv&&(this.k0=.5*this.cons*Zv(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/tg(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=Zv(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-av,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))},forward:function(e){var t,r,n,o,i,a,s=e.x,u=e.y,l=Math.sin(u),c=Math.cos(u),f=eg(s-this.long0);return Math.abs(Math.abs(s-this.long0)-Math.PI)<=cv&&Math.abs(u+this.lat0)<=cv?(e.x=NaN,e.y=NaN,e):this.sphere?(t=2*this.k0/(1+this.sinlat0*l+this.coslat0*c*Math.cos(f)),e.x=this.a*t*c*Math.sin(f)+this.x0,e.y=this.a*t*(this.coslat0*l-this.sinlat0*c*Math.cos(f))+this.y0,e):(r=2*Math.atan(this.ssfn_(u,l,this.e))-av,o=Math.cos(r),n=Math.sin(r),Math.abs(this.coslat0)<=cv?(i=tg(this.e,u*this.con,this.con*l),a=2*this.a*this.k0*i/this.cons,e.x=this.x0+a*Math.sin(s-this.long0),e.y=this.y0-this.con*a*Math.cos(s-this.long0),e):(Math.abs(this.sinlat0)0?eg(this.long0+Math.atan2(e.x,-1*e.y)):eg(this.long0+Math.atan2(e.x,e.y)):eg(this.long0+Math.atan2(e.x*Math.sin(s),a*this.coslat0*Math.cos(s)-e.y*this.sinlat0*Math.sin(s))),e.x=t,e.y=r,e)}if(Math.abs(this.coslat0)<=cv){if(a<=cv)return r=this.lat0,t=this.long0,e.x=t,e.y=r,e;e.x*=this.con,e.y*=this.con,n=a*this.cons/(2*this.a*this.k0),r=this.con*rg(this.e,n),t=this.con*eg(this.con*this.long0+Math.atan2(e.x,-1*e.y))}else o=2*Math.atan(a*this.cosX0/(2*this.a*this.k0*this.ms1)),t=this.long0,a<=cv?i=this.X0:(i=Math.asin(Math.cos(o)*this.sinX0+e.y*Math.sin(o)*this.cosX0/a),t=eg(this.long0+Math.atan2(e.x*Math.sin(o),a*this.cosX0*Math.cos(o)-e.y*this.sinX0*Math.sin(o)))),r=-1*rg(this.e,Math.tan(.5*(av+i)));return e.x=t,e.y=r,e},names:["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"],ssfn_:function(e,t,r){return t*=r,Math.tan(.5*(av+e))*Math.pow((1-t)/(1+t),.5*r)}};var Lb={init:function(){var e=this.lat0;this.lambda0=this.long0;var t=Math.sin(e),r=this.a,n=1/this.rf,o=2*n-Math.pow(n,2),i=this.e=Math.sqrt(o);this.R=this.k0*r*Math.sqrt(1-o)/(1-o*Math.pow(t,2)),this.alpha=Math.sqrt(1+o/(1-o)*Math.pow(Math.cos(e),4)),this.b0=Math.asin(t/this.alpha);var a=Math.log(Math.tan(Math.PI/4+this.b0/2)),s=Math.log(Math.tan(Math.PI/4+e/2)),u=Math.log((1+i*t)/(1-i*t));this.K=a-this.alpha*s+this.alpha*i/2*u},forward:function(e){var t=Math.log(Math.tan(Math.PI/4-e.y/2)),r=this.e/2*Math.log((1+this.e*Math.sin(e.y))/(1-this.e*Math.sin(e.y))),n=-this.alpha*(t+r)+this.K,o=2*(Math.atan(Math.exp(n))-Math.PI/4),i=this.alpha*(e.x-this.lambda0),a=Math.atan(Math.sin(i)/(Math.sin(this.b0)*Math.tan(o)+Math.cos(this.b0)*Math.cos(i))),s=Math.asin(Math.cos(this.b0)*Math.sin(o)-Math.sin(this.b0)*Math.cos(o)*Math.cos(i));return e.y=this.R/2*Math.log((1+Math.sin(s))/(1-Math.sin(s)))+this.y0,e.x=this.R*a+this.x0,e},inverse:function(e){for(var t=e.x-this.x0,r=e.y-this.y0,n=t/this.R,o=2*(Math.atan(Math.exp(r/this.R))-Math.PI/4),i=Math.asin(Math.cos(this.b0)*Math.sin(o)+Math.sin(this.b0)*Math.cos(o)*Math.cos(n)),a=Math.atan(Math.sin(n)/(Math.cos(this.b0)*Math.cos(n)-Math.sin(this.b0)*Math.tan(o))),s=this.lambda0+a/this.alpha,u=0,l=i,c=-1e3,f=0;Math.abs(l-c)>1e-7;){if(++f>20)return;u=1/this.alpha*(Math.log(Math.tan(Math.PI/4+i/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(l))/2)),c=l,l=2*Math.atan(Math.exp(u))-Math.PI/2}return e.x=s,e.y=l,e},names:["somerc"]},Rb=1e-7;var Db={init:function(){var e,t,r,n,o,i,a,s,u,l,c,f,p,h,y=0,d=0,m=0,v=0,g=0,b=0,A=0;this.no_off=(p=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],h="object"==typeof(f=this).projName?Object.keys(f.projName)[0]:f.projName,"no_uoff"in f||"no_off"in f||-1!==p.indexOf(h)||-1!==p.indexOf(ug(h))),this.no_rot="no_rot"in this;var w=!1;"alpha"in this&&(w=!0);var S=!1;if("rectified_grid_angle"in this&&(S=!0),w&&(A=this.alpha),S&&(y=this.rectified_grid_angle),w||S)d=this.longc;else if(m=this.long1,g=this.lat1,v=this.long2,b=this.lat2,Math.abs(g-b)<=Rb||(e=Math.abs(g))<=Rb||Math.abs(e-av)<=Rb||Math.abs(Math.abs(this.lat0)-av)<=Rb||Math.abs(Math.abs(b)-av)<=Rb)throw new Error;var C=1-this.es;t=Math.sqrt(C),Math.abs(this.lat0)>cv?(s=Math.sin(this.lat0),r=Math.cos(this.lat0),e=1-this.es*s*s,this.B=r*r,this.B=Math.sqrt(1+this.es*this.B*this.B/C),this.A=this.B*this.k0*t/e,(o=(n=this.B*t/(r*Math.sqrt(e)))*n-1)<=0?o=0:(o=Math.sqrt(o),this.lat0<0&&(o=-o)),this.E=o+=n,this.E*=Math.pow(tg(this.e,this.lat0,s),this.B)):(this.B=1/t,this.A=this.k0,this.E=n=o=1),w||S?(w?(c=Math.asin(Math.sin(A)/n),S||(y=A)):(c=y,A=Math.asin(n*Math.sin(c))),this.lam0=d-Math.asin(.5*(o-1/o)*Math.tan(c))/this.B):(i=Math.pow(tg(this.e,g,Math.sin(g)),this.B),a=Math.pow(tg(this.e,b,Math.sin(b)),this.B),o=this.E/i,u=(a-i)/(a+i),l=((l=this.E*this.E)-a*i)/(l+a*i),(e=m-v)<-Math.pi?v-=yv:e>Math.pi&&(v+=yv),this.lam0=eg(.5*(m+v)-Math.atan(l*Math.tan(.5*this.B*(m-v))/u)/this.B),c=Math.atan(2*Math.sin(this.B*eg(m-this.lam0))/(o-1/o)),y=A=Math.asin(n*Math.sin(c))),this.singam=Math.sin(c),this.cosgam=Math.cos(c),this.sinrot=Math.sin(y),this.cosrot=Math.cos(y),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(n*n-1)/Math.cos(A))),this.lat0<0&&(this.u_0=-this.u_0)),o=.5*c,this.v_pole_n=this.ArB*Math.log(Math.tan(hv-o)),this.v_pole_s=this.ArB*Math.log(Math.tan(hv+o))},forward:function(e){var t,r,n,o,i,a,s,u,l={};if(e.x=e.x-this.lam0,Math.abs(Math.abs(e.y)-av)>cv){if(t=.5*((i=this.E/Math.pow(tg(this.e,e.y,Math.sin(e.y)),this.B))-(a=1/i)),r=.5*(i+a),o=Math.sin(this.B*e.x),n=(t*this.singam-o*this.cosgam)/r,Math.abs(Math.abs(n)-1)0?this.v_pole_n:this.v_pole_s,s=this.ArB*e.y;return this.no_rot?(l.x=s,l.y=u):(s-=this.u_0,l.x=u*this.cosrot+s*this.sinrot,l.y=s*this.cosrot-u*this.sinrot),l.x=this.a*l.x+this.x0,l.y=this.a*l.y+this.y0,l},inverse:function(e){var t,r,n,o,i,a,s,u={};if(e.x=(e.x-this.x0)*(1/this.a),e.y=(e.y-this.y0)*(1/this.a),this.no_rot?(r=e.y,t=e.x):(r=e.x*this.cosrot-e.y*this.sinrot,t=e.y*this.cosrot+e.x*this.sinrot+this.u_0),o=.5*((n=Math.exp(-this.BrA*r))-1/n),i=.5*(n+1/n),s=((a=Math.sin(this.BrA*t))*this.cosgam+o*this.singam)/i,Math.abs(Math.abs(s)-1)cv?this.ns=Math.log(n/s)/Math.log(o/u):this.ns=t,isNaN(this.ns)&&(this.ns=t),this.f0=n/(this.ns*Math.pow(o,this.ns)),this.rh=this.a*this.f0*Math.pow(l,this.ns),this.title||(this.title="Lambert Conformal Conic")}},forward:function(e){var t=e.x,r=e.y;Math.abs(2*Math.abs(r)-Math.PI)<=cv&&(r=$v(r)*(av-2*cv));var n,o,i=Math.abs(Math.abs(r)-av);if(i>cv)n=tg(this.e,r,Math.sin(r)),o=this.a*this.f0*Math.pow(n,this.ns);else{if((i=r*this.ns)<=0)return null;o=0}var a=this.ns*eg(t-this.long0);return e.x=this.k0*(o*Math.sin(a))+this.x0,e.y=this.k0*(this.rh-o*Math.cos(a))+this.y0,e},inverse:function(e){var t,r,n,o,i,a=(e.x-this.x0)/this.k0,s=this.rh-(e.y-this.y0)/this.k0;this.ns>0?(t=Math.sqrt(a*a+s*s),r=1):(t=-Math.sqrt(a*a+s*s),r=-1);var u=0;if(0!==t&&(u=Math.atan2(r*a,r*s)),0!==t||this.ns>0){if(r=1/this.ns,n=Math.pow(t/(this.a*this.f0),r),-9999===(o=rg(this.e,n)))return null}else o=-av;return i=eg(u/this.ns+this.long0),e.x=i,e.y=o,e},names:["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"]};var Qb={init:function(){this.a=6377397.155,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.4334234309119251),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq},forward:function(e){var t,r,n,o,i,a,s,u=e.x,l=e.y,c=eg(u-this.long0);return t=Math.pow((1+this.e*Math.sin(l))/(1-this.e*Math.sin(l)),this.alfa*this.e/2),r=2*(Math.atan(this.k*Math.pow(Math.tan(l/2+this.s45),this.alfa)/t)-this.s45),n=-c*this.alfa,o=Math.asin(Math.cos(this.ad)*Math.sin(r)+Math.sin(this.ad)*Math.cos(r)*Math.cos(n)),i=Math.asin(Math.cos(r)*Math.sin(n)/Math.cos(o)),a=this.n*i,s=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(o/2+this.s45),this.n),e.y=s*Math.cos(a)/1,e.x=s*Math.sin(a)/1,this.czech||(e.y*=-1,e.x*=-1),e},inverse:function(e){var t,r,n,o,i,a,s,u=e.x;e.x=e.y,e.y=u,this.czech||(e.y*=-1,e.x*=-1),i=Math.sqrt(e.x*e.x+e.y*e.y),o=Math.atan2(e.y,e.x)/Math.sin(this.s0),n=2*(Math.atan(Math.pow(this.ro0/i,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),t=Math.asin(Math.cos(this.ad)*Math.sin(n)-Math.sin(this.ad)*Math.cos(n)*Math.cos(o)),r=Math.asin(Math.cos(n)*Math.sin(o)/Math.cos(t)),e.x=this.long0-r/this.alfa,a=t,s=0;var l=0;do{e.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(t/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(a))/(1-this.e*Math.sin(a)),this.e/2))-this.s45),Math.abs(a-e.y)<1e-10&&(s=1),a=e.y,l+=1}while(0===s&&l<15);return l>=15?null:e},names:["Krovak","krovak"]};function Gb(e,t,r,n,o){return e*o-t*Math.sin(2*o)+r*Math.sin(4*o)-n*Math.sin(6*o)}function Ub(e){return 1-.25*e*(1+e/16*(3+1.25*e))}function zb(e){return.375*e*(1+.25*e*(1+.46875*e))}function Hb(e){return.05859375*e*e*(1+.75*e)}function qb(e){return e*e*e*(35/3072)}function Vb(e,t,r){var n=t*r;return e/Math.sqrt(1-n*n)}function Kb(e){return Math.abs(e)1e-7?(1-e*e)*(t/(1-(r=e*t)*r)-.5/e*Math.log((1-r)/(1+r))):2*t}var Xb=.3333333333333333,Zb=.17222222222222222,$b=.10257936507936508,eA=.06388888888888888,tA=.0664021164021164,rA=.016415012942191543;var nA={init:function(){var e,t=Math.abs(this.lat0);if(Math.abs(t-av)0)switch(this.qp=Jb(this.e,1),this.mmf=.5/(1-this.es),this.apa=function(e){var t,r=[];return r[0]=e*Xb,t=e*e,r[0]+=t*Zb,r[1]=t*eA,t*=e,r[0]+=t*$b,r[1]+=t*tA,r[2]=t*rA,r}(this.es),this.mode){case this.N_POLE:case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp),e=Math.sin(this.lat0),this.sinb1=Jb(this.e,e)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*e*e)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd}else this.mode===this.OBLIQ&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))},forward:function(e){var t,r,n,o,i,a,s,u,l,c,f=e.x,p=e.y;if(f=eg(f-this.long0),this.sphere){if(i=Math.sin(p),c=Math.cos(p),n=Math.cos(f),this.mode===this.OBLIQ||this.mode===this.EQUIT){if((r=this.mode===this.EQUIT?1+c*n:1+this.sinph0*i+this.cosph0*c*n)<=cv)return null;t=(r=Math.sqrt(2/r))*c*Math.sin(f),r*=this.mode===this.EQUIT?i:this.cosph0*i-this.sinph0*c*n}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(n=-n),Math.abs(p+this.lat0)=0?(t=(l=Math.sqrt(a))*o,r=n*(this.mode===this.S_POLE?l:-l)):t=r=0}}return e.x=this.a*t+this.x0,e.y=this.a*r+this.y0,e},inverse:function(e){e.x-=this.x0,e.y-=this.y0;var t,r,n,o,i,a,s,u,l,c,f=e.x/this.a,p=e.y/this.a;if(this.sphere){var h,y=0,d=0;if((r=.5*(h=Math.sqrt(f*f+p*p)))>1)return null;switch(r=2*Math.asin(r),this.mode!==this.OBLIQ&&this.mode!==this.EQUIT||(d=Math.sin(r),y=Math.cos(r)),this.mode){case this.EQUIT:r=Math.abs(h)<=cv?0:Math.asin(p*d/h),f*=d,p=y*h;break;case this.OBLIQ:r=Math.abs(h)<=cv?this.lat0:Math.asin(y*this.sinph0+p*d*this.cosph0/h),f*=d*this.cosph0,p=(y-Math.sin(r)*this.sinph0)*h;break;case this.N_POLE:p=-p,r=av-r;break;case this.S_POLE:r-=av}t=0!==p||this.mode!==this.EQUIT&&this.mode!==this.OBLIQ?Math.atan2(f,p):0}else{if(s=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(f/=this.dd,p*=this.dd,(a=Math.sqrt(f*f+p*p))1&&(e=e>1?1:-1),Math.asin(e)}var iA={init:function(){Math.abs(this.lat1+this.lat2)cv?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)},forward:function(e){var t=e.x,r=e.y;this.sin_phi=Math.sin(r),this.cos_phi=Math.cos(r);var n=Jb(this.e3,this.sin_phi),o=this.a*Math.sqrt(this.c-this.ns0*n)/this.ns0,i=this.ns0*eg(t-this.long0),a=o*Math.sin(i)+this.x0,s=this.rh-o*Math.cos(i)+this.y0;return e.x=a,e.y=s,e},inverse:function(e){var t,r,n,o,i,a;return e.x-=this.x0,e.y=this.rh-e.y+this.y0,this.ns0>=0?(t=Math.sqrt(e.x*e.x+e.y*e.y),n=1):(t=-Math.sqrt(e.x*e.x+e.y*e.y),n=-1),o=0,0!==t&&(o=Math.atan2(n*e.x,n*e.y)),n=t*this.ns0/this.a,this.sphere?a=Math.asin((this.c-n*n)/(2*this.ns0)):(r=(this.c-n*n)/this.ns0,a=this.phi1z(this.e3,r)),i=eg(o/this.ns0+this.long0),e.x=i,e.y=a,e},names:["Albers_Conic_Equal_Area","Albers_Equal_Area","Albers","aea"],phi1z:function(e,t){var r,n,o,i,a,s=oA(.5*t);if(e0||Math.abs(i)<=cv?(a=this.x0+1*this.a*r*Math.sin(n)/i,s=this.y0+1*this.a*(this.cos_p14*t-this.sin_p14*r*o)/i):(a=this.x0+this.infinity_dist*r*Math.sin(n),s=this.y0+this.infinity_dist*(this.cos_p14*t-this.sin_p14*r*o)),e.x=a,e.y=s,e},inverse:function(e){var t,r,n,o,i,a;return e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,e.x/=this.k0,e.y/=this.k0,(t=Math.sqrt(e.x*e.x+e.y*e.y))?(o=Math.atan2(t,this.rc),r=Math.sin(o),a=oA((n=Math.cos(o))*this.sin_p14+e.y*r*this.cos_p14/t),i=Math.atan2(e.x*r,t*this.cos_p14*n-e.y*this.sin_p14*r),i=eg(this.long0+i)):(a=this.phic0,i=0),e.x=i,e.y=a,e},names:["gnom"]};var sA={init:function(){this.sphere||(this.k0=Zv(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))},forward:function(e){var t,r,n=e.x,o=e.y,i=eg(n-this.long0);if(this.sphere)t=this.x0+this.a*i*Math.cos(this.lat_ts),r=this.y0+this.a*Math.sin(o)/Math.cos(this.lat_ts);else{var a=Jb(this.e,Math.sin(o));t=this.x0+this.a*this.k0*i,r=this.y0+this.a*a*.5/this.k0}return e.x=t,e.y=r,e},inverse:function(e){var t,r;return e.x-=this.x0,e.y-=this.y0,this.sphere?(t=eg(this.long0+e.x/this.a/Math.cos(this.lat_ts)),r=Math.asin(e.y/this.a*Math.cos(this.lat_ts))):(r=function(e,t){var r=1-(1-e*e)/(2*e)*Math.log((1-e)/(1+e));if(Math.abs(Math.abs(t)-r)<1e-6)return t<0?-1*av:av;for(var n,o,i,a,s=Math.asin(.5*t),u=0;u<30;u++)if(o=Math.sin(s),i=Math.cos(s),a=e*o,s+=n=Math.pow(1-a*a,2)/(2*i)*(t/(1-e*e)-o/(1-a*a)+.5/e*Math.log((1-a)/(1+a))),Math.abs(n)<=1e-10)return s;return NaN}(this.e,2*e.y*this.k0/this.a),t=eg(this.long0+e.x/(this.a*this.k0))),e.x=t,e.y=r,e},names:["cea"]};var uA={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)},forward:function(e){var t=e.x,r=e.y,n=eg(t-this.long0),o=Kb(r-this.lat0);return e.x=this.x0+this.a*n*this.rc,e.y=this.y0+this.a*o,e},inverse:function(e){var t=e.x,r=e.y;return e.x=eg(this.long0+(t-this.x0)/(this.a*this.rc)),e.y=Kb(this.lat0+(r-this.y0)/this.a),e},names:["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"]},lA=20;var cA={init:function(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=Ub(this.es),this.e1=zb(this.es),this.e2=Hb(this.es),this.e3=qb(this.es),this.ml0=this.a*Gb(this.e0,this.e1,this.e2,this.e3,this.lat0)},forward:function(e){var t,r,n,o=e.x,i=e.y,a=eg(o-this.long0);if(n=a*Math.sin(i),this.sphere)Math.abs(i)<=cv?(t=this.a*a,r=-1*this.a*this.lat0):(t=this.a*Math.sin(n)/Math.tan(i),r=this.a*(Kb(i-this.lat0)+(1-Math.cos(n))/Math.tan(i)));else if(Math.abs(i)<=cv)t=this.a*a,r=-1*this.ml0;else{var s=Vb(this.a,this.e,Math.sin(i))/Math.tan(i);t=s*Math.sin(n),r=this.a*Gb(this.e0,this.e1,this.e2,this.e3,i)-this.ml0+s*(1-Math.cos(n))}return e.x=t+this.x0,e.y=r+this.y0,e},inverse:function(e){var t,r,n,o,i,a,s,u,l;if(n=e.x-this.x0,o=e.y-this.y0,this.sphere)if(Math.abs(o+this.a*this.lat0)<=cv)t=eg(n/this.a+this.long0),r=0;else{var c;for(a=this.lat0+o/this.a,s=n*n/this.a/this.a+a*a,u=a,i=lA;i;--i)if(u+=l=-1*(a*(u*(c=Math.tan(u))+1)-u-.5*(u*u+s)*c)/((u-a)/c-1),Math.abs(l)<=cv){r=u;break}t=eg(this.long0+Math.asin(n*Math.tan(u)/this.a)/Math.sin(r))}else if(Math.abs(o+this.ml0)<=cv)r=0,t=eg(this.long0+n/this.a);else{var f,p,h,y,d;for(a=(this.ml0+o)/this.a,s=n*n/this.a/this.a+a*a,u=a,i=lA;i;--i)if(d=this.e*Math.sin(u),f=Math.sqrt(1-d*d)*Math.tan(u),p=this.a*Gb(this.e0,this.e1,this.e2,this.e3,u),h=this.e0-2*this.e1*Math.cos(2*u)+4*this.e2*Math.cos(4*u)-6*this.e3*Math.cos(6*u),u-=l=(a*(f*(y=p/this.a)+1)-y-.5*f*(y*y+s))/(this.es*Math.sin(2*u)*(y*y+s-2*a*y)/(4*f)+(a-y)*(f*h-2/Math.sin(2*u))-h),Math.abs(l)<=cv){r=u;break}f=Math.sqrt(1-this.es*Math.pow(Math.sin(r),2))*Math.tan(r),t=eg(this.long0+Math.asin(n*f/this.a)/Math.sin(r))}return e.x=t,e.y=r,e},names:["Polyconic","American_Polyconic","poly"]};var fA={init:function(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013},forward:function(e){var t,r=e.x,n=e.y-this.lat0,o=r-this.long0,i=n/iv*1e-5,a=o,s=1,u=0;for(t=1;t<=10;t++)s*=i,u+=this.A[t]*s;var l,c=u,f=a,p=1,h=0,y=0,d=0;for(t=1;t<=6;t++)l=h*c+p*f,p=p*c-h*f,h=l,y=y+this.B_re[t]*p-this.B_im[t]*h,d=d+this.B_im[t]*p+this.B_re[t]*h;return e.x=d*this.a+this.x0,e.y=y*this.a+this.y0,e},inverse:function(e){var t,r,n=e.x,o=e.y,i=n-this.x0,a=(o-this.y0)/this.a,s=i/this.a,u=1,l=0,c=0,f=0;for(t=1;t<=6;t++)r=l*a+u*s,u=u*a-l*s,l=r,c=c+this.C_re[t]*u-this.C_im[t]*l,f=f+this.C_im[t]*u+this.C_re[t]*l;for(var p=0;p.999999999999&&(r=.999999999999),t=Math.asin(r);var n=eg(this.long0+e.x/(.900316316158*this.a*Math.cos(t)));n<-Math.PI&&(n=-Math.PI),n>Math.PI&&(n=Math.PI),r=(2*t+Math.sin(2*t))/Math.PI,Math.abs(r)>1&&(r=1);var o=Math.asin(r);return e.x=n,e.y=o,e},names:["Mollweide","moll"]};var mA={init:function(){Math.abs(this.lat1+this.lat2)=0?(r=Math.sqrt(e.x*e.x+e.y*e.y),t=1):(r=-Math.sqrt(e.x*e.x+e.y*e.y),t=-1);var i=0;return 0!==r&&(i=Math.atan2(t*e.x,t*e.y)),this.sphere?(o=eg(this.long0+i/this.ns),n=Kb(this.g-r/this.a),e.x=o,e.y=n,e):(n=Yb(this.g-r/this.a,this.e0,this.e1,this.e2,this.e3),o=eg(this.long0+i/this.ns),e.x=o,e.y=n,e)},names:["Equidistant_Conic","eqdc"]};var vA={init:function(){this.R=this.a},forward:function(e){var t,r,n=e.x,o=e.y,i=eg(n-this.long0);Math.abs(o)<=cv&&(t=this.x0+this.R*i,r=this.y0);var a=oA(2*Math.abs(o/Math.PI));(Math.abs(i)<=cv||Math.abs(Math.abs(o)-av)<=cv)&&(t=this.x0,r=o>=0?this.y0+Math.PI*this.R*Math.tan(.5*a):this.y0+Math.PI*this.R*-Math.tan(.5*a));var s=.5*Math.abs(Math.PI/i-i/Math.PI),u=s*s,l=Math.sin(a),c=Math.cos(a),f=c/(l+c-1),p=f*f,h=f*(2/l-1),y=h*h,d=Math.PI*this.R*(s*(f-y)+Math.sqrt(u*(f-y)*(f-y)-(y+u)*(p-y)))/(y+u);i<0&&(d=-d),t=this.x0+d;var m=u+f;return d=Math.PI*this.R*(h*m-s*Math.sqrt((y+u)*(u+1)-m*m))/(y+u),r=o>=0?this.y0+d:this.y0-d,e.x=t,e.y=r,e},inverse:function(e){var t,r,n,o,i,a,s,u,l,c,f,p;return e.x-=this.x0,e.y-=this.y0,f=Math.PI*this.R,i=(n=e.x/f)*n+(o=e.y/f)*o,f=3*(o*o/(u=-2*(a=-Math.abs(o)*(1+i))+1+2*o*o+i*i)+(2*(s=a-2*o*o+n*n)*s*s/u/u/u-9*a*s/u/u)/27)/(l=(a-s*s/3/u)/u)/(c=2*Math.sqrt(-l/3)),Math.abs(f)>1&&(f=f>=0?1:-1),p=Math.acos(f)/3,r=e.y>=0?(-c*Math.cos(p+Math.PI/3)-s/3/u)*Math.PI:-(-c*Math.cos(p+Math.PI/3)-s/3/u)*Math.PI,t=Math.abs(n)2*av*this.a)return;return r=t/this.a,n=Math.sin(r),o=Math.cos(r),i=this.long0,Math.abs(t)<=cv?a=this.lat0:(a=oA(o*this.sin_p12+e.y*n*this.cos_p12/t),s=Math.abs(this.lat0)-av,i=Math.abs(s)<=cv?this.lat0>=0?eg(this.long0+Math.atan2(e.x,-e.y)):eg(this.long0-Math.atan2(-e.x,e.y)):eg(this.long0+Math.atan2(e.x*n,t*this.cos_p12*o-e.y*this.sin_p12*n))),e.x=i,e.y=a,e}return u=Ub(this.es),l=zb(this.es),c=Hb(this.es),f=qb(this.es),Math.abs(this.sin_p12-1)<=cv?(a=Yb(((p=this.a*Gb(u,l,c,f,av))-(t=Math.sqrt(e.x*e.x+e.y*e.y)))/this.a,u,l,c,f),i=eg(this.long0+Math.atan2(e.x,-1*e.y)),e.x=i,e.y=a,e):Math.abs(this.sin_p12+1)<=cv?(p=this.a*Gb(u,l,c,f,av),a=Yb(((t=Math.sqrt(e.x*e.x+e.y*e.y))-p)/this.a,u,l,c,f),i=eg(this.long0+Math.atan2(e.x,e.y)),e.x=i,e.y=a,e):(h=this.lat0/fv,y=this.long0/fv,d=Math.atan2(e.x,e.y)/fv,m=Math.sqrt(e.x*e.x+e.y*e.y),v=this.g.Direct(h,y,d,m,this.g.STANDARD),e.x=v.lon2*fv,e.y=v.lat2*fv,e)},names:["Azimuthal_Equidistant","aeqd"]};var AA={init:function(){this.sin_p14=Math.sin(this.lat0),this.cos_p14=Math.cos(this.lat0)},forward:function(e){var t,r,n,o,i,a,s,u=e.x,l=e.y;return n=eg(u-this.long0),t=Math.sin(l),r=Math.cos(l),o=Math.cos(n),((i=this.sin_p14*t+this.cos_p14*r*o)>0||Math.abs(i)<=cv)&&(a=1*this.a*r*Math.sin(n),s=this.y0+1*this.a*(this.cos_p14*t-this.sin_p14*r*o)),e.x=a,e.y=s,e},inverse:function(e){var t,r,n,o,i,a,s;return e.x-=this.x0,e.y-=this.y0,r=oA((t=Math.sqrt(e.x*e.x+e.y*e.y))/this.a),n=Math.sin(r),o=Math.cos(r),a=this.long0,Math.abs(t)<=cv?(s=this.lat0,e.x=a,e.y=s,e):(s=oA(o*this.sin_p14+e.y*n*this.cos_p14/t),i=Math.abs(this.lat0)-av,Math.abs(i)<=cv?(a=this.lat0>=0?eg(this.long0+Math.atan2(e.x,-e.y)):eg(this.long0-Math.atan2(-e.x,e.y)),e.x=a,e.y=s,e):(a=eg(this.long0+Math.atan2(e.x*n,t*this.cos_p14*o-e.y*this.sin_p14*n)),e.x=a,e.y=s,e))},names:["ortho"]},wA={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},SA={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function CA(e,t,r,n){var o;return ehv&&o<=av+hv?(n.value=SA.AREA_1,o-=av):o>av+hv||o<=-(av+hv)?(n.value=SA.AREA_2,o=o>=0?o-dv:o+dv):(n.value=SA.AREA_3,o+=av)),o}function EA(e,t){var r=e+t;return r<-dv?r+=yv:r>+dv&&(r-=yv),r}var xA={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=av-hv/2?this.face=wA.TOP:this.lat0<=-(av-hv/2)?this.face=wA.BOTTOM:Math.abs(this.long0)<=hv?this.face=wA.FRONT:Math.abs(this.long0)<=av+hv?this.face=this.long0>0?wA.RIGHT:wA.LEFT:this.face=wA.BACK,0!==this.es&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)},forward:function(e){var t,r,n,o,i,a,s={x:0,y:0},u={value:0};if(e.x-=this.long0,t=0!==this.es?Math.atan(this.one_minus_f_squared*Math.tan(e.y)):e.y,r=e.x,this.face===wA.TOP)o=av-t,r>=hv&&r<=av+hv?(u.value=SA.AREA_0,n=r-av):r>av+hv||r<=-(av+hv)?(u.value=SA.AREA_1,n=r>0?r-dv:r+dv):r>-(av+hv)&&r<=-hv?(u.value=SA.AREA_2,n=r+av):(u.value=SA.AREA_3,n=r);else if(this.face===wA.BOTTOM)o=av+t,r>=hv&&r<=av+hv?(u.value=SA.AREA_0,n=-r+av):r=-hv?(u.value=SA.AREA_1,n=-r):r<-hv&&r>=-(av+hv)?(u.value=SA.AREA_2,n=-r-av):(u.value=SA.AREA_3,n=r>0?-r+dv:-r-dv);else{var l,c,f,p,h,y;this.face===wA.RIGHT?r=EA(r,+av):this.face===wA.BACK?r=EA(r,+dv):this.face===wA.LEFT&&(r=EA(r,-av)),p=Math.sin(t),h=Math.cos(t),y=Math.sin(r),l=h*Math.cos(r),c=h*y,f=p,this.face===wA.FRONT?n=CA(o=Math.acos(l),f,c,u):this.face===wA.RIGHT?n=CA(o=Math.acos(c),f,-l,u):this.face===wA.BACK?n=CA(o=Math.acos(-l),f,-c,u):this.face===wA.LEFT?n=CA(o=Math.acos(-c),f,l,u):(o=n=0,u.value=SA.AREA_0)}return a=Math.atan(12/dv*(n+Math.acos(Math.sin(n)*Math.cos(hv))-av)),i=Math.sqrt((1-Math.cos(o))/(Math.cos(a)*Math.cos(a))/(1-Math.cos(Math.atan(1/Math.cos(n))))),u.value===SA.AREA_1?a+=av:u.value===SA.AREA_2?a+=dv:u.value===SA.AREA_3&&(a+=1.5*dv),s.x=i*Math.cos(a),s.y=i*Math.sin(a),s.x=s.x*this.a+this.x0,s.y=s.y*this.a+this.y0,e.x=s.x,e.y=s.y,e},inverse:function(e){var t,r,n,o,i,a,s,u,l,c,f,p,h={lam:0,phi:0},y={value:0};if(e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a,r=Math.atan(Math.sqrt(e.x*e.x+e.y*e.y)),t=Math.atan2(e.y,e.x),e.x>=0&&e.x>=Math.abs(e.y)?y.value=SA.AREA_0:e.y>=0&&e.y>=Math.abs(e.x)?(y.value=SA.AREA_1,t-=av):e.x<0&&-e.x>=Math.abs(e.y)?(y.value=SA.AREA_2,t=t<0?t+dv:t-dv):(y.value=SA.AREA_3,t+=av),l=dv/12*Math.tan(t),i=Math.sin(l)/(Math.cos(l)-1/Math.sqrt(2)),a=Math.atan(i),(s=1-(n=Math.cos(t))*n*(o=Math.tan(r))*o*(1-Math.cos(Math.atan(1/Math.cos(a)))))<-1?s=-1:s>1&&(s=1),this.face===wA.TOP)u=Math.acos(s),h.phi=av-u,y.value===SA.AREA_0?h.lam=a+av:y.value===SA.AREA_1?h.lam=a<0?a+dv:a-dv:y.value===SA.AREA_2?h.lam=a-av:h.lam=a;else if(this.face===wA.BOTTOM)u=Math.acos(s),h.phi=u-av,y.value===SA.AREA_0?h.lam=-a+av:y.value===SA.AREA_1?h.lam=-a:y.value===SA.AREA_2?h.lam=-a-av:h.lam=a<0?-a-dv:-a+dv;else{var d,m,v;l=(d=s)*d,m=(l+=(v=l>=1?0:Math.sqrt(1-l)*Math.sin(a))*v)>=1?0:Math.sqrt(1-l),y.value===SA.AREA_1?(l=m,m=-v,v=l):y.value===SA.AREA_2?(m=-m,v=-v):y.value===SA.AREA_3&&(l=m,m=v,v=-l),this.face===wA.RIGHT?(l=d,d=-m,m=l):this.face===wA.BACK?(d=-d,m=-m):this.face===wA.LEFT&&(l=d,d=m,m=-l),h.phi=Math.acos(-v)-av,h.lam=Math.atan2(m,d),this.face===wA.RIGHT?h.lam=EA(h.lam,-av):this.face===wA.BACK?h.lam=EA(h.lam,-dv):this.face===wA.LEFT&&(h.lam=EA(h.lam,+av))}return 0!==this.es&&(c=h.phi<0?1:0,f=Math.tan(h.phi),p=this.b/Math.sqrt(f*f+this.one_minus_f_squared),h.phi=Math.atan(Math.sqrt(this.a*this.a-p*p)/(this.one_minus_f*p)),c&&(h.phi=-h.phi)),h.lam+=this.long0,e.x=h.lam,e.y=h.phi,e},names:["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"]},_A=[[1,2.2199e-17,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-9.86701e-7],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,1.8736e-8],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,9.34959e-7],[.7986,-.00755338,-500009e-10,9.35324e-7],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],IA=[[-5.20417e-18,.0124,1.21431e-18,-8.45284e-11],[.062,.0124,-1.26793e-9,4.22642e-10],[.124,.0124,5.07171e-9,-1.60604e-9],[.186,.0123999,-1.90189e-8,6.00152e-9],[.248,.0124002,7.10039e-8,-2.24e-8],[.31,.0123992,-2.64997e-7,8.35986e-8],[.372,.0124029,9.88983e-7,-3.11994e-7],[.434,.0123893,-369093e-11,-4.35621e-7],[.4958,.0123198,-102252e-10,-3.45523e-7],[.5571,.0121916,-154081e-10,-5.82288e-7],[.6176,.0119938,-241424e-10,-5.25327e-7],[.6769,.011713,-320223e-10,-5.16405e-7],[.7346,.0113541,-397684e-10,-6.09052e-7],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-1.40374e-9],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],OA=.8487,kA=1.3523,PA=pv/5,TA=1/PA,jA=18,MA=function(e,t){return e[0]+t*(e[1]+t*(e[2]+t*e[3]))},NA=function(e,t){return e[1]+t*(2*e[2]+3*t*e[3])};var BA={init:function(){this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.es=0,this.title=this.title||"Robinson"},forward:function(e){var t=eg(e.x-this.long0),r=Math.abs(e.y),n=Math.floor(r*PA);n<0?n=0:n>=jA&&(n=jA-1),r=pv*(r-TA*n);var o={x:MA(_A[n],r)*t,y:MA(IA[n],r)};return e.y<0&&(o.y=-o.y),o.x=o.x*this.a*OA+this.x0,o.y=o.y*this.a*kA+this.y0,o},inverse:function(e){var t={x:(e.x-this.x0)/(this.a*OA),y:Math.abs(e.y-this.y0)/(this.a*kA)};if(t.y>=1)t.x/=_A[jA][0],t.y=e.y<0?-av:av;else{var r=Math.floor(t.y*jA);for(r<0?r=0:r>=jA&&(r=jA-1);;)if(IA[r][0]>t.y)--r;else{if(!(IA[r+1][0]<=t.y))break;++r}var n=IA[r],o=5*(t.y-n[0])/(IA[r+1][0]-n[0]);o=function(e,t,r,n){for(var o=t;n;--n){var i=e(o);if(o-=i,Math.abs(i)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,0!==this.es){var e=1-this.es,t=1/e;this.radius_p=Math.sqrt(e),this.radius_p2=e,this.radius_p_inv2=t,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")},forward:function(e){var t,r,n,o,i=e.x,a=e.y;if(i-=this.long0,"ellipse"===this.shape){a=Math.atan(this.radius_p2*Math.tan(a));var s=this.radius_p/xb(this.radius_p*Math.cos(a),Math.sin(a));if(r=s*Math.cos(i)*Math.cos(a),n=s*Math.sin(i)*Math.cos(a),o=s*Math.sin(a),(this.radius_g-r)*r-n*n-o*o*this.radius_p_inv2<0)return e.x=Number.NaN,e.y=Number.NaN,e;t=this.radius_g-r,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/xb(o,t)),e.y=this.radius_g_1*Math.atan(o/t)):(e.x=this.radius_g_1*Math.atan(n/t),e.y=this.radius_g_1*Math.atan(o/xb(n,t)))}else"sphere"===this.shape&&(t=Math.cos(a),r=Math.cos(i)*t,n=Math.sin(i)*t,o=Math.sin(a),t=this.radius_g-r,this.flip_axis?(e.x=this.radius_g_1*Math.atan(n/xb(o,t)),e.y=this.radius_g_1*Math.atan(o/t)):(e.x=this.radius_g_1*Math.atan(n/t),e.y=this.radius_g_1*Math.atan(o/xb(n,t))));return e.x=e.x*this.a,e.y=e.y*this.a,e},inverse:function(e){var t,r,n,o,i=-1,a=0,s=0;if(e.x=e.x/this.a,e.y=e.y/this.a,"ellipse"===this.shape){this.flip_axis?(s=Math.tan(e.y/this.radius_g_1),a=Math.tan(e.x/this.radius_g_1)*xb(1,s)):(a=Math.tan(e.x/this.radius_g_1),s=Math.tan(e.y/this.radius_g_1)*xb(1,a));var u=s/this.radius_p;if(t=a*a+u*u+i*i,(n=(r=2*this.radius_g*i)*r-4*t*this.C)<0)return e.x=Number.NaN,e.y=Number.NaN,e;o=(-r-Math.sqrt(n))/(2*t),i=this.radius_g+o*i,a*=o,s*=o,e.x=Math.atan2(a,i),e.y=Math.atan(s*Math.cos(e.x)/i),e.y=Math.atan(this.radius_p_inv2*Math.tan(e.y))}else if("sphere"===this.shape){if(this.flip_axis?(s=Math.tan(e.y/this.radius_g_1),a=Math.tan(e.x/this.radius_g_1)*Math.sqrt(1+s*s)):(a=Math.tan(e.x/this.radius_g_1),s=Math.tan(e.y/this.radius_g_1)*Math.sqrt(1+a*a)),t=a*a+s*s+i*i,(n=(r=2*this.radius_g*i)*r-4*t*this.C)<0)return e.x=Number.NaN,e.y=Number.NaN,e;o=(-r-Math.sqrt(n))/(2*t),i=this.radius_g+o*i,a*=o,s*=o,e.x=Math.atan2(a,i),e.y=Math.atan(s*Math.cos(e.x)/i)}return e.x=e.x+this.long0,e},names:["Geostationary Satellite View","Geostationary_Satellite","geos"]},GA=1.340264,UA=-.081106,zA=893e-6,HA=.003796,qA=Math.sqrt(3)/2;var VA={init:function(){this.es=0,this.long0=void 0!==this.long0?this.long0:0},forward:function(e){var t=eg(e.x-this.long0),r=e.y,n=Math.asin(qA*Math.sin(r)),o=n*n,i=o*o*o;return e.x=t*Math.cos(n)/(qA*(GA+3*UA*o+i*(7*zA+9*HA*o))),e.y=n*(GA+UA*o+i*(zA+HA*o)),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e},inverse:function(e){e.x=(e.x-this.x0)/this.a,e.y=(e.y-this.y0)/this.a;var t,r,n,o,i=e.y;for(o=0;o<12&&(i-=n=(i*(GA+UA*(t=i*i)+(r=t*t*t)*(zA+HA*t))-e.y)/(GA+3*UA*t+r*(7*zA+9*HA*t)),!(Math.abs(n)<1e-9));++o);return r=(t=i*i)*t*t,e.x=qA*e.x*(GA+3*UA*t+r*(7*zA+9*HA*t))/Math.cos(i),e.y=Math.asin(Math.sin(i)/qA),e.x=eg(e.x+this.long0),e},names:["eqearth","Equal Earth","Equal_Earth"]},KA=1e-10;function YA(e){var t,r,n,o=eg(e.x-(this.long0||0)),i=e.y;return t=this.am1+this.m1-Ab(i,r=Math.sin(i),n=Math.cos(i),this.en),r=n*o/(t*Math.sqrt(1-this.es*r*r)),e.x=t*Math.sin(r),e.y=this.am1-t*Math.cos(r),e.x=this.a*e.x+(this.x0||0),e.y=this.a*e.y+(this.y0||0),e}function WA(e){var t,r,n,o;if(e.x=(e.x-(this.x0||0))/this.a,e.y=(e.y-(this.y0||0))/this.a,r=xb(e.x,e.y=this.am1-e.y),o=Sb(this.am1+this.m1-r,this.es,this.en),(t=Math.abs(o))KA?(e.x=r*Math.sin(t=n*Math.cos(o)/r),e.y=this.cphi1-r*Math.cos(t)):e.x=e.y=0,e.x=this.a*e.x+(this.x0||0),e.y=this.a*e.y+(this.y0||0),e}function XA(e){var t,r;e.x=(e.x-(this.x0||0))/this.a,e.y=(e.y-(this.y0||0))/this.a;var n=xb(e.x,e.y=this.cphi1-e.y);if(r=this.cphi1+this.phi1-n,Math.abs(r)>av)throw new Error;return t=Math.abs(Math.abs(r)-av)<=KA?0:n*Math.atan2(e.x,e.y)/Math.cos(r),e.x=eg(t+(this.long0||0)),e.y=Kb(r),e}var ZA={init:function(){var e;if(this.phi1=this.lat1,Math.abs(this.phi1)=av?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=XA,this.forward=JA)},names:["bonne","Bonne (Werner lat_1=90)"]};Gg.defaultDatum="WGS84",Gg.Proj=_g,Gg.WGS84=new Gg.Proj("WGS84"),Gg.Point=ab,Gg.toPoint=Bg,Gg.defs=Yv,Gg.nadgrid=function(e,t,r){return t instanceof ArrayBuffer?function(e,t,r){var n=!0;void 0!==r&&!1===r.includeErrorFields&&(n=!1);var o=new DataView(t),i=function(e){var t=e.getInt32(8,!1);return 11!==t&&(11!==(t=e.getInt32(8,!0))&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}(o),a=function(e,t){return{nFields:e.getInt32(8,t),nSubgridFields:e.getInt32(24,t),nSubgrids:e.getInt32(40,t),shiftType:wg(e,56,64).trim(),fromSemiMajorAxis:e.getFloat64(120,t),fromSemiMinorAxis:e.getFloat64(136,t),toSemiMajorAxis:e.getFloat64(152,t),toSemiMinorAxis:e.getFloat64(168,t)}}(o,i),s=function(e,t,r,n){for(var o=176,i=[],a=0;a=0;o--){var i=await t.getImage(o),a=await i.readRasters(),s=a,u=[i.getWidth(),i.getHeight()],l=i.getBoundingBox().map(bg),c=[i.fileDirectory.ModelPixelScale[0],i.fileDirectory.ModelPixelScale[1]].map(bg),f=l[0]+(u[0]-1)*c[0],p=l[3]-(u[1]-1)*c[1],h=s[0],y=s[1],d=[];for(let e=u[1]-1;e>=0;e--)for(let t=u[0]-1;t>=0;t--){var m=e*u[0]+t;d.push([-Ag(y[m]),Ag(h[m])])}r.push({del:c,lim:u,ll:[-f,p],cvs:d})}var v={header:{nSubgrids:n},subgrids:r};return vg[e]=v,v}(e,t)}},Gg.transform=Rg,Gg.mgrs=Jg,Gg.version="__VERSION__",function(e){e.Proj.projections.add(Cb),e.Proj.projections.add(kb),e.Proj.projections.add(Pb),e.Proj.projections.add(Nb),e.Proj.projections.add(Bb),e.Proj.projections.add(Lb),e.Proj.projections.add(Db),e.Proj.projections.add(Fb),e.Proj.projections.add(Qb),e.Proj.projections.add(Wb),e.Proj.projections.add(nA),e.Proj.projections.add(iA),e.Proj.projections.add(aA),e.Proj.projections.add(sA),e.Proj.projections.add(uA),e.Proj.projections.add(cA),e.Proj.projections.add(fA),e.Proj.projections.add(pA),e.Proj.projections.add(yA),e.Proj.projections.add(dA),e.Proj.projections.add(mA),e.Proj.projections.add(vA),e.Proj.projections.add(bA),e.Proj.projections.add(AA),e.Proj.projections.add(xA),e.Proj.projections.add(BA),e.Proj.projections.add(LA),e.Proj.projections.add(FA),e.Proj.projections.add(QA),e.Proj.projections.add(VA),e.Proj.projections.add(ZA)}(Gg);var $A=Gg;function ew(e){"@babel/helpers - typeof";return(ew="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function tw(e){return function(e){if(Array.isArray(e))return rw(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return rw(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?rw(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function rw(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r2&&void 0!==arguments[2])||arguments[2],n=0,o=0;e.forEach(function(e,t){(!n||e1&&A&&A.requestVideoFrameCallback){var S=function(e,t){w=t.mediaTime,A.requestVideoFrameCallback(S)};A.requestVideoFrameCallback(S)}var C=0,E=null,x=0,_=null,I=function(){C=0;var e=E;if(e){var t=performance.now();t-x<50?C=requestAnimationFrame(I):(E=null,i.map&&i.map.getSource(i.layerId)&&(x=t,_=e,i.map.getSource(i.layerId).setCoordinates([[e[0],e[3]],[e[2],e[3]],[e[2],e[1]],[e[0],e[1]]])))}};e.addSource(this.layerId,{type:"video",urls:[t],drawImageCallback:function(e){var t,r=null,n=null,a=null;try{var l=null;if(i.videoParameters.length>1){var c=w||i.video.currentTime(),A=i.finder.findNearest(c);A&&(h=A.value),h&&(l=i.timeParams[h],h=0,l&&(i.dsize=l.dsize,u=l.dstTri,o=l.result,t=o,_&&!E&&Math.abs(t[0]-_[0])<1e-7&&Math.abs(t[1]-_[1])<1e-7&&Math.abs(t[2]-_[2])<1e-7&&Math.abs(t[3]-_[3])<1e-7||(E=t,C||(C=requestAnimationFrame(I)))))}var S=w||i.video.currentTime(),x=S-b;if(y&&b>=0&&g>1/30&&x>=0&&x1e3)&&(i._lastErrorLogAt=T,console.error("[VideoLayer] process frame error:",e)),y||new ImageData(Math.max(1,Math.round(i.dsize.width)),Math.max(1,Math.round(i.dsize.height)))}},coordinates:[[o[0],o[3]],[o[2],o[3]],[o[2],o[1]],[o[0],o[1]]]}),e.addLayer({id:this.layerId,type:"raster",source:this.layerId,paint:{"raster-fade-duration":0}});var O=e.getSource(this.layerId);O&&O.play()}},{key:"_updateMask",value:function(e,t,r){var n=this;e.width=t*r,e.height=t;var o=e.getContext("2d");o.beginPath(),this.timeParams[0].originBounds.forEach(function(e,t){0===t&&o.moveTo(e,n.timeParams[0].originBounds[t+1]),t%2==0&&o.lineTo(e,n.timeParams[0].originBounds[t+1])}),o.closePath(),o.fillStyle="#ffffff",o.fill();var i=o.getImageData(0,0,e.width,e.height);return{clipMat:this.cv.matFromImageData(i),dst1:new this.cv.Mat}}},{key:"_contain",value:function(e,t){return(e[0]>t[0]||Math.abs(e[0]-t[0])<1e-6)&&(e[0]t[1]||Math.abs(e[1]-t[1])<1e-6)&&(e[1]0?(r.totalTimes--,r.ajaxPolling(e)):r._commit(e)}},{key:"ajaxPolling",value:function(e){var t=this,r=e.url,n=/^http:\/\/([a-z]{9}|(\d+\.){3}\d+):\d{0,4}/;return t.index=parseInt(Math.random()*t.length),t.url=t.urls[t.index],r=r.replace(n,n.exec(t.url)[0]),e.url=r,e.isInTheSameDomain=N.isInTheSameDomain(r),t._commit(e)}},{key:"calculatePollingTimes",value:function(){var e=this;e.times?e.totalTimes>e.POLLING_TIMES?e.times>e.POLLING_TIMES?e.totalTimes=e.POLLING_TIMES:e.totalTimes=e.times:e.timese.POLLING_TIMES&&(e.totalTimes=e.POLLING_TIMES),e.totalTimes--}},{key:"isServiceSupportPolling",value:function(){return!("SuperMap.REST.ThemeService"===this.CLASS_NAME||"SuperMap.REST.EditFeaturesService"===this.CLASS_NAME)}},{key:"transformResult",value:function(e,t){return{result:e=N.transformResult(e),options:t}}},{key:"transformErrorResult",value:function(e,t){return{error:(e=N.transformResult(e)).error||e,options:t}}},{key:"serviceProcessCompleted",value:function(e,t){e=this.transformResult(e).result,this.events.triggerEvent("processCompleted",{result:e,options:t})}},{key:"serviceProcessFailed",value:function(e,t){var r=(e=this.transformErrorResult(e).error).error||e;this.events.triggerEvent("processFailed",{error:r,options:t})}},{key:"_returnContent",value:function(e){return e.scope.format!==un.FGB&&!!e.scope.returnContent}},{key:"supportDataFormat",value:function(e){return this.dataFormat().includes(e)}},{key:"dataFormat",value:function(){return[un.GEOJSON,un.ISERVER]}},{key:"_commit",value:function(e){var t=this;if("POST"===e.method||"PUT"===e.method||"PATCH"===e.method)if(e.params&&(e.url=N.urlAppend(e.url,N.getParameterString(e.params||{}))),"object"!==Cw(e.data)||e.data instanceof FormData)e.params=e.data;else try{e.params=N.toJSON(e.data)}catch(e){console.log("不是json对象")}return H.commit(e.method,e.url,e.params,{headers:e.headers,withoutFormatSuffix:e.withoutFormatSuffix,withCredentials:e.withCredentials,crossOrigin:e.crossOrigin,timeout:e.async?0:null,proxy:e.proxy}).then(function(e){return e.text?e.text():e.json?e.json():e}).then(function(t){var r=t;return"string"==typeof t&&(r=(new Er).read(t)),(!r||r.error||r.code>=300&&304!==r.code)&&(r=r&&r.error?{error:r.error}:{error:r}),r&&e.scope.format===un.FGB&&(r.newResourceLocation=r.newResourceLocation.replace(".json","")+".fgb"),r}).catch(function(e){return{error:e}}).then(function(r){var n={object:t};if(r.error){var o="processFailed";if(t.events&&t.events.listeners[o]&&t.events.listeners[o].length){var i=e.failure&&(e.scope?d.bind(e.failure,e.scope):e.failure);i?i(r,e):t.serviceProcessFailed(r,e)}else(n=ww(ww({},n),t.transformErrorResult(r,e))).type=o,e.failure&&e.failure(n)}else{var a="processCompleted";if(t.events&&t.events.listeners[a]&&t.events.listeners[a].length){var s=e.success&&(e.scope?d.bind(e.success,e.scope):e.success);s?s(r,e):t.serviceProcessCompleted(r,e)}else r.succeed=void 0==r.succeed||r.succeed,(n=ww(ww({},n),t.transformResult(r,e))).type=a,e.success&&e.success(n)}return n})}}])&&Ew(e.prototype,t),r&&Ew(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Iw(e){"@babel/helpers - typeof";return(Iw="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ow(){Ow=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==Iw(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function kw(e){return function(e){if(Array.isArray(e))return Pw(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Pw(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Pw(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Pw(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function Gw(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Uw(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:"id";return Ww()(e,t)}function oS(e){return e.hasOwnProperty("start")&&e.hasOwnProperty("end")}function iS(e,t,r){var n=e.id,o=e.properties,i=e.lables,a=t?function(e,t){if(!t)return{};for(var r=e.id,n=e.labels,o=t.filter(function(e){return"entity"===e.type}),i=0;ie.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:this.hoverColor;return{stroke:e,shadowColor:e,shadowBlur:5,endArrow:{path:"M 0,0 L 4,2 L 4,-2 Z",fill:e}}}},{key:"_getDefaultNodeHighlightStyle",value:function(){return{lineWidth:3,stroke:arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.hoverColor}}},{key:"_getContextMenu",value:function(){var e=this;return new(cS().Menu)({shouldBegin:function(e){return!!(e.target&&e.target.isCanvas&&e.target.isCanvas())||!!e.item},getContent:function(t){var r=t.item;if(!(t.target&&t.target.isCanvas&&t.target.isCanvas())&&r){var n=r.getType(),o=r.getModel();return n&&o&&"node"===n?e.isCollpased(o.id)?"
      \n
    • 展开
    • \n
    ":"
      \n
    • 折叠
    • \n
    ":void 0}},handleMenuClick:function(t,r){switch(t.id.split("-")[0]){case"hide":e.hideItem(r);break;case"expand":e.expandNode(r);break;case"collapse":e.collapseNode(r);break;case"show":e.showItem(r)}},offsetX:26,offsetY:0,itemTypes:["node"]})}},{key:"_getGraphConfig",value:function(e){var t=this,r={speed:150,maxIteration:30,tick:yS()(this.refreshPositions.bind(this),150)},n={type:"fruchterman",gravity:5},o={},i={type:"line",style:{endArrow:{path:"M 0,0 L 4,2 L 4,-2 Z",fill:"#e0e0e0"},lineWidth:.5},labelCfg:{autoRotate:!0,style:{fontSize:4,fill:"#333"}}},a={default:["drag-canvas","zoom-canvas","drag-node"]},s=this._getContextMenu(),u=[new(cS().ToolBar),s];if(!e)return this._setToolBarStyle(),function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"knowledgeGraph",s=document.querySelector("#".concat(e));return{container:e,width:s.scrollWidth,height:s.scrollHeight,plugins:u,modes:a,layout:bS(bS({},n),r),defaultNode:o,defaultEdge:i,nodeStateStyles:{hover:t._getDefaultNodeHighlightStyle(),actived:t._getDefaultNodeHighlightStyle()},edgeStateStyles:{hover:t._getDefaultEdgeHighlightStyle(),actived:t._getDefaultEdgeHighlightStyle()}}}();e.container=e.container||"knowledgeGraph";var l="string"==typeof e.container?document.querySelector("#".concat(e.container)):e.container;e.width=e.width||l.scrollWidth,e.height=e.height||l.scrollHeight,e.layout=bS(bS(bS({},n),e.layout||{}),!1!==e.animate?r:{}),e.defaultNode=bS(bS({},o),e.defaultNode||{}),e.defaultEdge=bS(bS({},i),e.defaultEdge||{}),e.modes={default:[]},!1!==e.dragCanvas&&e.modes.default.push("drag-canvas"),!1!==e.zoomCanvas&&e.modes.default.push("zoom-canvas"),!1!==e.dragNode&&e.modes.default.push("drag-node");var c=bS(bS({},this._getDefaultNodeHighlightStyle()),e.nodeHighlightStyle||{}),f=bS(bS({},this._getDefaultEdgeHighlightStyle()),e.edgeHighlightStyle||{});return e.nodeStateStyles={hover:c,actived:c},e.edgeStateStyles={hover:f,actived:f},!1!==e.showToolBar&&(e.plugins=[new(cS().ToolBar)],this._setToolBarStyle()),!1!==e.showContextMenu&&(e.plugins=[].concat(mS(e.plugins||[]),[s]),this._setToolBarStyle()),e}},{key:"changeSize",value:function(e,t){return this.graph.changeSize(e,t)}},{key:"autoResize",value:function(){var e=this,t=this.getContainer();window.addEventListener("resize",function(){var r=t.scrollWidth,n=t.scrollHeight;e.graph.changeSize(r,n),e.graph.refresh()})}},{key:"zoom",value:function(e,t,r,n){this.graph.zoom(e,t,r,n)}},{key:"zoomTo",value:function(e,t,r,n){this.graph.zoomTo(e,t,r,n)}},{key:"fitView",value:function(e,t,r,n){this.graph.fitView(e,t,r,n)}},{key:"fitCenter",value:function(e,t){this.graph.fitCenter(e,t)}},{key:"getGraphCenterPoint",value:function(){return this.graph.getGraphCenterPoint()}},{key:"getViewPortCenterPoint",value:function(){return this.graph.getViewPortCenterPoint()}},{key:"getZoom",value:function(){return this.graph.getZoom()}},{key:"getMinZoom",value:function(){return this.graph.getMinZoom()}},{key:"setMinZoom",value:function(e){this.graph.setMinZoom(e)}},{key:"getMaxZoom",value:function(){return this.graph.getMaxZoom()}},{key:"setMaxZoom",value:function(e){this.graph.setMaxZoom(e)}},{key:"getWidth",value:function(){return this.graph.getWidth()}},{key:"getHeight",value:function(){return this.graph.getHeight()}},{key:"setCenter",value:function(e){var t=this.graph.getWidth()/2,r=this.graph.getHeight()/2,n=this.graph.getCanvasByPoint(e.x,e.y);this.graph.translate(t-n.x,r-n.y)}},{key:"_setToolBarStyle",value:function(){pS()("\n .g6-component-toolbar li[code='redo'],\n .g6-component-toolbar li[code='undo'],\n .g6-component-toolbar li[code='realZoom'] {\n display: none;\n }\n .g6-component-contextmenu {\n position: absolute;\n z-index: 2;\n list-style-type: none;\n border-radius: 6px;\n font-size: 14px;\n width: fit-content;\n transition: opacity .2s;\n text-align: center;\n box-shadow: 0 5px 18px 0 rgba(0, 0, 0, 0.6);\n border: 0px;\n }\n .g6-component-contextmenu ul {\n padding-left: 0px;\n margin: 0;\n }\n .g6-component-contextmenu li {\n cursor: pointer;\n list-style-type: none;\n list-style: none;\n margin-left: 0;\n line-height: 38px;\n padding: 0px 35px;\n }\n .g6-component-contextmenu li:hover {\n color: #333;\n background: #aaaaaa45;\n }\n ")}},{key:"highlightNode",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph,t=null;e.on("node:mouseenter",function(r){var n=r.item;e.setAutoPaint(!1),t&&e.clearItemStates(t,"hover"),e.setItemState(n,"hover",!0),t=n,e.paint(),e.setAutoPaint(!0)}),e.on("node:mouseleave",function(){e.setAutoPaint(!1),t&&(e.clearItemStates(t,"hover"),t=null),e.paint(),e.setAutoPaint(!0)})}},{key:"highlightEdge",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph,t=null;e.on("edge:mouseenter",function(r){var n=r.item;e.setAutoPaint(!1),t&&e.clearItemStates(t,"hover"),e.setItemState(n,"hover",!0),t=n,e.paint(),e.setAutoPaint(!0)}),e.on("edge:mouseleave",function(){e.setAutoPaint(!1),t&&(e.clearItemStates(t,"hover"),t=null),e.paint(),e.setAutoPaint(!0)})}},{key:"setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;this.data?t.changeData(e):t.data(e),this.data=e}},{key:"render",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).render()}},{key:"updateGraph",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;this.data=e,t.changeData(e)}},{key:"refresh",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).refresh()}},{key:"getContainer",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).getContainer()}},{key:"getCanvas",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).get("canvas")}},{key:"getNodes",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).getNodes()}},{key:"getEdges",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).getEdges()}},{key:"getNeighbors",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).getNeighbors(e,t)}},{key:"findById",value:function(e){return(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph).findById(e)}},{key:"find",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).find(e,t)}},{key:"findAll",value:function(e,t){return(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).findAll(e,t)}},{key:"getEdgesByNode",value:function(e){return e.getEdges()}},{key:"getInEdges",value:function(e){return e.getInEdges()}},{key:"getOutEdges",value:function(e){return e.getOutEdges()}},{key:"getSourceByEdge",value:function(e){return e.getSource()}},{key:"getTargetByEdge",value:function(e){return e.getTarget()}},{key:"expandNode",value:function(e){var t=e.getModel().id;this._expandCollapseNode(this.collpasedData[t],"show"),delete this.collpasedData[t]}},{key:"collapseNode",value:function(e){var t=e.getModel().id,r=[];this._collapseFunc(e,r),this.collpasedData[t]=r,this._expandCollapseNode(r)}},{key:"isCollpased",value:function(e){return!!this.collpasedData[e]}},{key:"_collapseFunc",value:function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=this.getNeighbors(e,"target"),n=this.getNeighbors(e,"source"),o=0;o1&&void 0!==arguments[1]?arguments[1]:"hide";e&&e.forEach(function(e){"hide"===r?t.hideItem(e.id):(t.showItem(e.id),t.isCollpased(e.id)&&delete t.collpasedData[e.id]),e.children&&t._expandCollapseNode(e.children,r)})}},{key:"showItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).showItem(e,t)}},{key:"hideItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).hideItem(e,t)}},{key:"show",value:function(e){e.show()}},{key:"hide",value:function(e){e.hide()}},{key:"changeVisibility",value:function(e,t){e.changeVisibility(t)}},{key:"isVisible",value:function(e){return e.isVisible()}},{key:"getModel",value:function(e){return e.getModel()}},{key:"addItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).addItem(e,t)}},{key:"removeItem",value:function(e){(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph).removeItem(e)}},{key:"updateItem",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).updateItem(e,t)}},{key:"refreshItem",value:function(e){(arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph).refreshItem(e)}},{key:"refreshPositions",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).refreshPositions()}},{key:"on",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).on(e,t)}},{key:"off",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).off(e,t)}},{key:"toDataURL",value:function(e,t){(arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.graph).toDataURL(e,t)}},{key:"bindNodeDefaultDragEvent",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e.on("node:dragstart",function(e){ES(e)}),e.on("node:drag",function(e){ES(e)}),e.on("node:dragend",function(e){e.item.get("model").fx=null,e.item.get("model").fy=null})}},{key:"stopDefaultEventPropagation",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e.on("click",function(e){e.stopPropagation()}),e.on("mousedown",function(e){e.stopPropagation()}),e.on("mouseover",function(e){e.stopPropagation()}),e.on("mouseout",function(e){e.stopPropagation()})}},{key:"clear",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).clear()}},{key:"destroy",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph).destroy()}}])&&wS(e.prototype,t),r&&wS(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function ES(e){var t=e.item.get("model");return t.fx=e.x,t.fy=e.y,t.x=e.x,t.y=e.y,t}var xS=r(5611),_S=r.n(xS);function IS(e){"@babel/helpers - typeof";return(IS="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function OS(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:"G6";!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.graph=null,this.config=_S()(t),this.graphRender=null,this.type=r,this.createGraphRender(this.type),this.config=this.graphRender._getGraphConfig(this.config),this.createGraph(this.config),this.CLASS_NAME="SuperMap.KnowledgeGraph"},r=[{key:"dataFromGraphMap",value:function(e,t){return rS(e,t)}},{key:"dataFromKnowledgeGraphQuery",value:function(e){return rS(e)}}],(t=[{key:"_handleNodes",value:function(e,t){var r=this;e.filter(function(e){return""!==e}).forEach(function(e){var n=r.findById(e);t(n,"node")})}},{key:"_handleEdges",value:function(e,t){var r=this;e.filter(function(e){return""!==e}).forEach(function(e){var n=r.find("edge",function(t){return t.get("model").edgeId==e});t(n,"edge")})}},{key:"highlight",value:function(e){var t=e.nodeIDs,r=void 0===t?[]:t,n=e.edgeIDs,o=void 0===n?[]:n,i=this.graph,a=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"node";if(t){var n=e[r+"StateStyles"];n&&i.updateItem(t,{style:t.style,stateStyles:{actived:n}}),i.setItemState(t,"actived",!0),i.paint(),i.setAutoPaint(!0)}};this._handleNodes(r,a),this._handleEdges(o,a)}},{key:"clearHighlight",value:function(e){var t=this.graph,r=function(e){e&&(t.clearItemStates(e,"actived"),t.paint(),t.setAutoPaint(!0))};if(t.setAutoPaint(!1),!e)return t.getNodes().forEach(function(e){r(e)}),void t.getEdges().forEach(function(e){r(e)});var n=e.nodeIDs,o=void 0===n?[]:n,i=e.edgeIDs,a=void 0===i?[]:i;this._handleNodes(o,r),this._handleEdges(a,r)}},{key:"handleNodeStatus",value:function(e){var t=e.expand,r=e.collapse,n=e.hidden;this.expandNodes(t),this.collapseNodes(r),this.hideNodes(n)}},{key:"expandNodes",value:function(e){var t=this;e&&e.forEach(function(e){t.expandNode(e+"")})}},{key:"collapseNodes",value:function(e){var t=this;e&&e.forEach(function(e){t.collapseNode(e+"")})}},{key:"hideNodes",value:function(e){var t=this;e&&e.forEach(function(e){t.hideItem(e+"")})}},{key:"createGraphRender",value:function(e){"G6"===e&&(this.graphRender=new CS)}},{key:"createGraph",value:function(e){var t=this.initGraph(e);return this.graph=t,this.autoResize(),t}},{key:"getGraph",value:function(){return this.graph}},{key:"autoResize",value:function(){this.config&&!1!==this.config.autoResize&&this.graphRender.autoResize()}},{key:"zoom",value:function(e,t,r,n){this.graphRender.zoom(e,t,r,n)}},{key:"zoomTo",value:function(e,t,r,n){this.graphRender.zoomTo(e,t,r,n)}},{key:"fitView",value:function(e,t,r,n){this.graphRender.fitView(e,t,r,n)}},{key:"fitCenter",value:function(e,t){this.graphRender.fitCenter(e,t)}},{key:"getGraphCenterPoint",value:function(){return this.graphRender.getGraphCenterPoint()}},{key:"getViewPortCenterPoint",value:function(){return this.graphRender.getViewPortCenterPoint()}},{key:"getZoom",value:function(){return this.graphRender.getZoom()}},{key:"getMinZoom",value:function(){return this.graphRender.getMinZoom()}},{key:"setMinZoom",value:function(e){this.graphRender.setMinZoom(e)}},{key:"getMaxZoom",value:function(){return this.graphRender.getMaxZoom()}},{key:"setMaxZoom",value:function(e){this.graphRender.setMaxZoom(e)}},{key:"getWidth",value:function(){return this.graphRender.getWidth()}},{key:"getHeight",value:function(){return this.graphRender.getHeight()}},{key:"initGraph",value:function(e){var t=this,r=this.graphRender.initGraph(e);this.graph=r;return this.graph.on("afterlayout",function(){void 0!==t.config.zoom&&t.zoom(t.config.zoom),void 0!==t.config.center&&t.graphRender.setCenter({x:t.config.center[0],y:t.config.center[1]})}),r}},{key:"setData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;e=e||{nodes:[],edges:[]},this.config&&this.config.nodeLabelMaxWidth&&(e.nodes=this.nodeLabelOpenEllipsis(this.config.nodeLabelMaxWidth,e.nodes)),this.graphRender.setData(e,t),this.render(t),this.data=e}},{key:"render",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e&&this.graphRender.render(e)}},{key:"updateGraph",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.graph;t&&this.graphRender.updateGraph(e,t)}},{key:"refresh",value:function(){return this.graphRender.refresh()}},{key:"changeSize",value:function(e,t){return this.graphRender.changeSize(e,t)}},{key:"resize",value:function(e,t){this.graphRender.changeSize(e,t),this.graphRender.refresh()}},{key:"getContainer",value:function(){return this.graphRender.getContainer()}},{key:"getCanvas",value:function(){return this.graphRender.getCanvas()}},{key:"getNodes",value:function(){return this.graphRender.getNodes()}},{key:"getEdges",value:function(){return this.graphRender.getEdges()}},{key:"getNeighbors",value:function(e,t){return this.graphRender.getNeighbors(e,t)}},{key:"findById",value:function(e){return this.graphRender.findById(e)}},{key:"find",value:function(e,t){return this.graphRender.find(e,t)}},{key:"findAll",value:function(e,t){return this.graphRender.findAll(e,t)}},{key:"getEdgesByNode",value:function(e){return this.graphRender.getEdgesByNode(e)}},{key:"getInEdges",value:function(e){return this.graphRender.getInEdges(e)}},{key:"getOutEdges",value:function(e){return this.graphRender.getOutEdges(e)}},{key:"getSourceByEdge",value:function(e){return this.graphRender.getSourceByEdge(e)}},{key:"getTargetByEdge",value:function(e){return this.graphRender.getTargetByEdge(e)}},{key:"expandNode",value:function(e){var t=this.findById(e);t&&this.graphRender.expandNode(t)}},{key:"collapseNode",value:function(e){var t=this.findById(e);t&&this.graphRender.collapseNode(t)}},{key:"showItem",value:function(e,t){this.graphRender.showItem(e,t)}},{key:"hideItem",value:function(e,t){this.graphRender.hideItem(e,t)}},{key:"show",value:function(e){this.graphRender.show(e)}},{key:"hide",value:function(e){this.graphRender.hide(e)}},{key:"changeVisibility",value:function(e,t){this.graphRender.changeVisibility(e,t)}},{key:"isVisible",value:function(e){return this.graphRender.isVisible(e)}},{key:"getModel",value:function(e){return this.graphRender.getModel(e)}},{key:"addItem",value:function(e,t){return this.graphRender.addItem(e,t)}},{key:"removeItem",value:function(e){return this.graphRender.removeItem(e)}},{key:"updateItem",value:function(e,t){return this.graphRender.updateItem(e,t)}},{key:"refreshItem",value:function(e){return this.graphRender.refreshItem(e)}},{key:"refreshPositions",value:function(){return this.graphRender.refreshPositions()}},{key:"on",value:function(e,t){this.graphRender.on(e,t)}},{key:"off",value:function(e,t){this.graphRender.off(e,t)}},{key:"toDataURL",value:function(e,t){this.graphRender.toDataURL(e,t)}},{key:"nodeLabelOpenEllipsis",value:function(e,t){var r=this;return t?e?t.map(function(t){var n=t.labelCfg&&t.labelCfg.fontSize||r.defaultNode&&r.defaultNode.labelCfg&&r.defaultNode.labelCfg.fontSize||14;return t.label=function(e,t,r){var n=1*r;t*=1.6;if(function(e){for(var t=0,r=0;r0&&e.charCodeAt(r)<128?t++:t+=2;return t}(e)*n>t){var o=Math.floor((t-20)/n),i=e.substring(0,o);return(e.substring(o).length+"…".length)*n>t?i+"\n"+e.substring(o,o+o-2)+"…":0==e.substring(o).length?i:i+"\n"+e.substring(o)}return e}(t.label,e,n),t}):t:[]}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e&&e.clear()}},{key:"destroy",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.graph;e&&e.destroy()}}])&&OS(e.prototype,t),r&&OS(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function TS(e){"@babel/helpers - typeof";return(TS="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function jS(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function MS(e,t,r){return(t=RS(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function NS(){NS=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==TS(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function BS(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function LS(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);rp.length?o:p}if(!o.length){var h=[[0,0],[this.map.transform.width-1,this.map.transform.height-1]];this.queryRenderedFeatures(h,{layerCapture:!1},function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];o=e})}return o}},{key:"setSelectedDatas",value:function(e){this.selectedDatas=e instanceof Array?e:[e]}},{key:"_formatListenType",value:function(e){switch(e){case"mouseover":return"mouseenter";case"mouseleave":return"mouseout";default:return e}}},{key:"_transformFilterValues",value:function(e){for(var t=e.fields,r=e.values,n=e.selectedDatas,o=arguments.length,i=new Array(o>1?o-1:0),a=1;a1&&void 0!==arguments[1]?arguments[1]:{};if(null!=e.bbox&&!0!==t.recompute)return e.bbox;var r=[1/0,1/0,-1/0,-1/0];return rC(e,function(e){r[0]>e[0]&&(r[0]=e[0]),r[1]>e[1]&&(r[1]=e[1]),r[2]2&&void 0!==arguments[2]?arguments[2]:{},n={type:"Feature"};return(0===r.id||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function aC(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!sC(e[0])||!sC(e[1]))throw new Error("coordinates must contain numbers");return iC({type:"Point",coordinates:e},t,r)}function sC(e){return!isNaN(e)&&null!==e&&!Array.isArray(e)}var uC=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=oC(e);return aC([(r[0]+r[2])/2,(r[1]+r[3])/2],t.properties,t)},lC=function(){try{return G2}catch(e){return{}}}(),cC={colorRegExp:null,_nameColors:null,initialize:function(){this.colorRegExp=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,this._nameColors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#0ff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000",blanchedalmond:"#ffebcd",blue:"#00f",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#0ff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#f0f",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#789",lightslategrey:"#789",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#0f0",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#f0f",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#f00",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#fff",whitesmoke:"#f5f5f5",yellow:"#ff0",yellowgreen:"#9acd32"}},toColor:function(e,t){if(t=t||"rgb",e&&(3===e.length||4===e.length)){if(e=this.map(e,function(e){return e>1?Math.ceil(e):e}),t.indexOf("hex")>-1)return"#"+((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1);if(t.indexOf("hs")>-1){var r=this.map(e.slice(1,3),function(e){return e+"%"});e[1]=r[0],e[2]=r[1]}return t.indexOf("a")>-1?(3===e.length&&e.push(1),e[3]=this.adjust(e[3],[0,1]),t+"("+e.slice(0,4).join(",")+")"):t+"("+e.slice(0,3).join(",")+")"}},convert:function(e,t){if(!this.isCalculableColor(e))return e;var r=this.getData(e),n=r[3];return void 0===n&&(n=1),e.indexOf("hsb")>-1?r=this._HSV_2_RGB(r):e.indexOf("hsl")>-1&&(r=this._HSL_2_RGB(r)),r[3]=n,this.toColor(r,t)},toRGBA:function(e){return this.convert(e,"rgba")},trim:function(e){return String(e).replace(/\s+/g,"")},normalize:function(e){if(this._nameColors[e]&&(e=this._nameColors[e]),e=(e=this.trim(e)).replace(/hsv/i,"hsb"),/^#[\da-f]{3}$/i.test(e)){var t=(3840&(e=parseInt(e.slice(1),16)))<<8,r=(240&e)<<4,n=15&e;e="#"+((1<<24)+(t<<4)+t+(r<<4)+r+(n<<4)+n).toString(16).slice(1)}return e},getData:function(e){var t,r,n=(e=this.normalize(e)).match(this.colorRegExp);if(null===n)throw new Error("The color format error");var o,i=[];if(n[2])o=[(t=n[2].replace("#","").split(""))[0]+t[1],t[2]+t[3],t[4]+t[5]],i=this.map(o,function(e){return cC.adjust.call(this,parseInt(e,16),[0,255])});else if(n[4]){var a=n[4].split(",");r=a[3],o=a.slice(0,3),i=this.map(o,function(e){return e=Math.floor(e.indexOf("%")>0?2.55*parseInt(e,0):e),cC.adjust.call(this,e,[0,255])}),void 0!==r&&i.push(this.adjust(parseFloat(r),[0,1]))}else if(n[5]||n[6]){var s=(n[5]||n[6]).split(","),u=parseInt(s[0],0)/360,l=s[1],c=s[2];r=s[3],(i=this.map([l,c],function(e){return cC.adjust.call(this,parseFloat(e)/100,[0,1])})).unshift(u),void 0!==r&&i.push(this.adjust(parseFloat(r),[0,1]))}return i},map:function(e,t){if("function"!=typeof t)throw new TypeError;for(var r=e?e.length:0,n=0;n=t[1]&&(e=t[1]),e},isCalculableColor:function(e){return e instanceof Array||"string"==typeof e},_HSV_2_RGB:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s=6*o;6===s&&(s=0);var u=0|s,l=a*(1-i),c=a*(1-i*(s-u)),f=a*(1-i*(1-(s-u))),p=0,h=0,y=0;0===u?(p=a,h=f,y=l):1===u?(p=c,h=a,y=l):2===u?(p=l,h=a,y=f):3===u?(p=l,h=c,y=a):4===u?(p=f,h=l,y=a):(p=a,h=l,y=c),t=255*p,r=255*h,n=255*y}return[t,r,n]},_HSL_2_RGB:function(e){var t,r,n,o=e[0],i=e[1],a=e[2];if(0===i)t=255*a,r=255*a,n=255*a;else{var s,u=2*a-(s=a<.5?a*(1+i):a+i-i*a);t=255*this._HUE_2_RGB(u,s,o+1/3),r=255*this._HUE_2_RGB(u,s,o),n=255*this._HUE_2_RGB(u,s,o-1/3)}return[t,r,n]},_HUE_2_RGB:function(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}};cC.initialize();var fC=cC,pC=r(1855),hC=r.n(pC);function yC(e,t,r){r.defs(e)||(t?r.defs(e,t):console.error("".concat(e," not define")))}function dC(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:$A;if("[object Object]"!==Object.prototype.toString.call(arguments[0]))yC(e,t,r);else{var n=arguments[0];for(var o in n)yC(o,n[o],r)}}function mC(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$A;if(!t.defs(e)){var r={"EPSG:3857":'PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]]',"EPSG:4326":'GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],AXIS["Easting", "EAST"],AXIS["Northing", "NORTH"],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]',"EPSG:4490":'GEOGCS["China Geodetic Coordinate System 2000", DATUM["China 2000", SPHEROID["CGCS2000", 6378137.0, 298.257222101, AUTHORITY["EPSG","1024"]], AUTHORITY["EPSG","1043"]], PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]], UNIT["degree", 0.017453292519943295], AXIS["Geodetic latitude", NORTH], AXIS["Geodetic longitude", EAST], AUTHORITY["EPSG","4490"]]'};r[e]&&dC(e,r[e],t)}return t.defs(e)}function vC(e){if("string"!=typeof e)return"";if(0===e.indexOf("EPSG"))return e;var t=e.lastIndexOf("AUTHORITY")+10,r=e.indexOf("]",t)-1;return t>0&&r>0?"EPSG:".concat(e.substring(t,r).split(",")[1].substr(1)):""}function gC(e){var t=e.coordinates,r=e.sourceProjection,n=e.destProjection,o=void 0===n?"EPSG:4326":n,i=e.proj4,a=void 0===i?$A:i;try{return a(r,o,t)}catch(e){throw"".concat(e," is not defined")}}function bC(e,t){var r=e.replace(/^EPSG:/,""),n=Eo(t);return H.get("".concat(n,"epsgcodes/").concat(r,".json"),null).then(function(e){return e.json()}).then(function(e){return e.wkt}).catch(function(e){console.error(e)})}function AC(e){"@babel/helpers - typeof";return(AC="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function wC(){wC=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==AC(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function SC(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=TC(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function CC(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function EC(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){CC(i,n,o,a,s,"next",e)}function s(e){CC(i,n,o,a,s,"throw",e)}a(void 0)})}}function xC(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function _C(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r0}function YC(e,t){if(e){var r,n=NC(r=e)||MC(r)||TC(r)||PC(),o=n[0],i=n.slice(1).filter(function(e){var t=kC(e,2)[1];return!["$type","$id"].includes(t)}),a=Array.from(new Set(function e(t){var r=[];var n,o=SC(t);try{for(o.s();!(n=o.n()).done;){var i=n.value;if(i instanceof Array&&i[1]&&"string"==typeof i[1])r.push(i[1]);else if(i instanceof Array){var a=e(i);a&&a.length>0&&r.push.apply(r,OC(a))}}}catch(e){o.e(e)}finally{o.f()}return r}(i))),s=t([o].concat(OC(i))),u=s.filter.bind(s);return{field:a,values:function(){for(var e=arguments.length,t=new Array(e),r=0;r=0}(e,t)?_C(_C({},t),{},{withCredentials:!0}):_C(_C({},t),{},{withCredentials:void 0})}function b(e,t){return A.apply(this,arguments)}function A(){return(A=EC(wC().mark(function e(t,r){var n,o,i,a,l,c,f,p,h,d,m,b,A;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.url,o=t.dataSourceName,i=t.datasetName,a=t.credential,l={datasetNames:[o+":"+i],getFeatureMode:"SQL",targetEpsgCode:"4326",queryParameter:{name:i+"@"+o}},c="".concat(n.split("featureResults")[0],"datasources/").concat(o,"/datasets/").concat(i),f=g(c,r),e.next=6,y(c,a,f);case 6:return p=e.sent,h=p.fieldNames,d=p.fieldTypes,m=u(n,a),e.next=12,H.post(m,JSON.stringify(l),_C(_C({},f),{},{withCredentials:s.handleUrlWithCredentials(m)}));case 12:return b=e.sent,e.next=15,b.json();case 15:return A=e.sent,e.abrupt("return",{type:"FeatureCollection",features:v((A||{}).features||[],h,d)});case 17:case"end":return e.stop()}},e)}))).apply(this,arguments)}function w(e,t){return H.get(e,null,_C(_C({},t),{},{withCredentials:s.handleUrlWithCredentials(e)})).then(function(e){return e.json()}).then(function(e){if(!1===e.succeed)throw e.error.errorMsg;return e})}function S(e,t){return C.apply(this,arguments)}function C(){return(C=EC(wC().mark(function e(t,r){var n,o,i,a,s;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,w(t,r);case 2:if(n=e.sent,i=(o=n||{}).features,a=o.links,!(s=(void 0===a?[]:a).find(function(e){return"next"===e.rel}))){e.next=13;break}return e.t0=i,e.next=9,S(s.href,r);case 9:return e.t1=e.sent,e.abrupt("return",e.t0.concat.call(e.t0,e.t1));case 13:return e.abrupt("return",i);case 14:case"end":return e.stop()}},e)}))).apply(this,arguments)}function E(e,t){return x.apply(this,arguments)}function x(){return(x=EC(wC().mark(function e(t,r){var n,o;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n="".concat(r.server,"web/datas/").concat(t,"/structureddata/ogc-features/collections/all/items.json?limit=10000&offset=0"),e.next=3,S(n,r);case 3:return o=e.sent,e.abrupt("return",{type:"FeatureCollection",features:o});case 5:case"end":return e.stop()}},e)}))).apply(this,arguments)}function _(e,t,r){if(e===t)return r;if("EPSG:4214"===e&&"EPSG:4326"===t&&180===r[0]){var n=gC({coordinates:r,sourceProjection:e,destProjection:t,proj4:a});return n[0]=180,n}return gC({coordinates:r,sourceProjection:e,destProjection:t,proj4:a})}function I(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"EPSG:4326";if(e&&e.length&&t)return t===r?e:e.map(function(e){var n=function(e,t,r){if("MultiPolygon"===r.type){var n=r.coordinates;return{type:r.type,coordinates:n.map(function(r){return r.map(function(r){return r.map(function(r){return _(e,t,r)})})})}}if("Polygon"===r.type||"MultiLineString"===r.type){var o=r.coordinates;return{type:r.type,coordinates:o.map(function(r){return r.map(function(r){return _(e,t,r)})})}}if("MultiPoint"===r.type||"LineString"===r.type){var i=r.coordinates;return{type:r.type,coordinates:i.map(function(r){return _(e,t,r)})}}if("Point"===r.type)return{type:r.type,coordinates:_(e,t,r.coordinates)}}(t,r,e.geometry),o=_C({},e);return n&&Object.assign(o,{geometry:n}),o})}function O(e,t){return k.apply(this,arguments)}function k(){return(k=EC(wC().mark(function e(t,r){var n,o,i,u,l,c,f;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,E(t.dataId,r);case 2:return n=e.sent,o="".concat(r.server,"web/datas/").concat(t.dataId,"/structureddata.json"),e.next=6,H.get(o,null,_C(_C({},r),{},{withCredentials:s.handleUrlWithCredentials(o)}));case 6:return i=e.sent,e.next=9,i.json();case 9:if(u=e.sent,"EPSG:4326"===(l="EPSG:".concat(u.epsgCode))){e.next=19;break}if(mC(l,a)){e.next=17;break}return e.next=15,bC(l,r.server);case 15:c=e.sent,dC(l,c,a);case 17:(f=I(n.features,l))&&(n.features=f);case 19:return e.abrupt("return",n);case 20:case"end":return e.stop()}},e)}))).apply(this,arguments)}function P(e){return{type:"json",x:e.originX,y:e.originY,x1:e.destinationX,y1:e.destinationY}}function T(e){var t=e.clusterField,r=e.clusterMethod,n=e.clusterRadius;return[{type:e.clusterType,field:t,method:r&&{avg:"mean"}[r]||r,size:n}]}function j(e,t,r){return M.apply(this,arguments)}function M(){return(M=EC(wC().mark(function e(t,r,n){var o,i,a,s,u,l;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.data,i=t.od,a=t.cluster,!o||"FeatureCollection"!==o.type){e.next=3;break}return e.abrupt("return",{data:o});case 3:if(s={"supermap-rest-data":b,"supermap-structured-data":O},u=i&&P(t),l=a&&T(t),e.t0=s[o.type],!e.t0){e.next=11;break}return e.next=10,s[o.type](t.data,n);case 10:e.t0=e.sent;case 11:return e.t1=e.t0,e.t2=u,e.t3=l,e.abrupt("return",{data:e.t1,parser:e.t2,transforms:e.t3});case 15:case"end":return e.stop()}},e)}))).apply(this,arguments)}function N(e,t,r){var n={data:((e||{}).tiles||[])[0],parser:{type:"mvt",extent:e.bounds,sourceLayer:t}},o=r.transformRequest(n.data,"Tile");return o&&(o.credentials&&(n.parser.requestParameters={credentials:o.credentials}),o.headers&&(n.parser.requestParameters=_C(_C({},n.parser.requestParameters),{},{headers:o.headers}))),n}function B(e,t,r){var n=e.type,o={vector:N,geojson:j};return o[n]&&o[n](e,t,r)}function L(e){var r=e.type,n=e.id,o=e.minzoom,i=e.maxzoom,a=e.layout,s=e.paint,u=e.filter,l=e.source;return{id:n,options:{type:r,name:e.id,sourceLayer:e["source-layer"],source:l,layout:a,paint:s,filter:u,minZoom:o,maxZoom:i,visible:"none"!==a.visibility},filter:YC(u,t)}}function R(e){var t=e.value,o=e.property,i=e.multiple,a=e.map;if(!r.isExpression(t))return{values:i?t*i:t};var s={interpolate:function(e){return e.value._styleExpression.expression.input.args[0].args[0].evaluate(e.value._styleExpression._evaluator)},match:function(e){return e.value._styleExpression.expression.input.args[0].evaluate(e.value._styleExpression._evaluator)},case:function(e){var t=e.value._styleExpression.expression.branches[0][0];return t&&t.args?t.args[0].lhs.args[0].args[0].evaluate(e.value._styleExpression._evaluator):t.lhs.args[0].evaluate()}},u=n[{size:"paint_circle",color:"paint_circle",shape:"layout_symbol"}[o]][{size:"circle-radius",color:"circle-color",shape:"icon-image"}[o]],l=r.createPropertyExpression(t,u),c=s[t[0]]&&s[t[0]](l),f=l.value.evaluate.bind(l.value);return{field:c,values:function(e){var t={properties:IC({},c,e),type:"point"},r=f({zoom:a.getZoom()},t);return"shape"===o?r.toString():i?r*i:r}}}function D(e,t){return IC(IC(IC(IC(IC(IC(IC(IC({},"".concat(e,"-dasharray"),"dashArray"),"".concat(e,"-opacity"),"opacity"),"".concat(e,"-pattern-color"),"textureColor"),"".concat(e,"-pattern-opacity"),"opacity"),"".concat(e,"-pattern-interval"),"iconStep"),"".concat(e,"-pattern-blend"),"textureBlend"),"".concat(e,"-segment"),"segmentNumber"),"".concat(e,"-pattern-rotate"),"textureRotate")[t]}function F(e,t){return IC(IC(IC({},"".concat(e,"-animate-duration"),"duration"),"".concat(e,"-animate-interval"),"interval"),"".concat(e,"-animate-trailLength"),"trailLength")[t]}function Q(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n1&&!function(e){return 2===e.length&&1===e[0]&&0===e[1]}(e)?"dash":"solid"}function V(e,t,r){var n=e.paint,o=e.layout,i=n["circle-color"]||"#EE4D5A",a=n["circle-radius"]||30,s=n["circle-opacity"],u=o["circle-animate-speed"],l=o["circle-animate-rings"];return _C(_C({},L(e)),{},{type:LC.point,source:t,color:R({value:i,property:"color",map:r}),size:R({value:a,property:"size",multiple:2,map:r}),shape:{values:"circle"},style:{opacity:s},animate:{enable:!0,speed:u,rings:l}})}function K(e,t,r){var n=e.paint,o=e.layout,i=n["radar-color"]||"#EE4D5A",a=n["radar-radius"]||30,s=n["radar-opacity"],u=o["radar-animate-speed"];return _C(_C({},L(e)),{},{type:LC.point,source:t,color:R({value:i,property:"color",map:r}),size:R({value:a,property:"size",map:r}),shape:{values:"radar"},style:{opacity:s,speed:u},animate:{enable:!0}})}function Y(e,t,r){var n=e.paint,o=e.layout,i=o["line-curve-shape"]||o["line-curve-extrusion-shape"],a="arc3d"===i?"line-curve-extrusion":"line-curve",s=n["".concat(a,"-color")]||"#ff6b34",u=n["".concat(a,"-width")]||1,l=n["".concat(a,"-dasharray")],c=n["".concat(a,"-pattern")],f=_C(_C({},L(e)),{},{type:LC.line,source:{data:t.data.features.map(function(e){return e.properties}),parser:t.parser},color:R({value:s,property:"color",map:r}),size:R({value:u,property:"size",map:r}),shape:{values:i},style:{lineType:q(l)}});for(var p in n){var h=D(a,p);h&&Object.assign(f.style||{},IC({},h,n[p]))}for(var y in o){var d=D(a,y);d&&Object.assign(f.style||{},IC({},d,o[y]));var m=F(a,y);m&&(f.animate||(f.animate={}),Object.assign(f.animate,IC({},m,o[y])))}return c&&(f.texture={values:c},Object.assign(f.style||{},{lineTexture:!0})),f}function W(e,t,r){var n=e.paint,o=e.layout,i=n["point-extrusion-color"]||"#EE4D5A",a=n["point-extrusion-width"]||12,s=n["point-extrusion-length"]||12,u=n["point-extrusion-height"]||12,l=n["point-extrusion-opacity"],c=n["point-extrusion-source-color"],f=n["point-extrusion-target-color"],p=n["point-extrusion-opacity-linear-direction"],h=o["point-extrusion-shape"]||"cylinder";return _C(_C({},L(e)),{},{type:LC.point,source:t,color:R({value:i,property:"color",map:r}),size:Q(r,{value:a,multiple:.5},{value:s,multiple:.5},{value:u}),shape:R({value:h,property:"shape",map:r}),style:{opacity:l,sourceColor:c,targetColor:f,opacityLinear:{enable:!!p,dir:p}}})}function J(e,t,r){var n=e.paint,o=e.layout,i=n["line-extrusion-color"]||"#ff6b34",a=n["line-extrusion-width"]||12,s=n["line-extrusion-base"]||0,u=n["line-extrusion-dasharray"],l=n["line-extrusion-pattern"],c=_C(_C({},L(e)),{},{type:LC.line,source:t,color:R({value:i,property:"color",map:r}),size:Q(r,{value:a,multiple:VC},{value:s}),shape:{values:"line"},style:{lineType:q(u)}});for(var f in n){var p=RC[f];p&&Object.assign(c.style||{},IC({},p,n[f]))}for(var h in o){var y=RC[h];y&&Object.assign(c.style||{},IC({},y,o[h]));var d=DC[h];d&&(c.animate||(c.animate={}),Object.assign(c.animate,IC({},d,o[h])))}return l&&(c.texture={values:l},Object.assign(c.style||{},{lineTexture:!0})),c}function X(e,t){var r=e.paint,n=e.layout,o=r["chart-background-color"],i=r["chart-width"],a=r["chart-height"],s={grid:r["chart-xAxis-grid"],label:r["chart-xAxis-label"],line:r["chart-xAxis-line"]},u={grid:r["chart-yAxis-grid"],label:r["chart-yAxis-label"],line:r["chart-yAxis-line"]},l=n["chart-type"],c=n["chart-attribute-color"],f="line"===l&&c.length>0&&{values:c[0][1]};return _C(_C({},L(e)),{},{type:LC.point,id:e.id,source:t,layerType:FC.MarkerLayer,chartType:l,fields:{values:"bar"===l?G(c):function(e){return e.map(function(e){return kC(e,1)[0]})}(c)},width:{values:i},height:{values:a},background:{values:o},xAxis:{values:s},yAxis:{values:u},color:f})}function Z(e,t){var r=e.paint,n=e.layout,o=r["chart-radius"],i=r["chart-inner-radius"],a=n["chart-type"],s=n["chart-attribute-color"];return _C(_C({},L(e)),{},{type:LC.point,id:e.id,source:t,layerType:FC.MarkerLayer,chartType:a,fields:{values:G(s)},radius:{values:o},innerRadius:{values:i}})}function $(e,t,r){var n=e.paint,o=e.layout,i=n["heatmap-color"]||"#EE4D5A",a=n["heatmap-opacity"],s=o["heatmap-shape"],u=o["heatmap-rotate"],l=o["heatmap-coverage"];return _C(_C({},L(e)),{},{type:LC.heatmap,id:e.id,source:t,shape:{values:s},color:R({value:i,property:"color",map:r}),style:{opacity:a,coverage:l,angle:u}})}function ee(e,t,r){var n=e.paint,o=e.layout,i=n["heatmap-extrusion-color"]||"#EE4D5A",a=n["heatmap-extrusion-opacity"],s=n["heatmap-extrusion-height"],u=o["heatmap-extrusion-shape"],l=o["heatmap-extrusion-rotate"],c=o["heatmap-extrusion-coverage"];return _C(_C({},L(e)),{},{type:LC.heatmap,id:e.id,source:t,shape:{values:u},size:R({value:s,property:"size",map:r}),color:R({value:i,property:"color",map:r}),style:{opacity:a,coverage:c,angle:l}})}function te(e,t){var o=e.paint,i=o["heatmap-extrusion-color"],a=o["heatmap-extrusion-opacity"],s=o["heatmap-extrusion-intensity"],u=o["heatmap-extrusion-radius"],l=o["heatmap-extrusion-weight"];return _C(_C({},L(e)),{},{type:LC.heatmap,id:e.id,source:t,size:{field:l,values:[0,1]},shape:{values:"heatmap3D"},style:{rampColors:function(e){var t=n.paint_heatmap["heatmap-color"],o=r.createPropertyExpression(e,t);return{positions:o.value._styleExpression.expression.labels,colors:o.value._styleExpression.expression.outputs.map(function(e){return e.value})}}(i),opacity:a,intensity:s,radius:u}})}function re(e,t,r,n){var o=e.paint,i=e.layout,a=i["text-field"].split("{")[1].split("}")[0],s={};return Object.keys(function(e,t){var r={};for(var n in e)t.includes(n)||(r[n]=e[n]);return e}(QC,["text-color","text-size","text-field"])).forEach(function(t){var r,n=(e[(r=t,GC.includes(r)?"layout":"paint")]||{})[t];void 0!==n&&(s[QC[t]]=n)}),_C(_C({},L(e)),{},{type:LC.point,id:e.id,source:t,color:R({value:o["text-color"],property:"color",map:n}),size:R({value:i["text-size"],property:"size",map:n}),shape:{field:a,values:"text"},style:s})}function ne(e){return oe.apply(this,arguments)}function oe(){return(oe=EC(wC().mark(function e(t){var r,n,o,i,a,s,u,l,c,f,p,h;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=t.layers,n=t.sources,o=t.map,i=t.options,a=[],s=SC(r),e.prev=3,s.s();case 5:if((u=s.n()).done){e.next=23;break}return l=u.value,e.prev=7,c=n[l.source],f=IC(IC(IC(IC(IC(IC(IC(IC(IC(IC({},BC.animatePoint,V),BC.radarPoint,K),BC.od,Y),BC.column,W),BC.line,J),BC.bar,X),BC.pie,Z),BC.heatGrid,$),BC.heat3DGrid,ee),BC.heat3D,te),e.next=12,B(c,l["source-layer"],i);case 12:p=e.sent,h=U(l),a.push(f[h]&&f[h](l,p,o)||re(l,p,(l||{}).visible,o)),e.next=21;break;case 17:e.prev=17,e.t0=e.catch(7),console.error(e.t0),i.emitterEvent("layercreatefailed",{error:e.t0,map:o,layer:l});case 21:e.next=5;break;case 23:e.next=28;break;case 25:e.prev=25,e.t1=e.catch(3),s.e(e.t1);case 28:return e.prev=28,s.f(),e.finish(28);case 31:return e.abrupt("return",a);case 32:case"end":return e.stop()}},e,null,[[3,25,28,31],[7,17]])}))).apply(this,arguments)}function ie(e){return ae.apply(this,arguments)}function ae(){return(ae=EC(wC().mark(function e(t){return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise(function(e){t.getL7Scene().then(function(t){e(t)})}));case 1:case"end":return e.stop()}},e)}))).apply(this,arguments)}function se(e,t){if(t){var r=document.createElement("canvas");r.width=t.width,r.height=t.height;var n=r.getContext("2d");if(n)return n.drawImage(t,0,0),n.getImageData(e.x,e.y,e.width,e.height)}}function ue(e){var t=kC(fC.getData(fC.toRGBA(e)),4);return{r:t[0],g:t[1],b:t[2],a:t[3]}}function le(e,t){return ce.apply(this,arguments)}function ce(){return(ce=EC(wC().mark(function e(t,r){var n,o,i,a,s,u,l,c,f,p,h,y,d;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fe(t);case 2:if(n=e.sent,o=r.color,i=r.rotate,a=document.createElement("canvas"),s=a.getContext("2d"),a.width=n.width,a.height=n.height,s.translate(a.width/2,a.height/2),0!==i&&s.rotate(i*Math.PI/180),s.drawImage(n,-n.width/2,-n.height/2),o){for(u=s.getImageData(0,0,a.width,a.height),l=u.data,c=ue(o),f=c.r,p=c.g,h=c.b,y=c.a,d=0;d1&&!e.includes("/sprite@2x")?function(e){var t=e.split("/"),r=t.slice(-1)[0];if(!r)return e;var n=r.replace("sprite","sprite@2x");return t.splice(t.length-1,1,n),t.join("/")}(e):e}(r)+".png";return n&&(o+="?token=".concat(n)),o}function me(e,t){return new Promise(function(r){var n=de(e),o=new XMLHttpRequest,i=new Image;i.crossOrigin="",o.responseType="blob",o.open("get",n,!0),o.withCredentials=t.withCredentials,o.setRequestHeader("accept","image/webp,*/*"),o.onreadystatechange=function(){4===o.readyState&&200===o.status&&(i.src=URL.createObjectURL(o.response),i.onload=function(){r(i)},i.onerror=function(){r(null)})},o.send(null)})}function ve(e,t,r){return ge.apply(this,arguments)}function ge(){return(ge=EC(wC().mark(function e(t,r,n){var o;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,me(t,n);case 2:if(o=e.sent){e.next=5;break}return e.abrupt("return");case 5:return e.abrupt("return",se(r,o));case 6:case"end":return e.stop()}},e)}))).apply(this,arguments)}function be(e){return Ae.apply(this,arguments)}function Ae(){return(Ae=EC(wC().mark(function e(t){var r,n,o,i,a,s,u,l,c,f,p,h,y,d,m,v;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=t.layers,n=t.sprite,o=t.spriteJson,i=t.scene,a=t.options,s=+new Date,u=0;case 3:if(!(u2&&void 0!==arguments[2]&&arguments[2],n=[],o=t.properties,i=0;return r&&e.forEach(function(e){var t=o?o[e]:0;i+=t}),e.forEach(function(e){var t=o?o[e]:0,a={x:e,y:t};r&&(a.percent=t/i),n.push(a)}),n}function xe(e,t,r,n){if(!lC){throw console.error("G2 is not define"),new Error("G2 is not define")}var o=new lC.Chart({container:e,width:t,height:r,autoFit:!0});return o.legend(!1),o.data(n),o}function _e(e,t){return new i.Marker({element:e}).setLnglat(t)}function Ie(e,t){var r=we.getMarkerLayer(e);r&&(t.removeMarkerLayer(r),we.removeMarkerLayer(e))}function Oe(e,t){var r=e.source,n=e.id,o=e.chartType,a=r.data;e.filter&&(a=function(e,t){var r=e.features,n=t.field,o=t.values;return{type:"FeatureCollection",features:r.filter(function(e){var t=n.map(function(t){return(e.properties||{})[t]});return o.apply(void 0,OC(t))})}}(r.data,e.filter)),Ie(n,t);var s=[];if(o===qC.bar){var u=e.fields,l=e.width,c=e.height,f=e.background,p=e.xAxis,h=e.yAxis,y={width:l.values,height:c.values,background:f.values,xAxis:p.values,yAxis:h.values};s=function(e,t,r){var n=t.width,o=t.height,i=t.background,a=t.xAxis,s=t.yAxis,u=r.features,l=Object.keys(e),c=Object.values(e),f=Se(a),p=Se(s),h=document.createElement("div");return h.style.backgroundColor=i,u.map(function(e){var t=h.cloneNode(),r=Ce(e),i=Ee(l,e),a=xe(t,n,o,i);return a.axis("x",f),a.axis("y",p),a.interval().position("x*y").color("x",c),a.render(),_e(t,r)})}(u.values,y,a)}if(o===qC.line){var d=e.color,m=e.fields,v=e.width,g=e.height,b=e.background,A=e.xAxis,w=e.yAxis,S={width:v.values,height:g.values,background:b.values,xAxis:A.values,yAxis:w.values,color:d.values};s=function(e,t,r){var n=t.color,o=t.width,i=t.height,a=t.background,s=t.xAxis,u=t.yAxis,l=r.features,c=Se(s),f=Se(u),p=document.createElement("div");return p.style.background=a,l.map(function(t){var r=p.cloneNode(),a=Ce(t),s=Ee(e,t),u=xe(r,o,i,s);return u.axis("x",c),u.axis("y",f),u.line().position("x*y").color(n),u.render(),_e(r,a)})}(m.values,S,a)}if(o===qC.pie){var C=e.fields,E=e.radius,x=e.innerRadius,_={radius:E.values,innerRadius:x.values};s=function(e,t,r){var n=r.features,o=Object.keys(e),i=Object.values(e),a=t.radius,s=t.innerRadius,u=document.createElement("div");return n.map(function(e){var t=u.cloneNode(),r=Ce(e),n=Ee(o,e,!0),l=xe(t,a,a,n);return l.coord("theta",{innerRadius:s}),l.interval().adjust("stack").position("percent").color("x",i).shape("sliceShape"),l.render(),_e(t,r)})}(C.values,_,a)}var I=function(e){var t=new i.MarkerLayer;return e.forEach(function(e){t.addMarker(e)}),t}(s);return t.addMarkerLayer(I),we.setMarkerLayer(n,I),I}function ke(e,t){var r=IC(IC(IC(IC({},LC.line,"LineLayer"),LC.point,"PointLayer"),LC.polygon,"PolygonLayer"),LC.heatmap,"HeatmapLayer"),n=e.source||{},i=t.promoteId;i||(i=t.tiles&&t.tiles[0].includes("/structureddata/")?"smpid":void 0);var a=new o({type:r[e.type],options:_C(_C({},e.options),{},{layerID:(e.options||{}).name,featureId:i})}),s=a.getL7Layer(),u={},l=e.shape||{};if(n.parser&&(u.parser=e.source.parser),n.transforms&&(u.transforms=e.source.transforms),s.source(n.data,u),l.field?s.shape(l.field,l.values):s.shape(l.values),e.texture&&s.texture(e.texture.values),e.size&&(e.size.field?s.size(e.size.field,e.size.values):s.size(e.size.values)),e.color&&(e.color.field?s.color(e.color.field,e.color.values):s.color(e.color.values)),e.style&&s.style(e.style),e.animate&&s.animate(e.animate),e.filter){var c=hC()(function(){a.reRender()},500);s.filter(e.filter.field,function(){var t,r=(t=e.filter).values.apply(t,arguments);return r&&c(),r})}return a}return{addL7Layers:function(e){return EC(wC().mark(function t(){var r,n,o,i,a,s,u,l,c,f,p,h,y;return wC().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.map,n=e.webMapInfo,o=e.l7Layers,i=e.spriteDatas,a=e.options,s=n.layers,u=n.sources,l=n.sprite,t.next=4,ne({layers:o,sources:u,map:r,options:Object.assign({withoutFormatSuffix:!0},a)});case 4:return c=t.sent,t.next=7,ie(r);case 7:if(f=t.sent,!(Object.keys(i).length>0)){t.next=18;break}return t.prev=9,t.next=12,be({layers:c.filter(function(e){return!!e.texture}),spriteJson:i,sprite:l,scene:f,options:a});case 12:t.next=18;break;case 14:t.prev=14,t.t0=t.catch(9),console.error(t.t0),a.emitterEvent("layercreatefailed",{error:t.t0,map:r});case 18:p=SC(c),t.prev=19,y=wC().mark(function e(){var t,n,o,i,a;return wC().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:t=h.value,n=s.findIndex(function(e){return e.id===t.id}),o=s.slice(n+1).find(function(e){return!KC(e)}),t.layerType===FC.MarkerLayer?(i=t,!1!==(t.options||{}).visible&&Oe(i,f),we.setSceneChartLayer(t.id,i)):(a=ke(t,u[s[n].source]),r.getLayer(a.id)||r.addLayer(a,o&&o.id));case 4:case"end":return e.stop()}},e)}),p.s();case 22:if((h=p.n()).done){t.next=26;break}return t.delegateYield(y(),"t1",24);case 24:t.next=22;break;case 26:t.next=31;break;case 28:t.prev=28,t.t2=t.catch(19),p.e(t.t2);case 31:return t.prev=31,p.f(),t.finish(31);case 34:case"end":return t.stop()}},t,null,[[9,14],[19,28,31,34]])}))()},isL7Layer:KC,getL7MarkerLayers:function(){return we.markerLayers},removeL7MarkerLayer:Ie,getRestDataGeojsonByWebMap:b}}function JC(e){return function(e){if(Array.isArray(e))return hE(e)}(e)||XC(e)||pE(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function XC(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ZC(e,t){return eE(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||pE(e,t)||$C()}function $C(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function eE(e){if(Array.isArray(e))return e}function tE(e,t){for(var r=0;r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function pE(e,t){if(e){if("string"==typeof e)return hE(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hE(e,t):void 0}}function hE(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r`.",required:!0},import:{id:{type:"string",doc:"Unique import name.",required:!0},url:{type:"string",doc:"The URL of the style.",required:!0},config:{type:"config",doc:"Configuration values for the imported style's options."},data:{type:"$root",doc:"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{type:"colorTheme",optional:!0,doc:"If specified, it overrides the color-theme of the imported style."}},config:{"*":{type:"*",doc:"Value of the imported style's configuration option."}},schema:{"*":{type:"option",doc:"Specification of a configuration option."}},option:{default:{type:"*",doc:"Default configuration value for this option.","property-type":"data-constant",expression:{interpolated:!1},required:!0},type:{type:"enum",doc:"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.",values:{string:{doc:"The result will be coerced to a string."},number:{doc:"The result will be coerced to a number."},boolean:{doc:"The result will be coerced to a boolean."},color:{doc:"The result will be coerced to a color."}}},array:{type:"boolean",doc:"If true, this option is returned as an array"},minValue:{type:"number",doc:"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},maxValue:{type:"number",doc:"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},stepValue:{type:"number",doc:"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},values:{type:"array",value:"*",doc:"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."}},models:{"*":{type:"model",doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}},"light-3d":{id:{type:"string",doc:"Unique light name.",required:!0},properties:{type:"properties",doc:"Properties of the light."},type:{type:"enum",doc:"Type of the light to be added",values:{ambient:{doc:"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},directional:{doc:"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},flat:{doc:"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}}},properties:["properties_light_directional","properties_light_ambient","properties_light_flat"],properties_light_directional:{direction:{type:"array",default:[210,30],minimum:[0,0],maximum:[360,90],length:2,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},doc:"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).",example:[90,40],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"cast-shadows":{type:"boolean",default:!1,doc:"Enable/Disable shadow casting for this light",transition:!1,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-quality":{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,expression:{interpolated:!1,parameters:["zoom"]},transition:!1,doc:"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},experimental:!0},"shadow-intensity":{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},doc:"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.",transition:!0,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"shadow-draw-before-layer":{type:"string","property-type":"data-constant",doc:"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},experimental:!0}},properties_light_ambient:{color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}},properties_light_flat:{anchor:{type:"enum",default:"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}},iconsets:{"*":{type:"iconset",doc:"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}},iconset:["iconset_sprite","iconset_source"],iconset_sprite:{type:{required:!0,type:"enum",values:{sprite:{doc:"A sprite icon set."}},doc:"The type of the icon set."},url:{required:!0,type:"string",doc:"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).",example:"mapbox://sprites/mapbox/bright"}},iconset_source:{type:{required:!0,type:"enum",values:{source:{doc:"A source icon set."}},doc:"The type of the icon set."},source:{required:!0,type:"string",doc:"Name of a source of `raster-array` type to be used for the icon set."}},sources:{"*":{type:"source",doc:"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}},source:["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"],source_vector:{type:{required:!0,type:"enum",values:{vector:{doc:"A vector tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},default:"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster:{type:{required:!0,type:"enum",values:{raster:{doc:"A raster tile source."}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},scheme:{type:"enum",values:{xyz:{doc:"Slippy map tilenames scheme."},tms:{doc:"OSGeo spec scheme."}},default:"xyz",doc:"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{doc:"A RGB-encoded raster DEM source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},encoding:{type:"enum",values:{terrarium:{doc:"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},mapbox:{doc:"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},default:"mapbox",doc:"The encoding used by this source. Mapbox Terrain RGB is used by default"},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_raster_array:{experimental:!0,type:{required:!0,type:"enum",values:{"raster-array":{doc:"A raster array source"}},doc:"The type of the source."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129],doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},extra_bounds:{type:"array",value:{type:"array",value:"number",length:4,doc:"An array containing the longitude and latitude of the southwest and northeast corners of the source's bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},doc:"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which tiles are available, as in the TileJSON spec."},maxzoom:{type:"number",default:22,doc:"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},tileSize:{type:"number",default:512,units:"pixels",doc:"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},rasterLayers:{type:"*",doc:"Contains the description of the raster data layers and the bands contained within the tiles."},volatile:{type:"boolean",default:!1,doc:"A setting to determine whether a source's tiles are cached locally.","sdk-support":{"basic functionality":{android:"9.3.0",ios:"5.10.0"}}},"*":{type:"*",doc:"Other keys to configure the data source."}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{doc:"A GeoJSON data source."}},doc:"The data type of the GeoJSON source."},data:{type:"*",doc:"A URL to a GeoJSON file, or inline GeoJSON."},maxzoom:{type:"number",default:18,doc:"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},minzoom:{type:"number",default:0,doc:"Minimum zoom level at which to create vector tiles"},attribution:{type:"string",doc:"Contains an attribution to be displayed when the map is shown to a user."},buffer:{type:"number",default:128,maximum:512,minimum:0,doc:"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},filter:{type:"*",doc:"An expression for filtering features prior to processing them for rendering."},tolerance:{type:"number",default:.375,doc:"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},cluster:{type:"boolean",default:!1,doc:"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\n * `cluster` Is `true` if the point is a cluster \n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\n * `point_count` Number of original points grouped into this cluster\n * `point_count_abbreviated` An abbreviated point count"},clusterRadius:{type:"number",default:50,minimum:0,doc:"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},clusterMaxZoom:{type:"number",doc:"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},clusterMinPoints:{type:"number",doc:"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},clusterProperties:{type:"*",doc:'An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{"property_name": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `"+"` or `"max"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\n\nExample: `{"sum": ["+", ["get", "scalerank"]]}`.\n\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `["accumulated"]` value, e.g.:\n`{"sum": [["+", ["accumulated"], ["get", "sum"]], ["get", "scalerank"]]}`'},lineMetrics:{type:"boolean",default:!1,doc:"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},generateId:{type:"boolean",default:!1,doc:"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},promoteId:{type:"promoteId",doc:"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},dynamic:{type:"boolean",default:!1,doc:"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{js:"3.4.0"}}}},source_video:{type:{required:!0,type:"enum",values:{video:{doc:"A video data source."}},doc:"The data type of the video source."},urls:{required:!0,type:"array",value:"string",doc:"URLs to video content in order of preferred format."},coordinates:{required:!0,doc:"Corners of video specified in longitude, latitude pairs.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}},source_image:{type:{required:!0,type:"enum",values:{image:{doc:"An image data source."}},doc:"The data type of the image source."},url:{required:!1,type:"string",doc:"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},coordinates:{required:!0,doc:"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.",type:"array",length:4,value:{type:"array",length:2,value:"number",doc:"A single longitude, latitude pair."}}},modelNodeOverride:{orientation:{type:"array",value:"number",length:3,default:[0,0,0],period:360,units:"degrees",doc:"Override the orientation of the model node in euler angles [x, y, z]."}},modelNodeOverrides:{"*":{type:"modelNodeOverride",doc:"An object defining model node properties to override. Object key is the node name as defined in the model."}},modelMaterialOverride:{"model-color":{type:"color",doc:"Override the tint color of the material."},"model-color-mix-intensity":{type:"number",doc:"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors."},"model-opacity":{type:"number",doc:"Override the opacity of the material."},"model-emissive-strength":{type:"number",units:"intensity",doc:"Override strength of the emission of material."}},modelMaterialOverrides:{"*":{type:"modelMaterialOverride",doc:"An object defining material properties to override. Object key is the material name as defined in the model."}},modelSourceModel:{uri:{type:"string",required:!0,doc:"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},position:{type:"array",value:"number",length:2,required:!1,default:[0,0],minimum:[-180,-90],maximum:[180,90],doc:"Position of the model in longitude and latitude [lng, lat]."},orientation:{type:"array",value:"number",length:3,required:!1,default:[0,0,0],period:360,units:"degrees",doc:"Orientation of the model in euler angles [x, y, z]."},nodeOverrides:{type:"modelNodeOverrides",required:!1,doc:"A collection of node overrides."},materialOverrides:{type:"modelMaterialOverrides",required:!1,doc:"A collection of material overrides."},nodeOverrideNames:{type:"array",value:"string",doc:"An array of one or more model node names whose transform will be overridden from model layer paint properties.",required:!1},materialOverrideNames:{type:"array",value:"string",doc:"An array of one or more model material names whose properties will be overridden from model layer paint properties.",required:!1},featureProperties:{type:"*",doc:"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.",required:!1}},modelSourceModels:{"*":{type:"modelSourceModel",doc:"A 3D model and its properties."}},source_model:{type:{required:!0,type:"enum",values:{model:{doc:"A collection of 3D models"},"batched-model":{doc:"A collection of 3D models with anchor data"}},doc:"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},url:{type:"string",doc:"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},maxzoom:{type:"number",default:18,doc:"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},minzoom:{type:"number",default:0,doc:"Minimum zoom level for which batched-model tiles are available"},tiles:{type:"array",value:"string",doc:"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},models:{type:"modelSourceModels",doc:"Defines properties of 3D models in collection. Requires `model` source type."}},layer:{id:{type:"string",doc:"Unique layer name.",required:!0},type:{type:"enum",values:{fill:{doc:"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},line:{doc:"A stroked line.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},symbol:{doc:"An icon or a text label.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},circle:{doc:"A filled circle.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},heatmap:{doc:"A heatmap.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"fill-extrusion":{doc:"An extruded (3D) polygon.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},building:{doc:"A procedural 3D building.","sdk-support":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},private:!0},raster:{doc:"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},"raster-particle":{experimental:!0,doc:"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},hillshade:{doc:"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}}},model:{doc:"A 3D model","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},background:{doc:"The background color or pattern of the map.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}}},sky:{doc:"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},slot:{doc:"Marks the position of a slot.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},clip:{doc:"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}}}},doc:"Rendering type of this layer.",required:!0},metadata:{type:"*",doc:"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."},source:{type:"string",doc:"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{type:"string",doc:"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},slot:{type:"string",doc:"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},minzoom:{type:"number",minimum:0,maximum:24,doc:"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},maxzoom:{type:"number",minimum:0,maximum:24,doc:"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},filter:{type:"filter",doc:'An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `["feature-state", ...]` expression is not supported in filter expressions. The `["pitch"]` and `["distance-from-center"]` expressions are supported only for filter expressions on the symbol layer.'},layout:{type:"layout",doc:"Layout properties for the layer."},paint:{type:"paint",doc:"Default paint properties for this layer."},appearances:{type:"array",value:"appearance","supported-layer-types":["symbol"],experimental:!0,doc:"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with 'Works with appearances' are supported."}},appearance:{condition:{type:"boolean",doc:"A boolean expression that determines when this appearance should be applied.",expression:{interpolated:!0,parameters:["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},name:{type:"string",doc:"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},properties:{type:"*",doc:"Style properties to apply when the condition is met."}},layout:["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"],layout_background:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_sky:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_model:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"model-id":{type:"string",default:"",doc:"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!1,requires:[{source:["geojson","vector"]}]},"model-allow-density-reduction":{type:"boolean",default:!0,transition:!1,experimental:!0,doc:"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},"property-type":"data-constant"}},layout_clip:{"clip-layer-types":{type:"array",value:"enum",values:{model:{doc:"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},symbol:{doc:"If present the clip layer would remove all symbol layers below it."}},default:[],doc:"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"clip-layer-scope":{type:"array",value:"string",default:[],doc:"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{js:"3.6.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:!1},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.18.0",android:"11.18.0",ios:"11.18.0"}},expression:{interpolated:!1},"property-type":"data-constant"}},layout_fill:{"fill-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"fill-elevation-reference":{type:"enum",doc:"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-base":{doc:"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as 'hatched areas' that should exist only on top of road polygons."}},default:"none",experimental:!0,private:!0,transition:!1,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{type:"boolean",doc:"Determines whether bridge guard rails are added for elevated roads.",default:"true",transition:!1,experimental:!0,private:!0,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"}},layout_circle:{"circle-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"},"data-driven styling":{js:"1.2.0",android:"9.2.0",ios:"5.9.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{type:"enum",doc:"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},default:"none",experimental:!0,transition:!1,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!1},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"fill-extrusion-edge-radius":{type:"number",experimental:!0,default:0,minimum:0,maximum:1,doc:"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"source-max-zoom":{type:"number",minimum:0,maximum:24,private:!0,experimental:!0,doc:"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}},"property-type":"constant"}},layout_building:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1},"property-type":"constant"},"building-facade":{type:"boolean",default:!1,doc:"Whether to render facade details on the buildings.",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},"property-type":"data-driven"},"building-facade-floors":{type:"number",minimum:1,maximum:200,default:3,doc:"Number of floors created when building-facade is enabled.",private:!0,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},requires:["building-facade"]},"building-facade-unit-width":{type:"number",minimum:1,maximum:20,default:3.1,doc:"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).",private:!0,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},requires:["building-facade"]},"building-facade-window":{type:"array",length:2,value:"number",minimum:.1,maximum:1,default:[.9,.9],doc:"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.",private:!0,"property-type":"data-driven","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},requires:["building-facade"]},"building-roof-shape":{type:"enum",values:{flat:{doc:"Use flat roof for the procedurally generated buildings."},hipped:{doc:"Use hipped roof for the procedurally generated buildings."},gabled:{doc:"Use gabled roof for the procedurally generated buildings."},parapet:{doc:"Use parapet roof for the procedurally generated buildings."},mansard:{doc:"Use mansard roof for the procedurally generated buildings."},skillion:{doc:"Use skillion roof for the procedurally generated buildings."},pyramidal:{doc:"Use pyramidal roof for the procedurally generated buildings."}},default:"flat",doc:"Roof type to use for the procedural buildings.",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1,parameters:["feature"]},"property-type":"data-driven"},"building-height":{type:"number",default:0,minimum:0,units:"meters",doc:"The height of the procedural buildings.",transition:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1},"property-type":"data-driven"},"building-base":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.",transition:!0,requires:["building-height"],private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!1},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven",type:"number",private:!0,units:"meters",default:0,minimum:0,doc:"The extent of the flood light effect on the walls of the buildings in meters.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven",type:"number",private:!0,units:"meters",default:0,doc:"The extent of the flood light effect on the ground beneath the buildings in meters.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven",type:"boolean",private:!0,units:"meters",default:!1,doc:"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.",transition:!0,requires:["building-roof-shape"],expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}},layout_line:{"line-cap":{type:"enum",values:{butt:{doc:"A cap with a squared-off end which is drawn to the exact endpoint of the line."},round:{doc:"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},square:{doc:"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."}},default:"butt",doc:"The display of line endings.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-join":{type:"enum",values:{bevel:{doc:"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line's width."},round:{doc:"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line's width and centered on the endpoint of the line."},miter:{doc:"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},none:{doc:"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can't be used with data-driven styling."}},default:"miter",doc:"The display of lines when joining.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"`none` value":{js:"3.4.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,doc:"Used to automatically convert miter joins to bevel joins for sharp angles.",requires:[{"line-join":"miter"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,doc:"Used to automatically convert round joins to miter joins for shallow angles.",requires:[{"line-join":"round"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"},"data-driven styling":{js:"1.2.0",android:"9.1.0",ios:"5.8.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{type:"number",doc:"Vertical offset from ground, in meters. Not supported for globe projection at the moment.",default:0,requires:["line-elevation-reference"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{type:"enum",doc:"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.",values:{none:{doc:"Elevated rendering is disabled."},sea:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},default:"none",transition:!1,"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"line-cross-slope":{type:"number",experimental:!0,doc:"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\n * Vertical lines don't support line caps \n * `line-join: round` is not supported with this property",requires:["line-z-offset"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1},"property-type":"constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"},"line-width-unit":{type:"enum",doc:"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.",values:{pixels:{doc:"Width is rendered in pixels."},meters:{doc:"Width is rendered in meters."}},default:"pixels",experimental:!0,private:!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{type:"number",default:0,minimum:0,maximum:1,doc:"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"},"data-driven styling":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:!0,parameters:["zoom","feature","line-progress"]},requires:["line-z-offset"],transition:!0,"property-type":"data-driven"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{doc:"The label is placed at the point where the geometry is located."},line:{doc:"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{doc:"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},default:"point",doc:"Label placement relative to its geometry.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`line-center` value":{js:"0.47.0",android:"6.4.0",ios:"4.3.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",doc:"Distance between two symbol anchors.",requires:[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,doc:"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",doc:"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"},"data-driven styling":{js:"0.53.0",android:"7.4.0",ios:"4.11.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{doc:"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},source:{doc:"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},default:"auto",doc:"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{js:"0.49.0",android:"6.6.0",ios:"4.5.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{type:"boolean",default:!1,doc:"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},requires:[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{type:"enum",doc:"Selects the base of symbol-elevation.",values:{sea:{doc:"Elevate symbols relative to the sea level."},ground:{doc:"Elevate symbols relative to the ground's height below them."},"hd-road-markup":{doc:"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},default:"ground",experimental:!0,"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0"}},requires:[{"symbol-z-elevate":!0}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,doc:"If true, the icon will be visible even if it collides with other previously drawn symbols.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,doc:"If true, other symbols can be visible even if they collide with the icon.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,doc:"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},viewport:{doc:"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},default:"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of icons.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",doc:"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.",appearance:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{type:"array",value:"number",length:2,default:[.8,2],doc:"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]",minimum:[.1,.1],maximum:[10,10],experimental:!0,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{type:"enum",values:{none:{doc:"The icon is displayed at its intrinsic aspect ratio."},width:{doc:"The icon is scaled in the x-dimension to fit the width of the text."},height:{doc:"The icon is scaled in the y-dimension to fit the height of the text."},both:{doc:"The icon is scaled in both x- and y-dimensions."}},default:"none",doc:"Scales the icon to fit around the associated text.",requires:["icon-image","text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"stretchable icons":{js:"1.6.0",android:"9.2.0",ios:"5.8.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",doc:"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-image":{type:"resolvedImage",doc:"Name of image in sprite to use for drawing an image background.",tokens:!0,appearance:!0,"use-theme":!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",doc:"Rotates the icon clockwise.",appearance:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",doc:"Size of the additional area around the icon bounding box used for detecting symbol collisions.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,doc:"If true, the icon may be flipped to prevent it from being rendered upside-down.",requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],doc:"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.",appearance:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{doc:"The center of the icon is placed closest to the anchor."},left:{doc:"The left side of the icon is placed closest to the anchor."},right:{doc:"The right side of the icon is placed closest to the anchor."},top:{doc:"The top of the icon is placed closest to the anchor."},bottom:{doc:"The bottom of the icon is placed closest to the anchor."},"top-left":{doc:"The top left corner of the icon is placed closest to the anchor."},"top-right":{doc:"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the icon is placed closest to the anchor."}},default:"center",doc:"Part of the icon placed closest to the anchor.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{doc:"The icon is aligned to the plane of the map."},viewport:{doc:"The icon is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `icon-rotation-alignment`."}},default:"auto",doc:"Orientation of icon when map is pitched.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{doc:"The text is aligned to the plane of the map."},viewport:{doc:"The text is aligned to the plane of the viewport."},auto:{doc:"Automatically matches the value of `text-rotation-alignment`."}},default:"auto",doc:"Orientation of text when map is pitched.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{doc:"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},viewport:{doc:"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},auto:{doc:"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},default:"auto",doc:"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"`auto` value":{js:"0.25.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,doc:"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],doc:"Font stack to use for displaying text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",doc:"Font size.",requires:["text-field"],appearance:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{type:"array",value:"number",length:2,default:[.8,2],doc:"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]",minimum:[.1,.1],maximum:[10,10],experimental:!0,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.8.0"}},"property-type":"data-constant"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",doc:"The maximum line width for text wrapping.",requires:["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",doc:"Text leading value for multi-line text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0",android:"10.0.0",ios:"10.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{type:"number",default:0,units:"ems",doc:"Text tracking amount.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.40.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{doc:"The text is aligned towards the anchor position."},left:{doc:"The text is aligned to the left."},center:{doc:"The text is centered."},right:{doc:"The text is aligned to the right."}},default:"center",doc:"Text justification options.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"},auto:{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,doc:"Radial offset of text, in the direction of the symbol's anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"},"data-driven styling":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},requires:["text-field",{"symbol-placement":["point"]}],doc:"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{js:"0.54.0",android:"7.4.0",ios:"4.10.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{doc:"The center of the text is placed closest to the anchor."},left:{doc:"The left side of the text is placed closest to the anchor."},right:{doc:"The right side of the text is placed closest to the anchor."},top:{doc:"The top of the text is placed closest to the anchor."},bottom:{doc:"The bottom of the text is placed closest to the anchor."},"top-left":{doc:"The top left corner of the text is placed closest to the anchor."},"top-right":{doc:"The top right corner of the text is placed closest to the anchor."},"bottom-left":{doc:"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{doc:"The bottom right corner of the text is placed closest to the anchor."}},default:"center",doc:"Part of the text placed closest to the anchor.",requires:["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",doc:"Maximum angle change between adjacent characters.",requires:["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{doc:"If a text's language supports horizontal writing mode, symbols would be laid out horizontally."},vertical:{doc:"If a text's language supports vertical writing mode, symbols would be laid out vertically."}},doc:"The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either ['horizontal', 'vertical'] or ['vertical', 'horizontal'], the order doesn't affect the placement.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"1.3.0",android:"8.3.0",ios:"5.3.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",doc:"Rotates the text clockwise.",requires:["text-field"],appearance:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",doc:"Size of the additional area around the text bounding box used for detecting symbol collisions.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,doc:"If true, the text may be flipped vertically to prevent it from being rendered upside-down.",requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{doc:"The text is not altered."},uppercase:{doc:"Forces all letters to be displayed in uppercase."},lowercase:{doc:"Forces all letters to be displayed in lowercase."}},default:"none",doc:"Specifies how to capitalize text, similar to the CSS `text-transform` property.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",doc:"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],appearance:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.35.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,doc:"If true, the text will be visible even if it collides with other previously drawn symbols.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,doc:"If true, other symbols can be visible even if they collide with the text.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,doc:"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.",requires:["text-field","icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},"layout_raster-particle":{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"expressions support":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:!1},"property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{doc:"The layer is shown."},none:{doc:"The layer is not shown."}},default:"visible",doc:"Whether this layer is displayed.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"},"expressions support":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!1},"property-type":"constant"}},filter:{type:"array",value:"*",doc:"A filter selects specific features from a layer."},filter_symbol:{type:"boolean",doc:'Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature","pitch","distance-from-center"]}},filter_fill:{type:"boolean",doc:'Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_hillshade:{type:"boolean",doc:'Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_raster:{type:"boolean",doc:'Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},"filter_raster-particle":{type:"boolean",doc:'Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_clip:{type:"boolean",doc:'Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_model:{type:"boolean",doc:'Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_line:{type:"boolean",doc:'Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_circle:{type:"boolean",doc:'Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},"filter_fill-extrusion":{type:"boolean",doc:'Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_building:{type:"boolean",doc:'Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_heatmap:{type:"boolean",doc:'Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `["pitch"]` and `["distance-from-center"]` expressions to reference the current state of the view.',default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}},filter_operator:{type:"enum",values:{"==":{doc:'`["==", key, value]` equality: `feature[key] = value`'},"!=":{doc:'`["!=", key, value]` inequality: `feature[key] ≠ value`'},">":{doc:'`[">", key, value]` greater than: `feature[key] > value`'},">=":{doc:'`[">=", key, value]` greater than or equal: `feature[key] ≥ value`'},"<":{doc:'`["<", key, value]` less than: `feature[key] < value`'},"<=":{doc:'`["<=", key, value]` less than or equal: `feature[key] ≤ value`'},in:{doc:'`["in", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`'},"!in":{doc:'`["!in", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`'},all:{doc:'`["all", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`'},any:{doc:'`["any", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`'},none:{doc:'`["none", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`'},has:{doc:'`["has", key]` `feature[key]` exists'},"!has":{doc:'`["!has", key]` `feature[key]` does not exist'}},doc:"The filter operator."},geometry_type:{type:"enum",values:{Point:{doc:"Filter to point geometries."},LineString:{doc:"Filter to line geometries."},Polygon:{doc:"Filter to polygon geometries."}},doc:"The geometry type for the filter to select."},function:{expression:{type:"expression",doc:"An expression."},stops:{type:"array",doc:"An array of stops.",value:"function_stop"},base:{type:"number",default:1,minimum:0,doc:"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},property:{type:"string",doc:"The name of a feature property to use as the function input.",default:"$zoom"},type:{type:"enum",values:{identity:{doc:"Return the input value as the output value."},exponential:{doc:"Generate an output by interpolating between stops just less than and just greater than the function input."},interval:{doc:"Return the output value of the stop just less than the function input."},categorical:{doc:"Return the output value of the stop equal to the function input."}},doc:"The interpolation strategy to use in function evaluation.",default:"exponential"},colorSpace:{type:"enum",values:{rgb:{doc:"Use the RGB color space to interpolate color values"},lab:{doc:"Use the LAB color space to interpolate color values."},hcl:{doc:"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},doc:"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.",default:"rgb"},default:{type:"*",required:!1,doc:"A value to serve as a fallback function result when a value isn't otherwise available. It is used in the following circumstances:\n* In categorical functions, when the feature value does not match any of the stop domain values.\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\nIf no default is provided, the style property's default is used in these circumstances."}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2,doc:"Zoom level and value pair."},expression:{type:"array",value:"*",minimum:1,doc:"An expression defines a function that can be used for data-driven style properties or feature filters."},expression_name:{doc:"",type:"enum",values:{let:{doc:'Binds expressions to named variables, which can then be referenced in the result expression using ["var", "variable_name"].',group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},var:{doc:'References variable bound using "let".',group:"Variable binding","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},config:{doc:"Retrieves the configuration value for the given option. Returns null if the requested option is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},literal:{doc:"Provides a literal array or object value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},array:{doc:"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},at:{doc:"Retrieves an item from an array.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"at-interpolated":{doc:"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.11.0",android:"11.12.0",ios:"11.12.0"}}},in:{doc:"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).",group:"Lookup","sdk-support":{"basic functionality":{js:"1.6.0",android:"9.1.0",ios:"5.8.0"}}},"index-of":{doc:"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},slice:{doc:"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.",group:"Lookup","sdk-support":{"basic functionality":{js:"1.10.0",android:"10.0.0",ios:"10.0.0"}}},split:{doc:"Returns an array of substrings from a string, split by a delimiter parameter.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.14.0",android:"11.14.0",ios:"11.14.0"}}},case:{doc:"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},match:{doc:'Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `["get", "building_type"]`). Each label must be unique, and must be either:\n - a single literal value; or\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `["c", "b"]`).\n\nThe input matches if any of the values in the array matches using strict equality, similar to the `"in"` operator.\nIf the input type does not match the type of the labels, the result will be the fallback value.',group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},coalesce:{doc:"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`'image'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},step:{doc:'Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},interpolate:{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). The `input` may be any numeric expression (e.g., `["get", "population"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\n\nInterpolation types:\n- `["linear"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\n- `["exponential", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\n- `["cubic-bezier", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},"interpolate-hcl":{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},"interpolate-lab":{doc:'Produces continuous, smooth results by interpolating between pairs of input and output values ("stops"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.',group:"Ramps, scales, curves","sdk-support":{"basic functionality":{js:"0.49.0"}}},ln2:{doc:"Returns mathematical constant ln(2).",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pi:{doc:"Returns the mathematical constant pi.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},e:{doc:"Returns the mathematical constant e.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},typeof:{doc:"Returns a string describing the type of the given value.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},string:{doc:"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},number:{doc:"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},boolean:{doc:"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},object:{doc:"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},collator:{doc:"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.",group:"Types","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},format:{doc:'Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\n- `"text-font"`: Overrides the font stack specified by the root layout property.\n- `"text-color"`: Overrides the color specified by the root paint property.\n- `"font-scale"`: Applies a scaling factor on `text-size` as specified by the root layout property.',group:"Types","sdk-support":{"basic functionality":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-font":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"font-scale":{js:"0.48.0",android:"6.7.0",ios:"4.6.0"},"text-color":{js:"1.3.0",android:"7.3.0",ios:"4.10.0"},image:{js:"1.6.0",android:"8.6.0",ios:"5.7.0"}}},image:{doc:"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`'format'`](#types-format) expression.\n\nA [`'coalesce'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `'image'` argument.\n\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\n\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `'image'` expression.",group:"Types","sdk-support":{"basic functionality":{js:"1.4.0",android:"8.6.0",ios:"5.7.0"}}},"number-format":{doc:"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.",group:"Types","sdk-support":{"basic functionality":{js:"0.54.0",android:"8.4.0",ios:"5.4.0"}}},"to-string":{doc:'Converts the input value to a string. If the input is `null`, the result is `""`. If the input is a [`boolean`](#types-boolean), the result is `"true"` or `"false"`. If the input is a number, it is converted to a string as specified by the ["NumberToString" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `"rgba(r,g,b,a)"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`\'image\'`](#types-image) expression, `\'to-string\'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.',group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-number":{doc:'Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the ["ToNumber Applied to the String Type" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.',group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-boolean":{doc:"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-rgba":{doc:"Returns a four-element array containing the input color's red, green, blue, and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"to-hsla":{doc:"Returns a four-element array containing the input color's Hue, Saturation, Luminance and alpha components, in that order.",group:"Color","sdk-support":{"basic functionality":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}}},"to-color":{doc:"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.",group:"Types","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgb:{doc:"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},rgba:{doc:"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},hsl:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},hsla:{doc:"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.",group:"Color","sdk-support":{"basic functionality":{js:"2.12.1",android:"10.11.0",ios:"10.11.0"}}},get:{doc:"Retrieves a property value from the current feature's properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},has:{doc:"Tests for the presence of an property value in the current feature's properties, or from another object if a second argument is provided.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},length:{doc:"Returns the length of an array or string.",group:"Lookup","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},properties:{doc:'Returns the feature properties object. Note that in some cases, it may be more efficient to use `["get", "property_name"]` directly.',group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"feature-state":{doc:"Retrieves a property value from the current feature's state. Returns `null` if the requested property is not present on the feature's state. A feature's state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\"feature-state\"] can only be used with paint properties that support data-driven styling.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.46.0",android:"10.0.0",ios:"10.0.0"}}},"geometry-type":{doc:"Returns the feature's geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},worldview:{doc:"Returns the current worldview being used.",group:"Lookup",experimental:!0,"sdk-support":{"basic functionality":{js:"3.13.0",android:"11.13.0",ios:"11.13.0"}}},id:{doc:"Returns the feature's id, if it has one.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},zoom:{doc:'Returns the current zoom level. Note that in style layout and paint properties, ["zoom"] may only appear as the input to a top-level "step" or "interpolate" expression.',group:"Camera","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},pitch:{doc:'Returns the current pitch in degrees. `["pitch"]` may only be used in the `filter` expression for a `symbol` layer.',group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"distance-from-center":{doc:'Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `["distance-from-center"]` may only be used in the `filter` expression for a `symbol` layer.',group:"Camera","sdk-support":{"basic functionality":{js:"2.6.0",android:"10.9.0",ios:"10.9.0"}}},"measure-light":{doc:"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.",group:"Lookup","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"heatmap-density":{doc:"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.",group:"Heatmap","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"line-progress":{doc:"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.6.0"}}},"sky-radial-progress":{doc:"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.",group:"sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},accumulated:{doc:"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.",group:"Feature data","sdk-support":{"basic functionality":{js:"0.53.0",android:"8.4.0",ios:"5.5.0"}}},"+":{doc:"Returns the sum of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"*":{doc:"Returns the product of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"-":{doc:"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"/":{doc:"Returns the result of floating point division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"%":{doc:"Returns the remainder after integer division of the first input by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"^":{doc:"Returns the result of raising the first input to the power specified by the second.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sqrt:{doc:"Returns the square root of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.42.0",android:"6.0.0",ios:"4.0.0"}}},log10:{doc:"Returns the base-ten logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},ln:{doc:"Returns the natural logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},log2:{doc:"Returns the base-two logarithm of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},sin:{doc:"Returns the sine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},cos:{doc:"Returns the cosine of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},tan:{doc:"Returns the tangent of the input, interpreted as radians.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},asin:{doc:"Returns the arcsine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},acos:{doc:"Returns the arccosine of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},atan:{doc:"Returns the arctangent of the input, in radians between −π/2 and π/2.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},min:{doc:"Returns the minimum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},max:{doc:"Returns the maximum value of the inputs.",group:"Math","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},round:{doc:'Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `["round", -1.5]` evaluates to -2.',group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},abs:{doc:"Returns the absolute value of the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},ceil:{doc:"Returns the smallest integer that is greater than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},floor:{doc:"Returns the largest integer that is less than or equal to the input.",group:"Math","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.0.0",ios:"4.0.0"}}},distance:{doc:"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"9.2.0",ios:"5.9.0"}}},"==":{doc:"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"!=":{doc:"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">":{doc:"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<":{doc:"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},">=":{doc:"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"<=":{doc:"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},collator:{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},all:{doc:"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},any:{doc:"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"!":{doc:"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.",group:"Decision","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},within:{doc:"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line's endpoint is on the boundary.",group:"Decision","sdk-support":{"basic functionality":{js:"1.9.0",android:"9.1.0",ios:"5.8.0"}}},"is-supported-script":{doc:"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.6.0",ios:"4.1.0"}}},upcase:{doc:"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},downcase:{doc:"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},concat:{doc:"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.",group:"String","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}}},"resolved-locale":{doc:"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.",group:"String","sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.2.0"}}},"raster-value":{doc:"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.",group:"Raster Colorization","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-particle-speed":{doc:"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.",group:"Raster Particle Animation","sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"is-active-floor":{doc:"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.",group:"Indoor",experimental:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},random:{doc:"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",group:"Math","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}}},fog:{range:{type:"array",default:[.5,10],minimum:-20,maximum:20,length:2,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",example:[.5,10],"sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"high-color":{type:"color","property-type":"data-constant",default:"#245cdf",expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"space-color":{type:"color","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"horizon-blend":{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],4,.2,7,.1],minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{js:"2.3.0",android:"10.6.0",ios:"10.6.0"}}},"star-intensity":{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],5,.35,6,0],minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{js:"2.9.0",android:"10.6.0",ios:"10.6.0"}}},"vertical-range":{type:"array",default:[0,0],minimum:0,length:2,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}}},snow:{density:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,.85],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Snow particles color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,.3],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant",default:"#ffffff",experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant",default:.4,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array",default:[0,50],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:!0,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"Main snow particles direction. Azimuth and polar angles",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"flake-size":{type:"number","property-type":"data-constant",default:.71,minimum:0,maximum:5,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}},rain:{density:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,.5],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},intensity:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},color:{type:"color","property-type":"data-constant",default:["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",.3,"#a8adbc"],experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},opacity:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["measure-light","brightness"],0,.88,1,.7],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles opacity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},vignette:{type:"number","property-type":"data-constant",default:["interpolate",["linear"],["zoom"],11,0,13,1],minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"vignette-color":{type:"color","property-type":"data-constant",default:["interpolate",["linear"],["measure-light","brightness"],0,"#001736",.3,"#464646"],experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},"use-theme":!0,transition:!0,doc:"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"center-thinning":{type:"number","property-type":"data-constant",default:.57,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},direction:{type:"array",default:[0,80],minimum:0,maximum:360,length:2,value:"number","property-type":"data-constant",transition:!0,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"Main rain particles direction. Azimuth and polar angles.",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"droplet-size":{type:"array",default:[2.6,18.2],minimum:0,maximum:50,length:2,value:"number","property-type":"data-constant",transition:!0,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},doc:"Rain droplet size. x - normal to direction, y - along direction",example:[0,45],"sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}},"distortion-strength":{type:"number","property-type":"data-constant",default:.7,minimum:0,maximum:1,experimental:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"],relaxZoomRestriction:!0},transition:!0,doc:"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{android:"11.9.0",ios:"11.9.0",js:"3.9.0"}}}},camera:{"camera-projection":{doc:"Camera projection describes how 3D world geometry get projected into 2D screen",type:"enum",values:{perspective:{doc:"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},orthographic:{doc:"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},default:"perspective","property-type":"data-constant"}},colorTheme:{data:{type:"string",doc:"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.",transition:!1,"property-type":"data-constant",expression:{interpolated:!1}}},indoor_source:{sourceId:{type:"string",doc:"Source ID of a source to be used to retrieve indoor data.",experimental:!0,private:!0,transition:!1,"property-type":"data-constant"},sourceLayers:{type:"array",value:"string",doc:"An array of source layers to be used to retrieve indoor data.",experimental:!0,private:!0,transition:!1,"property-type":"data-constant"}},indoor:{"*":{type:"indoor_source",private:!0,experimental:!0,doc:"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}},light:{anchor:{type:"enum",default:"viewport",values:{map:{doc:"The position of the light source is aligned to the rotation of the map."},viewport:{doc:"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]},doc:"Whether extruded geometries are lit relative to the map or viewport.",example:"map","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},doc:"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).",example:[1.5,90,80],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},"use-theme":!0,transition:!0,doc:"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}}}},projection:{name:{type:"enum",values:{albers:{doc:"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},equalEarth:{doc:"An Equal Earth projection."},equirectangular:{doc:"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},lambertConformalConic:{doc:"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},mercator:{doc:"The Mercator projection is the default projection."},naturalEarth:{doc:"A Natural Earth projection."},winkelTripel:{doc:"A Winkel Tripel projection."},globe:{doc:"A globe projection."}},default:"mercator",doc:"The name of the projection to be used for rendering the map.",required:!0,"sdk-support":{"basic functionality":{js:"2.6.0",ios:"10.5.0",android:"10.5.0"}}},center:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-180,-90],maximum:[180,90],transition:!1,doc:"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].",example:[-96,37.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}},parallels:{type:"array",length:2,value:"number","property-type":"data-constant",minimum:[-90,-90],maximum:[90,90],transition:!1,doc:"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).",example:[29.5,45.5],requires:[{name:["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{js:"2.6.0"}}}},terrain:{source:{type:"string",doc:"Name of a source of `raster_dem` type to be used for terrain elevation.",required:!0,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}},exaggeration:{type:"number","property-type":"data-constant",default:1,minimum:0,maximum:1e3,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.",requires:["source"],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,doc:"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.21.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",doc:"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":!0,transition:!0,requires:[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",doc:"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":!0,transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.19.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{doc:"The fill is translated relative to the map."},viewport:{doc:"The fill is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-translate`.",default:"map",requires:["fill-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{type:"number",doc:"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.",default:0,minimum:0,transition:!0,experimental:!0,"sdk-support":{"basic functionality":{js:"3.7.0"},"data-driven styling":{js:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{type:"color",default:"rgba(241, 236, 225, 255)",doc:"The color of bridge guard rail.",experimental:!0,private:!0,"use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{type:"color",default:"rgba(241, 236, 225, 255)",doc:"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":!0,transition:!0,experimental:!0,private:!0,"sdk-support":{"basic functionality":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"},"data-driven styling":{android:"11.11.0",ios:"11.11.0",js:"3.14.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:!0,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",doc:"The base color of the extruded fill. The extrusion's surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":!0,transition:!0,requires:[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{doc:"The fill extrusion is translated relative to the map."},viewport:{doc:"The fill extrusion is translated relative to the viewport."}},doc:"Controls the frame of reference for `fill-extrusion-translate`.",default:"map",requires:["fill-extrusion-translate"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude this layer.",transition:!0,"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",doc:"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.",transition:!0,requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"},"data-driven styling":{js:"0.27.0",android:"5.1.0",ios:"3.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{type:"enum",experimental:!0,values:{terrain:{doc:"The fill extrusion height follows terrain slope."},flat:{doc:"The fill extrusion height is flat over terrain."}},doc:"Controls the behavior of fill extrusion height over terrain",default:"flat",requires:["fill-extrusion-height"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{type:"enum",experimental:!0,values:{terrain:{doc:"The fill extrusion base follows terrain slope."},flat:{doc:"The fill extrusion base is flat over terrain."}},doc:"Controls the behavior of fill extrusion base over terrain",default:"terrain",requires:["fill-extrusion-base"],"sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,doc:"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.",transition:!1,"sdk-support":{"basic functionality":{js:"0.50.0",android:"7.0.0",ios:"4.7.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant",type:"number",default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.",requires:["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.7.0",ios:"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant",type:"number",experimental:!0,default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.",requires:["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number",experimental:!0,default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant",type:"color",experimental:!0,default:"#ffffff",doc:"The color of the flood light effect on the walls of the extruded buildings.",requires:["lights"],"use-theme":!0,transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant",type:"number",experimental:!0,default:0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven",type:"number",experimental:!0,units:"meters",default:0,minimum:0,doc:"The extent of the flood light effect on the walls of the extruded buildings in meters.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven",type:"number",experimental:!0,units:"meters",default:0,doc:"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number",experimental:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant",type:"number",experimental:!0,default:1,minimum:0,doc:"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant",type:"boolean",default:!0,experimental:!0,doc:"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.",requires:["fill-extrusion-edge-radius"],transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.10.0",ios:"10.10.0"}},expression:{interpolated:!1,parameters:["zoom"]}},"fill-extrusion-cutoff-fade-range":{type:"number",default:0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:!1,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{type:"array",private:!0,experimental:!0,value:"number","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]},length:3,default:[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"fill-extrusion-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{type:"number",default:0,minimum:0,transition:!0,experimental:!0,units:"meters",doc:"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow casting for this layer",transition:!1,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.8.0",ios:"11.8.0"}},"property-type":"data-constant"}},paint_building:{"building-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.",transition:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant",type:"number",default:0,minimum:0,maximum:1,private:!0,expression:{interpolated:!1,parameters:[]},transition:!0,doc:"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant",type:"number",default:0,minimum:0,maximum:1,private:!0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant",type:"number",private:!0,default:3,minimum:0,expression:{interpolated:!0,parameters:["zoom"]},transition:!0,doc:"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant",type:"number",private:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant",type:"number",private:!0,default:1,minimum:0,doc:"A global multiplier that can be used to scale base and height of the procedural buildings.",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-cast-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow casting for this layer",transition:!1,private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-color":{type:"color",default:"rgba(193, 154, 127, 1)",doc:"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).",private:!0,"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{type:"number",default:0,minimum:0,maximum:5,units:"intensity",doc:"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).",private:!0,"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"},"data-driven styling":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{type:"number",default:.35,minimum:0,maximum:1,doc:"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.",private:!0,"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},expression:{interpolated:!0,parameters:["measure-light","zoom"]}},"building-cutoff-fade-range":{type:"number",private:!0,default:0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:!1,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{type:"array",private:!0,experimental:!0,value:"number","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]},length:3,default:[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.21.0",android:"11.21.0",ios:"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant",type:"color",private:!0,default:"#ffffff",doc:"The color of the flood light effect on the walls of the buildings.",requires:["lights"],"use-theme":!0,transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant",type:"number",private:!0,default:0,minimum:0,maximum:1,doc:"The intensity of the flood light color.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant",type:"number",private:!0,default:.69,minimum:0,maximum:1,doc:"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.",requires:["lights"],transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.16.0",android:"11.16.0",ios:"11.16.0"}}}},paint_line:{"line-opacity":{type:"number",doc:"The opacity at which the line will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{type:"color",doc:"The color with which the line will be drawn.",default:"#000000","use-theme":!0,transition:!0,requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.23.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{doc:"The line is translated relative to the map."},viewport:{doc:"The line is translated relative to the viewport."}},doc:"Controls the frame of reference for `line-translate`.",default:"map",requires:["line-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",doc:"Stroke thickness.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,doc:"Draws a line casing outside of a line's actual path. Value indicates the width of the inner gap.",transition:!0,units:"pixels","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,doc:"The line's offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.",transition:!0,units:"pixels","sdk-support":{"basic functionality":{js:"0.12.1",android:"3.0.0",ios:"3.1.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",doc:"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won't render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.",minimum:0,transition:!1,units:"line widths",requires:[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"2.3.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.49.0",android:"6.5.0",ios:"4.4.0"}},expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["line-pattern"],"sdk-support":{"basic functionality":{js:"3.12.0",android:"11.14.0",ios:"11.14.0"}},doc:"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{type:"color",doc:'A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature\'s total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `"lineMetrics": true`.',example:["interpolate",["linear"],["line-progress"],0,"blue",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],"use-theme":!0,transition:!1,requires:[{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],"sdk-support":{"basic functionality":{js:"0.45.0",android:"6.5.0",ios:"4.4.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{type:"array",value:"number",doc:"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].",length:2,default:[0,0],minimum:[0,0],maximum:[1,1],transition:!1,requires:[{source:"geojson",has:{lineMetrics:!0}}],"sdk-support":{"basic functionality":{js:"2.9.0",android:"10.5.0",ios:"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{type:"array",value:"number",doc:"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.",experimental:!0,length:2,default:[0,0],minimum:[0,0],maximum:[1,1],transition:!1,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["zoom","measure-light"]},"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{type:"color",doc:"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.",experimental:!0,default:"transparent","use-theme":!0,transition:!0,requires:["line-trim-offset",{source:"geojson",has:{lineMetrics:!0}}],"sdk-support":{"basic functionality":{js:"3.6.0",android:"11.6.0",ios:"11.6.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.17.0",android:"11.17.0",ios:"11.17.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{type:"number",private:!0,doc:"The width of the line border. A value of zero means no border.",default:0,minimum:0,transition:!0,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{type:"color",private:!0,doc:"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.",default:"rgba(0, 0, 0, 0)","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"},"data-driven styling":{js:"3.0.0",android:"10.9.0",ios:"10.9.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{type:"number",default:0,minimum:0,maximum:1,doc:"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!0,parameters:["zoom"]},transition:!0,"property-type":"data-constant"},"line-blend-mode":{type:"enum",values:{default:{doc:"Normal non-blended rendering mode."},multiply:{doc:"Line features are composited using multiply blending."},additive:{doc:"Line features are composited using additive density accumulation with tone mapping."}},doc:"Controls the blend mode used for rendering line features.",default:"default",experimental:!0,private:!0,"sdk-support":{"basic functionality":{js:"3.21.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",doc:"Circle radius.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",doc:"The fill color of the circle.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.18.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,doc:"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{type:"number",doc:"The opacity at which the circle will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.20.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",doc:"The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{doc:"The circle is translated relative to the map."},viewport:{doc:"The circle is translated relative to the viewport."}},doc:"Controls the frame of reference for `circle-translate`.",default:"map",requires:["circle-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{doc:"Circles are scaled according to their apparent distance to the camera."},viewport:{doc:"Circles are not scaled."}},default:"map",doc:"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{js:"0.21.0",android:"4.2.0",ios:"3.4.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{doc:"The circle is aligned to the plane of the map."},viewport:{doc:"The circle is aligned to the plane of the viewport."}},default:"viewport",doc:"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{js:"0.39.0",android:"5.2.0",ios:"3.7.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"The width of the circle's stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",doc:"The stroke color of the circle.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",doc:"The opacity of the circle's stroke.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"},"data-driven styling":{js:"0.29.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",doc:"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,doc:"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,doc:"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],doc:'Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `["heatmap-density"]` as input.',"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",doc:"The global opacity at which the heatmap layer will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.41.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{doc:"The opacity at which the icon will be drawn.",type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-occlusion-opacity":{doc:"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",type:"number",minimum:0,maximum:1,default:0,transition:!0,requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-emissive-strength":{type:"number",default:1,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature-state"]},appearance:!0,"property-type":"data-driven"},"text-emissive-strength":{type:"number",default:1,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light","feature-state"]},appearance:!0,"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000","use-theme":!0,transition:!0,doc:"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)","use-theme":!0,transition:!0,doc:"The color of the icon's halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Distance of halo to the icon outline.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Fade out the halo towards the outside.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,appearance:!0,units:"pixels",doc:"Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["icon-image"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{doc:"Icons are translated relative to the map."},viewport:{doc:"Icons are translated relative to the viewport."}},doc:"Controls the frame of reference for `icon-translate`.",default:"map",requires:["icon-image","icon-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{type:"number","property-type":"data-constant",default:0,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom","measure-light"]},requires:["icon-image"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},doc:"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{type:"number",doc:"The opacity at which the text will be drawn.",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-occlusion-opacity":{type:"number",doc:"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.",minimum:0,maximum:1,default:0,transition:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"},"data-driven styling":{js:"3.5.0",android:"11.5.0",ios:"11.6.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-color":{type:"color",doc:"The color with which the text will be drawn.",default:"#000000","use-theme":!0,transition:!0,overridable:!0,requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)","use-theme":!0,transition:!0,doc:"The color of the text's halo, which helps it stand out from backgrounds.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",doc:"The halo's fadeout distance towards the outside.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"},"data-driven styling":{js:"0.33.0",android:"5.0.0",ios:"3.5.0"}},expression:{interpolated:!0,parameters:["zoom","feature","feature-state","measure-light"]},appearance:!0,"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,appearance:!0,units:"pixels",doc:"Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.",requires:["text-field"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{doc:"The text is translated relative to the map."},viewport:{doc:"The text is translated relative to the viewport."}},doc:"Controls the frame of reference for `text-translate`.",default:"map",requires:["text-field","text-translate"],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!1,doc:"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"icon-color-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!1,doc:"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"icon-color-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the minimum brightness.",default:0,minimum:0,maximum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"icon-color-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the symbols. The value is the maximum brightness.",default:1,minimum:0,maximum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.5.0",android:"11.5.0",ios:"11.5.0"}},expression:{interpolated:!1},"property-type":"data-constant"},"symbol-z-offset":{type:"number",doc:"Specifies an uniform elevation from the ground, in meters.",default:0,minimum:0,transition:!0,experimental:!0,appearance:!0,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"},"data-driven styling":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},requires:[{"symbol-z-elevate":!0}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"}},paint_raster:{"raster-opacity":{type:"number",doc:"The opacity at which the image will be drawn.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-color":{type:"color",doc:'Defines a color map by which to colorize a raster layer, parameterized by the `["raster-value"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.',"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{type:"array",default:[.2126,.7152,.0722,0],length:4,value:"number","property-type":"data-constant",transition:!0,requires:["raster-color"],expression:{interpolated:!0,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.",example:[.2126,.7152,.0722,0],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-color-range":{type:"array",length:2,value:"number","property-type":"data-constant",transition:!0,requires:["raster-color"],expression:{interpolated:!0,parameters:["zoom"]},doc:"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source's stated data range is used.",example:[.5,10],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}}},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",doc:"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the minimum brightness.",default:0,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",doc:"Increase or reduce the brightness of the image. The value is the maximum brightness.",default:1,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",doc:"Increase or reduce the saturation of the image.",default:0,minimum:-1,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",doc:"Increase or reduce the contrast of the image.",default:0,minimum:-1,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",doc:"The resampling/interpolation method to use for overscaling, also known as texture magnification filter",values:{linear:{doc:"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},nearest:{doc:"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},default:"linear","sdk-support":{"basic functionality":{js:"0.47.0",android:"6.3.0",ios:"4.2.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",doc:"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{type:"string",required:!1,experimental:!0,"property-type":"data-constant",transition:!1,requires:[{source:"raster-array"}],doc:"Displayed band of raster array source layer. Defaults to the first band if not set.",example:"band-name","sdk-support":{"basic functionality":{js:"3.1.0",android:"11.1.0",ios:"11.1.0"}}},"raster-elevation":{type:"number",doc:"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.",default:0,minimum:0,transition:!0,experimental:!0,"sdk-support":{"basic functionality":{js:"3.1.0",android:"11.2.0",ios:"11.2.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{type:"enum",doc:"Selects the base of raster-elevation.",values:{sea:{doc:"Use this mode to elevate raster layers relative to the sea level."},ground:{doc:"Use this mode to elevate raster layers relative to the ground's height below them."}},default:"sea",transition:!1,experimental:!0,"sdk-support":{"basic functionality":{js:"3.19.0",android:"11.19.0",ios:"11.19.0"}},expression:{interpolated:!1},"property-type":"data-constant"}},"paint_raster-particle":{"raster-particle-array-band":{type:"string",required:!1,"property-type":"data-constant",transition:!1,doc:"Displayed band of raster array source layer",example:'"1713348000"',"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}}},"raster-particle-count":{type:"number",doc:"Defines the amount of particles per tile.",default:512,minimum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{type:"color",doc:'Defines a color map by which to colorize a raster particle layer, parameterized by the `["raster-particle-speed"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.',"use-theme":!0,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{type:"number",doc:"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.",default:1,minimum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{type:"number",doc:"Defines a coefficient for the speed of particles’ motion.",default:.2,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{type:"number",doc:"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.",default:.98,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{type:"number",doc:"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).",default:.8,minimum:0,maximum:1,transition:!1,"sdk-support":{"basic functionality":{js:"3.3.0",android:"11.4.0",ios:"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{type:"number",doc:"Defines an uniform elevation from sea level, in meters.",default:0,minimum:0,transition:!0,"sdk-support":{"basic functionality":{js:"3.7.0",android:"11.7.0",ios:"11.7.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,doc:"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.",transition:!1,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{doc:"The hillshade illumination is relative to the north direction."},viewport:{doc:"The hillshade illumination is relative to the top of the viewport."}},default:"viewport",doc:"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",doc:"Intensity of the hillshade",default:.5,minimum:0,maximum:1,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",doc:"The shading color of areas that face away from the light source.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",doc:"The shading color of areas that faces towards the light source.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",doc:"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":!0,transition:!0,"sdk-support":{"basic functionality":{js:"0.43.0",android:"6.0.0",ios:"4.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"}},paint_background:{"background-pitch-alignment":{type:"enum",values:{map:{doc:"The background is aligned to the plane of the map."},viewport:{doc:"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},default:"map",doc:"Orientation of background layer.","sdk-support":{"basic functionality":{js:"3.8.0",android:"11.8.0",ios:"11.8.0"}},expression:{interpolated:!1,parameters:[]},experimental:!0,"property-type":"data-constant"},"background-color":{type:"color",default:"#000000",doc:"The color with which the background will be drawn.","use-theme":!0,transition:!0,requires:[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!1,doc:"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity at which the background will be drawn.",transition:!0,"sdk-support":{"basic functionality":{js:"0.10.0",android:"2.0.1",ios:"2.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{type:"number",default:0,minimum:0,transition:!0,units:"intensity",doc:"Controls the intensity of light emitted on the source features.",requires:["lights"],"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},expression:{interpolated:!0,parameters:["zoom","measure-light"]},"property-type":"data-constant"}},paint_sky:{"sky-type":{type:"enum",values:{gradient:{doc:"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},atmosphere:{doc:"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},default:"atmosphere",doc:"The type of the sky","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{type:"array",value:"number",length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:!1,doc:"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},requires:[{"sky-type":"atmosphere"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{type:"number",requires:[{"sky-type":"atmosphere"}],default:10,minimum:0,maximum:100,transition:!1,doc:"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{type:"array",requires:[{"sky-type":"gradient"}],value:"number",default:[0,0],length:2,units:"degrees",minimum:[0,0],maximum:[360,180],transition:!1,doc:"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{type:"number",requires:[{"sky-type":"gradient"}],default:90,minimum:0,maximum:180,transition:!1,doc:"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"sky-gradient":{type:"color",default:["interpolate",["linear"],["sky-radial-progress"],.8,"#87ceeb",1,"white"],doc:"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":!0,transition:!1,requires:[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"},"data-driven styling":{}},expression:{interpolated:!0,parameters:["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{type:"color",default:"white",doc:"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":!0,transition:!1,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{type:"color",default:"white",doc:"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":!0,transition:!1,requires:[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the entire sky layer.",transition:!0,"sdk-support":{"basic functionality":{js:"2.0.0",ios:"10.0.0",android:"10.0.0"}},expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_model:{"model-opacity":{type:"number",default:1,minimum:0,maximum:1,doc:"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.",transition:!0,expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.9.0",android:"11.9.0",ios:"11.9.0"}},"property-type":"data-driven"},"model-rotation":{type:"array",value:"number",length:3,default:[0,0,0],period:360,units:"degrees","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0,doc:"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{type:"array",value:"number",length:3,default:[1,1,1],doc:"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-translation":{type:"array",value:"number",length:3,default:[0,0,0],"property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0,doc:"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{type:"color",default:"#ffffff",doc:"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"use-theme":!0,transition:!0},"model-color-mix-intensity":{type:"number","property-type":"data-driven",default:0,minimum:0,maximum:1,doc:"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model's colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-type":{type:"enum",values:{"common-3d":{doc:"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{doc:"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},default:"common-3d",doc:"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow casting for this layer",transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{type:"boolean",default:!0,doc:"Enable/Disable shadow receiving for this layer",transition:!1,"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{type:"number",default:1,minimum:0,maximum:1,doc:"Intensity of the ambient occlusion if present in the 3D model.",expression:{interpolated:!0,parameters:["zoom"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant",transition:!0},"model-emissive-strength":{type:"number","property-type":"data-driven",default:0,minimum:0,maximum:5,units:"intensity",doc:"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-roughness":{type:"number",default:1,minimum:0,maximum:1,doc:"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-height-based-emissive-strength-multiplier":{type:"array",default:[1,1,1,1,0],length:5,value:"number",doc:"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven",expression:{interpolated:!0,parameters:["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"},"data-driven styling":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},transition:!0},"model-cutoff-fade-range":{type:"number",default:0,minimum:0,maximum:1,doc:"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map's height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.",transition:!1,expression:{interpolated:!1},"sdk-support":{"basic functionality":{js:"3.0.0",android:"11.0.0",ios:"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{type:"array",private:!0,value:"number","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]},length:3,default:[0,0,1],minimum:[0,0,0],maximum:[1,1,1],doc:"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{js:"3.5.0"}}},"model-elevation-reference":{type:"enum",doc:"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.",values:{sea:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},ground:{doc:"Elevated rendering is enabled. Use this mode to elevate models relative to the ground's height below them."},"hd-road-markup":{doc:"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},default:"ground",transition:!1,expression:{interpolated:!1},"property-type":"data-constant","sdk-support":{"basic functionality":{js:"3.17.0",android:"11.10.0",ios:"11.10.0"}}},"model-ignore-line-cutout":{type:"boolean",doc:"When set to true, the layer is not going to be affected by the line cutout effect.",default:!1,transition:!1,expression:{interpolated:!1},"property-type":"data-constant",experimental:!0,private:!0,"sdk-support":{"basic functionality":{android:"11.21.0",ios:"11.21.0"}}}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds",doc:"Time allotted for transitions to complete."},delay:{type:"number",default:0,minimum:0,units:"milliseconds",doc:"Length of time before a transition begins."}},"property-type":{"data-driven":{type:"property-type",doc:"Property is interpolable and can be represented using a property expression."},"color-ramp":{type:"property-type",doc:"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{type:"property-type",doc:"Property is interpolable but cannot be represented using a property expression."},constant:{type:"property-type",doc:"Property is constant across all zoom levels and property values."}},promoteId:{"*":{type:"*",doc:"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}},$doc:{transition:{type:"transition",doc:"Controls how a property transitions to a new value. Overrides the style's root `transition` for this property."},"use-theme":{type:"enum",doc:'Controls whether the associated color property is affected by the global color theme. When set to "none", the color theme is ignored for this property. When set to "default", the color theme is applied.',values:{default:{doc:"The color theme is applied to this property (default behavior)."},none:{doc:"The color theme is ignored for this property."}},default:"default"}}};var mE=function(e){function t(e,r){var n;return oE(this,t),(n=iE(this,t,[r])).message=r,n.key=e,n}return aE(t,sE(Error)),rE(t)}(),vE=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];oE(this,e),this.parent=t,this.bindings={};var n,o=fE(r);try{for(o.s();!(n=o.n()).done;){var i=ZC(n.value,2),a=i[0],s=i[1];this.bindings[a]=s}}catch(e){o.e(e)}finally{o.f()}}return rE(e,[{key:"concat",value:function(t){return new e(this,t)}},{key:"get",value:function(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw new Error("".concat(e," not found in scope."))}},{key:"has",value:function(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}])}(),gE={kind:"null"},bE={kind:"number"},AE={kind:"string"},wE={kind:"boolean"},SE={kind:"color"},CE={kind:"object"},EE={kind:"value"},xE={kind:"collator"},_E={kind:"formatted"},IE={kind:"resolvedImage"};function OE(e,t){return{kind:"array",itemType:e,N:t}}function kE(e){if("array"===e.kind){var t=kE(e.itemType);return"number"==typeof e.N?"array<".concat(t,", ").concat(e.N,">"):"value"===e.itemType.kind?"array":"array<".concat(t,">")}return e.kind}var PE=[gE,bE,AE,wE,SE,_E,CE,OE(EE),IE];function TE(e,t){if("error"===t.kind)return null;if("array"===e.kind){if("array"===t.kind&&(0===t.N&&"value"===t.itemType.kind||!TE(e.itemType,t.itemType))&&("number"!=typeof e.N||e.N===t.N))return null}else{if(e.kind===t.kind)return null;if("value"===e.kind)for(var r=0,n=PE;r255?255:e}function r(e){return e<0?0:e>1?1:e}function n(e){return"%"===e[e.length-1]?t(parseFloat(e)/100*255):t(parseInt(e))}function o(e){return"%"===e[e.length-1]?r(parseFloat(e)/100):r(parseFloat(e))}function i(e,t,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?e+(t-e)*r*6:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}try{LE.parseCSSColor=function(r){var a,s=r.replace(/ /g,"").toLowerCase();if(s in e)return e[s].slice();if("#"===s[0])return 4===s.length?(a=parseInt(s.substr(1),16))>=0&&a<=4095?[(3840&a)>>4|(3840&a)>>8,240&a|(240&a)>>4,15&a|(15&a)<<4,1]:null:7===s.length&&(a=parseInt(s.substr(1),16))>=0&&a<=16777215?[(16711680&a)>>16,(65280&a)>>8,255&a,1]:null;var u=s.indexOf("("),l=s.indexOf(")");if(-1!==u&&l+1===s.length){var c=s.substr(0,u),f=s.substr(u+1,l-(u+1)).split(","),p=1;switch(c){case"rgba":if(4!==f.length)return null;p=o(f.pop());case"rgb":return 3!==f.length?null:[n(f[0]),n(f[1]),n(f[2]),p];case"hsla":if(4!==f.length)return null;p=o(f.pop());case"hsl":if(3!==f.length)return null;var h=(parseFloat(f[0])%360+360)%360/360,y=o(f[1]),d=o(f[2]),m=d<=.5?d*(y+1):d+y-d*y,v=2*d-m;return[t(255*i(v,m,h+1/3)),t(255*i(v,m,h)),t(255*i(v,m,h-1/3)),p];default:return null}}return null}}catch(e){}return LE}();function DE(e,t,r){return e*(1-r)+t*r}var FE=Object.freeze({__proto__:null,array:function(e,t,r){return e.map(function(e,n){return DE(e,t[n],r)})},color:function(e,t,r){return new QE(DE(e.r,t.r,r),DE(e.g,t.g,r),DE(e.b,t.b,r),DE(e.a,t.a,r))},number:DE}),QE=function(){function e(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;oE(this,e),this.r=t,this.g=r,this.b=n,this.a=o}return rE(e,[{key:"toString",value:function(){var e=[this.r,this.g,this.b,this.a],t=e[0],r=e[1],n=e[2],o=e[3];return"rgba(".concat(Math.round(255*t),",").concat(Math.round(255*r),",").concat(Math.round(255*n),",").concat(o,")")}},{key:"toNonPremultipliedRenderColor",value:function(e){var t=this.r,r=this.g,n=this.b,o=this.a;return new UE(e,t,r,n,o)}},{key:"toPremultipliedRenderColor",value:function(e){var t=this.r,r=this.g,n=this.b,o=this.a;return new zE(e,t*o,r*o,n*o,o)}},{key:"clone",value:function(){return new e(this.r,this.g,this.b,this.a)}}],[{key:"parse",value:function(t){if(t){if(t instanceof e)return t;if("string"==typeof t){var r=RE.parseCSSColor(t);if(r)return new e(r[0]/255,r[1]/255,r[2]/255,r[3])}}}}])}(),GE=function(){return rE(function e(t,r,n,o,i){var a=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(oE(this,e),this.premultiplied=!1,this.premultiplied=a,t){var s=t.image.height,u=s*s;this.premultiplied?(r=0===i?0:r/i*(s-1),n=0===i?0:n/i*(s-1),o=0===i?0:o/i*(s-1)):(r*=s-1,n*=s-1,o*=s-1),r=Math.max(0,Math.min(s-1,r)),n=Math.max(0,Math.min(s-1,n)),o=Math.max(0,Math.min(s-1,o));var l=Math.floor(r),c=Math.floor(n),f=Math.floor(o),p=Math.ceil(r),h=Math.ceil(n),y=Math.ceil(o),d=r-l,m=n-c,v=o-f,g=t.image.data,b=4*(l+c*u+f*s),A=4*(l+c*u+y*s),w=4*(l+h*u+f*s),S=4*(l+h*u+y*s),C=4*(p+c*u+f*s),E=4*(p+c*u+y*s),x=4*(p+h*u+f*s),_=4*(p+h*u+y*s);this.r=DE(DE(DE(g[b],g[A],v),DE(g[w],g[S],v),m),DE(DE(g[C],g[E],v),DE(g[x],g[_],v),m),d)/255*(this.premultiplied?i:1),this.g=DE(DE(DE(g[b+1],g[A+1],v),DE(g[w+1],g[S+1],v),m),DE(DE(g[C+1],g[E+1],v),DE(g[x+1],g[_+1],v),m),d)/255*(this.premultiplied?i:1),this.b=DE(DE(DE(g[b+2],g[A+2],v),DE(g[w+2],g[S+2],v),m),DE(DE(g[C+2],g[E+2],v),DE(g[x+2],g[_+2],v),m),d)/255*(this.premultiplied?i:1),this.a=i}else this.r=r,this.g=n,this.b=o,this.a=i},[{key:"toArray",value:function(){return[255*this.r,255*this.g,255*this.b,this.a]}},{key:"toHslaArray",value:function(){var e=this.r,t=this.g,r=this.b,n=this.a;if(this.premultiplied){if(0===n)return[0,0,0,0];var o=1/n;e*=o,t*=o,r*=o}var i=Math.min(Math.max(e,0),1),a=Math.min(Math.max(t,0),1),s=Math.min(Math.max(r,0),1),u=Math.min(i,a,s),l=Math.max(i,a,s),c=l-u,f=.5*(u+l);if(0===c)return[0,0,100*f,n];var p,h=f>.5?c/(2-l-u):c/(l+u);switch(l){case i:p=60*((a-s)/c+(a1&&void 0!==arguments[1]?arguments[1]:{};oE(this,e),this.id=KE.from(t),this.params=r.params,this.sx=r.sx||1,this.sy=r.sy||1}return rE(e,[{key:"toString",value:function(){return JSON.stringify(this)}},{key:"scaleSelf",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return this.sx*=e,this.sy*=t,this}}],[{key:"parse",value:function(t){var r,n,o,i;try{var a=JSON.parse(t)||{};r=a.id,n=a.params,o=a.sx,i=a.sy}catch(e){return null}return r?new e(r,{params:n,sx:o,sy:i}):null}}])}(),WE=function(){function e(t,r,n,o){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];oE(this,e),this.primaryId=KE.from(t),this.primaryOptions=r,n&&(this.secondaryId=KE.from(n)),this.secondaryOptions=o,this.available=i}return rE(e,[{key:"toString",value:function(){if(this.primaryId&&this.secondaryId){var e=this.primaryId.name,t=this.secondaryId.name;return"[".concat(e,",").concat(t,"]")}return this.primaryId.name}},{key:"hasPrimary",value:function(){return!!this.primaryId}},{key:"getPrimary",value:function(){return new YE(this.primaryId,this.primaryOptions)}},{key:"hasSecondary",value:function(){return!!this.secondaryId}},{key:"getSecondary",value:function(){return this.secondaryId?new YE(this.secondaryId,this.secondaryOptions):null}}],[{key:"from",value:function(t){return"string"==typeof t?e.build({name:t}):t}},{key:"build",value:function(t,r,n,o){return t&&("object"!==yE(t)||"name"in t)?new e(t,n,r,o):null}}])}();function JE(e,t,r,n){return"number"==typeof e&&e>=0&&e<=255&&"number"==typeof t&&t>=0&&t<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value [".concat([e,t,r,n].join(", "),"]: 'a' must be between 0 and 1."):"Invalid rgba value [".concat(("number"==typeof n?[e,t,r,n]:[e,t,r]).join(", "),"]: 'r', 'g', and 'b' must be between 0 and 255.")}function XE(e){if(null===e)return!0;if("string"==typeof e)return!0;if("boolean"==typeof e)return!0;if("number"==typeof e)return!0;if(e instanceof QE)return!0;if(e instanceof HE)return!0;if(e instanceof VE)return!0;if(e instanceof WE)return!0;if(Array.isArray(e)){var t,r=fE(e);try{for(r.s();!(t=r.n()).done;){if(!XE(t.value))return!1}}catch(e){r.e(e)}finally{r.f()}return!0}if("object"===yE(e)){for(var n in e)if(!XE(e[n]))return!1;return!0}return!1}function ZE(e){if(null===e)return gE;if("string"==typeof e)return AE;if("boolean"==typeof e)return wE;if("number"==typeof e)return bE;if(e instanceof QE)return SE;if(e instanceof HE)return xE;if(e instanceof VE)return _E;if(e instanceof WE)return IE;if(Array.isArray(e)){var t,r,n=e.length,o=fE(e);try{for(o.s();!(r=o.n()).done;){var i=ZE(r.value);if(t){if(t===i)continue;t=EE;break}t=i}}catch(e){o.e(e)}finally{o.f()}return OE(t||EE,n)}return CE}function $E(e){var t=yE(e);return null===e?"":"string"===t||"number"===t||"boolean"===t?String(e):e instanceof VE||e instanceof WE||e instanceof QE?e.toString():JSON.stringify(e)}var ex=function(){function e(t,r){oE(this,e),this.type=t,this.value=r}return rE(e,[{key:"evaluate",value:function(){return this.value}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof QE?["rgba"].concat(this.value.toNonPremultipliedRenderColor(null).toArray()):this.value instanceof VE?this.value.serialize():this.value}}],[{key:"parse",value:function(t,r){if(2!==t.length)return r.error("'literal' expression requires exactly one argument, but found ".concat(t.length-1," instead."));if(!XE(t[1]))return r.error("invalid value");var n=t[1],o=ZE(n),i=r.expectedType;return"array"!==o.kind||0!==o.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(o=i),new e(o,n)}}])}(),tx=function(){return rE(function e(t){oE(this,e),this.name="ExpressionEvaluationError",this.message=t},[{key:"toJSON",value:function(){return this.message}}])}(),rx={string:AE,number:bE,boolean:wE,object:CE},nx=function(){function e(t,r){oE(this,e),this.type=t,this.args=r}return rE(e,[{key:"evaluate",value:function(e){for(var t=0;t1)&&t.push(n)}}return t.concat(this.args.map(function(e){return e.serialize()}))}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expected at least one argument.");var n,o=1,i=t[0];if("array"===i){var a,s;if(t.length>2){var u=t[1];if("string"!=typeof u||!(u in rx)||"object"===u)return r.error('The item type argument of "array" must be one of string, number, boolean',1);a=rx[u],o++}else a=EE;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return r.error('The length argument to "array" must be a positive integer literal',2);s=t[2],o++}n=OE(a,s)}else n=rx[i];for(var l=[];o0?r:void 0}},{key:"serialize",value:function(){var e=["image",this.namePrimary.serialize()];if(this.paramsPrimary||this.iconsetIdPrimary){var t=this.serializeOptions(this.paramsPrimary,this.iconsetIdPrimary);t&&e.push(t)}if(this.nameSecondary&&(e.push(this.nameSecondary.serialize()),this.paramsSecondary||this.iconsetIdSecondary)){var r=this.serializeOptions(this.paramsSecondary,this.iconsetIdSecondary);r&&e.push(r)}return e}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expected two or more arguments.");var n=1,o=[];function i(){if(n4?"Invalid rbga value ".concat(JSON.stringify(t),": expected an array containing either three or four numeric values."):JE(t[0],t[1],t[2],t[3])))return new QE(t[0]/255,t[1]/255,t[2]/255,t[3])}}catch(e){o.e(e)}finally{o.f()}throw new tx(r||"Could not parse color from value '".concat("string"==typeof t?t:String(JSON.stringify(t)),"'"))}if("number"===this.type.kind){var a,s=null,u=fE(this.args);try{for(u.s();!(a=u.n()).done;){if(null===(s=a.value.evaluate(e)))return 0;var l=Number(s);if(!isNaN(l))return l}}catch(e){u.e(e)}finally{u.f()}throw new tx("Could not convert ".concat(JSON.stringify(s)," to number."))}return"formatted"===this.type.kind?VE.fromString($E(this.args[0].evaluate(e))):"resolvedImage"===this.type.kind?WE.build($E(this.args[0].evaluate(e))):"array"===this.type.kind?this.args.map(function(t){return t.evaluate(e)}):$E(this.args[0].evaluate(e))}},{key:"eachChild",value:function(e){this.args.forEach(e)}},{key:"outputDefined",value:function(){return this.args.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){if("formatted"===this.type.kind)return new ox([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new ix(this.args[0]).serialize();var e="array"===this.type.kind?[]:["to-".concat(this.type.kind)];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expected at least one argument.");var n=t[0],o=[],i=gE;if("to-array"===n){if(!Array.isArray(t[1]))return null;var a=t[1].length;if(r.expectedType){if("array"!==r.expectedType.kind)return r.error("Expected ".concat(r.expectedType.kind," but found array."));i=OE(r.expectedType.itemType,a)}else{if(!(a>0&&XE(t[1][0])))return null;i=OE(ZE(t[1][0]),a)}for(var s=0;s=t[2])&&(!(e[1]<=t[1])&&!(e[3]>=t[3])))}function Sx(e,t,r){return t[1]>e[1]!=r[1]>e[1]&&e[0]<(r[0]-t[0])*(e[1]-t[1])/(r[1]-t[1])+t[0]}function Cx(e,t){for(var r,n,o,i,a,s,u,l=arguments.length>2&&void 0!==arguments[2]&&arguments[2],c=!1,f=0,p=t.length;f0&&f<0||c<0&&f>0}function xx(e,t,r,n){var o,i,a=[t[0]-e[0],t[1]-e[1]],s=[n[0]-r[0],n[1]-r[1]];return 0!=(o=s)[0]*(i=a)[1]-o[1]*i[0]&&!(!Ex(e,t,r,n)||!Ex(r,n,e,t))}gx.prototype={clone:function(){return new gx(this.x,this.y)},add:function(e){return this.clone()._add(e)},sub:function(e){return this.clone()._sub(e)},multByPoint:function(e){return this.clone()._multByPoint(e)},divByPoint:function(e){return this.clone()._divByPoint(e)},mult:function(e){return this.clone()._mult(e)},div:function(e){return this.clone()._div(e)},rotate:function(e){return this.clone()._rotate(e)},rotateAround:function(e,t){return this.clone()._rotateAround(e,t)},matMult:function(e){return this.clone()._matMult(e)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(e){return this.x===e.x&&this.y===e.y},dist:function(e){return Math.sqrt(this.distSqr(e))},distSqr:function(e){var t=e.x-this.x,r=e.y-this.y;return t*t+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith:function(e){return this.angleWithSep(e.x,e.y)},angleWithSep:function(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult:function(e){var t=e[0]*this.x+e[1]*this.y,r=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=r,this},_add:function(e){return this.x+=e.x,this.y+=e.y,this},_sub:function(e){return this.x-=e.x,this.y-=e.y,this},_mult:function(e){return this.x*=e,this.y*=e,this},_div:function(e){return this.x/=e,this.y/=e,this},_multByPoint:function(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint:function(e){return this.x/=e.x,this.y/=e.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var e=this.y;return this.y=this.x,this.x=-e,this},_rotate:function(e){var t=Math.cos(e),r=Math.sin(e),n=t*this.x-r*this.y,o=r*this.x+t*this.y;return this.x=n,this.y=o,this},_rotateAround:function(e,t){var r=Math.cos(e),n=Math.sin(e),o=t.x+r*(this.x-t.x)-n*(this.y-t.y),i=t.y+n*(this.x-t.x)+r*(this.y-t.y);return this.x=o,this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:gx},gx.convert=function(e){if(e instanceof gx)return e;if(Array.isArray(e))return new gx(+e[0],+e[1]);if(void 0!==e.x&&void 0!==e.y)return new gx(+e.x,+e.y);throw new Error("Expected [x, y] or {x, y} point format")};var _x=8192;function Ix(e,t){var r,n=(180+e[0])/360,o=(r=e[1],(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r*Math.PI/360)))/360),i=Math.pow(2,t.z);return[Math.round(n*i*_x),Math.round(o*i*_x)]}function Ox(e,t){for(var r=0;rr[2]){var o=.5*n,i=e[0]-r[0]>o?-n:r[0]-e[0]>o?n:0;0===i&&(i=e[0]-r[2]>o?-n:r[2]-e[0]>o?n:0),e[0]+=i}Ax(t,e)}function Bx(e,t,r,n){var o=Math.pow(2,n.z)*_x,i=[n.x*_x,n.y*_x],a=[];if(!e)return a;var s,u=fE(e);try{for(u.s();!(s=u.n()).done;){var l,c=fE(s.value);try{for(c.s();!(l=c.n()).done;){var f=l.value,p=[f.x+i[0],f.y+i[1]];Nx(p,t,r,o),a.push(p)}}catch(e){c.e(e)}finally{c.f()}}}catch(e){u.e(e)}finally{u.f()}return a}function Lx(e,t,r,n){var o=Math.pow(2,n.z)*_x,i=[n.x*_x,n.y*_x],a=[];if(!e)return a;var s,u,l=fE(e);try{for(l.s();!(s=l.n()).done;){var c,f=[],p=fE(s.value);try{for(p.s();!(c=p.n()).done;){var h=c.value,y=[h.x+i[0],h.y+i[1]];Ax(t,y),f.push(y)}}catch(e){p.e(e)}finally{p.f()}a.push(f)}}catch(e){l.e(e)}finally{l.f()}if(t[2]-t[0]<=o/2){(u=t)[0]=u[1]=1/0,u[2]=u[3]=-1/0;var d,m=fE(a);try{for(m.s();!(d=m.n()).done;){var v,g=fE(d.value);try{for(g.s();!(v=g.n()).done;){Nx(v.value,t,r,o)}}catch(e){g.e(e)}finally{g.f()}}}catch(e){m.e(e)}finally{m.f()}}return a}var Rx=function(){function e(t,r){oE(this,e),this.type=wE,this.geojson=t,this.geometries=r}return rE(e,[{key:"evaluate",value:function(e){if(null!=e.geometry()&&null!=e.canonicalID()){if("Point"===e.geometryType())return function(e,t){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],o=e.canonicalID();if(!o)return!1;if("Polygon"===t.type){var i=jx(t.coordinates,n,o),a=Bx(e.geometry(),r,n,o);if(!wx(r,n))return!1;var s,u=fE(a);try{for(u.s();!(s=u.n()).done;)if(!Cx(s.value,i))return!1}catch(e){u.e(e)}finally{u.f()}}if("MultiPolygon"===t.type){var l=Mx(t.coordinates,n,o),c=Bx(e.geometry(),r,n,o);if(!wx(r,n))return!1;var f,p=fE(c);try{for(p.s();!(f=p.n()).done;)if(!Ox(f.value,l))return!1}catch(e){p.e(e)}finally{p.f()}}return!0}(e,this.geometries);if("LineString"===e.geometryType())return function(e,t){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],o=e.canonicalID();if(!o)return!1;if("Polygon"===t.type){var i=jx(t.coordinates,n,o),a=Lx(e.geometry(),r,n,o);if(!wx(r,n))return!1;var s,u=fE(a);try{for(u.s();!(s=u.n()).done;)if(!Px(s.value,i))return!1}catch(e){u.e(e)}finally{u.f()}}if("MultiPolygon"===t.type){var l=Mx(t.coordinates,n,o),c=Lx(e.geometry(),r,n,o);if(!wx(r,n))return!1;var f,p=fE(c);try{for(p.s();!(f=p.n()).done;)if(!Tx(f.value,l))return!1}catch(e){p.e(e)}finally{p.f()}}return!0}(e,this.geometries)}return!1}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){return["within",this.geojson]}}],[{key:"parse",value:function(t,r){if(2!==t.length)return r.error("'within' expression requires exactly one argument, but found ".concat(t.length-1," instead."));if(XE(t[1])){var n=t[1];if("FeatureCollection"===n.type)for(var o=0;ot)return qx(o,i,(t-(r-a))/a)}return e[e.length-1]}},{key:"pointToSegmentDistance",value:function(e,t,r){var n=ZC(t,2),o=n[0],i=n[1],a=Vx(r[0]-o)*this.kx,s=(r[1]-i)*this.ky;if(0!==a||0!==s){var u=(Vx(e[0]-o)*this.kx*a+(e[1]-i)*this.ky*s)/(a*a+s*s);u>1?(o=r[0],i=r[1]):u>0&&(o+=a/this.kx*u,i+=s/this.ky*u)}return a=Vx(e[0]-o)*this.kx,s=(e[1]-i)*this.ky,Math.sqrt(a*a+s*s)}},{key:"pointOnLine",value:function(e,t){for(var r=1/0,n=e[0][0],o=e[0][1],i=0,a=0,s=0;s1?(u=e[s+1][0],l=e[s+1][1]):p>0&&(u+=c/this.kx*p,l+=f/this.ky*p));var h=(c=Vx(t[0]-u)*this.kx)*c+(f=(t[1]-l)*this.ky)*f;ho.index||n.index===o.index&&n.t>o.t){var i=n;n=o,o=i}var a=[n.point],s=n.index+1,u=o.index;!Hx(r[s],a[0])&&s<=u&&a.push(r[s]);for(var l=s+1;l<=u;l++)a.push(r[l]);return Hx(r[u],o.point)||a.push(o.point),a}},{key:"lineSliceAlong",value:function(e,t,r){for(var n=0,o=[],i=0;ie&&0===o.length&&o.push(qx(a,s,(e-(n-u))/u)),n>=t)return o.push(qx(a,s,(t-(n-u))/u)),o;n>e&&o.push(s)}return o}},{key:"bufferPoint",value:function(e,t){var r=t/this.ky,n=t/this.kx;return[e[0]-n,e[1]-r,e[0]+n,e[1]+r]}},{key:"bufferBBox",value:function(e,t){var r=t/this.ky,n=t/this.kx;return[e[0]-n,e[1]-r,e[2]+n,e[3]+r]}},{key:"insideBBox",value:function(e,t){return Vx(e[0]-t[0])>=0&&Vx(e[0]-t[2])<=0&&e[1]>=t[1]&&e[1]<=t[3]}}],[{key:"fromTile",value:function(t,r,n){var o=Math.PI*(1-2*(t+.5)/Math.pow(2,r));return new e(Math.atan(.5*(Math.exp(o)-Math.exp(-o)))/Ux,n)}},{key:"units",get:function(){return Dx}}])}();function Hx(e,t){return e[0]===t[0]&&e[1]===t[1]}function qx(e,t,r){var n=Vx(t[0]-e[0]),o=t[1]-e[1];return[e[0]+n*r,e[1]+o*r]}function Vx(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}var Kx=function(){return rE(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e,t){return et?1:0};if(oE(this,e),this.data=t,this.length=this.data.length,this.compare=r,this.length>0)for(var n=(this.length>>1)-1;n>=0;n--)this._down(n)},[{key:"push",value:function(e){this.data.push(e),this._up(this.length++)}},{key:"pop",value:function(){if(0!==this.length){var e=this.data[0],t=this.data.pop();return--this.length>0&&(this.data[0]=t,this._down(0)),e}}},{key:"peek",value:function(){return this.data[0]}},{key:"_up",value:function(e){for(var t=this.data,r=this.compare,n=t[e];e>0;){var o=e-1>>1,i=t[o];if(r(n,i)>=0)break;t[e]=i,e=o}t[e]=n}},{key:"_down",value:function(e){for(var t=this.data,r=this.compare,n=this.length>>1,o=t[e];e=0)break;t[e]=t[i],e=i}t[e]=o}}])}(),Yx=8192;function Wx(e,t){return t.dist-e.dist}var Jx=100,Xx=50;function Zx(e){var t=[1/0,1/0,-1/0,-1/0];if(t.length!==e.length)return!1;for(var r=0;r=e[0]&&e[1]e[1])return[null,null];var r=$x(e);if(t){if(2===r)return[e,null];var n=Math.floor(r/2);return[[e[0],e[0]+n],[e[0]+n,e[1]]]}if(1===r)return[e,null];var o=Math.floor(r/2)-1;return[[e[0],e[0]+o],[e[0]+o+1,e[1]]]}function r_(e,t){var r=[1/0,1/0,-1/0,-1/0];if(!e_(t,e.length))return r;for(var n=t[0];n<=t[1];++n)Ax(r,e[n]);return r}function n_(e){for(var t=[1/0,1/0,-1/0,-1/0],r=0;rt[2]&&(n=e[0]-t[2]),e[1]>t[3]&&(o=e[1]-t[3]),e[3]2&&void 0!==arguments[2]?arguments[2]:Yx,n=Math.pow(2,t.z),o=(e.x/r+t.x)/n,i=(e.y/r+t.y)/n;return[function(e){return 360*e-180}(o),function(e){var t=180-360*e;return 360/Math.PI*Math.atan(Math.exp(t*Math.PI/180))-90}(i)]}function a_(e,t){for(var r=[],n=0;n3&&void 0!==arguments[3]?arguments[3]:1/0,o=n_(e),i=n_(t);if(n!==1/0&&o_(o,i,r)>=n)return n;if(wx(o,i)){if(y_(e,t))return 0}else if(y_(t,e))return 0;var a,s=n,u=fE(e);try{for(u.s();!(a=u.n()).done;)for(var l=a.value,c=0,f=l.length,p=f-1;c4&&void 0!==arguments[4]?arguments[4]:1/0,i=Math.min(n.distance(e[0],r[0][0]),o);if(0===i)return i;for(var a={dist:0,range1:[0,e.length-1],range2:[0,0]},s=new Kx([a],Wx),u=t?Xx:Jx,l=n_(r);s.length;){var c=s.pop();if(!(c.dist>=i)){var f=c.range1;if($x(f)<=u){if(!e_(f,e.length))return NaN;if(t){var p=h_(e,f,r,n);if(0===(i=Math.min(i,p)))return i}else for(var h=f[0];h<=f[1];++h){var y=p_(e[h],r,n);if(0===(i=Math.min(i,y)))return i}}else{var d=t_(f,t);if(null!==d[0]){var m=o_(r_(e,d[0]),l,n);m5&&void 0!==arguments[5]?arguments[5]:1/0,a=Math.min(i,o.distance(e[0],r[0]));if(0===a)return a;for(var s={dist:0,range1:[0,e.length-1],range2:[0,r.length-1]},u=new Kx([s],Wx),l=t?Xx:Jx,c=n?Xx:Jx;u.length;){var f=u.pop();if(!(f.dist>=a)){var p=f.range1,h=f.range2;if($x(p)<=l&&$x(h)<=c){if(!e_(p,e.length)||!e_(h,r.length))return NaN;if(t&&n?a=Math.min(a,c_(e,p,r,h,o)):t||n?t&&!n?a=Math.min(a,u_(r,h,e,p,o)):!t&&n&&(a=Math.min(a,u_(e,p,r,h,o))):a=Math.min(a,f_(e,p,r,h,o)),0===a)return a}else{var y=t_(p,t),d=t_(h,n);m_(u,a,o,e,r,y[0],d[0]),m_(u,a,o,e,r,y[0],d[1]),m_(u,a,o,e,r,y[1],d[0]),m_(u,a,o,e,r,y[1],d[1])}}}return a}function b_(e,t,r,n){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0,a=r_(e,[0,e.length-1]),s=fE(r);try{for(s.s();!(o=s.n()).done;){var u=o.value;if(!(i!==1/0&&o_(a,r_(u,[0,u.length-1]),n)>=i)&&0===(i=Math.min(i,g_(e,t,u,!0,n,i))))return i}}catch(e){s.e(e)}finally{s.f()}return i}function A_(e,t,r,n){var o,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0,a=r_(e,[0,e.length-1]),s=fE(r);try{for(s.s();!(o=s.n()).done;){var u=o.value;if(!(i!==1/0&&o_(a,n_(u),n)>=i)){var l=v_(e,t,u,n,i);if(isNaN(l))return l;if(0===(i=Math.min(i,l)))return i}}}catch(e){s.e(e)}finally{s.f()}return i}function w_(e,t,r){var n,o=[],i=fE(function(e,t){var r=e.length;if(r<=1)return[e];for(var n,o,i=[],a=0;a=0)return!1;var r=!0;return e.eachChild(function(e){r&&!__(e,t)&&(r=!1)}),r}var I_="";function O_(e,t,r){return[e,t,r].filter(Boolean).join(I_)}function k_(e,t){switch(e){case"string":return $E(t);case"number":return+t;case"boolean":return!!t;case"color":return QE.parse(t);case"formatted":return VE.fromString($E(t));case"resolvedImage":return WE.build($E(t))}return t}function P_(e,t,r,n){return void 0!==n&&(e=n*Math.round(e/n)),void 0!==t&&er&&(e=r),e}var T_=function(){function e(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];oE(this,e),this.type=t,this.key=r,this.scope=n,this.featureConstant=o}return rE(e,[{key:"evaluate",value:function(e){var t=O_(this.key,this.scope,e.scope),r=e.getConfig(t);if(!r)return null;var n=r.type,o=r.value,i=r.values,a=r.minValue,s=r.maxValue,u=r.stepValue,l=r.default.evaluate(e),c=l;if(o){var f=e.scope;e.scope=(f||"").split(I_).slice(1).join(I_),c=o.evaluate(e),e.scope=f}return n&&(c=k_(n,c)),void 0===c||void 0===a&&void 0===s&&void 0===u||("number"==typeof c?c=P_(c,a,s,u):Array.isArray(c)&&(c=c.map(function(e){return"number"==typeof e?P_(e,a,s,u):e}))),void 0!==o&&void 0!==c&&i&&!i.includes(c)&&(c=l,n&&(c=k_(n,c))),(n&&n!==this.type||void 0!==c&&!NE(ZE(c),this.type))&&(c=k_(this.type.kind,c)),c}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){var e=["config",this.key];return this.scope&&e.concat(this.scope),e}}],[{key:"parse",value:function(t,r){var n=r.expectedType;if(null!==n&&void 0!==n||(n=EE),t.length<2||t.length>3)return r.error("Invalid number of arguments for 'config' expression.");var o=r.parse(t[1],1);if(!(o instanceof ex))return r.error("Key name of 'config' expression must be a string literal.");var i,a=!0,s=$E(o.value);if(t.length>=3){var u=r.parse(t[2],2);if(!(u instanceof ex))return r.error("Scope of 'config' expression must be a string literal.");i=$E(u.value)}if(r.options){var l=O_(s,i,r._scope),c=r.options.get(l);c&&(a=E_(c.value||c.default))}return new e(n,s,i,a)}}])}(),j_=function(){function e(t,r){oE(this,e),this.type=r.type,this.name=t,this.boundExpression=r}return rE(e,[{key:"evaluate",value:function(e){return this.boundExpression.evaluate(e)}},{key:"eachChild",value:function(){}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["var",this.name]}}],[{key:"parse",value:function(t,r){if(2!==t.length||"string"!=typeof t[1])return r.error("'var' expression requires exactly one string literal argument.");var n=t[1];return r.scope.has(n)?new e(n,r.scope.get(n)):r.error('Unknown variable "'.concat(n,'". Make sure "').concat(n,'" has been bound in an enclosing "let" expression before using it.'),1)}}])}(),M_=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new vE,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],a=arguments.length>5?arguments[5]:void 0,s=arguments.length>6?arguments[6]:void 0,u=arguments.length>7?arguments[7]:void 0;oE(this,e),this.registry=t,this.path=r,this.key=r.map(function(e){return"string"==typeof e?"['".concat(e,"']"):"[".concat(e,"]")}).join(""),this.scope=o,this.errors=i,this.expectedType=n,this._scope=a,this.options=s,this.iconImageUseTheme=u}return rE(e,[{key:"parse",value:function(e,t,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};return t||r?this.concat(t,null,r,n)._parse(e,o):this._parse(e,o)}},{key:"parseObjectValue",value:function(e,t,r,n,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return this.concat(t,r,n,o)._parse(e,i)}},{key:"_parse",value:function(e,t){function r(e,t,r){return"assert"===r?new nx(t,[e]):"coerce"===r?new px(t,[e]):e}if(null!==e&&"string"!=typeof e&&"boolean"!=typeof e&&"number"!=typeof e||(e=["literal",e]),Array.isArray(e)){if(0===e.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n="string"==typeof e[0]?this.registry[e[0]]:void 0;if(n){var o=n.parse(e,this);if(!o)return null;if(this.expectedType){var i=this.expectedType,a=o.type;if("string"!==i.kind&&"number"!==i.kind&&"boolean"!==i.kind&&"object"!==i.kind&&"array"!==i.kind||"value"!==a.kind)if("color"!==i.kind&&"formatted"!==i.kind&&"resolvedImage"!==i.kind||"value"!==a.kind&&"string"!==a.kind){if(this.checkSubtype(i,a))return null}else o=r(o,i,t.typeAnnotation||"coerce");else o=r(o,i,t.typeAnnotation||"assert")}if(!(o instanceof ex)&&"resolvedImage"!==o.type.kind&&function e(t){if(t instanceof j_)return e(t.boundExpression);if(t instanceof dx&&"error"===t.name)return!1;if(t instanceof vx)return!1;if(t instanceof Rx)return!1;if(t instanceof C_)return!1;if(t instanceof T_)return!1;var r=t instanceof px||t instanceof nx;var n=!0;t.eachChild(function(t){n=r?n&&e(t):n&&t instanceof ex});if(!n)return!1;return E_(t)&&__(t,["zoom","heatmap-density","worldview","line-progress","raster-value","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center","measure-light","raster-particle-speed","is-active-floor"])}(o)){var s=new yx(this._scope,this.options,this.iconImageUseTheme);try{o=new ex(o.type,o.evaluate(s))}catch(e){return this.error(e.message),null}}return o}return px.parse(["to-array",e],this)}return void 0===e?this.error("'undefined' value invalid. Use null instead."):"object"===yE(e)?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found ".concat(yE(e)," instead."))}},{key:"concat",value:function(t,r,n,o){var i="number"==typeof t?this.path.concat(t):this.path;i="string"==typeof r?i.concat(r):i;var a=o?this.scope.concat(o):this.scope;return new e(this.registry,i,n||null,a,this.errors,this._scope,this.options,this.iconImageUseTheme)}},{key:"error",value:function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;nt))throw new tx("Input is not a number.");a=s-1}return 0}var B_,L_,R_=function(){function e(t,r,n){oE(this,e),this.type=t,this.input=r,this.labels=[],this.outputs=[];var o,i=fE(n);try{for(i.s();!(o=i.n()).done;){var a=ZC(o.value,2),s=a[0],u=a[1];this.labels.push(s),this.outputs.push(u)}}catch(e){i.e(e)}finally{i.f()}}return rE(e,[{key:"evaluate",value:function(e){var t=this.labels,r=this.outputs;if(1===t.length)return r[0].evaluate(e);var n=this.input.evaluate(e);if(n<=t[0])return r[0].evaluate(e);var o=t.length;return n>=t[o-1]?r[o-1].evaluate(e):r[N_(t,n)].evaluate(e)}},{key:"eachChild",value:function(e){e(this.input);var t,r=fE(this.outputs);try{for(r.s();!(t=r.n()).done;){e(t.value)}}catch(e){r.e(e)}finally{r.f()}}},{key:"outputDefined",value:function(){return this.outputs.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){for(var e=["step",this.input.serialize()],t=0;t0&&e.push(this.labels[t]),e.push(this.outputs[t].serialize());return e}}],[{key:"parse",value:function(t,r){if(t.length-1<4)return r.error("Expected at least 4 arguments, but found only ".concat(t.length-1,"."));if((t.length-1)%2!=0)return r.error("Expected an even number of arguments.");var n=r.parse(t[1],1,bE);if(!n)return null;var o=[],i=null;r.expectedType&&"value"!==r.expectedType.kind&&(i=r.expectedType);for(var a=1;a=s)return r.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',l);var f=r.parse(u,c,i);if(!f)return null;i=i||f.type,o.push([s,f])}return new e(i,n,o)}}])}();var D_=function(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}(function(){if(L_)return B_;function e(e,t,r,n){this.cx=3*e,this.bx=3*(r-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*t,this.by=3*(n-t)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=t,this.p2x=r,this.p2y=n}return L_=1,B_=e,e.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,t){if(void 0===t&&(t=1e-6),e<0)return 0;if(e>1)return 1;for(var r=e,n=0;n<8;n++){var o=this.sampleCurveX(r)-e;if(Math.abs(o)o?a=r:s=r,r=.5*(s-a)+a;return r},solve:function(e,t){return this.sampleCurveY(this.solveCurveX(e,t))}},B_}()),F_=.95047,Q_=1,G_=1.08883,U_=4/29,z_=6/29,H_=3*z_*z_,q_=z_*z_*z_,V_=Math.PI/180,K_=180/Math.PI;function Y_(e){return e>q_?Math.pow(e,1/3):e/H_+U_}function W_(e){return e>z_?e*e*e:H_*(e-U_)}function J_(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function X_(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Z_(e){var t=X_(e.r),r=X_(e.g),n=X_(e.b),o=Y_((.4124564*t+.3575761*r+.1804375*n)/F_),i=Y_((.2126729*t+.7151522*r+.072175*n)/Q_);return{l:116*i-16,a:500*(o-i),b:200*(i-Y_((.0193339*t+.119192*r+.9503041*n)/G_)),alpha:e.a}}function $_(e){var t=(e.l+16)/116,r=isNaN(e.a)?t:t+e.a/500,n=isNaN(e.b)?t:t-e.b/200;return t=Q_*W_(t),r=F_*W_(r),n=G_*W_(n),new QE(J_(3.2404542*r-1.5371385*t-.4985314*n),J_(-.969266*r+1.8760108*t+.041556*n),J_(.0556434*r-.2040259*t+1.0572252*n),e.alpha)}var eI={forward:Z_,reverse:$_,interpolate:function(e,t,r){return{l:DE(e.l,t.l,r),a:DE(e.a,t.a,r),b:DE(e.b,t.b,r),alpha:DE(e.alpha,t.alpha,r)}}},tI={forward:function(e){var t=Z_(e),r=t.l,n=t.a,o=t.b,i=Math.atan2(o,n)*K_;return{h:i<0?i+360:i,c:Math.sqrt(n*n+o*o),l:r,alpha:e.a}},reverse:function(e){var t=e.h*V_,r=e.c;return $_({l:e.l,a:Math.cos(t)*r,b:Math.sin(t)*r,alpha:e.alpha})},interpolate:function(e,t,r){return{h:function(e,t,r){var n=t-e;return e+r*(n>180||n<-180?n-360*Math.round(n/360):n)}(e.h,t.h,r),c:DE(e.c,t.c,r),l:DE(e.l,t.l,r),alpha:DE(e.alpha,t.alpha,r)}}},rI=Object.freeze({__proto__:null,hcl:tI,lab:eI}),nI=function(){function e(t,r,n,o,i){oE(this,e),this.type=t,this.operator=r,this.interpolation=n,this.input=o,this.labels=[],this.outputs=[];var a,s=fE(i);try{for(s.s();!(a=s.n()).done;){var u=ZC(a.value,2),l=u[0],c=u[1];this.labels.push(l),this.outputs.push(c)}}catch(e){s.e(e)}finally{s.f()}}return rE(e,[{key:"evaluate",value:function(t){var r=this.labels,n=this.outputs;if(1===r.length)return n[0].evaluate(t);var o=this.input.evaluate(t);if(o<=r[0])return n[0].evaluate(t);var i=r.length;if(o>=r[i-1])return n[i-1].evaluate(t);var a=N_(r,o),s=r[a],u=r[a+1],l=e.interpolationFactor(this.interpolation,o,s,u),c=n[a].evaluate(t),f=n[a+1].evaluate(t);return"interpolate"===this.operator?FE[this.type.kind.toLowerCase()](c,f,l):"interpolate-hcl"===this.operator?tI.reverse(tI.interpolate(tI.forward(c),tI.forward(f),l)):eI.reverse(eI.interpolate(eI.forward(c),eI.forward(f),l))}},{key:"eachChild",value:function(e){e(this.input);var t,r=fE(this.outputs);try{for(r.s();!(t=r.n()).done;){e(t.value)}}catch(e){r.e(e)}finally{r.f()}}},{key:"outputDefined",value:function(){return this.outputs.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){var e;e="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(JC(this.interpolation.controlPoints));for(var t=[this.operator,e,this.input.serialize()],r=0;r1}))return r.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);a={name:"cubic-bezier",controlPoints:c}}if(t.length-1<4)return r.error("Expected at least 4 arguments, but found only ".concat(t.length-1,"."));if(t.length-1>3&&(t.length-1)%2!=0)return r.error("Expected an even number of arguments.");if(!(s=r.parse(s,2,bE)))return null;var f=[],p=null;"interpolate-hcl"===i||"interpolate-lab"===i?p=SE:r.expectedType&&"value"!==r.expectedType.kind&&(p=r.expectedType);for(var h=0;h=y)return r.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',m);var g=r.parse(d,v,p);if(!g)return null;p=p||g.type,f.push([y,g])}return"number"===p.kind||"color"===p.kind||"array"===p.kind&&"number"===p.itemType.kind&&"number"==typeof p.N?new e(p,i,a,s,f):r.error("Type ".concat(kE(p)," is not interpolatable."))}}])}();function oI(e,t,r,n){var o=n-r,i=e-r;return 0===o?0:1===t?i/o:(Math.pow(t,i)-1)/(Math.pow(t,o)-1)}var iI=function(){function e(t,r){oE(this,e),this.type=t,this.args=r}return rE(e,[{key:"evaluate",value:function(e){var t,r,n=null,o=0,i=fE(this.args);try{for(i.s();!(r=i.n()).done;){if(o++,(n=r.value.evaluate(e))&&n instanceof WE&&!n.available&&(t||(t=n),n=null,o===this.args.length))return t;if(null!==n)break}}catch(e){i.e(e)}finally{i.f()}return n}},{key:"eachChild",value:function(e){this.args.forEach(e)}},{key:"outputDefined",value:function(){return this.args.every(function(e){return e.outputDefined()})}},{key:"serialize",value:function(){var e=["coalesce"];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(t.length<2)return r.error("Expectected at least one argument."),null;var n=null,o=r.expectedType;o&&"value"!==o.kind&&(n=o);var i,a=[],s=fE(t.slice(1));try{for(s.s();!(i=s.n()).done;){var u=i.value,l=r.parse(u,1+a.length,n,void 0,{typeAnnotation:"omit"});if(!l)return null;n=n||l.type,a.push(l)}}catch(e){s.e(e)}finally{s.f()}return new e(o&&a.some(function(e){return TE(o,e.type)})?EE:n,a)}}])}(),aI=function(){function e(t,r){oE(this,e),this.type=r.type,this.bindings=[].concat(t),this.result=r}return rE(e,[{key:"evaluate",value:function(e){return this.result.evaluate(e)}},{key:"eachChild",value:function(e){var t,r=fE(this.bindings);try{for(r.s();!(t=r.n()).done;){e(t.value[1])}}catch(e){r.e(e)}finally{r.f()}e(this.result)}},{key:"outputDefined",value:function(){return this.result.outputDefined()}},{key:"serialize",value:function(){var e,t=["let"],r=fE(this.bindings);try{for(r.s();!(e=r.n()).done;){var n=ZC(e.value,2),o=n[0],i=n[1];t.push(o,i.serialize())}}catch(e){r.e(e)}finally{r.f()}return t.push(this.result.serialize()),t}}],[{key:"parse",value:function(t,r){if(t.length<4)return r.error("Expected at least 3 arguments, but found ".concat(t.length-1," instead."));for(var n=[],o=1;o=r.length)throw new tx("Array index out of bounds: index exceeds array size");if(t!==Math.floor(t))throw new tx("Array index must be an integer. Use at-interpolated for fractional indices");return r[t]}},{key:"eachChild",value:function(e){e(this.index),e(this.input)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["at",this.index.serialize(),this.input.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead."));var n=r.parse(t[1],1,bE),o=r.parse(t[2],2,OE(r.expectedType||EE));return n&&o?new e(o.type.itemType,n,o):null}}])}(),uI=function(){function e(t,r,n){oE(this,e),this.type=t,this.index=r,this.input=n}return rE(e,[{key:"evaluate",value:function(e){var t=this.index.evaluate(e),r=this.input.evaluate(e);if(t<0)throw new tx("Array index out of bounds: ".concat(t," < 0."));if(t>r.length-1)throw new tx("Array index out of bounds: ".concat(t," > ").concat(r.length-1,"."));if(t===Math.floor(t))return r[t];var n=Math.floor(t),o=Math.ceil(t),i=r[n],a=r[o];if("number"!=typeof i||"number"!=typeof a)throw new tx("Cannot interpolate between non-number values at index ".concat(t,"."));var s=t-n;return i*(1-s)+a*s}},{key:"eachChild",value:function(e){e(this.index),e(this.input)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["at-interpolated",this.index.serialize(),this.input.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead."));var n=r.parse(t[1],1,bE),o=r.parse(t[2],2,OE(r.expectedType||EE));return n&&o?new e(o.type.itemType,n,o):null}}])}(),lI=function(){function e(t,r){oE(this,e),this.type=wE,this.needle=t,this.haystack=r}return rE(e,[{key:"evaluate",value:function(e){var t=this.needle.evaluate(e),r=this.haystack.evaluate(e);if(null==r)return!1;if(!ME(t,["boolean","string","number","null"]))throw new tx("Expected first argument to be of type boolean, string, number or null, but found ".concat(kE(ZE(t))," instead."));if(!ME(r,["string","array"]))throw new tx("Expected second argument to be of type array or string, but found ".concat(kE(ZE(r))," instead."));return r.indexOf(t)>=0}},{key:"eachChild",value:function(e){e(this.needle),e(this.haystack)}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){return["in",this.needle.serialize(),this.haystack.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1,EE),o=r.parse(t[2],2,EE);return n&&o?jE(n.type,[wE,AE,bE,gE,EE])?new e(n,o):(r.error("Expected first argument to be of type boolean, string, number or null, but found ".concat(kE(n.type)," instead")),null):null}}])}(),cI=function(){function e(t,r,n){oE(this,e),this.type=bE,this.needle=t,this.haystack=r,this.fromIndex=n}return rE(e,[{key:"evaluate",value:function(e){var t=this.needle.evaluate(e),r=this.haystack.evaluate(e);if(!ME(t,["boolean","string","number","null"]))throw new tx("Expected first argument to be of type boolean, string, number or null, but found ".concat(kE(ZE(t))," instead."));if(!ME(r,["string","array"]))throw new tx("Expected second argument to be of type array or string, but found ".concat(kE(ZE(r))," instead."));if(this.fromIndex){var n=this.fromIndex.evaluate(e);return r.indexOf(t,n)}return r.indexOf(t)}},{key:"eachChild",value:function(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var e=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),e]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}],[{key:"parse",value:function(t,r){if(t.length<=2||t.length>=5)return r.error("Expected 3 or 4 arguments, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1,EE),o=r.parse(t[2],2,EE);if(!n||!o)return null;if(!jE(n.type,[wE,AE,bE,gE,EE]))return r.error("Expected first argument to be of type boolean, string, number or null, but found ".concat(kE(n.type)," instead")),null;if(4===t.length){var i=r.parse(t[3],3,bE);return i?new e(n,o,i):null}return new e(n,o)}}])}(),fI=function(){function e(t,r,n,o,i,a){oE(this,e),this.inputType=t,this.type=r,this.input=n,this.cases=o,this.outputs=i,this.otherwise=a}return rE(e,[{key:"evaluate",value:function(e){var t=this.input.evaluate(e);return(NE(ZE(t),this.inputType)&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}},{key:"eachChild",value:function(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}},{key:"outputDefined",value:function(){return this.outputs.every(function(e){return e.outputDefined()})&&this.otherwise.outputDefined()}},{key:"serialize",value:function(){var e,t=this,r=["match",this.input.serialize()],n=[],o={},i=fE(Object.keys(this.cases).sort());try{for(i.s();!(e=i.n()).done;){var a=e.value,s=o[this.cases[a]];void 0===s?(o[this.cases[a]]=n.length,n.push([this.cases[a],[a]])):n[s][1].push(a)}}catch(e){i.e(e)}finally{i.f()}for(var u=function(e){return"number"===t.inputType.kind?Number(e):e},l=0,c=n;lNumber.MAX_SAFE_INTEGER)return c.error("Branch labels must be integers no larger than ".concat(Number.MAX_SAFE_INTEGER,"."));if("number"==typeof h&&Math.floor(h)!==h)return c.error("Numeric branch labels must be integer values.");if(n){if(c.checkSubtype(n,ZE(h)))return null}else n=ZE(h);if(void 0!==i[String(h)])return c.error("Branch labels must be unique.");i[String(h)]=a.length}}catch(e){p.e(e)}finally{p.f()}var y=r.parse(l,s,o);if(!y)return null;o=o||y.type,a.push(y)}var d=r.parse(t[1],1,EE);if(!d)return null;var m=r.parse(t[t.length-1],t.length-1,o);return m?"value"!==d.type.kind&&r.concat(1).checkSubtype(n,d.type)?null:new e(n,o,d,i,a,m):null}}])}(),pI=function(){function e(t,r,n){oE(this,e),this.type=t,this.branches=r,this.otherwise=n}return rE(e,[{key:"evaluate",value:function(e){var t,r=fE(this.branches);try{for(r.s();!(t=r.n()).done;){var n=ZC(t.value,2),o=n[0],i=n[1];if(o.evaluate(e))return i.evaluate(e)}}catch(e){r.e(e)}finally{r.f()}return this.otherwise.evaluate(e)}},{key:"eachChild",value:function(e){var t,r=fE(this.branches);try{for(r.s();!(t=r.n()).done;){var n=ZC(t.value,2),o=n[0],i=n[1];e(o),e(i)}}catch(e){r.e(e)}finally{r.f()}e(this.otherwise)}},{key:"outputDefined",value:function(){return this.branches.every(function(e){var t=ZC(e,2);t[0];return t[1].outputDefined()})&&this.otherwise.outputDefined()}},{key:"serialize",value:function(){var e=["case"];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(t.length<4)return r.error("Expected at least 3 arguments, but found only ".concat(t.length-1,".")),null;if(t.length%2!=0)return r.error("Expected an odd number of arguments."),null;var n;r.expectedType&&"value"!==r.expectedType.kind&&(n=r.expectedType);for(var o=[],i=1;i=5)return r.error("Expected 3 or 4 arguments, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1,EE),o=r.parse(t[2],2,bE);if(!n||!o)return null;if(!jE(n.type,[OE(EE),AE,EE]))return r.error("Expected first argument to be of type array or string, but found ".concat(kE(n.type)," instead")),null;if(4===t.length){var i=r.parse(t[3],3,bE);return i?new e(n.type,n,o,i):null}return new e(n.type,n,o)}}])}(),yI=function(){function e(t,r){oE(this,e),this.type=OE(AE),this.str=t,this.delimiter=r}return rE(e,[{key:"evaluate",value:function(e){var t=this.str.evaluate(e),r=this.delimiter.evaluate(e);return t.split(r)}},{key:"eachChild",value:function(e){e(this.str),e(this.delimiter)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){return["split",this.str.serialize(),this.delimiter.serialize()]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected 2 arguments, but found ".concat(t.length-1," instead."));var n=r.parse(t[1],1,AE),o=r.parse(t[2],2,AE);return n&&o?new e(n,o):void 0}}])}();function dI(e,t){return"=="===e||"!="===e?"boolean"===t.kind||"string"===t.kind||"number"===t.kind||"null"===t.kind||"value"===t.kind:"string"===t.kind||"number"===t.kind||"value"===t.kind}function mI(e,t,r,n){return 0===n.compare(t,r)}function vI(e,t,r){var n="=="!==e&&"!="!==e;return function(){function o(e,t,r){oE(this,o),this.type=wE,this.lhs=e,this.rhs=t,this.collator=r,this.hasUntypedArgument="value"===e.type.kind||"value"===t.type.kind}return rE(o,[{key:"evaluate",value:function(o){var i=this.lhs.evaluate(o),a=this.rhs.evaluate(o);if(n&&this.hasUntypedArgument){var s=ZE(i),u=ZE(a);if(s.kind!==u.kind||"string"!==s.kind&&"number"!==s.kind)throw new tx('Expected arguments for "'.concat(e,'" to be (string, string) or (number, number), but found (').concat(s.kind,", ").concat(u.kind,") instead."))}if(this.collator&&!n&&this.hasUntypedArgument){var l=ZE(i),c=ZE(a);if("string"!==l.kind||"string"!==c.kind)return t(o,i,a)}return this.collator?r(o,i,a,this.collator.evaluate(o)):t(o,i,a)}},{key:"eachChild",value:function(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator)}},{key:"outputDefined",value:function(){return!0}},{key:"serialize",value:function(){var t=[e];return this.eachChild(function(e){t.push(e.serialize())}),t}}],[{key:"parse",value:function(e,t){if(3!==e.length&&4!==e.length)return t.error("Expected two or three arguments.");var r=e[0],i=t.parse(e[1],1,EE);if(!i)return null;if(!dI(r,i.type))return t.concat(1).error('"'.concat(r,"\" comparisons are not supported for type '").concat(kE(i.type),"'."));var a=t.parse(e[2],2,EE);if(!a)return null;if(!dI(r,a.type))return t.concat(2).error('"'.concat(r,"\" comparisons are not supported for type '").concat(kE(a.type),"'."));if(i.type.kind!==a.type.kind&&"value"!==i.type.kind&&"value"!==a.type.kind)return t.error("Cannot compare types '".concat(kE(i.type),"' and '").concat(kE(a.type),"'."));n&&("value"===i.type.kind&&"value"!==a.type.kind?i=new nx(a.type,[i]):"value"!==i.type.kind&&"value"===a.type.kind&&(a=new nx(i.type,[a])));var s=null;if(4===e.length){if("string"!==i.type.kind&&"string"!==a.type.kind&&"value"!==i.type.kind&&"value"!==a.type.kind)return t.error("Cannot use collator to compare non-string types.");if(!(s=t.parse(e[3],3,xE)))return null}return new o(i,a,s)}}])}()}var gI=vI("==",function(e,t,r){return t===r},mI),bI=vI("!=",function(e,t,r){return t!==r},function(e,t,r,n){return!mI(0,t,r,n)}),AI=vI("<",function(e,t,r){return t",function(e,t,r){return t>r},function(e,t,r,n){return n.compare(t,r)>0}),SI=vI("<=",function(e,t,r){return t<=r},function(e,t,r,n){return n.compare(t,r)<=0}),CI=vI(">=",function(e,t,r){return t>=r},function(e,t,r,n){return n.compare(t,r)>=0}),EI=function(){function e(t,r,n,o,i,a){oE(this,e),this.type=AE,this.number=t,this.locale=r,this.currency=n,this.unit=o,this.minFractionDigits=i,this.maxFractionDigits=a}return rE(e,[{key:"evaluate",value:function(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}},{key:"eachChild",value:function(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){var e={};return this.locale&&(e.locale=this.locale.serialize()),this.currency&&(e.currency=this.currency.serialize()),this.unit&&(e.unit=this.unit.serialize()),this.minFractionDigits&&(e["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(e["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),e]}}],[{key:"parse",value:function(t,r){if(3!==t.length)return r.error("Expected two arguments.");var n=r.parse(t[1],1,bE);if(!n)return null;var o=t[2];if("object"!==yE(o)||Array.isArray(o))return r.error("NumberFormat options argument must be an object.");var i=null;if(o.locale&&!(i=r.parseObjectValue(o.locale,2,"locale",AE)))return null;var a=null;if(o.currency&&!(a=r.parseObjectValue(o.currency,2,"currency",AE)))return null;var s=null;if(o.unit&&!(s=r.parseObjectValue(o.unit,2,"unit",AE)))return null;var u=null;if(o["min-fraction-digits"]&&!(u=r.parseObjectValue(o["min-fraction-digits"],2,"min-fraction-digits",bE)))return null;var l=null;return o["max-fraction-digits"]&&!(l=r.parseObjectValue(o["max-fraction-digits"],2,"max-fraction-digits",bE))?null:new e(n,i,a,s,u,l)}}])}();var xI={"==":gI,"!=":bI,">":wI,"<":AI,">=":CI,"<=":SI,array:nx,at:sI,"at-interpolated":uI,boolean:nx,case:pI,coalesce:iI,collator:vx,format:ox,image:ix,in:lI,"index-of":cI,interpolate:nI,"interpolate-hcl":nI,"interpolate-lab":nI,length:function(){function e(t){oE(this,e),this.type=bE,this.input=t}return rE(e,[{key:"evaluate",value:function(e){var t=this.input.evaluate(e);if("string"==typeof t)return t.length;if(Array.isArray(t))return t.length;throw new tx("Expected value to be of type string or array, but found ".concat(kE(ZE(t))," instead."))}},{key:"eachChild",value:function(e){e(this.input)}},{key:"outputDefined",value:function(){return!1}},{key:"serialize",value:function(){var e=["length"];return this.eachChild(function(t){e.push(t.serialize())}),e}}],[{key:"parse",value:function(t,r){if(2!==t.length)return r.error("Expected 1 argument, but found ".concat(t.length-1," instead.")),null;var n=r.parse(t[1],1);return n?"array"!==n.type.kind&&"string"!==n.type.kind&&"value"!==n.type.kind?(r.error("Expected argument of type string or array, but found ".concat(kE(n.type)," instead.")),null):new e(n):null}}])}(),let:aI,literal:ex,match:fI,number:nx,"number-format":EI,object:nx,slice:hI,step:R_,string:nx,"to-boolean":px,"to-color":px,"to-number":px,"to-string":px,var:j_,within:Rx,distance:C_,config:T_,split:yI};function _I(e,t){var r=ZC(t,4),n=r[0],o=r[1],i=r[2],a=r[3];n=n.evaluate(e),o=o.evaluate(e),i=i.evaluate(e);var s=a?a.evaluate(e):1,u=JE(n,o,i,s);if(u)throw new tx(u);return new QE(n/255,o/255,i/255,s)}function II(e,t){var r=ZC(t,4),n=r[0],o=r[1],i=r[2],a=r[3];n=n.evaluate(e),o=o.evaluate(e),i=i.evaluate(e);var s=a?a.evaluate(e):1,u=function(e,t,r,n){return"number"==typeof e&&e>=0&&e<=360?"number"==typeof t&&t>=0&&t<=100&&"number"==typeof r&&r>=0&&r<=100?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid hsla value [".concat([e,t,r,n].join(", "),"]: 'a' must be between 0 and 1."):"Invalid hsla value [".concat(("number"==typeof n?[e,t,r,n]:[e,t,r]).join(", "),"]: 's', and 'l' must be between 0 and 100."):"Invalid hsla value [".concat(("number"==typeof n?[e,t,r,n]:[e,t,r]).join(", "),"]: 'h' must be between 0 and 360.")}(n,o,i,s);if(u)throw new tx(u);var l="hsla(".concat(n,", ").concat(o,"%, ").concat(i,"%, ").concat(s,")"),c=QE.parse(l);if(!c)throw new tx("Failed to parse HSLA color: ".concat(l));return c}function OI(e,t){return e in t}function kI(e,t){var r=t[e];return void 0===r?null:r}function PI(e){return{type:e}}function TI(e){if(e instanceof T_)return new Set([e.key]);var t=new Set;return e.eachChild(function(e){t=new Set([].concat(JC(t),JC(TI(e))))}),t}function jI(e){if(e instanceof dx&&"is-active-floor"===e.name)return!0;var t=!1;return e.eachChild(function(e){!t&&jI(e)&&(t=!0)}),t}function MI(e){return{result:"success",value:e}}function NI(e){return{result:"error",value:e}}function BI(e,t){return!!e&&!!e.parameters&&e.parameters.indexOf(t)>-1}function LI(e){return"data-driven"===e["property-type"]}function RI(e){return BI(e.expression,"measure-light")}function DI(e){return BI(e.expression,"zoom")}function FI(e){return!!e.expression&&e.expression.interpolated}function QI(e){return"object"===yE(e)&&null!==e&&!Array.isArray(e)}function GI(e){return e}function UI(e,t){var r,n,o,i="color"===t.type,a=e.stops&&"object"===yE(e.stops[0][0]),s=a||void 0!==e.property,u=a||!s,l=e.type||(FI(t)?"exponential":"interval");if(i&&((e=Object.assign({},e)).stops&&(e.stops=e.stops.map(function(e){return[e[0],QE.parse(e[1])]})),e.default?e.default=QE.parse(e.default):e.default=QE.parse(t.default)),e.colorSpace&&"rgb"!==e.colorSpace&&!rI[e.colorSpace])throw new Error("Unknown color space: ".concat(e.colorSpace));if("exponential"===l)r=VI;else if("interval"===l)r=qI;else if("categorical"===l){r=HI,n=Object.create(null);var c,f=fE(e.stops);try{for(f.s();!(c=f.n()).done;){var p=c.value;n[p[0]]=p[1]}}catch(e){f.e(e)}finally{f.f()}o=yE(e.stops[0][0])}else{if("identity"!==l)throw new Error('Unknown function type "'.concat(l,'"'));r=KI}if(a){for(var h={},y=[],d=0;d=e.stops[n-1][0])return e.stops[n-1][1];var o=N_(e.stops.map(function(e){return e[0]}),r);return e.stops[o][1]}function VI(e,t,r){var n=void 0!==e.base?e.base:1;if(!lx(r))return zI(e.default,t.default);var o=e.stops.length;if(1===o)return e.stops[0][1];if(r<=e.stops[0][0])return e.stops[0][1];if(r>=e.stops[o-1][0])return e.stops[o-1][1];var i=N_(e.stops.map(function(e){return e[0]}),r),a=function(e,t,r,n){var o=n-r,i=e-r;return 0===o?0:1===t?i/o:(Math.pow(t,i)-1)/(Math.pow(t,o)-1)}(r,n,e.stops[i][0],e.stops[i+1][0]),s=e.stops[i][1],u=e.stops[i+1][1],l=FE[t.type]||GI;if(e.colorSpace&&"rgb"!==e.colorSpace){var c=rI[e.colorSpace];l=function(e,t){return c.reverse(c.interpolate(c.forward(e),c.forward(t),a))}}return"function"==typeof s.evaluate?{evaluate:function(){for(var e=arguments.length,t=new Array(e),r=0;r0))return!1;if(0===t.length)return!0;var r=e.globals.activeFloors;return t.some(function(t){var n=t.evaluate(e);return r.has(n)})}],id:[EE,[],function(e){return e.id()}],zoom:[bE,[],function(e){return e.globals.zoom}],pitch:[bE,[],function(e){return e.globals.pitch||0}],"distance-from-center":[bE,[],function(e){return e.distanceFromCenter()}],"measure-light":[bE,[AE],function(e,t){var r=ZC(t,1)[0];return e.measureLight(r.evaluate(e))}],"heatmap-density":[bE,[],function(e){return e.globals.heatmapDensity||0}],"line-progress":[bE,[],function(e){return e.globals.lineProgress||0}],"raster-value":[bE,[],function(e){return e.globals.rasterValue||0}],"raster-particle-speed":[bE,[],function(e){return e.globals.rasterParticleSpeed||0}],"sky-radial-progress":[bE,[],function(e){return e.globals.skyRadialProgress||0}],accumulated:[EE,[],function(e){return void 0===e.globals.accumulated?null:e.globals.accumulated}],"+":[bE,PI(bE),function(e,t){var r,n=0,o=fE(t);try{for(o.s();!(r=o.n()).done;){n+=r.value.evaluate(e)}}catch(e){o.e(e)}finally{o.f()}return n}],"*":[bE,PI(bE),function(e,t){var r,n=1,o=fE(t);try{for(o.s();!(r=o.n()).done;){n*=r.value.evaluate(e)}}catch(e){o.e(e)}finally{o.f()}return n}],"-":{type:bE,overloads:[[[bE,bE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return n.evaluate(e)-o.evaluate(e)}],[[bE],function(e,t){return-ZC(t,1)[0].evaluate(e)}]]},"/":[bE,[bE,bE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return n.evaluate(e)/o.evaluate(e)}],"%":[bE,[bE,bE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return n.evaluate(e)%o.evaluate(e)}],ln2:[bE,[],function(){return Math.LN2}],pi:[bE,[],function(){return Math.PI}],e:[bE,[],function(){return Math.E}],"^":[bE,[bE,bE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return Math.pow(n.evaluate(e),o.evaluate(e))}],sqrt:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.sqrt(r.evaluate(e))}],log10:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.log(r.evaluate(e))/Math.LN10}],ln:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.log(r.evaluate(e))}],log2:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.log2(r.evaluate(e))}],sin:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.sin(r.evaluate(e))}],cos:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.cos(r.evaluate(e))}],tan:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.tan(r.evaluate(e))}],asin:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.asin(r.evaluate(e))}],acos:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.acos(r.evaluate(e))}],atan:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.atan(r.evaluate(e))}],min:[bE,PI(bE),function(e,t){return Math.min.apply(Math,JC(t.map(function(t){return t.evaluate(e)})))}],max:[bE,PI(bE),function(e,t){return Math.max.apply(Math,JC(t.map(function(t){return t.evaluate(e)})))}],abs:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.abs(r.evaluate(e))}],round:[bE,[bE],function(e,t){var r=ZC(t,1)[0].evaluate(e);return r<0?-Math.round(-r):Math.round(r)}],floor:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.floor(r.evaluate(e))}],ceil:[bE,[bE],function(e,t){var r=ZC(t,1)[0];return Math.ceil(r.evaluate(e))}],"filter-==":[wE,[AE,EE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return e.properties()[n.value]===o.value}],"filter-id-==":[wE,[EE],function(e,t){var r=ZC(t,1)[0];return e.id()===r.value}],"filter-type-==":[wE,[AE],function(e,t){var r=ZC(t,1)[0];return e.geometryType()===r.value}],"filter-<":[wE,[AE,EE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return yE(i)===yE(a)&&i":[wE,[AE,EE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return yE(i)===yE(a)&&i>a}],"filter-id->":[wE,[EE],function(e,t){var r=ZC(t,1)[0],n=e.id(),o=r.value;return yE(n)===yE(o)&&n>o}],"filter-<=":[wE,[AE,EE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return yE(i)===yE(a)&&i<=a}],"filter-id-<=":[wE,[EE],function(e,t){var r=ZC(t,1)[0],n=e.id(),o=r.value;return yE(n)===yE(o)&&n<=o}],"filter->=":[wE,[AE,EE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1],i=e.properties()[n.value],a=o.value;return yE(i)===yE(a)&&i>=a}],"filter-id->=":[wE,[EE],function(e,t){var r=ZC(t,1)[0],n=e.id(),o=r.value;return yE(n)===yE(o)&&n>=o}],"filter-has":[wE,[EE],function(e,t){return ZC(t,1)[0].value in e.properties()}],"filter-has-id":[wE,[],function(e){return null!==e.id()&&void 0!==e.id()}],"filter-type-in":[wE,[OE(AE)],function(e,t){return ZC(t,1)[0].value.indexOf(e.geometryType())>=0}],"filter-id-in":[wE,[OE(EE)],function(e,t){return ZC(t,1)[0].value.indexOf(e.id())>=0}],"filter-in-small":[wE,[AE,OE(EE)],function(e,t){var r=ZC(t,2),n=r[0];return r[1].value.indexOf(e.properties()[n.value])>=0}],"filter-in-large":[wE,[AE,OE(EE)],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return function(e,t,r,n){for(;r<=n;){var o=r+n>>1;if(t[o]===e)return!0;t[o]>e?n=o-1:r=o+1}return!1}(e.properties()[n.value],o.value,0,o.value.length-1)}],all:{type:wE,overloads:[[[wE,wE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return n.evaluate(e)&&o.evaluate(e)}],[PI(wE),function(e,t){var r,n=fE(t);try{for(n.s();!(r=n.n()).done;){if(!r.value.evaluate(e))return!1}}catch(e){n.e(e)}finally{n.f()}return!0}]]},any:{type:wE,overloads:[[[wE,wE],function(e,t){var r=ZC(t,2),n=r[0],o=r[1];return n.evaluate(e)||o.evaluate(e)}],[PI(wE),function(e,t){var r,n=fE(t);try{for(n.s();!(r=n.n()).done;){if(r.value.evaluate(e))return!0}}catch(e){n.e(e)}finally{n.f()}return!1}]]},"!":[wE,[wE],function(e,t){return!ZC(t,1)[0].evaluate(e)}],"is-supported-script":[wE,[AE],function(e,t){var r=ZC(t,1)[0],n=e.globals&&e.globals.isSupportedScript;return!n||n(r.evaluate(e))}],upcase:[AE,[AE],function(e,t){return ZC(t,1)[0].evaluate(e).toUpperCase()}],downcase:[AE,[AE],function(e,t){return ZC(t,1)[0].evaluate(e).toLowerCase()}],concat:[AE,PI(EE),function(e,t){return t.map(function(t){return $E(t.evaluate(e))}).join("")}],"resolved-locale":[AE,[xE],function(e,t){return ZC(t,1)[0].evaluate(e).resolvedLocale()}],random:[bE,[bE,bE,EE],function(e,t){var r,n,o=ZC(t.map(function(t){return t.evaluate(e)}),3),i=o[0],a=o[1],s=o[2];if(i>a)return i;if(i===a)return i;if("string"==typeof s)r=function(e){var t=0;if(0===e.length)return t;for(var r=0;r>>15,1|n);return(((e=e+Math.imul(e^e>>>7,61|e)^e)^e>>>14)>>>0)/4294967296})()*(a-i)}]});var YI=function(){return rE(function e(t,r,n,o,i){var a;oE(this,e),this.expression=t,this._warningHistory={},this._scope=n,this._options=o,this._iconImageUseTheme=i,this._evaluator=new yx(n,o,i),this._defaultValue=r?"color"===(a=r).type&&(QI(a.default)||Array.isArray(a.default))?new QE(0,0,0,0):"color"===a.type?QE.parse(a.default)||null:void 0===a.default?null:a.default:null,this._enumValues=r&&"enum"===r.type?r.values:null,this.configDependencies=TI(t),this.isIndoorDependent=jI(t)},[{key:"evaluateWithoutErrorHandling",value:function(e,t,r,n,o,i,a,s){return this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=r,this._evaluator.canonical=n||null,this._evaluator.availableImages=o||null,this._evaluator.formattedSection=i,this._evaluator.featureTileCoord=a||null,this._evaluator.featureDistanceData=s||null,this.expression.evaluate(this._evaluator)}},{key:"evaluate",value:function(e,t,r,n,o,i,a,s,u){this._evaluator||(this._evaluator=new yx(this._scope,this._options,this._iconImageUseTheme)),this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n||null,this._evaluator.availableImages=o||null,this._evaluator.formattedSection=i||null,this._evaluator.featureTileCoord=a||null,this._evaluator.featureDistanceData=s||null,this._evaluator.iconImageUseTheme=u||null;try{var l=this.expression.evaluate(this._evaluator);if(null===l||void 0===l||"number"==typeof l&&l!=l)return this._defaultValue;if(this._enumValues&&!(l in this._enumValues))throw new tx("Expected value to be one of ".concat(Object.keys(this._enumValues).map(function(e){return JSON.stringify(e)}).join(", "),", but found ").concat(JSON.stringify(l)," instead."));return l}catch(e){var c=e;return this._warningHistory[c.message]||(this._warningHistory[c.message]=!0,"undefined"!=typeof console&&console.warn('Failed to evaluate expression "'.concat(JSON.stringify(this.expression.serialize()),'". ').concat(c.message))),this._defaultValue}}}])}();function WI(e){return Array.isArray(e)&&e.length>0&&"string"==typeof e[0]&&e[0]in xI}function JI(e,t,r,n,o){var i=new M_(xI,[],t?function(e){var t={color:SE,string:AE,number:bE,enum:AE,boolean:wE,formatted:_E,resolvedImage:IE};if("array"===e.type)return OE(t[e.value]||EE,e.length);return t[e.type]}(t):void 0,void 0,void 0,r,n,o),a=i.parse(e,void 0,void 0,void 0,t&&"string"===t.type?{typeAnnotation:"coerce"}:void 0);return a?MI(new YI(a,t,r,n,o)):NI(i.errors)}var XI=function(){return rE(function e(t,r,n,o){oE(this,e),this.kind=t,this._styleExpression=r,this.isLightConstant=n,this.isLineProgressConstant=o,this.isStateDependent="constant"!==t&&!x_(r.expression),this.configDependencies=TI(r.expression),this.isIndoorDependent=jI(r.expression)},[{key:"evaluateWithoutErrorHandling",value:function(e,t,r,n,o,i){return this._styleExpression.evaluateWithoutErrorHandling(e,t,r,n,o,i)}},{key:"evaluate",value:function(e,t,r,n,o,i,a){return this._styleExpression.evaluate(e,t,r,n,o,i,void 0,void 0,a)}}])}(),ZI=function(){return rE(function e(t,r,n,o,i,a){oE(this,e),this.kind=t,this.zoomStops=n,this._styleExpression=r,this.isStateDependent="camera"!==t&&!x_(r.expression),this.isIndoorDependent=jI(r.expression),this.isLightConstant=i,this.isLineProgressConstant=a,this.configDependencies=TI(r.expression),this.interpolationType=o},[{key:"evaluateWithoutErrorHandling",value:function(e,t,r,n,o,i){return this._styleExpression.evaluateWithoutErrorHandling(e,t,r,n,o,i)}},{key:"evaluate",value:function(e,t,r,n,o,i){return this._styleExpression.evaluate(e,t,r,n,o,i)}},{key:"interpolationFactor",value:function(e,t,r){return this.interpolationType?nI.interpolationFactor(this.interpolationType,e,t,r):0}}])}();function $I(e,t,r,n,o){if("error"===(e=JI(e,t,r,n,o)).result)return e;var i=e.value.expression,a=E_(i);if(!a&&!LI(t))return NI([new mE("","data expressions not supported")]);var s=__(i,["zoom","pitch","distance-from-center"]);if(!s&&!DI(t))return NI([new mE("","zoom expressions not supported")]);var u=__(i,["measure-light"]);if(!u&&!RI(t))return NI([new mE("","measure-light expression not supported")]);var l=__(i,["line-progress"]);if(!l&&!BI(t.expression,"line-progress"))return NI([new mE("","line-progress expression not supported")]);var c=t.expression&&t.expression.relaxZoomRestriction,f=function e(t){var r=null;if(t instanceof aI)r=e(t.result);else if(t instanceof iI){var n,o=fE(t.args);try{for(o.s();!(n=o.n()).done;){var i=n.value;if(r=e(i))break}}catch(e){o.e(e)}finally{o.f()}}else(t instanceof R_||t instanceof nI)&&t.input instanceof dx&&"zoom"===t.input.name&&(r=t);if(r instanceof mE)return r;t.eachChild(function(t){var n=e(t);n instanceof mE?r=n:r&&n&&r!==n&&(r=new mE("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))});return r}(i);if(!(f||s||c))return NI([new mE("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression, or in the properties of atmosphere.')]);if(f instanceof mE)return NI([f]);if(f instanceof nI&&!FI(t))return NI([new mE("",'"interpolate" expressions cannot be used with this property')]);if(!f)return MI(new XI(a&&l?"constant":"source",e.value,u,l));var p=f instanceof nI?f.interpolation:void 0;return MI(new ZI(a&&l?"camera":"composite",e.value,f.labels,p,u,l))}var eO=function(){function e(t,r){oE(this,e),this._parameters=t,this._specification=r,Object.assign(this,UI(this._parameters,this._specification))}return rE(e,null,[{key:"deserialize",value:function(t){return new e(t._parameters,t._specification)}},{key:"serialize",value:function(e){return{_parameters:e._parameters,_specification:e._specification}}}])}();function tO(e){return e instanceof Number||e instanceof String||e instanceof Boolean?e.valueOf():e}function rO(e){if(Array.isArray(e))return e.map(rO);if(e instanceof Object&&!(e instanceof Number||e instanceof String||e instanceof Boolean)){var t={};for(var r in e)t[r]=rO(e[r]);return t}return tO(e)}function nO(e){if(!0===e||!1===e)return!0;if(!Array.isArray(e)||0===e.length)return!1;switch(e[0]){case"has":return e.length>=2&&"$id"!==e[1]&&"$type"!==e[1];case"in":return e.length>=3&&("string"!=typeof e[1]||Array.isArray(e[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==e.length||Array.isArray(e[1])||Array.isArray(e[2]);case"any":case"all":var t,r=fE(e.slice(1));try{for(r.s();!(t=r.n()).done;){var n=t.value;if(!nO(n)&&"boolean"!=typeof n)return!1}}catch(e){r.e(e)}finally{r.f()}return!0;default:return!0}}function oO(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"fill";if(null===e||void 0===e)return{filter:function(){return!0},needGeometry:!1,needFeature:!1};nO(e)||(e=uO(e));var o=e,i=!0;try{i=function(e){if(!iO(e))return e;var t=rO(e);return function e(t){var r=!1,n=[];if("case"===t[0]){for(var o=1;o",">=","<","<=","to-boolean"]);function sO(e,t){return et?1:0}function uO(e){if(!e)return!0;var t,r=e[0];return e.length<=1?"any"!==r:"=="===r?lO(e[1],e[2],"=="):"!="===r?pO(lO(e[1],e[2],"==")):"<"===r||">"===r||"<="===r||">="===r?lO(e[1],e[2],r):"any"===r?(t=e.slice(1),["any"].concat(t.map(uO))):"all"===r?["all"].concat(e.slice(1).map(uO)):"none"===r?["all"].concat(e.slice(1).map(uO).map(pO)):"in"===r?cO(e[1],e.slice(2)):"!in"===r?pO(cO(e[1],e.slice(2))):"has"===r?fO(e[1]):"!has"!==r||pO(fO(e[1]))}function lO(e,t,r){switch(e){case"$type":return["filter-type-".concat(r),t];case"$id":return["filter-id-".concat(r),t];default:return["filter-".concat(r),e,t]}}function cO(e,t){if(0===t.length)return!1;switch(e){case"$type":return["filter-type-in",["literal",t]];case"$id":return["filter-id-in",["literal",t]];default:return t.length>200&&!t.some(function(e){return yE(e)!==yE(t[0])})?["filter-in-large",e,["literal",t.sort(sO)]]:["filter-in-small",e,["literal",t]]}}function fO(e){switch(e){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",e]}}function pO(e){return["!",e]}var hO={StyleExpression:YI,isExpression:WI,isExpressionFilter:nO,createExpression:JI,createPropertyExpression:$I,normalizePropertyExpression:function(e,t,r,n,o){if(QI(e))return new eO(e,t);if(WI(e)||Array.isArray(e)&&e.length>0){var i=$I(e,t,r,n,o);if("error"===i.result)throw new Error(i.value.map(function(e){return"".concat(e.key,": ").concat(e.message)}).join(", "));return i.value}var a=e;return"string"==typeof e&&"color"===t.type&&(a=QE.parse(e)),{kind:"constant",configDependencies:new Set,isIndoorDependent:!1,evaluate:function(){return a}}},ZoomConstantExpression:XI,ZoomDependentExpression:ZI,StylePropertyFunction:eO};function yO(e){"@babel/helpers - typeof";return(yO="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function dO(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return mO(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?mO(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mO(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r0}function ok(e){var t=function(e){var t,r,n=e.paint,o=void 0===n?{}:n,i=e.layout,a=void 0===i?{}:i,s=Object.keys(o).concat(Object.keys(a)),u=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ZO(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(rk);try{var l=function(){var e=r.value,n=s.some(function(t){return t.startsWith(e.prefix)});if(n)return t=e.type,1};for(u.s();!(r=u.n()).done&&!l(););}catch(e){u.e(e)}finally{u.f()}return t||tk.symbol}(e);return ek(ek(ek({},tk.symbol,{type:"layout",name:"icon-image"}),tk.line,{type:"paint",name:"line-pattern"}),tk.fill,{type:"paint",name:"fill-pattern"})[t]}var ik=["array","boolean","collator","format","literal","number","object","string","to-boolean","to-color","to-number","to-string","typeof","feature-state","geometry-type","id","line-progress","properties","at","get","has","length","!","!=","<","<=","==",">",">=","all","any","case","match","coalesce","interpolate","interpolate-hcl","interpolate-lab","step","let","var","concat","downcase","is-supported-script","resolved-locale","upcase","rgb","rgba","-","*","/","%","^","+","abs","acos","asin","atan","ceil","cos","e","floor","ln","ln2","log10","log2","max","min","pi","round","sin","sqrt","tan","zoom","heatmap-density"];function ak(e){if(e&&e.length>0){var t=XO(e,1)[0];return"string"==typeof t&&ik.includes(t)}return!1}function sk(e){return Object.keys(e).every(function(t){return!ak(e[t])})}function uk(e){return(nk(e)?e:[e]).every(function(e){return sk(e.paint||{})&&sk(e.layout||{})})}var lk=function(e){return["background-color","background-color-transition","background-pattern","background-pattern-transition","background-opacity","background-opacity-transition","fill-antialias","fill-opacity","fill-opacity-transition","fill-color","fill-color-transition","fill-outline-color","fill-outline-color-transition","fill-translate","fill-translate-transition","fill-translate-anchor","fill-pattern","fill-pattern-transition","fill-extrusion-opacity","fill-extrusion-opacity-transition","fill-extrusion-color","fill-extrusion-color-transition","fill-extrusion-translate","fill-extrusion-translate-transition","fill-extrusion-translate-anchor","fill-extrusion-pattern","fill-extrusion-pattern-transition","fill-extrusion-height","fill-extrusion-height-transition","fill-extrusion-base","fill-extrusion-base-transition","fill-extrusion-vertical-gradient","line-opacity","line-opacity-transition","line-color","line-color-transition","line-translate","line-translate-transition","line-translate-anchor","line-width","line-width-transition","line-gap-width","line-gap-width-transition","line-offset","line-offset-transition","line-blur","line-blur-transition","line-dasharray","line-dasharray-transition","line-pattern","line-pattern-transition","line-gradient","icon-opacity","icon-opacity-transition","icon-color","icon-color-transition","icon-halo-color","icon-halo-color-transition","icon-halo-width","icon-halo-width-transition","icon-halo-blur","icon-halo-blur-transition","icon-translate","icon-translate-transition","icon-translate-anchor","text-opacity","text-opacity-transition","text-color","text-color-transition","text-halo-color","text-halo-color-transition","text-halo-width","text-halo-width-transition","text-halo-blur","text-halo-blur-transition","text-translate","text-translate-transition","text-translate-anchor","raster-opacity","raster-opacity-transition","raster-hue-rotate","raster-hue-rotate-transition","raster-brightness-min","raster-brightness-min-transition","raster-brightness-max","raster-brightness-max-transition","raster-saturation","raster-saturation-transition","raster-contrast","raster-contrast-transition","raster-fade-duration","raster-resampling","circle-sort-key","circle-radius","circle-radius-transition","circle-color","circle-color-transition","circle-blur","circle-blur-transition","circle-opacity","circle-opacity-transition","circle-translate","circle-translate-transition","circle-translate-anchor","circle-pitch-scale","circle-pitch-alignment","circle-stroke-width","circle-stroke-width-transition","circle-stroke-color","circle-stroke-color-transition","circle-stroke-opacity","circle-stroke-opacity-transition","heatmap-radius","heatmap-radius-transition","heatmap-weight","heatmap-intensity","heatmap-intensity-transition","heatmap-color","heatmap-opacity","heatmap-opacity-transition","hillshade-illumination-direction","hillshade-illumination-anchor","hillshade-exaggeration","hillshade-exaggeration-transition","hillshade-shadow-color","hillshade-shadow-color-transition","hillshade-highlight-color","hillshade-highlight-color-transition","hillshade-accent-color","hillshade-accent-color-transition"].includes(e)};function ck(e){"@babel/helpers - typeof";return(ck="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function fk(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function pk(e){for(var t=1;t0}},{key:"removeSymbol",value:function(e){this.symbolManager.removeSymbol(e)}},{key:"getSymbol",value:function(e){return this.symbolManager.getSymbol(e)}},{key:"getLayerIds",value:function(e){return this.compositeSymbolRender.getLayerIds(e)||[]}},{key:"getLayerId",value:function(e){return this.compositeSymbolRender.getLayerId(e)}},{key:"removeLayerId",value:function(e){return this.compositeSymbolRender.removeLayerId(e)}},{key:"getLayer",value:function(e){var t=this.map.getLayerBySymbolBak(e),r=this.getLayerSymbol(e);if(t)return r?pk(pk({},t),{},{symbol:r}):t;var n=this.getLayerIds(e);if(n[0]){var o=this.map.getLayerBySymbolBak(n[0]);return o&&pk(pk({},o),{},{symbol:r,id:e})}}},{key:"removeLayer",value:function(e){var t=this,r=this.getLayerIds(e);r.length>0?(r.forEach(function(e){return t.map.style.removeLayer(e)}),this.removeLayerId(e)):this.map.style.removeLayer(e)}},{key:"getStyle",value:function(){var e=this,t=this.map.style.serialize();return this.hasSymbol()&&(t.layers=t.layers.reduce(function(t,r){var n=e.getLayerId(r.id);return n?!t.find(function(e){return e.id===n})&&t.push(pk(pk({},r),{},{symbol:e.getLayerSymbol(n),id:n})):e.getLayerSymbol(r.id)?t.push(pk(pk({},r),{},{symbol:e.getLayerSymbol(r.id)})):t.push(r),t},[])),t}},{key:"getFirstLayerId",value:function(e){return this.getLayerIds(e)[0]}},{key:"moveLayer",value:function(e,t){var r=this,n=this.getLayerIds(e),o=t&&this.map.style.getLayer(t),i=o&&o.id||t&&this.getFirstLayerId(t);n.length>0?n.forEach(function(e){return r.map.style.moveLayer(e,i)}):this.map.style.moveLayer(e,i)}},{key:"setFilter",value:function(e,t,r){var n=this;if(ak(this.getLayerSymbol(e))){var o=this.getFirstLayerId(e);this.map.style.setFilter(o,t,r);var i=this.getLayerSymbol(e);this.setSymbol(e,i)}else{var a=this.getLayerIds(e);a.length>0?a.forEach(function(e){return n.map.style.setFilter(e,t,r)}):this.map.style.setFilter(e,t,r)}}},{key:"getFilter",value:function(e){var t=this.getFirstLayerId(e);if(this.map.style.getLayer(t))return this.map.style.getFilter(t)}},{key:"setLayerZoomRange",value:function(e,t,r){var n=this,o=this.getLayerIds(e);o.length>0?o.forEach(function(e){return n.map.style.setLayerZoomRange(e,t,r)}):this.map.style.setLayerZoomRange(e,t,r)}},{key:"setPaintProperty",value:function(e,t,r,n){var o=this,i=this.getLayerIds(e);i.length>0?i.forEach(function(e){return o.map.style.setPaintProperty(e,t,r,n)}):this.map.style.setPaintProperty(e,t,r,n)}},{key:"getPaintProperty",value:function(e,t){var r=this.getFirstLayerId(e);return this.map.style.getPaintProperty(r,t)}},{key:"setLayoutProperty",value:function(e,t,r,n){var o=this,i=this.getLayerIds(e);i.length>0?i.forEach(function(e){return o.map.style.setLayoutProperty(e,t,r,n)}):this.map.style.setLayoutProperty(e,t,r,n)}},{key:"getLayoutProperty",value:function(e,t){var r=this.getFirstLayerId(e);return this.map.style.getLayoutProperty(r,t)}},{key:"updateLayerSymbol",value:function(e){var t=this;Object.keys(this._layerSymbols).forEach(function(r){var n=t._layerSymbols[r];n.includes(e)&&t.setSymbol(r,n)})}},{key:"updateSymbol",value:function(e,t){return this.getSymbol(e)?uk(t)?(this.symbolManager.addSymbol(e,t),void this.updateLayerSymbol(e)):this.map.fire("error",{error:new Error("Symbol is not supported expressions.")}):this.map.fire("error",{error:new Error('Symbol "'.concat(e,'" could not be loaded. Please make sure you have added the symbol with map.addSymbol().'))})}},{key:"setSymbolProperty",value:function(e,t,r,n){var o=this.getSymbol(e);if(!o)return this.map.fire("error",{error:new Error('Symbol "'.concat(e,'" could not be loaded. Please make sure you have added the symbol with map.addSymbol().'))});if(ak(n))return this.map.fire("error",{error:new Error("Symbol value is not supported expressions.")});var i=lk(r)?"paint":"layout";if(o.length>0){var a=o[t];if(!a)return this.map.fire("error",{error:new Error("symbol[".concat(t,"] does not exist."))});a[i]||(a[i]={}),Object.assign(a[i],hk({},r,n))}else o[i]||(o[i]={}),Object.assign(o[i],hk({},r,n));this.symbolManager.addSymbol(e,o),this.updateLayerSymbol(e)}},{key:"getSymbolProperty",value:function(e,t,r){var n=this.getSymbol(e);if(n){var o=lk(r)?"paint":"layout";return n.length>0?n[t]&&n[t][o]&&n[t][o][r]:n[o]&&n[o][r]}this.map.fire("error",{error:new Error('Symbol "'.concat(e,'" could not be loaded. Please make sure you have added the symbol with map.addSymbol().'))})}}])&&yk(e.prototype,t),r&&yk(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function vk(e){"@babel/helpers - typeof";return(vk="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function gk(){gk=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==vk(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function bk(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Ak(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){bk(i,n,o,a,s,"next",e)}function s(e){bk(i,n,o,a,s,"throw",e)}a(void 0)})}}var wk=function(){var e=function(e){return o().Map.prototype.symbolHandler||(o().Map.prototype.symbolHandler=new mk(e)),o().Map.prototype.symbolHandler._update(e)};function t(){return(t=Ak(gk().mark(function e(t,r){var n,o,i,a,s,u;return gk().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n="".concat(r.basePath,"/").concat(t,"/").concat(t),e.next=4,H.get("".concat(n,".json")).then(function(e){return e.ok?e.json():null}).catch(function(){return null});case 4:if(o=e.sent){e.next=7;break}return e.abrupt("return",null);case 7:if(i=o.paint||{},a=o.layout||{},s=i["fill-pattern"]||i["line-pattern"]||a["icon-image"],e.t0=s,!e.t0){e.next=15;break}return e.next=14,new Promise(function(e){var t=new Image;t.src="".concat(n,".png"),t.onload=function(r){e(r?t:null)},t.onerror=function(){e(null)}});case 14:e.t0=e.sent;case 15:return u=e.t0,e.abrupt("return",{value:o,image:u});case 17:case"end":return e.stop()}},e)}))).apply(this,arguments)}function r(r,n){return function(e,r){return t.apply(this,arguments)}(r,n).then(function(t){if(!t)return null;var r=t.value,o=t.image;return o&&e(n).addSymbolImageToMap(r,o),r})}void 0===o().Map.prototype.addLayerBySymbolBak&&(o().Map.prototype.addLayerBySymbolBak=o().Map.prototype.addLayer,o().Map.prototype.addLayer=function(t,r){var n=e(this);if(!(n.getLayerIds(t.id).length>0))return t.symbol?(n.addLayer(t,r),this):(this.addLayerBySymbolBak(t,r),this);this.fire("error",{error:new Error("A layer with this id already exists.")})}),void 0===o().Map.prototype.getLayerBySymbolBak&&(o().Map.prototype.getLayerBySymbolBak=o().Map.prototype.getLayer,o().Map.prototype.getLayer=function(t){return e(this).getLayer(t)}),void 0===o().Map.prototype.moveLayerBySymbolBak&&(o().Map.prototype.moveLayerBySymbolBak=o().Map.prototype.moveLayer,o().Map.prototype.moveLayer=function(t,r){return!this.style.getLayer(t)||r&&!this.style.getLayer(r)?(e(this).moveLayer(t,r),this._update(!0)):this.moveLayerBySymbolBak(t,r)}),void 0===o().Map.prototype.removeLayerBySymbolBak&&(o().Map.prototype.removeLayerBySymbolBak=o().Map.prototype.removeLayer,o().Map.prototype.removeLayer=function(t){return this.style.getLayer(t)?this.removeLayerBySymbolBak(t):e(this).removeLayer(t)}),void 0===o().Map.prototype.setLayoutPropertyBySymbolBak&&(o().Map.prototype.setLayoutPropertyBySymbolBak=o().Map.prototype.setLayoutProperty,o().Map.prototype.setLayoutProperty=function(t,r,n,o){return this.overlayLayersManager[t]||this.style.getLayer(t)?this.setLayoutPropertyBySymbolBak(t,r,n,o):(e(this).setLayoutProperty(t,r,n,o),this._update(!0))}),o().Map.prototype.setSymbol=function(t,r){e(this).setSymbol(t,r)},o().Map.prototype.setStyleBak||(o().Map.prototype.setStyleBak=o().Map.prototype.setStyle,o().Map.prototype.setStyle=function(e,t){var r=this;return this.setStyleBak(e,t),this.style&&this.style.once("style.load",function(){e.layers.filter(function(e){return e.symbol}).forEach(function(e){r.setSymbol(e.id,e.symbol)})}),this}),o().Map.prototype.loadSymbol=(n=Ak(gk().mark(function e(t,n){var o,i,a,s,u,l,c=this;return gk().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof t){e.next=9;break}return e.next=3,r(t,this);case 3:o=e.sent,i=null,o||(i="Symbol ".concat(t," is not exists")),n(i,o),e.next=21;break;case 9:if(!N.isArray(t)){e.next=20;break}return a=t.map(function(e){return r(e,c)}),e.next=13,Promise.all(a);case 13:s=e.sent,u=null,(l=t.filter(function(e,t){return!s[t]})).length>0&&(u="Symbol ".concat(l.join(",")," is not exists")),n(u,s),e.next=21;break;case 20:n({message:"Symbol id must be a string or string[]."});case 21:case"end":return e.stop()}},e,this)})),function(e,t){return n.apply(this,arguments)}),o().Map.prototype.addSymbol=function(t,r){e(this).addSymbol(t,r)},o().Map.prototype.getSymbol=function(t){return e(this).getSymbol(t)},o().Map.prototype.hasSymbol=function(e){return e?!!this.getSymbol(e):(this.fire("error",{error:new Error("Missing required symbol id")}),!1)},o().Map.prototype.removeSymbol=function(t){e(this).removeSymbol(t)},o().Map.prototype.updateSymbol=function(t,r){e(this).updateSymbol(t,r)},o().Map.prototype.setSymbolProperty=function(t,r,n,o){e(this).setSymbolProperty(t,r,n,o)},o().Map.prototype.getSymbolProperty=function(t,r,n){return e(this).getSymbolProperty(t,r,n)},o().Map.prototype.getStyle=function(){if(this.style)return e(this).getStyle()},o().Map.prototype.setFilter=function(t,r,n){return this.style.getLayer(t)?(this.style.setFilter(t,r,n),this._update(!0)):(e(this).setFilter(t,r,n),this._update(!0))},o().Map.prototype.getFilter=function(t){return this.style.getLayer(t)?this.style.getFilter(t):e(this).getFilter(t)},o().Map.prototype.setLayerZoomRange=function(t,r,n){return this.style.getLayer(t)?(this.style.setLayerZoomRange(t,r,n),this._update(!0)):(e(this).setLayerZoomRange(t,r,n),this._update(!0))},o().Map.prototype.setPaintProperty=function(t,r,n,o){return this.style.getLayer(t)?(this.style.setPaintProperty(t,r,n,o),this._update(!0)):(e(this).setPaintProperty(t,r,n,o),this._update(!0))},o().Map.prototype.getPaintProperty=function(t,r){return this.style.getLayer(t)?this.style.getPaintProperty(t,r):e(this).getPaintProperty(t,r)},o().Map.prototype.getLayoutProperty=function(t,r){return this.style.getLayer(t)?this.style.getLayoutProperty(t,r):e(this).getLayoutProperty(t,r)},void 0===o().Map.prototype.onBak&&(o().Map.prototype.onBak=o().Map.prototype.on,o().Map.prototype.on=function(t,r,n){var o=this;return void 0===n||this.style.getLayer(r)?this.onBak(t,r,n):(e(this).getLayerIds(r).forEach(function(e){return o.onBak(t,e,n)}),this)}),void 0===o().Map.prototype.onceBak&&(o().Map.prototype.onceBak=o().Map.prototype.once,o().Map.prototype.once=function(t,r,n){var o=this;return void 0===n||this.style.getLayer(r)?this.onceBak(t,r,n):(e(this).getLayerIds(r).forEach(function(e){return o.onceBak(t,e,n)}),this)}),void 0===o().Map.prototype.offBak&&(o().Map.prototype.offBak=o().Map.prototype.off,o().Map.prototype.off=function(t,r,n){var o=this;return void 0===n||this.style.getLayer(r)?this.offBak(t,r,n):(e(this).getLayerIds(r).forEach(function(e){return o.offBak(t,e,n)}),this)});var n};function Sk(e){"@babel/helpers - typeof";return(Sk="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ck(e,t){for(var r=0;r0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.defaultStyle&&(a.defaultStyle.destroy(),a.defaultStyle=null)}},{key:"toServerJSONObject",value:function(){var e={};if((e=N.copyAttributes(e,this)).defaultStyle&&e.defaultStyle.toServerJSONObject&&(e.defaultStyle=e.defaultStyle.toServerJSONObject()),e.items){for(var t=[],r=e.items.length,n=0;n0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.rangeExpression=null,a.rangeMode=null,a.rangeParameter=null,a.colorGradientType=null}}],o=[{key:"fromObj",value:function(e){if(e){var r=new t;N.copy(r,e);var n=e.items,o=n?n.length:0;r.items=[];for(var i=0;i0?e[0].subLayers.layers:null)?r.length:0,this.handleLayers(n,r),{result:e[0],options:t}}},{key:"handleLayers",value:function(e,t){var r;if(e)for(var n=0;n0)this.handleLayers(t[n].subLayers.layers.length,t[n].subLayers.layers);else switch(t[n].ugcLayerType){case"THEME":(r=new CM).fromJson(t[n]),t[n]=r;break;case"GRID":(r=new LM).fromJson(t[n]),t[n]=r;break;case"IMAGE":(r=new qM).fromJson(t[n]),t[n]=r;break;case"VECTOR":(r=new eN).fromJson(t[n]),t[n]=r}}}}])&&rN(r.prototype,n),o&&rN(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function lN(e){"@babel/helpers - typeof";return(lN="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cN(e,t){for(var r=0;r0&&(n+='"subLayers":'+e.toJSON()),n+=',"visible":true,',n+='"name":"'+this.getMapName(this.mapUrl)+'"',n+="}]",r.request({method:"PUT",data:n,scope:r,success:t,failure:t})}}},{key:"createTempLayerComplete",value:function(e,t){return t=t.result?t.result:t,(t=N.transformResult(t)).succeed&&(this.lastparams.resourceID=t.newResourceID),this.processAsync(this.lastparams,e)}},{key:"getMapName",value:function(e){var t=e;"/"===t.charAt(t.length-1)&&(t=t.substr(0,t.length-1));var r=t.lastIndexOf("/");return t.substring(r+1,t.length)}},{key:"transformResult",value:function(e,t){return null!=(e=N.transformResult(e))&&null!=this.lastparams&&null!=this.lastparams.resourceID&&(e.newResourceID=this.lastparams.resourceID),{result:e,options:t}}}])&&DN(r.prototype,n),o&&DN(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function qN(e){"@babel/helpers - typeof";return(qN="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function VN(e,t){for(var r=0;r=0&&n.toIndex>=0&&!o&&(n.url=N.urlAppend(n.url,"fromIndex=".concat(n.fromIndex,"&toIndex=").concat(n.toIndex))),n.returnContent&&(e.returnCountOnly||e.returnDatasetInfoOnly||e.returnFeaturesOnly||console.warn("recommend set returnFeaturesOnly config to true to imporve performance. if need get Total amount and Dataset information. FeatureService provide getFeaturesCount and getFeaturesDatasetInfo method"),e.returnCountOnly&&(n.url=N.urlAppend(n.url,"returnCountOnly="+e.returnCountOnly)),e.returnDatasetInfoOnly&&(n.url=N.urlAppend(n.url,"returnDatasetInfoOnly="+e.returnDatasetInfoOnly)),e.returnFeaturesOnly&&(n.url=N.urlAppend(n.url,"returnFeaturesOnly="+e.returnFeaturesOnly))),n.preferServer&&n.format===un.GEOJSON&&(n.url=N.handleUrlSuffix(n.url,".geojson"),n.withoutFormatSuffix=!0),r=n.getJsonParameters(e),n.request({method:"POST",data:r,scope:n,success:t,failure:t})}}},{key:"transformResult",value:function(e,t){e=N.transformResult(e);var r=new lo;if(this.preferServer&&this.format===un.GEOJSON){var n=e.succeed;return delete e.succeed,{result:{succeed:n,features:e},options:t}}(this.format===un.GEOJSON&&e.features&&(e.features=r.toGeoJSON(e.features)),this.returnFeaturesOnly&&Array.isArray(e))&&(e={succeed:e.succeed,features:r.toGeoJSON(e)});return{result:e,options:t}}},{key:"dataFormat",value:function(){return[un.GEOJSON,un.ISERVER,un.FGB]}}])&&uB(r.prototype,n),o&&uB(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function dB(e){"@babel/helpers - typeof";return(dB="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function mB(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}}}],o=[{key:"toJsonParameters",value:function(e){var t,r;return t={datasetNames:e.datasetNames,getFeatureMode:"ID",ids:e.IDs},e.fields&&((r=new gB).name=e.datasetNames,r.fields=e.fields,t.queryParameter=r),e.targetEpsgCode&&(t.targetEpsgCode=e.targetEpsgCode),"boolean"==typeof e.hasGeometry&&(t.hasGeometry=e.hasGeometry),!e.targetEpsgCode&&e.targetPrj&&(t.targetPrj=e.targetPrj),e.aggregations&&(t.aggregations=e.aggregations),N.toJSON(t)}}],n&&EB(r.prototype,n),o&&EB(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function TB(e){"@babel/helpers - typeof";return(TB="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function jB(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}a.attributeFilter=null,a.spatialQueryMode=null,a.getFeatureMode=null}}],o=[{key:"toJsonParameters",value:function(e){var r,n,o;return n={leftBottom:{x:e.bounds.left,y:e.bounds.bottom},rightTop:{x:e.bounds.right,y:e.bounds.top}},o={datasetNames:e.datasetNames,getFeatureMode:t.getFeatureMode.BOUNDS,bounds:n,spatialQueryMode:e.spatialQueryMode},e.fields&&((r=new gB).name=e.datasetNames,r.fields=e.fields,o.queryParameter=r),e.attributeFilter&&(o.attributeFilter=e.attributeFilter,o.getFeatureMode=t.getFeatureMode.BOUNDS_ATTRIBUTEFILTER),e.maxFeatures&&!isNaN(e.maxFeatures)&&(o.maxFeatures=e.maxFeatures),"boolean"==typeof e.hasGeometry&&(o.hasGeometry=e.hasGeometry),e.targetEpsgCode&&(o.targetEpsgCode=e.targetEpsgCode),!e.targetEpsgCode&&e.targetPrj&&(o.targetPrj=e.targetPrj),e.aggregations&&(o.aggregations=e.aggregations),N.toJSON(o)}}],n&&rL(r.prototype,n),o&&rL(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function lL(e){"@babel/helpers - typeof";return(lL="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function cL(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}a.geometry&&(a.geometry.destroy(),a.geometry=null)}}],o=[{key:"toJsonParameters",value:function(e){var t,r,n;return n=eo.fromGeometry(e.geometry),r={datasetNames:e.datasetNames,getFeatureMode:"BUFFER",bufferDistance:e.bufferDistance,geometry:n},e.fields&&((t=new gB).name=e.datasetNames,t.fields=e.fields,r.queryParameter=t),e.attributeFilter&&(r.attributeFilter=e.attributeFilter,r.getFeatureMode="BUFFER_ATTRIBUTEFILTER"),e.maxFeatures&&!isNaN(e.maxFeatures)&&(r.maxFeatures=e.maxFeatures),"boolean"==typeof e.hasGeometry&&(r.hasGeometry=e.hasGeometry),e.targetEpsgCode&&(r.targetEpsgCode=e.targetEpsgCode),!e.targetEpsgCode&&e.targetPrj&&(r.targetPrj=e.targetPrj),N.toJSON(r)}}],n&&gL(r.prototype,n),o&&gL(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function xL(e){"@babel/helpers - typeof";return(xL="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _L(e,t){for(var r=0;r0;)a.fields.pop();a.fields=null}a.attributeFilter=null,a.spatialQueryMode=null,a.getFeatureMode=null,a.orderBy=null}}],o=[{key:"toJsonParameters",value:function(e){var t,r,n;return r=eo.fromGeometry(e.geometry),n={datasetNames:e.datasetNames,getFeatureMode:"SPATIAL",geometry:r,spatialQueryMode:e.spatialQueryMode},(e.fields||e.orderBy)&&((t=new gB).name=e.datasetNames,e.fields&&(t.fields=e.fields),e.orderBy&&(t.orderBy=e.orderBy),n.queryParameter=t),e.attributeFilter&&(n.attributeFilter=e.attributeFilter,n.getFeatureMode="SPATIAL_ATTRIBUTEFILTER"),e.maxFeatures&&!isNaN(e.maxFeatures)&&(n.maxFeatures=e.maxFeatures),"boolean"==typeof e.hasGeometry&&(n.hasGeometry=e.hasGeometry),e.targetEpsgCode&&(n.targetEpsgCode=e.targetEpsgCode),!e.targetEpsgCode&&e.targetPrj&&(n.targetPrj=e.targetPrj),e.aggregations&&(n.aggregations=e.aggregations),N.toJSON(n)}}],n&&NL(r.prototype,n),o&&NL(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function GL(e){"@babel/helpers - typeof";return(GL="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function UL(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return NR(e);throw new Error("coord must be GeoJSON Point or an Array of numbers")}var DR={centimeters:637100880,centimetres:637100880,cm:637100880,degrees:360/(2*Math.PI),deg:360/(2*Math.PI),feet:20902260.511392,ft:20902260.511392,inches:6371008.8*39.37,in:6371008.8*39.37,kilometers:6371.0088,kilometres:6371.0088,km:6371.0088,meters:6371008.8,metres:6371008.8,m:6371008.8,miles:3958.761333810546,mi:3958.761333810546,millimeters:6371008800,millimetres:6371008800,mm:6371008800,nauticalmiles:6371008.8/1852,nmi:6371008.8/1852,radians:1,rad:1,yards:6371008.8*1.0936,yd:6371008.8*1.0936};function FR(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"kilometers",r=DR[t];if(!r)throw new Error(t+" units is invalid");return e*r}function QR(e){return e%360*Math.PI/180}function GR(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=RR(e),o=RR(t),i=QR(o[1]-n[1]),a=QR(o[0]-n[0]),s=QR(n[1]),u=QR(o[1]),l=Math.pow(Math.sin(i/2),2)+Math.pow(Math.sin(a/2),2)*Math.cos(s)*Math.cos(u);return FR(2*Math.atan2(Math.sqrt(l),Math.sqrt(1-l)),r.units)}function UR(){UR=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==XR(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function zR(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||WR(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function HR(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function qR(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function VR(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);r=c)&&(!f||t<=f)})),{features:a,stationFeature:r}})})})}},{key:"getWLTimeRange",value:function(e,t){var r=this;if("string"!=typeof r.dataUrl)return console.error("dataUrl is required"),null;var n=new MR(r.dataUrl,{proxy:r.options.proxy,withCredentials:r.options.withCredentials,crossOrigin:r.options.crossOrigin,headers:r.options.headers}),o=e.dataset,i=e.dataSource,a=e.timeDataset,s=e.idKey,u=new VB({queryParameter:{name:o+"@"+i},datasetNames:[i+":"+o],returnFeaturesOnly:!0,fromIndex:0,toIndex:1,expectCount:-1});return n.getFeaturesBySQL(u).then(function(e){var r=e.result.features.features[0].properties[s],o=new VB({queryParameter:{name:a+"@"+i,attributeFilter:s+" = '"+r+"'",orderBy:"TIMEPOINT"},datasetNames:[i+":"+a],toIndex:-1,expectCount:-1});return n.getFeaturesBySQL(o,t).then(function(e){return e})}).catch(function(e){throw e})}},{key:"findNearestPointNew",value:function(){var e,t=(e=UR().mark(function e(t,r){var n,o,i,a,s,u,l,c;return UR().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=zR(t,2),o=n[0],i=n[1],!(o<-180||o>180||i<-90||i>90)){e.next=3;break}return e.abrupt("return");case 3:return a=new it([o,i]),s=new EL({datasetNames:r,bufferDistance:.03,geometry:a}),e.next=7,new MR(this.dataUrl).getFeaturesByBuffer(s);case 7:if(!((u=e.sent).result.features.features.length>0)){e.next=13;break}return l=null,c=1/0,u.result.features.features.forEach(function(e){var r=GR(t,e.geometry.coordinates);r=0){var t=JSON.parse(e.data);return e.filterParam=t,e.eventType="setFilterParamSucceeded",void this.events.triggerEvent("setFilterParamSucceeded",e)}var r=JSON.parse(e.data);e.featureResult=r,e.eventType="messageSucceeded",this.events.triggerEvent("messageSucceeded",e)}},{key:"_connect",value:function(e){return e=bw.appendCredential(e),"WebSocket"in window?new WebSocket(e):"MozWebSocket"in window?new(0,window.MozWebSocket)(e):(console.log("no WebSocket"),null)}}])&&lD(r.prototype,n),o&&lD(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function dD(e){"@babel/helpers - typeof";return(dD="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function mD(e,t){for(var r=0;r=200&&e.code<300||0==e.code||304===e.code,n=e.code&&r;return!e.code||n?{result:e,options:t}:{error:e,options:t}}}])&&TQ(r.prototype,n),o&&TQ(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function DQ(e){"@babel/helpers - typeof";return(DQ="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function FQ(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}}])&&XG(r.prototype,n),o&&XG(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function oU(e){"@babel/helpers - typeof";return(oU="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function iU(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.facilityPathList)return e;var t=new lo;return e.facilityPathList.map(function(e){return e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures)),e}),e}}])&&qU(r.prototype,n),o&&qU(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function ZU(e){"@babel/helpers - typeof";return(ZU="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $U(e,t){for(var r=0;r0&&(t+=","),t+=N.toJSON(e[n]);return t+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e)return null;var t=new lo;return e.demandResults&&(e.demandResults=t.toGeoJSON(e.demandResults)),e.supplyResults&&(e.supplyResults=t.toGeoJSON(e.supplyResults)),e}}])&&nz(r.prototype,n),o&&nz(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function cz(e){"@babel/helpers - typeof";return(cz="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function fz(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.pathList)return null;var t=new lo;return e.pathList.map(function(e){return e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures)),e}),e}}])&&dz(r.prototype,n),o&&dz(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Sz(e){"@babel/helpers - typeof";return(Sz="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Cz(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.pathList||e.pathList.length<1)return null;var t=new lo;return e.pathList.forEach(function(e){e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures))}),e}}])&&Iz(r.prototype,n),o&&Iz(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Nz(e){"@babel/helpers - typeof";return(Nz="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Bz(e,t){for(var r=0;r0&&(r+=","),r+='{"x":'+t[o].x+',"y":'+t[o].y+"}";else if(!0===e)for(var i=0;i0&&(r+=","),r+=t[i];return r+="]"}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.serviceAreaList)return e;var t=new lo;return e.serviceAreaList.map(function(e){return e.serviceRegion&&(e.serviceRegion=t.toGeoJSON(e.serviceRegion)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures)),e.routes&&(e.routes=t.toGeoJSON(e.routes)),e}),e}}])&&Fz(r.prototype,n),o&&Fz(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Vz(e){"@babel/helpers - typeof";return(Vz="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Kz(e,t){for(var r=0;r0&&(t+=","),t+='{"x":'+o[r].x+',"y":'+o[r].y+"}";i+=t+="]"}else if(!0===e.isAnalyzeById){for(var a="[",s=e.nodes,u=s.length,l=0;l0&&(a+=","),a+=s[l];i+=a+="]"}return i}},{key:"toGeoJSONResult",value:function(e){if(!e||!e.tspPathList)return null;var t=new lo;return e.tspPathList.forEach(function(e){e.route&&(e.route=t.toGeoJSON(e.route)),e.pathGuideItems&&(e.pathGuideItems=t.toGeoJSON(e.pathGuideItems)),e.edgeFeatures&&(e.edgeFeatures=t.toGeoJSON(e.edgeFeatures)),e.nodeFeatures&&(e.nodeFeatures=t.toGeoJSON(e.nodeFeatures))}),e}}])&&Xz(r.prototype,n),o&&Xz(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function oH(e){"@babel/helpers - typeof";return(oH="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function iH(e,t){for(var r=0;r0)for(var t in e.items)e.items[t].destroy(),e.items[t]=null;e.items=null}e.numericPrecision=null,e.rangeMode=null,e.rangeCount=null,e.colorGradientType=null}}])&&UV(e.prototype,t),r&&UV(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function qV(e){"@babel/helpers - typeof";return(qV="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function VV(e,t){for(var r=0;r=0;a--)this.points[a].destroy();this.points=null}}}],o=[{key:"toObject",value:function(e,t){for(var r in e)"clipRegion"===r?t.clipRegion=eo.fromGeometry(e.clipRegion):t[r]=e[r]}}],n&&y2(r.prototype,n),o&&y2(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function w2(e){"@babel/helpers - typeof";return(w2="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S2(e,t){for(var r=0;r0&&(1===o.length?r+="'displayFilter':\""+o[0]+'",':r+="'displayFilter':\""+o[a]+'",'),(i=e.displayOrderBy)&&i.length>0&&(1===i.length?r+="'displayOrderBy':'"+i[0]+"',":r+="'displayOrderBy':'"+i[a]+"',"),(t=e.fieldValuesDisplayFilter)&&(r+="'fieldValuesDisplayFilter':"+N.toJSON(t)+","),e.joinItems&&e.joinItems.length>0&&e.joinItems[a]&&(r+="'joinItems':["+N.toJSON(e.joinItems[a])+"],"),e.datasetNames&&e.dataSourceNames){var u=e.datasetNames[a]?a:e.datasetNames.length-1,l=e.dataSourceNames[a]?a:e.dataSourceNames.length-1;r+="'datasetInfo': {'name': '"+e.datasetNames[u]+"','dataSourceName': '"+e.dataSourceNames[l]+"'}},"}else r+="},"}e.themes&&e.themes.length>0&&(r=r.substring(0,r.length-1)),r+="]},";var c=this.url.split("/");return r+="'name': '"+c[c.length-2]+"'}]"}}])&&L3(r.prototype,n),o&&L3(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function z3(e){"@babel/helpers - typeof";return(z3="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function H3(e,t){for(var r=0;r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function q4(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function V4(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){q4(i,n,o,a,s,"next",e)}function s(e){q4(i,n,o,a,s,"throw",e)}a(void 0)})}}function K4(e,t){for(var r=0;r0&&o.push(","),r=t[i].geometry,o.push(this.extractGeometry(r));return n&&o.push(")"),o.join("")}},{key:"extractGeometry",value:function(e){var t=e.CLASS_NAME.split(".")[2].toLowerCase();return this.extract[t]?("collection"===t?"GEOMETRYCOLLECTION":t.toUpperCase())+"("+this.extract[t].apply(this,[e])+")":null}}])&&U5(r.prototype,n),o&&U5(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Y5(e){"@babel/helpers - typeof";return(Y5="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function W5(e,t){for(var r=0;r=0?t.speed:1,this.frequency=t.speed&&t.frequency>=0?t.frequency:1e3,this.startTime=t.startTime&&null!=t.startTime?t.startTime:0,this.endTime=t.endTime&&null!=t.endTime&&t.endTime>=r.startTime?t.endTime:+new Date,this.repeat=void 0===t.repeat||t.repeat,this.reverse=void 0!==t.reverse&&t.reverse,this.currentTime=null,this.oldTime=null,this.running=!1,this.EVENT_TYPES=["start","pause","stop"],r.events=new Ma(this,null,this.EVENT_TYPES),r.speed=Number(r.speed),r.frequency=Number(r.frequency),r.startTime=Number(r.startTime),r.endTime=Number(r.endTime),r.startTime=Date.parse(new Date(r.startTime)),r.endTime=Date.parse(new Date(r.endTime)),r.currentTime=r.startTime,this.CLASS_NAME="SuperMap.TimeControlBase"},(t=[{key:"updateOptions",value:function(e){var t=this;(e=e||{}).speed&&e.speed>=0&&(t.speed=e.speed,t.speed=Number(t.speed)),e.speed&&e.frequency>=0&&(t.frequency=e.frequency,t.frequency=Number(t.frequency)),e.startTime&&null!=e.startTime&&(t.startTime=e.startTime,t.startTime=Date.parse(new Date(t.startTime))),e.endTime&&null!=e.endTime&&e.endTime>=t.startTime&&(t.endTime=e.endTime,t.endTime=Date.parse(new Date(t.endTime))),null!=e.repeat&&(t.repeat=e.repeat),null!=e.reverse&&(t.reverse=e.reverse)}},{key:"start",value:function(){var e=this;e.running||(e.running=!0,e.tick(),e.events.triggerEvent("start",e.currentTime))}},{key:"pause",value:function(){this.running=!1,this.events.triggerEvent("pause",this.currentTime)}},{key:"stop",value:function(){var e=this;e.currentTime=e.startTime,e.running&&(e.running=!1),e.events.triggerEvent("stop",e.currentTime)}},{key:"toggle",value:function(){this.running?this.pause():this.start()}},{key:"setSpeed",value:function(e){return e>=0&&(this.speed=e,!0)}},{key:"getSpeed",value:function(){return this.speed}},{key:"setFrequency",value:function(e){return e>=0&&(this.frequency=e,!0)}},{key:"getFrequency",value:function(){return this.frequency}},{key:"setStartTime",value:function(e){var t=this;return!((e=Date.parse(new Date(e)))>t.endTime)&&(t.startTime=e,t.currentTime=t.endTime&&(t.currentTime=t.startTime,t.tick()),!0)}},{key:"getEndTime",value:function(){return this.endTime}},{key:"setCurrentTime",value:function(e){var t=this;return t.currentTime=Date.parse(new Date(t.currentTime)),e>=t.startTime&&e<=t.endTime&&(t.currentTime=e,t.startTime=t.currentTime,t.tick(),!0)}},{key:"getCurrentTime",value:function(){return this.currentTime}},{key:"setRepeat",value:function(e){this.repeat=e}},{key:"getRepeat",value:function(){return this.repeat}},{key:"setReverse",value:function(e){this.reverse=e}},{key:"getReverse",value:function(){return this.reverse}},{key:"getRunning",value:function(){return this.running}},{key:"destroy",value:function(){var e=this;e.speed=null,e.frequency=null,e.startTime=null,e.endTime=null,e.currentTime=null,e.repeat=null,e.running=!1,e.reverse=null}},{key:"tick",value:function(){}}])&&W5(e.prototype,t),r&&W5(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Z5(e){"@babel/helpers - typeof";return(Z5="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function $5(e,t){for(var r=0;r=e.endTime&&(e.currentTime=e.endTime)}}}])&&$5(r.prototype,n),o&&$5(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function s6(e){"@babel/helpers - typeof";return(s6="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u6(e,t){for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:{headers:this.headers,crossOrigin:this.crossOrigin,withCredentials:this.withCredentials};return t=bw.appendCredential(t),H.commit(e,t,r,n).then(function(e){return e.json()})}}])&&C6(e.prototype,t),r&&C6(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function _6(e){"@babel/helpers - typeof";return(_6="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I6(e,t){for(var r=0;r0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.reverseColor=null,a.rangeMode=null,a.rangeParameter=null,a.colorGradientType=null}}],o=[{key:"fromObj",value:function(e){if(e){var r=new t;N.copy(r,e);var n=e.items,o=n?n.length:0;r.items=[];for(var i=0;i0)for(var s in a.items)a.items[s].destroy(),a.items[s]=null;a.items=null}a.defaultcolor&&(a.defaultcolor.destroy(),a.defaultcolor=null)}},{key:"toServerJSONObject",value:function(){var e={};if((e=N.copyAttributes(e,this)).defaultcolor&&e.defaultcolor.toServerJSONObject&&(e.defaultcolor=e.defaultcolor.toServerJSONObject()),e.items){for(var t=[],r=e.items.length,n=0;n0&&(e=e.substring(0,e.length-1)),"{"+e+"}"}return null}}])&&Lee(e.prototype,t),r&&Lee(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Fee(e){"@babel/helpers - typeof";return(Fee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Qee(e,t){for(var r=0;r3&&void 0!==arguments[3]?arguments[3]:{};return t=bw.appendCredential(t),n.crossOrigin=this.options.crossOrigin,n.headers=this.options.headers,H.commit(e,t,r,n).then(function(e){return e.json()})}}])&&Qre(e.prototype,t),r&&Qre(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function zre(e){"@babel/helpers - typeof";return(zre="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Hre(e,t){for(var r=0;r=0;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var _ne=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Ine=function(e){return _ne.exec(e).slice(1)};function One(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var n=r>=0?arguments[r]:"/";if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");n&&(e=n+"/"+e,t="/"===n.charAt(0))}return(t?"/":"")+(e=xne(Rne(e.split("/"),function(e){return!!e}),!t).join("/"))||"."}function kne(e){var t=Pne(e),r="/"===Dne(e,-1);return(e=xne(Rne(e.split("/"),function(e){return!!e}),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function Pne(e){return"/"===e.charAt(0)}function Tne(){return kne(Rne(Array.prototype.slice.call(arguments,0),function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))}function jne(e,t){function r(e){for(var t=0;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=One(e).substr(1),t=One(t).substr(1);for(var n=r(e.split("/")),o=r(t.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),e.exports=t,process.on("uncaughtException",function(e){if(!("unwind"===e||e instanceof k||e.context instanceof k))throw e}),t.inspect=function(){return"[Emscripten Module object]"}}else(i||a)&&(a?u=self.location.href:"undefined"!=typeof document&&document.currentScript&&(u=document.currentScript.src),u=0!==u.indexOf("blob:")?u.substr(0,u.replace(/[?#].*/,"").lastIndexOf("/")+1):"",r=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},a&&(n=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}));t.print||console.log.bind(console);var f,p,h=t.printErr||console.error.bind(console);Object.assign(t,o),o=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram,t.quit&&t.quit,t.wasmBinary&&(f=t.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":bne(WebAssembly))&&S("no native wasm support detected");var y,d=!1;function m(){var e=p.buffer;t.HEAP8=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAPU8=y=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAP32=new Int32Array(e),t.HEAPU32=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}var v=[],g=[],b=[],A=0,w=null;function S(e){throw t.onAbort&&t.onAbort(e),h(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(e)}var C,E,x="data:application/octet-stream;base64,",_=function(e){return e.startsWith(x)},I=function(e){return e.startsWith("file://")};function O(e){return Promise.resolve().then(function(){return function(e){if(e==C&&f)return new Uint8Array(f);var t=function(e){if(_(e))return function(e){if(void 0!==s&&s){var t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.length)}for(var r=atob(e),n=new Uint8Array(r.length),o=0;o0;)e.shift()(t)};t.noExitRuntime;var T,j=function(e){var t=(e-p.buffer.byteLength+65535)/65536;try{return p.grow(t),m(),1}catch(e){}},M={b:function(){S("")},a:function(e){var t=y.length,r=2147483648;if((e>>>=0)>r)return!1;for(var n,o,i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(r,(n=Math.max(e,a))+((o=65536)-n%o)%o);if(j(s))return!0}return!1}},N=function(){var e={a:M};function r(e,r){var n;return N=e.exports,p=N.c,m(),n=N.d,g.unshift(n),function(e){if(A--,t.monitorRunDependencies&&t.monitorRunDependencies(A),0==A&&w){var r=w;w=null,r()}}(),N}if(A++,t.monitorRunDependencies&&t.monitorRunDependencies(A),t.instantiateWasm)try{return t.instantiateWasm(e,r)}catch(e){return h("Module.instantiateWasm callback failed with error: ".concat(e)),!1}return function(e,t,r,n){(function(e,t,r){O(e).then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(r,function(e){h("failed to asynchronously prepare wasm: ".concat(e)),S(e)})})(t,r,n)}(0,C,e,function(e){r(e.instance)}),{}}();function B(){function e(){T||(T=!0,t.calledRun=!0,d||(P(g),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)e=t.postRun.shift(),b.unshift(e);var e;P(b)}()))}A>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)e=t.preRun.shift(),v.unshift(e);var e;P(v)}(),A>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}if(t._UGCWasm_CipherAES_New=function(e,r,n){return(t._UGCWasm_CipherAES_New=N.e)(e,r,n)},t._UGCWasm_CipherAES_Encrypt=function(e,r,n){return(t._UGCWasm_CipherAES_Encrypt=N.f)(e,r,n)},t._UGCWasm_CipherAES_Decrypt=function(e,r,n){return(t._UGCWasm_CipherAES_Decrypt=N.g)(e,r,n)},t._malloc=function(e){return(t._malloc=N.i)(e)},t._free=function(e){return(t._free=N.j)(e)},w=function e(){T||B(),T||(w=e)},t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return B(),t}();e.exports=r}(Cne);var Qne=wne(Cne.exports);function Gne(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:256;return e.byteLength<=t?e:e.subarray(0,t)}(n,t.decodeSize),i=e.Module;if(t.decrypt)r=Gne(t.decrypt({key:t.key,bytes:o}),n);else{var a=function(e){var t;return zne[e]?t=zne[e]:(t=function(e){return function(e){try{for(var t=atob(e),r=t.length,n=Math.ceil(r/32),o=new Array(n),i=0;i1&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),e.exports=t,process.on("uncaughtException",function(e){if(!("unwind"===e||e instanceof k||e.context instanceof k))throw e}),t.inspect=function(){return"[Emscripten Module object]"}}else(i||a)&&(a?u=self.location.href:"undefined"!=typeof document&&document.currentScript&&(u=document.currentScript.src),u=0!==u.indexOf("blob:")?u.substr(0,u.replace(/[?#].*/,"").lastIndexOf("/")+1):"",r=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},a&&(n=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}));t.print||console.log.bind(console);var f,p,h=t.printErr||console.error.bind(console);Object.assign(t,o),o=null,t.arguments&&t.arguments,t.thisProgram&&t.thisProgram,t.quit&&t.quit,t.wasmBinary&&(f=t.wasmBinary),"object"!=("undefined"==typeof WebAssembly?"undefined":bne(WebAssembly))&&S("no native wasm support detected");var y,d=!1;function m(){var e=p.buffer;t.HEAP8=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAPU8=y=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAP32=new Int32Array(e),t.HEAPU32=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}var v=[],g=[],b=[],A=0,w=null;function S(e){throw t.onAbort&&t.onAbort(e),h(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.",new WebAssembly.RuntimeError(e)}var C,E,x="data:application/octet-stream;base64,",_=function(e){return e.startsWith(x)},I=function(e){return e.startsWith("file://")};function O(e,t,r){return function(e){return Promise.resolve().then(function(){return function(e){if(e==C&&f)return new Uint8Array(f);var t=function(e){if(_(e))return function(e){if(void 0!==s&&s){var t=Buffer.from(e,"base64");return new Uint8Array(t.buffer,t.byteOffset,t.length)}for(var r=atob(e),n=new Uint8Array(r.length),o=0;o0;)e.shift()(t)};t.noExitRuntime;var T,j=function(e){var t=(e-p.buffer.byteLength+65535)/65536;try{return p.grow(t),m(),1}catch(e){}},M={a:function(){S("")},c:function(e,t,r){return y.copyWithin(e,t,t+r)},b:function(e){var t=y.length,r=2147483648;if((e>>>=0)>r)return!1;for(var n,o,i=1;i<=4;i*=2){var a=t*(1+.2/i);a=Math.min(a,e+100663296);var s=Math.min(r,(n=Math.max(e,a))+((o=65536)-n%o)%o);if(j(s))return!0}return!1}},N=function(){var e={a:M};function r(e,r){var n;return N=e.exports,p=N.d,m(),n=N.e,g.unshift(n),function(e){if(A--,t.monitorRunDependencies&&t.monitorRunDependencies(A),0==A&&w){var r=w;w=null,r()}}(),N}if(A++,t.monitorRunDependencies&&t.monitorRunDependencies(A),t.instantiateWasm)try{return t.instantiateWasm(e,r)}catch(e){return h("Module.instantiateWasm callback failed with error: ".concat(e)),!1}return O(C,e,function(e){r(e.instance)}),{}}();function B(){function e(){T||(T=!0,t.calledRun=!0,d||(P(g),t.onRuntimeInitialized&&t.onRuntimeInitialized(),function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)e=t.postRun.shift(),b.unshift(e);var e;P(b)}()))}A>0||(function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)e=t.preRun.shift(),v.unshift(e);var e;P(v)}(),A>0||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e()))}if(t._UGCWasm_CipherSM4_New=function(e,r,n){return(t._UGCWasm_CipherSM4_New=N.f)(e,r,n)},t._UGCWasm_CipherSM4_Encrypt=function(e,r,n){return(t._UGCWasm_CipherSM4_Encrypt=N.g)(e,r,n)},t._UGCWasm_CipherSM4_Decrypt=function(e,r,n){return(t._UGCWasm_CipherSM4_Decrypt=N.h)(e,r,n)},t._UGCWasm_CipherSM4_Delete=function(e){return(t._UGCWasm_CipherSM4_Delete=N.i)(e)},t._malloc=function(e){return(t._malloc=N.k)(e)},t._free=function(e){return(t._free=N.l)(e)},w=function e(){T||B(),T||(w=e)},t.preInit)for("function"==typeof t.preInit&&(t.preInit=[t.preInit]);t.preInit.length>0;)t.preInit.pop()();return B(),t}();e.exports=r}(Hne);var qne=wne(Hne.exports);function Vne(e){"@babel/helpers - typeof";return(Vne="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Kne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Yne(e,t,r){return(t=function(e){var t=function(e,t){if("object"!=Vne(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=Vne(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==Vne(t)?t:t+""}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Wne(e){return function(e){if(Array.isArray(e))return Jne(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Jne(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Jne(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Jne(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rt.geoFence.radius&&(t.outOfGeoFence&&t.outOfGeoFence(e),t.events.triggerEvent("outOfGeoFence",{data:e})),r})}},{key:"_distance",value:function(e,t,r,n){return Math.sqrt((e-r)*(e-r)+(t-n)*(t-n))}},{key:"_getMeterPerMapUnit",value:function(e){var t;return"meter"===e?t=1:"degree"===e&&(t=2*Math.PI*6378137/360),t}}])&&Zne(e.prototype,t),r&&Zne(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function toe(e){"@babel/helpers - typeof";return(toe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function roe(e,t){for(var r=0;r=t)if("RANGE"===r)for(o=0;o=0&&this.getSqrtInterval(e,r):"logarithm"===t?this.getMin(e)>0&&this.getGeometricProgression(e,r):void 0}},{key:"getSum",value:function(e){return this.getInstance(e).sum()}},{key:"getMax",value:function(e){return this.getInstance(e).max()}},{key:"getMin",value:function(e){return this.getInstance(e).min()}},{key:"getMean",value:function(e){return this.getInstance(e).mean()}},{key:"getMedian",value:function(e){return this.getInstance(e).median()}},{key:"getTimes",value:function(e){return e.length}},{key:"getEqInterval",value:function(e,t){return this.getInstance(e).getClassEqInterval(t)}},{key:"getJenks",value:function(e,t){return this.getInstance(e).getClassJenks(t)}},{key:"getSqrtInterval",value:function(e,t){return e=e.map(function(e){return Math.sqrt(e)}),this.getInstance(e).getClassEqInterval(t).map(function(e){return e*e})}},{key:"getGeometricProgression",value:function(e,t){return this.getInstance(e).getClassGeometricProgression(t)}}],(t=null)&&soe(e.prototype,t),r&&soe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function coe(e){if(!e)throw new Error("No GeoJSON coords provided");if(!e||0===e.length)return null;var t=e.length,r=new Float64Array(e.flat()),n=window.ugcModule._malloc(2*t*8);window.ugcModule.HEAPF64.set(r,n/8);var o=window.ugcModule._UGCWasm_Geometry_CreatePoint2DsFromBuffer(n,t);return window.ugcModule._free(n),o}function foe(e){if(!e)throw new Error("No GeoJSON coords provided");if(!e||0===e.length)return null;var t=e.length,r=new Float64Array(e),n=window.ugcModule._malloc(8*t);window.ugcModule.HEAPF64.set(r,n/8);var o=window.ugcModule._UGCWasm_Helper_CreateDoubleArray(n,t);return window.ugcModule._free(n),o}function poe(e){var t=window.ugcModule._UGCWasm_Helper_GetDoubleArrayLength(e),r=window.ugcModule._malloc(8*t);window.ugcModule._UGCWasm_Helper_GetBufferFromDoubleArray(e,r);for(var n=new Float64Array(window.ugcModule.HEAPF64.buffer,r,t),o=[],i=0;i1)for(var i=1;i1)for(var l=1;l2&&void 0!==arguments[2]?arguments[2]:1e-6,n=yoe(e),o=yoe(t);return 1===this.module._UGCWasm_Geometrist_IsIdentical(n,o,r)}},{key:"hasIntersection",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e-6,n=yoe(e),o=yoe(t);return 1===this.module._UGCWasm_Geometrist_HasIntersection(n,o,r)}},{key:"hasTouch",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e-6,n=yoe(e),o=yoe(t);return 1===this.module._UGCWasm_Geometrist_HasTouch(n,o,r)}},{key:"resample",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e-6,r=yoe(e);return{type:"Feature",geometry:hoe(this.module._UGCWasm_Geometrist_Resample(r,t))}}},{key:"isParallel",value:function(e,t,r,n,o,i,a,s){return 1===this.module._UGCWasm_Geometrist_IsParallel(e,t,r,n,o,i,a,s)}},{key:"computePerpendicularPosition",value:function(e,t,r,n,o,i){var a=this.module._UGCWasm_Helper_CreateDoubleArray(0,2);return this.module._UGCWasm_Geometrist_ComputePerpendicularPosition(e,t,r,n,o,i,a),a=poe(a)}},{key:"isPointOnLine",value:function(e,t,r,n,o,i){var a=arguments.length>6&&void 0!==arguments[6]&&arguments[6];return 1===this.module._UGCWasm_Geometrist_IsPointOnLine(e,t,r,n,o,i,a)}},{key:"isProjectOnLineSegment",value:function(e,t,r,n,o,i){return 1===this.module._UGCWasm_Geometrist_IsProjectOnLineSegment(e,t,r,n,o,i)}},{key:"distanceToLineSegment",value:function(e,t,r,n,o,i){var a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:yn.DEGREE,s=arguments.length>7&&void 0!==arguments[7]?arguments[7]:yn.DEGREE,u=this.module._UGCWasm_Geometrist_DistanceToLineSegment(e,t,r,n,o,i);return s!==yn.DEGREE?u*hf(a)/hf(s):u}},{key:"nearestPointToVertex",value:function(e,t,r){if("LineString"!==Eoe(r))throw new Error("only feature type is LineString supported");var n=this.module._UGCWasm_Helper_CreateDoubleArray(0,2),o=yoe(r);return this.module._UGCWasm_Geometrist_NearestPointToVertex(e,t,o,n),n=poe(n)}},{key:"computeConcaveHullPoints",value:function(e,t,r){if(!Array.isArray(t)){var n=doe(e);r=t,e=n.xList,t=n.yList}var o=foe(e),i=foe(t);return{type:"Feature",geometry:hoe(this.module._UGCWasm_Geometrist_ComputeConcaveHullPoints(o,i,e.length,r))}}},{key:"isSegmentIntersect",value:function(e,t,r,n,o,i,a,s){return 1===this.module._UGCWasm_Geometrist_IsSegmentIntersect(e,t,r,n,o,i,a,s)}},{key:"isIntersectRegionWithRect",value:function(e,t,r,n,o){var i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1e-6,a=yoe(e);return 0!==this.module._UGCWasm_Geometrist_isIntersectRegionWithRect(a,t,r,n,o,i)}},{key:"isOnSameSide",value:function(e,t,r,n,o,i,a,s){return 1===this.module._UGCWasm_Geometrist_IsOnSameSide(e,t,r,n,o,i,a,s)}},{key:"isRight",value:function(e,t,r,n,o,i){return 1===this.module._UGCWasm_Geometrist_IsRight(e,t,r,n,o,i)}},{key:"isLeft",value:function(e,t,r,n,o,i){return 1===this.module._UGCWasm_Geometrist_IsLeft(e,t,r,n,o,i)}},{key:"computeGeodesicArea",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Fn.SQUAREMETER;if(!function(e){if(e&&e.geometry&&e.geometry.type){var t=e.geometry.type;if("Point"===t)return ho(e.geometry.coordinates);if("LineString"===t)return ho(e.geometry.coordinates[0]);if("Polygon"===t||"MultiLineString"===t)return ho(e.geometry.coordinates[0][0])}}(e))throw new Error("coordinates is invalid latlng");if("Polygon"!==Eoe(e))throw new Error("only feature type is Polygon supported");var r=yoe(e),n=this.module._UGCWasm_Geometry_NewUGPrjCoordSys(4326),o=this.module._UGCWasm_Geometrist_ComputeGeodesicArea(r,n);return t!==Fn.SQUAREMETER?o*yf[t]:o}},{key:"smooth",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;if("LineString"!==Eoe(e))throw new Error("only feature type is LineString supported");var r=yoe(e);return{type:"Feature",geometry:hoe(this.module._UGCWasm_Geometrist_Smooth(r,t))}}},{key:"computeGeodesicDistance",value:function(e,t,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:yn.METER;if(!Array.isArray(t)){var i=doe(e),a=i.xList,s=i.yList;o=n||yn.METER,n=r,r=t,e=a,t=s}if(!ho([e[0],t[0]]))throw new Error("coordinates is invalid latlng");var u=foe(e),l=foe(t),c=this.module._UGCWasm_Geometrist_ComputeGeodesicDistance(u,l,r,n);return o!==yn.METER?c/hf(o):c}},{key:"computeParallel",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:yn.DEGREE,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:yn.DEGREE;if("LineString"!==Eoe(e))throw new Error("only feature type is LineString supported");n!==yn.DEGREE&&(t=t*hf(n)/hf(r));var o=yoe(e);return{type:"Feature",geometry:hoe(this.module._UGCWasm_Geometrist_ComputeParallel(o,t))}}},{key:"computeConvexHullPoints",value:function(e,t){if(!Array.isArray(t)){var r=doe(e);e=r.xList,t=r.yList}var n=foe(e),o=foe(t);return{type:"Feature",geometry:hoe(this.module._UGCWasm_Geometrist_ComputeConvexHullPoints(n,o,e.length))}}}])&&goe(r.prototype,n),o&&goe(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Eoe(e){return"Feature"===e.type&&null!==e.geometry?e.geometry.type:e.type}var xoe=r(8518),_oe=r.n(xoe);function Ioe(e){"@babel/helpers - typeof";return(Ioe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ooe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function koe(e,t){for(var r=0;rl&&(u[o]=u[o].slice(n-l),l=n)}function d(e){var t,i,a,s;if(e instanceof Function)return e.call(c.parsers);if("string"==typeof e)t=r.charAt(n)===e?e:null,i=1,y();else{if(y(),!(t=e.exec(u[o])))return null;i=t[0].length}if(t){var f=n+=i;for(s=n+u[o].length-i;n=0&&"\n"!==n.charAt(a);a--)e.column++;return new Error([e.filename,e.line,e.column,e.message].join(";"))}return this.env=t=t||{},this.env.filename=this.env.filename||null,this.env.inputs=this.env.inputs||{},c={parse:function(i){var a,c=null;if(n=o=l=s=0,u=[],r=i.replace(/\r\n/g,"\n"),t.filename&&(f.env.inputs[t.filename]=r),u=function(e){for(var t,n,o,i,a=0,s=/(?:@\{[\w-]+\}|[^"'`\{\}\/\(\)\\])+/g,u=/\/\*(?:[^*]|\*+[^\/*])*\*+\/|\/\/.*/g,l=/"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'|`((?:[^`]|\\.)*)`/g,f=0,p=e[0],h=0;h0?"missing closing `}`":"missing opening `{`"}),e.map(function(e){return e.join("")})}([[]]),c)throw m(c);var p=function(e,t){var r=e.specificity,n=t.specificity;return r[0]!=n[0]?n[0]-r[0]:r[1]!=n[1]?n[1]-r[1]:r[2]!=n[2]?n[2]-r[2]:n[3]-r[3]};return(a=new e.Tree.Ruleset([],d(this.parsers.primary))).root=!0,a.toList=function(e){e.error=function(t){e.errors||(e.errors=new Error("")),e.errors.message?e.errors.message+="\n"+m(t).message:e.errors.message=m(t).message},e.frames=e.frames||[];var t=this.flatten([],[],e);return t.sort(p),t},a},parsers:{primary:function(){for(var e,t=[];(e=d(this.rule)||d(this.ruleset)||d(this.comment))||d(/^[\s\n]+/)||(e=d(this.invalid));)e&&t.push(e);return t},invalid:function(){var t=d(/^[^;\n]*[;\n]/);if(t)return new e.Tree.Invalid(t,a)},comment:function(){var t;if("/"===r.charAt(n))return"/"===r.charAt(n+1)?new e.Tree.Comment(d(/^\/\/.*/),!0):(t=d(/^\/\*(?:[^*]|\*+[^\/*])*\*+\/\n?/))?new e.Tree.Comment(t):void 0},entities:{quoted:function(){if('"'===r.charAt(n)||"'"===r.charAt(n)){var t=d(/^"((?:[^"\\\r\n]|\\.)*)"|'((?:[^'\\\r\n]|\\.)*)'/);return t?new e.Tree.Quoted(t[1]||t[2]):void 0}},field:function(){if(d("[")){var t=d(/(^[^\]]+)/);if(d("]"))return t?new e.Tree.Field(t[1]):void 0}},comparison:function(){var e=d(/^=~|=|!=|<=|>=|<|>/);if(e)return e},keyword:function(){var t=d(/^[A-Za-z\u4e00-\u9fa5-]+[A-Za-z-0-9\u4e00-\u9fa5_]*/);if(t)return new e.Tree.Keyword(t)},call:function(){var t,r;if(t=/^([\w\-]+|%)\(/.exec(u[o])){if("url"===(t=t[1]))return null;n+=t.length;if(d("("),r=d(this.entities.arguments),d(")"))return t?new e.Tree.Call(t,r,n):void 0}},arguments:function(){for(var e,t=[];e=d(this.expression);){t.push(e);if(!d(","))break}return t},literal:function(){return d(this.entities.dimension)||d(this.entities.keywordcolor)||d(this.entities.hexcolor)||d(this.entities.quoted)},url:function(){var t;if("u"===r.charAt(n)&&d(/^url\(/)){t=d(this.entities.quoted)||d(this.entities.variable)||d(/^[\-\w%@_match\/.&=:;#+?~]+/)||"";return d(")")?new e.Tree.URL(void 0!==t.value||t instanceof e.Tree.Variable?t:new e.Tree.Quoted(t)):new e.Tree.Invalid(t,a,"Missing closing ) in URL.")}},variable:function(){var o,i=n;if("@"===r.charAt(n)&&(o=d(/^@[\w-]+/)))return new e.Tree.Variable(o,i,t.filename)},hexcolor:function(){var t;if("#"===r.charAt(n)&&(t=d(/^#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})/)))return new e.Tree.Color(t[1])},keywordcolor:function(){var t=u[o].match(/^[a-z]+/);if(t&&t[0]in e.Tree.Reference.data.colors)return new e.Tree.Color(e.Tree.Reference.data.colors[d(/^[a-z]+/)])},dimension:function(){var t=r.charCodeAt(n);if(!(t>57||t<45||47===t)){var o=d(/^(-?\d*\.?\d+(?:[eE][-+]?\d+)?)(\%|\w+)?/);return o?new e.Tree.Dimension(o[1],o[2],a):void 0}}},variable:function(){var e;if("@"===r.charAt(n)&&(e=d(/^(@[\w-]+)\s*:/)))return e[1]},entity:function(){var e=d(this.entities.call)||d(this.entities.literal),t=d(this.entities.field)||d(this.entities.variable),r=d(this.entities.url)||d(this.entities.keyword);return e||t||r},end:function(){var e;return d(";")||("string"==typeof(e="}")?r.charAt(n)===e:!!e.test(u[o]))},element:function(){var t=d(/^(?:[.#][\w\u4e00-\u9fa5\-]+|\*|Map)/);if(t)return new e.Tree.Element(t)},attachment:function(){var e=d(/^::([\w\-]+(?:\/[\w\-]+)*)/);if(e)return e[1]},selector:function(){for(var t,o,i,s,u,l=[],c=new e.Tree.Filterset,f=[],p=0,h=0;(i=d(this.element))||(u=d(this.zoom))||(s=d(this.filter))||(t=d(this.attachment));){if(p++,i)l.push(i);else if(u)f.push(u),h++;else if(s){var y=c.add(s);if(y)throw m({message:y,index:n-1});h++}else{if(o)throw m({message:"Encountered second attachment name.",index:n-1});o=t}var v=r.charAt(n);if("{"===v||"}"===v||";"===v||","===v)break}if(p)return new e.Tree.Selector(c,f,l,o,h,a)},filter:function(){p();var r,n,o;if(d("[")&&(r=d(/^[a-zA-Z0-9\-_]+/)||d(this.entities.quoted)||d(this.entities.variable)||d(this.entities.keyword)||d(this.entities.field))&&(r instanceof e.Tree.Quoted&&(r=new e.Tree.Field(r.toString())),(n=d(this.entities.comparison))&&(o=d(this.entities.quoted)||d(this.entities.variable)||d(this.entities.dimension)||d(this.entities.keyword)||d(this.entities.field)))){if(!d("]"))throw m({message:"Missing closing ] of filter.",index:a-1});return r.is||(r=new e.Tree.Field(r)),new e.Tree.Filter(r,n,o,a,t.filename)}},zoom:function(){p();var t,r;if(d(/^\[\s*zoom/g)&&(t=d(this.entities.comparison))&&(r=d(this.entities.variable)||d(this.entities.dimension))&&d("]"))return new e.Tree.Zoom(t,r,a);h()},block:function(){var e;if(d("{")&&(e=d(this.primary))&&d("}"))return e},ruleset:function(){var t,r,n=[];for(p();t=d(this.selector);){for(n.push(t);d(this.comment););if(!d(","))break;for(;d(this.comment););}if(t)for(;d(this.comment););if(n.length>0&&(r=d(this.block))){if(1===n.length&&n[0].elements.length&&"Map"===n[0].elements[0].value){var o=new e.Tree.Ruleset(n,r);return o.isMap=!0,o}return new e.Tree.Ruleset(n,r)}h()},rule:function(){var o,i,u=r.charAt(n);if(p(),"."!==u&&"#"!==u&&(o=d(this.variable)||d(this.property))){if((i=d(this.value))&&d(this.end))return new e.Tree.Rule(o,i,a,t.filename);s=n,h()}},font:function(){for(var t,r=[],n=[];t=d(this.entity);)n.push(t);if(r.push(new e.Tree.Expression(n)),d(","))for(;(t=d(this.expression))&&(r.push(t),d(",")););return new e.Tree.Value(r)},value:function(){for(var t,r=[];(t=d(this.expression))&&(r.push(t),d(",")););return r.length>1?new e.Tree.Value(r.map(function(e){return e.value[0]})):1===r.length?new e.Tree.Value(r):void 0},sub:function(){var e;if(d("(")&&(e=d(this.expression))&&d(")"))return e},multiplication:function(){var t,r,n,o;if(t=d(this.operand)){for(;(n=d("/")||d("*")||d("%"))&&(r=d(this.operand));)o=new e.Tree.Operation(n,[o||t,r],a);return o||t}},addition:function(){var t,o,i,s;if(t=d(this.multiplication)){for(;(i=d(/^[-+]\s+/)||" "!=r.charAt(n-1)&&(d("+")||d("-")))&&(o=d(this.multiplication));)s=new e.Tree.Operation(i,[s||t,o],a);return s||t}},operand:function(){return d(this.sub)||d(this.entity)},expression:function(){for(var t,r=[];t=d(this.addition)||d(this.entity);)r.push(t);if(r.length>0)return new e.Tree.Expression(r)},property:function(){var e=d(/^(([a-z][-a-z_0-9]*\/)?\*?-?[-a-z_0-9]+)\s*:/);if(e)return e[1]}}}}},{key:"parse",value:function(e){var t=this.parser;return this.ruleSet=t.parse(e)}},{key:"toShaders",value:function(){if(this.ruleSet){var e=this.ruleSet;if(e){var t=e.toList(this.env);t.reverse();var r={},n=[];this._toShaders(r,n,t);for(var o=[],i={},a=0,s=t.length;a=0){if(!t.featureFilter){var i=o+n.length,a=r.indexOf(")",i+1),s="featureId&&(featureId"+r.substring(i,a)+")";Object.defineProperty(t,"featureFilter",{configurable:!0,enumerable:!1,value:function(e){return!!s}})}return{property:h,getValue:Function("attributes","zoom","seftFilter","var _value = null; var isExcute=typeof seftFilter=='function'?sefgFilter():seftFilter;if(isExcute){"+r+";} return _value; ")}}return{property:h,getValue:Function("attributes","zoom","var _value = null;"+r+"; return _value; ")}}(c[h],f);Object.defineProperty(f,"attachment",{configurable:!0,enumerable:!1,value:l}),Object.defineProperty(f,"elements",{configurable:!0,enumerable:!1,value:u.elements}),o.push(f),i[n[a]]=!0}Object.defineProperty(f,"zoom",{configurable:!0,enumerable:!1,value:u.zoom})}return o}}return null}},{key:"_toShaders",value:function(t,r,n){for(var o=0,i=n.length;o= minzoom - 1e-6 and scale < maxzoom + 1e-6"},maxzoom:{"default-value":"1.79769e+308",type:"float","default-meaning":"The layer will be visible at the maximum possible scale",doc:"The maximum scale denominator that this layer will be visible at. The default is the numeric limit of the C++ double type, which may vary slightly by system, but is likely a massive number like 1.79769e+308 and ensures that this layer will always be visible unless the value is reduced. A layer's visibility is determined by whether its status is true and if the Map scale >= minzoom - 1e-6 and scale < maxzoom + 1e-6"},queryable:{"default-value":!1,type:"boolean","default-meaning":"The layer will not be available for the direct querying of data values",doc:"This property was added for GetFeatureInfo/WMS compatibility and is rarely used. It is off by default meaning that in a WMS context the layer will not be able to be queried unless the property is explicitly set to true"},"clear-label-cache":{"default-value":!1,type:"boolean","default-meaning":"The renderer's collision detector cache (used for avoiding duplicate labels and overlapping markers) will not be cleared immediately before processing this layer",doc:"This property, by default off, can be enabled to allow a user to clear the collision detector cache before a given layer is processed. This may be desirable to ensure that a given layers data shows up on the map even if it normally would not because of collisions with previously rendered labels or markers"},"group-by":{"default-value":"",type:"string","default-meaning":"No special layer grouping will be used during rendering",doc:"https://github.com/mapnik/mapnik/wiki/Grouped-rendering"},"buffer-size":{"default-value":"0",type:"float","default-meaning":"No buffer will be used",doc:"Extra tolerance around the Layer extent (in pixels) used to when querying and (potentially) clipping the layer data during rendering"},"maximum-extent":{"default-value":"none",type:"bbox","default-meaning":"No clipping extent will be used",doc:"An extent to be used to limit the bounds used to query this specific layer data during rendering. Should be minx, miny, maxx, maxy in the coordinates of the Layer."}},symbolizers:{"*":{"image-filters":{css:"image-filters","default-value":"none","default-meaning":"no filters",type:"functions",functions:[["agg-stack-blur",2],["emboss",0],["blur",0],["gray",0],["sobel",0],["edge-detect",0],["x-gradient",0],["y-gradient",0],["invert",0],["sharpen",0]],doc:"A list of image filters."},"comp-op":{css:"comp-op","default-value":"src-over","default-meaning":"add the current layer on top of other layers",doc:"Composite operation. This defines how this layer should behave relative to layers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]},opacity:{css:"opacity",type:"float",doc:"An alpha value for the style (which means an alpha applied to all features in separate buffer and then composited back to main buffer)","default-value":1,"default-meaning":"no separate buffer will be used and no alpha will be applied to the style after rendering"}},map:{"background-color":{css:"background-color","default-value":"none","default-meaning":"transparent",type:"color",doc:"Map Background color"},"background-image":{css:"background-image",type:"uri","default-value":"","default-meaning":"transparent",doc:"An image that is repeated below all features on a map as a background.",description:"Map Background image"},srs:{css:"srs",type:"string","default-value":"+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs","default-meaning":"The proj4 literal of EPSG:4326 is assumed to be the Map's spatial reference and all data from layers within this map will be plotted using this coordinate system. If any layers do not declare an srs value then they will be assumed to be in the same srs as the Map and not transformations will be needed to plot them in the Map's coordinate space",doc:"Map spatial reference (proj4 string)"},"buffer-size":{css:"buffer-size","default-value":"0",type:"float","default-meaning":"No buffer will be used",doc:'Extra tolerance around the map (in pixels) used to ensure labels crossing tile boundaries are equally rendered in each tile (e.g. cut in each tile). Not intended to be used in combination with "avoid-edges".'},"maximum-extent":{css:"","default-value":"none",type:"bbox","default-meaning":"No clipping extent will be used",doc:"An extent to be used to limit the bounds used to query all layers during rendering. Should be minx, miny, maxx, maxy in the coordinates of the Map."},base:{css:"base","default-value":"","default-meaning":"This base path defaults to an empty string meaning that any relative paths to files referenced in styles or layers will be interpreted relative to the application process.",type:"string",doc:"Any relative paths used to reference files will be understood as relative to this directory path if the map is loaded from an in memory object rather than from the filesystem. If the map is loaded from the filesystem and this option is not provided it will be set to the directory of the stylesheet."},"paths-from-xml":{css:"","default-value":!0,"default-meaning":"Paths read from XML will be interpreted from the location of the XML",type:"boolean",doc:"value to control whether paths in the XML will be interpreted from the location of the XML or from the working directory of the program that calls load_map()"},"minimum-version":{css:"","default-value":"none","default-meaning":"Mapnik version will not be detected and no error will be thrown about compatibility",type:"string",doc:"The minumum Mapnik version (e.g. 0.7.2) needed to use certain functionality in the stylesheet"},"font-directory":{css:"font-directory",type:"uri","default-value":"none","default-meaning":"No map-specific fonts will be registered",doc:"Path to a directory which holds fonts which should be registered when the Map is loaded (in addition to any fonts that may be automatically registered)."}},polygon:{fill:{css:"polygon-fill",type:"color","default-value":"rgba(128,128,128,1)","default-meaning":"gray and fully opaque (alpha = 1), same as rgb(128,128,128)",doc:"Fill color to assign to a polygon"},"fill-opacity":{css:"polygon-opacity",type:"float",doc:"The opacity of the polygon","default-value":1,"default-meaning":"opaque"},gamma:{css:"polygon-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of polygon edges"},"gamma-method":{css:"polygon-gamma-method",type:["power","linear","none","threshold","multiply"],"default-value":"power","default-meaning":"pow(x,gamma) is used to calculate pixel gamma, which produces slightly smoother line and polygon antialiasing than the 'linear' method, while other methods are usually only used to disable AA",doc:"An Antigrain Geometry specific rendering hint to control the quality of antialiasing. Under the hood in Mapnik this method is used in combination with the 'gamma' value (which defaults to 1). The methods are in the AGG source at https://github.com/mapnik/mapnik/blob/master/deps/agg/include/agg_gamma_functions.h"},clip:{css:"polygon-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"polygon-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"polygon-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"polygon-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},line:{stroke:{css:"line-color","default-value":"rgba(0,0,0,1)",type:"color","default-meaning":"black and fully opaque (alpha = 1), same as rgb(0,0,0)",doc:"The color of a drawn line"},"stroke-width":{css:"line-width","default-value":1,type:"float",doc:"The width of a line in pixels"},"stroke-opacity":{css:"line-opacity","default-value":1,type:"float","default-meaning":"opaque",doc:"The opacity of a line"},"stroke-linejoin":{css:"line-join","default-value":"miter",type:["miter","round","bevel"],doc:"The behavior of lines when joining"},"stroke-linecap":{css:"line-cap","default-value":"butt",type:["butt","round","square"],doc:"The display of line endings"},"stroke-gamma":{css:"line-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of stroke line"},"stroke-gamma-method":{css:"line-gamma-method",type:["power","linear","none","threshold","multiply"],"default-value":"power","default-meaning":"pow(x,gamma) is used to calculate pixel gamma, which produces slightly smoother line and polygon antialiasing than the 'linear' method, while other methods are usually only used to disable AA",doc:"An Antigrain Geometry specific rendering hint to control the quality of antialiasing. Under the hood in Mapnik this method is used in combination with the 'gamma' value (which defaults to 1). The methods are in the AGG source at https://github.com/mapnik/mapnik/blob/master/deps/agg/include/agg_gamma_functions.h"},"stroke-dasharray":{css:"line-dasharray",type:"numbers",doc:"A pair of length values [a,b], where (a) is the dash length and (b) is the gap length respectively. More than two values are supported for more complex patterns.","default-value":"none","default-meaning":"solid line"},"stroke-dashoffset":{css:"line-dash-offset",type:"numbers",doc:"valid parameter but not currently used in renderers (only exists for experimental svg support in Mapnik which is not yet enabled)","default-value":"none","default-meaning":"solid line"},"stroke-miterlimit":{css:"line-miterlimit",type:"float",doc:"The limit on the ratio of the miter length to the stroke-width. Used to automatically convert miter joins to bevel joins for sharp angles to avoid the miter extending beyond the thickness of the stroking path. Normally will not need to be set, but a larger value can sometimes help avoid jaggy artifacts.","default-value":4,"default-meaning":"Will auto-convert miters to bevel line joins when theta is less than 29 degrees as per the SVG spec: 'miterLength / stroke-width = 1 / sin ( theta / 2 )'"},clip:{css:"line-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"line-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},offset:{css:"line-offset",type:"float","default-value":0,"default-meaning":"no offset",doc:"Offsets a line a number of pixels parallel to its actual path. Postive values move the line left, negative values move it right (relative to the directionality of the line)."},rasterizer:{css:"line-rasterizer",type:["full","fast"],"default-value":"full",doc:"Exposes an alternate AGG rendering method that sacrifices some accuracy for speed."},"geometry-transform":{css:"line-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"line-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},markers:{file:{css:"marker-file",doc:"An SVG file that this marker shows at each placement. If no file is given, the marker will show an ellipse.","default-value":"","default-meaning":"An ellipse or circle, if width equals height",type:"uri"},opacity:{css:"marker-opacity",doc:"The overall opacity of the marker, if set, overrides both the opacity of both the fill and stroke","default-value":1,"default-meaning":"The stroke-opacity and fill-opacity will be used",type:"float"},"fill-opacity":{css:"marker-fill-opacity",doc:"The fill opacity of the marker","default-value":1,"default-meaning":"opaque",type:"float"},stroke:{css:"marker-line-color",doc:"The color of the stroke around a marker shape.","default-value":"black",type:"color"},"stroke-width":{css:"marker-line-width",doc:"The width of the stroke around a marker shape, in pixels. This is positioned on the boundary, so high values can cover the area itself.",type:"float"},"stroke-opacity":{css:"marker-line-opacity","default-value":1,"default-meaning":"opaque",doc:"The opacity of a line",type:"float"},placement:{css:"marker-placement",type:["point","line","interior"],"default-value":"point","default-meaning":"Place markers at the center point (centroid) of the geometry",doc:"Attempt to place markers on a point, in the center of a polygon, or if markers-placement:line, then multiple times along a line. 'interior' placement can be used to ensure that points placed on polygons are forced to be inside the polygon interior"},"multi-policy":{css:"marker-multi-policy",type:["each","whole","largest"],"default-value":"each","default-meaning":"If a feature contains multiple geometries and the placement type is either point or interior then a marker will be rendered for each",doc:"A special setting to allow the user to control rendering behavior for 'multi-geometries' (when a feature contains multiple geometries). This setting does not apply to markers placed along lines. The 'each' policy is default and means all geometries will get a marker. The 'whole' policy means that the aggregate centroid between all geometries will be used. The 'largest' policy means that only the largest (by bounding box areas) feature will get a rendered marker (this is how text labeling behaves by default)."},"marker-type":{css:"marker-type",type:["arrow","ellipse"],"default-value":"ellipse",doc:"The default marker-type. If a SVG file is not given as the marker-file parameter, the renderer provides either an arrow or an ellipse (a circle if height is equal to width)"},width:{css:"marker-width","default-value":10,doc:"The width of the marker, if using one of the default types.",type:"expression"},height:{css:"marker-height","default-value":10,doc:"The height of the marker, if using one of the default types.",type:"expression"},fill:{css:"marker-fill","default-value":"blue",doc:"The color of the area of the marker.",type:"color"},"allow-overlap":{css:"marker-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping markers are shown or hidden.","default-meaning":"Do not allow makers to overlap with each other - overlapping markers will not be shown."},"ignore-placement":{css:"marker-ignore-placement",type:"boolean","default-value":!1,"default-meaning":"do not store the bbox of this geometry in the collision detector cache",doc:"value to control whether the placement of the feature will prevent the placement of other features"},spacing:{css:"marker-spacing",doc:"Space between repeated labels","default-value":100,type:"float"},"max-error":{css:"marker-max-error",type:"float","default-value":.2,doc:"The maximum difference between actual marker placement and the marker-spacing parameter. Setting a high value can allow the renderer to try to resolve placement conflicts with other symbolizers."},transform:{css:"marker-transform",type:"functions",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]],"default-value":"","default-meaning":"No transformation",doc:"SVG transformation definition"},clip:{css:"marker-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"marker-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"marker-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"marker-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},shield:{name:{css:"shield-name",type:"expression",serialization:"content",doc:'Value to use for a shield"s text label. Data columns are specified using brackets like [column_name]'},file:{css:"shield-file",required:!0,type:"uri","default-value":"none",doc:"Image file to render behind the shield text"},"face-name":{css:"shield-face-name",type:"string",validate:"font",doc:"Font name and style to use for the shield text","default-value":"",required:!0},"unlock-image":{css:"shield-unlock-image",type:"boolean",doc:"This parameter should be set to true if you are trying to position text beside rather than on top of the shield image","default-value":!1,"default-meaning":"text alignment relative to the shield image uses the center of the image as the anchor for text positioning."},size:{css:"shield-size",type:"float",doc:"The size of the shield text in pixels"},fill:{css:"shield-fill",type:"color",doc:"The color of the shield text"},placement:{css:"shield-placement",type:["point","line","vertex","interior"],"default-value":"point",doc:"How this shield should be placed. Point placement attempts to place it on top of points, line places along lines multiple times per feature, vertex places on the vertexes of polygons, and interior attempts to place inside of polygons."},"avoid-edges":{css:"shield-avoid-edges",doc:"Tell positioning algorithm to avoid labeling near intersection edges.",type:"boolean","default-value":!1},"allow-overlap":{css:"shield-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping shields are shown or hidden.","default-meaning":"Do not allow shields to overlap with other map elements already placed."},"minimum-distance":{css:"shield-min-distance",type:"float","default-value":0,doc:"Minimum distance to the next shield symbol, not necessarily the same shield."},spacing:{css:"shield-spacing",type:"float","default-value":0,doc:"The spacing between repeated occurrences of the same shield on a line"},"minimum-padding":{css:"shield-min-padding","default-value":0,doc:"Determines the minimum amount of padding that a shield gets relative to other shields",type:"float"},"wrap-width":{css:"shield-wrap-width",type:"unsigned","default-value":0,doc:"Length of a chunk of text in characters before wrapping text"},"wrap-before":{css:"shield-wrap-before",type:"boolean","default-value":!1,doc:"Wrap text before wrap-width is reached. If false, wrapped lines will be a bit longer than wrap-width."},"wrap-character":{css:"shield-wrap-character",type:"string","default-value":" ",doc:"Use this character instead of a space to wrap long names."},"halo-fill":{css:"shield-halo-fill",type:"color","default-value":"#FFFFFF","default-meaning":"white",doc:"Specifies the color of the halo around the text."},"halo-radius":{css:"shield-halo-radius",doc:"Specify the radius of the halo in pixels","default-value":0,"default-meaning":"no halo",type:"float"},"character-spacing":{css:"shield-character-spacing",type:"unsigned","default-value":0,doc:"Horizontal spacing between characters (in pixels). Currently works for point placement only, not line placement."},"line-spacing":{css:"shield-line-spacing",doc:"Vertical spacing between lines of multiline labels (in pixels)",type:"unsigned"},dx:{css:"shield-text-dx",type:"float",doc:"Displace text within shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},dy:{css:"shield-text-dy",type:"float",doc:"Displace text within shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},"shield-dx":{css:"shield-dx",type:"float",doc:"Displace shield by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},"shield-dy":{css:"shield-dy",type:"float",doc:"Displace shield by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},opacity:{css:"shield-opacity",type:"float",doc:"(Default 1.0) - opacity of the image used for the shield","default-value":1},"text-opacity":{css:"shield-text-opacity",type:"float",doc:"(Default 1.0) - opacity of the text placed on top of the shield","default-value":1},"horizontal-alignment":{css:"shield-horizontal-alignment",type:["left","middle","right","auto"],doc:"The shield's horizontal alignment from its centerpoint","default-value":"auto"},"vertical-alignment":{css:"shield-vertical-alignment",type:["top","middle","bottom","auto"],doc:"The shield's vertical alignment from its centerpoint","default-value":"middle"},"text-transform":{css:"shield-text-transform",type:["none","uppercase","lowercase","capitalize"],doc:"Transform the case of the characters","default-value":"none"},"justify-alignment":{css:"shield-justify-alignment",type:["left","center","right","auto"],doc:"Define how text in a shield's label is justified","default-value":"auto"},clip:{css:"shield-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},"comp-op":{css:"shield-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},"line-pattern":{file:{css:"line-pattern-file",type:"uri","default-value":"none",required:!0,doc:"An image file to be repeated and warped along a line"},clip:{css:"line-pattern-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"line-pattern-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"line-pattern-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"line-pattern-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},"polygon-pattern":{file:{css:"polygon-pattern-file",type:"uri","default-value":"none",required:!0,doc:"Image to use as a repeated pattern fill within a polygon"},alignment:{css:"polygon-pattern-alignment",type:["local","global"],"default-value":"local",doc:"Specify whether to align pattern fills to the layer or to the map."},gamma:{css:"polygon-pattern-gamma",type:"float","default-value":1,"default-meaning":"fully antialiased",range:"0-1",doc:"Level of antialiasing of polygon pattern edges"},opacity:{css:"polygon-pattern-opacity",type:"float",doc:"(Default 1.0) - Apply an opacity level to the image used for the pattern","default-value":1,"default-meaning":"The image is rendered without modifications"},clip:{css:"polygon-pattern-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},smooth:{css:"polygon-pattern-smooth",type:"float","default-value":0,"default-meaning":"no smoothing",range:"0-1",doc:"Smooths out geometry angles. 0 is no smoothing, 1 is fully smoothed. Values greater than 1 will produce wild, looping geometries."},"geometry-transform":{css:"polygon-pattern-geometry-transform",type:"functions","default-value":"none","default-meaning":"geometry will not be transformed",doc:"Allows transformation functions to be applied to the geometry.",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]]},"comp-op":{css:"polygon-pattern-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},raster:{opacity:{css:"raster-opacity","default-value":1,"default-meaning":"opaque",type:"float",doc:"The opacity of the raster symbolizer on top of other symbolizers."},"filter-factor":{css:"raster-filter-factor","default-value":-1,"default-meaning":"Allow the datasource to choose appropriate downscaling.",type:"float",doc:"This is used by the Raster or Gdal datasources to pre-downscale images using overviews. Higher numbers can sometimes cause much better scaled image output, at the cost of speed."},scaling:{css:"raster-scaling",type:["near","fast","bilinear","bilinear8","bicubic","spline16","spline36","hanning","hamming","hermite","kaiser","quadric","catrom","gaussian","bessel","mitchell","sinc","lanczos","blackman"],"default-value":"near",doc:"The scaling algorithm used to making different resolution versions of this raster layer. Bilinear is a good compromise between speed and accuracy, while lanczos gives the highest quality."},"mesh-size":{css:"raster-mesh-size","default-value":16,"default-meaning":"Reprojection mesh will be 1/16 of the resolution of the source image",type:"unsigned",doc:"A reduced resolution mesh is used for raster reprojection, and the total image size is divided by the mesh-size to determine the quality of that mesh. Values for mesh-size larger than the default will result in faster reprojection but might lead to distortion."},"comp-op":{css:"raster-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},point:{file:{css:"point-file",type:"uri",required:!1,"default-value":"none",doc:"Image file to represent a point"},"allow-overlap":{css:"point-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping points are shown or hidden.","default-meaning":"Do not allow points to overlap with each other - overlapping markers will not be shown."},"ignore-placement":{css:"point-ignore-placement",type:"boolean","default-value":!1,"default-meaning":"do not store the bbox of this geometry in the collision detector cache",doc:"value to control whether the placement of the feature will prevent the placement of other features"},opacity:{css:"point-opacity",type:"float","default-value":1,"default-meaning":"Fully opaque",doc:"A value from 0 to 1 to control the opacity of the point"},placement:{css:"point-placement",type:["centroid","interior"],doc:"How this point should be placed. Centroid calculates the geometric center of a polygon, which can be outside of it, while interior always places inside of a polygon.","default-value":"centroid"},transform:{css:"point-transform",type:"functions",functions:[["matrix",6],["translate",2],["scale",2],["rotate",3],["skewX",1],["skewY",1]],"default-value":"","default-meaning":"No transformation",doc:"SVG transformation definition"},"comp-op":{css:"point-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},text:{name:{css:"text-name",type:"expression",required:!0,"default-value":"",serialization:"content",doc:"Value to use for a text label. Data columns are specified using brackets like [column_name]"},"face-name":{css:"text-face-name",type:"string",validate:"font",doc:"Font name and style to render a label in",required:!0},size:{css:"text-size",type:"float","default-value":10,doc:"Text size in pixels"},"text-ratio":{css:"text-ratio",doc:"Define the amount of text (of the total) present on successive lines when wrapping occurs","default-value":0,type:"unsigned"},"wrap-width":{css:"text-wrap-width",doc:"Length of a chunk of text in characters before wrapping text","default-value":0,type:"unsigned"},"wrap-before":{css:"text-wrap-before",type:"boolean","default-value":!1,doc:"Wrap text before wrap-width is reached. If false, wrapped lines will be a bit longer than wrap-width."},"wrap-character":{css:"text-wrap-character",type:"string","default-value":" ",doc:"Use this character instead of a space to wrap long text."},spacing:{css:"text-spacing",type:"unsigned",doc:"Distance between repeated text labels on a line (aka. label-spacing)"},"character-spacing":{css:"text-character-spacing",type:"float","default-value":0,doc:"Horizontal spacing adjustment between characters in pixels"},"line-spacing":{css:"text-line-spacing","default-value":0,type:"unsigned",doc:"Vertical spacing adjustment between lines in pixels"},"label-position-tolerance":{css:"text-label-position-tolerance","default-value":0,type:"unsigned",doc:"Allows the label to be displaced from its ideal position by a number of pixels (only works with placement:line)"},"max-char-angle-delta":{css:"text-max-char-angle-delta",type:"float","default-value":"22.5",doc:"The maximum angle change, in degrees, allowed between adjacent characters in a label. This value internally is converted to radians to the default is 22.5*math.pi/180.0. The higher the value the fewer labels will be placed around around sharp corners."},fill:{css:"text-fill",doc:"Specifies the color for the text","default-value":"#000000",type:"color"},opacity:{css:"text-opacity",doc:"A number from 0 to 1 specifying the opacity for the text","default-value":1,"default-meaning":"Fully opaque",type:"float"},"halo-fill":{css:"text-halo-fill",type:"color","default-value":"#FFFFFF","default-meaning":"white",doc:"Specifies the color of the halo around the text."},"halo-radius":{css:"text-halo-radius",doc:"Specify the radius of the halo in pixels","default-value":0,"default-meaning":"no halo",type:"float"},dx:{css:"text-dx",type:"float",doc:"Displace text by fixed amount, in pixels, +/- along the X axis. A positive value will shift the text right","default-value":0},dy:{css:"text-dy",type:"float",doc:"Displace text by fixed amount, in pixels, +/- along the Y axis. A positive value will shift the text down","default-value":0},"vertical-alignment":{css:"text-vertical-alignment",type:["top","middle","bottom","auto"],doc:"Position of label relative to point position.","default-value":"auto","default-meaning":'Default affected by value of dy; "bottom" for dy>0, "top" for dy<0.'},"avoid-edges":{css:"text-avoid-edges",doc:"Tell positioning algorithm to avoid labeling near intersection edges.","default-value":!1,type:"boolean"},"minimum-distance":{css:"text-min-distance",doc:"Minimum permitted distance to the next text symbolizer.",type:"float"},"minimum-padding":{css:"text-min-padding",doc:"Determines the minimum amount of padding that a text symbolizer gets relative to other text",type:"float"},"minimum-path-length":{css:"text-min-path-length",type:"float","default-value":0,"default-meaning":"place labels on all paths",doc:"Place labels only on paths longer than this value."},"allow-overlap":{css:"text-allow-overlap",type:"boolean","default-value":!1,doc:"Control whether overlapping text is shown or hidden.","default-meaning":"Do not allow text to overlap with other text - overlapping markers will not be shown."},orientation:{css:"text-orientation",type:"expression",doc:"Rotate the text."},placement:{css:"text-placement",type:["point","line","vertex","interior"],"default-value":"point",doc:"Control the style of placement of a point versus the geometry it is attached to."},"placement-type":{css:"text-placement-type",doc:'Re-position and/or re-size text to avoid overlaps. "simple" for basic algorithm (using text-placements string,) "dummy" to turn this feature off.',type:["dummy","simple"],"default-value":"dummy"},placements:{css:"text-placements",type:"string","default-value":"",doc:'If "placement-type" is set to "simple", use this "POSITIONS,[SIZES]" string. An example is `text-placements: "E,NE,SE,W,NW,SW";` '},"text-transform":{css:"text-transform",type:["none","uppercase","lowercase","capitalize"],doc:"Transform the case of the characters","default-value":"none"},"horizontal-alignment":{css:"text-horizontal-alignment",type:["left","middle","right","auto"],doc:"The text's horizontal alignment from its centerpoint","default-value":"auto"},"justify-alignment":{css:"text-align",type:["left","right","center","auto"],doc:"Define how text is justified","default-value":"auto","default-meaning":"Auto alignment means that text will be centered by default except when using the `placement-type` parameter - in that case either right or left justification will be used automatically depending on where the text could be fit given the `text-placements` directives"},clip:{css:"text-clip",type:"boolean","default-value":!0,"default-meaning":"geometry will be clipped to map bounds before rendering",doc:"geometries are clipped to map bounds by default for best rendering performance. In some cases users may wish to disable this to avoid rendering artifacts."},"comp-op":{css:"text-comp-op","default-value":"src-over","default-meaning":"add the current symbolizer on top of other symbolizer",doc:"Composite operation. This defines how this symbolizer should behave relative to symbolizers atop or below it.",type:["clear","src","dst","src-over","dst-over","src-in","dst-in","src-out","dst-out","src-atop","dst-atop","xor","plus","minus","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","contrast","invert","invert-rgb","grain-merge","grain-extract","hue","saturation","color","value"]}},building:{fill:{css:"building-fill","default-value":"#FFFFFF",doc:"The color of the buildings walls.",type:"color"},"fill-opacity":{css:"building-fill-opacity",type:"float",doc:"The opacity of the building as a whole, including all walls.","default-value":1},height:{css:"building-height",doc:"The height of the building in pixels.",type:"expression","default-value":"0"}}},colors:{aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50],transparent:[0,0,0,0]},filter:{value:["true","false","null","point","linestring","polygon","collection"]}};function Noe(e){"@babel/helpers - typeof";return(Noe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Boe(e,t){for(var r=0;r1&&(t=arguments[1]),arguments.length>2&&(r=arguments[2]),{is:"tag",val:e,color:t,mode:r,toString:function(n){return'\n\t"}}},hsl:function(e,t,r){return this.hsla(e,t,r,1)},hsla:function(e,t,r,n){if([e=this.number(e)%360/360,t=this.number(t),r=this.number(r),n=this.number(n)].some(isNaN))return null;var o=r<=.5?r*(t+1):r+t-r*t,i=2*r-o;return this.rgba(255*a(e+1/3),255*a(e),255*a(e-1/3),n);function a(e){return 6*(e=e<0?e+1:e>1?e-1:e)<1?i+(o-i)*e*6:2*e<1?o:3*e<2?i+(o-i)*(2/3-e)*6:i}},hue:function(e){return"toHSL"in e?new joe.Tree.Dimension(Math.round(e.toHSL().h)):null},saturation:function(e){return"toHSL"in e?new joe.Tree.Dimension(Math.round(100*e.toHSL().s),"%"):null},lightness:function(e){return"toHSL"in e?new joe.Tree.Dimension(Math.round(100*e.toHSL().l),"%"):null},alpha:function(e){return"toHSL"in e?new joe.Tree.Dimension(e.toHSL().a):null},saturate:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.s+=t.value/100,r.s=this.clamp(r.s),this.hsla_simple(r)},desaturate:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.s-=t.value/100,r.s=this.clamp(r.s),this.hsla_simple(r)},lighten:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.l+=t.value/100,r.l=this.clamp(r.l),this.hsla_simple(r)},darken:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.l-=t.value/100,r.l=this.clamp(r.l),this.hsla_simple(r)},fadein:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.a+=t.value/100,r.a=this.clamp(r.a),this.hsla_simple(r)},fadeout:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL();return r.a-=t.value/100,r.a=this.clamp(r.a),this.hsla_simple(r)},spin:function(e,t){if(!("toHSL"in e))return null;var r=e.toHSL(),n=(r.h+t.value)%360;return r.h=n<0?360+n:n,this.hsla_simple(r)},replace:function(e,t,r){return"field"===e.is?e.toString+".replace("+t.toString()+", "+r.toString()+")":e.replace(t,r)},mix:function(e,t,r){var n=r.value/100,o=2*n-1,i=e.toHSL().a-t.toHSL().a,a=((o*i==-1?o:(o+i)/(1+o*i))+1)/2,s=1-a,u=[e.rgb[0]*a+t.rgb[0]*s,e.rgb[1]*a+t.rgb[1]*s,e.rgb[2]*a+t.rgb[2]*s],l=e.alpha*n+t.alpha*(1-n);return new joe.Tree.Color(u,l)},greyscale:function(e){return this.desaturate(e,new joe.Tree.Dimension(100))},"%":function(e){for(var t=Array.prototype.slice.call(arguments,1),r=e.value,n=0;n.5?l/(2-a-s):l/(a+s),a){case r:e=(n-o)/l+(n=0){if(!e.ppi)return e.error({message:"ppi is not set, so metric units can't be used",index:this.index}),{is:"undefined",value:"undefined"};this.value=this.value/this.densities[this.unit]*e.ppi,this.unit="px"}return this}},{key:"toColor",value:function(){return new joe.Tree.Color([this.value,this.value,this.value])}},{key:"round",value:function(){return this.value=Math.round(this.value),this}},{key:"toString",value:function(){return this.value.toString()}},{key:"operate",value:function(e,t,r){return"%"===this.unit&&"%"!==r.unit?(e.error({message:"If two operands differ, the first must not be %",index:this.index}),{is:"undefined",value:"undefined"}):"%"!==this.unit&&"%"===r.unit?"*"===t||"/"===t||"%"===t?(e.error({message:"Percent values can only be added or subtracted from other values",index:this.index}),{is:"undefined",value:"undefined"}):new joe.Tree.Dimension(joe.Tree.operate(t,this.value,this.value*r.value*.01),this.unit):new joe.Tree.Dimension(joe.Tree.operate(t,this.value,r.value),this.unit||r.unit)}}])}(),joe.Tree.Element=function(){return Poe(function e(t){Ooe(this,e),this.value=t.trim(),"#"===this.value[0]&&(this.type="id",this.clean=this.value.replace(/^#/,"")),"."===this.value[0]&&(this.type="class",this.clean=this.value.replace(/^\./,"")),-1!==this.value.indexOf("*")&&(this.type="wildcard")},[{key:"specificity",value:function(){return["id"===this.type?1:0,"class"===this.type?1:0]}},{key:"toString",value:function(){return this.value}}])}(),joe.Tree.Expression=function(){return Poe(function e(t){Ooe(this,e),this.is="expression",this.value=t},[{key:"ev",value:function(e){return this.value.length>1?new joe.Tree.Expression(this.value.map(function(t){return t.ev(e)})):this.value[0].ev(e)}},{key:"toString",value:function(e){return this.value.map(function(t){return t.toString(e)}).join(" ")}}])}(),joe.Tree.Field=function(){return Poe(function e(t){Ooe(this,e),this.is="field",this.value=t||""},[{key:"toString",value:function(){return'["'+this.value.toUpperCase()+'"]'}},{key:"ev",value:function(){return this}}])}(),joe.Tree.Filter=function(){return Poe(function e(t,r,n,o,i){Ooe(this,e),this.ops={"<":[" < ","numeric"],">":[" > ","numeric"],"=":[" = ","both"],"!=":[" != ","both"],"<=":[" <= ","numeric"],">=":[" >= ","numeric"],"=~":[".match(","string",")"]},this.key=t,this.op=r,this.val=n,this.index=o,this.filename=i,this.id=this.key+this.op+this.val},[{key:"ev",value:function(e){return this.key=this.key.ev(e),this.val=this.val.ev(e),this}},{key:"toString",value:function(){return"["+this.id+"]"}}])}(),joe.Tree.Filterset=function(){return Poe(function e(){Ooe(this,e),this.filters={}},[{key:"toJS",value:function(e){function t(e){var t=e.op;"="===t&&(t="==");var r=e.val;void 0!==e._val&&(r=e._val.toString(!0)),e.key&&"scale"===e.key.value?r=+r:"string"!=typeof r&&"object"!==Ioe(r)||(r="'"+r+"'");var n="attributes";return n+"&&"+n+e.key+"&&"+n+e.key+" "+t+r}var r=[];for(var n in this.filters)r.push(t(this.filters[n]));return r.join(" && ")}},{key:"toString",value:function(){var e=[];for(var t in this.filters)e.push(this.filters[t].id);return e.sort().join("\t")}},{key:"ev",value:function(e){for(var t in this.filters)this.filters[t].ev(e);return this}},{key:"clone",value:function(){var e=new joe.Tree.Filterset;for(var t in this.filters)e.filters[t]=this.filters[t];return e}},{key:"cloneWith",value:function(e){var t=[];for(var r in e.filters){var n=this.addable(e.filters[r]);if(!1===n)return!1;!0===n&&t.push(e.filters[r])}if(!t.length)return null;var o=new joe.Tree.Filterset;for(r in this.filters)o.filters[r]=this.filters[r];for(;r=t.shift();)o.add(r);return o}},{key:"addable",value:function(e){var t=e.key.toString(),r=e.val.toString();switch(r.match(/^[0-9]+(\.[0-9]*)?_match/)&&(r=parseFloat(r)),e.op){case"=":return void 0!==this.filters[t+"="]?this.filters[t+"="].val.toString()==r&&null:void 0===this.filters[t+"!="+r]&&(!(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r)&&(!(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r)&&(!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r)&&!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val"]&&this.filters[t+">"].val>=r?null:void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r?null:void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r?null:!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val":return t+"="in this.filters?!(this.filters[t+"="].val<=r)&&null:!(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r)&&(!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val<=r)&&(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r?null:!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r)||null));case">=":return void 0!==this.filters[t+"="]?!(this.filters[t+"="].val"]&&this.filters[t+">"].val>=r?null:!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>=r)||null));case"<":return void 0!==this.filters[t+"="]?!(this.filters[t+"="].val>=r)&&null:!(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r)&&(!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>=r)&&(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r?null:!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].valr)&&null:!(void 0!==this.filters[t+">"]&&this.filters[t+">"].val>=r)&&(!(void 0!==this.filters[t+">="]&&this.filters[t+">="].val>r)&&(void 0!==this.filters[t+"<"]&&this.filters[t+"<"].val<=r?null:!(void 0!==this.filters[t+"<="]&&this.filters[t+"<="].val<=r)||null))}}},{key:"conflict",value:function(e){var t=e.key.toString(),r=e.val.toString();return isNaN(parseFloat(r))||(r=parseFloat(r)),("="===e.op&&void 0!==this.filters[t+"="]&&r!=this.filters[t+"="].val.toString()||"!="===e.op&&void 0!==this.filters[t+"="]&&r==this.filters[t+"="].val.toString()||"="===e.op&&void 0!==this.filters[t+"!="]&&r===this.filters[t+"!="].val.toString())&&e.toString()+" added to "+this.toString()+" produces an invalid filter"}},{key:"add",value:function(e,t){var r,n=e.key.toString(),o=e.op,i=this.conflict(e);if(i)return i;if("="===o){for(var a in this.filters)this.filters[a].key===n&&delete this.filters[a];this.filters[n+"="]=e}else if("!="===o)this.filters[n+"!="+e.val]=e;else if("=~"===o)this.filters[n+"=~"+e.val]=e;else if(">"===o){for(var s in this.filters)this.filters[s].key===n&&this.filters[s].val<=e.val&&delete this.filters[s];this.filters[n+">"]=e}else if(">="===o){for(var u in this.filters)r=+this.filters[u].val.toString(),this.filters[u].key===n&&r",this.filters[n+">"]=e):this.filters[n+">="]=e}else if("<"===o){for(var l in this.filters)r=+this.filters[l].val.toString(),this.filters[l].key===n&&r>=e.val&&delete this.filters[l];this.filters[n+"<"]=e}else if("<="===o){for(var c in this.filters)r=+this.filters[c].val.toString(),this.filters[c].key===n&&r>e.val&&delete this.filters[c];void 0!==this.filters[n+"!="+e.val]?(delete this.filters[n+"!="+e.val],e.op="<",this.filters[n+"<"]=e):this.filters[n+"<="]=e}}}])}(),joe.Tree.Fontset=Poe(function e(t,r){Ooe(this,e),this.fonts=r,this.name="fontset-"+t.effects.length}),joe.Tree.Invalid=function(){return Poe(function e(t,r,n){Ooe(this,e),this.is="invalid",this.chunk=t,this.index=r,this.type="syntax",this.message=n||"Invalid code: "+this.chunk},[{key:"ev",value:function(e){return e.error({chunk:this.chunk,index:this.index,type:"syntax",message:this.message||"Invalid code: "+this.chunk}),{is:"undefined"}}}])}(),joe.Tree.Keyword=function(){return Poe(function e(t){Ooe(this,e),this.value=t;var r={transparent:"color",true:"boolean",false:"boolean"};this.is=r[t]?r[t]:"keyword"},[{key:"ev",value:function(){return this}},{key:"toString",value:function(){return this.value}}])}(),joe.Tree.Literal=function(){return Poe(function e(t){Ooe(this,e),this.value=t||"",this.is="field"},[{key:"toString",value:function(){return this.value}},{key:"ev",value:function(){return this}}])}(),joe.Tree.Operation=function(){return Poe(function e(t,r,n){Ooe(this,e),this.is="operation",this.op=t.trim(),this.operands=r,this.index=n},[{key:"ev",value:function(e){var t,r=this.operands[0].ev(e),n=this.operands[1].ev(e);return"undefined"===r.is||"undefined"===n.is?{is:"undefined",value:"undefined"}:(r instanceof joe.Tree.Dimension&&n instanceof joe.Tree.Color&&("*"===this.op||"+"===this.op?(t=n,n=r,r=t):e.error({name:"OperationError",message:"Can't substract or divide a color from a number",index:this.index})),r instanceof joe.Tree.Quoted&&n instanceof joe.Tree.Quoted&&"+"!==this.op?(e.error({message:"Can't subtract, divide, or multiply strings.",index:this.index,type:"runtime",filename:this.filename}),{is:"undefined",value:"undefined"}):r instanceof joe.Tree.Field||n instanceof joe.Tree.Field||r instanceof joe.Tree.Literal||n instanceof joe.Tree.Literal?"color"===r.is||"color"===n.is?(e.error({message:"Can't subtract, divide, or multiply colors in expressions.",index:this.index,type:"runtime",filename:this.filename}),{is:"undefined",value:"undefined"}):new joe.Tree.Literal(r.ev(e).toString(!0)+this.op+n.ev(e).toString(!0)):void 0===r.operate?(e.error({message:"Cannot do math with type "+r.is+".",index:this.index,type:"runtime",filename:this.filename}),{is:"undefined",value:"undefined"}):r.operate(e,this.op,n))}}])}(),joe.Tree.Quoted=function(){return Poe(function e(t){Ooe(this,e),this.is="string",this.value=t||""},[{key:"toString",value:function(e){var t=this.value.replace(/&/g,"&"),r=t.replace(/\'/g,"\\'").replace(/\"/g,""").replace(//g,">");return!0===e?"'"+r+"'":t}},{key:"ev",value:function(){return this}},{key:"operate",value:function(e,t,r){return new joe.Tree.Quoted(joe.Tree.operate(t,this.toString(),r.toString(this.contains_field)))}}])}(),joe.Tree.Reference={_validateValue:{font:function(e,t){return!e.validation_data||!e.validation_data.fonts||-1!=e.validation_data.fonts.indexOf(t)}},setData:function(e){this.data=e,this.selector_cache=function(e){var t={};for(var r in e.symbolizers)for(var n in e.symbolizers[r])e.symbolizers[r][n].hasOwnProperty("css")&&(t[e.symbolizers[r][n].css]=[e.symbolizers[r][n],r,n]);return t}(e),this.mapnikFunctions=function(e){var t={};for(var r in e.symbolizers)for(var n in e.symbolizers[r])if("functions"===e.symbolizers[r][n].type)for(var o=0;o1?Array.prototype.push.apply(r,n.find(new joe.Tree.Selector(null,null,e.elements.slice(1)),t)):r.push(n);break}}),this._lookups[n]=r)}},{key:"evZooms",value:function(e){for(var t=0;tjoe.Tree.Zoom.maxZoom||t<0)&&e.error({message:"Only zoom levels between 0 and "+joe.Tree.Zoom.maxZoom+" supported.",index:this.index}),this.op){case"=":return this.zoom="zoom && zoom === "+t,this;case">":this.zoom="zoom && zoom > "+t;break;case">=":this.zoom="zoom && zoom >= "+t;break;case"<":this.zoom="zoom && zoom < "+t;break;case"<=":this.zoom="zoom && zoom <= "+t}return this}},{key:"toString",value:function(){for(var e="",t=0;t<=joe.Tree.Zoom.maxZoom;t++)e+=this.zoom&1<=l[2]||l[1]<=l[3])&&(this.DVBOrigonPoint=[l[0],l[3]],this.DVBWidth=Math.abs(l[2]-l[0]),this.DVBHeight=Math.abs(l[1]-l[3]),this.DVBCenterPoint=[this.DVBOrigonPoint[0]+this.DVBWidth/2,this.DVBOrigonPoint[1]+this.DVBHeight/2],this.origonPointOffset=[this.DVBOrigonPoint[0]-a[0],this.DVBOrigonPoint[1]-a[1]],!0)}},{key:"resetLocation",value:function(e){e&&(this.lonlat=e);var t=this.getLocalXY(this.lonlat);t[0]+=this.XOffset,t[1]+=this.YOffset,this.location=t;var r=this.width,n=this.height,o=this.location;return this.chartBounds=new We(o[0]-r/2,o[1]+n/2,o[0]+r/2,o[1]-n/2),this.resetLinearGradient(),o}},{key:"resetLinearGradient",value:function(){}},{key:"shapesConvertToRelativeCoordinate",value:function(){for(var e=this.shapes,t=this.location,r=0,n=e.length;r=0?n.push(parseFloat(o[a].toString()).toFixed(r)):n.push(parseFloat(o[a].toString()))}catch(e){throw new Error("not a number")}return n.length===t.length&&n};var $oe=function(e){function t(e,r,n,o,i){var a;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(a=Woe(this,t,[e,r,n,o,i])).CLASS_NAME="SuperMap.Feature.Theme.Bar",a}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Zoe(e,t)}(t,qoe),r=t,(n=[{key:"destroy",value:function(){var e,r,n,o,i;(e=t,r="destroy",n=this,i=Joe(Xoe(1&(o=3)?e.prototype:e),r,n),2&o&&"function"==typeof i?function(e){return i.apply(n,e)}:i)([])}},{key:"assembleShapes",value:function(){var e={showShadow:!0,shadowBlur:8,shadowColor:"rgba(100,100,100,0.8)",shadowOffsetX:2,shadowOffsetY:2},t=this.setting;if(t.barLinearGradient||(t.barLinearGradient=[["#00FF00","#00CD00"],["#00CCFF","#5E87A2"],["#00FF66","#669985"],["#CCFF00","#94A25E"],["#FF9900","#A2945E"]]),t.dataViewBoxParameter||(void 0===t.useAxis||t.useAxis?t.dataViewBoxParameter=[45,15,15,15]:t.dataViewBoxParameter=[5,5,5,5]),this.initBaseParameter()){var r=this.DVBCodomain;this.DVBUnitValue=(r[1]-r[0])/this.DVBHeight;var n=this.dataViewBox,o=this.dataValues;if(!(o.length<1)){for(var i=0,a=o.length;ir[1])return;var s=this.calculateXShapeInfo();if(s){var u=s.xPositions,l=s.width;(void 0===t.useBackground||t.useBackground)&&this.shapes.push(Oc.Background(this.shapeFactory,this.chartBox,t)),(void 0===t.useAxis||t.useAxis)&&(this.shapes=this.shapes.concat(Oc.GraphAxis(this.shapeFactory,n,t,s)));for(var c=0;c=t.length&&(r%=t.length);var u=t[r][0],l=t[r][1],c=(new gi).getLinearGradient(a,0,s,0,[[0,u],[1,l]]);o.style.color=c}}}}])&&Koe(r.prototype,n),o&&Koe(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function eie(e){"@babel/helpers - typeof";return(eie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function tie(e,t){for(var r=0;rt[1])return;var a=this.calculateXShapeInfo();if(a){var s=a.xPositions,u=a.width;(void 0===e.useBackground||e.useBackground)&&this.shapes.push(Oc.Background(this.shapeFactory,this.chartBox,e)),(!e.axis3DParameter||isNaN(e.axis3DParameter)||e.axis3DParameter<15)&&(e.axis3DParameter=20),(void 0===e.useAxis||e.useAxis)&&(this.shapes=this.shapes.concat(Oc.GraphAxis(this.shapeFactory,r,e,a)));for(var l=e.bar3DParameter&&!isNaN(e.bar3DParameter)?e.bar3DParameter:10,c=0;c=s[2]||s[1]<=s[3])&&(this.DVBOrigonPoint=[s[0],s[3]],this.DVBWidth=Math.abs(s[2]-s[0]),this.DVBHeight=Math.abs(s[1]-s[3]),this.DVBCenterPoint=[this.DVBOrigonPoint[0]+this.DVBWidth/2,this.DVBOrigonPoint[1]+this.DVBHeight/2],this.origonPointOffset=[this.DVBOrigonPoint[0]-o[0],this.DVBOrigonPoint[1]-o[1]],!0)}}])&&lie(r.prototype,n),o&&lie(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function mie(e){"@babel/helpers - typeof";return(mie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function vie(e,t){for(var r=0;r0?this.DVBUnitValue=e.maxR/(o[1]-o[0]):this.DVBUnitValue=e.maxR;var i=this.DVBUnitValue,a=n[0]*i+e.minR;if(this.width=2*a,this.height=2*a,this.initBaseParameter()&&(!o||!(n[0]o[1]))){var s=this.DVBCenterPoint,u=new Sl(s[0],s[1],a);u.style=Oc.ShapeStyleTool(null,e.circleStyle,null,null,0),void 0!==e.fillColor?u.style.fillColor=e.fillColor:u.style.fillColor="#ff9277",u.highlightStyle=Oc.ShapeStyleTool(null,e.circleHoverStyle),void 0!==e.circleHoverAble&&(u.hoverable=e.circleHoverAble),void 0!==e.circleClickAble&&(u.clickable=e.circleClickAble),u.refDataID=this.data.id,u.dataInfo={field:this.fields[0],r:a,value:n[0]},this.shapes.push(this.shapeFactory.createShape(u)),this.shapesConvertToRelativeCoordinate()}}}])&&vie(r.prototype,n),o&&vie(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Eie(e){"@babel/helpers - typeof";return(Eie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function xie(e,t){for(var r=0;rr[1])return null;a=u[f],s=t[1]-(o[f]-r[0])/n;var h=new Au(a,s);h.style=Oc.ShapeStyleTool({fillColor:"#ee9900"},e.pointStyle,e.pointStyleByFields,e.pointStyleByCodomain,f,o[f]),h.highlightStyle=Oc.ShapeStyleTool(null,e.pointHoverStyle),void 0!==e.pointHoverAble&&(h.hoverable=e.pointHoverAble),void 0!==e.pointClickAble&&(h.clickable=e.pointClickAble),h.refDataID=this.data.id,h.dataInfo={field:this.fields[f],value:o[f]},c.push(this.shapeFactory.createShape(h));var y=[a,s];l.push(y)}var d=new Ou(l);d.style=Oc.ShapeStyleTool({strokeColor:"#ee9900"},e.lineStyle),d.clickable=!1,d.hoverable=!1;var m=this.shapeFactory.createShape(d);this.shapes.push(m),this.shapes=this.shapes.concat(c),this.shapesConvertToRelativeCoordinate()}}}}},{key:"calculateXShapeInfo",value:function(){var e,t=this.dataViewBox,r=this.setting,n=this.dataValues.length;if(n<1)return null;var o=[],i=this.DVBWidth,a=0;if(r.xShapeBlank&&r.xShapeBlank.length&&2==r.xShapeBlank.length){var s=i-((e=r.xShapeBlank)[0]+e[1]);if(s<=n)return null;a=s/(n-1)}else e=[a=i/(n+1),a,a];for(var u=0,l=0;ln[1])return;for(var i=0,a=0;a=360&&(c=359.9999999);var d=new Zu(u[0],u[1],p,l,c);if(void 0===e.sectorStyleByFields){var m=h%t.length;d.style=Oc.ShapeStyleTool(null,e.sectorStyle,t,null,m)}else d.style=Oc.ShapeStyleTool(null,e.sectorStyle,e.sectorStyleByFields,e.sectorStyleByCodomain,h,r[h]);d.highlightStyle=Oc.ShapeStyleTool(null,e.sectorHoverStyle),void 0!==e.sectorHoverAble&&(d.hoverable=e.sectorHoverAble),void 0!==e.sectorClickAble&&(d.clickable=e.sectorClickAble),d.refDataID=this.data.id,d.dataInfo={field:this.fields[h],value:r[h]},this.shapes.push(this.shapeFactory.createShape(d)),l=c}this.shapesConvertToRelativeCoordinate()}}}}])&&Mie(r.prototype,n),o&&Mie(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Qie(e){"@babel/helpers - typeof";return(Qie="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Gie(e,t){for(var r=0;rr[1])return null;a=u[l],s=t[1]-(o[l]-r[0])/n;var f=new Au(a,s);f.style=Oc.ShapeStyleTool({fillColor:"#ee9900"},e.pointStyle,e.pointStyleByFields,e.pointStyleByCodomain,l,o[l]),f.highlightStyle=Oc.ShapeStyleTool(null,e.pointHoverStyle),void 0!==e.pointHoverAble&&(f.hoverable=e.pointHoverAble),void 0!==e.pointClickAble&&(f.clickable=e.pointClickAble),f.refDataID=this.data.id,f.dataInfo={field:this.fields[l],value:o[l]},this.shapes.push(this.shapeFactory.createShape(f))}this.shapesConvertToRelativeCoordinate()}}}},{key:"calculateXShapeInfo",value:function(){var e,t=this.dataViewBox,r=this.setting,n=this.dataValues.length;if(n<1)return null;var o=[],i=this.DVBWidth,a=0;if(r.xShapeBlank&&r.xShapeBlank.length&&2==r.xShapeBlank.length){var s=i-((e=r.xShapeBlank)[0]+e[1]);if(s<=n)return null;a=s/(n-1)}else e=[a=i/(n+1),a,a];for(var u=0,l=0;ln[1])return;for(var i=0,a=0;a=0&&t.innerRingRadius1&&void 0!==arguments[1]?arguments[1]:"warring";"success"===t?(this.icon.setAttribute("class","supermapol-icons-message-success"),this.messageBoxContainer.setAttribute("class","component-messageboxcontainer component-border-bottom-green")):"failure"===t?(this.icon.setAttribute("class","supermapol-icons-message-failure"),this.messageBoxContainer.setAttribute("class","component-messageboxcontainer component-border-bottom-red")):"warring"===t&&(this.icon.setAttribute("class","supermapol-icons-message-warning"),this.messageBoxContainer.setAttribute("class","component-messageboxcontainer component-border-bottom-orange")),this.messageBox.innerHTML=e,this.messageBoxContainer.hidden=!1}}])&&sae(e.prototype,t),r&&sae(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}(),cae=function(){try{return echarts}catch(e){return{}}}(),fae={"en-US":{title_dataFlowService:"Data Flow Service",title_distributedAnalysis:"Distributed Analysis",title_clientComputing:"Client Computing",title_dataServiceQuery:"Data Service Query",title_searchCity:"Search city",title_searchLayer:" Search layer",text_input_value_inputDataFlowUrl:"Please enter the data stream service address such as: ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe",text_displayFeaturesInfo:"Display feature information",text_subscribe:"subscribe",text_cancelSubscribe:"unsubscribe",text_densityAnalysis:"Density Analysis",text_CalculateTheValuePerUnitArea:"Calculate the value per unit area within the neighborhood shape",text_option_selectDataset:"Please select a dataset",text_label_dataset:"Dataset",text_option_simplePointDensityAnalysis:"Simple point density analysis",text_option_nuclearDensityAnalysis:"Nuclear density analysis",text_label_analyticalMethod:"Analytical method",text_option_quadrilateral:"Quadrilateral",text_option_hexagon:"hexagon",text_label_meshType:"Mesh type",text_option_notSet:"Not set",text_label_weightField:"Weight field",text_label_gridSizeInMeters:"Grid size",text_label_searchRadius:"Search radius",text_label_queryRange:"Scope of analysis",text_label_areaUnit:"Area unit",text_option_equidistantSegmentation:"Equidistant segmentation",text_option_logarithm:"Logarithm",text_option_equalCountingSegment:"Equal counting segment",text_option_squareRootSegmentation:"Square root segmentation",text_label_thematicMapSegmentationMode:"Thematic map segmentation mode",text_label_thematicMapSegmentationParameters:"Thematic map segmentation parameters",text_option_greenOrangePurpleGradient:"Green orange purple gradient",text_option_greenOrangeRedGradient:"Green orange red gradient",text_option_rainbowGradient:"Rainbow gradient",text_option_spectralGradient:"Spectral gradient",text_option_terrainGradient:"Terrain gradient",text_label_thematicMapColorGradientMode:"Thematic map color gradient mode",text_label_resultLayerName:"Result layer name",text_chooseFile:"Open File",text_isoline:"Isoline",text_extractDiscreteValue:"Extract discrete value generation curve",text_buffer:"Buffer",text_specifyTheDistance:"Specify the distance to create the surrounding area",text_label_analysisLayer:"Analysis layer",text_label_extractField:"Extract field",text_label_extractedValue:"Extracted value",text_label_distanceAttenuation:"Distance attenuation",text_label_gridSize:"gridSize",text_label_bufferRadius:"Buffer radius",text_label_defaultkilometers:"Default 10 kilometers",text_label_kilometer:"kilometer",text_label_unit:"unit",text_retainOriginal:"Retain original object field",text_mergeBuffer:"Merge buffer",text_label_color:"Color",text_label_buffer:"[Buffer]",text_label_isolines:"[Isolines]",text_label_queryRangeTips:"The default is the full range of input data. Example: -74.050, 40.650, -73.850, 40.850",text_label_queryModel:"Query mode",text_label_IDArrayOfFeatures:"ID array of features",text_label_maxFeatures:"The maximum number of features that can be returned",text_label_bufferDistance:"Buffer distance",text_label_queryRange1:"Query range",text_label_spatialQueryMode:"Spatial query mode",text_label_featureFilter:"Feature filter",text_label_geometricObject:"Geometric object",text_label_queryMode:"Query mode",text_label_searchTips:"Search for city locations or layer features",text_label_chooseSearchLayers:"Select a query layer",text_loadSearchCriteria:"Load search criteria",text_saveSearchCriteria:"Save search criteria",btn_analyze:"Analyze",btn_analyzing:"Analyzing",btn_emptyTheAnalysisLayer:"Empty the analysis layer",btn_cancelAnalysis:"Cancel",btn_query:"Query",btn_querying:"Querying",btn_emptyTheRresultLayer:"Clear all result layers","msg_dataReturnedIsEmpty.":"The request is successful and the data returned by the query is empty.",msg_dataFlowServiceHasBeenSubscribed:"The data stream service has been subscribed to.",msg_inputDataFlowUrlFirst:"Please enter the data stream service address first.",msg_datasetOrMethodUnsupport:"This dataset does not support this analysis type. Please reselect the dataset.",msg_selectDataset:"Please select a data set!",msg_setTheWeightField:"Please set the weight field!",msg_theFieldNotSupportAnalysis:"The field you currently select does not support analysis!",msg_resultIsEmpty:"The result of the analysis is empty!",msg_openFileFail:"Failed to open file!",msg_fileTypeUnsupported:"File format is not supported!",msg_fileSizeExceeded:"File size exceeded! The file size should not exceed 10M!",msg_dataInWrongGeoJSONFormat:"Wrong data format! Non standard GEOJSON format data!",msg_dataInWrongFormat:"Wrong data format! Non standard EXCEL, CSV or GEOJSON format data!",msg_searchKeywords:"Search keywords cannot be empty. Please enter your search criteria.",msg_searchGeocodeField:"Did not match the address matching service data!",msg_cityGeocodeField:"The address matching service of the current city is not configured.",msg_getFeatureField:"No related vector features found!",msg_dataflowservicesubscribed:"The data stream service has been subscribed to.",msg_subscribesucceeded:"The data stream service subscription was successful.",msg_crsunsupport:"Does not support the coordinate system of the current map",msg_tilematrixsetunsupport:"Incoming TileMatrixSet is not supported",msg_jsonResolveFiled:"JSON format parsing failure!",msg_requestContentFiled:"Failed to request data through iportal!",msg_getdatafailed:"Failed to get data!"},"zh-CN":{title_dataFlowService:"数据流服务",title_distributedAnalysis:"分布式分析",title_clientComputing:"客户端计算",title_dataServiceQuery:"数据服务查询",title_searchCity:"搜索城市",title_searchLayer:"搜索图层",text_input_value_inputDataFlowUrl:"请输入数据流服务地址如:ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe",text_displayFeaturesInfo:"显示要素信息",text_subscribe:"订阅",text_cancelSubscribe:"取消订阅",text_densityAnalysis:"密度分析",text_CalculateTheValuePerUnitArea:"计算点指定邻域形状内的每单位面积量值",text_option_selectDataset:"请选择数据集",text_label_dataset:"数据集",text_option_simplePointDensityAnalysis:"简单点密度分析",text_option_nuclearDensityAnalysis:"核密度分析",text_label_analyticalMethod:"分析方法",text_option_quadrilateral:"四边形",text_option_hexagon:"六边形",text_label_meshType:"网格面类型",text_option_notSet:"未设置",text_label_weightField:"权重字段",text_label_gridSizeInMeters:"网格大小",text_label_searchRadius:"搜索半径",text_label_queryRange:"分析范围",text_label_areaUnit:"面积单位",text_option_equidistantSegmentation:"等距离分段",text_option_logarithm:"对数",text_option_equalCountingSegment:"等计数分段",text_option_squareRootSegmentation:"平方根分段",text_label_thematicMapSegmentationMode:"专题图分段模式",text_label_thematicMapSegmentationParameters:"专题图分段参数",text_option_greenOrangePurpleGradient:"绿橙紫渐变",text_option_greenOrangeRedGradient:"绿橙红渐变",text_option_rainbowGradient:"彩虹渐变",text_option_spectralGradient:"光谱渐变",text_option_terrainGradient:"地形渐变",text_label_thematicMapColorGradientMode:"专题图颜色渐变模式",text_label_resultLayerName:"结果图层名称",text_chooseFile:"选择文件",text_isoline:"等值线",text_extractDiscreteValue:"提取离散值生成曲线",text_buffer:"缓冲区",text_specifyTheDistance:"指定距离创建周边区域",text_label_analysisLayer:"分析图层",text_label_extractField:"提取字段",text_label_extractedValue:"提取值",text_label_distanceAttenuation:"距离衰减",text_label_gridSize:"栅格大小",text_label_bufferRadius:"缓冲半径",text_label_defaultkilometers:"默认10千米",text_option_kilometer:"千米",text_label_unit:"单位",text_retainOriginal:"保留原对象字段属性",text_mergeBuffer:"合并缓冲区",text_label_color:"颜色",text_label_buffer:"[缓冲区]",text_label_isolines:"[等值线]",text_label_queryRangeTips:"默认为输入数据的全幅范围。范例:-74.050,40.650,-73.850,40.850",text_label_IDArrayOfFeatures:"要素 ID 数组",text_label_maxFeatures:"最多可返回的要素数量",text_label_bufferDistance:"缓冲区距离",text_label_queryRange1:"查询范围",text_label_spatialQueryMode:"空间查询模式",text_label_featureFilter:"要素过滤器",text_label_geometricObject:"几何对象",text_label_queryMode:"查询模式",text_label_searchTips:"搜索城市地点或图层要素",text_label_chooseSearchLayers:"选择查询图层",text_loadSearchCriteria:"加载搜索条件",text_saveSearchCriteria:"保存搜索条件",btn_analyze:"分析",btn_analyzing:"分析中",btn_emptyTheAnalysisLayer:"清空分析图层",btn_cancelAnalysis:"取消",btn_query:"查询",btn_querying:"查询中",btn_emptyTheRresultLayer:"清除所有结果图层",msg_dataFlowServiceHasBeenSubscribed:"已订阅该数据流服务。",msg_inputDataFlowUrlFirst:"请先输入数据流服务地址。",msg_datasetOrMethodUnsupport:"该数据集不支持本分析类型,请重新选择数据集",msg_selectDataset:"请选择数据集!",msg_setTheWeightField:"请设置权重字段!",msg_theFieldNotSupportAnalysis:"您当前选择的字段不支持分析!",msg_resultIsEmpty:"分析的结果为空!",msg_dataReturnedIsEmpty:"请求成功,查询返回的数据为空。",msg_openFileFail:"打开文件失败!",msg_fileTypeUnsupported:"不支持该文件格式!",msg_fileSizeExceeded:"文件大小超限!文件大小不得超过 10M!",msg_dataInWrongGeoJSONFormat:"数据格式错误!非标准的 GEOJSON 格式数据!",msg_dataInWrongFormat:"数据格式错误!非标准的 EXCEL, CSV 或 GEOJSON 格式数据!",msg_searchKeywords:"搜索关键字不能为空,请输入搜索条件。",msg_searchGeocodeField:"未匹配到地址匹配服务数据!",msg_cityGeocodeField:"未配置当前城市的地址匹配服务。",msg_getFeatureField:"未查找到相关矢量要素!",msg_dataflowservicesubscribed:"已订阅该数据流服务。",msg_subscribesucceeded:"数据流服务订阅成功。",msg_crsunsupport:"不支持当前地图的坐标系",msg_tilematrixsetunsupport:"不支持传入的TileMatrixSet",msg_jsonResolveFiled:"json格式解析失败!",msg_requestContentFiled:"通过iportal请求数据失败!",msg_getdatafailed:"获取数据失败!"},code:null,defaultCode:"en-US",getCode:function(){return fae.code||fae.setCode(),fae.code},setCode:function(){var e=this.getLanguageFromCookie();e||(e=fae.defaultCode,e="Netscape"===navigator.appName?navigator.language:navigator.browserLanguage),0===e.indexOf("zh")&&(e="zh-CN"),0===e.indexOf("en")&&(e="en-US"),fae.code=e},getLanguageFromCookie:function(){for(var e=document.cookie.split(";"),t=0;t0){var a=i.SheetNames[0],s=pae.utils.sheet_to_csv(i.Sheets[a]);t&&t.call(n,s)}}catch(e){r&&r.call(n,e)}},o.onerror=function(e){r&&r.call(n,e)},this.rABF&&o.readAsArrayBuffer(e.file)},processDataToGeoJson:function(e,t,r,n,o){var i=null;if("EXCEL"===e||"CSV"===e)i=this.processExcelDataToGeoJson(t),r&&r.call(o,i);else if("JSON"===e||"GEOJSON"===e){var a=t;"string"==typeof a&&(a=JSON.parse(a)),"ISERVER"===a.type?i=a.data.recordsets[0].features:"FeatureCollection"===a.type?i=a:n&&n.call(o,fae.i18n("msg_dataInWrongGeoJSONFormat")),r&&r.call(o,i)}else n&&n.call(o,fae.i18n("msg_dataInWrongFormat"))},processExcelDataToGeoJson:function(e){for(var t=this.string2Csv(e),r=t.colTitles,n=-1,o=-1,i=0,a=r.length;i0?(n.dataItemServices.forEach(function(n){if("RESTDATA"===n.serviceType&&"PUBLISHED"===n.serviceStatus)o=n;else{if("RESTMAP"!==n.serviceType||"PUBLISHED"!==n.serviceStatus)return void r.getDatafromContent(e,t);o=n}}),o&&r.getDatafromRest(o.serviceType,o.address,t)):r.getDatafromContent(e,t):r._fireFailedEvent(n)}).catch(function(e){console.log(e),r._fireFailedEvent(e)})}},{key:"getDatafromContent",value:function(e,t){var r=this,n={result:{}},o=this;e+="/content.json?pageSize=9999999¤tPage=1",H.get(e,null,{withCredentials:this.datasets.withCredentials}).then(function(e){return e.json()}).then(function(e){if(!1!==e.succeed){if(e.type){if("JSON"===e.type||"GEOJSON"===e.type){if(e.content=JSON.parse(e.content.trim()),!e.content.features)return void console.log(fae.i18n("msg_jsonResolveFiled"));var i=r._formatGeoJSON(e.content);n.result.features={type:e.content.type,features:i}}else if("EXCEL"===e.type||"CSV"===e.type){var a=r._excelData2Feature(e.content);n.result.features={type:"FeatureCollection",features:a}}t(n,"content")}}else o._fireFailedEvent(e)},this).catch(function(e){console.log(e),o._fireFailedEvent(e)})}},{key:"getDatafromRest",value:function(e,t,r){var n=this,o=this.datasets.withCredentials;if("RESTDATA"===e){var i,a,s="".concat(t,"/data/datasources");H.get(s,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){i=e.datasourceNames[0],s="".concat(t,"/data/datasources/").concat(i,"/datasets"),H.get(s,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){return a=e.datasetNames[0],n.getDatafromRestData("".concat(t,"/data"),[i+":"+a],r),[i+":"+a]}).catch(function(e){n._fireFailedEvent(e)})}).catch(function(e){n._fireFailedEvent(e)})}else{var u,l,c,f="".concat(t,"/maps");H.get(f,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){u=e[0].name,c=e[0].path,f=f="".concat(t,"/maps/").concat(u,"/layers"),H.get(f,null,{withCredentials:o}).then(function(e){return e.json()}).then(function(e){return l=e[0].subLayers.layers[0].caption,n.getDatafromRestMap(l,c,r),l}).catch(function(e){n._fireFailedEvent(e)})}).catch(function(e){n._fireFailedEvent(e)})}}},{key:"getDatafromRestData",value:function(e,t,r){var n=this;this.datasets.queryInfo.attributeFilter=this.datasets.queryInfo.attributeFilter||"SmID>0",this._getFeatureBySQL(e,t,this.datasets.queryInfo,function(e){r(e,"RESTDATA")},function(e){console.log(e),n._fireFailedEvent(e)})}},{key:"getDatafromRestMap",value:function(e,t,r){var n=this;this.datasets.queryInfo.attributeFilter=this.datasets.queryInfo.attributeFilter||"smid=1",this._queryFeatureBySQL(t,e,this.datasets.queryInfo,null,null,function(e){r(e,"RESTMAP")},function(e){console.log(e),n._fireFailedEvent(e)})}},{key:"_getFeatureBySQL",value:function(e,t,r,n,o){var i,a,s={name:t.join().replace(":","@")};Object.assign(s,r),i=new gB(s),a=new VB({queryParameter:i,datasetNames:t,fromIndex:0,toIndex:1e5,returnContent:!0}),new eL(e).processAsync(a,function(e){"processCompleted"===e.type?n&&n(e):o&&o(e)})}},{key:"_queryFeatureBySQL",value:function(e,t,r,n,o,i,a,s,u,l){var c,f,p={name:t};Object.assign(p,r),c=new gB(p),n&&(c.fields=n);var h={queryParams:[c]};l&&(h.queryOption=fn.ATTRIBUTE),s&&(h.startRecord=s),u&&(h.expectCount=u),o&&(h.prjCoordSys={epsgCode:o}),f=new iJ(h),this._queryBySQL(e,f,function(e){"processCompleted"===e.type?i(e):a(e)})}},{key:"_queryBySQL",value:function(e,t,r,n){new hJ(e,{format:this._processFormat(n)}).processAsync(t,r)}},{key:"_processFormat",value:function(e){return e||un.GEOJSON}},{key:"_formatGeoJSON",value:function(e){var t=e.features;return t.forEach(function(e,t){e.properties.index=t}),t}},{key:"_excelData2Feature",value:function(e){for(var t=e.colTitles,r=-1,n=-1,o=0,i=t.length;o=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Aae(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&e.forEach(function(e){e.xAxis&&t.xField.push({field:e.xAxis.field,name:e.xAxis.name}),e.yAxis&&t.yField.push({field:e.yAxis.field,name:e.yAxis.name})})}},{key:"getDatasetInfo",value:function(e){var t=this;this.createChart=e,this.datasets&&this._checkUrl(this.datasets.url)&&(this.chartModel=new vae(this.datasets),"iServer"===this.datasets.type?this.chartModel.getDatasetInfo(this._getDatasetInfoSuccess.bind(this)):"iPortal"===this.datasets.type&&this.chartModel.getDataInfoByIptl(this._getDataInfoSuccess.bind(this)),this.chartModel.events.on({getdatafailed:function(e){t.events.triggerEvent("getdatafailed",e)}}))}},{key:"_getDatasetInfoSuccess",value:function(e){var t=this.datasets.url,r=t.indexOf("rest");if(r>0){var n=t.indexOf("/",r+5),o=t.substring(r+5,n),i=t.substring(0,r+4)+"/data";if("maps"===o){var a=t.indexOf("/",n+1),s=t.substring(n+1,a);i=t.substring(0,r+4)+"/maps/"+s,e.result.dataUrl=i,this._getLayerFeatures(e)}else"data"===o&&(e.result.dataUrl=i,this._getDataFeatures(e))}}},{key:"_getDataInfoSuccess",value:function(e,t){"RESTMAP"===t?this._getChartDatasFromLayer(e):this._getChartDatas(e)}},{key:"_getDataFeatures",value:function(e){this.chartModel.getDataFeatures(e,this._getChartDatas.bind(this))}},{key:"_getLayerFeatures",value:function(e){this.chartModel.getLayerFeatures(e,this._getChartDatasFromLayer.bind(this))}},{key:"_getChartDatas",value:function(e){if(e){this.features=e.result.features;var t=this.features.features,r={};if(t.length){var n=t[0],o=[],i=[];for(var a in n.properties)o.push(a),i.push(this._getDataType(n.properties[a]));for(var s in r={features:t,fieldCaptions:o,fieldTypes:i,fieldValues:[]},i){var u=[];for(var l in t){var c=t[l],f=r.fieldCaptions[s],p=c.properties[f];u.push(p)}r.fieldValues.push(u)}this.createChart(r)}}}},{key:"_getChartDatasFromLayer",value:function(e){if(e.result.recordsets){var t=e.result.recordsets[0],r=t.features.features;this.features=t.features;var n={};if(r.length){for(var o in(n={features:t.features,fieldCaptions:t.fieldCaptions,fieldTypes:t.fieldTypes,fieldValues:[]}).fieldCaptions){var i=[];for(var a in r){var s=r[a],u=n.fieldCaptions[o],l=s.properties[u];i.push(l)}n.fieldValues.push(i)}this.createChart(n)}}}},{key:"_createChartOptions",value:function(e){return this.calculatedData=this._createChartDatas(e),this.updateChartOptions(this.chartType)}},{key:"changeType",value:function(e){if(e!==this.chartType)return this.chartType=e,this.updateChartOptions(this.chartType)}},{key:"updateData",value:function(e,t,r){this.updateChart=r,this.xField=[],this.yField=[],this._initXYField(t),e.type=e.type||"iServer",e.withCredentials=e.withCredentials||!1,this.datasets=e,this.getDatasetInfo(this._updateDataSuccess.bind(this))}},{key:"_updateDataSuccess",value:function(e){var t=this._createChartOptions(e);this.updateChart(t)}},{key:"updateChartOptions",value:function(e,t){if(this.calculatedData){var r=this.grid,n=this._createChartSeries(this.calculatedData,e),o=[];for(var i in this.calculatedData.XData)o.push({value:this.calculatedData.XData[i].fieldsData});var a={type:"category",name:this.xField[0].name||"X",data:o,nameTextStyle:{color:"#fff",fontSize:14},splitLine:{show:!1},axisLine:{lineStyle:{color:"#eee"}}},s={type:"value",name:this.yFieldName||"Y",data:{},nameTextStyle:{color:"#fff",fontSize:14},splitLine:{show:!1},axisLine:{lineStyle:{color:"#eee"}}},u={formatter:"{b0}: {c0}"},l="#404a59";return t&&(t.grid&&(r=t.grid),t.tooltip&&(u=t.tooltip),t.backgroundColor&&(l=t.backgroundColor)),{backgroundColor:l,grid:r,series:n,xAxis:a,yAxis:s,tooltip:u}}}},{key:"_createChartDatas",value:function(e){var t=0,r=[],n=e.fieldCaptions,o=this;n.forEach(function(e,r){o.xField[0]&&e===o.xField[0].field&&(t=r)}),this.yFieldName="",this.yField.forEach(function(e,t){0!==t&&(o.yFieldName=o.yFieldName+","),o.yFieldName=o.yFieldName+e.name,n.forEach(function(t,n){t===e.field&&r.push(n)})});var i=this._getAttrData(e,t),a=[];if(r.length>0)r.forEach(function(t){var r=[];for(var n in e.fieldValues[t])r.push({value:e.fieldValues[t][n]});a.push(r)});else{for(var s=[],u=[],l=i.length,c=0;c0;e--)this.header.removeChild(this.header.children[e]),this.content.removeChild(this.content.children[e])}},{key:"_changeTabsPage",value:function(e){for(var t=e.target.index,r=0;r0;t--)this.content.removeChild(this.content.children[t-1]);var r=this.config[e];for(var n in r)this._createCityItem(n,r[n])}},{key:"_createCityItem",value:function(e,t){var r=document.createElement("div"),n=document.createElement("div");n.setAttribute("class","component-citytabpag__py-key"),n.innerHTML=e,r.appendChild(n);var o=document.createElement("div");o.setAttribute("class","component-citytabpag__content");for(var i=0;i0&&this.appendTabs(e),this.rootContainer=t}},{key:"setTabs",value:function(e){this.removeAllTabs(),this.appendTabs(e)}},{key:"appendTabs",value:function(e){for(var t=0;t0;e--)this.navTabsTitle.removeChild(this.navTabsTitle.children[e]),this.navTabsContent.removeChild(this.navTabsContent.children[e])}},{key:"_changeTabsPage",value:function(e){for(var t=e.target.index,r=0;r=0;e--)this.content.removeChild(this.content.children[e])}},{key:"setPageLink",value:function(e){this.pageNumberLis=[],this.currentPageNumberLis=[],this.clearPageLink(),this._createPageLi(e),this._appendPageLink()}},{key:"_createPageLi",value:function(e){for(var t=0;t1;e--)this.link.removeChild(this.link.children[e])}},{key:"_createLink",value:function(e){for(var t=0;t<4;t++){var r=document.createElement("li");r.setAttribute("class","disable");var n=document.createElement("span");r.appendChild(n),0===t?(n.id="first",n.setAttribute("class","supermapol-icons-first")):1===t?(n.id="prev",n.setAttribute("class","supermapol-icons-prev")):2===t?(n.id="next",n.setAttribute("class","supermapol-icons-next")):3===t&&(n.id="last",n.setAttribute("class","supermapol-icons-last")),e.appendChild(r)}}},{key:"_changePageEvent",value:function(e){var t=e.target;if("disable"!==t.parentElement.classList[0]){var r;if(t.id)r=t.id;else{if(!Number(t.innerHTML))return;r=Number(t.innerHTML)}this._prePageNum(r),this.clearPageLink(),this._appendPageLink()}}},{key:"_changeDisableState",value:function(){this.link.children[0].setAttribute("class",""),this.link.children[1].setAttribute("class",""),this.link.children[this.link.children.length-1].setAttribute("class",""),this.link.children[this.link.children.length-2].setAttribute("class",""),1===this.currentPage&&(this.link.children[0].setAttribute("class","disable"),this.link.children[1].setAttribute("class","disable")),this.currentPage===this.pageNumberLis.length&&(this.link.children[this.link.children.length-1].setAttribute("class","disable"),this.link.children[this.link.children.length-2].setAttribute("class","disable"))}},{key:"_prePageNum",value:function(e){var t=[];if(this.currentPage="first"===e?1:"last"===e?this.pageNumberLis.length:"prev"===e?this.currentPage-1:"next"===e?this.currentPage+1:e,this.pageNumberLis.length<=5)for(var r=0;r=this.pageNumberLis.length-3)for(var o=this.pageNumberLis.length-5;o0&&(this.currentPageNumberLis=t)}}])&&Bse(r.prototype,n),o&&Bse(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Gse(e){"@babel/helpers - typeof";return(Gse="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Use(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function zse(e){for(var t=1;te.phi1&&(e.phi2-=2*Zse),1===e.sweepFlag&&e.phi2n)return[];if(0===n)return[[e*r/(e*e+t*t),t*r/(e*e+t*t)]];var o=Math.sqrt(n);return[[(e*r+t*o)/(e*e+t*t),(t*r-e*o)/(e*e+t*t)],[(e*r-t*o)/(e*e+t*t),(t*r+e*o)/(e*e+t*t)]]}var tue,rue=Math.PI/180;function nue(e,t,r){return(1-r)*e+r*t}function oue(e,t,r,n){return e+Math.cos(n/180*Zse)*t+Math.sin(n/180*Zse)*r}function iue(e,t,r,n){var o=t-e,i=r-t,a=3*o+3*(n-r)-6*i,s=6*(i-o),u=3*o;return Math.abs(a)<1e-6?[-u/s]:function(e,t,r){void 0===r&&(r=1e-6);var n=e*e/4-u/a;if(n<-r)return[];if(n<=r)return[-e/2];var o=Math.sqrt(n);return[-e/2-o,-e/2+o]}(s/a,0,1e-6)}function aue(e,t,r,n,o){var i=1-o;return e*(i*i*i)+t*(3*i*i*o)+r*(3*i*o*o)+n*(o*o*o)}!function(e){function t(){return o(function(e,t,r){return e.relative&&(void 0!==e.x1&&(e.x1+=t),void 0!==e.y1&&(e.y1+=r),void 0!==e.x2&&(e.x2+=t),void 0!==e.y2&&(e.y2+=r),void 0!==e.x&&(e.x+=t),void 0!==e.y&&(e.y+=r),e.relative=!1),e})}function r(){var e=NaN,t=NaN,r=NaN,n=NaN;return o(function(o,i,a){return o.type&pue.SMOOTH_CURVE_TO&&(o.type=pue.CURVE_TO,e=isNaN(e)?i:e,t=isNaN(t)?a:t,o.x1=o.relative?i-e:2*i-e,o.y1=o.relative?a-t:2*a-t),o.type&pue.CURVE_TO?(e=o.relative?i+o.x2:o.x2,t=o.relative?a+o.y2:o.y2):(e=NaN,t=NaN),o.type&pue.SMOOTH_QUAD_TO&&(o.type=pue.QUAD_TO,r=isNaN(r)?i:r,n=isNaN(n)?a:n,o.x1=o.relative?i-r:2*i-r,o.y1=o.relative?a-n:2*a-n),o.type&pue.QUAD_TO?(r=o.relative?i+o.x1:o.x1,n=o.relative?a+o.y1:o.y1):(r=NaN,n=NaN),o})}function n(){var e=NaN,t=NaN;return o(function(r,n,o){if(r.type&pue.SMOOTH_QUAD_TO&&(r.type=pue.QUAD_TO,e=isNaN(e)?n:e,t=isNaN(t)?o:t,r.x1=r.relative?n-e:2*n-e,r.y1=r.relative?o-t:2*o-t),r.type&pue.QUAD_TO){e=r.relative?n+r.x1:r.x1,t=r.relative?o+r.y1:r.y1;var i=r.x1,a=r.y1;r.type=pue.CURVE_TO,r.x1=((r.relative?0:n)+2*i)/3,r.y1=((r.relative?0:o)+2*a)/3,r.x2=(r.x+2*i)/3,r.y2=(r.y+2*a)/3}else e=NaN,t=NaN;return r})}function o(e){var t=0,r=0,n=NaN,o=NaN;return function(i){if(isNaN(n)&&!(i.type&pue.MOVE_TO))throw new Error("path must start with moveto");var a=e(i,t,r,n,o);return i.type&pue.CLOSE_PATH&&(t=n,r=o),void 0!==i.x&&(t=i.relative?t+i.x:i.x),void 0!==i.y&&(r=i.relative?r+i.y:i.y),i.type&pue.MOVE_TO&&(n=t,o=r),a}}function i(e,t,r,n,i,a){return Xse(e,t,r,n,i,a),o(function(o,s,u,l){var c=o.x1,f=o.x2,p=o.relative&&!isNaN(l),h=void 0!==o.x?o.x:p?0:s,y=void 0!==o.y?o.y:p?0:u;function d(e){return e*e}o.type&pue.HORIZ_LINE_TO&&0!==t&&(o.type=pue.LINE_TO,o.y=o.relative?0:u),o.type&pue.VERT_LINE_TO&&0!==r&&(o.type=pue.LINE_TO,o.x=o.relative?0:s),void 0!==o.x&&(o.x=o.x*e+y*r+(p?0:i)),void 0!==o.y&&(o.y=h*t+o.y*n+(p?0:a)),void 0!==o.x1&&(o.x1=o.x1*e+o.y1*r+(p?0:i)),void 0!==o.y1&&(o.y1=c*t+o.y1*n+(p?0:a)),void 0!==o.x2&&(o.x2=o.x2*e+o.y2*r+(p?0:i)),void 0!==o.y2&&(o.y2=f*t+o.y2*n+(p?0:a));var m=e*n-t*r;if(void 0!==o.xRot&&(1!==e||0!==t||0!==r||1!==n))if(0===m)delete o.rX,delete o.rY,delete o.xRot,delete o.lArcFlag,delete o.sweepFlag,o.type=pue.LINE_TO;else{var v=o.xRot*Math.PI/180,g=Math.sin(v),b=Math.cos(v),A=1/d(o.rX),w=1/d(o.rY),S=d(b)*A+d(g)*w,C=2*g*b*(A-w),E=d(g)*A+d(b)*w,x=S*n*n-C*t*n+E*t*t,_=C*(e*n+t*r)-2*(S*r*n+E*e*t),I=S*r*r-C*e*r+E*e*e,O=(Math.atan2(_,x-I)+Math.PI)%Math.PI/2,k=Math.sin(O),P=Math.cos(O);o.rX=Math.abs(m)/Math.sqrt(x*d(P)+_*k*P+I*d(k)),o.rY=Math.abs(m)/Math.sqrt(x*d(k)-_*k*P+I*d(P)),o.xRot=180*O/Math.PI}return void 0!==o.sweepFlag&&0>m&&(o.sweepFlag=+!o.sweepFlag),o})}e.ROUND=function(e){function t(t){return Math.round(t*e)/e}return void 0===e&&(e=1e13),Xse(e),function(e){return void 0!==e.x1&&(e.x1=t(e.x1)),void 0!==e.y1&&(e.y1=t(e.y1)),void 0!==e.x2&&(e.x2=t(e.x2)),void 0!==e.y2&&(e.y2=t(e.y2)),void 0!==e.x&&(e.x=t(e.x)),void 0!==e.y&&(e.y=t(e.y)),void 0!==e.rX&&(e.rX=t(e.rX)),void 0!==e.rY&&(e.rY=t(e.rY)),e}},e.TO_ABS=t,e.TO_REL=function(){return o(function(e,t,r){return e.relative||(void 0!==e.x1&&(e.x1-=t),void 0!==e.y1&&(e.y1-=r),void 0!==e.x2&&(e.x2-=t),void 0!==e.y2&&(e.y2-=r),void 0!==e.x&&(e.x-=t),void 0!==e.y&&(e.y-=r),e.relative=!0),e})},e.NORMALIZE_HVZ=function(e,t,r){return void 0===e&&(e=!0),void 0===t&&(t=!0),void 0===r&&(r=!0),o(function(n,o,i,a,s){if(isNaN(a)&&!(n.type&pue.MOVE_TO))throw new Error("path must start with moveto");return t&&n.type&pue.HORIZ_LINE_TO&&(n.type=pue.LINE_TO,n.y=n.relative?0:i),r&&n.type&pue.VERT_LINE_TO&&(n.type=pue.LINE_TO,n.x=n.relative?0:o),e&&n.type&pue.CLOSE_PATH&&(n.type=pue.LINE_TO,n.x=n.relative?a-o:a,n.y=n.relative?s-i:s),n.type&pue.ARC&&(0===n.rX||0===n.rY)&&(n.type=pue.LINE_TO,delete n.rX,delete n.rY,delete n.xRot,delete n.lArcFlag,delete n.sweepFlag),n})},e.NORMALIZE_ST=r,e.QT_TO_C=n,e.INFO=o,e.SANITIZE=function(e){void 0===e&&(e=0),Xse(e);var t=NaN,r=NaN,n=NaN,i=NaN;return o(function(o,a,s,u,l){var c=Math.abs,f=!1,p=0,h=0;if(o.type&pue.SMOOTH_CURVE_TO&&(p=isNaN(t)?0:a-t,h=isNaN(r)?0:s-r),o.type&(pue.CURVE_TO|pue.SMOOTH_CURVE_TO)?(t=o.relative?a+o.x2:o.x2,r=o.relative?s+o.y2:o.y2):(t=NaN,r=NaN),o.type&pue.SMOOTH_QUAD_TO?(n=isNaN(n)?a:2*a-n,i=isNaN(i)?s:2*s-i):o.type&pue.QUAD_TO?(n=o.relative?a+o.x1:o.x1,i=o.relative?s+o.y1:o.y2):(n=NaN,i=NaN),o.type&pue.LINE_COMMANDS||o.type&pue.ARC&&(0===o.rX||0===o.rY||!o.lArcFlag)||o.type&pue.CURVE_TO||o.type&pue.SMOOTH_CURVE_TO||o.type&pue.QUAD_TO||o.type&pue.SMOOTH_QUAD_TO){var y=void 0===o.x?0:o.relative?o.x:o.x-a,d=void 0===o.y?0:o.relative?o.y:o.y-s;p=isNaN(n)?void 0===o.x1?p:o.relative?o.x:o.x1-a:n-a,h=isNaN(i)?void 0===o.y1?h:o.relative?o.y:o.y1-s:i-s;var m=void 0===o.x2?0:o.relative?o.x:o.x2-a,v=void 0===o.y2?0:o.relative?o.y:o.y2-s;c(y)<=e&&c(d)<=e&&c(p)<=e&&c(h)<=e&&c(m)<=e&&c(v)<=e&&(f=!0)}return o.type&pue.CLOSE_PATH&&c(a-u)<=e&&c(s-l)<=e&&(f=!0),f?[]:o})},e.MATRIX=i,e.ROTATE=function(e,t,r){void 0===t&&(t=0),void 0===r&&(r=0),Xse(e,t,r);var n=Math.sin(e),o=Math.cos(e);return i(o,n,-n,o,t-t*o+r*n,r-t*n-r*o)},e.TRANSLATE=function(e,t){return void 0===t&&(t=0),Xse(e,t),i(1,0,0,1,e,t)},e.SCALE=function(e,t){return void 0===t&&(t=e),Xse(e,t),i(e,0,0,t,0,0)},e.SKEW_X=function(e){return Xse(e),i(1,0,Math.atan(e),1,0,0)},e.SKEW_Y=function(e){return Xse(e),i(1,Math.atan(e),0,1,0,0)},e.X_AXIS_SYMMETRY=function(e){return void 0===e&&(e=0),Xse(e),i(-1,0,0,1,e,0)},e.Y_AXIS_SYMMETRY=function(e){return void 0===e&&(e=0),Xse(e),i(1,0,0,-1,0,e)},e.A_TO_C=function(){return o(function(e,t,r){return pue.ARC===e.type?function(e,t,r){var n,o,i,a;e.cX||$se(e,t,r);for(var s=Math.min(e.phi1,e.phi2),u=Math.max(e.phi1,e.phi2)-s,l=Math.ceil(u/90),c=new Array(l),f=t,p=r,h=0;hs.maxX&&(s.maxX=e),es.maxY&&(s.maxY=e),eI&&u(aue(r,o.x1,o.x2,o.x,I));for(var p=0,h=iue(n,o.y1,o.y2,o.y);pI&&l(aue(n,o.y1,o.y2,o.y,I))}if(o.type&pue.ARC){u(o.x),l(o.y),$se(o,r,n);for(var y=o.xRot/180*Math.PI,d=Math.cos(y)*o.rX,m=Math.sin(y)*o.rX,v=-Math.sin(y)*o.rY,g=Math.cos(y)*o.rY,b=o.phi1o.phi2?[o.phi2+360,o.phi1+360]:[o.phi2,o.phi1],A=b[0],w=b[1],S=function(e){var t=e[0],r=e[1],n=180*Math.atan2(r,t)/Math.PI;return nA&&IA&&Iu)throw new SyntaxError('Expected positive number, got "'+u+'" at index "'+o+'"')}else if((3===this.curArgs.length||4===this.curArgs.length)&&"0"!==this.curNumber&&"1"!==this.curNumber)throw new SyntaxError('Expected a flag, got "'+this.curNumber+'" at index "'+o+'"');this.curArgs.push(u),this.curArgs.length===hue[this.curCommandType]&&(pue.HORIZ_LINE_TO===this.curCommandType?n({type:pue.HORIZ_LINE_TO,relative:this.curCommandRelative,x:u}):pue.VERT_LINE_TO===this.curCommandType?n({type:pue.VERT_LINE_TO,relative:this.curCommandRelative,y:u}):this.curCommandType===pue.MOVE_TO||this.curCommandType===pue.LINE_TO||this.curCommandType===pue.SMOOTH_QUAD_TO?(n({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),pue.MOVE_TO===this.curCommandType&&(this.curCommandType=pue.LINE_TO)):this.curCommandType===pue.CURVE_TO?n({type:pue.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===pue.SMOOTH_CURVE_TO?n({type:pue.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===pue.QUAD_TO?n({type:pue.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===pue.ARC&&n({type:pue.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!lue(i))if(","===i&&this.canParseCommandOrComma)this.canParseCommandOrComma=!1;else if("+"!==i&&"-"!==i&&"."!==i)if(s)this.curNumber=i,this.curNumberHasDecimal=!1;else{if(0!==this.curArgs.length)throw new SyntaxError("Unterminated command at index "+o+".");if(!this.canParseCommandOrComma)throw new SyntaxError('Unexpected character "'+i+'" at index '+o+". Command cannot follow comma");if(this.canParseCommandOrComma=!1,"z"!==i&&"Z"!==i)if("h"===i||"H"===i)this.curCommandType=pue.HORIZ_LINE_TO,this.curCommandRelative="h"===i;else if("v"===i||"V"===i)this.curCommandType=pue.VERT_LINE_TO,this.curCommandRelative="v"===i;else if("m"===i||"M"===i)this.curCommandType=pue.MOVE_TO,this.curCommandRelative="m"===i;else if("l"===i||"L"===i)this.curCommandType=pue.LINE_TO,this.curCommandRelative="l"===i;else if("c"===i||"C"===i)this.curCommandType=pue.CURVE_TO,this.curCommandRelative="c"===i;else if("s"===i||"S"===i)this.curCommandType=pue.SMOOTH_CURVE_TO,this.curCommandRelative="s"===i;else if("q"===i||"Q"===i)this.curCommandType=pue.QUAD_TO,this.curCommandRelative="q"===i;else if("t"===i||"T"===i)this.curCommandType=pue.SMOOTH_QUAD_TO,this.curCommandRelative="t"===i;else{if("a"!==i&&"A"!==i)throw new SyntaxError('Unexpected character "'+i+'" at index '+o+".");this.curCommandType=pue.ARC,this.curCommandRelative="a"===i}else t.push({type:pue.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1}else this.curNumber=i,this.curNumberHasDecimal="."===i}else this.curNumber+=i,this.curNumberHasDecimal=!0;else this.curNumber+=i;else this.curNumber+=i,this.curNumberHasExp=!0;else this.curNumber+=i,this.curNumberHasExpDigits=this.curNumberHasExp}return t},t.prototype.transform=function(e){return Object.create(this,{parse:{value:function(t,r){void 0===r&&(r=[]);for(var n=0,o=Object.getPrototypeOf(this).parse.call(this,t);n>>w;if(s[b+3]=Y,0!==Y){var W=255/Y;s[b]=(L*A>>>w)*W,s[b+1]=(R*A>>>w)*W,s[b+2]=(D*A>>>w)*W}else s[b]=s[b+1]=s[b+2]=0;L-=j,R-=M,D-=N,F-=B,j-=m.r,M-=m.g,N-=m.b,B-=m.a;var J=K+i+1;J=g+(J>>w,ae>0?(ae=255/ae,s[Ee]=(fe*A>>>w)*ae,s[Ee+1]=(pe*A>>>w)*ae,s[Ee+2]=(he*A>>>w)*ae):s[Ee]=s[Ee+1]=s[Ee+2]=0,fe-=se,pe-=ue,he-=le,ye-=ce,se-=m.r,ue-=m.g,le-=m.b,ce-=m.a,Ee=re+((Ee=Ce+f)=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Oue(e,t,r){return t=Pue(t),kue(e,function(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return function(){return!!e}()}()?Reflect.construct(t,r||[],Pue(e).constructor):t.apply(e,r))}function kue(e,t){if(t&&("object"==Aue(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Pue(e){return(Pue=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function Tue(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&jue(e,t)}function jue(e,t){return(jue=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function Mue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Nue(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function Gue(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function Uue(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Gue(i,n,o,a,s,"next",e)}function s(e){Gue(i,n,o,a,s,"throw",e)}a(void 0)})}}function zue(e){return e.replace(/(?!\u3000)\s+/gm," ")}function Hue(e){var t=e.match(/-?(\d+(?:\.\d*(?:[eE][+-]?\d+)?)?|\.\d+)(?=\D|$)/gm);return t?t.map(parseFloat):[]}var que=/^[A-Z-]+$/;function Vue(e){var t=/url\(('([^']+)'|"([^"]+)"|([^'")]+))\)/.exec(e);return t&&(t[2]||t[3]||t[4])||""}var Kue=/(\[[^\]]+\])/g,Yue=/(#[^\s+>~.[:]+)/g,Wue=/(\.[^\s+>~.[:]+)/g,Jue=/(::[^\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi,Xue=/(:[\w-]+\([^)]*\))/gi,Zue=/(:[^\s+>~.[:]+)/g,$ue=/([^\s+>~.[:]+)/g;function ele(e,t){var r=t.exec(e);return r?[e.replace(t," "),r.length]:[e,0]}var tle=1e-8;function rle(e){return Math.sqrt(Math.pow(e[0],2)+Math.pow(e[1],2))}function nle(e,t){return(e[0]*t[0]+e[1]*t[1])/(rle(e)*rle(t))}function ole(e,t){return(e[0]*t[1]0&&void 0!==arguments[0]?arguments[0]:" ",r=this.document,n=this.name;return zue(this.getString()).trim().split(t).map(function(t){return new e(r,n,t)})}},{key:"hasValue",value:function(e){var t=this.value;return null!==t&&""!==t&&(e||0!==t)&&void 0!==t}},{key:"isString",value:function(e){var t=this.value,r="string"==typeof t;return r&&e?e.test(t):r}},{key:"isUrlDefinition",value:function(){return this.isString(/^url\(/)}},{key:"isPixels",value:function(){if(!this.hasValue())return!1;var e=this.getString();switch(!0){case e.endsWith("px"):case/^[0-9]+$/.test(e):return!0;default:return!1}}},{key:"setValue",value:function(e){return this.value=e,this}},{key:"getValue",value:function(e){return void 0===e||this.hasValue()?this.value:e}},{key:"getNumber",value:function(e){if(!this.hasValue())return void 0===e?0:parseFloat(e);var t=this.value,r=parseFloat(t);return this.isString(/%$/)&&(r/=100),r}},{key:"getString",value:function(e){return void 0===e||this.hasValue()?void 0===this.value?"":String(this.value):String(e)}},{key:"getColor",value:function(e){var t=this.getString(e);return this.isNormalizedColor?t:(this.isNormalizedColor=!0,t=function(e){if(!e.startsWith("rgb"))return e;var t=3;return e.replace(/\d+(\.\d+)?/g,function(e,r){return t--&&r?String(Math.round(parseFloat(e))):e})}(t),this.value=t,t)}},{key:"getDpi",value:function(){return 96}},{key:"getRem",value:function(){return this.document.rootEmSize}},{key:"getEm",value:function(){return this.document.emSize}},{key:"getUnits",value:function(){return this.getString().replace(/[0-9.-]/g,"")}},{key:"getPixels",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.hasValue())return 0;var r=Rue("boolean"==typeof e?[void 0,e]:[e],2),n=r[0],o=r[1],i=this.document.screen.viewPort;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(i.computeSize("x"),i.computeSize("y"));case this.isString(/vmax$/):return this.getNumber()/100*Math.max(i.computeSize("x"),i.computeSize("y"));case this.isString(/vw$/):return this.getNumber()/100*i.computeSize("x");case this.isString(/vh$/):return this.getNumber()/100*i.computeSize("y");case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return 15*this.getNumber();case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case this.isString(/%$/)&&o:return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*i.computeSize(n);default:var a=this.getNumber();return t&&a<1?a*i.computeSize(n):a}}},{key:"getMilliseconds",value:function(){return this.hasValue()?this.isString(/ms$/)?this.getNumber():1e3*this.getNumber():0}},{key:"getRadians",value:function(){if(!this.hasValue())return 0;switch(!0){case this.isString(/deg$/):return this.getNumber()*(Math.PI/180);case this.isString(/grad$/):return this.getNumber()*(Math.PI/200);case this.isString(/rad$/):return this.getNumber();default:return this.getNumber()*(Math.PI/180)}}},{key:"getDefinition",value:function(){var e=this.getString(),t=/#([^)'"]+)/.exec(e),r=(null===t||void 0===t?void 0:t[1])||e;return this.document.definitions.get(r)}},{key:"getFillStyleDefinition",value:function(e,t){var r=this.getDefinition();if(!r)return null;if("function"==typeof r.createGradient&&"getBoundingBox"in e)return r.createGradient(this.document.ctx,e,t);if("function"==typeof r.createPattern){if(r.getHrefAttribute().hasValue()){var n=r.getAttribute("patternTransform");(r=r.getHrefAttribute().getDefinition())&&n.hasValue()&&r.getAttribute("patternTransform",!0).setValue(n.value)}if(r)return r.createPattern(this.document.ctx,e,t)}return null}},{key:"getTextBaseline",value:function(){if(!this.hasValue())return null;var t=this.getString();return e.textBaselineMapping[t]||null}},{key:"addOpacity",value:function(t){for(var r=this.getColor(),n=r.length,o=0,i=0;i1&&void 0!==arguments[1]?arguments[1]:0,n=Rue(Hue(t),2),o=n[0],i=void 0===o?r:o,a=n[1];return new e(i,void 0===a?r:a)}},{key:"parseScale",value:function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=Rue(Hue(t),2),o=n[0],i=void 0===o?r:o,a=n[1];return new e(i,void 0===a?i:a)}},{key:"parsePath",value:function(t){for(var r=Hue(t),n=r.length,o=[],i=0;i0}},{key:"runEvents",value:function(){if(this.working){var e,t=this.screen,r=this.events,n=this.eventElements,o=t.ctx.canvas.style;o&&(o.cursor=""),r.forEach(function(t,r){var o=t.run;for(e=n[r];e;)o(e),e=e.parent}),this.events=[],this.eventElements=[]}}},{key:"checkPath",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;r.forEach(function(r,o){var i=r.x,a=r.y;!n[o]&&t.isPointInPath&&t.isPointInPath(i,a)&&(n[o]=e)})}}},{key:"checkBoundingBox",value:function(e,t){if(this.working&&t){var r=this.events,n=this.eventElements;r.forEach(function(r,o){var i=r.x,a=r.y;!n[o]&&t.isPointInBox(i,a)&&(n[o]=e)})}}},{key:"mapXY",value:function(e,t){for(var r=this.screen,n=r.window,o=r.ctx,i=new dle(e,t),a=o.canvas;a;)i.x-=a.offsetLeft,i.y-=a.offsetTop,a=a.offsetParent;return(null===n||void 0===n?void 0:n.scrollX)&&(i.x+=n.scrollX),(null===n||void 0===n?void 0:n.scrollY)&&(i.y+=n.scrollY),i}},{key:"onClick",value:function(e){var t=this.mapXY(e.clientX,e.clientY),r=t.x,n=t.y;this.events.push({type:"onclick",x:r,y:n,run:function(e){e.onClick&&e.onClick()}})}},{key:"onMouseMove",value:function(e){var t=this.mapXY(e.clientX,e.clientY),r=t.x,n=t.y;this.events.push({type:"onmousemove",x:r,y:n,run:function(e){e.onMouseMove&&e.onMouseMove()}})}}])}(),vle="undefined"!=typeof window?window:null,gle="undefined"!=typeof fetch?fetch.bind(void 0):void 0,ble=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.fetch,o=void 0===n?gle:n,i=r.window,a=void 0===i?vle:i;if(Mue(this,e),this.ctx=t,this.viewPort=new hle,this.mouse=new mle(this),this.animations=[],this.waits=[],this.frameDuration=0,this.isReadyLock=!1,this.isFirstRender=!0,this.intervalId=null,this.window=a,!o)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");this.fetch=o}return Bue(e,[{key:"wait",value:function(e){this.waits.push(e)}},{key:"ready",value:function(){return this.readyPromise?this.readyPromise:Promise.resolve()}},{key:"isReady",value:function(){if(this.isReadyLock)return!0;var e=this.waits.every(function(e){return e()});return e&&(this.waits=[],this.resolveReady&&this.resolveReady()),this.isReadyLock=e,e}},{key:"setDefaults",value:function(e){e.strokeStyle="rgba(0,0,0,0)",e.lineCap="butt",e.lineJoin="miter",e.miterLimit=4}},{key:"setViewBox",value:function(e){var t=e.document,r=e.ctx,n=e.aspectRatio,o=e.width,i=e.desiredWidth,a=e.height,s=e.desiredHeight,u=e.minX,l=void 0===u?0:u,c=e.minY,f=void 0===c?0:c,p=e.refX,h=e.refY,y=e.clip,d=void 0!==y&&y,m=e.clipX,v=void 0===m?0:m,g=e.clipY,b=void 0===g?0:g,A=Rue(zue(n).replace(/^defer\s/,"").split(" "),2),w=A[0],S=A[1],C=w||"xMidYMid",E=S||"meet",x=o/i,_=a/s,I=Math.min(x,_),O=Math.max(x,_),k=i,P=s;"meet"===E&&(k*=I,P*=I),"slice"===E&&(k*=O,P*=O);var T=new ple(t,"refX",p),j=new ple(t,"refY",h),M=T.hasValue()&&j.hasValue();if(M&&r.translate(-I*T.getPixels("x"),-I*j.getPixels("y")),d){var N=I*v,B=I*b;r.beginPath(),r.moveTo(N,B),r.lineTo(o,B),r.lineTo(o,a),r.lineTo(N,a),r.closePath(),r.clip()}if(!M){var L="meet"===E&&I===_,R="slice"===E&&O===_,D="meet"===E&&I===x,F="slice"===E&&O===x;C.startsWith("xMid")&&(L||R)&&r.translate(o/2-k/2,0),C.endsWith("YMid")&&(D||F)&&r.translate(0,a/2-P/2),C.startsWith("xMax")&&(L||R)&&r.translate(o-k,0),C.endsWith("YMax")&&(D||F)&&r.translate(0,a-P)}switch(!0){case"none"===C:r.scale(x,_);break;case"meet"===E:r.scale(I,I);break;case"slice"===E:r.scale(O,O)}r.translate(-l,-f)}},{key:"start",value:function(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.enableRedraw,i=void 0!==o&&o,a=n.ignoreMouse,s=void 0!==a&&a,u=n.ignoreAnimation,l=void 0!==u&&u,c=n.ignoreDimensions,f=void 0!==c&&c,p=n.ignoreClear,h=void 0!==p&&p,y=n.forceRedraw,d=n.scaleWidth,m=n.scaleHeight,v=n.offsetX,g=n.offsetY,b=this.mouse,A=1e3/e.FRAMERATE;if(this.isReadyLock=!1,this.frameDuration=A,this.readyPromise=new Promise(function(e){r.resolveReady=e}),this.isReady()&&this.render(t,f,h,d,m,v,g),i){var w=Date.now(),S=w,C=0,E=function(){w=Date.now(),(C=w-S)>=A&&(S=w-C%A,r.shouldUpdate(l,y)&&(r.render(t,f,h,d,m,v,g),b.runEvents())),r.intervalId=qse(E)};s||b.start(),this.intervalId=qse(E)}}},{key:"stop",value:function(){this.intervalId&&(qse.cancel(this.intervalId),this.intervalId=null),this.mouse.stop()}},{key:"shouldUpdate",value:function(e,t){if(!e){var r=this.frameDuration;if(this.animations.reduce(function(e,t){return t.update(r)||e},!1))return!0}return!("function"!=typeof t||!t())||(!(this.isReadyLock||!this.isReady())||!!this.mouse.hasEvents())}},{key:"render",value:function(e,t,r,n,o,i,a){var s=this.viewPort,u=this.ctx,l=this.isFirstRender,c=u.canvas;s.clear(),c.width&&c.height&&s.setCurrent(c.width,c.height);var f=e.getStyle("width"),p=e.getStyle("height");!t&&(l||"number"!=typeof n&&"number"!=typeof o)&&(f.hasValue()&&(c.width=f.getPixels("x"),c.style&&(c.style.width="".concat(c.width,"px"))),p.hasValue()&&(c.height=p.getPixels("y"),c.style&&(c.style.height="".concat(c.height,"px"))));var h=c.clientWidth||c.width,y=c.clientHeight||c.height;if(t&&f.hasValue()&&p.hasValue()&&(h=f.getPixels("x"),y=p.getPixels("y")),s.setCurrent(h,y),"number"==typeof i&&e.getAttribute("x",!0).setValue(i),"number"==typeof a&&e.getAttribute("y",!0).setValue(a),"number"==typeof n||"number"==typeof o){var d=Hue(e.getAttribute("viewBox").getString()),m=0,v=0;if("number"==typeof n){var g=e.getStyle("width");g.hasValue()?m=g.getPixels("x")/n:d[2]&&!isNaN(d[2])&&(m=d[2]/n)}if("number"==typeof o){var b=e.getStyle("height");b.hasValue()?v=b.getPixels("y")/o:d[3]&&!isNaN(d[3])&&(v=d[3]/o)}m||(m=v),v||(v=m),e.getAttribute("width",!0).setValue(n),e.getAttribute("height",!0).setValue(o);var A=e.getStyle("transform",!0,!0);A.setValue("".concat(A.getString()," scale(").concat(1/m,", ").concat(1/v,")"))}r||u.clearRect(0,0,h,y),e.render(u),l&&(this.isFirstRender=!1)}}])}();ble.defaultWindow=vle,ble.defaultFetch=gle,ble.FRAMERATE=30,ble.MAX_VIRTUAL_PIXELS=3e4;var Ale=ble.defaultFetch,wle="undefined"!=typeof DOMParser?DOMParser:void 0,Sle=function(){return Bue(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=t.fetch,n=void 0===r?Ale:r,o=t.DOMParser,i=void 0===o?wle:o;if(Mue(this,e),!n)throw new Error("Can't find 'fetch' in 'globalThis', please provide it via options");if(!i)throw new Error("Can't find 'DOMParser' in 'globalThis', please provide it via options");this.fetch=n,this.DOMParser=i},[{key:"parse",value:function(){var e=Uue(Que().mark(function e(t){return Que().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.startsWith("<")){e.next=2;break}return e.abrupt("return",this.parseFromString(t));case 2:return e.abrupt("return",this.load(t));case 3:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"parseFromString",value:function(e){var t=new this.DOMParser;try{return this.checkDocument(t.parseFromString(e,"image/svg+xml"))}catch(r){return this.checkDocument(t.parseFromString(e,"text/xml"))}}},{key:"checkDocument",value:function(e){var t=e.getElementsByTagName("parsererror")[0];if(t)throw new Error(t.textContent||"Unknown parse error");return e}},{key:"load",value:function(){var e=Uue(Que().mark(function e(t){var r,n;return Que().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fetch(t);case 2:return r=e.sent,e.next=5,r.text();case 5:return n=e.sent,e.abrupt("return",this.parseFromString(n));case 7:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()}])}(),Cle=function(){return Bue(function e(t,r){Mue(this,e),this.type="translate",this.point=dle.parse(r)},[{key:"apply",value:function(e){var t=this.point,r=t.x,n=t.y;e.translate(r||0,n||0)}},{key:"unapply",value:function(e){var t=this.point,r=t.x,n=t.y;e.translate(-1*r||0,-1*n||0)}},{key:"applyToPoint",value:function(e){var t=this.point,r=t.x,n=t.y;e.applyTransform([1,0,0,1,r||0,n||0])}}])}(),Ele=function(){return Bue(function e(t,r,n){Mue(this,e),this.type="rotate";var o=Hue(r);this.angle=new ple(t,"angle",o[0]),this.originX=n[0],this.originY=n[1],this.cx=o[1]||0,this.cy=o[2]||0},[{key:"apply",value:function(e){var t=this.cx,r=this.cy,n=this.originX,o=this.originY,i=this.angle,a=t+n.getPixels("x"),s=r+o.getPixels("y");e.translate(a,s),e.rotate(i.getRadians()),e.translate(-a,-s)}},{key:"unapply",value:function(e){var t=this.cx,r=this.cy,n=this.originX,o=this.originY,i=this.angle,a=t+n.getPixels("x"),s=r+o.getPixels("y");e.translate(a,s),e.rotate(-1*i.getRadians()),e.translate(-a,-s)}},{key:"applyToPoint",value:function(e){var t=this.cx,r=this.cy,n=this.angle.getRadians();e.applyTransform([1,0,0,1,t||0,r||0]),e.applyTransform([Math.cos(n),Math.sin(n),-Math.sin(n),Math.cos(n),0,0]),e.applyTransform([1,0,0,1,-t||0,-r||0])}}])}(),xle=function(){return Bue(function e(t,r,n){Mue(this,e),this.type="scale";var o=dle.parseScale(r);0!==o.x&&0!==o.y||(o.x=tle,o.y=tle),this.scale=o,this.originX=n[0],this.originY=n[1]},[{key:"apply",value:function(e){var t=this.scale,r=t.x,n=t.y,o=this.originX,i=this.originY,a=o.getPixels("x"),s=i.getPixels("y");e.translate(a,s),e.scale(r,n||r),e.translate(-a,-s)}},{key:"unapply",value:function(e){var t=this.scale,r=t.x,n=t.y,o=this.originX,i=this.originY,a=o.getPixels("x"),s=i.getPixels("y");e.translate(a,s),e.scale(1/r,1/n||r),e.translate(-a,-s)}},{key:"applyToPoint",value:function(e){var t=this.scale,r=t.x,n=t.y;e.applyTransform([r||0,0,0,n||0,0,0])}}])}(),_le=function(){return Bue(function e(t,r,n){var o;Mue(this,e),this.type="matrix",this.matrix=[(o=Hue(r))[0]||0,o[1]||0,o[2]||0,o[3]||0,o[4]||0,o[5]||0],this.originX=n[0],this.originY=n[1]},[{key:"apply",value:function(e){var t=this.originX,r=this.originY,n=this.matrix,o=t.getPixels("x"),i=r.getPixels("y");e.translate(o,i),e.transform(n[0],n[1],n[2],n[3],n[4],n[5]),e.translate(-o,-i)}},{key:"unapply",value:function(e){var t=this.originX,r=this.originY,n=this.matrix,o=n[0],i=n[2],a=n[4],s=n[1],u=n[3],l=n[5],c=1/(o*(1*u-0*l)-i*(1*s-0*l)+a*(0*s-0*u)),f=t.getPixels("x"),p=r.getPixels("y");e.translate(f,p),e.transform(c*(1*u-0*l),c*(0*l-1*s),c*(0*a-1*i),c*(1*o-0*a),c*(i*l-a*u),c*(a*s-o*l)),e.translate(-f,-p)}},{key:"applyToPoint",value:function(e){e.applyTransform(this.matrix)}}])}(),Ile=function(e){function t(e,r,n){var o;return Mue(this,t),(o=Oue(this,t,[e,r,n])).type="skew",o.angle=new ple(e,"angle",r),o}return Tue(t,_le),Bue(t)}(),Ole=function(e){function t(e,r,n){var o;return Mue(this,t),(o=Oue(this,t,[e,r,n])).type="skewX",o.matrix=[1,0,Math.tan(o.angle.getRadians()),1,0,0],o}return Tue(t,Ile),Bue(t)}(),kle=function(e){function t(e,r,n){var o;return Mue(this,t),(o=Oue(this,t,[e,r,n])).type="skewY",o.matrix=[1,Math.tan(o.angle.getRadians()),0,1,0,0],o}return Tue(t,Ile),Bue(t)}();var Ple=function(){function e(t,r,n){var o=this;Mue(this,e),this.document=t,this.transforms=[],zue(r).trim().replace(/\)([a-zA-Z])/g,") $1").replace(/\)(\s?,\s?)/g,") ").split(/\s(?=[a-z])/).forEach(function(t){if("none"!==t){var r=Rue(function(e){var t=Rue(e.split("("),2),r=t[0],n=void 0===r?"":r,o=t[1],i=void 0===o?"":o;return[n.trim(),i.trim().replace(")","")]}(t),2),i=r[0],a=r[1],s=e.transformTypes[i];s&&o.transforms.push(new s(o.document,a,n))}})}return Bue(e,[{key:"apply",value:function(e){this.transforms.forEach(function(t){return t.apply(e)})}},{key:"unapply",value:function(e){this.transforms.forEach(function(t){return t.unapply(e)})}},{key:"applyToPoint",value:function(e){this.transforms.forEach(function(t){return t.applyToPoint(e)})}}],[{key:"fromElement",value:function(t,r){var n=r.getStyle("transform",!1,!0);if(n.hasValue()){var o=Rue(r.getStyle("transform-origin",!1,!0).split(),2),i=o[0],a=o[1],s=void 0===a?i:a;if(i&&s){var u=[i,s];return new e(t,n.getString(),u)}}return null}}])}();Ple.transformTypes={translate:Cle,rotate:Ele,scale:xle,matrix:_le,skewX:Ole,skewY:kle};var Tle=function(){function e(t,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(Mue(this,e),this.document=t,this.node=r,this.captureTextNodes=o,this.type="",this.attributes=new Map,this.styles=new Map,this.stylesSpecificity=new Map,this.animationFrozen=!1,this.animationFrozenValue="",this.parent=null,this.children=[],r&&1===r.nodeType){if(Array.from(r.attributes).forEach(function(e){var r,o=(r=e.nodeName,que.test(r)?r.toLowerCase():r);n.attributes.set(o,new ple(t,o,e.value))}),this.addStylesFromStyleDefinition(),this.getAttribute("style").hasValue())this.getAttribute("style").getString().split(";").map(function(e){return e.trim()}).forEach(function(e){if(e){var r=Rue(e.split(":").map(function(e){return e.trim()}),2),o=r[0],i=r[1];o&&n.styles.set(o,new ple(t,o,i))}});var i=t.definitions,a=this.getAttribute("id");a.hasValue()&&(i.has(a.getString())||i.set(a.getString(),this)),Array.from(r.childNodes).forEach(function(e){if(1===e.nodeType)n.addChild(e);else if(o&&(3===e.nodeType||4===e.nodeType)){var r=t.createTextNode(e);r.getText().length>0&&n.addChild(r)}})}}return Bue(e,[{key:"getAttribute",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this.attributes.get(e);if(!r&&t){var n=new ple(this.document,e,"");return this.attributes.set(e,n),n}return r||ple.empty(this.document)}},{key:"getHrefAttribute",value:function(){var e,t,r=Iue(this.attributes);try{for(r.s();!(t=r.n()).done;){var n=Rue(t.value,2),o=n[0],i=n[1];if("href"===o||o.endsWith(":href")){e=i;break}}}catch(e){r.e(e)}finally{r.f()}return e||ple.empty(this.document)}},{key:"getStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.styles.get(e);if(n)return n;var o=this.getAttribute(e);if(o.hasValue())return this.styles.set(e,o),o;if(!r){var i=this.parent;if(i){var a=i.getStyle(e);if(a.hasValue())return a}}if(t){var s=new ple(this.document,e,"");return this.styles.set(e,s),s}return ple.empty(this.document)}},{key:"render",value:function(e){if("none"!==this.getStyle("display").getString()&&"hidden"!==this.getStyle("visibility").getString()){if(e.save(),this.getStyle("mask").hasValue()){var t=this.getStyle("mask").getDefinition();t&&(this.applyEffects(e),t.apply(e,this))}else if("none"!==this.getStyle("filter").getValue("none")){var r=this.getStyle("filter").getDefinition();r&&(this.applyEffects(e),r.apply(e,this))}else this.setContext(e),this.renderChildren(e),this.clearContext(e);e.restore()}}},{key:"setContext",value:function(e){}},{key:"applyEffects",value:function(e){var t=Ple.fromElement(this.document,this);t&&t.apply(e);var r=this.getStyle("clip-path",!1,!0);if(r.hasValue()){var n=r.getDefinition();n&&n.apply(e)}}},{key:"clearContext",value:function(e){}},{key:"renderChildren",value:function(e){this.children.forEach(function(t){t.render(e)})}},{key:"addChild",value:function(t){var r=t instanceof e?t:this.document.createElement(t);r.parent=this,e.ignoreChildTypes.includes(r.type)||this.children.push(r)}},{key:"matchesSelector",value:function(e){var t,r=this.node;if("function"==typeof r.matches)return r.matches(e);var n=null===(t=r.getAttribute)||void 0===t?void 0:t.call(r,"class");return!(!n||""===n)&&n.split(" ").some(function(t){return".".concat(t)===e})}},{key:"addStylesFromStyleDefinition",value:function(){var e,t=this.document,r=t.styles,n=t.stylesSpecificity,o=Iue(r);try{for(o.s();!(e=o.n()).done;){var i=Rue(e.value,2),a=i[0],s=i[1];if(!a.startsWith("@")&&this.matchesSelector(a)){var u=n.get(a);if(s){var l,c=Iue(s);try{for(c.s();!(l=c.n()).done;){var f=Rue(l.value,2),p=f[0],h=f[1],y=this.stylesSpecificity.get(p);void 0===y&&(y="000"),u&&u>=y&&(h&&this.styles.set(p,h),this.stylesSpecificity.set(p,u))}}catch(e){c.e(e)}finally{c.f()}}}}}catch(e){o.e(e)}finally{o.f()}}},{key:"removeStyles",value:function(e,t){return t.reduce(function(t,r){var n=e.getStyle(r);if(!n.hasValue())return t;var o=n.getString();return n.setValue(""),[].concat(_ue(t),[[r,o]])},[])}},{key:"restoreStyles",value:function(e,t){t.forEach(function(t){var r=Rue(t,2),n=r[0],o=r[1];e.getStyle(n,!0).setValue(o)})}},{key:"isFirstChild",value:function(){var e;return 0===(null===(e=this.parent)||void 0===e?void 0:e.children.indexOf(this))}}])}();Tle.ignoreChildTypes=["title"];var jle=function(e){function t(e,r,n){return Mue(this,t),Oue(this,t,[e,r,n])}return Tue(t,Tle),Bue(t)}();function Mle(e){var t=e.trim();return/^('|")/.test(t)?t:'"'.concat(t,'"')}var Nle=function(){function e(t,r,n,o,i,a){Mue(this,e);var s=a?"string"==typeof a?e.parse(a):a:{};this.fontFamily=i||s.fontFamily,this.fontSize=o||s.fontSize,this.fontStyle=t||s.fontStyle,this.fontWeight=n||s.fontWeight,this.fontVariant=r||s.fontVariant}return Bue(e,[{key:"toString",value:function(){return[function(e){if(!e)return"";var t=e.trim().toLowerCase();switch(t){case"normal":case"italic":case"oblique":case"inherit":case"initial":case"unset":return t;default:return/^oblique\s+(-|)\d+deg$/.test(t)?t:""}}(this.fontStyle),this.fontVariant,function(e){if(!e)return"";var t=e.trim().toLowerCase();switch(t){case"normal":case"bold":case"lighter":case"bolder":case"inherit":case"initial":case"unset":return t;default:return/^[\d.]+$/.test(t)?t:""}}(this.fontWeight),this.fontSize,(e=this.fontFamily,"undefined"==typeof process?e:e.trim().split(",").map(Mle).join(","))].join(" ").trim();var e}}],[{key:"parse",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",r=arguments.length>1?arguments[1]:void 0,n="",o="",i="",a="",s="",u={fontSize:!1,fontStyle:!1,fontWeight:!1,fontVariant:!1};return zue(t).trim().split(" ").forEach(function(t){switch(!0){case!u.fontStyle&&e.styles.includes(t):"inherit"!==t&&(n=t),u.fontStyle=!0;break;case!u.fontVariant&&e.variants.includes(t):"inherit"!==t&&(o=t),u.fontStyle=!0,u.fontVariant=!0;break;case!u.fontWeight&&e.weights.includes(t):"inherit"!==t&&(i=t),u.fontStyle=!0,u.fontVariant=!0,u.fontWeight=!0;break;case!u.fontSize:"inherit"!==t&&(a=t.split("/")[0]||""),u.fontStyle=!0,u.fontVariant=!0,u.fontWeight=!0,u.fontSize=!0;break;default:"inherit"!==t&&(s+=t)}}),new e(n,o,i,a,s,r)}}])}();Nle.styles="normal|italic|oblique|inherit",Nle.variants="normal|small-caps|inherit",Nle.weights="normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit";var Ble=function(){return Bue(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Number.NaN,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.NaN,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:Number.NaN,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Number.NaN;Mue(this,e),this.x1=t,this.y1=r,this.x2=n,this.y2=o,this.addPoint(t,r),this.addPoint(n,o)},[{key:"x",get:function(){return this.x1}},{key:"y",get:function(){return this.y1}},{key:"width",get:function(){return this.x2-this.x1}},{key:"height",get:function(){return this.y2-this.y1}},{key:"addPoint",value:function(e,t){void 0!==e&&((isNaN(this.x1)||isNaN(this.x2))&&(this.x1=e,this.x2=e),ethis.x2&&(this.x2=e)),void 0!==t&&((isNaN(this.y1)||isNaN(this.y2))&&(this.y1=t,this.y2=t),tthis.y2&&(this.y2=t))}},{key:"addX",value:function(e){this.addPoint(e,0)}},{key:"addY",value:function(e){this.addPoint(0,e)}},{key:"addBoundingBox",value:function(e){if(e){var t=e.x1,r=e.y1,n=e.x2,o=e.y2;this.addPoint(t,r),this.addPoint(n,o)}}},{key:"sumCubic",value:function(e,t,r,n,o){return Math.pow(1-e,3)*t+3*Math.pow(1-e,2)*e*r+3*(1-e)*Math.pow(e,2)*n+Math.pow(e,3)*o}},{key:"bezierCurveAdd",value:function(e,t,r,n,o){var i=6*t-12*r+6*n,a=-3*t+9*r-9*n+3*o,s=3*r-3*t;if(0!==a){var u=Math.pow(i,2)-4*s*a;if(!(u<0)){var l=(-i+Math.sqrt(u))/(2*a);01&&void 0!==arguments[1]&&arguments[1];if(!t){var r=this.getStyle("fill"),n=this.getStyle("fill-opacity"),o=this.getStyle("stroke"),i=this.getStyle("stroke-opacity");if(r.isUrlDefinition()){var a=r.getFillStyleDefinition(this,n);a&&(e.fillStyle=a)}else if(r.hasValue()){"currentColor"===r.getString()&&r.setValue(this.getStyle("color").getColor());var s=r.getColor();"inherit"!==s&&(e.fillStyle="none"===s?"rgba(0,0,0,0)":s)}if(n.hasValue()){var u=new ple(this.document,"fill",e.fillStyle).addOpacity(n).getColor();e.fillStyle=u}if(o.isUrlDefinition()){var l=o.getFillStyleDefinition(this,i);l&&(e.strokeStyle=l)}else if(o.hasValue()){"currentColor"===o.getString()&&o.setValue(this.getStyle("color").getColor());var c=o.getString();"inherit"!==c&&(e.strokeStyle="none"===c?"rgba(0,0,0,0)":c)}if(i.hasValue()){var f=new ple(this.document,"stroke",e.strokeStyle).addOpacity(i).getString();e.strokeStyle=f}var p=this.getStyle("stroke-width");if(p.hasValue()){var h=p.getPixels();e.lineWidth=h||tle}var y=this.getStyle("stroke-linecap"),d=this.getStyle("stroke-linejoin"),m=this.getStyle("stroke-miterlimit"),v=this.getStyle("stroke-dasharray"),g=this.getStyle("stroke-dashoffset");if(y.hasValue()&&(e.lineCap=y.getString()),d.hasValue()&&(e.lineJoin=d.getString()),m.hasValue()&&(e.miterLimit=m.getNumber()),v.hasValue()&&"none"!==v.getString()){var b=Hue(v.getString());void 0!==e.setLineDash?e.setLineDash(b):void 0!==e.webkitLineDash?e.webkitLineDash=b:void 0===e.mozDash||1===b.length&&0===b[0]||(e.mozDash=b);var A=g.getPixels();void 0!==e.lineDashOffset?e.lineDashOffset=A:void 0!==e.webkitLineDashOffset?e.webkitLineDashOffset=A:void 0!==e.mozDashOffset&&(e.mozDashOffset=A)}}if(this.modifiedEmSizeStack=!1,void 0!==e.font){var w=this.getStyle("font"),S=this.getStyle("font-style"),C=this.getStyle("font-variant"),E=this.getStyle("font-weight"),x=this.getStyle("font-size"),_=this.getStyle("font-family"),I=new Nle(S.getString(),C.getString(),E.getString(),x.hasValue()?"".concat(x.getPixels(!0),"px"):"",_.getString(),Nle.parse(w.getString(),e.font));S.setValue(I.fontStyle),C.setValue(I.fontVariant),E.setValue(I.fontWeight),x.setValue(I.fontSize),_.setValue(I.fontFamily),e.font=I.toString(),x.isPixels()&&(this.document.emSize=x.getPixels(),this.modifiedEmSizeStack=!0)}t||(this.applyEffects(e),e.globalAlpha=this.calculateOpacity())}},{key:"clearContext",value:function(e){Eue(t,"clearContext",this,3)([e]),this.modifiedEmSizeStack&&this.document.popEmSize()}}])}(),Rle=function(e){function t(e,r,n){var o;return Mue(this,t),(o=Oue(this,t,[e,r,(this instanceof t?this.constructor:void 0)===t||n])).type="text",o.x=0,o.y=0,o.leafTexts=[],o.textChunkStart=0,o.minX=Number.POSITIVE_INFINITY,o.maxX=Number.NEGATIVE_INFINITY,o.measureCache=-1,o}return Tue(t,Lle),Bue(t,[{key:"setContext",value:function(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];Eue(t,"setContext",this,3)([e,r]);var n=this.getStyle("dominant-baseline").getTextBaseline()||this.getStyle("alignment-baseline").getTextBaseline();n&&(e.textBaseline=n)}},{key:"initializeCoordinates",value:function(){this.x=0,this.y=0,this.leafTexts=[],this.textChunkStart=0,this.minX=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY}},{key:"getBoundingBox",value:function(e){var t=this;if("text"!==this.type)return this.getTElementBoundingBox(e);this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(e);var r=null;return this.children.forEach(function(n,o){var i=t.getChildBoundingBox(e,t,t,o);r?r.addBoundingBox(i):r=i}),r}},{key:"getFontSize",value:function(){var e=this.document,t=this.parent,r=Nle.parse(e.ctx.font).fontSize;return t.getStyle("font-size").getNumber(r)}},{key:"getTElementBoundingBox",value:function(e){var t=this.getFontSize();return new Ble(this.x,this.y-t,this.x+this.measureText(e),this.y)}},{key:"getGlyph",value:function(e,t,r){var n,o=t[r];if(e.isArabic){var i,a=t.length,s=t[r-1],u=t[r+1],l="isolated";(0===r||" "===s)&&r0&&" "!==s&&r0&&" "!==s&&(r===a-1||" "===u)&&(l="initial"),n=(null===(i=e.arabicGlyphs.get(o))||void 0===i?void 0:i.get(l))||e.glyphs.get(o)}else n=e.glyphs.get(o);return n||(n=e.missingGlyph),n}},{key:"getText",value:function(){return""}},{key:"getTextFromNode",value:function(e){var t=e||this.node,r=Array.from(t.parentNode.childNodes),n=r.indexOf(t),o=r.length-1,i=zue(t.textContent||"");return 0===n&&(i=i.replace(/^[\n \t]+/,"")),n===o&&(i=function(e){return e.replace(/[\n \t]+$/,"")}(i)),i}},{key:"renderChildren",value:function(e){var t=this;if("text"===this.type){this.initializeCoordinates(),this.adjustChildCoordinatesRecursive(e),this.children.forEach(function(r,n){t.renderChild(e,t,t,n)});var r=this.document.screen.mouse;r.isWorking()&&r.checkBoundingBox(this,this.getBoundingBox(e))}else this.renderTElementChildren(e)}},{key:"renderTElementChildren",value:function(e){var t=this.document,r=this.parent,n=this.getText(),o=r.getStyle("font-family").getDefinition();if(o)for(var i=o.fontFace.unitsPerEm,a=Nle.parse(t.ctx.font),s=r.getStyle("font-size").getNumber(a.fontSize),u=r.getStyle("font-style").getString(a.fontStyle),l=s/i,c=o.isRTL?n.split("").reverse().join(""):n,f=Hue(r.getAttribute("dx").getString()),p=c.length,h=0;h=this.leafTexts.length)){var e=this.leafTexts[this.textChunkStart],t=e.getStyle("text-anchor").getString("start"),r=0;r="start"===t?e.x-this.minX:"end"===t?e.x-this.maxX:e.x-(this.minX+this.maxX)/2;for(var n=this.textChunkStart;n0?o.children.forEach(function(r,n){t.adjustChildCoordinatesRecursiveCore(e,t,o,n)}):this.adjustChildCoordinates(e,t,r,n)}},{key:"adjustChildCoordinates",value:function(e,t,r,n){var o=r.children[n];if("function"!=typeof o.measureText)return o;e.save(),o.setContext(e,!0);var i=o.getAttribute("x"),a=o.getAttribute("y"),s=o.getAttribute("dx"),u=o.getAttribute("dy"),l=o.getStyle("font-family").getDefinition(),c=Boolean(null===l||void 0===l?void 0:l.isRTL);0===n&&(i.hasValue()||i.setValue(o.getInheritedAttribute("x")),a.hasValue()||a.setValue(o.getInheritedAttribute("y")),s.hasValue()||s.setValue(o.getInheritedAttribute("dx")),u.hasValue()||u.setValue(o.getInheritedAttribute("dy")));var f=o.measureText(e);return c&&(t.x-=f),i.hasValue()?(t.applyAnchoring(),o.x=i.getPixels("x"),s.hasValue()&&(o.x+=s.getPixels("x"))):(s.hasValue()&&(t.x+=s.getPixels("x")),o.x=t.x),t.x=o.x,c||(t.x+=f),a.hasValue()?(o.y=a.getPixels("y"),u.hasValue()&&(o.y+=u.getPixels("y"))):(u.hasValue()&&(t.y+=u.getPixels("y")),o.y=t.y),t.y=o.y,t.leafTexts.push(o),t.minX=Math.min(t.minX,o.x,o.x+f),t.maxX=Math.max(t.maxX,o.x,o.x+f),o.clearContext(e),e.restore(),o}},{key:"getChildBoundingBox",value:function(e,t,r,n){var o=r.children[n];if("function"!=typeof o.getBoundingBox)return null;var i=o.getBoundingBox(e);return i&&o.children.forEach(function(r,n){var a=t.getChildBoundingBox(e,t,o,n);i.addBoundingBox(a)}),i}},{key:"renderChild",value:function(e,t,r,n){var o=r.children[n];o.render(e),o.children.forEach(function(r,n){t.renderChild(e,t,o,n)})}},{key:"measureText",value:function(e){var t=this.measureCache;if(~t)return t;var r=this.getText(),n=this.measureTargetText(e,r);return this.measureCache=n,n}},{key:"measureTargetText",value:function(e,t){if(!t.length)return 0;var r=this.parent,n=r.getStyle("font-family").getDefinition();if(n){for(var o=this.getFontSize(),i=n.isRTL?t.split("").reverse().join(""):t,a=Hue(r.getAttribute("dx").getString()),s=i.length,u=0,l=0;l0?"":o.getTextFromNode(),o}return Tue(t,Rle),Bue(t,[{key:"getText",value:function(){return this.text}}])}(),Fle=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o=this.commands.length-1}},{key:"next",value:function(){var e=this.commands[++this.i];return this.previousCommand=this.command,this.command=e,e}},{key:"getPoint",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"x",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"y",r=new dle(this.command[e],this.command[t]);return this.makeAbsolute(r)}},{key:"getAsControlPoint",value:function(e,t){var r=this.getPoint(e,t);return this.control=r,r}},{key:"getAsCurrentPoint",value:function(e,t){var r=this.getPoint(e,t);return this.current=r,r}},{key:"getReflectedControlPoint",value:function(){var e=this.previousCommand.type;if(e!==pue.CURVE_TO&&e!==pue.SMOOTH_CURVE_TO&&e!==pue.QUAD_TO&&e!==pue.SMOOTH_QUAD_TO)return this.current;var t=this.current,r=t.x,n=t.y,o=this.control,i=o.x,a=o.y;return new dle(2*r-i,2*n-a)}},{key:"makeAbsolute",value:function(e){if(this.command.relative){var t=this.current,r=t.x,n=t.y;e.x+=r,e.y+=n}return e}},{key:"addMarker",value:function(e,t,r){var n=this.points,o=this.angles;r&&o.length>0&&!o[o.length-1]&&(o[o.length-1]=n[n.length-1].angleTo(r)),this.addMarkerAngle(e,t?t.angleTo(e):null)}},{key:"addMarkerAngle",value:function(e,t){this.points.push(e),this.angles.push(t)}},{key:"getMarkerPoints",value:function(){return this.points}},{key:"getMarkerAngles",value:function(){for(var e=this.angles,t=e.length,r=0;rs?a:s,v=a>s?1:a/s,g=a>s?s/a:1;e.translate(c.x,c.y),e.rotate(l),e.scale(v,g),e.arc(0,0,m,f,f+p,Boolean(1-u)),e.scale(1/v,1/g),e.rotate(-l),e.translate(-c.x,-c.y)}}},{key:"pathZ",value:function(e,r){t.pathZ(this.pathParser),e&&r.x1!==r.x2&&r.y1!==r.y2&&e.closePath()}}],[{key:"pathM",value:function(e){var t=e.getAsCurrentPoint();return e.start=e.current,{point:t}}},{key:"pathL",value:function(e){return{current:e.current,point:e.getAsCurrentPoint()}}},{key:"pathH",value:function(e){var t=e.current,r=e.command,n=new dle((r.relative?t.x:0)+r.x,t.y);return e.current=n,{current:t,point:n}}},{key:"pathV",value:function(e){var t=e.current,r=e.command,n=new dle(t.x,(r.relative?t.y:0)+r.y);return e.current=n,{current:t,point:n}}},{key:"pathC",value:function(e){return{current:e.current,point:e.getPoint("x1","y1"),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathS",value:function(e){return{current:e.current,point:e.getReflectedControlPoint(),controlPoint:e.getAsControlPoint("x2","y2"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathQ",value:function(e){return{current:e.current,controlPoint:e.getAsControlPoint("x1","y1"),currentPoint:e.getAsCurrentPoint()}}},{key:"pathT",value:function(e){var t=e.current,r=e.getReflectedControlPoint();return e.control=r,{current:t,controlPoint:r,currentPoint:e.getAsCurrentPoint()}}},{key:"pathA",value:function(e){var t=e.current,r=e.command,n=r.rX,o=r.rY,i=r.xRot,a=r.lArcFlag,s=r.sweepFlag,u=i*(Math.PI/180),l=e.getAsCurrentPoint(),c=new dle(Math.cos(u)*(t.x-l.x)/2+Math.sin(u)*(t.y-l.y)/2,-Math.sin(u)*(t.x-l.x)/2+Math.cos(u)*(t.y-l.y)/2),f=Math.pow(c.x,2)/Math.pow(n,2)+Math.pow(c.y,2)/Math.pow(o,2);f>1&&(n*=Math.sqrt(f),o*=Math.sqrt(f));var p=(a===s?-1:1)*Math.sqrt((Math.pow(n,2)*Math.pow(o,2)-Math.pow(n,2)*Math.pow(c.y,2)-Math.pow(o,2)*Math.pow(c.x,2))/(Math.pow(n,2)*Math.pow(c.y,2)+Math.pow(o,2)*Math.pow(c.x,2)));isNaN(p)&&(p=0);var h=new dle(p*n*c.y/o,p*-o*c.x/n),y=new dle((t.x+l.x)/2+Math.cos(u)*h.x-Math.sin(u)*h.y,(t.y+l.y)/2+Math.sin(u)*h.x+Math.cos(u)*h.y),d=ole([1,0],[(c.x-h.x)/n,(c.y-h.y)/o]),m=[(c.x-h.x)/n,(c.y-h.y)/o],v=[(-c.x-h.x)/n,(-c.y-h.y)/o],g=ole(m,v);return nle(m,v)<=-1&&(g=Math.PI),nle(m,v)>=1&&(g=0),{currentPoint:l,rX:n,rY:o,sweepFlag:s,xAxisRotation:u,centp:y,a1:d,ad:g}}},{key:"pathZ",value:function(e){e.current=e.start}}])}(),Ule=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.getAttribute("width",!0),o=this.getAttribute("height",!0),i=this.getAttribute("viewBox"),a=this.getAttribute("style"),s=n.getNumber(0),u=o.getNumber(0);if(r)if("string"==typeof r)this.getAttribute("preserveAspectRatio",!0).setValue(r);else{var l=this.getAttribute("preserveAspectRatio");l.hasValue()&&l.setValue(l.getString().replace(/^\s*(\S.*\S)\s*$/,"$1"))}if(n.setValue(e),o.setValue(t),i.hasValue()||i.setValue("0 0 ".concat(s||e," ").concat(u||t)),a.hasValue()){var c=this.getStyle("width"),f=this.getStyle("height");c.hasValue()&&c.setValue("".concat(e,"px")),f.hasValue()&&f.setValue("".concat(t,"px"))}}}])}(),zle=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&n>0&&(e.moveTo(t+s,r),e.lineTo(t+n-s,r),e.bezierCurveTo(t+n-s+l*s,r,t+n,r+u-l*u,t+n,r+u),e.lineTo(t+n,r+o-u),e.bezierCurveTo(t+n,r+o-u+l*u,t+n-s+l*s,r+o,t+n-s,r+o),e.lineTo(t+s,r+o),e.bezierCurveTo(t+s-l*s,r+o,t,r+o-u+l*u,t,r+o-u),e.lineTo(t,r+u),e.bezierCurveTo(t,r+u-l*u,t+s-l*s,r,t+s,r),e.closePath())}return new Ble(t,r,t+n,r+o)}},{key:"getMarkers",value:function(){return null}}])}(),Hle=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&(e.beginPath(),e.arc(t,r,n,0,2*Math.PI,!1),e.closePath()),new Ble(t-n,r-n,t+n,r+n)}},{key:"getMarkers",value:function(){return null}}])}(),qle=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&n>0&&(e.beginPath(),e.moveTo(o+r,i),e.bezierCurveTo(o+r,i+t*n,o+t*r,i+n,o,i+n),e.bezierCurveTo(o-t*r,i+n,o-r,i+t*n,o-r,i),e.bezierCurveTo(o-r,i-t*n,o-t*r,i-n,o,i-n),e.bezierCurveTo(o+t*r,i-n,o+r,i-t*n,o+r,i),e.closePath()),new Ble(o-r,i-n,o+r,i+n)}},{key:"getMarkers",value:function(){return null}}])}(),Vle=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o0&&r.push([e[e.length-1],r[r.length-1][1]]),r}}])}(),Yle=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;othis.maxDuration){var n=this.getAttribute("fill").getString("remove");if("indefinite"===this.getAttribute("repeatCount").getString()||"indefinite"===this.getAttribute("repeatDur").getString())this.duration=0;else if("freeze"!==n||this.frozen){if("remove"===n&&!this.removed)return this.removed=!0,t&&r&&r.setValue(t.animationFrozen?t.animationFrozenValue:this.initialValue),!0}else this.frozen=!0,t&&r&&(t.animationFrozen=!0,t.animationFrozenValue=r.getString());return!1}this.duration+=e;var o=!1;if(this.begin0&&Array.from(i).every(function(e){return 3===e.nodeType});return o.hasText=s,o.text=s?o.getTextFromNode(a):"",o}return Tue(t,Rle),Bue(t,[{key:"getText",value:function(){return this.text}},{key:"renderChildren",value:function(e){if(this.hasText){Eue(t,"renderChildren",this,3)([e]);var r=this.document,n=this.x,o=this.y,i=r.screen.mouse,a=new ple(r,"fontSize",Nle.parse(r.ctx.font).fontSize);i.isWorking()&&i.checkBoundingBox(this,new Ble(n,o-a.getPixels("y"),n+this.measureText(e),o))}else if(this.children.length>0){var s=new Zle(this.document);s.children=this.children,s.parent=this,s.render(e)}}},{key:"onClick",value:function(){var e=this.document.window;e&&e.open(this.getHrefAttribute().getString())}},{key:"onMouseMove",value:function(){this.document.ctx.canvas.style.cursor="pointer"}}])}(),pce=function(e){function t(e,r,n){var o;Mue(this,t),(o=Oue(this,t,[e,r,n])).type="textPath",o.textWidth=0,o.textHeight=0,o.pathLength=-1,o.glyphInfo=null,o.letterSpacingCache=[],o.measuresCache=new Map([["",0]]);var i=o.getHrefAttribute().getDefinition();return o.text=o.getTextFromNode(),o.dataArray=o.parsePathData(i),o}return Tue(t,Rle),Bue(t,[{key:"getText",value:function(){return this.text}},{key:"path",value:function(e){var t=this.dataArray;e&&e.beginPath(),t.forEach(function(t){var r=t.type,n=t.points;switch(r){case Qle.LINE_TO:e&&e.lineTo(n[0],n[1]);break;case Qle.MOVE_TO:e&&e.moveTo(n[0],n[1]);break;case Qle.CURVE_TO:e&&e.bezierCurveTo(n[0],n[1],n[2],n[3],n[4],n[5]);break;case Qle.QUAD_TO:e&&e.quadraticCurveTo(n[0],n[1],n[2],n[3]);break;case Qle.ARC:var o=Rue(n,8),i=o[0],a=o[1],s=o[2],u=o[3],l=o[4],c=o[5],f=o[6],p=o[7],h=s>u?s:u,y=s>u?1:s/u,d=s>u?u/s:1;e&&(e.translate(i,a),e.rotate(f),e.scale(y,d),e.arc(0,0,h,l,l+c,Boolean(1-p)),e.scale(1/y,1/d),e.rotate(-f),e.translate(-i,-a));break;case Qle.CLOSE_PATH:e&&e.closePath()}})}},{key:"renderChildren",value:function(e){this.setTextData(e),e.save();var t=this.parent.getStyle("text-decoration").getString(),r=this.getFontSize(),n=this.glyphInfo,o=e.fillStyle;"underline"===t&&e.beginPath(),n.forEach(function(n,o){var i=n.p0,a=n.p1,s=n.rotation,u=n.text;e.save(),e.translate(i.x,i.y),e.rotate(s),e.fillStyle&&e.fillText(u,0,0),e.strokeStyle&&e.strokeText(u,0,0),e.restore(),"underline"===t&&(0===o&&e.moveTo(i.x,i.y+r/8),e.lineTo(a.x,a.y+r/5))}),"underline"===t&&(e.lineWidth=r/20,e.strokeStyle=o,e.stroke(),e.closePath()),e.restore()}},{key:"getLetterSpacingAt",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return this.letterSpacingCache[e]||0}},{key:"findSegmentToFitChar",value:function(e,t,r,n,o,i,a,s,u){var l=i,c=this.measureText(e,s);" "===s&&"justify"===t&&r-1&&(l+=this.getLetterSpacingAt(u));var f=this.textHeight/20,p=this.getEquidistantPointOnPath(l,f,0),h=this.getEquidistantPointOnPath(l+c,f,0),y={p0:p,p1:h},d=p&&h?Math.atan2(h.y-p.y,h.x-p.x):0;if(a){var m=Math.cos(Math.PI/2+d)*a,v=Math.cos(-d)*a;y.p0=Sue(Sue({},p),{},{x:p.x+m,y:p.y+v}),y.p1=Sue(Sue({},h),{},{x:h.x+m,y:h.y+v})}return{offset:l+=c,segment:y,rotation:d}}},{key:"measureText",value:function(e,t){var r=this.measuresCache,n=t||this.getText();if(r.has(n))return r.get(n);var o=this.measureTargetText(e,n);return r.set(n,o),o}},{key:"setTextData",value:function(e){var t=this;if(!this.glyphInfo){var r=this.getText(),n=r.split(""),o=r.split(" ").length-1,i=this.parent.getAttribute("dx").split().map(function(e){return e.getPixels("x")}),a=this.parent.getAttribute("dy").getPixels("y"),s=this.parent.getStyle("text-anchor").getString("start"),u=this.getStyle("letter-spacing"),l=this.parent.getStyle("letter-spacing"),c=0;u.hasValue()&&"inherit"!==u.getValue()?u.hasValue()&&"initial"!==u.getValue()&&"unset"!==u.getValue()&&(c=u.getPixels()):c=l.getPixels();var f=[],p=r.length;this.letterSpacingCache=f;for(var h=0;h0&&(u-=2*Math.PI),1===o&&u<0&&(u+=2*Math.PI),[a.x,a.y,r,n,s,u,i,o]}},{key:"calcLength",value:function(e,t,r,n){var o=0,i=null,a=null,s=0;switch(r){case Qle.LINE_TO:return this.getLineLength(e,t,n[0],n[1]);case Qle.CURVE_TO:for(o=0,i=this.getPointOnCubicBezier(0,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),s=.01;s<=1;s+=.01)a=this.getPointOnCubicBezier(s,e,t,n[0],n[1],n[2],n[3],n[4],n[5]),o+=this.getLineLength(i.x,i.y,a.x,a.y),i=a;return o;case Qle.QUAD_TO:for(o=0,i=this.getPointOnQuadraticBezier(0,e,t,n[0],n[1],n[2],n[3]),s=.01;s<=1;s+=.01)a=this.getPointOnQuadraticBezier(s,e,t,n[0],n[1],n[2],n[3]),o+=this.getLineLength(i.x,i.y,a.x,a.y),i=a;return o;case Qle.ARC:o=0;var u=n[4],l=n[5],c=n[4]+l,f=Math.PI/180;if(Math.abs(u-c)c;s-=f)a=this.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],s,0),o+=this.getLineLength(i.x,i.y,a.x,a.y),i=a;else for(s=u+f;s5&&void 0!==arguments[5]?arguments[5]:t,a=arguments.length>6&&void 0!==arguments[6]?arguments[6]:r,s=(o-r)/(n-t+tle),u=Math.sqrt(e*e/(1+s*s));nt)return null;var o,i=Iue(this.dataArray);try{for(i.s();!(o=i.n()).done;){var a=o.value;if(!a||!(a.pathLength<5e-5||r+a.pathLength+5e-5=0&&u>f)break;n=this.getPointOnEllipticalArc(a.points[0],a.points[1],a.points[2],a.points[3],u,a.points[6]);break;case Qle.CURVE_TO:(u=s/a.pathLength)>1&&(u=1),n=this.getPointOnCubicBezier(u,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3],a.points[4],a.points[5]);break;case Qle.QUAD_TO:(u=s/a.pathLength)>1&&(u=1),n=this.getPointOnQuadraticBezier(u,a.start.x,a.start.y,a.points[0],a.points[1],a.points[2],a.points[3])}if(n)return n;break}r+=a.pathLength}}catch(e){i.e(e)}finally{i.f()}return null}},{key:"getLineLength",value:function(e,t,r,n){return Math.sqrt((r-e)*(r-e)+(n-t)*(n-t))}},{key:"getPathLength",value:function(){return-1===this.pathLength&&(this.pathLength=this.dataArray.reduce(function(e,t){return t.pathLength>0?e+t.pathLength:e},0)),this.pathLength}},{key:"getPointOnCubicBezier",value:function(e,t,r,n,o,i,a,s,u){return{x:s*ile(e)+i*ale(e)+n*sle(e)+t*ule(e),y:u*ile(e)+a*ale(e)+o*sle(e)+r*ule(e)}}},{key:"getPointOnQuadraticBezier",value:function(e,t,r,n,o,i,a){return{x:i*lle(e)+n*cle(e)+t*fle(e),y:a*lle(e)+o*cle(e)+r*fle(e)}}},{key:"getPointOnEllipticalArc",value:function(e,t,r,n,o,i){var a=Math.cos(i),s=Math.sin(i),u=r*Math.cos(o),l=n*Math.sin(o);return{x:e+(u*a-l*s),y:t+(u*s+l*a)}}},{key:"buildEquidistantCache",value:function(e,t){var r=this.getPathLength(),n=t||.25,o=e||r/100;if(!this.equidistantCache||this.equidistantCache.step!==o||this.equidistantCache.precision!==n){this.equidistantCache={step:o,precision:n,points:[]};for(var i=0,a=0;a<=r;a+=n){var s=this.getPointOnPath(a),u=this.getPointOnPath(a+n);s&&u&&((i+=this.getLineLength(s.x,s.y,u.x,u.y))>=o&&(this.equidistantCache.points.push({x:s.x,y:s.y,distance:a}),i-=o))}}}},{key:"getEquidistantPointOnPath",value:function(e,t,r){if(this.buildEquidistantCache(t,r),e<0||e-this.getPathLength()>5e-5)return null;var n=Math.round(e/this.getPathLength()*(this.equidistantCache.points.length-1));return this.equidistantCache.points[n]||null}}])}(),hce=/^\s*data:(([^/,;]+\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i,yce=function(e){function t(e,r,n){var o;Mue(this,t),(o=Oue(this,t,[e,r,n])).type="image",o.loaded=!1;var i=o.getHrefAttribute().getString();if(!i)return kue(o);var a=i.endsWith(".svg")||/^\s*data:image\/svg\+xml/i.test(i);return e.images.push(o),a?o.loadSvg(i):o.loadImage(i),o}return Tue(t,Lle),Bue(t,[{key:"loadImage",value:function(){var e=Uue(Que().mark(function e(t){var r;return Que().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this.document.createImage(t);case 3:r=e.sent,this.image=r,e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.error('Error while loading image "'.concat(t,'":'),e.t0);case 10:this.loaded=!0;case 11:case"end":return e.stop()}},e,this,[[0,7]])}));return function(t){return e.apply(this,arguments)}}()},{key:"loadSvg",value:function(){var e=Uue(Que().mark(function e(t){var r,n,o,i;return Que().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(!(r=hce.exec(t))){e.next=6;break}(n=r[5])&&("base64"===r[4]?this.image=atob(n):this.image=decodeURIComponent(n)),e.next=19;break;case 6:return e.prev=6,e.next=9,this.document.fetch(t);case 9:return o=e.sent,e.next=12,o.text();case 12:i=e.sent,this.image=i,e.next=19;break;case 16:e.prev=16,e.t0=e.catch(6),console.error('Error while loading image "'.concat(t,'":'),e.t0);case 19:this.loaded=!0;case 20:case"end":return e.stop()}},e,this,[[6,16]])}));return function(t){return e.apply(this,arguments)}}()},{key:"renderChildren",value:function(e){var t=this.document,r=this.image,n=this.loaded,o=this.getAttribute("x").getPixels("x"),i=this.getAttribute("y").getPixels("y"),a=this.getStyle("width").getPixels("x"),s=this.getStyle("height").getPixels("y");if(n&&r&&a&&s){if(e.save(),e.translate(o,i),"string"==typeof r){var u=t.canvg.forkString(e,r,{ignoreMouse:!0,ignoreAnimation:!0,ignoreDimensions:!0,ignoreClear:!0,offsetX:0,offsetY:0,scaleWidth:a,scaleHeight:s}),l=u.document.documentElement;l&&(l.parent=this),u.render()}else t.setViewBox({ctx:e,aspectRatio:this.getAttribute("preserveAspectRatio").getString(),width:a,desiredWidth:r.width,height:s,desiredHeight:r.height}),this.loaded&&("complete"in r&&!r.complete||e.drawImage(r,0,0));e.restore()}}},{key:"getBoundingBox",value:function(){var e=this.getAttribute("x").getPixels("x"),t=this.getAttribute("y").getPixels("y"),r=this.getStyle("width").getPixels("x"),n=this.getStyle("height").getPixels("y");return new Ble(e,t,e+r,t+n)}}])}(),dce=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o~]/g," ").replace(/[#.]/g," "),$ue),2);return r=c[0],n=c[1],t[2]+=n,t.join("")}(r)),"@font-face"===r){var o=n.get("font-family").getString().replace(/"|'/g,"");n.get("src").getString().split(",").forEach(function(t){if(t.indexOf('format("svg")')>0){var r=Vue(t);r&&new mce(e).load(o,r)}})}}})}}),o}return Tue(t,Tle),Bue(t)}();vce.parseExternalUrl=Vue;var gce=function(e){function t(){var e;Mue(this,t);for(var r=arguments.length,n=new Array(r),o=0;o1&&void 0!==o[1]&&o[1],n=document.createElement("img"),r&&(n.crossOrigin="Anonymous"),e.abrupt("return",new Promise(function(e,r){n.onload=function(){e(n)},n.onerror=function(e,t,n,o,i){r(i)},n.src=t}));case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}var Pce=12,Tce=function(){function e(t){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=n.rootEmSize,i=void 0===o?Pce:o,a=n.emSize,s=void 0===a?Pce:a,u=n.createCanvas,l=void 0===u?e.createCanvas:u,c=n.createImage,f=void 0===c?e.createImage:c,p=n.anonymousCrossOrigin;Mue(this,e),this.canvg=t,this.definitions=new Map,this.styles=new Map,this.stylesSpecificity=new Map,this.images=[],this.fonts=[],this.emSizeStack=[],this.uniqueId=0,this.screen=t.screen,this.rootEmSize=i,this.emSize=s,this.createCanvas=l,this.createImage=this.bindCreateImage(f,p),this.screen.wait(function(){return r.isImagesLoaded()}),this.screen.wait(function(){return r.isFontsLoaded()})}return Bue(e,[{key:"bindCreateImage",value:function(e,t){return"boolean"==typeof t?function(r,n){return e(r,"boolean"==typeof n?n:t)}:e}},{key:"window",get:function(){return this.screen.window}},{key:"fetch",get:function(){return this.screen.fetch}},{key:"ctx",get:function(){return this.screen.ctx}},{key:"emSize",get:function(){var e=this.emSizeStack;return e[e.length-1]||Pce},set:function(e){this.emSizeStack.push(e)}},{key:"popEmSize",value:function(){this.emSizeStack.pop()}},{key:"getUniqueId",value:function(){return"canvg".concat(++this.uniqueId)}},{key:"isImagesLoaded",value:function(){return this.images.every(function(e){return e.loaded})}},{key:"isFontsLoaded",value:function(){return this.fonts.every(function(e){return e.loaded})}},{key:"createDocumentElement",value:function(e){var t=this.createElement(e.documentElement);return t.root=!0,t.addStylesFromStyleDefinition(),this.documentElement=t,t}},{key:"createElement",value:function(t){var r=t.nodeName.replace(/^[^:]+:/,""),n=e.elementTypes[r];return n?new n(this,t):new jle(this,t)}},{key:"createTextNode",value:function(e){return new Fle(this,e)}},{key:"setViewBox",value:function(e){this.screen.setViewBox(Sue({document:this},e))}}])}();Tce.createCanvas=function(e,t){var r=document.createElement("canvas");return r.width=e,r.height=t,r},Tce.createImage=function(e){return kce.apply(this,arguments)},Tce.elementTypes=Oce;var jce=function(){function e(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Mue(this,e),this.parser=new Sle(n),this.screen=new ble(t,n),this.options=n;var o=new Tce(this,n),i=o.createDocumentElement(r);this.document=o,this.documentElement=i}return Bue(e,[{key:"fork",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.from(t,r,Sue(Sue({},this.options),n))}},{key:"forkString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.fromString(t,r,Sue(Sue({},this.options),n))}},{key:"ready",value:function(){return this.screen.ready()}},{key:"isReady",value:function(){return this.screen.isReady()}},{key:"render",value:function(){var e=Uue(Que().mark(function e(){var t,r=arguments;return Que().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return t=r.length>0&&void 0!==r[0]?r[0]:{},this.start(Sue({enableRedraw:!0,ignoreAnimation:!0,ignoreMouse:!0},t)),e.next=4,this.ready();case 4:this.stop();case 5:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"start",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=this.documentElement,r=this.screen,n=this.options;r.start(t,Sue(Sue({enableRedraw:!0},n),e))}},{key:"stop",value:function(){this.screen.stop()}},{key:"resize",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.documentElement.resize(e,t,r)}}],[{key:"from",value:function(){var t=Uue(Que().mark(function t(r,n){var o,i,a,s=arguments;return Que().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return o=s.length>2&&void 0!==s[2]?s[2]:{},i=new Sle(o),t.next=4,i.parse(n);case 4:return a=t.sent,t.abrupt("return",new e(r,a,o));case 6:case"end":return t.stop()}},t)}));return function(e,r){return t.apply(this,arguments)}}()},{key:"fromString",value:function(t,r){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return new e(t,new Sle(n).parseFromString(r),n)}}])}(),Mce=r(311),Nce=r.n(Mce),Bce=new RegExp("^[:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function Lce(e,t){for(var r=[],n=t.exec(e);n;){var o=[];o.startIndex=t.lastIndex-n[0].length;for(var i=n.length,a=0;a0?this.child.push(Kce(Kce({},e.tagname,e.child),":@",e[":@"])):this.child.push(Kce({},e.tagname,e.child)),void 0!==t&&(this.child[this.child.length-1][Hce]={startIndex:t})}}])&&Yce(e.prototype,t),r&&Yce(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Xce(e){"@babel/helpers - typeof";return(Xce="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Zce(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return $ce(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?$ce(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r"===e[t]){if(a?"-"===e[t-1]&&"-"===e[t-2]&&(a=!1,o--):o--,0===o)break}else"["===e[t]?i=!0:e[t];else{if(i&&ofe(e,"!ENTITY",t)){t+=7;var s=void 0,u=void 0,l=Zce(this.readEntityExp(e,t+1,this.suppressValidationErr),3);if(s=l[0],u=l[1],t=l[2],-1===u.indexOf("&")){if(!1!==this.options.enabled&&null!=this.options.maxEntityCount&&n>=this.options.maxEntityCount)throw new Error("Entity count (".concat(n+1,") exceeds maximum allowed (").concat(this.options.maxEntityCount,")"));var c=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");r[s]={regx:RegExp("&".concat(c,";"),"g"),val:u},n++}}else if(i&&ofe(e,"!ELEMENT",t)){t+=8,t=this.readElementExp(e,t+1).index}else if(i&&ofe(e,"!ATTLIST",t))t+=8;else if(i&&ofe(e,"!NOTATION",t)){t+=9,t=this.readNotationExp(e,t+1,this.suppressValidationErr).index}else{if(!ofe(e,"!--",t))throw new Error("Invalid DOCTYPE");a=!0}o++,""}if(0!==o)throw new Error("Unclosed DOCTYPE");return{entities:r,i:t}}},{key:"readEntityExp",value:function(e,t){for(var r=t=nfe(e,t);tthis.options.maxEntitySize)throw new Error('Entity "'.concat(n,'" size (').concat(o.length,") exceeds maximum allowed size (").concat(this.options.maxEntitySize,")"));return[n,o,--t]}},{key:"readNotationExp",value:function(e,t){for(var r=t=nfe(e,t);t=dfe&&o<=mfe||o===vfe))if(o=55296&&o<=56319){if(n+1=56320&&i<=57343){var a=65536+(o-55296<<10)+(i-56320);if(sfe.has(a)){r=n;break}}}}else if(lfe[o-ufe]!==afe||gfe.has(o)){r=n;break}}if(-1===r)return e;var s=[];r>0&&s.push(e.slice(0,r));for(var u=r;u=dfe&&l<=mfe||l===vfe)s.push(e[u]);else if(l=55296&&l<=56319){if(u+1=56320&&c<=57343){var f=65536+(l-55296<<10)+(c-56320),p=sfe.get(f);if(void 0!==p){s.push(String.fromCharCode(p+48)),u++;continue}}}s.push(e[u])}else if(gfe.has(l))s.push("-");else{var h=lfe[l-ufe];s.push(h!==afe?String.fromCharCode(h+48):e[u])}}return s.join("")},Afe=/^[-+]?0x[a-fA-F0-9]+$/,wfe=/^0b[01]+$/,Sfe=/^0o[0-7]+$/,Cfe=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,Efe={hex:!0,binary:!1,octal:!1,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original",unicode:!1};function xfe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(t=Object.assign({},Efe,t),!e||"string"!=typeof e)return e;var r=e.trim();if(0===r.length)return e;if(void 0!==t.skipLike&&t.skipLike.test(r))return e;if("0"===r)return 0;if(t.unicode&&"0"===(r=bfe(r)))return 0;if(t.hex&&Afe.test(r))return Ife(r,16);if(t.binary&&wfe.test(r))return Ife(r,2);if(t.octal&&Sfe.test(r))return Ife(r,8);if(isFinite(r)){if(r.includes("e")||r.includes("E"))return function(e,t,r){if(!r.eNotation)return e;var n=t.match(_fe);if(n){var o=n[1]||"",i=-1===n[3].indexOf("e")?"E":"e",a=n[2],s=o?e[a.length+1]===i:e[a.length]===i;return a.length>1&&s?e:(1!==a.length||!n[3].startsWith(".".concat(i))&&n[3][0]!==i)&&a.length>0?r.leadingZeros&&!s?(t=(n[1]||"")+n[3],Number(t)):e:Number(t)}return e}(e,r,t);var n=Cfe.exec(r);if(n){var o=n[1]||"",i=n[2],a=function(e){if(e&&-1!==e.indexOf(".")){for(var t=e.length;t>0&&48===e.charCodeAt(t-1);)t--;return"."===(e=e.slice(0,t))?e="0":"."===e[0]?e="0"+e:"."===e[e.length-1]&&(e=e.substring(0,e.length-1)),e}return e}(n[3]),s=o?"."===e[i.length+1]:"."===e[i.length];if(!t.leadingZeros&&(i.length>1||1===i.length&&!s))return e;var u=Number(r),l=String(u);if(0===u)return u;if(-1!==l.search(/[eE]/))return t.eNotation?u:e;if(-1!==r.indexOf("."))return"0"===l?u:l===a?u:l==="".concat(o).concat(a)?u:e;var c=i?a:r;return i?c===l||o+c===l?u:e:c===l||c===o+l?u:e}return e}return function(e,t,r){var n=t===1/0;switch(r.infinity.toLowerCase()){case"null":return null;case"infinity":return t;case"string":return n?"Infinity":"-Infinity";case"original":default:return e}}(e,Number(r),t)}var _fe=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function Ife(e,t){var r=e.trim();if(2!==t&&8!==t||(e=r.substring(2)),parseInt)return parseInt(e,t);if(Number.parseInt)return Number.parseInt(e,t);if(window&&window.parseInt)return window.parseInt(e,t);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function Ofe(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return kfe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?kfe(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function kfe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0?e[e.length-1].tag:void 0}},{key:"getCurrentNamespace",value:function(){var e=this._matcher.path;return e.length>0?e[e.length-1].namespace:void 0}},{key:"getAttrValue",value:function(e){var t,r=this._matcher.path;if(0!==r.length)return null===(t=r[r.length-1].values)||void 0===t?void 0:t[e]}},{key:"hasAttr",value:function(e){var t=this._matcher.path;if(0===t.length)return!1;var r=t[t.length-1];return void 0!==r.values&&e in r.values}},{key:"getAnyParentAttr",value:function(e){return this._matcher.getAnyParentAttr(e)}},{key:"hasAnyParentAttr",value:function(e){return this._matcher.hasAnyParentAttr(e)}},{key:"getPosition",value:function(){var e,t=this._matcher.path;return 0===t.length?-1:null!==(e=t[t.length-1].position)&&void 0!==e?e:0}},{key:"getCounter",value:function(){var e,t=this._matcher.path;return 0===t.length?-1:null!==(e=t[t.length-1].counter)&&void 0!==e?e:0}},{key:"getIndex",value:function(){return this.getPosition()}},{key:"getDepth",value:function(){return this._matcher.path.length}},{key:"toString",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this._matcher.toString(e,t)}},{key:"toArray",value:function(){return this._matcher.path.map(function(e){return e.tag})}},{key:"matches",value:function(e){return this._matcher.matches(e)}},{key:"matchesAny",value:function(e){return e.matchesAny(this._matcher)}}])}(),Ffe=function(){return Lfe(function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Nfe(this,e),this.separator=t.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new Dfe(this),this._keptAttrs=[]},[{key:"push",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);var o=this.path.length,i=this.siblingStacks[o];i||(i={counts:new Map,total:0},this.siblingStacks[o]=i);var a=r?"".concat(r,":").concat(e):e,s=i.counts.get(a)||0,u=i.total;i.counts.set(a,s+1),i.total++;var l={tag:e,position:u,counter:s};null!==r&&void 0!==r&&(l.namespace=r),null!==t&&void 0!==t&&(l.values=t),this.path.push(l);var c=this.path.length,f=null!==n?n.keep:null;if(null!==f&&void 0!==f&&f.length>0&&t)for(var p=0;pthis.path.length+1&&(this.siblingStacks.length=this.path.length+1);for(var t=this.path.length+1;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=t;)this._keptAttrs.pop();return e}}},{key:"updateCurrent",value:function(e){if(this.path.length>0){var t=this.path[this.path.length-1];null!==e&&void 0!==e&&(t.values=e)}}},{key:"getCurrentTag",value:function(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}},{key:"getCurrentNamespace",value:function(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}},{key:"getAttrValue",value:function(e){var t;if(0!==this.path.length)return null===(t=this.path[this.path.length-1].values)||void 0===t?void 0:t[e]}},{key:"hasAttr",value:function(e){if(0===this.path.length)return!1;var t=this.path[this.path.length-1];return void 0!==t.values&&e in t.values}},{key:"getAnyParentAttr",value:function(e){for(var t=this._keptAttrs,r=t.length-1;r>=0;r--)if(t[r].name===e)return t[r].value}},{key:"hasAnyParentAttr",value:function(e){for(var t=this._keptAttrs,r=t.length-1;r>=0;r--)if(t[r].name===e)return!0;return!1}},{key:"getPosition",value:function(){var e;return 0===this.path.length?-1:null!==(e=this.path[this.path.length-1].position)&&void 0!==e?e:0}},{key:"getCounter",value:function(){var e;return 0===this.path.length?-1:null!==(e=this.path[this.path.length-1].counter)&&void 0!==e?e:0}},{key:"getIndex",value:function(){return this.getPosition()}},{key:"getDepth",value:function(){return this.path.length}},{key:"toString",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=e||this.separator;if(r===this.separator&&!0===t){if(null!==this._pathStringCache)return this._pathStringCache;var n=this.path.map(function(e){return e.namespace?"".concat(e.namespace,":").concat(e.tag):e.tag}).join(r);return this._pathStringCache=n,n}return this.path.map(function(e){return t&&e.namespace?"".concat(e.namespace,":").concat(e.tag):e.tag}).join(r)}},{key:"toArray",value:function(){return this.path.map(function(e){return e.tag})}},{key:"reset",value:function(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}},{key:"matches",value:function(e){var t=e.segments;return 0!==t.length&&(e.hasDeepWildcard()?this._matchWithDeepWildcard(t):this._matchSimple(t))}},{key:"_matchSimple",value:function(e){if(this.path.length!==e.length)return!1;for(var t=0;t=0&&t>=0;){var n=e[r];if("deep-wildcard"===n.type){if(--r<0)return!0;for(var o=e[r],i=!1,a=t;a>=0;a--)if(this._matchSegment(o,this.path[a],a===this.path.length-1)){t=a-1,r--,i=!0;break}if(!i)return!1}else{if(!this._matchSegment(n,this.path[t],t===this.path.length-1))return!1;t--,r--}}return r<0}},{key:"_matchSegment",value:function(e,t,r){if("*"!==e.tag&&e.tag!==t.tag)return!1;if(void 0!==e.namespace&&"*"!==e.namespace&&e.namespace!==t.namespace)return!1;if(void 0!==e.attrName){if(!r)return!1;if(!(t.values&&e.attrName in t.values))return!1;if(void 0!==e.attrValue&&String(t.values[e.attrName])!==String(e.attrValue))return!1}if(void 0!==e.position){var n;if(!r)return!1;var o=null!==(n=t.counter)&&void 0!==n?n:0;if("first"===e.position&&0!==o)return!1;if("odd"===e.position&&o%2!=1)return!1;if("even"===e.position&&o%2!=0)return!1;if("nth"===e.position&&o!==e.positionValue)return!1}return!0}},{key:"matchesAny",value:function(e){return e.matchesAny(this)}},{key:"snapshot",value:function(){return{path:this.path.map(function(e){return jfe({},e)}),siblingStacks:this.siblingStacks.map(function(e){return e?{counts:new Map(e.counts),total:e.total}:e}),keptAttrs:this._keptAttrs.map(function(e){return jfe({},e)})}}},{key:"restore",value:function(e){this._pathStringCache=null,this.path=e.path.map(function(e){return jfe({},e)}),this.siblingStacks=e.siblingStacks.map(function(e){return e?{counts:new Map(e.counts),total:e.total}:e}),this._keptAttrs=(e.keptAttrs||[]).map(function(e){return jfe({},e)})}},{key:"readOnly",value:function(){return this._view}}])}();function Qfe(e){"@babel/helpers - typeof";return(Qfe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Gfe(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.pattern=t,this.separator=r.separator||".",this.segments=this._parse(t),this.data=n,this._hasDeepWildcard=this.segments.some(function(e){return"deep-wildcard"===e.type}),this._hasAttributeCondition=this.segments.some(function(e){return void 0!==e.attrName}),this._hasPositionSelector=this.segments.some(function(e){return void 0!==e.position})},(t=[{key:"_parse",value:function(e){for(var t=[],r=0,n="";r0){var r=e.substring(0,t);if("xmlns"!==r)return r}}}var Jfe=function(e,t,r){return t&&Vfe(e.prototype,t),r&&Vfe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}(function e(t){var r;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:function(e,t){return fpe(t,10,"&#")}},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:function(e,t){return fpe(t,16,"&#x")}}},this.addExternalEntities=Xfe,this.parseXml=rpe,this.parseTextData=Zfe,this.resolveNameSpace=$fe,this.buildAttributesMap=tpe,this.isItStopNode=ape,this.replaceEntitiesValue=ope,this.readStopNodeData=lpe,this.saveTextToParentTag=ipe,this.addChild=npe,this.ignoreAttributesFn="function"==typeof(r=this.options.ignoreAttributes)?r:Array.isArray(r)?function(e){var t,n=Ofe(r);try{for(n.s();!(t=n.n()).done;){var o=t.value;if("string"==typeof o&&e===o)return!0;if(o instanceof RegExp&&o.test(e))return!0}}catch(e){n.e(e)}finally{n.f()}}:function(){return!1},this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new Ffe,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodeExpressions=[];for(var n=0;n0)){a||(e=this.replaceEntitiesValue(e,t,r));var s=this.options.jPath?r.toString():r,u=this.options.tagValueProcessor(t,e,s,o,i);return null===u||void 0===u?e:qfe(u)!==qfe(e)||u!==e?u:this.options.trimValues?cpe(e,this.options.parseTagValue,this.options.numberParseOptions):e.trim()===e?cpe(e,this.options.parseTagValue,this.options.numberParseOptions):e}}function $fe(e){if(this.options.removeNSPrefix){var t=e.split(":"),r="/"===e.charAt(0)?"/":"";if("xmlns"===t[0])return"";2===t.length&&(e=r+t[1])}return e}var epe=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function tpe(e,t,r){if(!0!==this.options.ignoreAttributes&&"string"==typeof e){for(var n=Lce(e,epe),o=n.length,i={},a={},s=0;s0&&"object"===qfe(t)&&t.updateCurrent&&t.updateCurrent(a);for(var f=0;f",i,"Closing Tag is not closed."),s=e.substring(i+2,a).trim();if(this.options.removeNSPrefix){var u=s.indexOf(":");-1!==u&&(s=s.substr(u+1))}s=ppe(this.options.transformTagName,s,"",this.options).tagName,r&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher));var l=this.matcher.getCurrentTag();if(s&&-1!==this.options.unpairedTags.indexOf(s))throw new Error("Unpaired tag can not be used as closing tag: "));l&&-1!==this.options.unpairedTags.indexOf(l)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),n="",i=a}else if("?"===e[i+1]){var c=upe(e,i,!1,"?>");if(!c)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,this.readonlyMatcher),this.options.ignoreDeclaration&&"?xml"===c.tagName||this.options.ignorePiTags);else{var f=new Jce(c.tagName);f.add(this.options.textNodeName,""),c.tagName!==c.tagExp&&c.attrExpPresent&&(f[":@"]=this.buildAttributesMap(c.tagExp,this.matcher,c.tagName)),this.addChild(r,f,this.readonlyMatcher,i)}i=c.closeIndex+1}else if("!--"===e.substr(i+1,3)){var p=spe(e,"--\x3e",i+4,"Comment is not closed.");if(this.options.commentPropName){var h=e.substring(i+4,p-2);n=this.saveTextToParentTag(n,r,this.readonlyMatcher),r.add(this.options.commentPropName,[Hfe({},this.options.textNodeName,h)])}i=p}else if("!D"===e.substr(i+1,2)){var y=o.readDocType(e,i);this.docTypeEntities=y.entities,i=y.i}else if("!["===e.substr(i+1,2)){var d=spe(e,"]]>",i,"CDATA is not closed.")-2,m=e.substring(i+9,d);n=this.saveTextToParentTag(n,r,this.readonlyMatcher);var v=this.parseTextData(m,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);void 0==v&&(v=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[Hfe({},this.options.textNodeName,m)]):r.add(this.options.textNodeName,v),i=d+2}else{var g=upe(e,i,this.options.removeNSPrefix);if(!g){var b=e.substring(Math.max(0,i-50),Math.min(e.length,i+50));throw new Error("readTagExp returned undefined at position ".concat(i,'. Context: "').concat(b,'"'))}var A=g.tagName,w=g.rawTagName,S=g.tagExp,C=g.attrExpPresent,E=g.closeIndex,x=ppe(this.options.transformTagName,A,S,this.options);if(A=x.tagName,S=x.tagExp,this.options.strictReservedNames&&(A===this.options.commentPropName||A===this.options.cdataPropName||A===this.options.textNodeName||A===this.options.attributesGroupName))throw new Error("Invalid tag name: ".concat(A));r&&n&&"!xml"!==r.tagname&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher,!1));var _=r;_&&-1!==this.options.unpairedTags.indexOf(_.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());var I=!1;S.length>0&&S.lastIndexOf("/")===S.length-1&&(I=!0,S="/"===A[A.length-1]?A=A.substr(0,A.length-1):S.substr(0,S.length-1),C=A!==S);var O,k=null;O=Wfe(w),A!==t.tagname&&this.matcher.push(A,{},O),A!==S&&C&&(k=this.buildAttributesMap(S,this.matcher,A))&&Yfe(k,this.options),A!==t.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode(this.stopNodeExpressions,this.matcher));var P=i;if(this.isCurrentNodeStopNode){var T="";if(I)i=g.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(A))i=g.closeIndex;else{var j=this.readStopNodeData(e,w,E+1);if(!j)throw new Error("Unexpected end of ".concat(w));i=j.i,T=j.tagContent}var M=new Jce(A);k&&(M[":@"]=k),M.add(this.options.textNodeName,T),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,M,this.readonlyMatcher,P)}else{if(I){var N=ppe(this.options.transformTagName,A,S,this.options);A=N.tagName,S=N.tagExp;var B=new Jce(A);k&&(B[":@"]=k),this.addChild(r,B,this.readonlyMatcher,P),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else{if(-1!==this.options.unpairedTags.indexOf(A)){var L=new Jce(A);k&&(L[":@"]=k),this.addChild(r,L,this.readonlyMatcher,P),this.matcher.pop(),this.isCurrentNodeStopNode=!1,i=g.closeIndex;continue}var R=new Jce(A);if(this.tagsNodeStack.length>this.options.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),k&&(R[":@"]=k),this.addChild(r,R,this.readonlyMatcher,P),r=R}n="",i=E}}else n+=e[i]}return t.child};function npe(e,t,r,n){this.options.captureMetaData||(n=void 0);var o=this.options.jPath?r.toString():r,i=this.options.updateTag(t.tagname,o,t[":@"]);!1===i||("string"==typeof i?(t.tagname=i,e.addChild(t,n)):e.addChild(t,n))}function ope(e,t,r){var n=this.options.processEntities;if(!n||!n.enabled)return e;if(n.allowedTags){var o=this.options.jPath?r.toString():r;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(t):n.allowedTags(t,o)))return e}if(n.tagFilter){var i=this.options.jPath?r.toString():r;if(!n.tagFilter(t,i))return e}for(var a=0,s=Object.keys(this.docTypeEntities);an.maxTotalExpansions)throw new Error("Entity expansion limit exceeded: ".concat(this.entityExpansionCount," > ").concat(n.maxTotalExpansions));var f=e.length;if(e=e.replace(l.regx,l.val),n.maxExpandedLength&&(this.currentExpandedLength+=e.length-f,this.currentExpandedLength>n.maxExpandedLength))throw new Error("Total expanded content size exceeded: ".concat(this.currentExpandedLength," > ").concat(n.maxExpandedLength))}}for(var p=0,h=Object.keys(this.lastEntities);pn.maxTotalExpansions))throw new Error("Entity expansion limit exceeded: ".concat(this.entityExpansionCount," > ").concat(n.maxTotalExpansions));e=e.replace(d.regex,d.val)}if(-1===e.indexOf("&"))return e;if(this.options.htmlEntities)for(var v=0,g=Object.keys(this.htmlEntities);vn.maxTotalExpansions))throw new Error("Entity expansion limit exceeded: ".concat(this.entityExpansionCount," > ").concat(n.maxTotalExpansions));e=e.replace(A.regex,A.val)}return e=e.replace(this.ampEntity.regex,this.ampEntity.val)}function ipe(e,t,r,n){return e&&(void 0===n&&(n=0===t.child.length),void 0!==(e=this.parseTextData(e,t.tagname,r,!1,!!t[":@"]&&0!==Object.keys(t[":@"]).length,n))&&""!==e&&t.add(this.options.textNodeName,e),e=""),e}function ape(e,t){if(!e||0===e.length)return!1;for(var r=0;r2&&void 0!==arguments[2]?arguments[2]:">",o="",i=t;i3&&void 0!==arguments[3]?arguments[3]:">");if(n){var o=n.data,i=n.index,a=o.search(/\s/),s=o,u=!0;-1!==a&&(s=o.substring(0,a),o=o.substring(a+1).trimStart());var l=s;if(r){var c=s.indexOf(":");-1!==c&&(u=(s=s.substr(c+1))!==n.data.substr(c+1))}return{tagName:s,tagExp:o,closeIndex:i,attrExpPresent:u,rawTagName:l}}}function lpe(e,t,r){for(var n=r,o=1;r",r,"".concat(t," is not closed"));if(e.substring(r+2,i).trim()===t&&0===--o)return{tagContent:e.substring(n,r),i:i};r=i}else if("?"===e[r+1]){r=spe(e,"?>",r+1,"StopNode is not closed.")}else if("!--"===e.substr(r+1,3)){r=spe(e,"--\x3e",r+3,"StopNode is not closed.")}else if("!["===e.substr(r+1,2)){r=spe(e,"]]>",r,"StopNode is not closed.")-2}else{var a=upe(e,r,">");if(a)(a&&a.tagName)===t&&"/"!==a.tagExp[a.tagExp.length-1]&&o++,r=a.closeIndex}}function cpe(e,t,r){if(t&&"string"==typeof e){var n=e.trim();return"true"===n||"false"!==n&&xfe(e,r)}return void 0!==e?e:""}function fpe(e,t,r){var n=Number.parseInt(e,t);return n>=0&&n<=1114111?String.fromCodePoint(n):r+e+";"}function ppe(e,t,r,n){if(e){var o=e(t);r===t&&(r=o),t=o}return{tagName:t=hpe(t,n),tagExp:r}}function hpe(e,t){if(Fce.includes(e))throw new Error('[SECURITY] Invalid name: "'.concat(e,'" is a reserved JavaScript keyword that could cause prototype pollution'));return Dce.includes(e)?t.onDangerousProperty(e):e}function ype(e){"@babel/helpers - typeof";return(ype="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var dpe=Jce.getMetaDataSymbol();function mpe(e,t){if(!e||"object"!==ype(e))return{};if(!t)return e;var r={};for(var n in e){if(n.startsWith(t))r[n.substring(t.length)]=e[n];else r[n]=e[n]}return r}function vpe(e,t,r,n){return function e(t,r,n,o){var i;var a={};for(var s=0;s0&&(a[r.textNodeName]=i):void 0!==i&&(a[r.textNodeName]=i);return a}(e,t,r,n)}function gpe(e){for(var t=Object.keys(e),r=0;r5&&"xml"===n)return Tpe("InvalidXml","XML declaration allowed only at the start of the document.",Mpe(e,t));if("?"==e[t]&&">"==e[t+1]){t++;break}}return t}function Epe(e,t){if(e.length>t+5&&"-"===e[t+1]&&"-"===e[t+2]){for(t+=3;t"===e[t+2]){t+=2;break}}else if(e.length>t+8&&"D"===e[t+1]&&"O"===e[t+2]&&"C"===e[t+3]&&"T"===e[t+4]&&"Y"===e[t+5]&&"P"===e[t+6]&&"E"===e[t+7]){var r=1;for(t+=8;t"===e[t]&&0===--r)break}else if(e.length>t+9&&"["===e[t+1]&&"C"===e[t+2]&&"D"===e[t+3]&&"A"===e[t+4]&&"T"===e[t+5]&&"A"===e[t+6]&&"["===e[t+7])for(t+=8;t"===e[t+2]){t+=2;break}return t}var xpe='"',_pe="'";function Ipe(e,t){for(var r="",n="",o=!1;t"===e[t]&&""===n){o=!0;break}r+=e[t]}return""===n&&{value:r,index:t,tagClosed:o}}var Ope=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function kpe(e,t){for(var r=Lce(e,Ope),n={},o=0;o"!==e[i]&&" "!==e[i]&&"\t"!==e[i]&&"\n"!==e[i]&&"\r"!==e[i];i++)u+=e[i];if("/"===(u=u.trim())[u.length-1]&&(u=u.substring(0,u.length-1),i--),!Rce(u))return Tpe("InvalidTag",0===u.trim().length?"Invalid space after '<'.":"Tag '"+u+"' is an invalid name.",Mpe(e,i));var l=Ipe(e,i);if(!1===l)return Tpe("InvalidAttr","Attributes for '"+u+"' have open quote.",Mpe(e,i));var c=l.value;if(i=l.index,"/"===c[c.length-1]){var f=i-c.length,p=kpe(c=c.substring(0,c.length-1),t);if(!0!==p)return Tpe(p.err.code,p.err.msg,Mpe(e,f+p.err.line));n=!0}else if(s){if(!l.tagClosed)return Tpe("InvalidTag","Closing tag '"+u+"' doesn't have proper closing.",Mpe(e,i));if(c.trim().length>0)return Tpe("InvalidTag","Closing tag '"+u+"' can't have attributes or invalid starting.",Mpe(e,a));if(0===r.length)return Tpe("InvalidTag","Closing tag '"+u+"' has not been opened.",Mpe(e,a));var h=r.pop();if(u!==h.tagName){var y=Mpe(e,h.tagStartPos);return Tpe("InvalidTag","Expected closing tag '"+h.tagName+"' (opened in line "+y.line+", col "+y.col+") instead of closing tag '"+u+"'.",Mpe(e,a))}0==r.length&&(o=!0)}else{var d=kpe(c,t);if(!0!==d)return Tpe(d.err.code,d.err.msg,Mpe(e,i-c.length+d.err.line));if(!0===o)return Tpe("InvalidXml","Multiple possible root nodes found.",Mpe(e,i));-1!==t.unpairedTags.indexOf(u)||r.push({tagName:u,tagStartPos:a}),n=!0}for(i++;i0)||Tpe("InvalidXml","Invalid '"+JSON.stringify(r.map(function(e){return e.tagName}),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):Tpe("InvalidXml","Start tag expected.",1)}(e,t);if(!0!==r)throw Error("".concat(r.err.msg,":").concat(r.err.line,":").concat(r.err.col))}var n=new Jfe(this.options);n.addExternalEntities(this.externalEntities);var o=n.parseXml(e);return this.options.preserveOrder||void 0===o?o:vpe(o,this.options,n.matcher,n.readonlyMatcher)}},{key:"addEntity",value:function(e,t){if(-1!==t.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==e.indexOf("&")||-1!==e.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '");if("&"===t)throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}}],r=[{key:"getMetaDataSymbol",value:function(){return Jce.getMetaDataSymbol()}}],t&&Lpe(e.prototype,t),r&&Lpe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Fpe(e){return function(e){if(Array.isArray(e))return Qpe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Qpe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Qpe(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Qpe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function Upe(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function zpe(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){Upe(i,n,o,a,s,"next",e)}function s(e){Upe(i,n,o,a,s,"throw",e)}a(void 0)})}}function Hpe(e){"@babel/helpers - typeof";return(Hpe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function qpe(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),"string"==typeof t||"number"==typeof t?this.mapId=t:null!==t&&"object"===Hpe(t)&&(this.mapInfo=t),this.serverUrl=r.serverUrl||"https://www.supermapol.com",this.credentialKey=r.credentialKey,this.credentialValue=r.credentialValue,this.tiandituKey=r.tiandituKey||"",this.withCredentials=r.withCredentials||!1,this.excludePortalProxyUrl=r.excludePortalProxyUrl,this.iportalServiceProxyUrl=r.iportalServiceProxyUrlPrefix,this.proxy=r.proxy,this.preferServer=r.preferServer||!1,this.proxyOptions={data:"apps/viewer/getUrlResource.json?url=",image:"apps/viewer/getUrlResource.png?url="}},(t=[{key:"setMapId",value:function(e){"string"==typeof e||"number"==typeof e?(this.mapId=e,this.mapInfo=null):null!==e&&"object"===Hpe(e)&&(this.mapInfo=e,this.mapId="")}},{key:"setServerUrl",value:function(e){this.serverUrl=e}},{key:"setWithCredentials",value:function(e){this.withCredentials=e}},{key:"setProxy",value:function(e){this.proxy=e}},{key:"handleServerUrl",value:function(e){var t=Eo(e);return this.serverUrl=t,t}},{key:"getMapInfo",value:function(){var e=zpe(Gpe().mark(function e(){var t,r=this;return Gpe().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(this.mapId||!this.mapInfo){e.next=2;break}return e.abrupt("return",new Promise(function(e){e(r.mapInfo)}));case 2:return t=this._handleMapUrl(),e.prev=3,e.next=6,this.getiPortalServiceProxy();case 6:return e.abrupt("return",new Promise(function(e,n){H.get(t,null,{withCredentials:r.withCredentials}).then(function(e){return e.json()}).then(function(t){if(t&&!1===t.succeed){var r={message:t&&t.error&&t.error.errorMsg};n(r)}else t.mapParams={title:t.title,description:t.description},e(t)}).catch(function(e){n(e)})}));case 9:return e.prev=9,e.t0=e.catch(3),e.abrupt("return",Promise.reject(e.t0));case 12:case"end":return e.stop()}},e,this,[[3,9]])}));return function(){return e.apply(this,arguments)}}()},{key:"getiPortalServiceProxy",value:function(){var e=this;return new Promise(function(t,r){H.get("".concat(e.serverUrl,"web/config/portal.json"),{scope:["serviceProxy"]}).then(function(e){return e.json()}).then(function(n){if(n&&n.serviceProxy){var o=n.serviceProxy;o.enable&&(o.proxyServerRootUrl?e.iportalServiceProxyUrl=o.proxyServerRootUrl:o.port&&o.rootUrlPostfix&&(e.iportalServiceProxyUrl="".concat(o.port,"/").concat(o.rootUrlPostfix)),e.serverUrl.indexOf(e.iportalServiceProxyUrl)>-1&&(e.iportalServiceProxyUrl="")),t(o)}else r("serviceProxyFailed")}).catch(function(e){r(e)})})}},{key:"getLayerFeatures",value:function(e,t,r){var n;switch(e){case"hosted":n=this._getFeaturesFromHosted(t,r);break;case"rest_data":n=this._getFeaturesFromRestData(t,r);break;case"rest_map":n=this._getFeaturesFromRestMap(t);break;case"dataflow":n=this._getFeaturesFromDataflow(t);break;case"user_data":n=this._getFeaturesFromUserData(t)}return n}},{key:"getWmsInfo",value:function(e){var t=this;return new Promise(function(r){var n=t.handleProxy(),o=N.urlAppend(e.url,"REQUEST=GetCapabilities&SERVICE=WMS");H.get(o,null,{withCredentials:t.handleWithCredentials(n,e.url,!1),withoutFormatSuffix:!0,proxy:n}).then(function(e){return e.text()}).then(function(e){var t=new Dpe({ignoreAttributes:!1,attributeNamePrefix:"@_"}).parse(e),n=t.WMT_MS_Capabilities||t.WMS_Capabilities,o=n.Capability.Layer.LatLonBoundingBox,i=null;o&&(i=[+o["@_minx"],+o["@_miny"],+o["@_maxx"],+o["@_maxy"]]);var a=n.Capability.Layer.EX_GeographicBoundingBox;a&&(i=[+a.westBoundLongitude,+a.southBoundLatitude,+a.eastBoundLongitude,+a.northBoundLatitude]),r({version:n["@_version"],bounds:i})})})}},{key:"getMapBoxStyle",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(n,o){var i=t.handleProxy();H.get(e,{},{withoutFormatSuffix:r,withCredentials:t.handleWithCredentials(i,e,t.withCredentials)}).then(function(e){return e.json()}).then(function(e){n(e)}).catch(function(e){o(e)})})}},{key:"getWmtsInfo",value:function(e,t){var r=this;return new Promise(function(n,o){var i,a=!1,s=22,u=0,l="",c="",f="",p=[],h=r.handleProxy(),y=N.urlAppend(e.url,"REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0");y=r.handleParentRes(y),H.get(y,null,{withCredentials:r.handleWithCredentials(h,e.url,!1),withoutFormatSuffix:!0,proxy:h}).then(function(e){return e.text()}).then(function(o){var h=["Layer","TileMatrixSet","ows:Operation","ows:Get","ResourceURL","Style"],y=new Dpe({ignoreAttributes:!1,attributeNamePrefix:"@_",isArray:function(e){if(-1!==h.indexOf(e))return!0}}).parse(o).Capabilities,d=y.Contents,m=y["ows:OperationsMetadata"];if(m){var v=m["ows:Operation"];Array.isArray(v)||(v=[v]);var g=v.find(function(e){return"GetTile"===e["@_name"]});if(g){var b=g["ows:DCP"]["ows:HTTP"]["ows:Get"];Array.isArray(b)||(b=[b]);var A=b.find(function(e){return"KVP"===e["ows:Constraint"]["ows:AllowedValues"]["ows:Value"]});A&&(f=A["@_xlink:href"])}}for(var w=d.TileMatrixSet,S="ows:Identifier",C=0;C0)break}var M=Object.keys(E).map(function(e){return+e});if(s=M.length>0?Math.max.apply(Math,Fpe(M)):void 0,u=M.length>0?Math.min.apply(Math,Fpe(M)):void 0,0===M.length)throw Error("TileMatrixSetNotSuppport");a=!0}break}var N=d.Layer&&d.Layer.find(function(t){return t[S]===e.layer});if(N){var B=N.Style;if(l=Array.isArray(N.Style)?B[0][S]?B[0][S]:"":B[S]?B[S]:"",N["ows:WGS84BoundingBox"]){var L=N["ows:WGS84BoundingBox"]["ows:LowerCorner"].split(" "),R=N["ows:WGS84BoundingBox"]["ows:UpperCorner"].split(" ");i=[parseFloat(L[0]),parseFloat(L[1]),parseFloat(R[0]),parseFloat(R[1])]}var D=N.ResourceURL;Array.isArray(D)||(D=[D]);var F=D.find(function(e){return"tile"===e["@_resourceType"]});F&&(c=F["@_template"])}n({isMatched:a,matchMaxZoom:s,matchMinZoom:u,style:l,bounds:i,restResourceURL:c,kvpResourceUrl:f,scales:p})}).catch(function(e){o(e)})})}},{key:"_getFeaturesFromHosted",value:function(e,t){var r=e.dataSource,n=e.layerType,o=r?r.serverId:e.serverId;return o?"MARKER"===n||r&&(!r.accessType||"DIRECT"===r.accessType)?this._getDataFromIportal(o,e):this._getDataFromHosted({layer:e,serverId:o,baseProjection:t}):new Promise(function(e){e({type:"noServerId"})})}},{key:"_getFeaturesFromRestData",value:function(e,t){var r,n=this,o=e.dataSource;return new Promise(function(i,a){n._getFeatureBySQL(o.url,[decodeURIComponent(o.dataSourceName)||e.name],function(e){e.result.features?(r=n.parseGeoJsonData2Feature({allDatas:{features:e.result.features.features}}),i({type:"feature",features:r})):a("features must be valid")},function(e){a(e)},t)})}},{key:"_getFeaturesFromRestMap",value:function(e){var t=this;return new Promise(function(r,n){t._queryFeatureBySQL(e.dataSource.url,e.dataSource.layerName,function(o){var i=o&&o.result.recordsets,a=i&&i[0],s=a.fields;if(a&&s){var u=[];for(var l in s){var c=s[l];0===c.indexOf("Sm")&&"SmID"!==c||u.push(c)}t._getFeatures(u,e,function(e){r({type:"feature",features:e})},function(e){n(e)})}},function(e){n(e)},"smid=1")})}},{key:"_getFeaturesFromUserData",value:function(e){var t=this,r=e.dataSource;return new Promise(function(e,n){var o=t.handleProxy(),i=t.handleParentRes(r.url);H.get(i,null,{withCredentials:t.handleWithCredentials(o,i,t.withCredentials),proxy:o,withoutFormatSuffix:!0}).then(function(e){return e.json()}).then(function(r){var n;n=r&&r instanceof Object&&"FeatureCollection"===r.type?r.features:r,n=t.parseGeoJsonData2Feature({allDatas:{features:n}}),e({type:"feature",features:n})}).catch(function(e){n(e)})})}},{key:"_queryFeatureBySQL",value:function(e,t,r,n,o,i,a,s,u,l){var c=this._getQueryFeaturesParam(t,o,i,a,s,u,l),f=this.handleProxy(),p=this.handleParentRes(e);new hJ(p,{proxy:f,withCredentials:this.handleWithCredentials(f,e,!1),eventListeners:{processCompleted:function(e){r&&r(e)},processFailed:function(e){n&&n(e)}}}).processAsync(c)}},{key:"_getFeatures",value:function(e,t,r,n){var o=this,i=t.dataSource;this._queryFeatureBySQL(i.url,i.layerName,function(e){var t=e.result.recordsets[0].features.features,n=o.parseGeoJsonData2Feature({allDatas:{features:t}});r(n)},function(e){n(e)},null,e)}},{key:"_getQueryFeaturesParam",value:function(e,t,r,n,o,i,a){var s=new gB({name:e,attributeFilter:t});r&&(s.fields=r);var u={queryParams:[s]};return a&&(u.queryOption=fn.ATTRIBUTE),o&&(u.startRecord=o),i&&(u.expectCount=i),n&&(u.prjCoordSys={epsgCode:n}),new iJ(u)}},{key:"_getFeaturesFromDataflow",value:function(e){var t=this;return new Promise(function(r,n){t._getDataflowInfo(e,function(){r({type:"dataflow"})},function(e){n(e)})})}},{key:"_getDataflowInfo",value:function(e,t,r){var n,o=e.url,i="".concat(o,".json");e.credential&&e.credential.token&&(n=e.credential.token,i+="?token=".concat(n));var a=this.handleProxy();i=this.handleParentRes(i),H.get(i,null,{proxy:a,withCredentials:this.handleWithCredentials(a,i,!1)}).then(function(e){return e.json()}).then(function(n){n?(n.featureMetaData&&(e.featureType=n.featureMetaData.featureType.toUpperCase(),e.dataSource={dataTypes:{}},n.featureMetaData.fieldInfos&&n.featureMetaData.fieldInfos.length>0&&n.featureMetaData.fieldInfos.forEach(function(t){var r=t.name.trim();"TEXT"===t.type?e.dataSource.dataTypes[r]="STRING":["DOUBLE","INT","FLOAT","LONG","SHORT"].includes(t.type)?e.dataSource.dataTypes[r]="NUMBER":e.dataSource.dataTypes[r]="UNKNOWN"})),e.wsUrl=n.urls[0].url,e.name=n.urls[0].url.split("iserver/services/")[1].split("/dataflow")[0],t()):r()}).catch(function(){r()})}},{key:"getDatasourceType",value:function(e){var t,r=e.dataSource,n=e.layerType;return r&&"SAMPLE_DATA"===r.type?r.type:(r&&r.serverId||"MARKER"===n||"HOSTED_TILE"===n?t="hosted":"ZXY_TILE"===n||"SUPERMAP_REST"===n||"TILE"===n||"WMS"===n||"WMTS"===n||"MAPBOXSTYLE"===n?t="tile":r&&"REST_DATA"===r.type?t="rest_data":r&&"REST_MAP"===r.type&&r.url?t="rest_map":"DATAFLOW_POINT_TRACK"===n||"DATAFLOW_HEAT"===n?t="dataflow":r&&"USER_DATA"===r.type&&(t="user_data"),t)}},{key:"getFeatureProperties",value:function(e){var t=[];return e&&e.length&&e.forEach(function(e){var r=e.properties;r&&t.push(r)}),t}},{key:"parseGeoJsonData2Feature",value:function(e){for(var t=e.allDatas.features,r=[],n=0,o=t.length;n0){var u=s[0].name,l=s[0].type.toUpperCase();t._getDataService(n,u).then(function(n){var s=n.dataItemServices;0===s.length&&a("noDataServices");var c={layer:r,dataItemServices:s,datasetName:u,featureType:l,resolve:e,reject:a,baseProjection:o};if(i){var f=s.filter(function(e){return e&&"RESTDATA"===e.serviceType})[0];t._isMvt(f.address,u,o).then(function(e){t._getServiceInfoFromLayer(c,e)}).catch(function(){t._getServiceInfoFromLayer(c)})}else t._getServiceInfoFromLayer(c)})}else a("resultIsEmpty")}).catch(function(e){a(e)})})}},{key:"_isMvt",value:function(e,t,r){return this._getDatasetsInfo(e,t).then(function(e){return e.epsgCode==r.split("EPSG:")[1]?H.get(N.urlPathAppend(e.url,"/tilefeature.mvt")).then(function(e){return e.json()}).then(function(t){return e.isMvt=t.error&&400===t.error.code,e}).catch(function(){return e}):e})}},{key:"_getServiceInfoFromLayer",value:function(e,t){var r=this,n=e.layer,o=e.dataItemServices,i=e.datasetName,a=e.featureType,s=e.resolve,u=e.reject,l=e.baseProjection,c=t?!t.isMvt:"HOSTED_TILE"===n.layerType,f=!1;o.forEach(function(e){f||(e&&c&&"RESTMAP"===e.serviceType?(f=!0,r._getTileLayerInfo(e.address,l).then(function(e){s({type:"restMap",restMaps:e})})):e&&!c&&"RESTDATA"===e.serviceType&&(t&&t.isMvt?s({type:"mvt",info:t,featureType:a}):(f=!0,r._getDatasources(e.address).then(function(t){n.dataSource.dataSourceName=t+":"+i,n.dataSource.url="".concat(e.address,"/data"),r._getFeatureBySQL(n.dataSource.url,[n.dataSource.dataSourceName||n.name],function(e){var t=r.parseGeoJsonData2Feature({allDatas:{features:e.result.features.features}});s({type:"feature",features:t})},function(e){u(e)})},function(e){u(e)}))))},this),f||u("noService")}},{key:"_getDatasetsInfo",value:function(e,t){var r=this;return this._getDatasources(e).then(function(n){var o=N.urlPathAppend(e,"/data/datasources/".concat(n,"/datasets/").concat(t)),i=r.handleProxy();return o=r.handleParentRes(o),H.get(o,null,{withCredentials:r.handleWithCredentials(i,o,!1),proxy:i}).then(function(e){return e.json()}).then(function(e){return{epsgCode:e.datasetInfo.prjCoordSys.epsgCode,bounds:e.datasetInfo.bounds,datasourceName:n,datasetName:t,url:o}})})}},{key:"_getDatasources",value:function(e){var t=this.handleProxy(),r=N.urlPathAppend(e,"/data/datasources.json");return r=this.handleParentRes(r),H.get(r,null,{withCredentials:this.handleWithCredentials(t,r,!1),proxy:t}).then(function(e){return e.json()}).then(function(e){if(401===e.code)throw Error(e.errorMsg);return e.datasourceNames[0]})}},{key:"_getDataService",value:function(e,t){var r=this.handleProxy(),n="".concat(this.serverUrl,"web/datas/").concat(e,".json");return n=this.handleParentRes(n),H.get(n,null,{withCredentials:this.handleWithCredentials(r,n,this.withCredentials),proxy:r}).then(function(e){return e.json()}).then(function(r){return r.fileId=e,r.datasetName=t,r})}},{key:"_checkUploadToRelationship",value:function(e){var t=this.handleProxy(),r="".concat(this.serverUrl,"web/datas/").concat(e,"/datasets.json");return r=this.handleParentRes(r),H.get(r,null,{withCredentials:this.handleWithCredentials(t,r,this.withCredentials),proxy:t}).then(function(e){return e.json()}).then(function(e){return e})}},{key:"_handleMapUrl",value:function(){var e=this.serverUrl+"web/maps/"+this.mapId+"/map";this.credentialValue&&this.credentialKey&&(e+="?"+this.credentialKey+"="+this.credentialValue);var t="getUrlResource.json?url=";if(this.excludePortalProxyUrl&&this.serverUrl.indexOf(t)>-1){var r=this.serverUrl.split(t);r.length>1&&(e=r[0]+t+this.serverUrl+"web/maps/"+this.mapId+"/map.json")}return e=-1===e.indexOf(".json")?"".concat(e,".json"):e}},{key:"handleProxy",value:function(e){if(!this.proxy)return null;var t=this.proxyOptions[e||"data"],r=this.serverUrl+t;return"string"==typeof this.proxy&&(r=this.proxy),r}},{key:"handleWithCredentials",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.withCredentials;return t&&t.includes("https://www.supermapol.com")?"":!(!e||!e.startsWith(this.serverUrl)||t&&!t.startsWith(e))||(!!(t&&this.iportalServiceProxyUrl&&t.indexOf(this.iportalServiceProxyUrl)>=0)||r)}},{key:"handleUrlWithCredentials",value:function(e){return!!(e&&this.iportalServiceProxyUrl&&e.indexOf(this.iportalServiceProxyUrl)>=0)||null}},{key:"isIportalResourceUrl",value:function(e){return e.startsWith(this.serverUrl)||this.iportalServiceProxyUrl&&e.indexOf(this.iportalServiceProxyUrl)>=0}},{key:"handleParentRes",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.mapId,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"MAP";return this.isIportalResourceUrl(e)?N.urlAppend(e,"parentResType=".concat(r,"&parentResId=").concat(t)):e}},{key:"_formatGeoJSON",value:function(e){var t=e.features;return t.forEach(function(e,t){e.properties.index=t}),t}},{key:"_excelData2Feature",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=e.colTitles,n=r.indexOf(t.xField),o=r.indexOf(t.yField);if(o<0||n<0)for(var i=0,a=r.length;i2&&void 0!==arguments[2]?arguments[2]:1e-5;return Math.abs(+e-+t)<=r}}])&&qpe(e.prototype,t),r&&qpe(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function Xpe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Zpe(e,t,r){return(t=nhe(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function $pe(){$pe=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==the(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function ehe(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function the(e){"@babel/helpers - typeof";return(the="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function rhe(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:Ma,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"triggerEvent";return function(r){function n(e,t,r){var o;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),(o=ohe(this,n)).serverUrl=t.serverUrl||"https://www.supermapol.com",o.credentialValue=t.credentialValue,o.credentialKey=t.credentialKey,o.tiandituKey=t.tiandituKey||"",o.googleMapsAPIKey=t.googleMapsAPIKey||"",o.bingMapsKey=t.bingMapsKey||"",o.googleMapsLanguage=t.googleMapsLanguage||"zh-CN",o.withCredentials=t.withCredentials||!1,o.proxy=t.proxy,o.target=t.target||"map",o.excluortalProxyUrl=t.excludePortalProxyUrl,o.isSuperMapOnline=t.isSuperMapOnline,o.ignoreBaseProjection=t.ignoreBaseProjection,o.specifiedProj4=t.proj4,o.echartslayer=[],o.canvgsV=[],o.webMapService=new Jpe(e,t),o.mapOptions=r,o.eventTypes=["mapcreatefailed","layercreatefailed"],o.mapId=e,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&ahe(e,t)}(n,e),o=n,(i=[{key:"_initWebMap",value:function(){throw new Error("_initWebMap is not implemented")}},{key:"_getMapInfo",value:function(){throw new Error("_getMapInfo is not implemented")}},{key:"_createMap",value:function(){throw new Error("_createMap is not implemented")}},{key:"_initBaseLayer",value:function(){throw new Error("_initBaseLayer is not implemented")}},{key:"_initOverlayLayer",value:function(){throw new Error("_initOverlayLayer is not implemented")}},{key:"_addLayerSucceeded",value:function(){throw new Error("_addLayerSucceeded is not implemented")}},{key:"_unproject",value:function(){throw new Error("_unproject is not implemented")}},{key:"clean",value:function(){throw new Error("clean is not implemented")}},{key:"echartsLayerResize",value:function(){this.echartslayer.forEach(function(e){e.chart.resize()})}},{key:"setMapId",value:function(e){var t=this;"string"==typeof e||"number"==typeof e?(this.mapId=e,this.webMapInfo=null):null!==e&&"object"===the(e)&&(this.webMapInfo=e,this.mapId=""),this.webMapService.setMapId(e),e&&setTimeout(function(){t._initWebMap()},0)}},{key:"setServerUrl",value:function(e){this.serverUrl=e,this.webMapService.setServerUrl(e)}},{key:"setWithCredentials",value:function(e){this.withCredentials=e,this.webMapService.setWithCredentials(e)}},{key:"setProxy",value:function(e){this.proxy=e,this.webMapService.setProxy(e)}},{key:"setZoom",value:function(e){this.map&&(this.mapOptions.zoom=e,e!==+this.map.getZoom().toFixed(2)&&(e||0===e)&&this.map.setZoom(e,{from:"setZoom"}))}},{key:"setMaxBounds",value:function(e){this.map&&(this.mapOptions.maxBounds=e,e&&this.map.setMaxBounds(e))}},{key:"setMinZoom",value:function(e){this.map&&(this.mapOptions.minZoom=e,(e||0===e)&&this.map.setMinZoom(e))}},{key:"setMaxZoom",value:function(e){this.map&&(this.mapOptions.maxZoom=e,(e||0===e)&&this.map.setMaxZoom(e))}},{key:"initWebMap",value:function(){if(this.clean(),this.serverUrl=this.serverUrl&&this.webMapService.handleServerUrl(this.serverUrl),this.webMapInfo){var e=this.webMapInfo;return e.mapParams={title:this.webMapInfo.title,description:this.webMapInfo.description},this.mapParams=e.mapParams,void this._getMapInfo(e)}this.mapId&&this.serverUrl?(this._taskID=new Date,this.getMapInfo(this._taskID)):this._createMap()}},{key:"getMapInfo",value:function(e){var t=this;this.serverUrl=this.serverUrl&&this.webMapService.handleServerUrl(this.serverUrl),this.webMapService.getMapInfo().then(function(r){t._taskID===e&&(t.mapParams=r.mapParams,t._getMapInfo(r,e))},function(e){throw e}).catch(function(e){t._fire("mapcreatefailed",{error:e}),console.log(e)})}},{key:"getBaseLayerType",value:function(e){var t=e.layerType;switch((t.indexOf("TIANDITU_VEC")>-1||t.indexOf("TIANDITU_IMG")>-1||t.indexOf("TIANDITU_TER")>-1)&&(t="TIANDITU"),t){case"TILE":case"SUPERMAP_REST":return"TILE";case"CLOUD":case"CLOUD_BLACK":return"CLOUD";case"OSM":case"JAPAN_ORT":case"JAPAN_RELIEF":case"JAPAN_PALE":case"JAPAN_STD":case"GOOGLE_CN":case"GOOGLE":return"XYZ";default:return t}}},{key:"getMapurls",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{CLOUD:e.CLOUD||"http://t2.dituhui.com/FileService/image?map=quanguo&type=web&x={x}&y={y}&z={z}",CLOUD_BLACK:e.CLOUD_BLACK||"http://t3.dituhui.com/MapService/getGdp?x={x}&y={y}&z={z}",OSM:e.OSM||"https://{a-c}.tile.openstreetmap.org/{z}/{x}/{y}.png",GOOGLE:"https://maps.googleapis.com/maps/vt?pb=!1m5!1m4!1i{z}!2i{x}!3i{y}!4i256!2m3!1e0!2sm!3i540264686!3m12!2s{googleMapsLanguage}!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key={googleMapsAPIKey}",GOOGLE_CN:"https://mt{0-3}.google.com/vt/lyrs=m&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}",JAPAN_STD:"https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png",JAPAN_PALE:"https://cyberjapandata.gsi.go.jp/xyz/pale/{z}/{x}/{y}.png",JAPAN_RELIEF:"https://cyberjapandata.gsi.go.jp/xyz/relief/{z}/{x}/{y}.png",JAPAN_ORT:"https://cyberjapandata.gsi.go.jp/xyz/ort/{z}/{x}/{y}.jpg"}}},{key:"getLayerFeatures",value:function(e,t,r){var n=this,o=this.webMapService.getLayerFeatures(r,e,this.baseProjection);o&&o.then(function(){var r,o=(r=$pe().mark(function r(o){var i;return $pe().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!n.mapId||n._taskID===t){r.next=2;break}return r.abrupt("return");case 2:if(!o||!e.projection){r.next=8;break}if(mC(e.projection,n.specifiedProj4)){r.next=8;break}return r.next=6,bC(e.projection.split(":")[1],n.serverUrl);case 6:(i=r.sent)&&dC(e.projection,i,n.specifiedProj4);case 8:n._getLayerFeaturesSucceeded(o,e);case 9:case"end":return r.stop()}},r)}),function(){var e=this,t=arguments;return new Promise(function(n,o){var i=r.apply(e,t);function a(e){ehe(i,n,o,a,s,"next",e)}function s(e){ehe(i,n,o,a,s,"throw",e)}a(void 0)})});return function(e){return o.apply(this,arguments)}}(),function(e){throw new Error(e)}).catch(function(t){n._addLayerSucceeded(),n._fire("layercreatefailed",{error:t,layer:e,map:n.map}),console.log(t)})}},{key:"setFeatureInfo",value:function(e){var t,r=e.dv_v5_markerInfo;if(!r||!r.dataViz_title)return r;t=r;var n=e.properties;for(var o in t)n[o]&&(t[o]=n[o],delete n[o]);return t}},{key:"getRankStyleGroup",value:function(e,t,r){var n=[],o=[],i=r.style,a=r.themeSetting,s=a.segmentMethod,u=a.segmentCount,l=a.customSettings,c=r.themeSetting.minRadius,f=r.themeSetting.maxRadius,p=a.colors,h=i.fillColor;t.forEach(function(t){var r=t.properties[e];null==r||""===r||isNaN(+r)||n.push(Number(r))});try{o=loe.getArraySegments(n,s,u)}catch(e){console.log(e)}for(var y=0;y0&&(C=l[x]&&l[x].color?l[x].color:E[x]||h,i.fillColor=C),v.push({radius:S,color:C,start:g,end:b,style:i});return v}return!1}},{key:"createRankStyleSource",value:function(e,t){var r=e.themeSetting.themeField,n=this.getRankStyleGroup(r,t,e);return!!n&&{parameters:e,styleGroups:n}}},{key:"getRestMapLayerInfo",value:function(e,t){var r=e.bounds,n=e.coordUnit,o=e.visibleScales,i=e.url;return t.layerType="TILE",t.orginEpsgCode=this.baseProjection,t.units=n&&n.toLowerCase(),t.extent=[r.left,r.bottom,r.right,r.top],t.visibleScales=o,t.url=i,t.sourceType="TILE",t}},{key:"handleLayerFeatures",value:function(e,t){var r=t.layerType,n=t.style,o=t.themeSetting,i=t.filterCondition;return(n||o)&&i&&"RANGE"!==r&&"UNIQUE"!==r&&"RANK_SYMBOL"!==r&&(e=this.getFilterFeatures(i,e)),e}},{key:"getFilterFeatures",value:function(e,t){if(!e)return t;for(var r=this.replaceFilterCharacter(e),n=[],o=0;o0&&n.push(i)}return n}},{key:"replaceFilterCharacter",value:function(e){return e=e.replace(/=/g,"==").replace(/AND|and/g,"&&").replace(/or|OR/g,"||").replace(/<==/g,"<=").replace(/>==/g,">=")}},{key:"getParseSpecialCharacter",value:function(){var e={};return["(",")","(",")",",",","].forEach(function(t,r){e[t]="$".concat(r)}),e}},{key:"parseSpecialCharacter",value:function(e){var t=this.getParseSpecialCharacter();for(var r in t)for(var n=t[r],o=new RegExp("\\".concat(r),"g");o.test(e);)e=e.replace(o,n);return e}},{key:"parseCondition",value:function(e,t){var r=this,n=e;return e.replace(/&|\||>|<|=|!/g," ").split(" ").filter(function(e){return e}).forEach(function(e){var o=t.find(function(t){return t===e});if(r.startsWithNumber(e)&&o&&(n=n.replace(o,"$"+o)),o){var i=r.parseSpecialCharacter(o);n=n.replace(o,i)}}),n}},{key:"parseConditionFeature",value:function(e){var t={};for(var r in e){var n=r;this.startsWithNumber(r)&&(n="$"+r),t[n=this.parseSpecialCharacter(n)]=e[r]}return t}},{key:"startsWithNumber",value:function(e){return/^\d/.test(e)}},{key:"getEchartsLayerOptions",value:function(e,t,r){var n=this.webMapService.getFeatureProperties(t),o=function(e,t){var r=[];if(t&&t.length){var n,o,i=e.from,a=e.to;if("XY_FIELD"===i.type&&i.xField&&i.yField&&a.xField&&a.yField)t.forEach(function(e){var t=e[i.xField],s=e[i.yField],u=e[a.xField],l=e[a.yField];t&&s&&u&&l&&(n=[e[i.xField],e[i.yField]],o=[e[a.xField],e[a.yField]],r.push({coords:[n,o]}))});else if("PLACE_FIELD"===i.type&&i.field&&a.field){var s=mo.concat(yo);t.forEach(function(e){var t=e[i.field],u=e[a.field];n=s.find(function(e){return Co(e.name,t)}),o=s.find(function(e){return Co(e.name,u)}),n&&o&&r.push({coords:[n.coord,o.coord]})})}}return r}(e,n),i=this._createPointsData(o,e,n);return this._createOptions(e,o,i,r)}},{key:"getEchartsLayerById",value:function(e){return this.echartslayer.find(function(t){return t.id===e})}},{key:"getDashStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"array";if(!e)return"array"===r?[]:"";var n,o=t;switch(e){case"solid":n=[];break;case"dot":n=[1,4*o];break;case"dash":n=[4*o,4*o];break;case"dashrailway":n=[8*o,12*o];break;case"dashdot":n=[4*o,4*o,1*o,4*o];break;case"longdash":n=[8*o,4*o];break;case"longdashdot":n=[8*o,4*o,1,4*o];break;default:n=N.isArray(e)?e:(e=h.trim(e).replace(/\s+/g,",")).replace(/\[|\]/gi,"").split(",")}return n="array"===r?n:n.join(",")}},{key:"getCanvasFromSVG",value:function(e,t,r){var n=this,o=document.createElement("canvas");if(o.id="dataviz-canvas-".concat((new Date).getTime()),o.style.display="none",t.appendChild(o),e){var i=jce,a=o.getContext("2d");i.from(a,e,{ignoreMouse:!0,ignoreAnimation:!0,forceRedraw:function(){return!1}}).then(function(e){e.start(),n.canvgsV.push(e),o.width>300||o.height>300||r(o)})}else r(o)}},{key:"stopCanvg",value:function(){this.canvgsV.forEach(function(e){return e.stop()}),this.canvgsV=[]}},{key:"getRangeStyleGroup",value:function(e,t){var r,n=e.featureType,o=e.style,i=e.themeSetting,a=i.customSettings,s=i.themeField,u=i.segmentCount,l=i.segmentMethod,c=i.colors,f=[];t.forEach(function(e){if(r=e.properties){var t=r[s];(t||0===t)&&!isNaN(+t)&&f.push(parseFloat(t))}},this);var p=f&&f.length&&loe.getArraySegments(f,l,u);if(p){var h=u;r&&p[0]===p[r.length-1]&&(h=1,p.length=2);for(var y=0;yl&&o>0||"\n"===e[o]?(t=e[o],f++,n=!0):(t=i,c=a)}n?p.push(l):p.push(c)},this);for(var h=0;h=l){c=l;break}y>c&&(c=y)}return c+=a,t=f*i+a-6,s.width=c,s.height=t,r.fillStyle=u,r.fillRect(0,0,c,t),r.lineWidth=n.borderWidth,r.strokeStyle=n.borderColor,r.strokeRect(0,0,c,t),{width:c,height:t}}},{key:"_drawTextWithCanvas",value:function(e){var t=e.context,r=e.canvas,n=e.style,o=Number(n.font.replace(/[^0-9]/gi,""))+3,i=n.text.split("\r\n");t.font=n.font;var a=this._drawTextRectAndGetSize({context:t,style:n,textArray:i,lineHeight:o,doublePadding:16,canvas:r}),s=8;i.forEach(function(e,r){0!==r&&(s+=o),t.font=n.font;var i,u=n.textAlign,l=a.width-16;switch(u){case"center":i=l/2;break;case"right":i=l;break;default:i=8}for(var c=e.split(""),f="",p=n.fillColor,h=n.maxWidth-16,y=0;yh&&y>0||"\n"===c[y]?(t.fillStyle=p,t.textAlign=u,t.textBaseline="top",t.fillText(f,i,s),f=c[y],s+=o):f=d}t.fillStyle=p,t.textAlign=u,t.textBaseline="top",t.fillText(f,i,s)},this)}},{key:"handleSvgColor",value:function(e,t){var r=e.fillColor,n=e.fillOpacity,o=e.strokeColor,i=e.strokeOpacity,a=e.strokeWidth,s=t.getContext("2d");e.text?this._drawTextWithCanvas({context:s,canvas:t,style:e}):(r&&(s.fillStyle=ioe.getColorWithOpacity(r,n),s.fill()),(o||a)&&(s.strokeStyle=ioe.getColorWithOpacity(o,i),s.lineWidth=a,s.stroke()))}},{key:"_createPointsData",value:function(e,t,r){var n=[],o=t.labelSetting;if(!o.show||!e.length)return n;var i=[],a=[];return e.forEach(function(e,t){var n=e.coords,s=n[0],u=n[1],l=r[t][o.from],c=r[t][o.to];!i.find(function(e){return e.value[0]===s[0]&&e.value[1]===s[1]})&&i.push({name:l,value:s}),!a.find(function(e){return e.value[0]===u[0]&&e.value[1]===u[1]})&&a.push({name:c,value:u})}),n=i.concat(a)}},{key:"_createOptions",value:function(e,t,r,n){var o,i=this._createLineSeries(e,t,n);if(r&&r.length){var a=this._createPointSeries(e,r,n);o=i.concat(a)}else o=i.slice();return{series:o,animation:!1}}},{key:"_createPointSeries",value:function(e,t,r){var n=e.lineSetting,o=e.animationSetting,i=e.labelSetting,a=[{name:"point-series",coordinateSystem:r,zlevel:2,label:{normal:{show:i.show,position:"right",formatter:"{b}",color:i.color,fontFamily:i.fontFamily}},itemStyle:{normal:{color:n.color||i.color}},data:t}];return o.show?(a[0].type="effectScatter",a[0].rippleEffect={brushType:"stroke"}):a[0].type="scatter",a}},{key:"_createLineSeries",value:function(e,t,r){var n=e.lineSetting,o=e.animationSetting,i=[{name:"line-series",coordinateSystem:r,type:"lines",zlevel:1,effect:{show:o.show,constantSpeed:o.constantSpeed,trailLength:0,symbol:o.symbol,symbolSize:o.symbolSize},lineStyle:{normal:{color:n.color,type:n.type,width:n.width,opacity:n.opacity,curveness:n.curveness}},data:t}];return t.length>=she&&(i[0].large=!0,i[0].largeThreshold=100,i[0].blendMode="lighter"),i}},{key:"_getLayerFeaturesSucceeded",value:function(e,t){switch(e.type){case"feature":this._initOverlayLayer(t,e.features);break;case"restMap":t.layerType="restMap",this._initOverlayLayer(t,e.restMaps);break;case"mvt":t.layerType="mvt",this._initOverlayLayer(t,e);break;case"dataflow":case"noServerId":this._initOverlayLayer(t)}}},{key:"_fire",value:function(e,r){this[t]&&this[t](e,r)}}])&&rhe(o.prototype,i),a&&rhe(o,a),Object.defineProperty(o,"prototype",{writable:!1}),o;var o,i,a}()}function lhe(e){"@babel/helpers - typeof";return(lhe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function che(e){return function(e){if(Array.isArray(e))return fhe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return fhe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fhe(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fhe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function mhe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=Che(this,t)).map=r.map,e.appendLayers=r.appendLayers||!1,e.unexpectedSourceNames=["tdt-search-","tdt-route-","smmeasure","mapbox-gl-draw","maplibre-gl-draw",/tracklayer-\d+-line/,/graticuleLayer_\d+_line/],e.uniqueId=+new Date,e.layersVisibleMap=new Map,e.eventTypes=["layerupdatechanged"],e._styleDataUpdatedHandler=e._styleDataUpdatedHandler.bind(e),e.baseLayerInfoOnMap=null,e.setLayers(r.layers),e._initBaseLayerInfo(r.layers),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&xhe(e,t)}(t,Ma),r=t,(n=[{key:"setLayers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.layers=e}},{key:"setDefaultBaseLayerInfo",value:function(e){this.baseLayerInfoOnMap=e}},{key:"setBaseLayer",value:function(){throw new Error("setBaseLayer is not implemented")}},{key:"createLayerCatalogs",value:function(){throw new Error("createLayerCatalogs is not implemented")}},{key:"getSelfLayerIds",value:function(){throw new Error("getSelfLayerIds is not implemented")}},{key:"initLayers",value:function(){throw new Error("initLayers is not implemented")}},{key:"changeBaseLayer",value:function(e){if(this.map)return this._removeBaseLayer(),this._addBaseLayer(e),_S()(this.baseLayerInfoOnMap)}},{key:"createAppreciableLayers",value:function(){var e=this.initLayers();return this._initAppreciableLayers(e)}},{key:"getLayerCatalog",value:function(){var e=this.createLayerCatalogs();return this._updateLayerCatalogsVisible(e),this._updateImmutableOrderLayers(e)}},{key:"getLayers",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.createAppreciableLayers();return e&&this.removeLayerExtralFields(t),this._updateImmutableOrderLayers(t,!0)}},{key:"getSelfLayers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getLayers(),t=this.getSelfLayerIds();return e.filter(function(e){return e.renderLayers.some(function(e){return t.some(function(t){return t===e})})})}},{key:"toggleLayerVisible",value:function(e,t){var r=t?"visible":"none";if("group"===e.type){var n=this._getLayerVisibleId(e);this.layersVisibleMap.set(n,t);var o=Io(e.children);o.length?this.setLayersVisible(o,r):this.map.style.fire("data",{dataType:"style"})}else this.setLayersVisible([e],r)}},{key:"setLayersVisible",value:function(e,t){var r=this,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e.forEach(function(e){var o=r._getLayerVisibleId(e);if(n&&r.layersVisibleMap.set(o,"visible"===t),e.CLASS_INSTANCE&&e.CLASS_INSTANCE.show&&e.CLASS_INSTANCE.hide)return"visible"===t?e.CLASS_INSTANCE.show():e.CLASS_INSTANCE.hide(),void r.map.style.fire("data",{dataType:"style"});e.renderLayers.forEach(function(n){("L7Layer"!==e.CLASS_NAME||r.map.getLayer(n))&&r.map.setLayoutProperty(n,"visibility",t)})})}},{key:"concatExpectLayers",value:function(e,t,r){var n=r.filter(function(e){return!t.some(function(t){return t===e.id})});return this._filterExpectedLayers(e.concat(n))}},{key:"destroy",value:function(){this.map.off("styledata",this._styleDataUpdatedHandler)}},{key:"initDatas",value:function(){this.map&&(this._styleDataUpdatedHandler(),this._registerMapEvent())}},{key:"removeLayerExtralFields",value:function(e){e.forEach(function(e){delete e.metadata})}},{key:"_initAppreciableLayers",value:function(e){var t=this;return e.reduce(function(e,r){var n=ko(r),o=e.find(function(e){return e.id===n});o||(o=t._createCommonFields(r,n),e.push(o));var i=o.renderLayers.concat(r.layerInfo?r.layerInfo.renderLayers:r.id);return o.renderLayers=Array.from(new Set(i)),e},[])}},{key:"_initSourceList",value:function(e){var t=this;return e.slice().reverse().reduce(function(e,r){var n=r.renderSource.sourceLayer?"".concat(r.renderSource.id,"_").concat(t.uniqueId):r.id,o=r.metadata.SM_Layer_Title||(r.renderSource.sourceLayer?r.renderSource.id:r.title),i=e.find(function(e){return e.id===n});if(!i){var a=new yhe(bhe(bhe({},r),{},{id:n,title:o}));e.push(a),i=a}return i.addLayer(r),e},[])}},{key:"_filterExpectedLayers",value:function(e){var t=this;return e.filter(function(e){return t._excludeLayer(e)})}},{key:"_excludeSource",value:function(e){for(var t=0;t0){var i=this._findLayerCatalog(o.children,t);if(i)return i}}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"_getLayerVisibleId",value:function(e){return"".concat(e.type,"-").concat(e.id)}},{key:"_getLayerVisible",value:function(e){var t=this._getLayerVisibleId(e);return this.layersVisibleMap.has(t)?this.layersVisibleMap.get(t):e.visible}},{key:"_updateLayerCatalogsVisible",value:function(e){var t,r=dhe(e);try{for(r.s();!(t=r.n()).done;){var n=t.value;n.visible=this._getLayerVisible(n),"group"===n.type&&this._updateLayerCatalogsVisible(n.children)}}catch(e){r.e(e)}finally{r.f()}}},{key:"_registerMapEvent",value:function(){this.map.on("styledata",this._styleDataUpdatedHandler)}},{key:"_styleDataUpdatedHandler",value:function(){var e=this.getLayers();this.triggerEvent("layerupdatechanged",{layers:e,relevantLayers:this.getSelfLayers(e),layerCatalog:this.getLayerCatalog()})}},{key:"_updateImmutableOrderLayers",value:function(e,t){var r=e.filter(function(e){return e.layerOrder&&"top"===e.layerOrder.toLowerCase()}),n=r.filter(function(e){return"MIGRATION"===e.type}),o=r.filter(function(e){return"MIGRATION"!==e.type});r=n.concat(o);var i=e.filter(function(e){return e.layerOrder&&"bottom"===e.layerOrder.toLowerCase()}),a=e.filter(function(e){return!e.layerOrder||"auto"===e.layerOrder.toLowerCase()});return t?i.concat(a,r):r.concat(a,i)}},{key:"_addBaseLayer",value:function(e){var t=this,r=e.layers,n=e.sources,o={};Object.keys(n).forEach(function(e){var r=e;t.map.getSource(e)&&(o[e]="".concat(e,"_").concat(+new Date),r=o[e]),t.map.addSource(r,n[e])});var i=[];r.forEach(function(e){var r=e.beforeId;if(!r){var n=t.map.getStyle();r=n.layers[0]&&n.layers[0].id}var a=Object.assign({},e);delete a.beforeId;var s=a.source;if(o[s]&&(a.source=o[s]),t.map.getLayer(a.id)){var u="".concat(a.id,"_").concat(a.source||+new Date);a.id=u}i.push({layer:a,beforeId:r})}),this.baseLayerInfoOnMap=bhe(bhe({},e),{},{layers:i.map(function(e){return Object.assign({},e.layer)}),sources:Object.keys(e.sources).reduce(function(e,t){var r=t;return o[r]&&(r=o[r]),e[r]=o[t],e},{})}),this.setBaseLayer(bhe({},this.baseLayerInfoOnMap)),i.forEach(function(e){var r=e.layer,n=e.beforeId;t.map.addLayer(r,n)})}},{key:"_removeBaseLayer",value:function(){var e=this;if(this.baseLayerInfoOnMap){var t=this.baseLayerInfoOnMap,r=t.layers,n=t.sources,o=r.map(function(e){return e.id}),i=Object.keys(n);o.forEach(function(t){e.map.getLayer(t)&&e.map.removeLayer(t)}),i.forEach(function(t){e.map.getSource(t)&&e.map.removeSource(t)})}}},{key:"_initBaseLayerInfo",value:function(e){if(e&&e.length&&!this.baseLayerInfoOnMap){var t=this.layers[0],r=this.map.getStyle().layers,n=t.renderLayers.map(function(e){var n=r.find(function(t){return t.id===e});if(n){var o=r.findIndex(function(t){return t.id===e})+1;r[o]&&(n.beforeId=r[o].id),n.metadata&&n.metadata.SM_Layer_Title||(n.metadata=bhe(bhe({},n.metadata),{},{SM_Layer_Title:t.title}))}return n}).filter(Boolean),o=this.map.getStyle().sources;this.setDefaultBaseLayerInfo({id:"__default__".concat(t.id),title:t.title,layers:n,sources:n.reduce(function(e,t){var r=t.source;return r&&!e[r]&&(e[r]=o[r]),e},{})})}}}])&&whe(r.prototype,n),o&&whe(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Ihe(e){"@babel/helpers - typeof";return(Ihe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ohe(e){return function(e){if(Array.isArray(e))return khe(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return khe(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?khe(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function khe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=Bhe(this,t,[r])).initDatas(),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Rhe(e,t)}(t,_he),r=t,(n=[{key:"createLayerCatalogs",value:function(){var e=this.getLayers(!1);return this._initSourceList(e)}},{key:"getSelfLayerIds",value:function(){return this.layers.reduce(function(e,t){return e.concat(t.renderLayers)},[])}},{key:"initLayers",value:function(){var e=this,t=this._getAllLayersOnMap(),r=t;this.appendLayers&&(r=t.filter(function(t){return e.layers.some(function(r){return e._isBelongToMapJSON(r,t)})}));var n=[],o=[];return this.layers.forEach(function(t){var i=r.filter(function(r){return e._isBelongToMapJSON(t,r)}),a=i.find(function(e){return e.id===t.id});if(i.length>0){if(a)n.push(The(The({},a),{},{layerInfo:The(The({},t),{},{dataSource:t.dataSource||t.serverId&&{serverId:t.serverId}})}));else{var s=i.map(function(e){var r=Object.assign({},e);return r.metadata=Object.assign({},r.metadata,{SM_Layer_Title:t.name}),r});n.push.apply(n,Ohe(s))}o.push.apply(o,Ohe(t.renderLayers))}}),this.concatExpectLayers(n,o,r)}},{key:"setBaseLayer",value:function(e){var t=this.layers.slice(1),r=(e.layers[0]||{}).id||"",n={id:e.id||r,visible:!0,name:e.title||r,title:e.title||r,renderLayers:e.layers.map(function(e){return e.id})};t.unshift(n),this.setLayers(t)}},{key:"_isBelongToMapJSON",value:function(e,t){return e.renderLayers&&e.renderLayers.some(function(e){return e===t.id})}}])&&Mhe(r.prototype,n),o&&Mhe(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,o}();function Fhe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Qhe(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{layerFilter:function(){return!0}},o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{style:{version:8,sources:{},layers:[]}};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),t=qhe(this,n),"string"==typeof e||"number"==typeof e?t.mapId=e:null!==e&&"object"===Uhe(e)&&(t.webMapInfo=e),t.mapId||o.center||o.zoom||(o.center=[0,0],o.zoom=0),r.map&&(t.map=r.map),t.options=Object.assign({},r),delete t.options.map,t._setServer(r.server||"https://www.supermapol.com"),t.options.target=r.target||"map",t.options.withCredentials=r.withCredentials||!1,t.mapOptions=o,t.webMapService=new Jpe(e,t.options),t.eventTypes=["mapinitialized","mapcreatesucceeded","addlayerssucceeded","mapcreatefailed","getmapfailed","layercreatefailed","getlayersfailed","baidumapnotsupport","layerorsourcenameduplicated","dataflowfeatureupdated","projectionnotmatch","xyztilelayernotsupport","layeraddchanged","layerupdatechanged","mapbeforeremove"],t._cacheCleanLayers=[],t._mapInitializedHandler=t._mapInitializedHandler.bind(t),t._mapCreateSucceededHandler=t._mapCreateSucceededHandler.bind(t),t._addLayerChangedHandler=t._addLayerChangedHandler.bind(t),t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Khe(e,t)}(n,e),o=n,(i=[{key:"resize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.map&&this.map.resize(),this._handler&&this._handler.echartsLayerResize();var t=window.getComputedStyle(document.getElementById(this.options.target)),r=this.mapOptions.bounds;if(e&&this.map&&r&&t){var n=this._getResizedZoom(r,t);n!==this.map.getZoom()&&this.map&&this.map.setZoom(n)}}},{key:"setCenter",value:function(e){if(this.map&&this._centerValid(e)){this.mapOptions.center=e;var t=this.map.getCenter(),r=t.lng,n=t.lat;e[0]===+r.toFixed(4)&&e[1]===+n.toFixed(4)||this.map.setCenter(e,{from:"setCenter"})}}},{key:"setRenderWorldCopies",value:function(e){this.map&&(this.mapOptions.renderWorldCopies=e,this.map.setRenderWorldCopies(e))}},{key:"setBearing",value:function(e){this.map&&(this.mapOptions.bearing=e,e!==+this.map.getBearing().toFixed(2)&&(e||0===e)&&this.map.setBearing(e))}},{key:"setPitch",value:function(e){this.map&&(this.mapOptions.pitch=e,e!==+this.map.getPitch().toFixed(2)&&(e||0===e)&&this.map.setPitch(e))}},{key:"setStyle",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.map){if(this.mapOptions.style=e,t&&this.cleanLayers(),this._isWebMapV3(e))return void this.setMapId(e,t);this._initWebMap(!t)}}},{key:"setRasterTileSize",value:function(e){var t=this;if(this.map&&!(e<=0)){var r=this.map.getStyle().sources;Object.keys(r).forEach(function(n){"raster"===r[n].type&&"iserver"===r[n].rasterSource&&t._updateRasterSource(n,{tileSize:e})})}}},{key:"setMaxBounds",value:function(e){this.map&&(this.mapOptions.maxBounds=e,e&&this.map.setMaxBounds(e))}},{key:"setMinZoom",value:function(e){this.map&&(this.mapOptions.minZoom=e,(e||0===e)&&this.map.setMinZoom(e))}},{key:"setMaxZoom",value:function(e){this.map&&(this.mapOptions.maxZoom=e,(e||0===e)&&this.map.setMaxZoom(e))}},{key:"setWebMapOptions",value:function(e){this.setServerUrl(e.server),this._initWebMap()}},{key:"setMapOptions",value:function(e){var t=e.center,r=e.zoom,n=e.maxBounds,o=e.minZoom,i=e.maxZoom,a=e.isWorldCopy,s=e.bearing,u=e.pitch;t&&t.length&&this.setCenter(t),r&&this.setZoom(r),n&&this.setMaxBounds(n),o&&this.setMinZoom(o),i&&this.setMaxZoom(i),a&&this.setRenderWorldCopies(a),s&&this.setBearing(s),u&&this.setPitch(u)}},{key:"getPopupInfos",value:function(){return this._handler&&this._handler._getPopupInfos()||[]}},{key:"getLegendInfos",value:function(){return this._handler&&this._handler._getLegendInfos()||[]}},{key:"getLayers",value:function(){return this._handler&&this._handler.getLayers()||[]}},{key:"getLegends",value:function(){return this._handler&&this._handler.getLegends()||[]}},{key:"getLayerCatalog",value:function(){return this._handler&&this._handler.getLayerCatalog()||[]}},{key:"setLayersVisible",value:function(){var e;this._handler&&(e=this._handler).setLayersVisible.apply(e,arguments)}},{key:"toggleLayerVisible",value:function(){var e;this._handler&&(e=this._handler).toggleLayerVisible.apply(e,arguments)}},{key:"getWebMapType",value:function(){return this.type}},{key:"rectifyLayersOrder",value:function(){var e;this._handler&&(e=this._handler).rectifyLayersOrder.apply(e,arguments)}},{key:"updateOverlayLayer",value:function(){var e;this._handler&&(e=this._handler).updateOverlayLayer.apply(e,arguments)}},{key:"copyLayer",value:function(){var e;return this._handler&&(e=this._handler).copyLayer.apply(e,arguments)}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.map&&(e&&this._fire("mapbeforeremove",{map:this.map}),this._handler&&(this._handler.clean(e),this._handler=null),e&&(this.map=null),this.mapOptions&&(this.mapId||this.webMapInfo)&&(this.mapOptions.center=null,this.mapOptions.zoom=null))}},{key:"cleanLayers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._cacheCleanLayers.filter(function(e){return!e.reused}),t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.map){var r=this._cacheCleanLayers.filter(function(e){return!e.reused});if(this._handler&&this._handler.cleanLayers(e),this._cacheCleanLayers=r.filter(function(t){return!e.some(function(e){return e.id===t.id})}),t)this.clean(!1);else{var n=this.getLegends();this._handler.setLegends(n.filter(function(t){return!e.some(function(e){return e.id===t.layerId})}))}}}},{key:"changeBaseLayer",value:function(){var e;return this._handler&&(e=this._handler).changeBaseLayer.apply(e,arguments)}},{key:"_readyForInitializingWebMap",value:function(){this._initWebMap(!this.map)}},{key:"_initWebMap",value:function(){var e=this;if((!(arguments.length>0&&void 0!==arguments[0])||arguments[0])&&this.clean(),this.webMapInfo){var t=this.webMapInfo;return t.mapParams={title:this.webMapInfo.title,description:this.webMapInfo.description},this.mapParams=t.mapParams,void Promise.resolve().then(function(){e._getMapInfo(t)}).catch(function(t){e._fire("mapcreatefailed",{error:t})})}this.mapId&&this.options.serverUrl?(this._taskID=new Date,this.getMapInfo(this._taskID)):Promise.resolve().then(function(){e._createMap("MapStyle")}).catch(function(t){e._fire("mapcreatefailed",{error:t})})}},{key:"setZoom",value:function(e){this.map&&(this.mapOptions.zoom=e,e!==+this.map.getZoom().toFixed(2)&&(e||0===e)&&this.map.setZoom(e,{from:"setZoom"}))}},{key:"setServerUrl",value:function(e){this._setServer(e),this.webMapService.setServerUrl(this.options.serverUrl)}},{key:"setWithCredentials",value:function(e){this.options.withCredentials=e,this.webMapService.setWithCredentials(e)}},{key:"setProxy",value:function(e){this.options.proxy=e,this.webMapService.setProxy(e)}},{key:"setMapId",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];"string"==typeof e||"number"==typeof e?(this.mapId=e,this.webMapInfo=null):null!==e&&"object"===Uhe(e)&&(this.webMapInfo=e,this.mapId=""),this.webMapService.setMapId(e),e&&setTimeout(function(){t._initWebMap(!r)},0)}},{key:"getMapInfo",value:function(e){var t=this;this.webMapService.getMapInfo().then(function(r){t._taskID===e&&(t.mapParams=r.mapParams,t._getMapInfo(r))},function(e){throw e}).catch(function(e){t._fire("mapcreatefailed",{error:e}),console.log(e)})}},{key:"_createWebMapFactory",value:function(){throw new Error("_createWebMapFactory is not implemented")}},{key:"_mapInitializedHandler",value:function(e){var t=e.map;this.map=t,this._fire("mapinitialized",{map:this.map})}},{key:"_mapCreateSucceededHandler",value:function(e){this.mapParams=e.mapparams,this._cacheCleanLayers=e.layers,this._fire("mapcreatesucceeded",e)}},{key:"_addLayerChangedHandler",value:function(e){this._cacheCleanLayers=e.layers,this.fire("layeraddchanged",e)}},{key:"_isWebMapV3",value:function(e){if(!e.version)return!1;var t="".concat(e.version).split(".");return!(t.length<=1)&&+t[0]>=3}},{key:"_getMapInfo",value:function(e){var t=this._isWebMapV3(e)?"WebMap3":"WebMap2";this._createMap(t,e)}},{key:"_createMap",value:function(e,t){var r=this,n=Qhe(Qhe({},this.options),{},{iportalServiceProxyUrlPrefix:this.webMapService.iportalServiceProxyUrl}),o=Qhe(Qhe({},this.eventTypes.reduce(function(e,t){return e[t]=function(e){r._fire(t,e)},e},{})),{},{mapinitialized:this._mapInitializedHandler,mapcreatesucceeded:this._mapCreateSucceededHandler,layeraddchanged:this._addLayerChangedHandler}),i=_S()(this.mapOptions),a=this._createWebMapFactory(e),s=this.mapId||this.webMapInfo;for(var u in this._handler=new a(s,n,i),o)this._handler.on(u,o[u]);var l={},c=this.options.layerFilter;t&&(l=Qhe(Qhe({},t),{},{layers:"function"==typeof c?t.layers.filter(c):t.layers})),this.type=e,this._handler.initializeMap(l,this.map)}},{key:"_updateRasterSource",value:function(e,t){if(e){var r=this.map.getSource(e);Object.assign(r,t),this.map.style.sourceCaches[e].clearTiles(),this.map.style.sourceCaches[e].update(this.map.transform),this.map.triggerRepaint()}}},{key:"_getResizedZoom",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:512,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:Yhe,o=t.width,i=t.height,a=Math.abs(e.getEast()-e.getWest()),s=Math.abs(this._getBoundsRadian(e.getSouth())-this._getBoundsRadian(e.getNorth())),u=+Math.log2(n/(a/parseInt(o)*r)).toFixed(2),l=+Math.log2(n/(s/parseInt(i)*r)).toFixed(2);return u<=l?u:l}},{key:"_getBoundsRadian",value:function(e){return 180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360))}},{key:"_centerValid",value:function(e){return!(!e||!(e.length>0||Uhe(e)===r.LngLat||e.lng))}},{key:"_getWebMapInstance",value:function(){return this._handler}},{key:"_setServer",value:function(e){this.options.server=Eo(e),this.options.serverUrl=this.options.server}},{key:"_fire",value:function(e,t){var r=this;([["mapcreatesucceeded","addlayerssucceeded"],["mapcreatefailed","getmapfailed"],["layercreatefailed","getlayersfailed"]].find(function(t){return t.includes(e)})||[e]).forEach(function(e){r.fire(e,t)})}}])&&zhe(o.prototype,i),a&&zhe(o,a),Object.defineProperty(o,"prototype",{writable:!1}),o;var o,i,a}()}function Jhe(e){"@babel/helpers - typeof";return(Jhe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Xhe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,s=[],u=!0,l=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;u=!1}else for(;!(u=(n=i.call(r)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,o=e}finally{try{if(!u&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(l)throw o}}return s}}(e,t)||eye(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Zhe(e){return function(e){if(Array.isArray(e))return tye(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||eye(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function $he(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=eye(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function eye(e,t){if(e){if("string"==typeof e)return tye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?tye(e,t):void 0}}function tye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function aye(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function sye(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function a(e){aye(i,n,o,a,s,"next",e)}function s(e){aye(i,n,o,a,s,"throw",e)}a(void 0)})}}function uye(e,t){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:{layerFilter:function(){return!0}},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{style:{version:8,sources:{},layers:[]}};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),t=cye(this,s,[e,r,n]),"string"!=typeof e&&"number"!=typeof e||(t.mapId=e),t._centerValid(n.center)&&(t.center=n.center),t.zoom=n.zoom,t.renderWorldCopies=n.renderWorldCopies,t.bounds=n.bounds,t.bearing=n.bearing,t.pitch=n.pitch,t.rasterTileSize=n.rasterTileSize||256,t.layerFilter=r.layerFilter,t.checkSameLayer=r.checkSameLayer,t._taskID=new Date,t._cacheLayerId=new Map,t._layerTimerList=[],t._appendLayers=!1,t._tileTransformRequest=r.tileTransformRequest,t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&yye(e,t)}(s,e),u=s,(l=[{key:"initializeMap",value:function(){var e=sye(iye().mark(function e(t,r){var n;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._registerMapCRS(t);case 3:if(this.baseProjection=e.sent,!r){e.next=11;break}if(o.isSameProjection(r,this.baseProjection)||this.ignoreBaseProjection){e.next=8;break}return this.fire("projectionnotmatch"),e.abrupt("return");case 8:this._appendLayers=!0,this.map=r,this.map.addLocalIdeographFontFamily&&(n=this._getLabelFontFamily(t),this.map.addLocalIdeographFontFamily(n));case 11:this._mapInfo=t,this._loadLayers(t,this._taskID),e.next=19;break;case 15:e.prev=15,e.t0=e.catch(0),console.error(e.t0),this.fire("mapcreatefailed",{error:e.t0});case 19:case"end":return e.stop()}},e,this,[[0,15]])}));return function(t,r){return e.apply(this,arguments)}}()},{key:"cleanLayers",value:function(e){fye(s,"cleanLayers",this,3)([e]),this.echartslayer.forEach(function(e){e.remove(),e.features=null,e.id=""})}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.map&&(this._sourceListModel&&(this._sourceListModel.destroy(),this._sourceListModel=null),this.stopCanvg(),e&&this.map.remove(),this.map=null,this._legendList=[],this.center=null,this.zoom=null,this._dataflowService&&(this._dataflowService.off("messageSucceeded",this._handleDataflowFeaturesCallback),this._dataflowService.off("subscribesucceeded",this._initDataflowLayerCallback)),this._unprojectProjection=null,this._cacheLayerId=new Map),this._layerTimerList.length&&(this._layerTimerList.forEach(function(e){clearInterval(e)}),this._layerTimerList=[])}},{key:"_initWebMap",value:function(){}},{key:"_getMapInfo",value:function(){}},{key:"_loadLayers",value:function(e,t){var r=this;this.map?this._handleLayerInfo(e,t):setTimeout(function(){r._createMap(e).then(function(){r.map.on("load",function(){r._handleLayerInfo(e,t)})})},0)}},{key:"_registerMapCRS",value:function(){var e=sye(iye().mark(function e(t){var r,n,i,a,s,u,l,c,f,p,h;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.projection,n=t.extent,i=void 0===n?{leftBottom:{},rightTop:{}}:n,a=t.baseLayer,s=void 0===a?{}:a,u=vC(r),l={name:u,extent:[i.leftBottom.x,i.leftBottom.y,i.rightTop.x,i.rightTop.y],wkt:this._getProjectionWKT(r)},o.getCRS(u)){e.next=28;break}e.t0=s.layerType,e.next="MAPBOXSTYLE"===e.t0?7:"TILE"===e.t0?14:"ZXY_TILE"===e.t0?23:26;break;case 7:return(c=s.dataSource.url).indexOf("/restjsr/")>-1&&!/\/style\.json$/.test(c)&&(c=N.urlPathAppend(c,"/style.json")),e.next=11,this.webMapService.getMapBoxStyle(c);case 11:return(f=e.sent)&&f.metadata&&f.metadata.indexbounds&&(l.extent=f.metadata.indexbounds),e.abrupt("break",28);case 14:if(l.wkt){e.next=18;break}return e.next=17,this.getEpsgCodeWKT(N.urlPathAppend(s.url,"/prjCoordSys.wkt"),{withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",s.url,!1)});case 17:l.wkt=e.sent;case 18:return e.next=20,this.getBounds("".concat(s.url,".json"),{withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",s.url,!1)});case 20:return(p=e.sent)&&p.bounds&&(l.extent=[p.bounds.leftBottom.x,p.bounds.leftBottom.y,p.bounds.rightTop.x,p.bounds.rightTop.y]),e.abrupt("break",28);case 23:return h=this._getZXYTileCrsExtent(s),l.extent=h,e.abrupt("break",28);case 26:return l=null,e.abrupt("break",28);case 28:if(l){e.next=30;break}throw new Error("Unsupported coordinate system!");case 30:return o.registerCRS(l),e.abrupt("return",u);case 32:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_getPopupInfos",value:function(){var e=this._mapInfo.layers;return(void 0===e?[]:e).map(function(e){var t=e.popupInfo,r=e.enableFields,n=e.name,o=e.layerID,i=e.captions;if(t){var a=t.elements||[];return i&&(a=(t.elements||[]).map(function(e){return"FIELD"===e.type&&(e.fieldCaption=i[e.fieldName]||e.fieldName),e})),nye(nye({},t),{},{layerId:[o],elements:a,title:n})}return r?{elements:r.map(function(e){return{type:"FIELD",fieldName:e,fieldCaption:i&&i[e]||e}}),layerId:[o],title:n}:null}).filter(function(e){return null!==e})}},{key:"_getLegendInfos",value:function(){var e=this._mapInfo.layers;return(void 0===e?[]:e).map(function(e){var t=e.legendSetting,r=e.name,n=e.layerID;return{showLegend:!!t&&t.isShow,id:n,title:r}})}},{key:"_handleLayerInfo",value:function(e,t){var r=this;e=this._setLayerID(e),this._mapInfo=e,this.layerAdded=0,this.expectLayerLen=0;var n=e,o=n.layers,i=n.grid;if(this._setExpectLayerLen(e),0===this.expectLayerLen&&this._sendMapToUser(0,0),this._shouldLoadBaseLayer(e,this.layerFilter)&&this._initBaseLayer(e,function(){r._addLayerSucceeded()}),o&&0!==o.length){var a=o;"function"==typeof this.layerFilter&&(a=o.filter(this.layerFilter)),this._initOverlayLayers(a,t)}i&&i.graticule&&this._initGraticuleLayer(i.graticule)}},{key:"_setExpectLayerLen",value:function(e){this._shouldLoadBaseLayer(e,this.layerFilter)&&this.expectLayerLen++;var t=e.layers;t&&t.length>0&&("function"==typeof this.layerFilter&&(t=t.filter(this.layerFilter)),this.expectLayerLen+=t.length),e.grid&&e.grid.graticule&&this.expectLayerLen++}},{key:"_shouldLoadBaseLayer",value:function(e,t){var r=e.baseLayer;return!!r&&("function"!=typeof t||t(r))}},{key:"_getScales",value:function(){var e=sye(iye().mark(function e(t){var r,o,i,a,s,u,l,c,f,p,h,y;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.baseLayer,o=[],(i=r.coordUnit||r.units||n.CRS.get(this.baseProjection).unit)||(i="EPSG:3857"==this.baseProjection?"m":"degree"),a=null,"TILE"!==r.layerType){e.next=17;break}return e.prev=6,s={withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",r.url,!1)},e.next=10,this.getBounds("".concat(r.url,".json"),s);case 10:(u=e.sent)&&u.visibleScales&&(a=u.visibleScales),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(6),console.error(e.t0);case 17:if(!(a&&a.length>0)){e.next=21;break}a.forEach(function(e){var t=1/e;o.push("1:".concat(t))}),e.next=35;break;case 21:if("WMTS"!==r.layerType){e.next=34;break}return e.prev=22,e.next=25,this.webMapService.getWmtsInfo(r,this.baseProjection);case 25:e.sent.scales.forEach(function(e){o.push("1:".concat(e))}),e.next=32;break;case 29:e.prev=29,e.t1=e.catch(22),console.error(e.t1);case 32:e.next=35;break;case 34:if("ZXY_TILE"===r.layerType)r.resolutions.forEach(function(e){var t="1:"+N.getScaleFromResolution(e,i);o.push(t)});else{l="MAPBOXSTYLE"===r.layerType?n.CRS.get(this.baseProjection).extent:t.extent,c=this._getResolutionsByExtent({extent:this._transExtentToBounds(l),tileSize:512}),f=$he(c);try{for(f.s();!(p=f.n()).done;)h=p.value,y="1:"+N.getScaleFromResolution(h,i),-1===o.indexOf(y)&&o.push(y)}catch(e){f.e(e)}finally{f.f()}}case 35:return e.abrupt("return",o);case 36:case"end":return e.stop()}},e,this,[[6,14],[22,29]])}));return function(t){return e.apply(this,arguments)}}()},{key:"_transExtentToBounds",value:function(e){return e instanceof Array?e:[e.leftBottom.x,e.leftBottom.y,e.rightTop.x,e.rightTop.y]}},{key:"_createMap",value:function(){var e=sye(iye().mark(function e(t){var o,i,a,s,u,l,c,f,p,h,y,d,m=this;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(o=this._getLabelFontFamily(t),i=this._getMapCenter(t),a=t.level||0,s=0,u=this.mapOptions,l=u.bounds,c=u.minZoom,f=u.maxZoom,p=this.mapOptions.interactive,h=t.baseLayer.tileSize,isNaN(c)&&(c=t.minScale?this._transformScaleToZoom(t.minScale,n.CRS.get(this.baseProjection),h):0),isNaN(f)&&(f=t.maxScale?this._transformScaleToZoom(t.maxScale,n.CRS.get(this.baseProjection),h):22),t.visibleExtent&&4===t.visibleExtent.length&&!l&&(l=[this._unproject([t.visibleExtent[0],t.visibleExtent[1]]),this._unproject([t.visibleExtent[2],t.visibleExtent[3]])]),c>f&&(c=(y=[f,c])[0],f=y[1]),l){e.next=21;break}if(!t.minScale||!t.maxScale){e.next=19;break}return e.next=15,this._getScales(t);case 15:d=e.sent,s=Math.min(this._transformScaleToZoom(d[0]||t.minScale,n.CRS.get(this.baseProjection),h),this._transformScaleToZoom(t.maxScale,n.CRS.get(this.baseProjection),h)),e.next=20;break;case 19:s=+Math.log2(this._getResolution(n.CRS.get(this.baseProjection).getExtent())/this._getResolution(t.extent)).toFixed(2);case 20:a+=s;case 21:this.map=new r(nye(nye({},this.mapOptions),{},{container:this.target,center:this.center||i,zoom:this.zoom||a,minZoom:c,maxZoom:f,bearing:this.bearing||0,pitch:this.pitch||0,interactive:void 0===p||p,style:{version:8,sources:{},layers:[]},crs:this.baseProjection,localIdeographFontFamily:o||"",renderWorldCopies:this.renderWorldCopies||!1,transformRequest:function(e,t){var r=m.webMapService.handleProxy(),n=m.webMapService.handleWithCredentials(r,e,!1)?"include":void 0;return"Tile"===t?(m.isSuperMapOnline&&0===e.indexOf("http://")&&(e="https://www.supermapol.com/apps/viewer/getUrlResource.png?url=".concat(encodeURIComponent(e))),m.webMapService.isIportalResourceUrl(e)&&(e=m.webMapService.handleParentRes(e)),nye({url:e,credentials:n},m._tileTransformRequest&&m._tileTransformRequest(e))):{url:e,credentials:n}},fadeDuration:0})),this.fire("mapinitialized",{map:this.map});case 23:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"_createMVTBaseLayer",value:function(e,t){var r=this,n=e.dataSource.url;n.indexOf("/restjsr/")>-1&&!/\/style\.json$/.test(n)&&(n=N.urlPathAppend(n,"/style.json"));var o=-1===n.indexOf("/restjsr/");this.webMapService.getMapBoxStyle(n,o).then(function(o){if(Object.keys(o.sources).some(function(e){return r.map.getSource(e)}))return r.fire("layerorsourcenameduplicated",{}),void(t&&t());if(o.layers.forEach(function(t){t.layout&&(t.layout.visibility=r._getVisibility(e.visible))}),"ARCGIS_VECTORTILE"===e.dataSource.type){var i=n.split("?")[1];Object.keys(o.sources).forEach(function(e){Object.keys(o.sources[e]).forEach(function(t){"url"===t&&("string"!=typeof o.sources[e][t]||r.isAbsoluteURL(o.sources[e][t])||(o.sources[e][t]=r.relative2absolute(o.sources[e][t],n)),o.sources[e][t]=o.sources[e][t]+(i?"?"+i+"&f=json":"?f=json"))})})}r.map.addStyle(o,void 0,void 0,void 0,n);var a=[];o.layers.forEach(function(e){"background"!==e.type&&a.push(e.id)}),r._setCacheLayer({parentLayerId:e.layerID||e.name,subRenderLayers:a.map(function(e){return{layerId:e}})}),t&&t()},function(e){throw t&&t(),new Error(e)}).catch(function(t){r.fire("layercreatefailed",{error:t,layer:e,map:r.map})})}},{key:"_initBaseLayer",value:function(e,t){var r,n=e.baseLayer||e,o=this.getBaseLayerType(n),i=this.getMapurls();switch(this.baseLayerProxy=this.webMapService.handleProxy("image"),o){case"TIANDITU":this.baseLayerProxy=null,this._createTiandituLayer(e,t);break;case"BING":this.baseLayerProxy=null,this._createBingLayer(n.layerID||n.name,n,t);break;case"WMS":this._createWMSLayer(n,t);break;case"WMTS":this._createWMTSLayer(n,t);break;case"TILE":this._createDynamicTiledLayer(n,t);break;case"ZXY_TILE":this._createZXYLayer(n,t);break;case"CLOUD":case"XYZ":r=i[n.layerType].replace("{googleMapsLanguage}",this.googleMapsLanguage).replace("{googleMapsAPIKey}",this.googleMapsAPIKey),this._createXYZLayer(n,r,t);break;case"BAIDU":this.fire("baidumapnotsupport",{}),t&&t();break;case"MAPBOXSTYLE":this._createMVTBaseLayer(n,t)}}},{key:"_initOverlayLayers",value:function(e,t){var r=this;this.expectLayerLen>0&&e.forEach(function(e){var n=r.webMapService.getDatasourceType(e);if("SAMPLE_DATA"===n)return r._addLayerSucceeded(),void r.fire("layercreatefailed",{error:"SAMPLE DATA is not supported",layer:e,map:r.map});if(e.visibleScale){var o=e.visibleScale,i=o.minScale,a=o.maxScale,s=r.map.getCRS();e.minzoom=Math.max(r._transformScaleToZoom(i,s,e.tileSize),0),e.maxzoom=Math.min(r.map.getMaxZoom()+1,r._transformScaleToZoom(a,s,e.tileSize)+1e-7,24)}"tile"===n?(e.autoUpdateTime&&r._layerTimerList.push(setInterval(function(){r._initBaseLayer(e)},e.autoUpdateTime)),r._initBaseLayer(e,function(){r._addLayerSucceeded()})):(r.getLayerFeatures(e,t,n),e.autoUpdateTime&&r._layerTimerList.push(setInterval(function(){r.getLayerFeatures(e,t,n)},e.autoUpdateTime)))},this)}},{key:"_initOverlayLayer",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,o=e.layerID,i=e.layerType,a=e.visible,s=e.style,u=e.featureType,l=e.projection;if(e.visible=a?"visible":"none",t=_o({sourceId:o,features:t,mergeByField:r,map:this.map}),"restMap"!==i)if("mvt"!==i){t&&t[0]&&t[0].geometry&&"Polygon"===t[0].geometry.type&&(t=this._handleMultyPolygon(t));var c=n||l;if(t&&c&&"EPSG:4326"!==c&&e.dataSource&&"REST_DATA"!==e.dataSource.type&&(this._unprojectProjection=vC(l),t=this.transformFeatures(t)),t=this.handleLayerFeatures(t,e),"VECTOR"===i){var f=this.getVectorStyleGroup(e);this._initLegendConfigInfo(e,f),"POINT"===u?"SYMBOL_POINT"===s.type?this._createSymbolLayer(e,t):this._createGraphicLayer(e,t):(this._createVectorLayer(e,t),this._addLayerSucceeded({layerInfo:e,features:t}))}else"UNIQUE"===i?this._createUniqueLayer(e,t):"RANGE"===i?this._createRangeLayer(e,t):"HEAT"===i?this._createHeatLayer(e,t):"MARKER"===i?this._createMarkerLayer(e,t):"MIGRATION"===i?this._createMigrationLayer(e,t):"RANK_SYMBOL"===i?this._createRankSymbolLayer(e,t):this._isDataflowLayer(i)&&this._createDataflowLayer(e)}else this._createMvtLayer(t.info,e,t.featureType);else this._createRestMapLayer(t,e)}},{key:"_initGraticuleLayer",value:function(e){var t=this._createGraticuleOptions(e),r=new a(t);this._setGraticuleDash(t.strokeStyle,r),this._graticuleLayer=r,this.map.addLayer(r),this._setCacheLayer({parentLayerId:r.id,subRenderLayers:[{layerId:r.id},{layerId:r.sourceId}],metadata:{SM_Layer_Order:"Top"}}),this._addLayerSucceeded()}},{key:"_createGraticuleOptions",value:function(e){var t=e.extent,r=e.lonLabelStyle,n=e.latLabelStyle,o=e.strokeColor,i=e.lineDash,a=e.strokeWidth,s=e.interval,u={lineColor:o,lindDasharray:i,lineWidth:a};return r={textFont:r.fontFamily.split(","),textSize:r.fontSize,textAnchor:n.textBaseline,textColor:r.fill,textHaloColor:r.outlineColor,textHaloWidth:r.outlineWidth},n={textFont:n.fontFamily.split(","),textSize:n.fontSize,textAnchor:n.textBaseline,textColor:n.fill,textHaloColor:n.outlineColor,textHaloWidth:n.outlineWidth},t=t||this.map.getCRS().extent,{minZoom:1,strokeStyle:u,extent:t=[this._unproject([t[0],t[1]]),this._unproject([t[2],t[3]])],interval:s&&s[0],lngLabelStyle:r,latLabelStyle:n,layerID:"graticuleLayer_".concat(+new Date)}}},{key:"_setGraticuleDash",value:function(e,t){var r=this;this.map.on("zoomend",function(){r.map.getZoom()<3?t.setStrokeStyle(nye(nye({},e),{},{lineOpacity:.5,lineWidth:e.lineWidth/2,lindDasharray:[.1,3]})):t.setStrokeStyle(e)})}},{key:"_createTiandituLayer",value:function(e,t){var r=this._getTiandituUrl(e),n=e.baseLayer,o=n.labelLayerVisible,i=n.name,a=n.visible,s=Boolean(o),u=r.labelUrl,l=r.tiandituUrl,c=dye.TIANDITU;this._addBaselayer({url:l,layerID:i,visibility:a,bounds:c}),s&&this._addBaselayer({url:u,layerID:this._getTdtLabelLayerName(i),parentLayerId:i,visibility:a,bounds:c}),t&&t()}},{key:"_createWMTSLayer",value:function(e,t){var r=this;this.webMapService.getWmtsInfo(e,this.map.getCRS().epsgCode).then(function(n){var o=e.layerID||e.name;if(n.isMatched){var i=r._getWMTSUrl(Object.assign({},e,n));r._addBaselayer({url:[i],layerID:o,visibility:e.visible,minzoom:n.matchMinZoom,maxzoom:n.matchMaxZoom,isIserver:!1,bounds:n.bounds}),t&&t()}},function(e){throw t&&t(),new Error(e)}).catch(function(t){r.fire("layercreatefailed",{error:t,layer:e,map:r.map})})}},{key:"_createBingLayer",value:function(){var e=sye(iye().mark(function e(t,r,n){var o,i,a,s;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return o="https://dev.virtualearth.net/REST/v1/Imagery/Metadata/RoadOnDemand?uriScheme=https&include=ImageryProviders&key=".concat(this.bingMapsKey,"&c=zh-cn"),e.next=3,this._fetchRequest(o,"json",{withoutFormatSuffix:!0});case 3:if(200===(i=e.sent).statusCode&&1===i.resourceSets.length&&1===i.resourceSets[0].resources.length){e.next=6;break}return e.abrupt("return");case 6:a=i.resourceSets[0].resources[0],s=a.imageUrlSubdomains.map(function(e){return a.imageUrl.replace("{subdomain}",e)}),this._addBaselayer({url:s,layerID:t,visibility:r.visible,bounds:dye.BING}),n&&n();case 10:case"end":return e.stop()}},e,this)}));return function(t,r,n){return e.apply(this,arguments)}}()},{key:"_createXYZLayer",value:function(e,t,r){var n=[];if("OSM"===e.layerType){for(var o=t.match(/\w\-\w/g)[0],i=o[0],a=o[2],s="",u=97;u<123;u++)s+=String.fromCharCode(u);for(var l=s.split(""),c=l.indexOf(i),f=l.indexOf(a),p=l.slice(c,f+1),h=0;h2&&void 0!==arguments[2]?arguments[2]:1e-5;return Math.abs(+e-+t)<=r}},{key:"_isSameOrigin",value:function(e){var t=this.map.getCRS().getExtent();return this.numberEqual(e[0],t[0])&&this.numberEqual(e[1],t[3])}},{key:"_isSameResolutions",value:function(e,t){var r=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:512,o=this._getMapResolutions(),i=n/t;return e.every(function(e,t){return r.numberEqual(e,i*o[t])})}},{key:"_getMapResolutions",value:function(){return this._getResolutionsByExtent({extent:this.map.getCRS().getExtent(),maxZoom:this.map.getMaxZoom()+1,tileSize:512})}},{key:"_getResolutionsByExtent",value:function(e){for(var t=e.extent,r=e.maxZoom,n=void 0===r?24:r,o=e.tileSize,i=t[2]-t[0],a=t[3]-t[1],s=(i>=a?i:a)/o,u=[],l=0;l<=n;l++)u.push(s/Math.pow(2,l));return u}},{key:"_getZXYTileCrsExtent",value:function(e){var t=e.tileSize,r=void 0===t?256:t,n=e.resolutions,o=e.origin;if(n){var i=n.sort(function(e,t){return t-e})[0]*r;return[o[0],o[1]-i,o[0]+i,o[1]]}if("EPSG:3857"==this.baseProjection)return[-20037508.3427892,-20037508.3427892,20037508.3427892,20037508.3427892]}},{key:"_createDynamicTiledLayer",value:function(){var e=sye(iye().mark(function e(t,r){var n,o,i,a,s,u,l,c,f,p,h,y,d,m,v,g,b,A,w,S;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.url,o=t.layerID||t.name,i=t.minzoom,a=t.maxzoom,s=n,t.credential&&t.credential.token&&(u=t.credential.token,s=N.urlAppend(s,"token=".concat(u))),l={withoutFormatSuffix:!0,withCredentials:this.webMapService.handleWithCredentials("",s,!1)},c=N.handleUrlSuffix(s,".json"),e.next=9,this.getBounds(c,l);case 9:if(f=e.sent,p=null,!f||!f.bounds){e.next=26;break}if(p=this._getBoundList(f),4326===(h=f.prjCoordSys.epsgCode)){e.next=26;break}if("EPSG:".concat(h)!==this.baseProjection&&this._mapInfo.baseLayer.url!==n){e.next=21;break}y=this._unproject([f.bounds.left,f.bounds.bottom]),d=Xhe(y,2),m=d[0],v=d[1],g=this._unproject([f.bounds.right,f.bounds.top]),b=Xhe(g,2),A=b[0],w=b[1],p=[m,v,A,w],e.next=26;break;case 21:return S=N.urlAppend(c,"prjCoordSys=".concat(JSON.stringify({epsgCode:4326}))),e.next=24,this.getBounds(S,l);case 24:f=e.sent,p=this._getBoundList(f);case 26:p&&!this._isValidBounds(p)&&(p=null),this._addBaselayer({url:[s],layerID:o,visibility:t.visible,minzoom:i,maxzoom:a,isIserver:!0,bounds:p}),r&&r();case 29:case"end":return e.stop()}},e,this)}));return function(t,r){return e.apply(this,arguments)}}()},{key:"_createWMSLayer",value:function(e,t){var r=this;this.webMapService.getWmsInfo(e).then(function(n){var o=e.layerID||e.name;if(n){var i=r._getWMSUrl(e,n.version);r._addBaselayer({url:[i],layerID:o,visibility:e.visible,bounds:n.bounds}),t&&t()}},function(e){throw t&&t(),new Error(e)}).catch(function(t){r.fire("layercreatefailed",{error:t,layer:e,map:r.map})})}},{key:"_createVectorLayer",value:function(e,t){var r=this,n=e.featureType,o=e.layerID,i=e.minzoom,a=e.maxzoom,s=e.style,u=e.visible,l=e.parentLayerId,c=void 0===l?o:l,f=this.map.getSource(o),p={type:"FeatureCollection",features:t};if(f)f.setData(p);else{var h={type:"geojson",data:p};this.map.addSource(o,h)}var y=Array.isArray(s)?s:[s];2===y.length&&("solid"===y[0].lineDash&&"solid"===y[1].lineDash&&(y[0].strokeWidth=y[1].strokeWidth,y[1].strokeWidth=y[1].strokeWidth-2),"solid"===y[0].lineDash&&"dash"===y[1].lineDash&&(y[0].strokeWidth=y[1].strokeWidth,y[1].strokeWidth=.5*y[1].strokeWidth,y[1].lineDash="dashrailway")),y.forEach(function(e,t){var s={style:r._transformStyleToMapBoxGl(e,n),layout:{visibility:u}},l=0===t?o:"".concat(o,"-additional-").concat(t);r._addOverlayToMap({type:n,source:o,layerID:l,parentLayerId:c,layerStyle:s,minzoom:i,maxzoom:a})}),"POLYGON"===n&&s.strokeColor&&this._addStrokeLineForPoly({style:s,source:o,layerID:o+"-strokeLine",parentLayerId:o,visible:u,minzoom:i,maxzoom:a})}},{key:"_getWMSUrl",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"1.1.1",r=e.url,n={service:"WMS",request:"GetMap",layers:null!==e.layers&&"object"===Jhe(e.layers)?e.layers.join(","):e.layers||"0",styles:"",format:"image/png",transparent:"true",version:t,width:256,height:256,bbox:"{bbox}"};if("1.3.0"===t)if(n.crs=this.baseProjection,"EPSG:4326"===this.baseProjection)n.bbox="{bbox-wms-1.3.0}";else{var i=o.getProj4().defs(this.baseProjection);i.axis&&0===i.axis.indexOf("ne")&&(n.bbox="{bbox-wms-1.3.0}")}else n.srs=this.baseProjection;return N.urlAppend(r,this._getParamString(n,r))}},{key:"_setLayerID",value:function(e){var t=this,r={},n=e.baseLayer,o=e.layers,i=void 0===o?[]:o;if(!this.checkSameLayer){var a=this._generateUniqueLayerId({layerId:n.name,repeatIndex:0});n.title=n.name,n.name=a.newId}var s=i.map(function(e){return e.name}),u=i.map(function(e,o){e.name in r||(r[e.name]=n.name===e.name?1:0);var i=s.indexOf(e.name),a=s.lastIndexOf(e.name);o>i&&o<=a&&(r[e.name]=r[e.name]+1);var u=r[e.name]?"".concat(e.name,"-").concat(r[e.name]):e.name;if(!t.checkSameLayer||"raster"!==e.layerType){var l=t._generateUniqueLayerId({layerId:u,repeatIndex:r[e.name],layerType:e.layerType}),c=l.newId,f=l.newIndex;r[e.name]=f,u=c}return Object.assign(e,{layerID:u})});return e.layers=u,e.baseLayer=n,e}},{key:"_generateUniqueLayerId",value:function(e){var t=e.layerId,r=e.repeatIndex,n=e.layerType;return this.map.getLayer(t)?(r++,t=t.match(/-\d+&/gi)?t.replace(/\d+$/gi,r):"".concat(t,"-").concat(r),this._generateUniqueLayerId(nye(nye({},e),{},{layerId:t,repeatIndex:r}))):this._isDataflowLayer(n)?{newId:"".concat(t,"_").concat(+new Date),newIndex:r+1}:{newId:t,newIndex:r}}},{key:"_createRestMapLayer",value:function(e,t){var r=this;e.forEach(function(e){t=r.getRestMapLayerInfo(e,t),r._initBaseLayer(t)}),this._addLayerSucceeded()}},{key:"_addLayerSucceeded",value:function(e){(((e||{}).layerInfo||{}).labelStyle||{}).labelField&&"DATAFLOW_POINT_TRACK"!==e.layerInfo.layerType&&this._addLabelLayer(e.layerInfo,e.features,!1),this.layerAdded++,this._sendMapToUser(this.layerAdded,this.expectLayerLen)}},{key:"_createDataflowLayer",value:function(e){var t=new i(e.wsUrl).initSubscribe();this._handleDataflowFeaturesCallback=this._handleDataflowFeatures.bind(this,e),this._initDataflowLayerCallback=this._initDataflowLayer.bind(this,e),t.on("subscribesucceeded",this._initDataflowLayerCallback),t.on("messageSucceeded",this._handleDataflowFeaturesCallback),this._dataflowService=t}},{key:"_initDataflowLayer",value:function(){this._addLayerSucceeded()}},{key:"_handleDataflowFeatures",value:function(e,t){var r=[JSON.parse(t.data)];if(this.fire("dataflowfeatureupdated",{features:r,identifyField:e.identifyField,layerID:e.layerID}),"EPSG:4326"!==e.projection&&(r=this.transformFeatures(r)),e.filterCondition){var n=this.replaceFilterCharacter(e.filterCondition),o=r[0].properties||{};n=this.parseCondition(n,Object.keys(o));var i=this.parseConditionFeature(o),a="select * from json where ("+n+")",s=window.jsonsql.query(a,{attributes:i});s&&s.length>0&&this._addDataflowLayer(e,r[0])}else this._addDataflowLayer(e,r[0])}},{key:"_getDataFlowRotateStyle",value:function(e,t,r){var n=["match",["get",r]];return e.forEach(function(e){var o;if((o=void 0!==t&&"未设置"!==t&&"None"!==t?e.properties[t]:0)>360||o<0)return null;n.push(e.properties[r],parseInt(o))}),n.push(0),n}},{key:"_addDataflowLayer",value:function(){var e=sye(iye().mark(function e(t,r){var n,o,i,a,s,u;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.layerID,"DATAFLOW_HEAT"!==t.layerType){e.next=5;break}this.map.getSource(n)?this._updateDataFlowFeature(n,r,t):this._createHeatLayer(t,[r],!1),e.next=20;break;case 5:if(o=t.pointStyle,t.style=o,this.map.getSource(n)){e.next=17;break}if(i=this._getDataFlowRotateStyle([r],t.directionField,t.identifyField),!["BASIC_POINT","SVG_POINT","IMAGE_POINT"].includes(o.type)){e.next=14;break}return e.next=12,this._createGraphicLayer(t,[r],null,i,!1);case 12:e.next=15;break;case 14:this._createSymbolLayer(t,[r],null,i,!1);case 15:e.next=18;break;case 17:this._updateDataFlowFeature(n,r,t,"point");case 18:t.labelStyle&&t.visible&&(a=this._getSymbolLabelLayerName(n),this.map.getSource(a)?this._updateDataFlowFeature(a,r,t):this._addLabelLayer(t,[r],!0)),t.lineStyle&&t.visible&&(this.map.getSource(n+"-line")?this._updateDataFlowFeature(n+"-line",r,t,"line"):(s=r.geometry.coordinates,u={type:"Feature",properties:r.properties,geometry:{type:"LineString",coordinates:[s]}},this._createVectorLayer({style:t.lineStyle,featureType:"LINE",visible:"visible",layerID:n+"-line",parentLayerId:n},[u])));case 20:case"end":return e.stop()}},e,this)}));return function(t,r){return e.apply(this,arguments)}}()},{key:"_updateDataFlowFeature",value:function(e,t,r,n){var o=r.identifyField,i=r.maxPointCount,a=r.directionField,s=_S()(this.map.getSource(e)._data.features),u=!1;if(s.forEach(function(e,r){if(e.properties[o]===t.properties[o])if(u=!0,"line"===n){var a=e.geometry.coordinates;a.push(t.geometry.coordinates),i&&a.length>i&&a.splice(0,a.length-i),s[r].geometry.coordinates=a}else s[r]=t}),u||("line"===n?s.push({type:"Feature",properties:t.properties,geometry:{type:"LineString",coordinates:[t.geometry.coordinates]}}):s.push(t)),this.map.getSource(e).setData({type:"FeatureCollection",features:s}),"point"===n){var l=r.pointStyle.type,c=this._getDataFlowRotateStyle(s,a,o);["SVG_POINT","IMAGE_POINT"].includes(l)?this.map.setLayoutProperty(e,"icon-rotate",c):"SYMBOL_POINT"===l&&this.map.setLayoutProperty(e,"text-rotate",c)}}},{key:"_createMigrationLayer",value:function(e,t){var r=e.layerID,n=e.layerType,o=this.getEchartsLayerOptions(e,t,"GLMap");o.GLMap={roam:!0};var i=new window.EchartsLayer(this.map);i.chart.setOption(o),i.id=r,i.features=t,this.echartslayer.push(i),this._addLayer({id:r,type:n,setLayoutProperty:function(e,t){"visibility"===e&&(i.chart._dom.style.display="visible"===t?"block":"none")},metadata:{SM_Layer_Order:"top"}}),this._addLayerSucceeded({layerInfo:e,features:t})}},{key:"_createRankSymbolLayer",value:function(e,t){var r=e.minzoom,n=e.maxzoom,o=e.themeSetting.themeField,i=e.themeSetting.colors,a=e.style,s=e.featureType,u=this.createRankStyleSource(e,t).styleGroups;t=this.getFilterFeatures(e.filterCondition,t);for(var l=["match",["get","index"]],c=["match",["get","index"]],f=0;f0&&(a.fillColor=c),"SYMBOL_POINT"===a.type)this._createSymbolLayer(e,t,l);else if(["SVG_POINT","IMAGE_POINT"].includes(a.type))this._createGraphicLayer(e,t,l);else{var m={type:"geojson",data:{type:"FeatureCollection",features:t}},v={layout:{visibility:e.visible},style:this._transformStyleToMapBoxGl(e.style,s,l,"circle-radius")},g=e.layerID;this._addOverlayToMap({type:s,source:m,layerID:g,layerStyle:v,minzoom:r,maxzoom:n}),this._addLayerSucceeded({layerInfo:e,features:t})}}},{key:"_addTextBackgroundImage",value:function(e){if(!e[3])return"";for(var t=new Uint8Array(1600),r=0;r<20;r++)for(var n=0;n<20;n++){var o=4*(20*n+r);t[o+0]=e[0],t[o+1]=e[1],t[o+2]=e[2],t[o+3]=255*e[3]}var i="text-background-".concat(e.join("-"));return this.map.hasImage(i)||this.map.addImage(i,{width:20,height:20,data:t},{stretchX:[[0,20]],stretchY:[[0,20]],content:[0,0,20,20]}),i}},{key:"_addLabelLayer",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this._getSymbolLabelLayerName(e.layerID);if(!this.map.getLayer(n)){var o=e.labelStyle,i=t[0]&&t[0].properties,a=o.labelField.replace(/{(.+)}/g,"$1");if(i&&Object.prototype.hasOwnProperty.call(i,a)){var s=o.backgroundFill,u=void 0===s?[255,255,255,0]:s,l=o.fontFamily,c=e.minzoom,f=e.maxzoom,p=parseFloat(o.fontSize||14),h="";"line"!==o.placement&&(h=this._addTextBackgroundImage(u)),u="rgba(".concat(u.join(","),")");var y="rgba(255,255,255,0)";o.outlineColor&&o.outlineWidth>0&&(y=o.outlineColor);var d=(o.outlineWidth||0)/2,m=o.textAlign||"center";o.textBaseline&&"middle"!==o.textBaseline&&(m="".concat(o.textBaseline).concat("center"===m?"":"-".concat(m)));var v="POINT"===e.featureType?[o.offsetX/p||0,o.offsetY/p||0]:[0,0],g={"text-field":"{".concat(o.labelField,"}"),"text-size":p,"text-offset":v,"text-font":l?[l]:["DIN Offc Pro Italic","Arial Unicode MS Regular"],"symbol-placement":"line"===o.placement?"POLYGON"===e.featureType?"line":"line-center":"point","text-max-angle":"POLYGON"===e.featureType?40:30,"symbol-spacing":"POLYGON"===e.featureType?200:50,"text-anchor":m,"text-line-height":1.2,visibility:e.visible};h&&Object.assign(g,{"icon-image":h,"icon-allow-overlap":!0,"icon-text-fit":"both","icon-text-fit-padding":[2,4,2,4]}),this._addLayer({id:n,type:"symbol",source:this.map.getSource(e.layerID)&&!r?e.layerID:{type:"geojson",data:{type:"FeatureCollection",features:t}},paint:{"text-color":o.fill,"text-halo-color":y,"text-halo-width":d},layout:g,minzoom:c||0,maxzoom:Math.min(f||this.map.getMaxZoom()+1,24)},e.layerID)}}}},{key:"_createSymbolLayer",value:function(e,t,r,n){var o=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=arguments.length>5?arguments[5]:void 0;document.getElementById("".concat(this.target)).classList.add("supermapol-icons-map");var a=e.layerID,s=e.minzoom,u=e.maxzoom,l=e.style,c=l.unicode,f=String.fromCharCode(parseInt(c.replace(/^&#x/,""),16)),p=r||(Array.isArray(l.fontSize)?l.fontSize:l.fontSize&&parseFloat(l.fontSize)||12),h=Array.isArray(l.rotation)?l.rotation:180*(l.rotation||0)/Math.PI;this.map.getSource(a)||this.map.addSource(a,{type:"geojson",data:{type:"FeatureCollection",features:[]}});var y={id:a,type:"symbol",source:a,paint:{"text-color":Array.isArray(l.fillColor)?l.fillColor:ioe.getColorWithOpacity(l.fillColor,l.fillOpacity),"text-halo-color":Array.isArray(l.strokeColor)?l.strokeColor:ioe.getColorWithOpacity(l.strokeColor||"rgba(0,0,0,0)",l.strokeOpacity),"text-halo-width":l.strokeWidth||0},layout:{"text-field":f,"text-size":p,"text-font":["supermapol-icons"],"text-rotate":n||h||0,"text-offset":Array.isArray(l.offsetX)?l.offsetX:[l.offsetX/2||0,l.offsetY/2||0],"text-allow-overlap":!0,visibility:e.visible},minzoom:s||0,maxzoom:Math.min(u||this.map.getMaxZoom()+1,24)};i&&(y.filter=i),this._addLayer(y),this.map.getSource(a).setData({type:"FeatureCollection",features:t}),o&&this._addLayerSucceeded({layerInfo:e,features:t})}},{key:"_createGraphicLayer",value:function(){var e=sye(iye().mark(function e(t,r,n,o){var i,a,s=this,u=arguments;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i=!(u.length>4&&void 0!==u[4])||u[4],a=u.length>5?u[5]:void 0,e.abrupt("return",new Promise(function(e){var u=t.layerID,l=t.minzoom,c=t.maxzoom,f=t.style,p={type:"geojson",data:{type:"FeatureCollection",features:r}};s.map.getSource(u)?s.map.getSource(u).setData(p.data):s.map.addSource(u,p);var h="imageIcon-".concat(u);if("IMAGE_POINT"===f.type){var y=f.imageInfo;s.map.loadImage(y.url,function(p,y){if(p)console.error(p);else{var d=2*Number.parseFloat((f.radius/y.width).toFixed(2));!s.map.hasImage(h)&&s.map.addImage(h,y);var m={id:u,type:"symbol",source:u,layout:{"icon-image":h,"icon-anchor":"bottom-right","icon-size":n||d,"icon-allow-overlap":!0,visibility:t.visible,"icon-offset":[f.offsetX*y.width||0,f.offsetY*y.height||0],"icon-rotate":o||180*(t.style.rotation||0)/Math.PI},minzoom:l||0,maxzoom:Math.min(c||s.map.getMaxZoom()+1,24)};a&&(m.filter=a),s._addLayer(m),i&&s._addLayerSucceeded({layerInfo:t,features:r}),e()}})}else if("SVG_POINT"===f.type){var d=f.url;s._svgDiv||(s._svgDiv=document.createElement("div"),document.body.appendChild(s._svgDiv)),s.getCanvasFromSVG(d,s._svgDiv,function(p){var h=p.toDataURL("img/png");h&&s.map.loadImage(h,function(h,y){h&&console.log(h);var m=2*Number.parseFloat((f.radius/p.width).toFixed(2));n&&Array.isArray(n)&&(n=n.map(function(e,t){return"number"==typeof e&&t%2==1?e/p.width*2:e})),!s.map.hasImage(d)&&s.map.addImage(d,y,{sdf:!0});var v={id:u,type:"symbol",source:u,layout:{"icon-image":d,"icon-size":n||m,"icon-anchor":"bottom-right",visibility:t.visible,"icon-offset":[f.offsetX*p.width||0,f.offsetY*p.height||0],"icon-allow-overlap":!0,"icon-rotate":o||180*(t.style.rotation||0)/Math.PI},paint:{"icon-color":f.fillColor},minzoom:l||0,maxzoom:Math.min(c||s.map.getMaxZoom()+1,24)};a&&(v.filter=a),s._addLayer(v),i&&s._addLayerSucceeded({layerInfo:t,features:r}),e()})})}else{var m={style:s._transformStyleToMapBoxGl(f,t.featureType),layout:{visibility:t.visible}};s._addOverlayToMap({type:"POINT",source:u,layerID:u,layerStyle:m,minzoom:l,maxzoom:c}),i&&s._addLayerSucceeded({layerInfo:t,features:r}),e()}}));case 3:case"end":return e.stop()}},e)}));return function(t,r,n,o){return e.apply(this,arguments)}}()},{key:"_createUniqueLayer",value:function(){var e=sye(iye().mark(function e(t,r){var n,o,i,a,s,u,l,c,f,p,h,y,d,m,v,g,b,A,w,S,C,E,x,_,I,O,k,P,T,j,M,N,B,L,R,D,F,Q,G,U,z,H,q,V,K,Y,W,J,X,Z,$,ee,te,re,ne=this;return iye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:n={unicode:function(e){var t=e.unicode;return String.fromCharCode(parseInt(t.replace(/^&#x/,""),16))},fontSize:function(e){var t=e.fontSize;return t?parseFloat(t):12},rotation:function(e){return 180*(e.rotation||0)/Math.PI},fillColor:function(e){var t=e.fillColor,r=e.fillOpacity;return ioe.getColorWithOpacity(t,r)},strokeColor:function(e){var t=e.strokeColor,r=e.strokeOpacity;return ioe.getColorWithOpacity(t||"rgba(0,0,0,0)",r)},strokeWidth:function(e){return e.strokeWidth||0},offsetX:function(e){var t=e.offsetX,r=e.offsetY;return[t/2||0,r/2||0]}},o={unicode:"",fontSize:12,rotation:0,strokeColor:"rgba(0,0,0,0)",fillColor:"rgba(0,0,0,0)",strokeWidth:0,offsetX:[0,0]},i=this.getUniqueStyleGroup(t,r),r=this.getFilterFeatures(t.filterCondition,r),a=t.layerID,s=t.minzoom,u=t.maxzoom,l=t.style,c=i[0].themeField,f=t.featureType,p=t.style,h={},y={},i.forEach(function(e){y[e.value]=e}),r.forEach(function(e){var t=e.properties,r=y[t[c]];if(r){var o=r.style;for(var i in o)if(Object.prototype.hasOwnProperty.call(o,i)){var a=o[i];a!==p[i]&&(h[i]||(h[i]=["match",["get","index"]]),h[i].push(t.index,n[i]?n[i](o):a))}}}),e.t0=iye().keys(h);case 13:if((e.t1=e.t0()).done){e.next=27;break}if(d=e.t1.value,!Object.prototype.hasOwnProperty.call(h,d)){e.next=25;break}if(m=h[d],Array.isArray(m)){e.next=19;break}return e.abrupt("continue",13);case 19:v=p[d]||o[d],g=oye({},d,v),"fillColor"===d&&(h.fillOpacity=1,g.fillOpacity=isNaN(p.fillOpacity)?1:p.fillOpacity),"strokeColor"===d&&(h.strokeOpacity=1,g.strokeOpacity=isNaN(p.strokeOpacity)?1:p.strokeOpacity),b=n[d],m.push(void 0===v?null:b&&b(g)||v);case 25:e.next=13;break;case 27:if(this._initLegendConfigInfo(t,i),A={type:"geojson",data:{type:"FeatureCollection",features:r}},w=a,this.map.getSource(w)?this.map.getSource(w).setData(A.data):this.map.addSource(w,A),S=t.visible,C=function(e){var t=e.type,r=e.sourceID,n=e.layerID,o=e.parentLayerId,i=e.beforeId,a=e.style,s=e.minzoom,u=e.maxzoom,l=e.filter,c={style:ne._transformStyleToMapBoxGl(nye({},a),t),layout:{visibility:S}};ne._addOverlayToMap({type:t,source:r,layerID:n,parentLayerId:o,beforeId:i,layerStyle:c,minzoom:s,maxzoom:u,filter:l})},!["POLYGON","LINE"].includes(f)){e.next=43;break}if(E=h.lineDash,x=["all"],_=!1,I="",E&&E.length>1){for(delete h.lineDash,O=E[1],k="POLYGON"===f?a+"-strokeLine":a,P=2;P1&&C({type:"LINE",sourceID:w,layerID:k,parentLayerId:a,style:nye(nye(nye({},l),h),{},{lineDash:E[E.length]}),minzoom:s,maxzoom:u,filter:x}),_=!0}"LINE"!==f||_||C({type:"LINE",sourceID:w,layerID:a,style:nye(nye({},l),h),minzoom:s,maxzoom:u,filter:x}),"POLYGON"===f&&(C({type:"POLYGON",sourceID:w,layerID:a,beforeId:I,style:nye(nye({},l),h),minzoom:s,maxzoom:u}),I&&this.map.moveLayer(a,I),_||C({type:"LINE",sourceID:w,layerID:a+"-strokeLine",parentLayerId:a,style:nye(nye({},l),h),minzoom:s,maxzoom:u,filter:x})),e.next=80;break;case 43:if(M=["all"],N=h.unicode){for(B=h.className||[],delete h.unicode,delete h.classname,L="".concat(a,"-additional-symbol"),R=["any"],D=2;D1&&(Q.filter=R),this._addLayer(Q,a)}if(G=h.imageInfo||[],U=h.url||[],!(G.length>0||U.length>0)){e.next=66;break}for(delete h.imageInfo,delete h.url,z=[],H=G.length>0?[G[0],G[1]]:[],q=U.length>0?[U[0],U[1]]:[],V=["any"],K=["any"],Y=2;Y1){for(var l=["match",["get","index"]],c=2;c1){for(var d=["match",["get","index"]],m=2;m1?M:void 0),e.next=80;break;case 72:if("IMAGE_POINT"!==l.type&&"SVG_POINT"!==l.type){e.next=79;break}return(re=nye({},t)).style=nye(nye(nye({},l),h),{},{type:l.type}),e.next=77,this._createGraphicLayer(re,r,"","",!1,M.length>1?M:void 0);case 77:e.next=80;break;case 79:C({type:"POINT",sourceID:w,layerID:a,style:nye(nye({},l),h),minzoom:s,maxzoom:u,filter:M.length>1?M:void 0});case 80:this._addLayerSucceeded({layerInfo:t,features:r});case 81:case"end":return e.stop()}},e,this)}));return function(t,r){return e.apply(this,arguments)}}()},{key:"_getWMTSUrl",value:function(e){if("REST"===e.requestEncoding&&e.restResourceURL)return e.restResourceURL.replace("{Style}",e.style||"").replace("{TileMatrixSet}",e.tileMatrixSet).replace("{TileRow}","{y}").replace("{TileCol}","{x}").replace("{TileMatrix}","{z}");var t={service:"WMTS",request:"GetTile",version:"1.0.0",style:e.style||"",layer:e.layer,tilematrixSet:e.tileMatrixSet,format:"image/png",tilematrix:"{z}",tilerow:"{y}",tilecol:"{x}"};return N.urlAppend(e.kvpResourceUrl,this._getParamString(t,e.kvpResourceUrl))}},{key:"_createMarkerLayer",value:function(e,t){var r=this,n=e.minzoom,o=e.maxzoom,i=e.layerID,a={};(t=t||[]).forEach(function(e,t){var n=e.dv_v5_markerStyle,o=e.geometry.type.toUpperCase();"POINT"===o&&n.text&&(o="TEXT");var s=0===t?i:i+"-"+o+"-"+t;"POINT"===o&&n.src&&-1===n.src.indexOf("http://")&&-1===n.src.indexOf("https://")&&(n.src=r.serverUrl+n.src),a[s]||(a[s]={src:n.src,defaultStyle:n,geomType:o})});var s=function(e,t){var n=t.src,o=t.defaultStyle,i=t.geomType;return new Promise(function(t){n||"TEXT"===i?n&&n.indexOf("svg")<0&&(n.startsWith("http://")||n.startsWith("https://"))?r.map.loadImage(n,function(o,i){if(o)return console.log(o),void t(o);!r.map.hasImage(n)&&r.map.addImage(n,i),t(oye({},e,n))}):(r._svgDiv||(r._svgDiv=document.createElement("div"),document.body.appendChild(r._svgDiv)),r.getCanvasFromSVG(n,r._svgDiv,function(i){r.handleSvgColor(o,i);var a=i.toDataURL("img/png");r.map.loadImage(a,function(o,i){if(o)return console.log(o),void t(o);var s=n||a;!r.map.hasImage(s)&&r.map.addImage(s,i),t(oye({},e,s))})})):t(oye({},e,void 0))})},u=[];for(var l in a)u.push(s(l,a[l]));Promise.all(u).then(function(a){for(var s=0;s2&&void 0!==arguments[2])||arguments[2],n=e.minzoom,o=e.maxzoom,i=e.themeSetting,a={gradient:i.colors.slice(),radius:parseInt(i.radius)},s=i.customSettings;for(var u in s)a.gradient[u]=s[u];var l=["interpolate",["linear"],["heatmap-density"]],c=[.1,.3,.5,.7,1];a.gradient.forEach(function(e,t){l.push(c[t]),0===t&&(e=N.hexToRgba(e,0)),1===t&&(e=N.hexToRgba(e,.5)),l.push(e)}),this._initLegendConfigInfo(e,l);var f={"heatmap-color":l,"heatmap-radius":3*i.radius,"heatmap-intensity":2.8};if(i.weight&&t.length>=4){var p=[];t.forEach(function(e){e.properties[i.weight]=+e.properties[i.weight],p.push(e.properties[i.weight])});var h=loe.getMax(p),y=loe.getMin(p);f["heatmap-weight"]=["interpolate",["linear"],["get",i.weight],y,0,h,1]}this._addLayer({id:e.layerID,type:"heatmap",source:{type:"geojson",data:{type:"FeatureCollection",features:t}},paint:f,layout:{visibility:e.visible},minzoom:n||0,maxzoom:Math.min(o||this.map.getMaxZoom()+1,24)}),r&&this._addLayerSucceeded({layerInfo:e,features:t})}},{key:"_createRangeLayer",value:function(e,t){var r=e.themeSetting.themeField,n=e.featureType,o=e.minzoom,i=e.maxzoom,a=e.style,s=this.getRangeStyleGroup(e,t),u=["match",["get","index"]],l=(t=this.getFilterFeatures(e.filterCondition,t)).filter(function(e){var t=parseFloat(e.properties[r]);if(!t&&0!==t)return!1;if(s)for(var n=0;n-1;i--){var a=n[i],u=this._getSymbolLabelLayerName(a);this.map.getLayer(u)&&o.push(u)}o.reverse().forEach(function(e){r.map.moveLayer(e)})}},{key:"_getParamString",value:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=[];for(var o in e)n.push((r?o.toUpperCase():o)+"="+e[o]);return(t&&-1!==t.indexOf("?")?"&":"?")+n.join("&")}},{key:"_transformStyleToMapBoxGl",value:function(e,t,r,n){var o={};"POINT"!==e.type&&"BASIC_POINT"!==e.type&&"POINT"!==t||"LINE"===t?["LINE","LINESTRING","MULTILINESTRING"].includes(t)?o={strokeWidth:"line-width",strokeColor:"line-color",strokeOpacity:"line-opacity"}:["REGION","POLYGON","MULTIPOLYGON"].includes(t)&&(o={fillColor:"fill-color",fillOpacity:"fill-opacity"}):o={fillColor:"circle-color",strokeWidth:"circle-stroke-width",fillOpacity:"circle-opacity",radius:"circle-radius",strokeColor:"circle-stroke-color",strokeOpacity:"circle-stroke-opacity"};var i={};for(var a in e)o[a]&&(i[o[a]]=e[a]);if(r&&(n?i[n]=r:i["circle-color"]?i["circle-color"]=r:i["line-color"]?i["line-color"]=r:i["fill-color"]=r),e.lineDash&&!i["line-dasharray"]&&(Array.isArray(e.lineDash)?i["line-dasharray"]=e.lineDash:"solid"!==e.lineDash&&"LINE"===t&&(i["line-dasharray"]=this.getDashStyle(e.lineDash))),e.lineDash&&!i["circle-translate"])if(Array.isArray(e.circleTranslate))i["circle-translate"]=e.circleTranslate;else if("POINT"===e.type||"BASIC_POINT"===e.type||"POINT"===t){var s=e.offsetX||0,u=e.offsetY||0;i["circle-translate"]=[s*e.radius,u*e.radius]}return i}},{key:"_addOverlayToMap",value:function(e){var t=e.type,r=e.source,n=e.layerID,o=e.parentLayerId,i=e.beforeId,a=e.layerStyle,s=e.minzoom,u=e.maxzoom,l=e.filter,c={POINT:"circle",LINE:"line",POLYGON:"fill"}[t];if("circle"===c||"line"===c||"fill"===c){var f={id:n,type:c,source:r,paint:a.style,layout:a.layout||{},minzoom:s||0,maxzoom:Math.min(u||this.map.getMaxZoom()+1,24)};l&&(f.filter=l),this._addLayer(f,o,i)}}},{key:"_addBaselayer",value:function(e){var t=e.url,r=e.layerID,n=e.parentLayerId,o=e.visibility,i=void 0===o||o,a=e.minzoom,s=void 0===a?0:a,u=e.maxzoom,l=e.isIserver,c=void 0!==l&&l,f=e.tileSize,p=void 0===f?256:f,h=e.bounds,y={type:"raster",tiles:t,minzoom:s||0,maxzoom:Math.min(u||this.map.getMaxZoom()+1,24),tileSize:c?this.rasterTileSize:p,rasterSource:c?"iserver":"",prjCoordSys:c&&!this.isOnlineBaseLayer(t[0],this.baseProjection)&&+this.baseProjection.split(":")[1]>0?{epsgCode:this.baseProjection.split(":")[1]}:"",proxy:this.baseLayerProxy};h&&(y.bounds=h);var d=y;!this.map.getSource(r)||this.map.getLayer(r)&&this.checkSameLayer&&this._isSameRasterLayer(r,y)||(d="".concat(r,"_").concat(+new Date),this.map.addSource(d,y)),this._addLayer({id:r,type:"raster",source:d,minzoom:s||0,maxzoom:Math.min(u||this.map.getMaxZoom()+1,24),layout:{visibility:this._getVisibility(i)}},n),this.baseLayerProxy=null}},{key:"_addStrokeLineForPoly",value:function(e){var t=e.style,r=e.source,n=e.layerID,o=e.parentLayerId,i=e.visible,a=e.minzoom,s=e.maxzoom,u={style:this._transformStyleToMapBoxGl(t,"LINE"),layout:{visibility:i}};this._addOverlayToMap({type:"LINE",source:r,layerID:n,parentLayerId:o,layerStyle:u,minzoom:a,maxzoom:s})}},{key:"_getThemeField",value:function(e){return"VECTOR"===e.layerType?"":"HEAT"===e.layerType?e.themeSetting.weight:e.themeSetting.themeField}},{key:"_initLegendConfigInfo",value:function(e,t){var r=this,n={layerId:e.layerID,layerTitle:e.layerID,themeField:this._getThemeField(e),styleGroup:t},o=function(e,t){var n={style:{shape:r._getShape(t.featureType),type:r._getType(e.style.type)}};return r._addProps(n,e),n};switch(e.layerType){case"UNIQUE":case"VECTOR":n.styleGroup=n.styleGroup.map(function(t){return nye({fieldValue:t.value},o(t,e))});break;case"RANGE":case"RANK_SYMBOL":n.styleGroup=n.styleGroup.map(function(t){return nye({start:t.start,end:t.end},o(t,e))});break;case"HEAT":n.styleGroup=[{style:{shape:"POINT",type:"style",colors:this._heatColorToGradient(n.styleGroup)}}]}var i=this._legendList.findIndex(function(t){return t.layerId===e.layerID});i>-1?this._legendList.splice(i,1,n):this._legendList.push(n)}},{key:"_heatColorToGradient",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];return e.forEach(function(r,n){n>5&&n%2==0&&t.push({value:r,key:6===n?0:e[n-1]})}),t}},{key:"_getType",value:function(e){return["IMAGE_POINT","SVG_POINT"].includes(e)?"image":"style"}},{key:"_getShape",value:function(e){return"POLYGON"===e?"FILL":e}},{key:"_addProps",value:function(e,t){if("POINT"===e.style.shape){if(Object.assign(e.style,{color:t.style.fillColor||t.color,opacity:t.style.fillOpacity,fontSize:2*t.radius||t.style.fontSize||"14px"}),"image"===e.style.type)return void Object.assign(e.style,{url:(t.style.imageInfo||{}).url||t.style.url});if(t.style.className)return void Object.assign(e.style,{icon:t.style.className})}"LINE"!==e.style.shape?"FILL"===e.style.shape&&Object.assign(e.style,{backgroundColor:t.style.fillColor||t.color,opacity:t.style.fillOpacity,outlineColor:t.style.strokeColor,width:20,height:20}):Object.assign(e.style,{width:20,lineStyles:[{color:t.color,lineDash:[],lineOffset:0,lineWidth:2,opacity:t.style.strokeOpacity||1}]})}},{key:"_createMvtLayer",value:function(e,t,r){var o=this._getDataVectorTileStyle(r),i=this._transformStyleToMapBoxGl(o,r),a=e.url+"/tileFeature.mvt",s=n.CRS.get(this.baseProjection).getOrigin(),u=t.minzoom,l=t.maxzoom;a+="?&returnAttributes=true&width=512&height=512&x={x}&y={y}&scale={scale}&origin={x:".concat(s[0],",y:").concat(s[1],"}"),this._addLayer({id:t.layerID,type:o.mbglType,source:{type:"vector",tiles:[a],proxy:this.webMapService.handleProxy("image")},"source-layer":"".concat(e.datasetName,"@").concat(e.datasourceName),paint:i,layout:{visibility:t.visible?"visible":"none"},minzoom:u||0,maxzoom:Math.min(l||this.map.getMaxZoom()+1,24)}),this._addLayerSucceeded()}},{key:"_getDataVectorTileStyle",value:function(e){var t={radius:8,fillColor:"#EE4D5A",fillOpacity:.9,strokeColor:"#ffffff",strokeWidth:1,strokeOpacity:1,lineDash:"solid",type:"BASIC_POINT",mbglType:"circle"};return["LINE","LINESTRING","MULTILINESTRING"].includes(e)?(t.strokeColor="#4CC8A3",t.strokeWidth=2,t.mbglType="line"):["REGION","POLYGON","MULTIPOLYGON"].includes(e)&&(t.fillColor="#826DBA",t.mbglType="fill"),t}},{key:"_unproject",value:function(e){var t=this._unprojectProjection||this.baseProjection;return"EPSG:4326"===t?e:gC({coordinates:e,sourceProjection:t,proj4:this.specifiedProj4})}},{key:"_isValidBounds",value:function(e){if(!Array.isArray(e)||4!==e.length)return!1;var t=Xhe(e,4),r=t[0],n=t[1],o=t[2],i=t[3];if(![r,n,o,i].every(function(e){return"number"==typeof e&&Number.isFinite(e)}))return!1;if(r>=o||n>=i)return!1;return!(Math.abs(r)>180+1e-6||Math.abs(o)>180+1e-6||Math.abs(n)>90+1e-6||Math.abs(i)>90+1e-6)&&!(Math.abs(r)<.5&&Math.abs(o)<.5&&Math.abs(n)<.5&&Math.abs(i)<.5)}},{key:"_getMapCenter",value:function(e){var t=e.center&&[e.center.x,e.center.y];return t||(t=[0,0]),t=this._unproject(t,!1),t=new n.LngLat(t[0],t[1])}},{key:"_getLabelFontFamily",value:function(e){var t=["sans-serif"],r=e.layers;return r&&r.length>0&&r.forEach(function(e){e.labelStyle&&t.push(e.labelStyle.fontFamily)},this),t.push("supermapol-icons"),t.join(",")}},{key:"_getTiandituUrl",value:function(e){for(var t=/t0/gi,r={tiandituUrl:[],labelUrl:[]},n=e.baseLayer.layerType.split("_")[1].toLowerCase(),o=Boolean(e.baseLayer.labelLayerVisible),i=this.tiandituKey||e.baseLayer.tk,a="https://t0.tianditu.gov.cn/{layer}_{proj}/wmts?tk=".concat(i),s=a,u="EPSG:4326"===this.baseProjection?"c":"w",l={service:"WMTS",request:"GetTile",style:"default",version:"1.0.0",layer:n,tilematrixSet:u,format:"tiles",width:256,height:256},c=(a=N.urlAppend(a,this._getParamString(l,a)+"&tilematrix={z}&tilerow={y}&tilecol={x}")).replace("{layer}",n).replace("{proj}",u),f=[],p=0;p<8;p++)f.push(c.replace(t,"t".concat(p)));if(r.tiandituUrl=f,o){var h={vec:"cva",ter:"cta",img:"cia"}[n];l.layer=h,s=(s=N.urlAppend(s,this._getParamString(l,s)+"&tilematrix={z}&tilerow={y}&tilecol={x}")).replace("{layer}",h).replace("{proj}",u);for(var y=[],d=0;d<8;d++)y.push(s.replace(t,"t".concat(d)));r.labelUrl=y}return r}},{key:"_getProjectionWKT",value:function(e){var t=vC(e);return t&&e.match(/^EPSG:/)?mC(t,this.specifiedProj4):e}},{key:"_fetchRequest",value:function(e,t,r){return H.get(e,null,r).then(function(e){return e[t]()}).then(function(e){return e}).catch(function(e){console.log(e)})}},{key:"getEpsgCodeWKT",value:function(e,t){if(e)return this._fetchRequest(e,"text",t)}},{key:"getBounds",value:function(e,t){return e?this._fetchRequest(e,"json",t):Promise.resolve(null)}},{key:"_getBoundList",value:function(e){if(e&&e.bounds)return[e.bounds.left,e.bounds.bottom,e.bounds.right,e.bounds.top]}},{key:"_addLayer",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.id,r=arguments.length>2?arguments[2]:void 0,n=e.id;if(this.map.getLayer(n))return this.checkSameLayer&&this._isSameRasterLayer(n,e.source)?void this._setCacheLayer({layerInfo:e,parentLayerId:t,id:n,reused:!0,beforeId:r}):void this._updateLayer(e);var o=Object.assign({},e);o.metadata=Object.assign({},o.metadata,{SM_Layer_Id:t}),this.map.addLayer(o),this._setCacheLayer({layerInfo:e,parentLayerId:t,id:n,beforeId:r})}},{key:"_setCacheLayer",value:function(e){var t=e.parentLayerId,r=e.layerInfo,n=e.reused,o=void 0!==n&&n,i=e.beforeId,a=e.subRenderLayers,s=e.metadata,u=a||[{layerId:r.id,reused:o}];if(this._cacheLayerId.has(t)){var l,c=this._cacheLayerId.get(t),f=-1;i&&(f=c.renderLayers.findIndex(function(e){return e.layerId===i}));var p=f<0?c.renderLayers.length:f;(l=c.renderLayers).splice.apply(l,[p,0].concat(Zhe(u)))}else{var h=Object.assign({},s||r&&r.metadata,{SM_Layer_Id:t});this._cacheLayerId.set(t,{renderLayers:u,metadata:h})}if(this.addLayersSucceededLen&&this._cacheLayerId.size<=this.expectLayerLen){this._changeSourceListModel();var y=this.getLayers(),d=this.getSelfAppreciableLayers(y),m=this._findTopLayerBeforeId(d);this.rectifyLayersOrder(d,m),this.fire("layeraddchanged",this._getSelfAppreciableLayers(y))}}},{key:"_findTopLayerBeforeId",value:function(e){var t=this,r=e.filter(function(e){return!e.reused}).reduce(function(e,t){return e.concat(t.renderLayers)},[]),n=r.find(function(e){return t.map.style._layers[e]});if(n){var o,i=this.map.getStyle().layers,a=i.findIndex(function(e){return e.id===n}),s=$he(i.filter(function(e){return!r.some(function(t){return t===e.id})}).map(function(e){return e.id}));try{var u,l=function(){var e=o.value;if(i.findIndex(function(t){return t.id===e})>a)return{v:e}};for(s.s();!(o=s.n()).done;)if(u=l())return u.v}catch(e){s.e(e)}finally{s.f()}}}},{key:"_changeSourceListModel",value:function(){var e=this,t=[],r=[this._mapInfo.baseLayer].concat(this._mapInfo.layers);if(this._graticuleLayer){var n=this._graticuleLayer,o=n.id,i=n.visible;r.push({layerID:o,visible:i,name:"GraticuleLayer"})}if(r.forEach(function(r){var n=r.layerID||r.name,o=void 0===r.visible||"visible"===r.visible||!0===r.visible,i=e._cacheLayerId.get(n);if(i){var a=i.renderLayers.map(function(e){return e.layerId});if(!a.length)return;t.push(nye(nye(nye({},r),i),{},{id:n,visible:o,renderLayers:a,reused:i.renderLayers.some(function(e){return e.reused})}))}}),!this._sourceListModel)return this._sourceListModel=new Dhe({map:this.map,layers:t,appendLayers:this._appendLayers}),void this._sourceListModel.on({layerupdatechanged:function(t){e.fire("layerupdatechanged",t)}});this._sourceListModel.setLayers(t)}},{key:"_getSelfAppreciableLayers",value:function(e){return{layers:this.getSelfAppreciableLayers(e),allLoaded:this._cacheLayerId.size===this.expectLayerLen}}},{key:"_isSameRasterLayer",value:function(e,t){return Oo(t,this.map.getSource(e))}},{key:"_centerValid",value:function(e){return!(!e||!(e.length>0||Jhe(e)===n.LngLat||e.lng))}},{key:"_getResolution",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:512;return e.leftBottom&&e.rightTop?Math.max(e.rightTop.x-e.leftBottom.x,e.rightTop.y-e.leftBottom.y)/t:Math.max(e[2]-e[0],e[3]-e[1])/t}},{key:"_transformScaleToZoom",value:function(e,t,r){r=r||512;var n=t.getExtent(),o=t.unit,i=1/N.getScaleFromResolutionDpi((n[2]-n[0])/r,96,o),a=e.split(":")[1];return Math.min(23,+Math.log2(i/+a).toFixed(2))}},{key:"_updateLayer",value:function(e){var t=this,r=e.id,n=e.paint,o=e.source,i=o.type,a=o.tiles,s=o.data,u=o.proxy,l=this.map.getSource(r);l&&("geojson"===i||"geojson"===l.type?(Object.keys(n).forEach(function(e){t.map.setPaintProperty(r,e,n[e])}),s&&l.setData(s)):"raster"===i&&this._updateRasterSource(r,{proxy:u,tiles:a}))}},{key:"_updateRasterSource",value:function(e,t){if(e){var r=this.map.getSource(e);Object.assign(r,t),this.map.style.sourceCaches[e].clearTiles(),this.map.style.sourceCaches[e].update(this.map.transform),this.map.triggerRepaint()}}},{key:"updateOverlayLayer",value:function(e,t,r,n){var o=this._mapInfo.layers.find(function(t){return t.layerID===e.id});if(t)this._initOverlayLayer(o,t,r,n);else{var i=this.webMapService.getDatasourceType(o);this.getLayerFeatures(o,this._taskID,i)}}},{key:"isOnlineBaseLayer",value:function(e,t){return e.startsWith("https://maptiles.supermapol.com/iserver/services/map_China/rest/maps/China_Dark")&&"EPSG:3857"===t}},{key:"_handleMultyPolygon",value:function(e){var t=this;return e.forEach(function(e){if("Polygon"===e.geometry.type){var r=e.geometry.coordinates;if(r.length>1){for(var n=[[r[0]]],o=1;o0?n[n.length-1].push(r[o]):n.push([r[o]]))}e.geometry.coordinates=n,e.geometry.type="MultiPolygon"}}}),e}},{key:"signedArea",value:function(e){for(var t,r,n=0,o=0,i=e.length,a=i-1;oe.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(e=Iye(this,t,[r]))._mapInfo=r.mapInfo,e._mapResourceInfo=r.mapResourceInfo,e._l7LayerUtil=r.l7LayerUtil,e._legendList=r.legendList,e._immutableTopOrderLayers=["chart","point-extrusion"];var n=r.mapInfo.metadata.layerCatalog;e.setLayerCatalog(n);var o=e._generateLayers();return e.setLayers(o),e.setDefaultBaseLayerInfo(e._generateBaseLayerInfo(n,o)),e.initDatas(),e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&kye(e,t)}(t,_he),r=t,(n=[{key:"setLayerCatalog",value:function(e){this._layerCatalog=e}},{key:"createLayerCatalogs",value:function(){var e=this.getLayers(!1),t=this._createSourceCatalogs(this._layerCatalog,e),r=this.getSelfLayers(),n=e.filter(function(e){return!r.some(function(t){return t.id===e.id})});return this._initSourceList(n).concat(t)}},{key:"getSelfLayerIds",value:function(){return this.layers.reduce(function(e,t){return e.concat(t.layerInfo.renderLayers)},[])}},{key:"initLayers",value:function(){var e=this,t=this._getAllLayersOnMap();this.appendLayers&&(t=[]);var r=this.layers.map(function(t){var r=Object.assign({},t);return t["source-layer"]&&(r.sourceLayer=t["source-layer"]),e._pickLayerFields(r)}),n=this.layers.reduce(function(e,t){return e.concat(t.layerInfo.renderLayers)},[]);return this.concatExpectLayers(r,n,t)}},{key:"setBaseLayer",value:function(e){var t=this.layers.slice(),r=this._layerCatalog.slice(),n=r.pop();this._removeBaseLayerRenderLayers(n,t);var o=e.layers.map(function(e){var t=e.metadata&&e.metadata.title;return Cye(Cye({},e),{},{layerInfo:{id:e.id,title:t||e.id,renderLayers:[e.id]}})});t.unshift.apply(t,bye(o));var i=(e.layers[0]||{}).id||"",a={id:i,title:e.title||i,type:"basic",visible:!0};e.layers.length>1&&(a.id=e.id||i,a.type="group",a.children=e.layers.map(function(e){var t=e.metadata&&e.metadata.title;return{id:e.id,title:t||e.id,type:"basic",visible:!0}})),r.push(a),this.setLayerCatalog(r),this.setLayers(t)}},{key:"_createSourceCatalogs",value:function(e,t){var r=this;return e.map(function(e){var n,o=e.id,i=e.title,a=void 0===i?o:i,s=e.type,u=e.visible,l=e.children,c=e.parts;if("group"===s)n={children:r._createSourceCatalogs(l,t),id:o,title:a,type:s,visible:u};else{var f=Po(c,o,r.layers),p=t.find(function(e){return e.id===f[0]});r.removeLayerExtralFields([p]),n=Object.assign({},p)}return n})}},{key:"_generateLayers",value:function(){var e=this,t=this._mapResourceInfo,r=t.catalogs,n=void 0===r?[]:r,o=t.datas,i=void 0===o?[]:o,a=Io(n,"catalogType"),s=Io(this._mapInfo.metadata.layerCatalog),u=this._l7LayerUtil.getL7MarkerLayers(),l=s.map(function(t){var r=Po(t.parts,t.id,e._mapInfo.layers),n=To(t.parts,t.id,e._mapInfo.layers),o={id:n.id,title:t.title,renderLayers:r,reused:n.metadata&&n.metadata.reused},s=a.find(function(e){return e.id===t.id})||{},l=s.msDatasetId,c=s.relationMsDatasetId,f=s.filter,p=s.serviceLayerId;f&&(o.filter=f);var h={};if(l){var y,d=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Aye(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}(i);try{for(d.s();!(y=d.n()).done;){var m=y.value,v=m.datasets&&m.datasets.find(function(e){return e.msDatasetId===l});if(v){if(h={serverId:v.datasetId,type:m.sourceType},"REST_DATA"===m.sourceType){var g=gye(m.url.split("/rest/data/datasources/"),2),b=g[0],A=g[1];h.url="".concat(b,"/rest/data"),h.dataSourceName="".concat(A,":").concat(v.datasetName),delete h.serverId}break}}}catch(e){d.e(e)}finally{d.f()}}if(c){var w=i.find(function(e){return e.datasets.find(function(e){return e.msDatasetId===c})});if("WFS"===(w&&w.sourceType)){var S=w.withCredential,C=w.url;if(S&&S.key&&S.value){var E=C.includes("?")?"&":"?";C="".concat(C).concat(E).concat(S.key,"=").concat(S.value)}var x=w.datasets.find(function(e){return e.msDatasetId===c});Object.assign(h,{type:"WFS",datasetName:x.datasetName,url:C})}}var _=e.map.getSource(n.source);if(!Object.keys(h).length&&_&&"vector"===_.type){var I=e._mapInfo.sources[n.source]||_;if(I.tiles&&I.tiles.length>0){var O=I.tiles[0];switch(!0){case O.includes("/rest/maps/"):var k=gye(O.split("/rest/maps/"),2),P=k[0],T=gye(k[1].split("/tileFeature"),1)[0];h.url="".concat(P,"/rest/maps"),h.mapName=T,h.type="REST_MAP",h.layerName=p;break;case O.includes("/restjsr/v1/"):var j=gye(O.split("/restjsr/v1/"),2),M=j[0],N=gye(j[1].split("/tiles/"),1)[0];h.url="".concat(M,"/restjsr/v1/vectortile/maps"),h.mapName=N,h.type="RESTJSR";break;default:h.url=O,h.type="VECTOR_OTHER"}}}o.dataSource=Object.assign(h,{serviceLayerId:p}),e._l7LayerUtil.isL7Layer(n)&&(o.CLASS_NAME="L7Layer"),u[n.id]&&(o.CLASS_INSTANCE=u[n.id]);var B=e._legendList.filter(function(e){return e.layerId===n.id}).map(function(e){return e.themeField}).filter(function(e){return!!e}),L=Array.from(new Set(B));return L.length>0&&(o.themeSetting={themeField:L}),e._immutableTopOrderLayers.some(function(e){return e===n.type})&&(o.metadata=Object.assign({},n.metadata,{SM_Layer_Order:"top"})),Object.assign({},n,{layerInfo:o})});return l.reverse(),l}},{key:"_generateBaseLayerInfo",value:function(e,t){var r=e.slice().pop();if(r){var n=this._getBaseLayerRenderLayers(r,t).map(function(e){var r=Cye({},e);delete r.layerInfo;var n=t.findIndex(function(t){return t.id===e.id})+1;return t[n]&&(r.beforeId=t[n].id),r}),o=this.map.getStyle().sources;return{id:"__default__".concat(r.id),title:r.title,layers:n,sources:n.reduce(function(e,t){var r=t.source;return r&&!e[r]&&(e[r]=o[r]),e},{})}}}},{key:"_getBaseLayerRenderLayers",value:function(e,t){var r=new Set,n=function(e){e.children&&e.children.forEach(function(e){return n(e)}),(e.parts||[e.id]).forEach(function(e){return r.add(e)})};return n(e),t.filter(function(e){return r.has(e.id)})}},{key:"_removeBaseLayerRenderLayers",value:function(e,t){var r=new Set,n=function(e){e.children&&e.children.forEach(function(e){return n(e)}),(e.parts||[e.id]).forEach(function(e){return r.add(e)})};n(e);for(var o=0,i=0;i=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Mye(e,t){if(e){if("string"==typeof e)return Nye(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Nye(e,t):void 0}}function Nye(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function Lye(e){"@babel/helpers - typeof";return(Lye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Rye(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Dye(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),(r=Uye(this,s)).mapId=e,r.options=t,r.mapOptions=n,r._mapResourceInfo={},r._relatedInfo=t.relatedInfo||{},r._sprite="",r._spriteDatas={},r._appendLayers=!1,r._baseProjection="",r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&qye(e,t)}(s,e),u=s,(l=[{key:"initializeMap",value:function(e,t){if(this._mapInfo=e,this._baseProjection=this._registerMapCRS(e),t){if(this.map=t,!o.isSameProjection(this.map,this._baseProjection))return void this.fire("projectionnotmatch");this._appendLayers=!0;var r=this._mapInfo.sprite;if(r&&(this._sprite=r,this.map.addStyle({sprite:r})),this.map.addLocalIdeographFontFamily){var n=this._getLabelFontFamily(e);this.map.addLocalIdeographFontFamily(n)}this._initLayers()}else this._createMap()}},{key:"cleanLayers",value:function(e){var t,r,n,o,a;(t=s,r="cleanLayers",n=this,a=zye(Hye(1&(o=3)?t.prototype:t),r,n),2&o&&"function"==typeof a?function(e){return a.apply(n,e)}:a)([e]);var u=i.getL7MarkerLayers();for(var l in u)i.removeL7MarkerLayer(l,this.map.$l7scene)}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this.map){if(this._sourceListModel&&(this._sourceListModel.destroy(),this._sourceListModel=null),e){var t=this.map.$l7scene;t&&t.removeAllLayer(),this.map.remove()}this.map=null,this._legendList=[],this._mapResourceInfo={},this._sprite="",this._spriteDatas={},this.mapOptions={},this.options={}}}},{key:"copyLayer",value:function(){var e=Qye(Bye().mark(function e(t){var r,n,o,a,s,u,l=arguments;return Bye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(r=l.length>1&&void 0!==l[1]?l[1]:{},(n=this._mapInfo.layers.find(function(e){return e.id===t}))&&!this._getLayerOnMap(r.id)){e.next=4;break}return e.abrupt("return");case 4:if(o=r.id||"".concat(n.id,"_copy"),a=Dye(Dye(Dye({},n),r),{},{id:o}),!i.isL7Layer(a)){e.next=13;break}return s=[a],u=this._getAddL7LayersParams(s,this._mapInfo.sources,s),e.next=11,i.addL7Layers(u);case 11:e.next=15;break;case 13:"object"===Lye(a.source)&&(this.map.addSource(a.id,a.source),a.source=a.id),this.map.addLayer(a);case 15:return e.abrupt("return",a);case 16:case"end":return e.stop()}},e,this)}));return function(t){return e.apply(this,arguments)}}()},{key:"updateOverlayLayer",value:function(e,t,r){if("geojson"===e.renderSource.type){var n=e.renderSource.id,o={type:"FeatureCollection",features:t=_o({sourceId:n,features:t,mergeByField:r,map:this.map})};this.map.getSource(n).setData(o)}}},{key:"_createMap",value:function(){var e=this,t=this._mapInfo,o=t.name,i=void 0===o?"":o,a=t.center,s=void 0===a?new n.LngLat(0,0):a,u=t.zoom,l=void 0===u?0:u,c=t.bearing,f=void 0===c?0:c,p=t.pitch,h=void 0===p?0:p,y=t.minzoom,d=t.maxzoom,m=t.sprite,v=void 0===m?"":m;s=this.mapOptions.center||s,l=this.mapOptions.zoom||l,f=this.mapOptions.bearing||f,h=this.mapOptions.pitch||h;var g=this._getLabelFontFamily(),b=Dye(Dye({},this.mapOptions),{},{transformRequest:this._getTransformRequest(),container:this.options.target,crs:this._baseProjection,center:s,zoom:l,style:{sprite:v,name:i,version:8,sources:{},layers:[]},minZoom:y,maxZoom:d,bearing:f,pitch:h,localIdeographFontFamily:g||""});this.map=new r(b),this._sprite=v,this.fire("mapinitialized",{map:this.map}),this.map.on("load",function(){e._initLayers()})}},{key:"_getTransformRequest",value:function(){var e=this;return this.mapOptions.transformRequest?this.mapOptions.transformRequest:function(t,r){var n=e.options.iportalServiceProxyUrlPrefix&&t.indexOf(e.options.iportalServiceProxyUrlPrefix)>=0?"include":void 0;return"Tile"===r||"Image"===r?Dye({url:t,credentials:n},e.options.tileTransformRequest&&e.options.tileTransformRequest(t)):{url:t,credentials:n}}}},{key:"_registerMapCRS",value:function(e){var t=e.crs,r=t;return"object"===Lye(t)&&(o.registerCRS(t),r=t.name),r}},{key:"_getFieldCaption",value:function(e){var t=this._mapResourceInfo.datas,r=null;return(void 0===t?[]:t).forEach(function(t){if(t.datasets){var n=t.datasets.findIndex(function(t){return t.msDatasetId===e});-1!==n&&(r=t.datasets[n].fieldsCaptions)}}),r}},{key:"_getPopupInfoContent",value:function(e,t){var r=_S()(e),n=this._getFieldCaption(t);return n&&(r.elements=r.elements?r.elements.map(function(e){return"FIELD"===e.type&&(e.fieldCaption=n[e.fieldName]||e.fieldName),e}):[]),r}},{key:"_getPopupInfoByCatalog",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=e.catalogType,o=e.children;if("group"===n&&o&&o.forEach(function(e){t._getPopupInfoByCatalog(e,r)}),"layer"===n){var i=e.popupInfo,a=e.msDatasetId,s=e.title,u=e.layersContent;if(i){var l=this._getPopupInfoContent(i,a);l&&r.push(Dye(Dye({},l),{},{layerId:u,title:s}))}}}},{key:"_getPopupInfos",value:function(){var e=this,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._mapResourceInfo).catalogs,r=[];return(void 0===t?[]:t).forEach(function(t){e._getPopupInfoByCatalog(t,r)}),r}},{key:"_getLegendInfoByCatalog",value:function(e){var t=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=e.catalogType,o=e.children,i=e.showLegend,a=e.title,s=e.id;"group"===n&&o&&o.forEach(function(e){t._getLegendInfoByCatalog(e,r)}),"layer"===n&&r.push({showLegend:!1!==i,id:s,title:a})}},{key:"_getLegendInfos",value:function(){var e=this,t=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._mapResourceInfo).catalogs,r=[];return(void 0===t?[]:t).forEach(function(t){e._getLegendInfoByCatalog(t,r)}),r}},{key:"_initLayers",value:function(){var e=Qye(Bye().mark(function e(){var t=this;return Bye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this._getSpriteDatas();case 2:if("[object Object]"!==Object.prototype.toString.call(this.mapId)){e.next=8;break}return this.mapParams={title:this._mapInfo.name,description:this._relatedInfo.description},this._relatedInfo.projectInfo&&(this._mapResourceInfo=JSON.parse(this._relatedInfo.projectInfo),this._changeMapInfoFilter()),this._createMapRelatedInfo(),this._addLayersToMap(),e.abrupt("return");case 8:this._getMapRelatedInfo().then(function(e){t.mapParams={title:t._mapInfo.name,description:e.description},t._mapResourceInfo=JSON.parse(e.projectInfo),t._changeMapInfoFilter(),t._createMapRelatedInfo(),t._addLayersToMap()}).catch(function(e){t.fire("mapcreatefailed",{error:e}),console.error(e)});case 9:case"end":return e.stop()}},e,this)}));return function(){return e.apply(this,arguments)}}()},{key:"_changeMapInfoFilter",value:function(){if(n&&n.convertFilter){var e=this._mapInfo.layers,t=void 0===e?[]:e;t.forEach(function(e){e.filter&&(e.filter=n.convertFilter(e.filter))}),this._mapInfo=Dye(Dye({},this._mapInfo),{},{layers:t})}}},{key:"_createMapRelatedInfo",value:function(){var e=this._mapInfo.glyphs;for(var t in e)this.map.style.addGlyphs(t,e[t])}},{key:"_getMapRelatedInfo",value:function(){var e=function(e){var t=e.url,r=e.server,n=e.excludePortalProxyUrl,o=e.credentialValue,i=e.credentialKey,a=-1===t.indexOf(".json")?"".concat(t,".json"):t,s="getUrlResource.json?url=";if(n&&r.indexOf(s)>-1){var u=r.split(s);u.length>1&&(a=u[0]+s+a)}return o&&i&&(a+="?"+i+"="+o),a}(Object.assign({url:"".concat(this.options.server,"web/maps/").concat(this.mapId)},this.options));return H.get(e,null,{withCredentials:a.handleUrlWithCredentials(e)}).then(function(e){return e.json()})}},{key:"_addLayersToMap",value:function(){var e=Qye(Bye().mark(function e(){var t,r,n,o,a,s,u,l,c,f,p,h,y,d=this;return Bye().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,t=this._setUniqueId(this._mapInfo,this._mapResourceInfo),r=t.sources,n=t.layers,o=t.layerCatalog,a=t.catalogs,Object.assign(this._mapInfo,{sources:r,layers:n,metadata:Object.assign(this._mapInfo.metadata,{layerCatalog:o})}),Object.assign(this._mapResourceInfo,{catalogs:a}),s=n.filter(function(e){return!i.isL7Layer(e)}),u=s.map(function(e){return e.source}),l=jye(u),e.prev=7,l.s();case 9:if((c=l.n()).done){e.next=18;break}if(f=c.value,!(p=r[f])||"geojson"!==p.type||!p.data||"supermap-rest-data"!==p.data.type){e.next=16;break}return e.next=15,i.getRestDataGeojsonByWebMap(p.data,{iportalServiceProxyUrlPrefix:this.options.server,withoutFormatSuffix:!0});case 15:p.data=e.sent;case 16:e.next=9;break;case 18:e.next=23;break;case 20:e.prev=20,e.t0=e.catch(7),l.e(e.t0);case 23:return e.prev=23,l.f(),e.finish(23);case 26:if(s.forEach(function(e){e.metadata&&e.metadata.reused||(e.source&&!d.map.getSource(e.source)&&d.map.addSource(e.source,r[e.source]),"symbol"===e.type&&0===e.layout["text-z-offset"]&&delete e.layout["text-z-offset"],d.map.addLayer(e))}),!((h=n.filter(function(e){return i.isL7Layer(e)})).length>0)){e.next=32;break}return y=this._getAddL7LayersParams(n,r,h),e.next=32,i.addL7Layers(y);case 32:this._createLegendInfo(),this._sendMapToUser(),e.next=40;break;case 36:e.prev=36,e.t1=e.catch(0),this.fire("mapcreatefailed",{error:e.t1,map:this.map}),console.error(e.t1);case 40:case"end":return e.stop()}},e,this,[[0,36],[7,20,23,26]])}));return function(){return e.apply(this,arguments)}}()},{key:"_getAddL7LayersParams",value:function(e,t,r){return{map:this.map,webMapInfo:Dye(Dye({},this._mapInfo),{},{layers:e,sources:t}),l7Layers:r,spriteDatas:this._spriteDatas,options:Dye(Dye({},this.options),{},{emitterEvent:this.fire.bind(this),transformRequest:this._getTransformRequest()})}}},{key:"_setUniqueId",value:function(e,t){var r=this._handleUnSupportedLayers(e),n=JSON.parse(JSON.stringify(e.layers)).filter(function(e){return!r.includes(e.id)}),o={},i={},a=[],s="_".concat(+new Date);for(var u in e.sources){var l=u;this.map.getSource(u)&&(l=u+s),i[l]=u,o[l]=e.sources[u];var c,f=jye(n);try{for(f.s();!(c=f.n()).done;){var p=c.value;p.source===u&&(p.source=l)}}catch(e){f.e(e)}finally{f.f()}}var h,y=jye(n);try{for(y.s();!(h=y.n()).done;){var d=h.value,m=d.id,v=this._getLayerOnMap(d.id);if(v)if(this.options.checkSameLayer&&Oo(o[d.source],this.map.getSource(v.source)))d.metadata=d.metadata||{},d.metadata.reused=!0,d.source=i[d.source];else{var g=d.id+s;d.id=g}a.push({originId:m,renderId:d.id,id:m})}}catch(e){y.e(e)}finally{y.f()}var b=JSON.parse(JSON.stringify(e.metadata.layerCatalog),"parts");this._updateLayerCatalogsId({loopData:JSON.parse(JSON.stringify(b)),catalogs:b,layerIdMapList:a,unspportedLayers:r});var A=JSON.parse(JSON.stringify(t.catalogs||[]));return this._updateLayerCatalogsId({loopData:JSON.parse(JSON.stringify(A)),catalogs:A,layerIdMapList:a,catalogTypeField:"catalogType",layerIdsField:"layersContent",unspportedLayers:r}),{sources:o,layers:n,layerCatalog:b,catalogs:A}}},{key:"_getLayerOnMap",value:function(e){var t=this.map.overlayLayersManager[e];if(t)return t;var r=i.getL7MarkerLayers()[e];return r||this.map.getLayer(e)}},{key:"_findLayerCatalog",value:function(e,t){var r,n=jye(e);try{for(n.s();!(r=n.n()).done;){var o=r.value;if(o.id===t)return o;if(o.children){var i=this._findLayerCatalog(o.children,t);if(i)return i}}}catch(e){n.e(e)}finally{n.f()}return null}},{key:"_deleteLayerCatalog",value:function(e,t){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:this._mapInfo).layers;return t&&t.length>0&&t.forEach(function(t){var r=t.layout&&t.layout["text-font"]||[];e.push.apply(e,Tye(r))}),e.join(",")}},{key:"_getSpriteDatas",value:function(){var e=this,t=this._sprite;if(t){var r=[];return"string"==typeof t?r.push(t):"object"===Lye(t)&&Object.keys(t).forEach(function(e){r.push(t[e])}),Promise.all(r.map(function(t){return e._getSpriteData(t)})).then(function(t){t.forEach(function(t){e._spriteDatas=Dye(Dye({},e._spriteDatas),t)})})}}},{key:"_getSpriteData",value:function(e){var t=e.replace(/.+(web\/maps\/.+)/,"".concat(this.options.server,"$1"));return H.get(t,null,{withCredentials:a.handleUrlWithCredentials(t)}).then(function(e){return e.json()})}},{key:"_createLegendInfo",value:function(){var e,t=this,r=this._mapResourceInfo.catalogs,n=jye(Io(void 0===r?[]:r,"catalogType"));try{var o=function(){var r,n=e.value,o=n.visualization||{},i=o.renderer,a=o.label;if(!i)return 1;var s,u=To(n.layersContent,n.id,t._mapInfo.layers),l=t._mapInfo.sources[u.source];"clusterField"in l&&(s=l.clusterField);var c=Object.assign({},u,{title:n.title,themeField:s}),f=t._parseRendererStyleData(i);a&&(f.push(Dye(Dye({},a),{},{type:"text"})),a.symbolsContent&&a.symbolsContent.value.symbolId&&f.push(Dye(Dye({},a),{},{type:"symbol"}))),f[0].textField&&f[0].textField.value&&f.push(Dye(Dye({},f[0]),{},{type:"text"}));var p=f.reduce(function(e,r){var n=t._createLayerLegendList(c,r);return n&&e.push.apply(e,Tye(n)),e},[]);(r=t._legendList).push.apply(r,Tye(p))};for(n.s();!(e=n.n()).done;)o()}catch(e){n.e(e)}finally{n.f()}}},{key:"_getAliasKey",value:function(e,t){return"isoline3D"===e&&"dashArray"===t?"lineDasharray":t}},{key:"_transStyleKeys",value:function(e,t){var r=this;return t.map(function(t){return r._getAliasKey(e,t)})}},{key:"_transStyleSetting",value:function(e,t){for(var r in t){var n=this._getAliasKey(e,r);n!==r&&(t[n]=t[r])}}},{key:"_getLegendSimpleStyle",value:function(e,t){var r={};t&&t.filter(function(t){return e[t]&&"simple"===e[t].type}).forEach(function(t){var n="outlineColor"===t||"outlineWidth"===t,o=e&&(e.outline&&!0===e.outline.value||e.antialias&&!0===e.antialias.value);n&&!o||(r[t]=(e[t]||{}).value)});return r}},{key:"_getLegendRenderType",value:function(e){switch(e){case"text":return Yye.TEXT;case"circle":case"symbol":case"column":return Yye.POINT;case"heatGrid":case"heatHexagon":case"heat3DGrid":case"heat3DHexagon":return Yye.BUILTINSYMBOL;case"line":case"isoline3D":return Yye.LINE;case"fill":return Yye.FILL;case"fillExtrusion":return Yye.FILLEXTRUSION;case"animatePoint":return Yye.ANIMATEPOINT;case"line3D":case"animateLine":return Yye.ANIMATELINE;case"radarPoint":return Yye.RADARPOINT}}},{key:"_getLegendShape",value:function(e,t){switch(e){case"text":return Wye.TEXT;case"circle":case"symbol":return Wye.POINT;case"column":return{cylinder:Wye.POINT,triangleColumn:Wye.TRIANGLE,squareColumn:Wye.RECTANGLE,hexagonColumn:Wye.HEXAGON}[t.shape.value]||Wye.POINT;case"heatHexagon":case"heat3DHexagon":return Wye.HEXAGON;case"line":case"isoline3D":return Wye.LINE;case"fill":case"heatGrid":case"heat3DGrid":case"fillExtrusion":return Wye.RECTANGLE;case"animatePoint":return Wye.ANIMATEPOINT;case"animateLine":case"line3D":return Wye.ANIMATELINE;case"radarPoint":return Wye.RADARPOINT;case"heat":case"heat3D":return Wye.LINEGRADIENT}}},{key:"_isShowLegendSingleItem",value:function(e,t){return 0===e.length||1===e.length&&"color"===e[0]&&t}},{key:"_isWebsymbolById",value:function(e){return["line-","polygon-","point-"].some(function(t){return e&&e.startsWith(t)})}},{key:"_getSymbolSDFStatus",value:function(e,t){return!this._isWebsymbolById(e)&&(!!this._getIconById(e)||(t[e]&&t[e].sdf||!1))}},{key:"_isAllPicturePoint",value:function(e,t){var r=this;return"simple"===e.type?!this._getSymbolSDFStatus(e.value.symbolId,t):[].concat(Tye(e.values),[{value:e.defaultValue}]).filter(function(e){return e.value.symbolId}).every(function(e){return!r._getSymbolSDFStatus(e.value.symbolId,t)})}},{key:"_isAllPictureSymbolSaved",value:function(e,t,r){var n=this;if(!t)return!1;if("point"===e)return this._isAllPicturePoint(t,r);var o=t.type;return"simple"===o?!!this._getImageIdFromValue(t.value.style,rde[e]).length:"custom"!==o&&t.values.map(function(e){return e.value}).concat(t.defaultValue).every(function(t){return!!n._getImageIdFromValue(t.style,rde[e]).length})}},{key:"_getDataDrivenStyleKeys",value:function(e,t,r){return(Vye({},Yye.TEXT,Zye)[e]||t).filter(function(e){return r[e]&&"simple"!==r[e].type})}},{key:"_createLayerLegendList",value:function(e,t){var r=this,n=e.id,o=e.title,i="text"===t.type&&t.textField&&t.textField.value.replace(/^\{|\}$/g,""),a={themeField:e.themeField||t.field,layerId:n,layerTitle:o},s=t.type||e.type,u=this._getLegendRenderType(s),l=this._getLegendShape(s,t);if(["heat","heat3D"].includes(s)){var c=this._heatColorToGradient((e.paint||{})[{heat:"heatmap-color",heat3D:"heatmap-extrusion-color"}[s]]);return[Dye(Dye({},a),{},{styleGroup:[{style:{type:ade.STYLE,shape:l,colors:c}}]})]}var f=$ye[u];if(f){var p=this._transStyleKeys(s,f);this._transStyleSetting(s,t);var h=this._getLegendSimpleStyle(t,p),y=this._parseLegendtyle({legendRenderType:u,customValue:h}),d=this._getDataDrivenStyleKeys(u,p,t);if(u===Yye.ANIMATELINE){var m="replace"===t.textureBlend.value,v=!(!t.symbolsContent.value||!t.symbolsContent.value.symbolId);m&&v&&(d=d.filter(function(e){return"color"!==e}))}else{var g=nde[e.type];this._isAllPictureSymbolSaved(g,t.symbolsContent,this._spriteDatas)&&(d=d.filter(function(e){return"color"!==e}))}var b=t.color&&t.color.interpolateInfo&&"linear"===t.color.interpolateInfo.type,A=[];return this._isShowLegendSingleItem(d,b)&&A.push(Dye(Dye({},a),{},{styleGroup:[{fieldValue:i||o||n,style:Dye(Dye({},y),{},{shape:l})}]})),A.concat(d.map(function(e){var n=t[e],o=r._getSettingStyle(e,n.defaultValue,h),i=[],s=r._getSettingCustom(n),c=r._getSettingInterpolateInfo(n),f={legendRenderType:u,styleField:e,subStyleSetting:n,simpleStyle:h,defaultSetting:o,custom:s,interpolateInfo:c,shape:l};switch(r._getLegendStyleType({styleField:e,currentType:n.type,custom:s,interpolateInfo:c})){case tde.LINEAR:i=r._parseLinearStyle(f);break;case tde.RANGE:i=r._parseRangeStyle(f);break;case tde.UNIQUE:i=r._parseUniqueStyle(f)}return Dye(Dye({},a),{},{themeField:(n.field||[])[0],styleField:e,styleGroup:i})}))}}},{key:"_heatColorToGradient",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];return e.forEach(function(r,n){n>5&&n%2==0&&t.push({value:r,key:6===n?0:e[n-1]})}),t}},{key:"_getSettingCustom",value:function(e){var t=e.value,r=e.values;return this._isLinear(e)?t:r}},{key:"_getSettingInterpolateInfo",value:function(e){var t=e.interpolateInfo,r=void 0===t?{}:t;return this._isLinear(e)?{type:"linear"}:r}},{key:"_isLinear",value:function(e){return"linear"===e.type}},{key:"_getLegendStyleType",value:function(e){var t=e.styleField,r=e.currentType,n=e.custom,o=e.interpolateInfo;return["unique","linear"].includes(r)?this._isColorAttr(t)&&"linear"===o.type&&n.length>1?tde.LINEAR:tde.UNIQUE:"custom"===r?tde.CUSTOM:tde.RANGE}},{key:"_isColorAttr",value:function(e){return["color","textColor","outlineColor","textHaloColor"].includes(e)}},{key:"_parseLinearStyle",value:function(e){var t=e.shape,r=e.custom;return[{styleField:null,style:{type:ade.STYLE,shape:t,colors:r}}]}},{key:"_parseUniqueStyle",value:function(e){var t=this,r=e.legendRenderType,n=e.styleField,o=e.simpleStyle,i=e.defaultSetting,a=e.custom,s=e.interpolateInfo,u=e.shape,l=a.map(function(e){var i=t._getSettingStyle(n,e.value,o),a=t._parseLegendtyle({legendRenderType:r,customValue:i});return{fieldValue:e.key,style:Dye(Dye({},a),{},{shape:u})}});if(!s.type||"custom"===s.type){var c=this._parseLegendtyle({legendRenderType:r,customValue:i});l.push({fieldValue:null,style:Dye(Dye({},c),{},{shape:u})})}return l}},{key:"_parseRangeStyle",value:function(e){var t=this,r=e.legendRenderType,n=e.styleField,o=e.simpleStyle,i=e.defaultSetting,a=e.custom,s=e.shape,u=a.map(function(e){var i=t._getSettingStyle(n,e.value,o),a=t._parseLegendtyle({legendRenderType:r,customValue:i});return{start:e.start,end:e.end,style:Dye(Dye({},a),{},{shape:s})}}),l=this._parseLegendtyle({legendRenderType:r,customValue:i});return u.push({start:null,end:null,style:Dye(Dye({},l),{},{shape:s})}),u}},{key:"_getSettingStyle",value:function(e,t,r){var n=Object.assign({},r);return n[e]=t,n}},{key:"_parseLegendtyle",value:function(e){var t=this,r=e.legendRenderType,n=e.customValue,o=Dye({},Xye[r]);Object.keys(o).forEach(function(e){var t=n[Jye[e]||e];([Yye.FILL,Yye.FILLEXTRUSION].includes(r)||t)&&(o[e]=t)});var i=n.symbolsContent||{},a=i.symbolId,s=void 0===a?ede[r]:a,u=i.style;switch(r){case Yye.TEXT:return Dye({type:ade.STYLE,icon:"supermapol-icons-text-layer"},o);case Yye.POINT:return"BASE"===(this._getIconById(s)?"BASE":"SERVICE")?Dye({type:ade.STYLE},o):this._getSpriteStyle(s,o);case Yye.BUILTINSYMBOL:return Dye({type:ade.STYLE},o);case Yye.ANIMATEPOINT:case Yye.RADARPOINT:return Dye({type:ade.STYLE},o);case Yye.LINE:case Yye.ANIMATELINE:u=u||[];var l=Object.assign({},n);delete l.symbolsContent;var c=Dye(Dye({type:ade.STYLE},l),{},{width:ode}),f=Dye({},Xye.LINE),p=u instanceof Array?u:[u],h=p.some(function(e){return!!t._getImageIdByLegendType(e,r)}),y=p[0];if(h){var d=this._getImageIdByLegendType(y,r),m=Dye(Dye(Dye({},o),l),{},{height:o.width,width:ode});return r===Yye.ANIMATELINE&&"replace"===l.textureBlend&&(m.backgroundColor="transparent"),this._getSpriteStyle(d,m)}if(!n.symbolsContent||r===Yye.ANIMATELINE&&!h)return Dye(Dye({},c),{},{height:n.width||f.height,lineWidth:n.width||f.width,color:n.color||f.backgroundColor});if(n.symbolsContent){var v=this._getLineWidth(p),g=p.map(function(e){return t._transformLineStyle({oldWidth:v,symbol:e,defaultStyle:f,customValue:n})});return Dye(Dye({},c),{},{lineStyles:g})}return;case Yye.FILL:case Yye.FILLEXTRUSION:var b=o.backgroundColor,A=((u||{}).paint||{})["fill-color"],w=Dye({},Xye.FILL);return b||Object.assign(o,{backgroundColor:A}),Object.keys(o).forEach(function(e){["backgroundColor","width","height","opacity"].includes(e)&&!o[e]&&(o[e]=w[e])}),Object.assign(o,{outlineStyle:n.antialias||n.outline?"solid":"none"}),this._spriteDatas[s]?this._getSpriteStyle(s,Dye(Dye({},o),{},{backgroundColor:"transparent"})):Dye({type:ade.STYLE},o)}}},{key:"_getIconById",value:function(e){if("image"!==(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"svg")){return[{id:"circle",name:"circle"}].find(function(t){return t.id===e})}}},{key:"_getImageIdFromValue",value:function(e,t){var r=Array.isArray(e)?e:[e],n={symbol:"icon-image",line:"line-pattern",fill:"fill-pattern","fill-extrusion":"fill-pattern"}[t];return"symbol"===t?r.map(function(e){return e.layout&&e.layout[n]}).filter(function(e){return e}):r.map(function(e){return e.paint&&e.paint[n]}).filter(function(e){return e})}},{key:"_getImageIdByLegendType",value:function(e,t){var r={ANIMATELINE:rde.point,LINE:rde.line}[t],n=e.paint||{};return r===rde.line?n["line-pattern"]:r===rde.polygon?n["fill-pattern"]:(e.layout||{})["icon-image"]}},{key:"_getSpriteStyle",value:function(e,t){if(this._spriteDatas[e]){var r=this._spriteDatas[e];if(r.width&&r.height)return Dye(Dye({type:ade.IMAGE,sprite:r},t),{},{url:"string"==typeof this._sprite?"".concat(this._sprite,".png"):""})}}},{key:"_transformLineStyle",value:function(e){var t,r=e.oldWidth,n=e.symbol,o=e.defaultStyle,i=e.customValue,a=n.paint,s=void 0===a?{}:a;return void 0!==i.height&&(t=this._updateSingleStyleByWidth(r,i.height,n)),{lineWidth:((t||{}).paint||{})[ide]||s[ide]||o.height,opacity:i.opacity||s["line-opacity"]||o.opacity,color:i.color||s["line-color"]||o.backgroundColor,lineDash:s["line-dasharray"]||[],lineOffset:s["line-offset"]||0}}},{key:"_updateSingleStyleByWidth",value:function(e,t,r){if(e===t)return r;var n=(r||{}).paint||{};if(0===e)return{paint:Object.assign({},n,{"line-width":Number(t.toFixed(2))})};var o=t/e,i=n["line-width"],a=n["line-offset"]||0,s=n["line-dasharray"]||[],u=this._updateDash(s,o);return{paint:Object.assign({},n,{"line-width":Number((i*o).toFixed(2)),"line-offset":Number((a*o).toFixed(2)),"line-dasharray":u&&u.map(function(e){return Number(e.toFixed(2))})})}}},{key:"_updateDash",value:function(e,t){if(e&&0!==e.length)return e.map(function(e){return e/t})}},{key:"_getLineWidth",value:function(e){return e instanceof Array?this._getWholeWidth(e):(e.paint||{})[ide]||0}},{key:"_getWholeWidth",value:function(e){var t,r;return e.forEach(function(e){var n=(e||{}).paint||{},o=n["line-width"],i=n["line-offset"]||0,a=i+o/2,s=i-o/2;(a>t||void 0===t)&&(t=a),(s=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function cde(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&void 0!==arguments[0]?arguments[0]:dde(function e(){vde(this,e)});return function(t){function r(){var e;return vde(this,r),(e=fde(this,r))._sourceListModel=null,e._legendList=[],e}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&hde(e,t)}(r,e),dde(r,[{key:"initializeMap",value:function(){throw new Error("initializeMap is not implemented")}},{key:"clean",value:function(){throw new Error("clean is not implemented")}},{key:"getLayerCatalog",value:function(){return this._sourceListModel&&this._sourceListModel.getLayerCatalog()||[]}},{key:"getLayers",value:function(){return this._sourceListModel&&this._sourceListModel.getLayers()||[]}},{key:"getLegends",value:function(){return this._legendList}},{key:"setLegends",value:function(e){this._legendList=e||[]}},{key:"getSelfAppreciableLayers",value:function(){var e;return this._sourceListModel&&(e=this._sourceListModel).getSelfLayers.apply(e,arguments)||[]}},{key:"setLayersVisible",value:function(){var e;this._sourceListModel&&(e=this._sourceListModel).setLayersVisible.apply(e,arguments)}},{key:"toggleLayerVisible",value:function(){var e;this._sourceListModel&&(e=this._sourceListModel).toggleLayerVisible.apply(e,arguments)}},{key:"rectifyLayersOrder",value:function(e,t){for(var r=this,n=e.filter(function(e){return!e.reused}).reduce(function(e,t){return e.concat(t.renderLayers)},[]).filter(function(e){return!!r.map.getLayer(e)}),o=n.length-1;o>-1;o--){var i=n[o],a=n.slice(o+1),s=a.find(function(e){return r.map.style._layers[e]});a.length||(s=t),this.map.moveLayer(i,s)}return n}},{key:"changeBaseLayer",value:function(){var e;this._sourceListModel&&(e=this._sourceListModel).changeBaseLayer.apply(e,arguments)}},{key:"echartsLayerResize",value:function(){}},{key:"updateOverlayLayer",value:function(){}},{key:"copyLayer",value:function(){}},{key:"cleanLayers",value:function(e){var t,r=this,n=[],o=lde(e);try{var i=function(){var e=t.value;e.renderLayers.forEach(function(t){var o=r.map.getLayer(t);o&&(r.map.removeLayer(t),!e.l7Layer&&o.source&&"string"==typeof o.source&&n.push(o.source))}),r.map.getSource(e.renderSource.id)&&!e.l7Layer&&n.push(e.renderSource.id)};for(o.s();!(t=o.n()).done;)i()}catch(e){o.e(e)}finally{o.f()}Array.from(new Set(n)).forEach(function(e){r.map.getSource(e)&&r.map.removeSource(e)})}}])}()}function bde(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Ade(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Ade(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function Ade(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),(t=Ide(this,o)).options=r,t.mapOptions=n,t.webMapService=new Jpe(e,r),t._layerIdRenameMapList=[],t._appendLayers=!1,t._baseProjection="",t}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&kde(e,t)}(o,e),i=o,(a=[{key:"initializeMap",value:function(e,t){var o=this;if(this._baseProjection=this._registerMapCRS(this.mapOptions),t)return n.isSameProjection(t,this._baseProjection)?(this._appendLayers=!0,this.map=t,void this._addLayersToMap()):void this.fire("projectionnotmatch");this.mapOptions.container=this.options.target,this.mapOptions.transformRequest||(this.mapOptions.transformRequest=function(e,t){var r="";if("string"==typeof o.options.proxy){var n="data";"Tile"===t&&(n="image"),r=o.webMapService.handleProxy(n)}return Cde({url:r?"".concat(r).concat(encodeURIComponent(e)):e,credentials:o.webMapService.handleWithCredentials(r,e,!1)?"include":void 0},o.options.tileTransformRequest&&o.options.tileTransformRequest(e))}),this.mapOptions.center=this.mapOptions.center||[0,0],this.mapOptions.zoom=this.mapOptions.zoom||0;var i=0;Object.prototype.hasOwnProperty.call(this.mapOptions,"fadeDuration")&&(i=this.mapOptions.fadeDuration),this.map=new r(Cde(Cde({},this.mapOptions),{},{fadeDuration:i,crs:this._baseProjection})),this.fire("mapinitialized",{map:this.map}),this.map.on("load",function(){o._sendMapToUser()})}},{key:"clean",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.map&&(this._sourceListModel&&(this._sourceListModel.destroy(),this._sourceListModel=null),e&&this.map.remove(),this.map=null)}},{key:"_registerMapCRS",value:function(e){var t=e.crs,r=t;if("object"===wde(t)&&t.epsgCode){var o=t.epsgCode,i=t.WKT,a=t.extent,s=t.unit;n.registerCRS({name:o,wkt:i,extent:a,unit:s}),r=o}return r}},{key:"_addLayersToMap",value:function(){var e=this,t=this._setUniqueId(this.mapOptions.style),r=t.sources,n=t.layers,o=t.layerIdMapList;n.forEach(function(t){var n=o.find(function(e){return e.renderId===t.id});n&&n.reused||(t.source&&!e.map.getSource(t.source)&&e.map.addSource(t.source,r[t.source]),e.map.addLayer(t))}),Object.assign(this.mapOptions.style,{layers:n,sources:r}),this._layerIdRenameMapList=o,this._sendMapToUser()}},{key:"_setUniqueId",value:function(e){var t=JSON.parse(JSON.stringify(e.layers)),r={},n={},o=[],i="_".concat(+new Date);for(var a in e.sources){var s=a;this.map.getSource(a)&&(s=a+i),n[s]=a,r[s]=e.sources[a];var u,l=bde(t);try{for(l.s();!(u=l.n()).done;){var c=u.value;c.source===a&&(c.source=s)}}catch(e){l.e(e)}finally{l.f()}}var f,p=bde(t);try{for(p.s();!(f=p.n()).done;){var h=f.value,y=h.id,d=void 0,m=this.map.getLayer(h.id);if(m)if(this.options.checkSameLayer&&Oo(r[h.source],this.map.getStyle().sources[m.source]))d=!0,h.source=n[h.source];else{var v=h.id+i;h.id=v}o.push({originId:y,renderId:h.id,reused:d})}}catch(e){p.e(e)}finally{p.f()}return{sources:r,layers:t,layerIdMapList:o}}},{key:"_generateAppreciableLayers",value:function(){var e=this;return this.mapOptions.style.layers.reduce(function(t,r){var n=ko(r["source-layer"]?r:Cde(Cde({},r),{},{layerInfo:{id:r.id}})),o=t.find(function(e){return e.id===n});if(o)o.renderLayers.push(r.id);else{var i=e._layerIdRenameMapList.find(function(e){return e.renderId===r.id});t.push(Cde(Cde({},r),{},{id:n,name:i&&i.originId,renderLayers:[r.id],reused:i&&i.reused}))}return t},[])}},{key:"_sendMapToUser",value:function(){var e=this,t=this._generateAppreciableLayers();this._sourceListModel=new Dhe({map:this.map,layers:t,appendLayers:this._appendLayers}),this._sourceListModel.on({layerupdatechanged:function(t){e.fire("layerupdatechanged",t)}}),this.fire("mapcreatesucceeded",{map:this.map,mapparams:{title:this.mapOptions.name,description:""},layers:this.getSelfAppreciableLayers()})}}])&&xde(i.prototype,a),s&&xde(i,s),Object.defineProperty(i,"prototype",{writable:!1}),i;var i,a,s}()}var Tde=JSON.parse('{"$version":8,"$root":{"version":{"required":true,"type":"enum","values":[8],"doc":"Style specification version number. Must be 8.","example":8},"fragment":{"type":"boolean","doc":"Indicates that a style is a fragment style.","example":true},"name":{"type":"string","doc":"A human-readable name for the style.","example":"Bright"},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"center":{"type":"array","value":"number","doc":"Default map center in longitude and latitude. The style center will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":[-73.9749,40.7736]},"zoom":{"type":"number","doc":"Default zoom level. The style zoom will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":12.5},"bearing":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Default bearing, in degrees. The bearing is the compass direction that is \\"up\\"; for example, a bearing of 90° orients the map so that east is up. This value will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":29},"pitch":{"type":"number","default":0,"units":"degrees","doc":"Default pitch, in degrees. Zero is perpendicular to the surface, for a look straight down at the map, while a greater value like 60 looks ahead towards the horizon. The style pitch will be used only if the map has not been positioned by other means (e.g. map options or user interaction).","example":50},"light":{"type":"light","doc":"The global light source. Note: This API is deprecated. Prefer using `flat` light type instead in the `lights` API.","example":{"anchor":"viewport","color":"white","intensity":0.4}},"lights":{"required":false,"type":"array","value":"light-3d","doc":"Array of light sources affecting the whole map and the default for 3D style, mutually exclusive with the light property","example":[{"id":"environment","type":"ambient","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4}},{"id":"sun_light","type":"directional","properties":{"color":"rgba(255.0, 0.0, 0.0, 1.0)","intensity":0.4,"direction":[200,40],"cast-shadows":true,"shadow-intensity":0.2}}],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"terrain":{"type":"terrain","optional":true,"doc":"A global modifier that elevates layers and markers based on a DEM data source."},"fog":{"type":"fog","doc":"A global effect that fades layers and markers based on their distance to the camera. The fog can be used to approximate the effect of atmosphere on distant objects and enhance the depth perception of the map when used with terrain or 3D features. Note: fog is renamed to atmosphere in the Android and iOS SDKs and planned to be changed in GL-JS v.3.0.0."},"snow":{"type":"snow","doc":"Global precipitation particle-based snow. Having snow present in the style forces constant map repaint mode","experimental":true},"rain":{"type":"rain","doc":"Global precipitation particle-based rain effect. Having rain present in the style forces constant map repaint mode.","experimental":true},"camera":{"type":"camera","doc":"Global setting to control additional camera intrinsics parameters, e.g. projection type (perspective / orthographic)."},"color-theme":{"type":"colorTheme","doc":"A global modifier for the colors of the style."},"indoor":{"type":"indoor","private":true,"experimental":true,"doc":"Controls the behaviour of indoor features."},"imports":{"type":"array","value":"import","doc":"Imports other styles into this style.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"iconsets":{"experimental":true,"type":"iconsets","doc":"A collection of icon sets","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.11.0","ios":"11.11.0"}}},"schema":{"type":"schema","doc":"Definition of the schema for configuration options.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"sources":{"required":true,"type":"sources","doc":"Data source specifications.","example":{"mapbox-streets":{"type":"vector","url":"mapbox://mapbox.mapbox-streets-v6"}}},"sprite":{"type":"string","doc":"A base URL for retrieving the sprite image and metadata. The extensions `.png`, `.json` and scale factor `@2x.png` will be automatically appended. This property is required if any layer uses the `background-pattern`, `fill-pattern`, `line-pattern`, `fill-extrusion-pattern`, or `icon-image` properties. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright-v8"},"glyphs":{"type":"string","doc":"A URL template for loading signed-distance-field glyph sets in PBF format. The URL must include `{fontstack}` and `{range}` tokens. This property is required if any layer uses the `text-field` layout property. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","default":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf","example":"mapbox://fonts/mapbox/{fontstack}/{range}.pbf"},"transition":{"type":"transition","doc":"A global transition definition to use as a default across properties, to be used for timing transitions between one value and the next when no property-specific transition is set. Collision-based symbol fading is controlled independently of the style\'s `transition` property.","example":{"duration":300,"delay":0}},"projection":{"type":"projection","doc":"The projection the map should be rendered in. Supported projections are Mercator, Globe, Albers, Equal Earth, Equirectangular (WGS84), Lambert conformal conic, Natural Earth, and Winkel Tripel. Terrain, sky and fog are supported by only Mercator and globe. CustomLayerInterface is not supported outside of Mercator.","example":{"name":"albers","center":[-154,50],"parallels":[55,65]}},"layers":{"required":true,"type":"array","value":"layer","doc":"Layers will be drawn in the order of this array.","example":[{"id":"water","source":"mapbox-streets","source-layer":"water","type":"fill","paint":{"fill-color":"#00ffff"}}]},"models":{"type":"models","doc":"Specification of models used in the style.","example":{"spruce1-lod0":"asset://spruce1-lod0.glb","spruce1-lod1":"asset://spruce1-lod1.glb","spruce1-lod2":"asset://spruce1-lod2.glb"}},"featuresets":{"experimental":true,"type":"featuresets","doc":"Defines sets of features for querying, interaction, and state management on the map, referencing individual layers or subsets of layers within the map\'s style.","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"example":{"poi":{"selectors":[{"layer":"poi","properties":{"type":["get","type"],"name":["get","name"],"brand":"ABC"}}]}}}},"featuresets":{"experimental":true,"*":{"type":"featureset","doc":"Defines a combined set of features from one or more underlying layers within the current style. Features in a style featureset can be queried, interacted with, and their states can be queried and updated."}},"featureset":{"experimental":true,"metadata":{"experimental":true,"type":"*","doc":"Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"selectors":{"experimental":true,"type":"array","value":"selector","doc":"A collection of categorized selectors."}},"selector":{"experimental":true,"layer":{"experimental":true,"type":"string","doc":"The ID of a layer that exists in the current style.","required":true},"properties":{"experimental":true,"type":"selectorProperty","required":false,"doc":"Properties accessible to the end user through queried feautures. If properties are empty, no feature properties are exposed. If undefined, all original feature properties will be accessible."},"featureNamespace":{"experimental":true,"type":"string","required":false,"doc":"An optional field that represents the feature namespace defined by the selector within a featureset to which this feature belongs. If the underlying source is the same for multiple selectors within a featureset, the same featureNamespace should be used across those selectors."},"_uniqueFeatureID":{"experimental":true,"type":"boolean","private":true,"required":false,"doc":"Internal flag used for standard style, in case multiple features sharing the same featureId, only one feature will be returned for feature query."}},"selectorProperty":{"experimental":true,"*":{"experimental":true,"type":"*","doc":"The value of the property. It can be an expression that generates the returned value from the feature, or a constant value specifying the returned value."}},"model":{"type":"string","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`.","required":true},"import":{"id":{"type":"string","doc":"Unique import name.","required":true},"url":{"type":"string","doc":"The URL of the style.","required":true},"config":{"type":"config","doc":"Configuration values for the imported style\'s options."},"data":{"type":"$root","doc":"The inlined style that must correspond to the contents of the specified URL."},"color-theme":{"type":"colorTheme","optional":true,"doc":"If specified, it overrides the color-theme of the imported style."}},"config":{"*":{"type":"*","doc":"Value of the imported style\'s configuration option."}},"schema":{"*":{"type":"option","doc":"Specification of a configuration option."}},"option":{"default":{"type":"*","doc":"Default configuration value for this option.","property-type":"data-constant","expression":{"interpolated":false},"required":true},"type":{"type":"enum","doc":"The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.","values":{"string":{"doc":"The result will be coerced to a string."},"number":{"doc":"The result will be coerced to a number."},"boolean":{"doc":"The result will be coerced to a boolean."},"color":{"doc":"The result will be coerced to a color."}}},"array":{"type":"boolean","doc":"If true, this option is returned as an array"},"minValue":{"type":"number","doc":"If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value."},"maxValue":{"type":"number","doc":"If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value."},"stepValue":{"type":"number","doc":"If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value."},"values":{"type":"array","value":"*","doc":"If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead."},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."}},"models":{"*":{"type":"model","doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."}},"light-3d":{"id":{"type":"string","doc":"Unique light name.","required":true},"properties":{"type":"properties","doc":"Properties of the light."},"type":{"type":"enum","doc":"Type of the light to be added","values":{"ambient":{"doc":"An indirect light affecting all objects in the map adding a constant amount of light on them. It has no explicit direction and cannot cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"directional":{"doc":"A light that has a direction and is located at infinite distance, so its rays are parallel. It simulates the sun light and can cast shadows.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"flat":{"doc":"A global directional light source which is only applied on 3D and hillshade layers. Using this type disables other light sources.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}}},"properties":["properties_light_directional","properties_light_ambient","properties_light_flat"],"properties_light_directional":{"direction":{"type":"array","default":[210,30],"minimum":[0,0],"maximum":[360,90],"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Direction of the light source specified as [a azimuthal angle, p polar angle] where a indicates the azimuthal angle of the light relative to north (in degrees and proceeding clockwise), and p indicates polar angle of the light (from 0°, directly above, to 180°, directly below).","example":[90,40],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the directional light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"cast-shadows":{"type":"boolean","default":false,"doc":"Enable/Disable shadow casting for this light","transition":false,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-quality":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":false,"parameters":["zoom"]},"transition":false,"doc":"Determines the quality of the shadows on the map. A value of 1 ensures the highest quality and is the default value.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"experimental":true},"shadow-intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Determines the shadow strength, affecting the shadow receiver surfaces final color. Values near 0.0 reduce the shadow contribution to the final color. Values near to 1.0 make occluded surfaces receive almost no directional light. Designed to be used mostly for transitioning between values 0 and 1.","transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"shadow-draw-before-layer":{"type":"string","property-type":"data-constant","doc":"Specify a layer before which shadows are drawn on the ground. If not specified, shadows are drawn after the last 3D layer. This property does not affect shadows on terrain.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"experimental":true}},"properties_light_ambient":{"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"A multiplier for the color of the ambient light.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"properties_light_flat":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport. If terrain is enabled, performance regressions may occur in certain scenarios, particularly on lower-end hardware. Ensure that you test your target scenarios on the appropriate hardware to verify performance."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"iconsets":{"*":{"type":"iconset","doc":"Specification of an icon set. For sprite icon set, a URL must be provided. For `raster-array` source icon set, a source name must be provided."}},"iconset":["iconset_sprite","iconset_source"],"iconset_sprite":{"type":{"required":true,"type":"enum","values":{"sprite":{"doc":"A sprite icon set."}},"doc":"The type of the icon set."},"url":{"required":true,"type":"string","doc":"A base URL for retrieving the icon set and metadata. The extension `.pbf` will be automatically appended. The URL must be absolute, containing the [scheme, authority and path components](https://en.wikipedia.org/wiki/URL#Syntax).","example":"mapbox://sprites/mapbox/bright"}},"iconset_source":{"type":{"required":true,"type":"enum","values":{"source":{"doc":"A source icon set."}},"doc":"The type of the icon set."},"source":{"required":true,"type":"string","doc":"Name of a source of `raster-array` type to be used for the icon set."}},"sources":{"*":{"type":"source","doc":"Specification of a data source. For vector and raster sources, either TileJSON or a URL to a TileJSON must be provided. For image and video sources, a URL must be provided. For GeoJSON sources, a URL or inline GeoJSON must be provided."}},"source":["source_vector","source_raster","source_raster_dem","source_raster_array","source_geojson","source_video","source_image","source_model"],"source_vector":{"type":{"required":true,"type":"enum","values":{"vector":{"doc":"A vector tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). It can be a property name, or an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used. If specified as a string for a vector tile source, the same property is used across all its source layers. If specified as an object only specified source layers will have id overriden, others will fallback to original feature id"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster":{"type":{"required":true,"type":"enum","values":{"raster":{"doc":"A raster tile source."}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"scheme":{"type":"enum","values":{"xyz":{"doc":"Slippy map tilenames scheme."},"tms":{"doc":"OSGeo spec scheme."}},"default":"xyz","doc":"Influences the y direction of the tile coordinates. The global-mercator (aka Spherical Mercator) profile is assumed."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_dem":{"type":{"required":true,"type":"enum","values":{"raster-dem":{"doc":"A RGB-encoded raster DEM source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"encoding":{"type":"enum","values":{"terrarium":{"doc":"Terrarium format PNG tiles. See https://aws.amazon.com/es/public-datasets/terrain/ for more info."},"mapbox":{"doc":"Mapbox Terrain RGB tiles. See https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb for more info."}},"default":"mapbox","doc":"The encoding used by this source. Mapbox Terrain RGB is used by default"},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_raster_array":{"experimental":true,"type":{"required":true,"type":"enum","values":{"raster-array":{"doc":"A raster array source"}},"doc":"The type of the source."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Required if `url` is not provided."},"bounds":{"type":"array","value":"number","length":4,"default":[-180,-85.051129,180,85.051129],"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`. When this property is included in a source, no tiles outside of the given bounds are requested by Mapbox GL."},"extra_bounds":{"type":"array","value":{"type":"array","value":"number","length":4,"doc":"An array containing the longitude and latitude of the southwest and northeast corners of the source\'s bounding box in the following order: `[sw.lng, sw.lat, ne.lng, ne.lat]`."},"doc":"An array of additional discrete geographic regions where tiles are available. When used alongside the `bounds` property, these regions act as an additional filter - Mapbox GL will only request tiles that are both within the `bounds` and any of the regions defined in `extra_bounds`. When used independently (without `bounds`), Mapbox GL will request tiles that fall within any of the regions in `extra_bounds`. This allows for more fine-grained control over tile requests, particularly when dealing with sparse data coverage."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which tiles are available, as in the TileJSON spec."},"maxzoom":{"type":"number","default":22,"doc":"Maximum zoom level for which tiles are available, as in the TileJSON spec. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"tileSize":{"type":"number","default":512,"units":"pixels","doc":"The minimum visual size to display tiles for this layer. Only configurable for raster layers."},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"rasterLayers":{"type":"*","doc":"Contains the description of the raster data layers and the bands contained within the tiles."},"volatile":{"type":"boolean","default":false,"doc":"A setting to determine whether a source\'s tiles are cached locally.","sdk-support":{"basic functionality":{"android":"9.3.0","ios":"5.10.0"}}},"*":{"type":"*","doc":"Other keys to configure the data source."}},"source_geojson":{"type":{"required":true,"type":"enum","values":{"geojson":{"doc":"A GeoJSON data source."}},"doc":"The data type of the GeoJSON source."},"data":{"type":"*","doc":"A URL to a GeoJSON file, or inline GeoJSON."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create vector tiles (higher means greater detail at high zoom levels)."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level at which to create vector tiles"},"attribution":{"type":"string","doc":"Contains an attribution to be displayed when the map is shown to a user."},"buffer":{"type":"number","default":128,"maximum":512,"minimum":0,"doc":"Size of the tile buffer on each side. A value of 0 produces no buffer. A value of 512 produces a buffer as wide as the tile itself. Larger values produce fewer rendering artifacts near tile edges and slower performance."},"filter":{"type":"*","doc":"An expression for filtering features prior to processing them for rendering."},"tolerance":{"type":"number","default":0.375,"doc":"Douglas-Peucker simplification tolerance (higher means simpler geometries and faster performance)."},"cluster":{"type":"boolean","default":false,"doc":"If the data is a collection of point features, setting this to true clusters the points by radius into groups. Cluster groups become new `Point` features in the source with additional properties:\\n * `cluster` Is `true` if the point is a cluster \\n * `cluster_id` A unqiue id for the cluster to be used in conjunction with the [cluster inspection methods](https://www.mapbox.com/mapbox-gl-js/api/#geojsonsource#getclusterexpansionzoom)\\n * `point_count` Number of original points grouped into this cluster\\n * `point_count_abbreviated` An abbreviated point count"},"clusterRadius":{"type":"number","default":50,"minimum":0,"doc":"Radius of each cluster if clustering is enabled. A value of 512 indicates a radius equal to the width of a tile."},"clusterMaxZoom":{"type":"number","doc":"Max zoom on which to cluster points if clustering is enabled. Defaults to one zoom less than maxzoom (so that last zoom features are not clustered). Clusters are re-evaluated at integer zoom levels so setting clusterMaxZoom to 14 means the clusters will be displayed until z15."},"clusterMinPoints":{"type":"number","doc":"Minimum number of points necessary to form a cluster if clustering is enabled. Defaults to `2`."},"clusterProperties":{"type":"*","doc":"An object defining custom properties on the generated clusters if clustering is enabled, aggregating values from clustered points. Has the form `{\\"property_name\\": [operator, map_expression]}`. `operator` is any expression function that accepts at least 2 operands (e.g. `\\"+\\"` or `\\"max\\"`) — it accumulates the property value from clusters/points the cluster contains; `map_expression` produces the value of a single point.\\n\\nExample: `{\\"sum\\": [\\"+\\", [\\"get\\", \\"scalerank\\"]]}`.\\n\\nFor more advanced use cases, in place of `operator`, you can use a custom reduce expression that references a special `[\\"accumulated\\"]` value, e.g.:\\n`{\\"sum\\": [[\\"+\\", [\\"accumulated\\"], [\\"get\\", \\"sum\\"]], [\\"get\\", \\"scalerank\\"]]}`"},"lineMetrics":{"type":"boolean","default":false,"doc":"Whether to calculate line distance metrics. This is required for line layers that specify `line-gradient` values."},"generateId":{"type":"boolean","default":false,"doc":"Whether to generate ids for the GeoJSON features. When enabled, the `feature.id` property will be auto assigned based on its index in the `features` array, over-writing any previous values."},"promoteId":{"type":"promoteId","doc":"A property to use as a feature id (for feature state). Either a property name, an expression to evaluate as the ID, or an object of the form `{: }`. The expression can only be feature dependent if it is used."},"dynamic":{"type":"boolean","default":false,"doc":"Whether to optimize this source for frequent data updates (e.g. animating features).","sdk-support":{"basic functionality":{"js":"3.4.0"}}}},"source_video":{"type":{"required":true,"type":"enum","values":{"video":{"doc":"A video data source."}},"doc":"The data type of the video source."},"urls":{"required":true,"type":"array","value":"string","doc":"URLs to video content in order of preferred format."},"coordinates":{"required":true,"doc":"Corners of video specified in longitude, latitude pairs.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"source_image":{"type":{"required":true,"type":"enum","values":{"image":{"doc":"An image data source."}},"doc":"The data type of the image source."},"url":{"required":false,"type":"string","doc":"URL that points to an image. If the URL is not specified, the image is expected to be loaded directly during runtime."},"coordinates":{"required":true,"doc":"Corners of image specified in longitude, latitude pairs. Note: When using globe projection, the image will be centered at the North or South Pole in the respective hemisphere if the average latitude value exceeds 85 degrees or falls below -85 degrees.","type":"array","length":4,"value":{"type":"array","length":2,"value":"number","doc":"A single longitude, latitude pair."}}},"modelNodeOverride":{"orientation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","doc":"Override the orientation of the model node in euler angles [x, y, z]."}},"modelNodeOverrides":{"*":{"type":"modelNodeOverride","doc":"An object defining model node properties to override. Object key is the node name as defined in the model."}},"modelMaterialOverride":{"model-color":{"type":"color","doc":"Override the tint color of the material."},"model-color-mix-intensity":{"type":"number","doc":"Override the intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors."},"model-opacity":{"type":"number","doc":"Override the opacity of the material."},"model-emissive-strength":{"type":"number","units":"intensity","doc":"Override strength of the emission of material."}},"modelMaterialOverrides":{"*":{"type":"modelMaterialOverride","doc":"An object defining material properties to override. Object key is the material name as defined in the model."}},"modelSourceModel":{"uri":{"type":"string","required":true,"doc":"A URL to a model resource. Supported protocols are `http:`, `https:`, and `mapbox://`."},"position":{"type":"array","value":"number","length":2,"required":false,"default":[0,0],"minimum":[-180,-90],"maximum":[180,90],"doc":"Position of the model in longitude and latitude [lng, lat]."},"orientation":{"type":"array","value":"number","length":3,"required":false,"default":[0,0,0],"period":360,"units":"degrees","doc":"Orientation of the model in euler angles [x, y, z]."},"nodeOverrides":{"type":"modelNodeOverrides","required":false,"doc":"A collection of node overrides."},"materialOverrides":{"type":"modelMaterialOverrides","required":false,"doc":"A collection of material overrides."},"nodeOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model node names whose transform will be overridden from model layer paint properties.","required":false},"materialOverrideNames":{"type":"array","value":"string","doc":"An array of one or more model material names whose properties will be overridden from model layer paint properties.","required":false},"featureProperties":{"type":"*","doc":"An object defining custom properties of the model. Properties are accessible as feature properties in expressions.","required":false}},"modelSourceModels":{"*":{"type":"modelSourceModel","doc":"A 3D model and its properties."}},"source_model":{"type":{"required":true,"type":"enum","values":{"model":{"doc":"A collection of 3D models"},"batched-model":{"doc":"A collection of 3D models with anchor data"}},"doc":"Type of model source to be added. From single models to represent 2D layers to 3D tiled models covering a wide area."},"url":{"type":"string","doc":"A URL to a TileJSON resource. Supported protocols are `http:`, `https:`, and `mapbox://`. Required if `tiles` is not provided."},"maxzoom":{"type":"number","default":18,"doc":"Maximum zoom level at which to create batched model tiles. Data from tiles at the maxzoom are used when displaying the map at higher zoom levels."},"minzoom":{"type":"number","default":0,"doc":"Minimum zoom level for which batched-model tiles are available"},"tiles":{"type":"array","value":"string","doc":"An array of one or more tile source URLs, as in the TileJSON spec. Requires `batched-model` source type."},"models":{"type":"modelSourceModels","doc":"Defines properties of 3D models in collection. Requires `model` source type."}},"layer":{"id":{"type":"string","doc":"Unique layer name.","required":true},"type":{"type":"enum","values":{"fill":{"doc":"A filled polygon with an optional stroked border.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"line":{"doc":"A stroked line.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"symbol":{"doc":"An icon or a text label.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"circle":{"doc":"A filled circle.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"heatmap":{"doc":"A heatmap.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"fill-extrusion":{"doc":"An extruded (3D) polygon.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"building":{"doc":"A procedural 3D building.","sdk-support":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"private":true},"raster":{"doc":"Raster map textures such as satellite imagery.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"raster-particle":{"experimental":true,"doc":"Particle animation driven by textures such as wind maps.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"hillshade":{"doc":"Client-side hillshading visualization based on DEM data. Currently, the implementation only supports Mapbox Terrain RGB and Mapzen Terrarium tiles.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}}},"model":{"doc":"A 3D model","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"background":{"doc":"The background color or pattern of the map.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}}},"sky":{"doc":"A spherical dome around the map that is always rendered behind all other layers.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"slot":{"doc":"Marks the position of a slot.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"clip":{"doc":"Layer that removes 3D content from map.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}}}},"doc":"Rendering type of this layer.","required":true},"metadata":{"type":"*","doc":"Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like \'mapbox:\'."},"source":{"type":"string","doc":"Name of a source description to be used for this layer. Required for all layer types except `background` and `slot`."},"source-layer":{"type":"string","doc":"Layer to use from a vector tile source. Required for vector and raster-array sources; prohibited for all other source types, including GeoJSON sources."},"slot":{"type":"string","doc":"The slot this layer is assigned to. If specified, and a slot with that name exists, it will be placed at that position in the layer order.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"minzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden."},"maxzoom":{"type":"number","minimum":0,"maximum":24,"doc":"The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden."},"filter":{"type":"filter","doc":"An expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `[\\"feature-state\\", ...]` expression is not supported in filter expressions. The `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions are supported only for filter expressions on the symbol layer."},"layout":{"type":"layout","doc":"Layout properties for the layer."},"paint":{"type":"paint","doc":"Default paint properties for this layer."},"appearances":{"type":"array","value":"appearance","supported-layer-types":["symbol"],"experimental":true,"doc":"Conditional styling applied to symbol layer features based on dynamic conditions. If multiple conditions are true, only the first matching appearance will be applied. Only properties marked with \'Works with appearances\' are supported."}},"appearance":{"condition":{"type":"boolean","doc":"A boolean expression that determines when this appearance should be applied.","expression":{"interpolated":true,"parameters":["zoom","pitch","feature","feature-state","measure-light","distance-from-center"]},"property-type":"data-driven"},"name":{"type":"string","doc":"Optional name for this appearance. Non-empty names should be unique within a layer.","property-type":"constant"},"properties":{"type":"*","doc":"Style properties to apply when the condition is met."}},"layout":["layout_clip","layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_building","layout_symbol","layout_raster","layout_raster-particle","layout_hillshade","layout_background","layout_sky","layout_model"],"layout_background":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_sky":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_model":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"model-id":{"type":"string","default":"","doc":"Model to render. It can be either a string referencing an element to the models root property or an internal or external URL","property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":false,"requires":[{"source":["geojson","vector"]}]},"model-allow-density-reduction":{"type":"boolean","default":true,"transition":false,"experimental":true,"doc":"If true, the models will be reduced in density based on the zoom level. This is useful for large datasets that may be slow to render.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"property-type":"data-constant"}},"layout_clip":{"clip-layer-types":{"type":"array","value":"enum","values":{"model":{"doc":"If present the clip layer would remove all 3d model layers below it. Currently only instanced models (e.g. trees) are removed."},"symbol":{"doc":"If present the clip layer would remove all symbol layers below it."}},"default":[],"doc":"Layer types that will also be removed if fallen below this clip layer.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"clip-layer-scope":{"type":"array","value":"string","default":[],"doc":"Removes content from layers with the specified scope. By default all layers are affected. For example specifying `basemap` will only remove content from the Mapbox Standard style layers which have the same scope","sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.18.0","android":"11.18.0","ios":"11.18.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"layout_fill":{"fill-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-elevation-reference":{"type":"enum","doc":"Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-base":{"doc":"Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features such as \'hatched areas\' that should exist only on top of road polygons."}},"default":"none","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"fill-construct-bridge-guard-rail":{"type":"boolean","doc":"Determines whether bridge guard rails are added for elevated roads.","default":"true","transition":false,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"layout_circle":{"circle-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"},"data-driven styling":{"js":"1.2.0","android":"9.2.0","ios":"5.9.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"circle-elevation-reference":{"type":"enum","doc":"Selects the base of circle-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","experimental":true,"transition":false,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_heatmap":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_fill-extrusion":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"fill-extrusion-edge-radius":{"type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"Radius of a fill extrusion edge in meters. If not zero, rounds extrusion edges for a smoother appearance.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"source-max-zoom":{"type":"number","minimum":0,"maximum":24,"private":true,"experimental":true,"doc":"The maximum zoom level at which to load and parse source tiles for this layer. When set, tiles are never loaded or re-parsed above this zoom level. At higher zoom levels, the renderer reuses tiles from this zoom level without creating overscaled variants. This reduces the number of tiles parsed and prevents tile-border artifacts for layers like fill-extrusion.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}},"property-type":"constant"}},"layout_building":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"constant"},"building-facade":{"type":"boolean","default":false,"doc":"Whether to render facade details on the buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-facade-floors":{"type":"number","minimum":1,"maximum":200,"default":3,"doc":"Number of floors created when building-facade is enabled.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-unit-width":{"type":"number","minimum":1,"maximum":20,"default":3.1,"doc":"Width of a floor. Think of this as measure how wide each unit should be. This effectively determines the number of units per each floor. Note that this does not affect the ground level facades (i.e. number of windows).","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-facade-window":{"type":"array","length":2,"value":"number","minimum":0.1,"maximum":1,"default":[0.9,0.9],"doc":"Given as fractions, specifies the percentage of unit area covered by windows when building-facade is enabled. Note that the area of a unit is ultimately determined by `building-facade-unit-width` and `building-facade-floors`.","private":true,"property-type":"data-driven","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"requires":["building-facade"]},"building-roof-shape":{"type":"enum","values":{"flat":{"doc":"Use flat roof for the procedurally generated buildings."},"hipped":{"doc":"Use hipped roof for the procedurally generated buildings."},"gabled":{"doc":"Use gabled roof for the procedurally generated buildings."},"parapet":{"doc":"Use parapet roof for the procedurally generated buildings."},"mansard":{"doc":"Use mansard roof for the procedurally generated buildings."},"skillion":{"doc":"Use skillion roof for the procedurally generated buildings."},"pyramidal":{"doc":"Use pyramidal roof for the procedurally generated buildings."}},"default":"flat","doc":"Roof type to use for the procedural buildings.","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false,"parameters":["feature"]},"property-type":"data-driven"},"building-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height of the procedural buildings.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `building-height`.","transition":true,"requires":["building-height"],"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":false},"property-type":"data-driven"},"building-flood-light-wall-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-radius":{"property-type":"data-driven","type":"number","private":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flip-roof-orientation":{"property-type":"data-driven","type":"boolean","private":true,"units":"meters","default":false,"doc":"Flips the orientation of the roofs for the buildings. This only affects simple geometries. Namely buildings whose footprints form a quadrilateral. By default (false), the roof ridge takes the direction of the longer edge of the quadrilateral.","transition":true,"requires":["building-roof-shape"],"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"layout_line":{"line-cap":{"type":"enum","values":{"butt":{"doc":"A cap with a squared-off end which is drawn to the exact endpoint of the line."},"round":{"doc":"A cap with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"square":{"doc":"A cap with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."}},"default":"butt","doc":"The display of line endings.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-join":{"type":"enum","values":{"bevel":{"doc":"A join with a squared-off end which is drawn beyond the endpoint of the line at a distance of one-half of the line\'s width."},"round":{"doc":"A join with a rounded end which is drawn beyond the endpoint of the line at a radius of one-half of the line\'s width and centered on the endpoint of the line."},"miter":{"doc":"A join with a sharp, angled corner which is drawn with the outer sides beyond the endpoint of the path until they meet."},"none":{"doc":"Line segments are not joined together, each one creates a separate line. Useful in combination with line-pattern. Line-cap property is not respected. Can\'t be used with data-driven styling."}},"default":"miter","doc":"The display of lines when joining.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"`none` value":{"js":"3.4.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{"type":"number","default":2,"doc":"Used to automatically convert miter joins to bevel joins for sharp angles.","requires":[{"line-join":"miter"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-round-limit":{"type":"number","default":1.05,"doc":"Used to automatically convert round joins to miter joins for shallow angles.","requires":[{"line-join":"round"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with a higher sort key will appear above features with a lower sort key.","sdk-support":{"basic functionality":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"},"data-driven styling":{"js":"1.2.0","android":"9.1.0","ios":"5.8.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-z-offset":{"type":"number","doc":"Vertical offset from ground, in meters. Not supported for globe projection at the moment.","default":0,"requires":["line-elevation-reference"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature","line-progress"]},"property-type":"data-driven"},"line-elevation-reference":{"type":"enum","doc":"Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.","values":{"none":{"doc":"Elevated rendering is disabled."},"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate lines relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"none","transition":false,"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"line-cross-slope":{"type":"number","experimental":true,"doc":"Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\\n * Vertical lines don\'t support line caps \\n * `line-join: round` is not supported with this property","requires":["line-z-offset"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false},"property-type":"constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"},"line-width-unit":{"type":"enum","doc":"Selects the unit of line-width. The same unit is automatically used for line-blur and line-offset. Note: This is an experimental property and might be removed in a future release.","values":{"pixels":{"doc":"Width is rendered in pixels."},"meters":{"doc":"Width is rendered in meters."}},"default":"pixels","experimental":true,"private":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-elevation-ground-scale":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Controls how much the elevation of lines with `line-elevation-reference` set to `sea` scales with terrain exaggeration. A value of 0 keeps the line at a fixed altitude above sea level. A value of 1 scales the elevation proportionally with terrain exaggeration.","sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"},"data-driven styling":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","line-progress"]},"requires":["line-z-offset"],"transition":true,"property-type":"data-driven"}},"layout_symbol":{"symbol-placement":{"type":"enum","values":{"point":{"doc":"The label is placed at the point where the geometry is located."},"line":{"doc":"The label is placed along the line of the geometry. Can only be used on `LineString` and `Polygon` geometries."},"line-center":{"doc":"The label is placed at the center of the line of the geometry. Can only be used on `LineString` and `Polygon` geometries. Note that a single feature in a vector tile may contain multiple line geometries."}},"default":"point","doc":"Label placement relative to its geometry.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`line-center` value":{"js":"0.47.0","android":"6.4.0","ios":"4.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-spacing":{"type":"number","default":250,"minimum":1,"units":"pixels","doc":"Distance between two symbol anchors.","requires":[{"symbol-placement":"line"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{"type":"boolean","default":false,"doc":"If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don\'t have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like Mapbox GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{"type":"number","doc":"Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.","sdk-support":{"basic functionality":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"},"data-driven styling":{"js":"0.53.0","android":"7.4.0","ios":"4.11.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{"type":"enum","values":{"auto":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, sorts symbols by their y-position relative to the viewport if `icon-allow-overlap` or `text-allow-overlap` is set to `true` or `icon-ignore-placement` or `text-ignore-placement` is `false`."},"viewport-y":{"doc":"Sorts symbols by their y-position relative to the viewport if any of the following is set to `true`: `icon-allow-overlap`, `text-allow-overlap`, `icon-ignore-placement`, `text-ignore-placement`."},"source":{"doc":"Sorts symbols by `symbol-sort-key` if set. Otherwise, no sorting is applied; symbols are rendered in the same order as the source data."}},"default":"auto","doc":"Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.","sdk-support":{"basic functionality":{"js":"0.49.0","android":"6.6.0","ios":"4.5.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-z-elevate":{"type":"boolean","default":false,"doc":"Position symbol on buildings (both fill extrusions and models) rooftops. In order to have minimal impact on performance, this is supported only when `fill-extrusion-height` is not zoom-dependent and remains unchanged. For fading in buildings when zooming in, fill-extrusion-vertical-scale should be used and symbols would raise with building rooftops. Symbols are sorted by elevation, except in cases when `viewport-y` sorting or `symbol-sort-key` are applied.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"requires":[{"symbol-placement":["point"]},{"symbol-z-order":["auto"]}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"symbol-elevation-reference":{"type":"enum","doc":"Selects the base of symbol-elevation.","values":{"sea":{"doc":"Elevate symbols relative to the sea level."},"ground":{"doc":"Elevate symbols relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."}},"default":"ground","experimental":true,"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the icon will be visible even if it collides with other previously drawn symbols.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the icon.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-optional":{"type":"boolean","default":false,"doc":"If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns icons east-west. When `symbol-placement` is set to `line` or `line-center`, aligns icon x-axes with the line."},"viewport":{"doc":"Produces icons whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of icons.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-size":{"type":"number","default":1,"minimum":0,"units":"factor of the original icon size","doc":"Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `icon-size`. 1 is the original size; 3 triples the size of the image.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `icon-size`, `icon-halo-width`, `icon-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"icon-text-fit":{"type":"enum","values":{"none":{"doc":"The icon is displayed at its intrinsic aspect ratio."},"width":{"doc":"The icon is scaled in the x-dimension to fit the width of the text."},"height":{"doc":"The icon is scaled in the y-dimension to fit the height of the text."},"both":{"doc":"The icon is scaled in both x- and y-dimensions."}},"default":"none","doc":"Scales the icon to fit around the associated text.","requires":["icon-image","text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"stretchable icons":{"js":"1.6.0","android":"9.2.0","ios":"5.8.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit-padding":{"type":"array","value":"number","length":4,"default":[0,0,0,0],"units":"pixels","doc":"Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.","requires":["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-image":{"type":"resolvedImage","doc":"Name of image in sprite to use for drawing an image background.","tokens":true,"appearance":true,"use-theme":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the icon clockwise.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the icon bounding box used for detecting symbol collisions.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{"type":"boolean","default":false,"doc":"If true, the icon may be flipped to prevent it from being rendered upside-down.","requires":["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-offset":{"type":"array","value":"number","length":2,"default":[0,0],"doc":"Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `icon-size` to obtain the final offset in pixels. When combined with `icon-rotate` the offset will be as if the rotated direction was up.","appearance":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{"type":"enum","values":{"center":{"doc":"The center of the icon is placed closest to the anchor."},"left":{"doc":"The left side of the icon is placed closest to the anchor."},"right":{"doc":"The right side of the icon is placed closest to the anchor."},"top":{"doc":"The top of the icon is placed closest to the anchor."},"bottom":{"doc":"The bottom of the icon is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the icon is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the icon is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the icon is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the icon is placed closest to the anchor."}},"default":"center","doc":"Part of the icon placed closest to the anchor.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The icon is aligned to the plane of the map."},"viewport":{"doc":"The icon is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `icon-rotation-alignment`."}},"default":"auto","doc":"Orientation of icon when map is pitched.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The text is aligned to the plane of the map."},"viewport":{"doc":"The text is aligned to the plane of the viewport."},"auto":{"doc":"Automatically matches the value of `text-rotation-alignment`."}},"default":"auto","doc":"Orientation of text when map is pitched.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{"type":"enum","values":{"map":{"doc":"When `symbol-placement` is set to `point`, aligns text east-west. When `symbol-placement` is set to `line` or `line-center`, aligns text x-axes with the line."},"viewport":{"doc":"Produces glyphs whose x-axes are aligned with the x-axis of the viewport, regardless of the value of `symbol-placement`."},"auto":{"doc":"When `symbol-placement` is set to `point`, this is equivalent to `viewport`. When `symbol-placement` is set to `line` or `line-center`, this is equivalent to `map`."}},"default":"auto","doc":"In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"`auto` value":{"js":"0.25.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-field":{"type":"formatted","default":"","tokens":true,"doc":"Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options. SDF images are not supported in formatted text and will be ignored.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-font":{"type":"array","value":"string","default":["Open Sans Regular","Arial Unicode MS Regular"],"doc":"Font stack to use for displaying text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size":{"type":"number","default":16,"minimum":0,"units":"pixels","doc":"Font size.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-size-scale-range":{"type":"array","value":"number","length":2,"default":[0.8,2],"doc":"Limits the possible scaling range for `text-size`, `text-halo-width`, `text-halo-blur` properties to be within [min-scale, max-scale]","minimum":[0.1,0.1],"maximum":[10,10],"experimental":true,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.8.0"}},"property-type":"data-constant"},"text-max-width":{"type":"number","default":10,"minimum":0,"units":"ems","doc":"The maximum line width for text wrapping.","requires":["text-field",{"symbol-placement":["point"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{"type":"number","default":1.2,"units":"ems","doc":"Text leading value for multi-line text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0","android":"10.0.0","ios":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-letter-spacing":{"type":"number","default":0,"units":"ems","doc":"Text tracking amount.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.40.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-justify":{"type":"enum","values":{"auto":{"doc":"The text is aligned towards the anchor position."},"left":{"doc":"The text is aligned to the left."},"center":{"doc":"The text is centered."},"right":{"doc":"The text is aligned to the right."}},"default":"center","doc":"Text justification options.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"},"auto":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{"type":"number","units":"ems","default":0,"doc":"Radial offset of text, in the direction of the symbol\'s anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"},"data-driven styling":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"requires":["text-field"],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["zoom","feature"]}},"text-variable-anchor":{"type":"array","value":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"requires":["text-field",{"symbol-placement":["point"]}],"doc":"To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.","sdk-support":{"basic functionality":{"js":"0.54.0","android":"7.4.0","ios":"4.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-anchor":{"type":"enum","values":{"center":{"doc":"The center of the text is placed closest to the anchor."},"left":{"doc":"The left side of the text is placed closest to the anchor."},"right":{"doc":"The right side of the text is placed closest to the anchor."},"top":{"doc":"The top of the text is placed closest to the anchor."},"bottom":{"doc":"The bottom of the text is placed closest to the anchor."},"top-left":{"doc":"The top left corner of the text is placed closest to the anchor."},"top-right":{"doc":"The top right corner of the text is placed closest to the anchor."},"bottom-left":{"doc":"The bottom left corner of the text is placed closest to the anchor."},"bottom-right":{"doc":"The bottom right corner of the text is placed closest to the anchor."}},"default":"center","doc":"Part of the text placed closest to the anchor.","requires":["text-field",{"!":"text-variable-anchor"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{"type":"number","default":45,"units":"degrees","doc":"Maximum angle change between adjacent characters.","requires":["text-field",{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-writing-mode":{"type":"array","value":"enum","values":{"horizontal":{"doc":"If a text\'s language supports horizontal writing mode, symbols would be laid out horizontally."},"vertical":{"doc":"If a text\'s language supports vertical writing mode, symbols would be laid out vertically."}},"doc":"The property allows control over a symbol\'s orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single \'vertical\' enum value. For symbol with point placement, the order of elements in an array define priority order for the placement of an orientation variant. For symbol with line placement, the default text writing mode is either [\'horizontal\', \'vertical\'] or [\'vertical\', \'horizontal\'], the order doesn\'t affect the placement.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"1.3.0","android":"8.3.0","ios":"5.3.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-rotate":{"type":"number","default":0,"period":360,"units":"degrees","doc":"Rotates the text clockwise.","requires":["text-field"],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-padding":{"type":"number","default":2,"minimum":0,"units":"pixels","doc":"Size of the additional area around the text bounding box used for detecting symbol collisions.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-keep-upright":{"type":"boolean","default":true,"doc":"If true, the text may be flipped vertically to prevent it from being rendered upside-down.","requires":["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-transform":{"type":"enum","values":{"none":{"doc":"The text is not altered."},"uppercase":{"doc":"Forces all letters to be displayed in uppercase."},"lowercase":{"doc":"Forces all letters to be displayed in lowercase."}},"default":"none","doc":"Specifies how to capitalize text, similar to the CSS `text-transform` property.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-offset":{"type":"array","doc":"Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.","value":"number","units":"ems","length":2,"default":[0,0],"requires":["text-field",{"!":"text-radial-offset"}],"appearance":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.35.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{"type":"boolean","default":false,"doc":"If true, the text will be visible even if it collides with other previously drawn symbols.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{"type":"boolean","default":false,"doc":"If true, other symbols can be visible even if they collide with the text.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"text-optional":{"type":"boolean","default":false,"doc":"If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.","requires":["text-field","icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_raster-particle":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"expressions support":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"layout_hillshade":{"visibility":{"type":"enum","values":{"visible":{"doc":"The layer is shown."},"none":{"doc":"The layer is not shown."}},"default":"visible","doc":"Whether this layer is displayed.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"},"expressions support":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":false},"property-type":"constant"}},"filter":{"type":"array","value":"*","doc":"A filter selects specific features from a layer."},"filter_symbol":{"type":"boolean","doc":"Expression which determines whether or not to display a symbol. Symbols support dynamic filtering, meaning this expression can use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature","pitch","distance-from-center"]}},"filter_fill":{"type":"boolean","doc":"Expression which determines whether or not to display a polygon. Fill layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_hillshade":{"type":"boolean","doc":"Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_raster-particle":{"type":"boolean","doc":"Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_clip":{"type":"boolean","doc":"Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_model":{"type":"boolean","doc":"Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_line":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_circle":{"type":"boolean","doc":"Expression which determines whether or not to display a circle. Circle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_fill-extrusion":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Fill-extrusion layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_building":{"type":"boolean","doc":"Expression which determines whether or not to display a Polygon. Building layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_heatmap":{"type":"boolean","doc":"Expression used to determine whether a point is being displayed or not. Heatmap layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\\"pitch\\"]` and `[\\"distance-from-center\\"]` expressions to reference the current state of the view.","default":false,"transition":false,"property-type":"data-driven","expression":{"interpolated":false,"parameters":["zoom","feature"]}},"filter_operator":{"type":"enum","values":{"==":{"doc":"`[\\"==\\", key, value]` equality: `feature[key] = value`"},"!=":{"doc":"`[\\"!=\\", key, value]` inequality: `feature[key] ≠ value`"},">":{"doc":"`[\\">\\", key, value]` greater than: `feature[key] > value`"},">=":{"doc":"`[\\">=\\", key, value]` greater than or equal: `feature[key] ≥ value`"},"<":{"doc":"`[\\"<\\", key, value]` less than: `feature[key] < value`"},"<=":{"doc":"`[\\"<=\\", key, value]` less than or equal: `feature[key] ≤ value`"},"in":{"doc":"`[\\"in\\", key, v0, ..., vn]` set inclusion: `feature[key] ∈ {v0, ..., vn}`"},"!in":{"doc":"`[\\"!in\\", key, v0, ..., vn]` set exclusion: `feature[key] ∉ {v0, ..., vn}`"},"all":{"doc":"`[\\"all\\", f0, ..., fn]` logical `AND`: `f0 ∧ ... ∧ fn`"},"any":{"doc":"`[\\"any\\", f0, ..., fn]` logical `OR`: `f0 ∨ ... ∨ fn`"},"none":{"doc":"`[\\"none\\", f0, ..., fn]` logical `NOR`: `¬f0 ∧ ... ∧ ¬fn`"},"has":{"doc":"`[\\"has\\", key]` `feature[key]` exists"},"!has":{"doc":"`[\\"!has\\", key]` `feature[key]` does not exist"}},"doc":"The filter operator."},"geometry_type":{"type":"enum","values":{"Point":{"doc":"Filter to point geometries."},"LineString":{"doc":"Filter to line geometries."},"Polygon":{"doc":"Filter to polygon geometries."}},"doc":"The geometry type for the filter to select."},"function":{"expression":{"type":"expression","doc":"An expression."},"stops":{"type":"array","doc":"An array of stops.","value":"function_stop"},"base":{"type":"number","default":1,"minimum":0,"doc":"The exponential base of the interpolation curve. It controls the rate at which the result increases. Higher values make the result increase more towards the high end of the range. With `1` the stops are interpolated linearly."},"property":{"type":"string","doc":"The name of a feature property to use as the function input.","default":"$zoom"},"type":{"type":"enum","values":{"identity":{"doc":"Return the input value as the output value."},"exponential":{"doc":"Generate an output by interpolating between stops just less than and just greater than the function input."},"interval":{"doc":"Return the output value of the stop just less than the function input."},"categorical":{"doc":"Return the output value of the stop equal to the function input."}},"doc":"The interpolation strategy to use in function evaluation.","default":"exponential"},"colorSpace":{"type":"enum","values":{"rgb":{"doc":"Use the RGB color space to interpolate color values"},"lab":{"doc":"Use the LAB color space to interpolate color values."},"hcl":{"doc":"Use the HCL color space to interpolate color values, interpolating the Hue, Chroma, and Luminance channels individually."}},"doc":"The color space in which colors interpolated. Interpolating colors in perceptual color spaces like LAB and HCL tend to produce color ramps that look more consistent and produce colors that can be differentiated more easily than those interpolated in RGB space.","default":"rgb"},"default":{"type":"*","required":false,"doc":"A value to serve as a fallback function result when a value isn\'t otherwise available. It is used in the following circumstances:\\n* In categorical functions, when the feature value does not match any of the stop domain values.\\n* In property and zoom-and-property functions, when a feature does not contain a value for the specified property.\\n* In identity functions, when the feature value is not valid for the style property (for example, if the function is being used for a `circle-color` property but the feature property value is not a string or not a valid color).\\n* In interval or exponential property and zoom-and-property functions, when the feature value is not numeric.\\nIf no default is provided, the style property\'s default is used in these circumstances."}},"function_stop":{"type":"array","minimum":0,"maximum":24,"value":["number","color"],"length":2,"doc":"Zoom level and value pair."},"expression":{"type":"array","value":"*","minimum":1,"doc":"An expression defines a function that can be used for data-driven style properties or feature filters."},"expression_name":{"doc":"","type":"enum","values":{"let":{"doc":"Binds expressions to named variables, which can then be referenced in the result expression using [\\"var\\", \\"variable_name\\"].","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"var":{"doc":"References variable bound using \\"let\\".","group":"Variable binding","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"config":{"doc":"Retrieves the configuration value for the given option. Returns null if the requested option is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"literal":{"doc":"Provides a literal array or object value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"array":{"doc":"Asserts that the input is an array (optionally with a specific item type and length). If, when the input expression is evaluated, it is not of the asserted type, then this assertion will cause the whole expression to be aborted.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at":{"doc":"Retrieves an item from an array.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"at-interpolated":{"doc":"Retrieves an item from an array. If the array contains numeric values and the provided index is non-integer, the expression returns an interpolated value between adjacent items.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.11.0","android":"11.12.0","ios":"11.12.0"}}},"in":{"doc":"Determines whether an item exists in an array or a substring exists in a string. In the specific case when the second and third arguments are string literals, you must wrap at least one of them in a [`literal`](#types-literal) expression to hint correct interpretation to the [type system](#type-system).","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.6.0","android":"9.1.0","ios":"5.8.0"}}},"index-of":{"doc":"Returns the first position at which an item can be found in an array or a substring can be found in a string, or `-1` if the input cannot be found. Accepts an optional index from where to begin the search.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"slice":{"doc":"Returns an item from an array or a substring from a string from a specified start index, or between a start index and an end index if set. The return value is inclusive of the start index but not of the end index.","group":"Lookup","sdk-support":{"basic functionality":{"js":"1.10.0","android":"10.0.0","ios":"10.0.0"}}},"split":{"doc":"Returns an array of substrings from a string, split by a delimiter parameter.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.14.0","android":"11.14.0","ios":"11.14.0"}}},"case":{"doc":"Selects the first output whose corresponding test condition evaluates to true, or the fallback value otherwise.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"match":{"doc":"Selects the output for which the label value matches the input value, or the fallback value if no match is found. The input can be any expression (for example, `[\\"get\\", \\"building_type\\"]`). Each label must be unique, and must be either:\\n - a single literal value; or\\n - an array of literal values, the values of which must be all strings or all numbers (for example `[100, 101]` or `[\\"c\\", \\"b\\"]`).\\n\\nThe input matches if any of the values in the array matches using strict equality, similar to the `\\"in\\"` operator.\\nIf the input type does not match the type of the labels, the result will be the fallback value.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"coalesce":{"doc":"Evaluates each expression in turn until the first valid value is obtained. Invalid values are `null` and [`\'image\'`](#types-image) expressions that are unavailable in the style. If all values are invalid, `coalesce` returns the first value listed.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"step":{"doc":"Produces discrete, stepped results by evaluating a piecewise-constant function defined by pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. Returns the output value of the stop just less than the input, or the first output if the input is less than the first stop.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). The `input` may be any numeric expression (e.g., `[\\"get\\", \\"population\\"]`). Stop inputs must be numeric literals in strictly ascending order. The output type must be `number`, `array`, or `color`.\\n\\nInterpolation types:\\n- `[\\"linear\\"]`: Interpolates linearly between the pair of stops just less than and just greater than the input.\\n- `[\\"exponential\\", base]`: Interpolates exponentially between the stops just less than and just greater than the input. `base` controls the rate at which the output increases: higher values make the output increase more towards the high end of the range. With values close to 1 the output increases linearly.\\n- `[\\"cubic-bezier\\", x1, y1, x2, y2]`: Interpolates using the cubic bezier curve defined by the given control points.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"interpolate-hcl":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the Hue-Chroma-Luminance color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"interpolate-lab":{"doc":"Produces continuous, smooth results by interpolating between pairs of input and output values (\\"stops\\"). Works like `interpolate`, but the output type must be `color`, and the interpolation is performed in the CIELAB color space.","group":"Ramps, scales, curves","sdk-support":{"basic functionality":{"js":"0.49.0"}}},"ln2":{"doc":"Returns mathematical constant ln(2).","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pi":{"doc":"Returns the mathematical constant pi.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"e":{"doc":"Returns the mathematical constant e.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"typeof":{"doc":"Returns a string describing the type of the given value.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"string":{"doc":"Asserts that the input value is a string. If multiple values are provided, each one is evaluated in order until a string is obtained. If none of the inputs are strings, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"number":{"doc":"Asserts that the input value is a number. If multiple values are provided, each one is evaluated in order until a number is obtained. If none of the inputs are numbers, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"boolean":{"doc":"Asserts that the input value is a boolean. If multiple values are provided, each one is evaluated in order until a boolean is obtained. If none of the inputs are booleans, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"object":{"doc":"Asserts that the input value is an object. If multiple values are provided, each one is evaluated in order until an object is obtained. If none of the inputs are objects, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"collator":{"doc":"Returns a `collator` for use in locale-dependent comparison operations. The `case-sensitive` and `diacritic-sensitive` options default to `false`. The `locale` argument specifies the IETF language tag of the locale to use. If none is provided, the default locale is used. If the requested locale is not available, the `collator` will use a system-defined fallback locale. Use `resolved-locale` to test the results of locale fallback behavior.","group":"Types","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"format":{"doc":"Returns a `formatted` string for displaying mixed-format text in the `text-field` property. The input may contain a string literal or expression, including an [`\'image\'`](#types-image) expression. Strings may be followed by a style override object that supports the following properties:\\n- `\\"text-font\\"`: Overrides the font stack specified by the root layout property.\\n- `\\"text-color\\"`: Overrides the color specified by the root paint property.\\n- `\\"font-scale\\"`: Applies a scaling factor on `text-size` as specified by the root layout property.","group":"Types","sdk-support":{"basic functionality":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-font":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"font-scale":{"js":"0.48.0","android":"6.7.0","ios":"4.6.0"},"text-color":{"js":"1.3.0","android":"7.3.0","ios":"4.10.0"},"image":{"js":"1.6.0","android":"8.6.0","ios":"5.7.0"}}},"image":{"doc":"Returns a [`ResolvedImage`](/style-spec/reference/types/#resolvedimage) for use in [`icon-image`](/style-spec/reference/layers/#layout-symbol-icon-image), `*-pattern` entries, and as a section in the [`\'format\'`](#types-format) expression.\\n\\nA [`\'coalesce\'`](#coalesce) expression containing `image` expressions will evaluate to the first listed image that is currently in the style. This validation process is synchronous and requires the image to have been added to the style before requesting it in the `\'image\'` argument.\\n\\nEvery image name can be followed by an optional [`ImageOptions`](/style-spec/reference/types/#imageoptions) object, which will be used for vector images only.\\n\\nTo implement crossfading between two images within a symbol layer using the [`icon-image-cross-fade`](/style-spec/reference/layers/#paint-symbol-icon-image-cross-fade) attribute, include a second image as the second argument in the `\'image\'` expression.","group":"Types","sdk-support":{"basic functionality":{"js":"1.4.0","android":"8.6.0","ios":"5.7.0"}}},"number-format":{"doc":"Converts the input number into a string representation using the providing formatting rules. If set, the `locale` argument specifies the locale to use, as a BCP 47 language tag. If set, the `currency` argument specifies an ISO 4217 code to use for currency-style formatting. If set, the `unit` argument specifies a [simple ECMAScript unit](https://tc39.es/proposal-unified-intl-numberformat/section6/locales-currencies-tz_proposed_out.html#sec-issanctionedsimpleunitidentifier) to use for unit-style formatting. If set, the `min-fraction-digits` and `max-fraction-digits` arguments specify the minimum and maximum number of fractional digits to include.","group":"Types","sdk-support":{"basic functionality":{"js":"0.54.0","android":"8.4.0","ios":"5.4.0"}}},"to-string":{"doc":"Converts the input value to a string. If the input is `null`, the result is `\\"\\"`. If the input is a [`boolean`](#types-boolean), the result is `\\"true\\"` or `\\"false\\"`. If the input is a number, it is converted to a string as specified by the [\\"NumberToString\\" algorithm](https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type) of the ECMAScript Language Specification. If the input is a [`color`](#color), it is converted to a string of the form `\\"rgba(r,g,b,a)\\"`, where `r`, `g`, and `b` are numerals ranging from 0 to 255, and `a` ranges from 0 to 1. If the input is an [`\'image\'`](#types-image) expression, `\'to-string\'` returns the image name. Otherwise, the input is converted to a string in the format specified by the [`JSON.stringify`](https://tc39.github.io/ecma262/#sec-json.stringify) function of the ECMAScript Language Specification.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-number":{"doc":"Converts the input value to a number, if possible. If the input is `null` or `false`, the result is 0. If the input is `true`, the result is 1. If the input is a string, it is converted to a number as specified by the [\\"ToNumber Applied to the String Type\\" algorithm](https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type) of the ECMAScript Language Specification. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-boolean":{"doc":"Converts the input value to a boolean. The result is `false` when then input is an empty string, 0, `false`, `null`, or `NaN`; otherwise it is `true`.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-rgba":{"doc":"Returns a four-element array containing the input color\'s red, green, blue, and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"to-hsla":{"doc":"Returns a four-element array containing the input color\'s Hue, Saturation, Luminance and alpha components, in that order.","group":"Color","sdk-support":{"basic functionality":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}}},"to-color":{"doc":"Converts the input value to a color. If multiple values are provided, each one is evaluated in order until the first successful conversion is obtained. If none of the inputs can be converted, the expression is an error.","group":"Types","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgb":{"doc":"Creates a color value from red, green, and blue components, which must range between 0 and 255, and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"rgba":{"doc":"Creates a color value from red, green, blue components, which must range between 0 and 255, and an alpha component which must range between 0 and 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"hsl":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component of 1. If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"hsla":{"doc":"Creates a color value from hue (range 0-360), saturation and lightness components (range 0-100), and an alpha component (range 0-1). If any component is out of range, the expression is an error.","group":"Color","sdk-support":{"basic functionality":{"js":"2.12.1","android":"10.11.0","ios":"10.11.0"}}},"get":{"doc":"Retrieves a property value from the current feature\'s properties, or from another object if a second argument is provided. Returns `null` if the requested property is missing.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"has":{"doc":"Tests for the presence of an property value in the current feature\'s properties, or from another object if a second argument is provided.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"length":{"doc":"Returns the length of an array or string.","group":"Lookup","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"properties":{"doc":"Returns the feature properties object. Note that in some cases, it may be more efficient to use `[\\"get\\", \\"property_name\\"]` directly.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"feature-state":{"doc":"Retrieves a property value from the current feature\'s state. Returns `null` if the requested property is not present on the feature\'s state. A feature\'s state is not part of the GeoJSON or vector tile data, and must be set programmatically on each feature. Features are identified by their `id` attribute, which must be an integer or a string that can be cast to an integer. Note that [\\"feature-state\\"] can only be used with paint properties that support data-driven styling.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.46.0","android":"10.0.0","ios":"10.0.0"}}},"geometry-type":{"doc":"Returns the feature\'s geometry type: `Point`, `LineString` or `Polygon`. `Multi*` feature types return the singular forms.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"worldview":{"doc":"Returns the current worldview being used.","group":"Lookup","experimental":true,"sdk-support":{"basic functionality":{"js":"3.13.0","android":"11.13.0","ios":"11.13.0"}}},"id":{"doc":"Returns the feature\'s id, if it has one.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"zoom":{"doc":"Returns the current zoom level. Note that in style layout and paint properties, [\\"zoom\\"] may only appear as the input to a top-level \\"step\\" or \\"interpolate\\" expression.","group":"Camera","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"pitch":{"doc":"Returns the current pitch in degrees. `[\\"pitch\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"distance-from-center":{"doc":"Returns the distance of a `symbol` instance from the center of the map. The distance is measured in pixels divided by the height of the map container. It measures 0 at the center, decreases towards the camera and increase away from the camera. For example, if the height of the map is 1000px, a value of -1 means 1000px away from the center towards the camera, and a value of 1 means a distance of 1000px away from the camera from the center. `[\\"distance-from-center\\"]` may only be used in the `filter` expression for a `symbol` layer.","group":"Camera","sdk-support":{"basic functionality":{"js":"2.6.0","android":"10.9.0","ios":"10.9.0"}}},"measure-light":{"doc":"Returns a requested property of the light configuration based on the supplied options. Currently the only supported option is `brightness` which returns the global brightness value of the lights on a scale of 0 to 1, where 0 means total darkness and 1 means full brightness. This expression works only with 3D light, i.e. when `lights` root property is defined.","group":"Lookup","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"heatmap-density":{"doc":"Returns the kernel density estimation of a pixel in a heatmap layer, which is a relative measure of how many data points are crowded around a particular pixel. Can only be used in the `heatmap-color` property.","group":"Heatmap","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"line-progress":{"doc":"Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.6.0"}}},"sky-radial-progress":{"doc":"Returns the distance of a point on the sky from the sun position. Returns 0 at sun position and 1 when the distance reaches `sky-gradient-radius`. Can only be used in the `sky-gradient` property.","group":"sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"accumulated":{"doc":"Returns the value of a cluster property accumulated so far. Can only be used in the `clusterProperties` option of a clustered GeoJSON source.","group":"Feature data","sdk-support":{"basic functionality":{"js":"0.53.0","android":"8.4.0","ios":"5.5.0"}}},"+":{"doc":"Returns the sum of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"*":{"doc":"Returns the product of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"-":{"doc":"For two inputs, returns the result of subtracting the second input from the first. For a single input, returns the result of subtracting it from 0.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"/":{"doc":"Returns the result of floating point division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"%":{"doc":"Returns the remainder after integer division of the first input by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"^":{"doc":"Returns the result of raising the first input to the power specified by the second.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sqrt":{"doc":"Returns the square root of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.42.0","android":"6.0.0","ios":"4.0.0"}}},"log10":{"doc":"Returns the base-ten logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"ln":{"doc":"Returns the natural logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"log2":{"doc":"Returns the base-two logarithm of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"sin":{"doc":"Returns the sine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"cos":{"doc":"Returns the cosine of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"tan":{"doc":"Returns the tangent of the input, interpreted as radians.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"asin":{"doc":"Returns the arcsine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"acos":{"doc":"Returns the arccosine of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"atan":{"doc":"Returns the arctangent of the input, in radians between −π/2 and π/2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"min":{"doc":"Returns the minimum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"max":{"doc":"Returns the maximum value of the inputs.","group":"Math","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"round":{"doc":"Rounds the input to the nearest integer. Halfway values are rounded away from zero. For example, `[\\"round\\", -1.5]` evaluates to -2.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"abs":{"doc":"Returns the absolute value of the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"ceil":{"doc":"Returns the smallest integer that is greater than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"floor":{"doc":"Returns the largest integer that is less than or equal to the input.","group":"Math","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.0.0","ios":"4.0.0"}}},"distance":{"doc":"Returns the shortest distance in meters between the evaluated feature and the input geometry. The input value can be a valid GeoJSON of type `Point`, `MultiPoint`, `LineString`, `MultiLineString`, `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Distance values returned may vary in precision due to loss in precision from encoding geometries, particularly below zoom level 13.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"9.2.0","ios":"5.9.0"}}},"==":{"doc":"Returns `true` if the input values are equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"!=":{"doc":"Returns `true` if the input values are not equal, `false` otherwise. The comparison is strictly typed: values of different runtime types are always considered unequal. Cases where the types are known to be different at parse time are considered invalid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">":{"doc":"Returns `true` if the first input is strictly greater than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<":{"doc":"Returns `true` if the first input is strictly less than the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},">=":{"doc":"Returns `true` if the first input is greater than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"<=":{"doc":"Returns `true` if the first input is less than or equal to the second, `false` otherwise. The arguments are required to be either both strings or both numbers; if during evaluation they are not, expression evaluation produces an error. Cases where this constraint is known not to hold at parse time are considered in valid and will produce a parse error. Accepts an optional `collator` argument to control locale-dependent string comparisons.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"collator":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"all":{"doc":"Returns `true` if all the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `false`, the result is `false` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"any":{"doc":"Returns `true` if any of the inputs are `true`, `false` otherwise. The inputs are evaluated in order, and evaluation is short-circuiting: once an input expression evaluates to `true`, the result is `true` and no further input expressions are evaluated.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"!":{"doc":"Logical negation. Returns `true` if the input is `false`, and `false` if the input is `true`.","group":"Decision","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"within":{"doc":"Returns `true` if the evaluated feature is fully contained inside a boundary of the input geometry, `false` otherwise. The input value can be a valid GeoJSON of type `Polygon`, `MultiPolygon`, `Feature`, or `FeatureCollection`. Supported features for evaluation:\\n- `Point`: Returns `false` if a point is on the boundary or falls outside the boundary.\\n- `LineString`: Returns `false` if any part of a line falls outside the boundary, the line intersects the boundary, or a line\'s endpoint is on the boundary.","group":"Decision","sdk-support":{"basic functionality":{"js":"1.9.0","android":"9.1.0","ios":"5.8.0"}}},"is-supported-script":{"doc":"Returns `true` if the input string is expected to render legibly. Returns `false` if the input string contains sections that cannot be rendered without potential loss of meaning (e.g. Indic scripts that require complex text shaping, or right-to-left scripts if the the `mapbox-gl-rtl-text` plugin is not in use in Mapbox GL JS).","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.6.0","ios":"4.1.0"}}},"upcase":{"doc":"Returns the input string converted to uppercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"downcase":{"doc":"Returns the input string converted to lowercase. Follows the Unicode Default Case Conversion algorithm and the locale-insensitive case mappings in the Unicode Character Database.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"concat":{"doc":"Returns a `string` consisting of the concatenation of the inputs. Each input is converted to a string as if by `to-string`.","group":"String","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}}},"resolved-locale":{"doc":"Returns the IETF language tag of the locale being used by the provided `collator`. This can be used to determine the default system locale, or to determine if a requested locale was successfully loaded.","group":"String","sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.2.0"}}},"raster-value":{"doc":"Returns the raster value of a pixel computed via `raster-color-mix`. Can only be used in the `raster-color` property.","group":"Raster Colorization","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-particle-speed":{"doc":"Returns the length of the particle velocity vector. Can only be used in the `raster-particle-color` property.","group":"Raster Particle Animation","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"is-active-floor":{"doc":"Experimental. Returns `true` if the input floor id belongs to one of the active indoor floors, `false` otherwise. In case of array of strings, returns `true` if any of the input floor ids belongs to one of the active indoor floors, `false` otherwise. Only supported in filters.","group":"Indoor","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"random":{"doc":"Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.","group":"Math","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}}},"fog":{"range":{"type":"array","default":[0.5,10],"minimum":-20,"maximum":20,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"high-color":{"type":"color","property-type":"data-constant","default":"#245cdf","expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"space-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,"#010b19",7,"#367ab9"],"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"horizon-blend":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],4,0.2,7,0.1],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.","sdk-support":{"basic functionality":{"js":"2.3.0","android":"10.6.0","ios":"10.6.0"}}},"star-intensity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],5,0.35,6,0],"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.","sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.6.0","ios":"10.6.0"}}},"vertical-range":{"type":"array","default":[0,0],"minimum":0,"length":2,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}}},"snow":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.85],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles density. Controls the overall particles number.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles movement factor. Controls the overall particles movement speed.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow particles color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.3],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow vignette screen-space effect. Adds snow tint to screen corners","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":"#ffffff","experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Snow vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.4,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,50],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main snow particles direction. Azimuth and polar angles","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"flake-size":{"type":"number","property-type":"data-constant","default":0.71,"minimum":0,"maximum":5,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Snow flake particle size. Correlates with individual particle screen size","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"rain":{"density":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,0.5],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles density. Controls the overall screen density of the rain.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles movement factor. Controls the overall rain particles speed","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#03113d",0.3,"#a8adbc"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Individual rain particle dorplets color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"opacity":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,0.88,1,0.7],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles opacity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette":{"type":"number","property-type":"data-constant","default":["interpolate",["linear"],["zoom"],11,0,13,1],"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Screen-space vignette rain tinting effect intensity.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"vignette-color":{"type":"color","property-type":"data-constant","default":["interpolate",["linear"],["measure-light","brightness"],0,"#001736",0.3,"#464646"],"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"use-theme":true,"transition":true,"doc":"Rain vignette screen-space corners tint color.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"center-thinning":{"type":"number","property-type":"data-constant","default":0.57,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"direction":{"type":"array","default":[0,80],"minimum":0,"maximum":360,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Main rain particles direction. Azimuth and polar angles.","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"droplet-size":{"type":"array","default":[2.6,18.2],"minimum":0,"maximum":50,"length":2,"value":"number","property-type":"data-constant","transition":true,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"doc":"Rain droplet size. x - normal to direction, y - along direction","example":[0,45],"sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}},"distortion-strength":{"type":"number","property-type":"data-constant","default":0.7,"minimum":0,"maximum":1,"experimental":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"],"relaxZoomRestriction":true},"transition":true,"doc":"Rain particles screen-space distortion strength.","sdk-support":{"basic functionality":{"android":"11.9.0","ios":"11.9.0","js":"3.9.0"}}}},"camera":{"camera-projection":{"doc":"Camera projection describes how 3D world geometry get projected into 2D screen","type":"enum","values":{"perspective":{"doc":"linear projection where distant objects appear smaller than closer objects. Lines that are parallel seem to converge towards a vanishing point"},"orthographic":{"doc":"Projection where objects are of the same scale regardless of whether they are far away or near to the camera. Parallel lines remains parallel and there is no vanishing point."}},"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"perspective","property-type":"data-constant"}},"colorTheme":{"data":{"type":"string","doc":"Expects a base64 encoded PNG image which represents a cube strip LUT. The height of the image cannot exceed 32 pixels and the width must be equal to the height squared.","transition":false,"property-type":"data-constant","expression":{"interpolated":false}}},"indoor_source":{"sourceId":{"type":"string","doc":"Source ID of a source to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"},"sourceLayers":{"type":"array","value":"string","doc":"An array of source layers to be used to retrieve indoor data.","experimental":true,"private":true,"transition":false,"property-type":"data-constant"}},"indoor":{"*":{"type":"indoor_source","private":true,"experimental":true,"doc":"Specification of an indoor source - sourceId and sourceLayer required for vector source, for GeoJSON sourceLayers should be omitted."}},"light":{"anchor":{"type":"enum","default":"viewport","values":{"map":{"doc":"The position of the light source is aligned to the rotation of the map."},"viewport":{"doc":"The position of the light source is aligned to the rotation of the viewport."}},"property-type":"data-constant","transition":false,"expression":{"interpolated":false,"parameters":["zoom"]},"doc":"Whether extruded geometries are lit relative to the map or viewport.","example":"map","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"position":{"type":"array","default":[1.15,210,30],"length":3,"value":"number","property-type":"data-constant","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).","example":[1.5,90,80],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"color":{"type":"color","property-type":"data-constant","default":"#ffffff","expression":{"interpolated":true,"parameters":["zoom"]},"use-theme":true,"transition":true,"doc":"Color tint for lighting extruded geometries.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}},"intensity":{"type":"number","property-type":"data-constant","default":0.5,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}}}},"projection":{"name":{"type":"enum","values":{"albers":{"doc":"An Albers equal-area projection centered on the continental United States. You can configure the projection for a different region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"equalEarth":{"doc":"An Equal Earth projection."},"equirectangular":{"doc":"An Equirectangular projection. This projection is very similar to the Plate Carrée projection."},"lambertConformalConic":{"doc":"A Lambert conformal conic projection. You can configure the projection for a region by setting `center` and `parallels` properties. You may want to set max bounds to constrain the map to the relevant region."},"mercator":{"doc":"The Mercator projection is the default projection."},"naturalEarth":{"doc":"A Natural Earth projection."},"winkelTripel":{"doc":"A Winkel Tripel projection."},"globe":{"doc":"A globe projection."}},"default":"mercator","doc":"The name of the projection to be used for rendering the map.","required":true,"sdk-support":{"basic functionality":{"js":"2.6.0","ios":"10.5.0","android":"10.5.0"}}},"center":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-180,-90],"maximum":[180,90],"transition":false,"doc":"The reference longitude and latitude of the projection. `center` takes the form of [lng, lat]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic). All other projections are centered on [0, 0].","example":[-96,37.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}},"parallels":{"type":"array","length":2,"value":"number","property-type":"data-constant","minimum":[-90,-90],"maximum":[90,90],"transition":false,"doc":"The standard parallels of the projection, denoting the desired latitude range with minimal distortion. `parallels` takes the form of [lat0, lat1]. This property is only configurable for conic projections (Albers and Lambert Conformal Conic).","example":[29.5,45.5],"requires":[{"name":["albers","lambertConformalConic"]}],"sdk-support":{"basic functionality":{"js":"2.6.0"}}}},"terrain":{"source":{"type":"string","doc":"Name of a source of `raster_dem` type to be used for terrain elevation.","required":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}},"exaggeration":{"type":"number","property-type":"data-constant","default":1,"minimum":0,"maximum":1000,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Exaggerates the elevation of the terrain by multiplying the data from the DEM with this value.","requires":["source"],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}}}},"paint":["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_building","paint_symbol","paint_raster","paint_raster-particle","paint_hillshade","paint_background","paint_sky","paint_model"],"paint_fill":{"fill-antialias":{"type":"boolean","default":true,"doc":"Whether or not the fill should be antialiased.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill layer. In contrast to the `fill-color`, this value will also affect the 1px stroke around the fill, if the stroke is used.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.21.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-color":{"type":"color","default":"#000000","doc":"The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color\'s opacity will not affect the opacity of the 1px stroke, if it is used.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-outline-color":{"type":"color","doc":"The outline color of the fill. Matches the value of `fill-color` if unspecified.","use-theme":true,"transition":true,"requires":[{"!":"fill-pattern"},{"fill-antialias":true}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.19.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill is translated relative to the map."},"viewport":{"doc":"The fill is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-translate`.","default":"map","requires":["fill-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"fill-z-offset":{"type":"number","doc":"Specifies an uniform elevation in meters. Note: If the value is zero, the layer will be rendered on the ground. Non-zero values will elevate the layer from the sea level, which can cause it to be rendered below the terrain.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.7.0"},"data-driven styling":{"js":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-bridge-guard-rail-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of bridge guard rail.","experimental":true,"private":true,"use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"},"fill-tunnel-structure-color":{"type":"color","default":"rgba(241, 236, 225, 255)","doc":"The color of tunnel structures (tunnel entrance and tunnel walls).","use-theme":true,"transition":true,"experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"},"data-driven styling":{"android":"11.11.0","ios":"11.11.0","js":"3.14.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature"]},"property-type":"data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire fill extrusion layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{"type":"color","default":"#000000","doc":"The base color of the extruded fill. The extrusion\'s surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fill-extrusion-opacity` to set layer opacity.","use-theme":true,"transition":true,"requires":[{"!":"fill-extrusion-pattern"}],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{"type":"enum","values":{"map":{"doc":"The fill extrusion is translated relative to the map."},"viewport":{"doc":"The fill extrusion is translated relative to the viewport."}},"doc":"Controls the frame of reference for `fill-extrusion-translate`.","default":"map","requires":["fill-extrusion-translate"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"fill-extrusion-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of fill-extrusion-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"fill-extrusion-height":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude this layer.","transition":true,"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{"type":"number","default":0,"minimum":0,"units":"meters","doc":"The height with which to extrude the base of this layer. Must be less than or equal to `fill-extrusion-height`.","transition":true,"requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"},"data-driven styling":{"js":"0.27.0","android":"5.1.0","ios":"3.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-height-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion height follows terrain slope."},"flat":{"doc":"The fill extrusion height is flat over terrain."}},"doc":"Controls the behavior of fill extrusion height over terrain","default":"flat","requires":["fill-extrusion-height"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-base-alignment":{"type":"enum","experimental":true,"values":{"terrain":{"doc":"The fill extrusion base follows terrain slope."},"flat":{"doc":"The fill extrusion base is flat over terrain."}},"doc":"Controls the behavior of fill extrusion base over terrain","default":"terrain","requires":["fill-extrusion-base"],"sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"},"fill-extrusion-vertical-gradient":{"type":"boolean","default":true,"doc":"Whether to apply a vertical gradient to the sides of a fill-extrusion layer. If true, sides will be shaded slightly darker farther down.","transition":false,"sdk-support":{"basic functionality":{"js":"0.50.0","android":"7.0.0","ios":"4.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"fill-extrusion-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground and concave angles between walls. Default value 0.0 disables ambient occlusion and values around 0.3 provide the most plausible results for buildings.","sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-radius":{"property-type":"data-constant","type":"number","default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings. This property works only with legacy light. When 3D lights are enabled `fill-extrusion-ambient-occlusion-wall-radius` and `fill-extrusion-ambient-occlusion-ground-radius` are used instead.","requires":["fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.7.0","ios":"10.7.0"}}},"fill-extrusion-ambient-occlusion-wall-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Shades area near ground and concave angles between walls where the radius defines only vertical impact. Default value 3.0 corresponds to height of one floor and brings the most plausible results for buildings.","requires":["lights","fill-extrusion-edge-radius"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","experimental":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the extruded buildings in meters.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the ambient occlusion on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-color":{"property-type":"data-constant","type":"color","experimental":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the extruded buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-intensity":{"property-type":"data-constant","type":"number","experimental":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-wall-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"minimum":0,"doc":"The extent of the flood light effect on the walls of the extruded buildings in meters.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-radius":{"property-type":"data-driven","type":"number","experimental":true,"units":"meters","default":0,"doc":"The extent of the flood light effect on the ground beneath the extruded buildings in meters. Note: this experimental property is evaluated once per tile, during tile initialization. Changing the property value could trigger tile reload. The `feature-state` styling is deprecated and will get removed soon.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","experimental":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the extruded buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-vertical-scale":{"property-type":"data-constant","type":"number","experimental":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base, height, AO, and flood light of the fill extrusions.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"fill-extrusion-rounded-roof":{"property-type":"data-constant","type":"boolean","default":true,"experimental":true,"doc":"Indicates whether top edges should be rounded when fill-extrusion-edge-radius has a value greater than 0. If false, rounded edges are only applied to the sides. Default is true.","requires":["fill-extrusion-edge-radius"],"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.10.0","ios":"10.10.0"}},"expression":{"interpolated":false,"parameters":["zoom"]}},"fill-extrusion-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"fill-extrusion-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"fill-extrusion-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"property-type":"data-driven"},"fill-extrusion-line-width":{"type":"number","default":0,"minimum":0,"transition":true,"experimental":true,"units":"meters","doc":"If a non-zero value is provided, it sets the fill-extrusion layer into wall rendering mode. The value is used to render the feature with the given width over the outlines of the geometry. Note: This property is experimental and some other fill-extrusion properties might not be supported with non-zero line width.","sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"fill-extrusion-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.8.0","ios":"11.8.0"}},"property-type":"data-constant"}},"paint_building":{"building-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire procedural buildings layer. This is rendered on a per-layer, not per-feature, basis, and data-driven styling is not available.","transition":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"building-ambient-occlusion-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":false,"parameters":[]},"transition":true,"doc":"Controls the intensity of ambient occlusion when shading concave angles between walls and roof crevices and windows.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-intensity":{"property-type":"data-constant","type":"number","default":0,"minimum":0,"maximum":1,"private":true,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"Controls the intensity of shading near ground","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-radius":{"property-type":"data-constant","type":"number","private":true,"default":3,"minimum":0,"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"doc":"The extent of the ambient occlusion effect on the ground beneath the procedural buildings in meters.","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-ambient-occlusion-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to further fine-tune the look of the ambient occlusion on the ground beneath the procedural buildings. Lower values give the effect a more solid look while higher values make it smoother.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-vertical-scale":{"property-type":"data-constant","type":"number","private":true,"default":1,"minimum":0,"doc":"A global multiplier that can be used to scale base and height of the procedural buildings.","transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-color":{"type":"color","default":"rgba(193, 154, 127, 1)","doc":"Color buildings. This can be styled using different building parts (e.g. window, wall, roof).","private":true,"use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-emissive-strength":{"type":"number","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Controls the intensity of light emitted on the source features. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors).","private":true,"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"},"data-driven styling":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"property-type":"data-driven"},"building-facade-emissive-chance":{"type":"number","default":0.35,"minimum":0,"maximum":1,"doc":"Given as a fraction specifies the likelihood for the facades to be emissive when building-facade is enabled. A value of 0.0 means the window will never be emissive, while a value of 1.0 means the window will always be emissive. This can be used to create variations on a building where some windows are lit and some are not.","private":true,"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"expression":{"interpolated":true,"parameters":["measure-light","zoom"]}},"building-cutoff-fade-range":{"type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. Fade out is implemented by scaling down and removing buildings in the fade range in a staggered fashion. Opacity is not changed. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}},"property-type":"data-constant"},"building-front-cutoff":{"type":"array","private":true,"experimental":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.21.0","android":"11.21.0","ios":"11.21.0"}}},"building-flood-light-color":{"property-type":"data-constant","type":"color","private":true,"default":"#ffffff","doc":"The color of the flood light effect on the walls of the buildings.","requires":["lights"],"use-theme":true,"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-intensity":{"property-type":"data-constant","type":"number","private":true,"default":0,"minimum":0,"maximum":1,"doc":"The intensity of the flood light color.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}},"building-flood-light-ground-attenuation":{"property-type":"data-constant","type":"number","private":true,"default":0.69,"minimum":0,"maximum":1,"doc":"Provides a control to futher fine-tune the look of the flood light on the ground beneath the buildings. Lower values give the effect a more solid look while higher values make it smoother.","requires":["lights"],"transition":true,"expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.16.0","android":"11.16.0","ios":"11.16.0"}}}},"paint_line":{"line-opacity":{"type":"number","doc":"The opacity at which the line will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-color":{"type":"color","doc":"The color with which the line will be drawn.","default":"#000000","use-theme":true,"transition":true,"requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.23.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{"type":"enum","values":{"map":{"doc":"The line is translated relative to the map."},"viewport":{"doc":"The line is translated relative to the viewport."}},"doc":"Controls the frame of reference for `line-translate`.","default":"map","requires":["line-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"line-width":{"type":"number","default":1,"minimum":0,"transition":true,"units":"pixels","doc":"Stroke thickness.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light","line-progress"]},"property-type":"data-driven"},"line-gap-width":{"type":"number","default":0,"minimum":0,"doc":"Draws a line casing outside of a line\'s actual path. Value indicates the width of the inner gap.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-offset":{"type":"number","default":0,"doc":"The line\'s offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.","transition":true,"units":"pixels","sdk-support":{"basic functionality":{"js":"0.12.1","android":"3.0.0","ios":"3.1.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Blur applied to the line, in pixels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"line-dasharray":{"type":"array","value":"number","doc":"Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won\'t render dashed lines to the expected scale. Also note that zoom-dependent expressions will be evaluated only at integer zoom levels.","minimum":0,"transition":false,"units":"line widths","requires":[{"!":"line-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"2.3.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.49.0","android":"6.5.0","ios":"4.4.0"}},"expression":{"interpolated":false,"parameters":["zoom","feature"]},"property-type":"data-driven"},"line-pattern-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["line-pattern"],"sdk-support":{"basic functionality":{"js":"3.12.0","android":"11.14.0","ios":"11.14.0"}},"doc":"Controls the transition progress between the image variants of line-pattern. Zero means the first variant is used, one is the second, and in between they are blended together. Both images should be the same size and have the same type (either raster or vector)."},"line-gradient":{"type":"color","doc":"A gradient used to color a line feature at various distances along its length. Defined using a `step` or `interpolate` expression which outputs a color for each corresponding `line-progress` input value. `line-progress` is a percentage of the line feature\'s total length as measured on the webmercator projected coordinate plane (a `number` between `0` and `1`). Can only be used with GeoJSON sources that specify `\\"lineMetrics\\": true`.","example":["interpolate",["linear"],["line-progress"],0,"blue",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"use-theme":true,"transition":false,"requires":[{"!":"line-pattern"},{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"0.45.0","android":"6.5.0","ios":"4.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["line-progress"]},"property-type":"color-ramp"},"line-trim-offset":{"type":"array","value":"number","doc":"The line part between [trim-start, trim-end] will be painted using `line-trim-color,` which is transparent by default to produce a route vanishing effect. The line trim-off offset is based on the whole line range [0.0, 1.0].","length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":[{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"2.9.0","android":"10.5.0","ios":"10.5.0"}},"property-type":"constant"},"line-trim-fade-range":{"type":"array","value":"number","doc":"The fade range for the trim-start and trim-end points is defined by the `line-trim-offset` property. The first element of the array represents the fade range from the trim-start point toward the end of the line, while the second element defines the fade range from the trim-end point toward the beginning of the line. The fade result is achieved by interpolating between `line-trim-color` and the color specified by the `line-color` or the `line-gradient` property.","experimental":true,"length":2,"default":[0,0],"minimum":[0,0],"maximum":[1,1],"transition":false,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"property-type":"data-constant"},"line-trim-color":{"type":"color","doc":"The color to be used for rendering the trimmed line section that is defined by the `line-trim-offset` property.","experimental":true,"default":"transparent","use-theme":true,"transition":true,"requires":["line-trim-offset",{"source":"geojson","has":{"lineMetrics":true}}],"sdk-support":{"basic functionality":{"js":"3.6.0","android":"11.6.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"line-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.17.0","android":"11.17.0","ios":"11.17.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-driven"},"line-border-width":{"type":"number","private":true,"doc":"The width of the line border. A value of zero means no border.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-border-color":{"type":"color","private":true,"doc":"The color of the line border. If line-border-width is greater than zero and the alpha value of this color is 0 (default), the color for the border will be selected automatically based on the line color.","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"},"data-driven styling":{"js":"3.0.0","android":"10.9.0","ios":"10.9.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-occlusion-opacity":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"Opacity multiplier (multiplies line-opacity value) of the line part that is occluded by 3D objects. Value 0 hides occluded part, value 1 means the same opacity as non-occluded part. The property is not supported when `line-opacity` has data-driven styling.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"transition":true,"property-type":"data-constant"},"line-blend-mode":{"type":"enum","values":{"default":{"doc":"Normal non-blended rendering mode."},"multiply":{"doc":"Line features are composited using multiply blending."},"additive":{"doc":"Line features are composited using additive density accumulation with tone mapping."}},"doc":"Controls the blend mode used for rendering line features.","default":"default","experimental":true,"private":true,"sdk-support":{"basic functionality":{"js":"3.21.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_circle":{"circle-radius":{"type":"number","default":5,"minimum":0,"transition":true,"units":"pixels","doc":"Circle radius.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-color":{"type":"color","default":"#000000","doc":"The fill color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.18.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-blur":{"type":"number","default":0,"doc":"Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity. Setting a negative value renders the blur as an inner glow effect.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-opacity":{"type":"number","doc":"The opacity at which the circle will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.20.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"units":"pixels","doc":"The geometry\'s offset. Values are [x, y] where negatives indicate left and up, respectively.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{"type":"enum","values":{"map":{"doc":"The circle is translated relative to the map."},"viewport":{"doc":"The circle is translated relative to the viewport."}},"doc":"Controls the frame of reference for `circle-translate`.","default":"map","requires":["circle-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{"type":"enum","values":{"map":{"doc":"Circles are scaled according to their apparent distance to the camera."},"viewport":{"doc":"Circles are not scaled."}},"default":"map","doc":"Controls the scaling behavior of the circle when the map is pitched.","sdk-support":{"basic functionality":{"js":"0.21.0","android":"4.2.0","ios":"3.4.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The circle is aligned to the plane of the map."},"viewport":{"doc":"The circle is aligned to the plane of the viewport."}},"default":"viewport","doc":"Orientation of circle when map is pitched.","sdk-support":{"basic functionality":{"js":"0.39.0","android":"5.2.0","ios":"3.7.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The width of the circle\'s stroke. Strokes are placed outside of the `circle-radius`.","sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-color":{"type":"color","default":"#000000","doc":"The stroke color of the circle.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-stroke-opacity":{"type":"number","doc":"The opacity of the circle\'s stroke.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"},"data-driven styling":{"js":"0.29.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"circle-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_heatmap":{"heatmap-radius":{"type":"number","default":30,"minimum":1,"transition":true,"units":"pixels","doc":"Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed. `queryRenderedFeatures` on heatmap layers will return points within this radius.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-weight":{"type":"number","default":1,"minimum":0,"transition":false,"doc":"A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"property-type":"data-driven"},"heatmap-intensity":{"type":"number","default":1,"minimum":0,"transition":true,"doc":"Similar to `heatmap-weight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.","sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"heatmap-color":{"type":"color","default":["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",0.1,"royalblue",0.3,"cyan",0.5,"lime",0.7,"yellow",1,"red"],"doc":"Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `[\\"heatmap-density\\"]` as input.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{"type":"number","doc":"The global opacity at which the heatmap layer will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.41.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_symbol":{"icon-opacity":{"doc":"The opacity at which the icon will be drawn.","type":"number","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-occlusion-opacity":{"doc":"The opacity at which the icon will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","type":"number","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"text-emissive-strength":{"type":"number","default":1,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light","feature-state"]},"appearance":true,"property-type":"data-driven"},"icon-color":{"type":"color","default":"#000000","use-theme":true,"transition":true,"doc":"The color of the icon. This can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the icon\'s halo. Icon halos can only be used with [SDF icons](/help/troubleshooting/using-recolorable-images-in-mapbox-maps/).","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the icon outline.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Fade out the halo towards the outside.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"icon-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the icon\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{"type":"enum","values":{"map":{"doc":"Icons are translated relative to the map."},"viewport":{"doc":"Icons are translated relative to the viewport."}},"doc":"Controls the frame of reference for `icon-translate`.","default":"map","requires":["icon-image","icon-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-image-cross-fade":{"type":"number","property-type":"data-constant","default":0,"minimum":0,"maximum":1,"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"requires":["icon-image"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"doc":"Controls the transition progress between the image variants of icon-image. Zero means the first variant is used, one is the second, and in between they are blended together. . Both images should be the same size and have the same type (either raster or vector)."},"text-opacity":{"type":"number","doc":"The opacity at which the text will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-occlusion-opacity":{"type":"number","doc":"The opacity at which the text will be drawn in case of being depth occluded. Absent value means full occlusion against terrain only.","minimum":0,"maximum":1,"default":0,"transition":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"},"data-driven styling":{"js":"3.5.0","android":"11.5.0","ios":"11.6.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-color":{"type":"color","doc":"The color with which the text will be drawn.","default":"#000000","use-theme":true,"transition":true,"overridable":true,"requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-color":{"type":"color","default":"rgba(0, 0, 0, 0)","use-theme":true,"transition":true,"doc":"The color of the text\'s halo, which helps it stand out from backgrounds.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-width":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-halo-blur":{"type":"number","default":0,"minimum":0,"transition":true,"units":"pixels","doc":"The halo\'s fadeout distance towards the outside.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"},"data-driven styling":{"js":"0.33.0","android":"5.0.0","ios":"3.5.0"}},"expression":{"interpolated":true,"parameters":["zoom","feature","feature-state","measure-light"]},"appearance":true,"property-type":"data-driven"},"text-translate":{"type":"array","value":"number","length":2,"default":[0,0],"transition":true,"appearance":true,"units":"pixels","doc":"Distance that the text\'s anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.","requires":["text-field"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{"type":"enum","values":{"map":{"doc":"The text is translated relative to the map."},"viewport":{"doc":"The text is translated relative to the viewport."}},"doc":"Controls the frame of reference for `text-translate`.","default":"map","requires":["text-field","text-translate"],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"icon-color-saturation":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the saturation of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-contrast":{"type":"number","default":0,"minimum":-1,"maximum":1,"transition":false,"doc":"Increase or reduce the contrast of the symbol icon.","sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"icon-color-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the symbols. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.5.0","android":"11.5.0","ios":"11.5.0"}},"expression":{"interpolated":false},"property-type":"data-constant"},"symbol-z-offset":{"type":"number","doc":"Specifies an uniform elevation from the ground, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"appearance":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"},"data-driven styling":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"requires":[{"symbol-z-elevate":true}],"expression":{"interpolated":true,"parameters":["zoom","feature"]},"property-type":"data-driven"}},"paint_raster":{"raster-opacity":{"type":"number","doc":"The opacity at which the image will be drawn.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-color":{"type":"color","doc":"Defines a color map by which to colorize a raster layer, parameterized by the `[\\"raster-value\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-color-range`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-value"]},"property-type":"color-ramp"},"raster-color-mix":{"type":"array","default":[0.2126,0.7152,0.0722,0],"length":4,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the combination of source RGB channels used to compute the raster value. Computed using the equation `mix.r * src.r + mix.g * src.g + mix.b * src.b + mix.a`. The first three components specify the mix of source red, green, and blue channels, respectively. The fourth component serves as a constant offset and is *not* multipled by source alpha. Source alpha is instead carried through and applied as opacity to the colorized result. Default value corresponds to RGB luminosity.","example":[0.2126,0.7152,0.0722,0],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-color-range":{"type":"array","length":2,"value":"number","property-type":"data-constant","transition":true,"requires":["raster-color"],"expression":{"interpolated":true,"parameters":["zoom"]},"doc":"When `raster-color` is active, specifies the range over which `raster-color` is tabulated. Units correspond to the computed raster value via `raster-color-mix`. For `rasterarray` sources, if `raster-color-range` is unspecified, the source\'s stated data range is used.","example":[0.5,10],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}}},"raster-hue-rotate":{"type":"number","default":0,"period":360,"transition":true,"units":"degrees","doc":"Rotates hues around the color wheel.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the minimum brightness.","default":0,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{"type":"number","doc":"Increase or reduce the brightness of the image. The value is the maximum brightness.","default":1,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-saturation":{"type":"number","doc":"Increase or reduce the saturation of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-contrast":{"type":"number","doc":"Increase or reduce the contrast of the image.","default":0,"minimum":-1,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-resampling":{"type":"enum","doc":"The resampling/interpolation method to use for overscaling, also known as texture magnification filter","values":{"linear":{"doc":"(Bi)linear filtering interpolates pixel values using the weighted average of the four closest original source pixels creating a smooth but blurry look when overscaled"},"nearest":{"doc":"Nearest neighbor filtering interpolates pixel values using the nearest original source pixel creating a sharp but pixelated look when overscaled"}},"default":"linear","sdk-support":{"basic functionality":{"js":"0.47.0","android":"6.3.0","ios":"4.2.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{"type":"number","default":300,"minimum":0,"transition":false,"units":"milliseconds","doc":"Fade duration when a new tile is added.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"raster-array-band":{"type":"string","required":false,"experimental":true,"property-type":"data-constant","transition":false,"requires":[{"source":"raster-array"}],"doc":"Displayed band of raster array source layer. Defaults to the first band if not set.","example":"band-name","sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.1.0","ios":"11.1.0"}}},"raster-elevation":{"type":"number","doc":"Defines an uniform elevation from the base specified in raster-elevation-reference, in meters.","default":0,"minimum":0,"transition":true,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.1.0","android":"11.2.0","ios":"11.2.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-elevation-reference":{"type":"enum","doc":"Selects the base of raster-elevation.","values":{"sea":{"doc":"Use this mode to elevate raster layers relative to the sea level."},"ground":{"doc":"Use this mode to elevate raster layers relative to the ground\'s height below them."}},"default":"sea","transition":false,"experimental":true,"sdk-support":{"basic functionality":{"js":"3.19.0","android":"11.19.0","ios":"11.19.0"}},"expression":{"interpolated":false},"property-type":"data-constant"}},"paint_raster-particle":{"raster-particle-array-band":{"type":"string","required":false,"property-type":"data-constant","transition":false,"doc":"Displayed band of raster array source layer","example":"\\"1713348000\\"","sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}}},"raster-particle-count":{"type":"number","doc":"Defines the amount of particles per tile.","default":512,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-color":{"type":"color","doc":"Defines a color map by which to colorize a raster particle layer, parameterized by the `[\\"raster-particle-speed\\"]` expression and evaluated at 256 uniformly spaced steps over the range specified by `raster-particle-max-speed`.","use-theme":true,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["raster-particle-speed"]},"property-type":"color-ramp"},"raster-particle-max-speed":{"type":"number","doc":"Defines the maximum speed for particles. Velocities with magnitudes equal to or exceeding this value are clamped to the max value.","default":1,"minimum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-speed-factor":{"type":"number","doc":"Defines a coefficient for the speed of particles’ motion.","default":0.2,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-fade-opacity-factor":{"type":"number","doc":"Defines defines the opacity coefficient applied to the faded particles in each frame. In practice, this property controls the length of the particle tail.","default":0.98,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"raster-particle-reset-rate-factor":{"type":"number","doc":"Defines a coefficient for a time period at which particles will restart at a random position, to avoid degeneration (empty areas without particles).","default":0.8,"minimum":0,"maximum":1,"transition":false,"sdk-support":{"basic functionality":{"js":"3.3.0","android":"11.4.0","ios":"11.4.0"}},"property-type":"data-constant"},"raster-particle-elevation":{"type":"number","doc":"Defines an uniform elevation from sea level, in meters.","default":0,"minimum":0,"transition":true,"sdk-support":{"basic functionality":{"js":"3.7.0","android":"11.7.0","ios":"11.7.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_hillshade":{"hillshade-illumination-direction":{"type":"number","default":335,"minimum":0,"maximum":359,"doc":"The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshade-illumination-anchor` is set to `viewport` and due north if `hillshade-illumination-anchor` is set to `map` and no 3d lights enabled. If `hillshade-illumination-anchor` is set to `map` and 3d lights enabled, the direction from 3d lights is used instead.","transition":false,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{"type":"enum","values":{"map":{"doc":"The hillshade illumination is relative to the north direction."},"viewport":{"doc":"The hillshade illumination is relative to the top of the viewport."}},"default":"viewport","doc":"Direction of light source when map is rotated.","sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{"type":"number","doc":"Intensity of the hillshade","default":0.5,"minimum":0,"maximum":1,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{"type":"color","default":"#000000","doc":"The shading color of areas that face away from the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-highlight-color":{"type":"color","default":"#FFFFFF","doc":"The shading color of areas that faces towards the light source.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-accent-color":{"type":"color","default":"#000000","doc":"The shading color used to accentuate rugged terrain like sharp cliffs and gorges.","use-theme":true,"transition":true,"sdk-support":{"basic functionality":{"js":"0.43.0","android":"6.0.0","ios":"4.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"hillshade-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_background":{"background-pitch-alignment":{"type":"enum","values":{"map":{"doc":"The background is aligned to the plane of the map."},"viewport":{"doc":"The background is aligned to the plane of the viewport, covering the whole screen. Note: This mode disables the automatic reordering of the layer when terrain or globe projection is used."}},"default":"map","doc":"Orientation of background layer.","sdk-support":{"basic functionality":{"js":"3.8.0","android":"11.8.0","ios":"11.8.0"}},"expression":{"interpolated":false,"parameters":[]},"experimental":true,"property-type":"data-constant"},"background-color":{"type":"color","default":"#000000","doc":"The color with which the background will be drawn.","use-theme":true,"transition":true,"requires":[{"!":"background-pattern"}],"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"},"background-pattern":{"type":"resolvedImage","transition":false,"doc":"Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoom-dependent expressions will be evaluated only at integer zoom levels.","sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"background-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity at which the background will be drawn.","transition":true,"sdk-support":{"basic functionality":{"js":"0.10.0","android":"2.0.1","ios":"2.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"},"background-emissive-strength":{"type":"number","default":0,"minimum":0,"transition":true,"units":"intensity","doc":"Controls the intensity of light emitted on the source features.","requires":["lights"],"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"expression":{"interpolated":true,"parameters":["zoom","measure-light"]},"property-type":"data-constant"}},"paint_sky":{"sky-type":{"type":"enum","values":{"gradient":{"doc":"Renders the sky with a gradient that can be configured with `sky-gradient-radius` and `sky-gradient`."},"atmosphere":{"doc":"Renders the sky with a simulated atmospheric scattering algorithm, the sun direction can be attached to the light position or explicitly set through `sky-atmosphere-sun`."}},"default":"atmosphere","doc":"The type of the sky","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun":{"type":"array","value":"number","length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the sun center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the sun relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the sun, where 0° is directly above, at zenith, and 90° at the horizon. When this property is ommitted, the sun center is directly inherited from the light position.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"requires":[{"sky-type":"atmosphere"}],"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-atmosphere-sun-intensity":{"type":"number","requires":[{"sky-type":"atmosphere"}],"default":10,"minimum":0,"maximum":100,"transition":false,"doc":"Intensity of the sun as a light source in the atmosphere (on a scale from 0 to a 100). Setting higher values will brighten up the sky.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-gradient-center":{"type":"array","requires":[{"sky-type":"gradient"}],"value":"number","default":[0,0],"length":2,"units":"degrees","minimum":[0,0],"maximum":[360,180],"transition":false,"doc":"Position of the gradient center [a azimuthal angle, p polar angle]. The azimuthal angle indicates the position of the gradient center relative to 0° north, where degrees proceed clockwise. The polar angle indicates the height of the gradient center, where 0° is directly above, at zenith, and 90° at the horizon.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient-radius":{"type":"number","requires":[{"sky-type":"gradient"}],"default":90,"minimum":0,"maximum":180,"transition":false,"doc":"The angular distance (measured in degrees) from `sky-gradient-center` up to which the gradient extends. A value of 180 causes the gradient to wrap around to the opposite direction from `sky-gradient-center`.","sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":false,"parameters":["zoom"]},"property-type":"data-constant"},"sky-gradient":{"type":"color","default":["interpolate",["linear"],["sky-radial-progress"],0.8,"#87ceeb",1,"white"],"doc":"Defines a radial color gradient with which to color the sky. The color values can be interpolated with an expression using `sky-radial-progress`. The range [0, 1] for the interpolant covers a radial distance (in degrees) of [0, `sky-gradient-radius`] centered at the position specified by `sky-gradient-center`.","use-theme":true,"transition":false,"requires":[{"sky-type":"gradient"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"},"data-driven styling":{}},"expression":{"interpolated":true,"parameters":["sky-radial-progress"]},"property-type":"color-ramp"},"sky-atmosphere-halo-color":{"type":"color","default":"white","doc":"A color applied to the atmosphere sun halo. The alpha channel describes how strongly the sun halo is represented in an atmosphere sky layer.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-atmosphere-color":{"type":"color","default":"white","doc":"A color used to tweak the main atmospheric scattering coefficients. Using white applies the default coefficients giving the natural blue color to the atmosphere. This color affects how heavily the corresponding wavelength is represented during scattering. The alpha channel describes the density of the atmosphere, with 1 maximum density and 0 no density.","use-theme":true,"transition":false,"requires":[{"sky-type":"atmosphere"}],"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"property-type":"data-constant"},"sky-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the entire sky layer.","transition":true,"sdk-support":{"basic functionality":{"js":"2.0.0","ios":"10.0.0","android":"10.0.0"}},"expression":{"interpolated":true,"parameters":["zoom"]},"property-type":"data-constant"}},"paint_model":{"model-opacity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"The opacity of the model layer. Except for zoom, expressions that are data-driven are not supported if using GeoJSON or vector tile as the model layer source.","transition":true,"expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.9.0","android":"11.9.0","ios":"11.9.0"}},"property-type":"data-driven"},"model-rotation":{"type":"array","value":"number","length":3,"default":[0,0,0],"period":360,"units":"degrees","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The rotation of the model in euler angles [lon, lat, z]."},"model-scale":{"type":"array","value":"number","length":3,"default":[1,1,1],"doc":"The scale of the model. Expressions that are zoom-dependent are not supported if using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-translation":{"type":"array","value":"number","length":3,"default":[0,0,0],"property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true,"doc":"The translation of the model in meters in form of [longitudal, latitudal, altitude] offsets."},"model-color":{"type":"color","default":"#ffffff","doc":"The tint color of the model layer. model-color-mix-intensity (defaults to 0) defines tint(mix) intensity - this means that, this color is not used unless model-color-mix-intensity gets value greater than 0. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light","zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"use-theme":true,"transition":true},"model-color-mix-intensity":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":1,"doc":"Intensity of model-color (on a scale from 0 to 1) in color mix with original 3D model\'s colors. Higher number will present a higher model-color contribution in mix. Expressions that depend on measure-light are not supported when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-type":{"type":"enum","values":{"common-3d":{"doc":"Integrated to 3D scene, using depth testing, along with terrain, fill-extrusions and custom layer."},"location-indicator":{"doc":"Displayed over other 3D content, occluded by terrain."}},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"default":"common-3d","doc":"Defines rendering behavior of model in respect to other 3D scene objects.","property-type":"data-constant"},"model-cast-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow casting for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-receive-shadows":{"type":"boolean","default":true,"doc":"Enable/Disable shadow receiving for this layer","transition":false,"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-ambient-occlusion-intensity":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Intensity of the ambient occlusion if present in the 3D model.","expression":{"interpolated":true,"parameters":["zoom"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant","transition":true},"model-emissive-strength":{"type":"number","property-type":"data-driven","default":0,"minimum":0,"maximum":5,"units":"intensity","doc":"Strength of the emission. There is no emission for value 0. For value 1.0, only emissive component (no shading) is displayed and values above 1.0 produce light contribution to surrounding area, for some of the parts (e.g. doors). Expressions that depend on measure-light are only supported as a global layer value (and not for each feature) when using GeoJSON or vector tile as the model layer source.","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-roughness":{"type":"number","default":1,"minimum":0,"maximum":1,"doc":"Material roughness. Material is fully smooth for value 0, and fully rough for value 1. Affects only layers using batched-model source.","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-height-based-emissive-strength-multiplier":{"type":"array","default":[1,1,1,1,0],"length":5,"value":"number","doc":"Emissive strength multiplier along model height (gradient begin, gradient end, value at begin, value at end, gradient curve power (logarithmic scale, curve power = pow(10, val)).","property-type":"data-driven","expression":{"interpolated":true,"parameters":["feature","feature-state","measure-light"]},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"},"data-driven styling":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"transition":true},"model-cutoff-fade-range":{"type":"number","default":0,"minimum":0,"maximum":1,"doc":"This parameter defines the range for the fade-out effect before an automatic content cutoff on pitched map views. The automatic cutoff range is calculated according to the minimum required zoom level of the source and layer. The fade range is expressed in relation to the height of the map view. A value of 1.0 indicates that the content is faded to the same extent as the map\'s height in pixels, while a value close to zero represents a sharp cutoff. When the value is set to 0.0, the cutoff is completely disabled. Note: The property has no effect on the map if terrain is enabled.","transition":false,"expression":{"interpolated":false},"sdk-support":{"basic functionality":{"js":"3.0.0","android":"11.0.0","ios":"11.0.0"}},"property-type":"data-constant"},"model-front-cutoff":{"type":"array","private":true,"value":"number","property-type":"data-constant","transition":false,"expression":{"interpolated":true,"parameters":["zoom"]},"length":3,"default":[0,0,1],"minimum":[0,0,0],"maximum":[1,1,1],"doc":"An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled. Note: The property has no effect on the map if terrain or globe projection is enabled.","sdk-support":{"basic functionality":{"js":"3.5.0"}}},"model-elevation-reference":{"type":"enum","doc":"Selects the base of the model. Some modes might require precomputed elevation data in the tileset. When using vector tiled source as the model layer source and hd-road-markup elevation reference, this property acts as layout property and elevation is evaluated only in tile loading time.","values":{"sea":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the sea level."},"ground":{"doc":"Elevated rendering is enabled. Use this mode to elevate models relative to the ground\'s height below them."},"hd-road-markup":{"doc":"Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."}},"default":"ground","transition":false,"expression":{"interpolated":false},"property-type":"data-constant","sdk-support":{"basic functionality":{"js":"3.17.0","android":"11.10.0","ios":"11.10.0"}}},"model-ignore-line-cutout":{"type":"boolean","doc":"When set to true, the layer is not going to be affected by the line cutout effect.","default":false,"transition":false,"expression":{"interpolated":false},"property-type":"data-constant","experimental":true,"private":true,"sdk-support":{"basic functionality":{"android":"11.21.0","ios":"11.21.0"}}}},"transition":{"duration":{"type":"number","default":300,"minimum":0,"units":"milliseconds","doc":"Time allotted for transitions to complete."},"delay":{"type":"number","default":0,"minimum":0,"units":"milliseconds","doc":"Length of time before a transition begins."}},"property-type":{"data-driven":{"type":"property-type","doc":"Property is interpolable and can be represented using a property expression."},"color-ramp":{"type":"property-type","doc":"Property should be specified using a color ramp from which the output color can be sampled based on a property calculation."},"data-constant":{"type":"property-type","doc":"Property is interpolable but cannot be represented using a property expression."},"constant":{"type":"property-type","doc":"Property is constant across all zoom levels and property values."}},"promoteId":{"*":{"type":"*","doc":"A feature property name to use as the ID, or an expression to evaluate as the ID for feature state. The expression can only be feature dependent if it is used."}},"$doc":{"transition":{"type":"transition","doc":"Controls how a property transitions to a new value. Overrides the style\'s root `transition` for this property."},"use-theme":{"type":"enum","doc":"Controls whether the associated color property is affected by the global color theme. When set to \\"none\\", the color theme is ignored for this property. When set to \\"default\\", the color theme is applied.","values":{"default":{"doc":"The color theme is applied to this property (default behavior)."},"none":{"doc":"The color theme is ignored for this property."}},"default":"default"}}}');function jde(e){"@babel/helpers - typeof";return(jde="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Mde(e,t){for(var r=0;r1&&void 0!==arguments[1])||arguments[1],s=o().CRS.get(t);return s||(s=new(o().CRS)(t,r,n,i||n[2]>180?"meter":"degree"),a&&o().CRS.set(s)),this.proj4&&!this.builtInEPSG.includes(t)&&this.proj4.defs(t,s.getWKT()),s}}])&&Gde(e.prototype,t),r&&Gde(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,r}();function qde(e){"@babel/helpers - typeof";return(qde="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Vde(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Kde(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,r=Array.isArray(e)&&e.filter(function(e){return e.metaData.tileType===t.tileType||ame(e.metaData.prjCoordSys)===ame(t.prjCoordSys)});return r&&r[0]&&r[0].metaData}function lme(e,t){var r=e.scale,n=e.dpi,o=e.coordUnit,i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:22,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:512,n=[],o=e.left,i=e.right;Array.isArray(e)&&(o=e[0],i=e[2]);for(var a=Math.abs(o-i)/r,s=0;sMath.abs(e-t[o])&&(r=Math.abs(e-t[o]),n=o);return n}(vf(r,n,o),i)}function cme(e){"@babel/helpers - typeof";return(cme="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function fme(){fme=function(){return t};var e,t={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(e,t,r){e[t]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",s=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,r){return e[t]=r}}function c(e,t,r,n){var i=t&&t.prototype instanceof v?t:v,a=Object.create(i.prototype),s=new P(n||[]);return o(a,"_invoke",{value:_(e,r,s)}),a}function f(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=c;var p="suspendedStart",h="suspendedYield",y="executing",d="completed",m={};function v(){}function g(){}function b(){}var A={};l(A,a,function(){return this});var w=Object.getPrototypeOf,S=w&&w(w(T([])));S&&S!==r&&n.call(S,a)&&(A=S);var C=b.prototype=v.prototype=Object.create(A);function E(e){["next","throw","return"].forEach(function(t){l(e,t,function(e){return this._invoke(t,e)})})}function x(e,t){function r(o,i,a,s){var u=f(e[o],e,i);if("throw"!==u.type){var l=u.arg,c=l.value;return c&&"object"==cme(c)&&n.call(c,"__await")?t.resolve(c.__await).then(function(e){r("next",e,a,s)},function(e){r("throw",e,a,s)}):t.resolve(c).then(function(e){l.value=e,a(l)},function(e){return r("throw",e,a,s)})}s(u.arg)}var i;o(this,"_invoke",{value:function(e,n){function o(){return new t(function(t,o){r(e,n,t,o)})}return i=i?i.then(o,o):o()}})}function _(t,r,n){var o=p;return function(i,a){if(o===y)throw Error("Generator is already running");if(o===d){if("throw"===i)throw a;return{value:e,done:!0}}for(n.method=i,n.arg=a;;){var s=n.delegate;if(s){var u=I(s,n);if(u){if(u===m)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=d,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=y;var l=f(t,r,n);if("normal"===l.type){if(o=n.done?d:h,l.arg===m)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(o=d,n.method="throw",n.arg=l.arg)}}}function I(t,r){var n=r.method,o=t.iterator[n];if(o===e)return r.delegate=null,"throw"===n&&t.iterator.return&&(r.method="return",r.arg=e,I(t,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a '"+n+"' method")),m;var i=f(o,t.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,m;var a=i.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function k(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function P(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function T(t){if(t||""===t){var r=t[a];if(r)return r.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var o=-1,i=function r(){for(;++o=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function pme(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function hme(e){for(var t=1;t=1&&(this.beforeLayerId=e.getStyle().layers[0].id),e.addLayer({id:this.id,type:"raster",source:this.id},this.beforeLayerId),this.map.fitBounds([t[1],t[3]]),this._afterAddVideoLayer()}}},{key:"_afterAddVideoLayer",value:function(){this.autoplay&&this.map.getSource(this.id).play(),this._bindTimeUpdates(),this.fire("loaded",{originCoordsRightBottom:this.originCoordsRightBottom,originCoordsLeftTop:this.originCoordsLeftTop,videoWidth:this.videoWidth,videoHeight:this.videoHeight})}},{key:"_bindTimeUpdates",value:function(){var e=this,t=this.video.tech&&this.video.tech().el();if(t)if(this._statsStartTime=performance.now(),this._statsFrameCount=0,this._statsLastMediaTime=0,t.requestVideoFrameCallback){var r=function(n,o){e._statsFrameCount++,e._statsLastMediaTime=o.mediaTime,e.fire("timeupdate",{time:o.mediaTime}),e._statsFrameCount%30==0&&e._fireVideoStats(t,o.mediaTime),e.frameCallbackId=t.requestVideoFrameCallback(r)};this.frameCallbackId=t.requestVideoFrameCallback(r)}else this.timeUpdateHandler=function(){e._statsFrameCount++,e._statsLastMediaTime=e.video.currentTime(),e.fire("timeupdate",{time:e.video.currentTime()}),e._statsFrameCount%30==0&&e._fireVideoStats(t,e._statsLastMediaTime)},this.video.on("timeupdate",this.timeUpdateHandler)}},{key:"_fireVideoStats",value:function(e,t){var r=(performance.now()-this._statsStartTime)/1e3,n=e.getVideoPlaybackQuality?e.getVideoPlaybackQuality():null;this.fire("videostats",{mediaTime:t,decodedFrames:n?n.totalVideoFrames:e.webkitDecodedFrameCount,droppedFrames:n?n.droppedVideoFrames:e.webkitDroppedFrameCount,measuredFps:r?this._statsFrameCount/r:0,videoWidth:this.videoWidth,videoHeight:this.videoHeight,duration:this.video.duration()})}},{key:"_calcCoords",value:function(e){var t=this,r=e.width,n=e.height,o=e.videoHeight,i=e.videoWidth||this.videoWidth,a=o||this.videoHeight,s=i/r,u=a/n,l=Math.min(s,u),c=r/2,f=n/2,p=i/l/2,h=a/l/2,y=[[c-p,f-h],[c+p,f-h],[c+p,f+h],[c-p,f+h]].map(function(e){return t.map.unproject(e)});return this.originCoordsLeftTop=y[0],this.originCoordsRightBottom=y[2],y}},{key:"play",value:function(){this.video.play()}},{key:"pause",value:function(){this.video.pause()}},{key:"remove",value:function(){if(this.id){var e=this.video&&this.video.tech&&this.video.tech().el();e&&this.frameCallbackId&&e.cancelVideoFrameCallback&&e.cancelVideoFrameCallback(this.frameCallbackId),this.timeUpdateHandler&&this.video.off("timeupdate",this.timeUpdateHandler),this.map.removeLayer(this.id),this.map.removeSource(this.id),document.body.removeChild(document.getElementById(this.id))}}}])&&Eme(r.prototype,n),i&&Eme(r,i),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,n,i}();function Pme(e){return function(e){if(Array.isArray(e))return Tme(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return Tme(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Tme(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Tme(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);re.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),l=n.call(a,"finallyLoc");if(u&&l){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),k(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;k(r)}return o}}throw Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:T(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}function Hme(e,t,r,n,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,o)}function qme(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Vme(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},r=new ome(ZQ,e,t);return r.getMapInfo((n=mme(fme().mark(function n(i,a,s){var u,l,c,f,p,h;return fme().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,"processCompleted"!==i.type){n.next=15;break}if(u=i.result,l=u.dynamicProjection,c=u.prjCoordSys,f=c.epsgCode,!ime(c.type)){n.next=6;break}return s(new Error("mapbox-gl cannot support plane coordinate system.")),n.abrupt("return");case 6:if(3857===f||l||o().CRS){n.next=9;break}return s(new Error("The EPSG code ".concat(f," needs to include mapbox-gl-enhance.js. Refer to the example: https://iclient.supermap.io/examples/mapboxgl/editor.html#mvtVectorTile_2362"))),n.abrupt("return");case 9:return n.next=11,wme(e,i.result,hme(hme({},t),{},{initMapService:r}));case 11:return p=n.sent,(h=new(o().Map)(p)).loaded()?a({map:h}):h.on("load",function(){a({map:h})}),n.abrupt("return");case 15:s(new Error("Fetch mapService is failed.")),n.next=21;break;case 18:n.prev=18,n.t0=n.catch(0),s(n.t0);case 21:case"end":return n.stop()}},n,null,[[0,18]])})),function(e,t,r){return n.apply(this,arguments)}));var n},o().supermap.Graphic=kO,o().supermap.map.getDefaultVectorTileStyle=function(e,t){t=t||{};var r={};r.version=t.version||8,r.layers=t.layers||[],r.light=t.light||{anchor:"viewport",color:"#fcf6ef",intensity:.5,position:[1.15,201,20]};var n={version:r.version,sources:{"vector-tiles":{type:"vector",tiles:[e]}},layers:r.layers,light:r.light};return null!=t.sprite&&(n.sprite=t.sprite),null!=t.glyphs&&(n.glyphs=t.glyphs),n},o().supermap.map.setBackground=function(e,t){t&&e&&e.addLayer({id:"background",type:"background",paint:{"background-color":t}},"background")},o().supermap.map.setPaintProperty=function(e,t,r,n,o,i){if(t&&e){"[object Array]"!==Object.prototype.toString.call(t)&&(t=[t]);for(var a=0;ac;)if((l=s[c++])!=l)return!0}else for(;u>c;c++)if((e||c in s)&&s[c]===r)return e||c||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},4538:function(e,t,r){"use strict";var n=r(398),o=n({}.toString),i=n("".slice);e.exports=function(e){return i(o(e),8,-1)}},578:function(e,t,r){"use strict";var n=r(2791),o=r(7197),i=r(1805),a=r(1807);e.exports=function(e,t,r){for(var s=o(t),u=a.f,l=i.f,c=0;c0&&n[0]<4?1:+(n[0]+n[1])),!o&&a&&(!(n=a.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\/(\d+)/))&&(o=+n[1]),e.exports=o},1009:function(e){"use strict";e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},3768:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(1697),i=r(1805).f,a=r(5233),s=r(5414),u=r(6507),l=r(578),c=r(3670);e.exports=function(e,t){var r,f,p,h,y,d=e.target,m=e.global,v=e.stat;if(r=m?o:v?o[d]||u(d,{}):o[d]&&o[d].prototype)for(f in t){if(h=t[f],p=e.dontCallGetSet?(y=i(r,f))&&y.value:r[f],!c(m?f:d+(v?".":"#")+f,e.forced)&&void 0!==p){if(n(h)==n(p))continue;l(h,p)}(e.sham||p&&p.sham)&&a(h,"sham",!0),s(r,f,h,e)}}},4877:function(e){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},8574:function(e,t,r){"use strict";var n=r(4877);e.exports=!n(function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})},9707:function(e,t,r){"use strict";var n=r(8574),o=Function.prototype.call;e.exports=n?o.bind(o):function(){return o.apply(o,arguments)}},2756:function(e,t,r){"use strict";var n=r(9234),o=r(2791),i=Function.prototype,a=n&&Object.getOwnPropertyDescriptor,s=o(i,"name"),u=s&&"something"===function(){}.name,l=s&&(!n||n&&a(i,"name").configurable);e.exports={EXISTS:s,PROPER:u,CONFIGURABLE:l}},398:function(e,t,r){"use strict";var n=r(8574),o=Function.prototype,i=o.call,a=n&&o.bind.bind(i,i);e.exports=n?a:function(e){return function(){return i.apply(e,arguments)}}},5189:function(e,t,r){"use strict";var n=r(1697),o=r(2631);e.exports=function(e,t){return arguments.length<2?(r=n[e],o(r)?r:void 0):n[e]&&n[e][t];var r}},2968:function(e,t,r){"use strict";var n=r(7644),o=r(155);e.exports=function(e,t){var r=e[t];return o(r)?void 0:n(r)}},1697:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=function(e){return e&&e.Math===Math&&e};e.exports=o("object"==("undefined"==typeof globalThis?"undefined":n(globalThis))&&globalThis)||o("object"==("undefined"==typeof window?"undefined":n(window))&&window)||o("object"==("undefined"==typeof self?"undefined":n(self))&&self)||o("object"==(void 0===r.g?"undefined":n(r.g))&&r.g)||o("object"==n(this)&&this)||function(){return this}()||Function("return this")()},2791:function(e,t,r){"use strict";var n=r(398),o=r(6079),i=n({}.hasOwnProperty);e.exports=Object.hasOwn||function(e,t){return i(o(e),t)}},8551:function(e){"use strict";e.exports={}},107:function(e,t,r){"use strict";var n=r(9234),o=r(4877),i=r(2533);e.exports=!n&&!o(function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},9213:function(e,t,r){"use strict";var n=r(398),o=r(4877),i=r(4538),a=Object,s=n("".split);e.exports=o(function(){return!a("z").propertyIsEnumerable(0)})?function(e){return"String"===i(e)?s(e,""):a(e)}:a},3128:function(e,t,r){"use strict";var n=r(398),o=r(2631),i=r(4243),a=n(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},7863:function(e,t,r){"use strict";var n,o,i,a=r(5032),s=r(1697),u=r(6220),l=r(5233),c=r(2791),f=r(4243),p=r(109),h=r(8551),y=s.TypeError,d=s.WeakMap;if(a||f.state){var m=f.state||(f.state=new d);m.get=m.get,m.has=m.has,m.set=m.set,n=function(e,t){if(m.has(e))throw new y("Object already initialized");return t.facade=e,m.set(e,t),t},o=function(e){return m.get(e)||{}},i=function(e){return m.has(e)}}else{var v=p("state");h[v]=!0,n=function(e,t){if(c(e,v))throw new y("Object already initialized");return t.facade=e,l(e,v,t),t},o=function(e){return c(e,v)?e[v]:{}},i=function(e){return c(e,v)}}e.exports={set:n,get:o,has:i,enforce:function(e){return i(e)?o(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!u(t)||(r=o(t)).type!==e)throw new y("Incompatible receiver, "+e+" required");return r}}}},2631:function(e){"use strict";function t(e){"@babel/helpers - typeof";return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var r="object"==("undefined"==typeof document?"undefined":t(document))&&document.all;e.exports=void 0===r&&void 0!==r?function(e){return"function"==typeof e||e===r}:function(e){return"function"==typeof e}},3670:function(e,t,r){"use strict";var n=r(4877),o=r(2631),i=/#|\.prototype\./,a=function(e,t){var r=u[s(e)];return r===c||r!==l&&(o(t)?n(t):!!t)},s=a.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=a.data={},l=a.NATIVE="N",c=a.POLYFILL="P";e.exports=a},155:function(e){"use strict";e.exports=function(e){return null===e||void 0===e}},6220:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(2631);e.exports=function(e){return"object"==n(e)?null!==e:o(e)}},497:function(e){"use strict";e.exports=!1},3443:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(5189),i=r(2631),a=r(7123),s=r(5970),u=Object;e.exports=s?function(e){return"symbol"==n(e)}:function(e){var t=o("Symbol");return i(t)&&a(t.prototype,u(e))}},428:function(e,t,r){"use strict";var n=r(9800);e.exports=function(e){return n(e.length)}},7773:function(e,t,r){"use strict";var n=r(398),o=r(4877),i=r(2631),a=r(2791),s=r(9234),u=r(2756).CONFIGURABLE,l=r(3128),c=r(7863),f=c.enforce,p=c.get,h=String,y=Object.defineProperty,d=n("".slice),m=n("".replace),v=n([].join),g=s&&!o(function(){return 8!==y(function(){},"length",{value:8}).length}),b=String(String).split("String"),A=e.exports=function(e,t,r){"Symbol("===d(h(t),0,7)&&(t="["+m(h(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!a(e,"name")||u&&e.name!==t)&&(s?y(e,"name",{value:t,configurable:!0}):e.name=t),g&&r&&a(r,"arity")&&e.length!==r.arity&&y(e,"length",{value:r.arity});try{r&&a(r,"constructor")&&r.constructor?s&&y(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=f(e);return a(n,"source")||(n.source=v(b,"string"==typeof t?t:"")),e};Function.prototype.toString=A(function(){return i(this)&&p(this).source||l(this)},"toString")},7443:function(e){"use strict";var t=Math.ceil,r=Math.floor;e.exports=Math.trunc||function(e){var n=+e;return(n>0?r:t)(n)}},6355:function(e,t,r){"use strict";var n=r(9234),o=r(398),i=r(9707),a=r(4877),s=r(3334),u=r(791),l=r(15),c=r(6079),f=r(9213),p=Object.assign,h=Object.defineProperty,y=o([].concat);e.exports=!p||a(function(){if(n&&1!==p({b:1},p(h({},"a",{enumerable:!0,get:function(){h(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol("assign detection");return e[r]=7,"abcdefghijklmnopqrst".split("").forEach(function(e){t[e]=e}),7!==p({},e)[r]||"abcdefghijklmnopqrst"!==s(p({},t)).join("")})?function(e,t){for(var r=c(e),o=arguments.length,a=1,p=u.f,h=l.f;o>a;)for(var d,m=f(arguments[a++]),v=p?y(s(m),p(m)):s(m),g=v.length,b=0;g>b;)d=v[b++],n&&!i(h,m,d)||(r[d]=m[d]);return r}:p},1807:function(e,t,r){"use strict";var n=r(9234),o=r(107),i=r(4796),a=r(9809),s=r(6779),u=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor;t.f=n?i?function(e,t,r){if(a(e),t=s(t),a(r),"function"==typeof e&&"prototype"===t&&"value"in r&&"writable"in r&&!r.writable){var n=c(e,t);n&&n.writable&&(e[t]=r.value,r={configurable:"configurable"in r?r.configurable:n.configurable,enumerable:"enumerable"in r?r.enumerable:n.enumerable,writable:!1})}return l(e,t,r)}:l:function(e,t,r){if(a(e),t=s(t),a(r),o)try{return l(e,t,r)}catch(e){}if("get"in r||"set"in r)throw new u("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},1805:function(e,t,r){"use strict";var n=r(9234),o=r(9707),i=r(15),a=r(1718),s=r(1059),u=r(6779),l=r(2791),c=r(107),f=Object.getOwnPropertyDescriptor;t.f=n?f:function(e,t){if(e=s(e),t=u(t),c)try{return f(e,t)}catch(e){}if(l(e,t))return a(!o(i.f,e,t),e[t])}},3602:function(e,t,r){"use strict";var n=r(7386),o=r(1009).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,o)}},791:function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},7123:function(e,t,r){"use strict";var n=r(398);e.exports=n({}.isPrototypeOf)},7386:function(e,t,r){"use strict";var n=r(398),o=r(2791),i=r(1059),a=r(7943).indexOf,s=r(8551),u=n([].push);e.exports=function(e,t){var r,n=i(e),l=0,c=[];for(r in n)!o(s,r)&&o(n,r)&&u(c,r);for(;t.length>l;)o(n,r=t[l++])&&(~a(c,r)||u(c,r));return c}},3334:function(e,t,r){"use strict";var n=r(7386),o=r(1009);e.exports=Object.keys||function(e){return n(e,o)}},15:function(e,t){"use strict";var r={}.propertyIsEnumerable,n=Object.getOwnPropertyDescriptor,o=n&&!r.call({1:2},1);t.f=o?function(e){var t=n(this,e);return!!t&&t.enumerable}:r},5720:function(e,t,r){"use strict";var n=r(9707),o=r(2631),i=r(6220),a=TypeError;e.exports=function(e,t){var r,s;if("string"===t&&o(r=e.toString)&&!i(s=n(r,e)))return s;if(o(r=e.valueOf)&&!i(s=n(r,e)))return s;if("string"!==t&&o(r=e.toString)&&!i(s=n(r,e)))return s;throw new a("Can't convert object to primitive value")}},7197:function(e,t,r){"use strict";var n=r(5189),o=r(398),i=r(3602),a=r(791),s=r(9809),u=o([].concat);e.exports=n("Reflect","ownKeys")||function(e){var t=i.f(s(e)),r=a.f;return r?u(t,r(e)):t}},5329:function(e,t,r){"use strict";var n=r(1697);e.exports=n},1308:function(e,t,r){"use strict";var n=r(155),o=TypeError;e.exports=function(e){if(n(e))throw new o("Can't call method on "+e);return e}},109:function(e,t,r){"use strict";var n=r(4499),o=r(606),i=n("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},4243:function(e,t,r){"use strict";var n=r(497),o=r(1697),i=r(6507),a=e.exports=o["__core-js_shared__"]||i("__core-js_shared__",{});(a.versions||(a.versions=[])).push({version:"3.37.1",mode:n?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.37.1/LICENSE",source:"https://github.com/zloirock/core-js"})},4499:function(e,t,r){"use strict";var n=r(4243);e.exports=function(e,t){return n[e]||(n[e]=t||{})}},7161:function(e,t,r){"use strict";var n=r(5950),o=r(4877),i=r(1697).String;e.exports=!!Object.getOwnPropertySymbols&&!o(function(){var e=Symbol("symbol detection");return!i(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&n&&n<41})},7636:function(e,t,r){"use strict";var n=r(7105),o=Math.max,i=Math.min;e.exports=function(e,t){var r=n(e);return r<0?o(r+t,0):i(r,t)}},1059:function(e,t,r){"use strict";var n=r(9213),o=r(1308);e.exports=function(e){return n(o(e))}},7105:function(e,t,r){"use strict";var n=r(7443);e.exports=function(e){var t=+e;return t!=t||0===t?0:n(t)}},9800:function(e,t,r){"use strict";var n=r(7105),o=Math.min;e.exports=function(e){var t=n(e);return t>0?o(t,9007199254740991):0}},6079:function(e,t,r){"use strict";var n=r(1308),o=Object;e.exports=function(e){return o(n(e))}},8167:function(e,t,r){"use strict";var n=r(9707),o=r(6220),i=r(3443),a=r(2968),s=r(5720),u=r(7709),l=TypeError,c=u("toPrimitive");e.exports=function(e,t){if(!o(e)||i(e))return e;var r,u=a(e,c);if(u){if(void 0===t&&(t="default"),r=n(u,e,t),!o(r)||i(r))return r;throw new l("Can't convert object to primitive value")}return void 0===t&&(t="number"),s(e,t)}},6779:function(e,t,r){"use strict";var n=r(8167),o=r(3443);e.exports=function(e){var t=n(e,"string");return o(t)?t:t+""}},4861:function(e){"use strict";var t=String;e.exports=function(e){try{return t(e)}catch(e){return"Object"}}},606:function(e,t,r){"use strict";var n=r(398),o=0,i=Math.random(),a=n(1..toString);e.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+a(++o+i,36)}},5970:function(e,t,r){"use strict";function n(e){"@babel/helpers - typeof";return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o=r(7161);e.exports=o&&!Symbol.sham&&"symbol"==n(Symbol.iterator)},4796:function(e,t,r){"use strict";var n=r(9234),o=r(4877);e.exports=n&&o(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},5032:function(e,t,r){"use strict";var n=r(1697),o=r(2631),i=n.WeakMap;e.exports=o(i)&&/native code/.test(String(i))},2461:function(e,t,r){"use strict";var n=r(5329),o=r(2791),i=r(9385),a=r(1807).f;e.exports=function(e){var t=n.Symbol||(n.Symbol={});o(t,e)||a(t,e,{value:i.f(e)})}},9385:function(e,t,r){"use strict";var n=r(7709);t.f=n},7709:function(e,t,r){"use strict";var n=r(1697),o=r(4499),i=r(2791),a=r(606),s=r(7161),u=r(5970),l=n.Symbol,c=o("wks"),f=u?l.for||l:l&&l.withoutSetter||a;e.exports=function(e){return i(c,e)||(c[e]=s&&i(l,e)?l[e]:f("Symbol."+e)),c[e]}},7851:function(e,t,r){"use strict";var n=r(3768),o=r(6355);n({target:"Object",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},494:function(e,t,r){"use strict";r(2461)("asyncIterator")},3712:function(e,t,r){"use strict";var n=r(9435);e.exports=n},6433:function(e,t,r){"use strict";var n=r(8142);e.exports=n}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.loaded=!0,i.exports}r.amdO={},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},r(9784),r(961),r(8099);r(4539)}(); \ No newline at end of file diff --git a/examples/locales/en-US/resources.js b/examples/locales/en-US/resources.js index c8036efd31..86d4a1804e 100644 --- a/examples/locales/en-US/resources.js +++ b/examples/locales/en-US/resources.js @@ -738,7 +738,30 @@ window.examplesResources = { "title_dataAttributes": "Attributes", "title_chartService": "Chart", "title_videoLayer":"Video Layer", + "title_videoLayerWithTime":"Video Layer with Time Parameters", "title_videoMap":"Video Map", + "title_videoMapDraw":"Video Map Draw Compare", + "title_videoMapWithTime":"Dynamic Video Map", + "title_videoMapWithTimeDraw":"Dynamic Video Map Draw Compare", + "title_videoMapWithTime_qingdao":"Dynamic Video Map - Qingdao", + "title_videoMapWithTime_huainan":"Dynamic Video Map - Huainan", + "title_videoMapWithTime_huainanDraw":"Dynamic Video Map Draw Compare - Huainan", + "text_videoLayerWithTime_play":"Play", + "text_videoLayerWithTime_pause":"Pause", + "text_videoLayerWithTime_paused":"Paused", + "text_videoLayerWithTime_playing":"Playing", + "text_videoMapDraw_videoLabel":"Video Map", + "text_videoMapDraw_basemapLabel":"Tianditu Imagery", + "text_videoMapDraw_hint":"Video features are overlaid on the right map. Lines and polygons drawn on the right show their length or area.", + "text_videoMapDraw_syncHint":"Video features are overlaid on the right map. Drawings on the right are synced to the video and show their length or area.", + "text_videoMapDraw_drawnCount":"{count} feature(s) drawn.", + "text_videoMapDraw_length":"Length", + "text_videoMapDraw_area":"Area", + "text_huainanDraw_videoMapLabel":"Dynamic Video Map", + "text_huainanDraw_realMapLabel":"Tianditu Imagery", + "text_huainanDraw_hint":"Draw on either map; edits sync in real time. Lines show length and polygons show area.", + "text_huainanDraw_length":"Length", + "text_huainanDraw_area":"Area", "title_uavVideo":"Uav Video", "title_knowledgeGraphMap": "KnowledgeGraph", "title_l7_grid_map": "Grid Map", diff --git a/examples/locales/zh-CN/resources.js b/examples/locales/zh-CN/resources.js index 28dd1387c7..4b28ba898a 100644 --- a/examples/locales/zh-CN/resources.js +++ b/examples/locales/zh-CN/resources.js @@ -713,7 +713,30 @@ window.examplesResources = { "text_selectStartNode": "捕捉开始节点", "text_selectEndNode": "捕捉结束节点", "title_videoLayer":"视频图层", + "title_videoLayerWithTime":"带时间参数的视频图层", "title_videoMap":"视频地图", + "title_videoMapDraw":"视频地图标绘对比", + "title_videoMapWithTime":"动态视频地图", + "title_videoMapWithTimeDraw":"动态视频地图标绘对比", + "title_videoMapWithTime_qingdao":"动态视频地图 - 青岛", + "title_videoMapWithTime_huainan":"动态视频地图 - 淮南", + "title_videoMapWithTime_huainanDraw":"动态视频地图标绘对比 - 淮南", + "text_videoLayerWithTime_play":"播放", + "text_videoLayerWithTime_pause":"暂停", + "text_videoLayerWithTime_paused":"已暂停", + "text_videoLayerWithTime_playing":"播放中", + "text_videoMapDraw_videoLabel":"视频地图", + "text_videoMapDraw_basemapLabel":"天地图影像", + "text_videoMapDraw_hint":"左侧视频要素实时叠加到右侧;右侧绘制的线和面会显示长度或面积。", + "text_videoMapDraw_syncHint":"左侧视频要素实时叠加到右侧;右侧绘制同步显示在左侧视频,并显示长度或面积。", + "text_videoMapDraw_drawnCount":"已绘制 {count} 个要素。", + "text_videoMapDraw_length":"长度", + "text_videoMapDraw_area":"面积", + "text_huainanDraw_videoMapLabel":"动态视频地图", + "text_huainanDraw_realMapLabel":"天地图影像", + "text_huainanDraw_hint":"两侧均可绘制,完成后实时同步;线显示长度,面显示面积。", + "text_huainanDraw_length":"长度", + "text_huainanDraw_area":"面积", "title_uavVideo":"无人机视频", "title_knowledgeGraphMap": "知识图谱", "title_l7_grid_map": "网格地图", diff --git a/examples/mapboxgl/config.js b/examples/mapboxgl/config.js index bb4c642b2d..4c34226ac8 100644 --- a/examples/mapboxgl/config.js +++ b/examples/mapboxgl/config.js @@ -1876,12 +1876,47 @@ var exampleConfig = { thumbnail: 'videoMap.png', fileName: 'videoMap' }, + // { + // name: '视频地图标绘对比', + // name_en: 'Video Map Draw Compare', + // version: '12.1.1', + // thumbnail: 'videoMap.png', + // fileName: 'videoMapDraw' + // }, { name: '无人机视频', name_en: 'UAV video', version: '11.2.0', thumbnail: 'videoLayerWithTime.png', fileName: 'videoLayerWithTime' + }, + { + name: '动态视频地图', + name_en: 'Dynamic Video Map', + version: '12.1.1', + thumbnail: 'videoMapWithTime.png', + fileName: 'videoMapWithTime' + }, + { + name: '动态视频地图标绘对比', + name_en: 'Dynamic Video Map Draw Compare', + version: '12.1.1', + thumbnail: 'videoMapWithTimeDraw.png', + fileName: 'videoMapWithTimeDraw' + }, + { + name: '动态视频地图 - 淮南', + name_en: 'Dynamic Video Map - Huainan', + version: '12.1.1', + thumbnail: 'videoMap_huainan.png', + fileName: 'videoMapWithTime_huainan' + }, + { + name: '动态视频地图标绘对比 - 淮南', + name_en: 'Dynamic Video Map Draw Compare - Huainan', + version: '12.1.1', + thumbnail: 'videoMap_huainan_draw.png', + fileName: 'videoMapWithTime_huainanDraw' } ] } diff --git a/examples/mapboxgl/img/videoMapWithTime.png b/examples/mapboxgl/img/videoMapWithTime.png new file mode 100644 index 0000000000..a1a73c4cbd Binary files /dev/null and b/examples/mapboxgl/img/videoMapWithTime.png differ diff --git a/examples/mapboxgl/img/videoMapWithTimeDraw.png b/examples/mapboxgl/img/videoMapWithTimeDraw.png new file mode 100644 index 0000000000..aec59cc586 Binary files /dev/null and b/examples/mapboxgl/img/videoMapWithTimeDraw.png differ diff --git a/examples/mapboxgl/img/videoMap_huainan.png b/examples/mapboxgl/img/videoMap_huainan.png new file mode 100644 index 0000000000..4c5b7edbd9 Binary files /dev/null and b/examples/mapboxgl/img/videoMap_huainan.png differ diff --git a/examples/mapboxgl/img/videoMap_huainan_draw.png b/examples/mapboxgl/img/videoMap_huainan_draw.png new file mode 100644 index 0000000000..7372aeb651 Binary files /dev/null and b/examples/mapboxgl/img/videoMap_huainan_draw.png differ diff --git a/examples/mapboxgl/videoLayerWithTime.html b/examples/mapboxgl/videoLayerWithTime.html index eddfa205a8..123063bae4 100644 --- a/examples/mapboxgl/videoLayerWithTime.html +++ b/examples/mapboxgl/videoLayerWithTime.html @@ -14,7 +14,7 @@ - + @@ -215,6 +237,42 @@ }); videoMap.on('load', function () { + var playControl = new mapboxgl.supermap.VideoPlayControl(); + playControl.setHTML( + '' + ); + videoMap.addControl(playControl, 'bottom-left'); + + videoMap.on('click', function (event) { + var features = videoMap.queryRenderedFeatures(event.point); + if (!features.length) { + return; + } + var feature = features[0]; + var content = document.createElement('div'); + Object.keys(feature.properties || {}).forEach(function (key) { + var row = document.createElement('div'); + var label = document.createElement('strong'); + label.textContent = key + ': '; + var value = document.createElement('span'); + value.textContent = String(feature.properties[key]); + row.appendChild(label); + row.appendChild(value); + content.appendChild(row); + }); + new mapboxgl.Popup({ closeButton: true, closeOnClick: true }) + .setLngLat(event.lngLat) + .setDOMContent(content) + .addTo(videoMap); + }); + var datasetList = ['POI', 'Road_L', 'Water', '写字楼', '学校', '步行道']; datasetList.forEach((name) => { query1(name); diff --git a/examples/mapboxgl/videoMapDraw.html b/examples/mapboxgl/videoMapDraw.html new file mode 100644 index 0000000000..d8ee382dda --- /dev/null +++ b/examples/mapboxgl/videoMapDraw.html @@ -0,0 +1,534 @@ + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + diff --git a/examples/mapboxgl/videoMapWithTime.html b/examples/mapboxgl/videoMapWithTime.html new file mode 100644 index 0000000000..ac75b99d3e --- /dev/null +++ b/examples/mapboxgl/videoMapWithTime.html @@ -0,0 +1,124 @@ + + + + + + + + + +
    + + + + + diff --git a/examples/mapboxgl/videoMapWithTimeDraw.html b/examples/mapboxgl/videoMapWithTimeDraw.html new file mode 100644 index 0000000000..fa8e08f64a --- /dev/null +++ b/examples/mapboxgl/videoMapWithTimeDraw.html @@ -0,0 +1,587 @@ + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + diff --git a/examples/mapboxgl/videoMapWithTime_huainan.html b/examples/mapboxgl/videoMapWithTime_huainan.html new file mode 100644 index 0000000000..95f49cf30c --- /dev/null +++ b/examples/mapboxgl/videoMapWithTime_huainan.html @@ -0,0 +1,167 @@ + + + + + + + + + +
    + + + + + diff --git a/examples/mapboxgl/videoMapWithTime_huainanDraw.html b/examples/mapboxgl/videoMapWithTime_huainanDraw.html new file mode 100644 index 0000000000..056399deea --- /dev/null +++ b/examples/mapboxgl/videoMapWithTime_huainanDraw.html @@ -0,0 +1,650 @@ + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/examples/mapboxgl/videoMapWithTime_qingdao.html b/examples/mapboxgl/videoMapWithTime_qingdao.html new file mode 100644 index 0000000000..a0aa991664 --- /dev/null +++ b/examples/mapboxgl/videoMapWithTime_qingdao.html @@ -0,0 +1,152 @@ + + + + + + + + + +
    + + + + + diff --git a/src/common/lang/locales/en-US.js b/src/common/lang/locales/en-US.js index 313868d9cd..c2175ced51 100644 --- a/src/common/lang/locales/en-US.js +++ b/src/common/lang/locales/en-US.js @@ -15,6 +15,20 @@ let en = { 'title_dataServiceQuery': 'Data Service Query', 'title_searchCity':'Search city', 'title_searchLayer':' Search layer', + 'text_videoMapDrawPoint': 'Draw point', + 'text_videoMapDrawLine': 'Draw line', + 'text_videoMapDrawPolygon': 'Draw polygon', + 'text_videoMapDeleteSelectedFeature': 'Delete selected feature', + 'text_videoMapPlay': 'Play', + 'text_videoMapPause': 'Pause', + 'text_videoMapMeasurementStart': 'Start', + 'text_videoMapMeasurementTotalDistance': 'Total distance: ', + 'text_videoMapMeasurementArea': 'Area: ', + 'text_videoMapUnitMeter': ' m', + 'text_videoMapUnitKilometer': ' km', + 'text_videoMapUnitSquareMeter': ' m²', + 'text_videoMapUnitSquareKilometer': ' km²', + 'msg_videoMapTimeRangeMissing': '[VideoMap] Time range not found, time=', 'text_input_value_inputDataFlowUrl': 'Please enter the data stream service address such as: ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe', 'text_displayFeaturesInfo': 'Display feature information', diff --git a/src/common/lang/locales/zh-CN.js b/src/common/lang/locales/zh-CN.js index d5ba174ce7..805fec673a 100644 --- a/src/common/lang/locales/zh-CN.js +++ b/src/common/lang/locales/zh-CN.js @@ -15,6 +15,20 @@ let zh = { 'title_dataServiceQuery': '数据服务查询', 'title_searchCity':'搜索城市', 'title_searchLayer':'搜索图层', + 'text_videoMapDrawPoint': '绘制点', + 'text_videoMapDrawLine': '绘制线', + 'text_videoMapDrawPolygon': '绘制面', + 'text_videoMapDeleteSelectedFeature': '删除选中要素', + 'text_videoMapPlay': '播放', + 'text_videoMapPause': '暂停', + 'text_videoMapMeasurementStart': '起点', + 'text_videoMapMeasurementTotalDistance': '总距离:', + 'text_videoMapMeasurementArea': '面积:', + 'text_videoMapUnitMeter': '米', + 'text_videoMapUnitKilometer': '千米', + 'text_videoMapUnitSquareMeter': '平方米', + 'text_videoMapUnitSquareKilometer': '平方千米', + 'msg_videoMapTimeRangeMissing': '[VideoMap] 未找到时间范围,time=', 'text_input_value_inputDataFlowUrl': '请输入数据流服务地址如:ws://{serviceRoot}/{dataFlowName}/dataflow/subscribe', 'text_displayFeaturesInfo': '显示要素信息', diff --git a/src/mapboxgl/control/VideoMapDrawControl.js b/src/mapboxgl/control/VideoMapDrawControl.js new file mode 100644 index 0000000000..dd9baa2059 --- /dev/null +++ b/src/mapboxgl/control/VideoMapDrawControl.js @@ -0,0 +1,261 @@ +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ +import '../core/Base'; +import { Lang } from '../../common/lang/Lang'; +import { + MODE_SIMPLE_SELECT, + MODE_DRAW_POINT, + MODE_DRAW_LINE_STRING, + MODE_DRAW_POLYGON +} from '../mapping/VideoMapDraw'; + +const DEFAULT_CONTROLS = { + point: true, + line_string: true, + polygon: true, + trash: true +}; + +const BUTTONS = [ + { + key: 'point', + mode: MODE_DRAW_POINT, + className: 'sm-videomap-draw-point mapbox-gl-draw_ctrl-draw-btn mapbox-gl-draw_point', + titleKey: 'text_videoMapDrawPoint' + }, + { + key: 'line_string', + mode: MODE_DRAW_LINE_STRING, + className: 'sm-videomap-draw-line mapbox-gl-draw_ctrl-draw-btn mapbox-gl-draw_line', + titleKey: 'text_videoMapDrawLine' + }, + { + key: 'polygon', + mode: MODE_DRAW_POLYGON, + className: 'sm-videomap-draw-polygon mapbox-gl-draw_ctrl-draw-btn mapbox-gl-draw_polygon', + titleKey: 'text_videoMapDrawPolygon' + }, + { + key: 'trash', + mode: 'trash', + className: 'sm-videomap-draw-trash mapbox-gl-draw_ctrl-draw-btn mapbox-gl-draw_trash', + titleKey: 'text_videoMapDeleteSelectedFeature' + } +]; + +function resolveControls(options) { + const controls = {}; + Object.keys(DEFAULT_CONTROLS).forEach((key) => { + controls[key] = options.controls ? !!options.controls[key] : DEFAULT_CONTROLS[key]; + }); + return controls; +} + +/** + * @class VideoMapDrawControl + * @category Control + * @classdesc 视频地图绘制控件。UI 参考 mapbox-gl-draw:点、线、面、删除。 + * 绘制结果走 VideoMap 地理坐标与重投影链路,可同步到真实地图。后续可在此控件上扩展要素编辑。 + * @modulecategory Control + * @param {Object} [options] - 参数。 + * @param {VideoMap} [options.videoMap] - 视频地图实例。通过 `videoMap.addControl` 添加时会自动注入。 + * @param {Object} [options.controls={point:true, line_string:true, polygon:true, trash:true}] - 按钮显隐,`point` / `line_string` / `polygon` / `trash`。不传时默认全部显示;传入后仅 `true` 对应的按钮显示,未指定项隐藏。 + * @param {Object} [options.styles] - 点、线、面的全局样式,使用 Mapbox paint 属性名。`point`:`circle-radius` / `circle-color` / `circle-opacity` / `circle-stroke-width` / `circle-stroke-color`;`line`:`line-color` / `line-width` / `line-opacity` / `line-dasharray`;`polygon`:`fill-color` / `fill-opacity` 及轮廓的 `line-*`。选中要素的颜色由 `selected.color` 指定(默认 `#fbb03b`),绘制完成后要素处于选中状态;绘制中的预览线点沿用对应的点、线、面颜色。可通过 `preview.point` / `preview.line` / `preview.polygon` 单独设置绘制中的样式(属性同上,面预览可用 `fill-*` 与轮廓 `line-*`),未设置的属性沿用主样式或默认值。 + * @example + * videoMap.addControl(new mapboxgl.supermap.VideoMapDrawControl({ + * styles: { point: { 'circle-color': '#f00' }, line: { 'line-width': 4 } } + * }), 'top-left'); + * @usage + */ +export class VideoMapDrawControl { + constructor(options) { + options = options || {}; + this.options = { + videoMap: options.videoMap, + controls: resolveControls(options), + styles: options.styles + }; + this.videoMap = options.videoMap || null; + this._buttons = {}; + this._onModeChange = this._syncUI.bind(this); + this._onSelectionChange = this._syncUI.bind(this); + this._onDelete = this._syncUI.bind(this); + this._onClear = this._syncUI.bind(this); + } + + /** + * @function VideoMapDrawControl.prototype.setVideoMap + * @description 绑定视频地图实例。 + * @param {VideoMap} videoMap - 视频地图。 + */ + setVideoMap(videoMap) { + this._unbindVideoMap(); + this.videoMap = videoMap; + this._bindVideoMap(); + if (this._container) { + this._getDraw().activate(); + this._syncUI(); + } + } + + /** + * @function VideoMapDrawControl.prototype.onAdd + * @description 添加到地图。 + * @param {mapboxgl.Map} map - MapboxGL 地图对象。 + * @returns {HTMLElement} 控件容器。 + */ + onAdd(map) { + this._map = map; + if (!this.videoMap && map && map._smVideoMap) { + this.videoMap = map._smVideoMap; + } + this._container = document.createElement('div'); + this._container.className = 'mapboxgl-ctrl-group mapboxgl-ctrl sm-videomap-draw-ctrl'; + BUTTONS.forEach((item) => { + if (!this.options.controls[item.key]) { + return; + } + const button = document.createElement('button'); + const title = Lang.i18n(item.titleKey); + button.type = 'button'; + button.className = `sm-videomap-draw-btn ${item.className}`; + button.title = title; + button.setAttribute('aria-label', title); + button.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + this._onButtonClick(item); + }); + this._container.appendChild(button); + this._buttons[item.key] = button; + }); + this._bindVideoMap(); + if (this.videoMap) { + this._getDraw().activate(); + } + this._syncUI(); + return this._container; + } + + /** + * @function VideoMapDrawControl.prototype.onRemove + * @description 从地图移除控件。 + */ + onRemove() { + if (this.videoMap) { + this._getDraw().changeMode(MODE_SIMPLE_SELECT); + } + this._unbindVideoMap(); + if (this._container && this._container.parentNode) { + this._container.parentNode.removeChild(this._container); + } + this._container = null; + this._buttons = {}; + this._map = null; + } + + /** + * @function VideoMapDrawControl.prototype.getDefaultPosition + * @description 默认位置。 + * @returns {string} 控件位置。 + */ + getDefaultPosition() { + return 'top-left'; + } + + /** + * @function VideoMapDrawControl.prototype.setStyles + * @description 更新点、线、面的全局样式,仅覆盖传入的属性。 + * @param {Object} styles - 结构同构造参数 `styles`。 + */ + setStyles(styles) { + this.options.styles = styles; + if (this.videoMap) { + this._getDraw().setStyles(styles); + } + } + + /** + * @function VideoMapDrawControl.prototype.getStyles + * @description 获取当前生效的点、线、面样式。 + * @returns {Object} 样式配置。 + */ + getStyles() { + return this.videoMap ? this._getDraw().getStyles() : null; + } + + _getDraw() { + return this.videoMap._getDraw({ styles: this.options.styles }); + } + + _onButtonClick(item) { + if (!this.videoMap) { + return; + } + const draw = this._getDraw(); + if (item.mode === 'trash') { + if (draw.getSelectedIds().length) { + draw.delete(); + } else if (draw.getMode()) { + draw.cancel(); + } + return; + } + if (draw.getUiMode() === item.mode) { + draw.changeMode(MODE_SIMPLE_SELECT); + return; + } + draw.changeMode(item.mode); + } + + _syncUI() { + if (!this._container) { + return; + } + const draw = this.videoMap ? this._getDraw() : null; + const uiMode = draw ? draw.getUiMode() : MODE_SIMPLE_SELECT; + const selectedCount = draw ? draw.getSelectedIds().length : 0; + const canTrash = selectedCount > 0 || !!(draw && draw.getMode()); + Object.keys(this._buttons).forEach((key) => { + const button = this._buttons[key]; + const meta = BUTTONS.find((item) => item.key === key); + if (meta.mode === 'trash') { + button.disabled = !canTrash; + button.classList.remove('active'); + return; + } + if (uiMode === meta.mode) { + button.classList.add('active'); + } else { + button.classList.remove('active'); + } + }); + } + + _bindVideoMap() { + if (!this.videoMap || this._videoMapBound) { + return; + } + this.videoMap.on('drawmodechange', this._onModeChange); + this.videoMap.on('drawselectionchange', this._onSelectionChange); + this.videoMap.on('drawdelete', this._onDelete); + this.videoMap.on('drawclear', this._onClear); + this.videoMap.on('drawcreate', this._onSelectionChange); + this._videoMapBound = true; + } + + _unbindVideoMap() { + if (!this.videoMap || !this._videoMapBound) { + return; + } + this.videoMap.off('drawmodechange', this._onModeChange); + this.videoMap.off('drawselectionchange', this._onSelectionChange); + this.videoMap.off('drawdelete', this._onDelete); + this.videoMap.off('drawclear', this._onClear); + this.videoMap.off('drawcreate', this._onSelectionChange); + this._videoMapBound = false; + } +} + +export default VideoMapDrawControl; diff --git a/src/mapboxgl/control/VideoPlayControl.js b/src/mapboxgl/control/VideoPlayControl.js new file mode 100644 index 0000000000..4a7dfaac70 --- /dev/null +++ b/src/mapboxgl/control/VideoPlayControl.js @@ -0,0 +1,212 @@ +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ +import '../core/Base'; +import { Lang } from '@supermapgis/iclient-common/lang/Lang'; + +const PLAY_ICON = + ''; +const PAUSE_ICON = + ''; +const DEFAULT_CONTENT = ``; + +const BLOCKED_TAGS = /^(script|iframe|frame|frameset|object|embed|applet|link|meta|base|style|noscript|template|foreignobject|animate|set|animatetransform|animatemotion)$/; +const URL_ATTRS = /^(href|xlink:href|src|action|formaction|data|poster|background)$/; + +// 在惰性的 template 中解析,不会执行脚本或加载资源;以 DocumentFragment 返回,避免二次序列化再解析 +function sanitizeHTML(html) { + const template = document.createElement('template'); + template.innerHTML = html; + const fragment = template.content; + Array.from(fragment.querySelectorAll('*')).forEach((el) => { + if (BLOCKED_TAGS.test(el.localName.toLowerCase())) { + el.remove(); + return; + } + Array.from(el.attributes).forEach((attr) => { + const name = attr.name.toLowerCase(); + // 浏览器会忽略 scheme 中的空白和控制字符,先去除再判断 + const value = Array.from(attr.value) + .filter((char) => char.charCodeAt(0) > 32) + .join('') + .toLowerCase(); + const unsafeUrl = + URL_ATTRS.test(name) && + (/^(javascript|vbscript):/.test(value) || (/^data:/.test(value) && !(name === 'src' && /^data:image\//.test(value)))); + if (name.indexOf('on') === 0 || name === 'srcdoc' || unsafeUrl) { + el.removeAttribute(attr.name); + } + }); + }); + return fragment; +} + +/** + * @class VideoPlayControl + * @category Control + * @classdesc VideoMap 或 VideoLayer 的播放/暂停控件。 + * @modulecategory Control + * @param {Object} [options] - 参数。 + * @param {VideoMap|VideoLayer} [options.target] - 要控制的对象。添加到 VideoMap 时可省略并自动绑定。 + * @param {number} [options.size] - 内置按钮直径,单位像素。使用 setHTML / setDOMContent 自定义内容后不再生效。 + * @example + * videoMap.addControl(new mapboxgl.supermap.VideoPlayControl(), 'bottom-left'); + * map.addControl(new mapboxgl.supermap.VideoPlayControl({ target: videoLayer }), 'bottom-left'); + * @example + * // 自定义整个控件内容(可以是自己的 button):带 sm-mapboxgl-play-when-paused 的元素仅在暂停时显示,sm-mapboxgl-play-when-playing 仅在播放时显示 + * const control = new mapboxgl.supermap.VideoPlayControl(); + * control.setHTML( + * '播放暂停' + * ); + */ +export class VideoPlayControl { + constructor(options) { + options = options || {}; + this.options = { + position: 'bottom-left', + size: options.size + }; + this.target = null; + this._targetBound = false; + this._content = sanitizeHTML(DEFAULT_CONTENT); + this._onPlayState = this._syncUI.bind(this); + this.setTarget(options.target); + } + + /** + * @function VideoPlayControl.prototype.setHTML + * @description 设置控件内容,会替换包括内置圆形按钮在内的全部内容,可以是任意自定义结构(如自己的 button)。内容中任意位置被点击都会切换播放/暂停。内容可同时包含两种状态:带 sm-mapboxgl-play-when-paused 类的元素仅在暂停时显示,带 sm-mapboxgl-play-when-playing 类的元素仅在播放时显示;也可用控件容器(.sm-mapboxgl-play-ctrl)上的 is-playing / is-paused 类自行编写样式。自定义内容的 title、aria-label 需自行设置。内容会被过滤:移除 script、iframe、style 等危险标签,以及 on* 事件属性和 javascript: 等危险链接。如需完全自定义,请使用 setDOMContent。 + * @param {string} html - HTML 字符串。 + * @returns {VideoPlayControl} this。 + */ + setHTML(html) { + this._content = sanitizeHTML(String(html)); + this._renderContent(); + return this; + } + + /** + * @function VideoPlayControl.prototype.setDOMContent + * @description 以 DOM 节点设置按钮内容,用法同 setHTML。节点由调用方创建,不做过滤;节点会被直接放入按钮,不会克隆。 + * @param {Node} node - DOM 节点。 + * @returns {VideoPlayControl} this。 + */ + setDOMContent(node) { + if (!node || typeof node.nodeType !== 'number') { + throw new TypeError('VideoPlayControl.setDOMContent expects a DOM Node'); + } + this._content = node; + this._renderContent(); + return this; + } + + setTarget(target) { + this._unbindTarget(); + this.target = target || null; + this._bindTarget(); + this._syncUI(); + return this; + } + + onAdd(map) { + this._map = map; + if (!this.target && map && map._smVideoMap) { + this.setTarget(map._smVideoMap); + } + this._container = document.createElement('div'); + this._container.className = 'mapboxgl-ctrl sm-mapboxgl-play-ctrl'; + // 自定义内容中的任意元素被点击都会切换播放状态 + this._container.addEventListener('click', (event) => { + event.preventDefault(); + event.stopPropagation(); + this._toggle(); + }); + this._renderContent(); + this._bindTarget(); + return this._container; + } + + onRemove() { + this._unbindTarget(); + if (this._container && this._container.parentNode) { + this._container.parentNode.removeChild(this._container); + } + this._container = null; + this._button = null; + this._map = null; + } + + getDefaultPosition() { + return this.options.position; + } + + _toggle() { + if (!this.target) { + return; + } + if (this.target.paused()) { + this.target.play(); + } else { + this.target.pause(); + } + } + + _renderContent() { + if (!this._container) { + return; + } + // 文档片段插入后会被清空,需克隆以支持控件重复添加 + const node = this._content.nodeType === 11 ? this._content.cloneNode(true) : this._content; + this._container.replaceChildren(node); + // 仅内置按钮存在时应用 size,并维护标题和 aria-label + this._button = this._container.querySelector('.sm-mapboxgl-play-btn'); + if (this._button && this.options.size) { + this._button.style.width = `${this.options.size}px`; + this._button.style.height = `${this.options.size}px`; + } + this._syncUI(); + } + + _syncUI() { + if (!this._container) { + return; + } + const paused = !this.target || this.target.paused(); + [this._container, this._button].forEach((el) => { + if (el) { + el.classList.toggle('is-paused', paused); + el.classList.toggle('is-playing', !paused); + } + }); + if (this._button) { + this._button.title = Lang.i18n(paused ? 'text_videoMapPlay' : 'text_videoMapPause'); + this._button.setAttribute('aria-label', this._button.title); + } + this._container.querySelectorAll('.sm-mapboxgl-play-when-paused').forEach((el) => { + el.style.display = paused ? '' : 'none'; + }); + this._container.querySelectorAll('.sm-mapboxgl-play-when-playing').forEach((el) => { + el.style.display = paused ? 'none' : ''; + }); + } + + _bindTarget() { + if (!this.target || this._targetBound) { + return; + } + this.target.on('play', this._onPlayState); + this.target.on('pause', this._onPlayState); + this._targetBound = true; + } + + _unbindTarget() { + if (!this.target || !this._targetBound) { + return; + } + this.target.off('play', this._onPlayState); + this.target.off('pause', this._onPlayState); + this._targetBound = false; + } +} + +export default VideoPlayControl; \ No newline at end of file diff --git a/src/mapboxgl/control/index.js b/src/mapboxgl/control/index.js index 9751c35498..bdae8f3bcf 100644 --- a/src/mapboxgl/control/index.js +++ b/src/mapboxgl/control/index.js @@ -1,4 +1,6 @@ /* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ -export {Logo} from './Logo'; \ No newline at end of file +export {Logo} from './Logo'; +export {VideoMapDrawControl} from './VideoMapDrawControl'; +export {VideoPlayControl} from './VideoPlayControl'; \ No newline at end of file diff --git a/src/mapboxgl/control/style/PlayControl.css b/src/mapboxgl/control/style/PlayControl.css new file mode 100644 index 0000000000..873c1c3e8f --- /dev/null +++ b/src/mapboxgl/control/style/PlayControl.css @@ -0,0 +1,47 @@ +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ + +.sm-mapboxgl-play-ctrl { + background: transparent; + box-shadow: none; +} + +.sm-mapboxgl-play-btn { + box-sizing: border-box; + appearance: none; + -webkit-appearance: none; + width: 56px; + height: 56px; + padding: 0; + border: 2px solid rgba(255, 255, 255, 0.92); + border-radius: 50%; + background: rgba(0, 0, 0, 0.45); + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28); + color: #fff; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; +} + +/* 覆盖 mapbox-gl 的 .mapboxgl-ctrl button:not(:disabled):hover,保持按钮原有背景色 */ +.mapboxgl-ctrl .sm-mapboxgl-play-btn:not(:disabled):hover { + background: rgba(0, 0, 0, 0.45); +} + +.sm-mapboxgl-play-svg { + width: 54%; + height: 54%; + fill: currentColor; + display: none; +} + +.sm-mapboxgl-play-btn.is-paused .sm-mapboxgl-play-svg--play { + display: block; + margin-left: 6%; +} + +.sm-mapboxgl-play-btn.is-playing .sm-mapboxgl-play-svg--pause { + display: block; +} \ No newline at end of file diff --git a/src/mapboxgl/control/style/VideoMapDraw.css b/src/mapboxgl/control/style/VideoMapDraw.css new file mode 100644 index 0000000000..9068f3d2ad --- /dev/null +++ b/src/mapboxgl/control/style/VideoMapDraw.css @@ -0,0 +1,49 @@ +/* Copyright© 2000 - 2026 SuperMap Software Co.Ltd. All rights reserved. + * This program are made available under the terms of the Apache License, Version 2.0 + * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ + +.sm-videomap-draw-ctrl button { + background-repeat: no-repeat; + background-position: center; +} + +.sm-videomap-draw-ctrl button.active, +.sm-videomap-draw-ctrl button.active:hover { + background-color: #fbb03b; +} + +.sm-videomap-draw-ctrl button:disabled { + opacity: 0.35; + cursor: default; +} + +.sm-videomap-draw-measure .mapboxgl-popup-content { + padding: 4px 8px; + background: rgba(38, 38, 38, 0.88); + color: #fff; + border-radius: 4px; + font-size: 12px; + line-height: 1.4; + box-shadow: none; +} + +.sm-videomap-draw-measure.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip { + border-top-color: rgba(38, 38, 38, 0.88); +} + +/* icons from @mapbox/mapbox-gl-draw@1.4.3 */ +.sm-videomap-draw-ctrl button.mapbox-gl-draw_point { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20"%3E%3Cpath d="m10 2c-3.3 0-6 2.7-6 6s6 9 6 9 6-5.7 6-9-2.7-6-6-6zm0 2c2.1 0 3.8 1.7 3.8 3.8 0 1.5-1.8 3.9-2.9 5.2h-1.7c-1.1-1.4-2.9-3.8-2.9-5.2-.1-2.1 1.6-3.8 3.7-3.8z"/%3E%3C/svg%3E'); +} + +.sm-videomap-draw-ctrl button.mapbox-gl-draw_polygon { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20"%3E%3Cpath d="m15 12.3v-4.6c.6-.3 1-1 1-1.7 0-1.1-.9-2-2-2-.7 0-1.4.4-1.7 1h-4.6c-.3-.6-1-1-1.7-1-1.1 0-2 .9-2 2 0 .7.4 1.4 1 1.7v4.6c-.6.3-1 1-1 1.7 0 1.1.9 2 2 2 .7 0 1.4-.4 1.7-1h4.6c.3.6 1 1 1.7 1 1.1 0 2-.9 2-2 0-.7-.4-1.4-1-1.7zm-8-.3v-4l1-1h4l1 1v4l-1 1h-4z"/%3E%3C/svg%3E'); +} + +.sm-videomap-draw-ctrl button.mapbox-gl-draw_line { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20"%3E%3Cpath d="m13.5 3.5c-1.4 0-2.5 1.1-2.5 2.5 0 .3 0 .6.2.9l-3.8 3.8c-.3-.1-.6-.2-.9-.2-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5c0-.3 0-.6-.2-.9l3.8-3.8c.3.1.6.2.9.2 1.4 0 2.5-1.1 2.5-2.5s-1.1-2.5-2.5-2.5z"/%3E%3C/svg%3E'); +} + +.sm-videomap-draw-ctrl button.mapbox-gl-draw_trash { + background-image: url('data:image/svg+xml;utf8,%3Csvg xmlns="http://www.w3.org/2000/svg" width="20" height="20"%3E%3Cpath d="M10,3.4 c-0.8,0-1.5,0.5-1.8,1.2H5l-1,1v1h12v-1l-1-1h-3.2C11.5,3.9,10.8,3.4,10,3.4z M5,8v7c0,1,1,2,2,2h6c1,0,2-1,2-2V8h-2v5.5h-1.5V8h-3 v5.5H7V8H5z"/%3E%3C/svg%3E'); +} diff --git a/src/mapboxgl/css/index.js b/src/mapboxgl/css/index.js index adef971e5b..af9021fbde 100644 --- a/src/mapboxgl/css/index.js +++ b/src/mapboxgl/css/index.js @@ -1,2 +1,4 @@ import '@supermapgis/iclient-common/css/webmapfont/iconfont.css' -import '@supermapgis/iclient-common/components/css/MessageBox.css' \ No newline at end of file +import '@supermapgis/iclient-common/components/css/MessageBox.css' +import '../control/style/VideoMapDraw.css' +import '../control/style/PlayControl.css' \ No newline at end of file diff --git a/src/mapboxgl/mapping/CoordTransfer.js b/src/mapboxgl/mapping/CoordTransfer.js index 8c1632891e..8d9963c98b 100644 --- a/src/mapboxgl/mapping/CoordTransfer.js +++ b/src/mapboxgl/mapping/CoordTransfer.js @@ -55,9 +55,32 @@ export default class CoordTransfer { if (!this.cv) { return; } + if (this.rotationMatrix) { + this.rotationMatrix.delete(); + } + if (this.rotationMat3) { + this.rotationMat3.delete(); + } + if (this.translationMatrix) { + this.translationMatrix.delete(); + } + if (this.k) { + this.k.delete(); + } this.rotationMatrix = this.toRotationMatrix(pitch, roll, yaw); + this.rotationMat3 = new this.cv.Mat(3, 3, this.cv.CV_64FC1); + this.cv.Rodrigues(this.rotationMatrix, this.rotationMat3); this.translationMatrix = this.toTranslationMatrix(x, y, z); this.k = this.toCameraMatrix(fx, fy, centerX, centerY); + this._R = this.rotationMat3.data64F ? Array.from(this.rotationMat3.data64F) : null; + this._t = this.translationMatrix.data64F ? Array.from(this.translationMatrix.data64F) : null; + this._fx = fx; + this._fy = fy; + this._cx = centerX; + this._cy = centerY; + this._x = x; + this._y = y; + this._z = z; } /** @@ -112,9 +135,15 @@ export default class CoordTransfer { ]); let tempResult = new this.cv.Mat(3, 3, this.cv.CV_64FC1); - this.cv.gemm(rx, ry, 1, new this.cv.Mat(), 0, tempResult); - this.cv.gemm(tempResult, rz, 1, new this.cv.Mat(), 0, tempResult); + let zeroMat = new this.cv.Mat(); + this.cv.gemm(rx, ry, 1, zeroMat, 0, tempResult); + this.cv.gemm(tempResult, rz, 1, zeroMat, 0, tempResult); this.cv.Rodrigues(tempResult, rotationMatrix); + rx.delete(); + ry.delete(); + rz.delete(); + tempResult.delete(); + zeroMat.delete(); return rotationMatrix; } @@ -134,8 +163,12 @@ export default class CoordTransfer { let tvecs = this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [-x, -y, -z]); let rotationMatrix = new this.cv.Mat(3, 3, this.cv.CV_64FC1); + let zeroMat = new this.cv.Mat(); this.cv.Rodrigues(this.rotationMatrix, rotationMatrix); - this.cv.gemm(rotationMatrix, tvecs, 1.0, new this.cv.Mat(), 0, translationMatrix); + this.cv.gemm(rotationMatrix, tvecs, 1.0, zeroMat, 0, translationMatrix); + tvecs.delete(); + rotationMatrix.delete(); + zeroMat.delete(); return translationMatrix; } @@ -151,21 +184,65 @@ export default class CoordTransfer { toCameraMatrix(fx, fy, centerX, centerY) { return this.cv.matFromArray(3, 3, this.cv.CV_64FC1, [fx, 0, centerX, 0, fy, centerY, 0, 0, 1]); } + /** + * @function CoordTransfer.prototype.toCameraCoordinate + * @description 将空间坐标转换到相机坐标系。Z > 0 表示在相机前方。 + * @param {Array} coord - 空间坐标 [x, y] 或 [x, y, z](EPSG:3857)。 + * @returns {Array|null} 相机坐标 [Xc, Yc, Zc]。 + */ + toCameraCoordinate(coord) { + if (!this._R || this._R.length < 9 || !this._t || this._t.length < 3 || !coord || coord.length < 2) { + return null; + } + const x = coord[0]; + const y = coord[1]; + const z = coord.length > 2 ? coord[2] : 0; + const R = this._R; + const t = this._t; + return [ + R[0] * x + R[1] * y + R[2] * z + t[0], + R[3] * x + R[4] * y + R[5] * z + t[1], + R[6] * x + R[7] * y + R[8] * z + t[2] + ]; + } + + /** + * @function CoordTransfer.prototype.projectCameraToVideo + * @description 将相机坐标投影为视频像素坐标。相机后方的点返回 null。 + * @param {Array} camera - 相机坐标 [Xc, Yc, Zc]。 + * @param {number} [zNear=0.01] - 近裁剪面,单位与空间坐标一致。 + * @returns {Array|null} 视频像素坐标 [u, v]。 + */ + projectCameraToVideo(camera, zNear = 0.01) { + if (!camera || this._fx == null || this._fy == null) { + return null; + } + const depth = camera[2]; + if (!(depth > zNear)) { + return null; + } + return [ + this._fx * camera[0] / depth + this._cx, + this._fy * camera[1] / depth + this._cy + ]; + } + /** * @function CoordTransfer.prototype.toVideoCoordinate - * @description 转换视频像素坐标到空间地理坐标。 + * @description 将空间地理坐标转换为视频像素坐标。相机后方的点 data64F 为空数组。 * @param {Array} coord - 空间坐标。 - * @returns {Array} 视频像素坐标。 + * @returns {{data64F: Array, depth: (number|null)}} 视频像素坐标及相机深度。 */ toVideoCoordinate(coord) { - if (!this.cv || !this.cv.Mat) { - return []; + const camera = this.toCameraCoordinate(coord); + if (!camera) { + return { data64F: [], depth: null }; } - let emptyMat = new this.cv.Mat(); - let point3 = this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [coord[0], coord[1], 0]); - let point2 = new this.cv.Mat(2, 1, this.cv.CV_64FC1); - this.cv.projectPoints(point3, this.rotationMatrix, this.translationMatrix, this.k, emptyMat, point2); - return point2; + const uv = this.projectCameraToVideo(camera); + return { + data64F: uv || [], + depth: camera[2] + }; } /** * @function CoordTransfer.prototype.toSpatialCoordinate @@ -177,22 +254,32 @@ export default class CoordTransfer { if (!this.cv || !this.cv.Mat) { return []; } - let uvPoint = new this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [videoPoint[0], videoPoint[1], 1.0]); + let uvPoint = this.cv.matFromArray(3, 1, this.cv.CV_64FC1, [videoPoint[0], videoPoint[1], 1.0]); let rotationMatrix = new this.cv.Mat(3, 3, this.cv.CV_64FC1); this.cv.Rodrigues(this.rotationMatrix, rotationMatrix); + let zeroMat = new this.cv.Mat(); let tempMat = new this.cv.Mat(); - this.cv.gemm(rotationMatrix.inv(3), this.k.inv(3), 1, new this.cv.Mat(), 0, tempMat); - this.cv.gemm(tempMat, uvPoint, 1, new this.cv.Mat(), 0, tempMat); + this.cv.gemm(rotationMatrix.inv(3), this.k.inv(3), 1, zeroMat, 0, tempMat); + this.cv.gemm(tempMat, uvPoint, 1, zeroMat, 0, tempMat); let tempMat2 = new this.cv.Mat(); - this.cv.gemm(rotationMatrix.inv(3), this.translationMatrix, 1, new this.cv.Mat(), 0, tempMat2); + this.cv.gemm(rotationMatrix.inv(3), this.translationMatrix, 1, zeroMat, 0, tempMat2); let zConst = 0; let s = zConst + tempMat2.data64F[2]; s /= tempMat.data64F[2]; let result = new this.cv.Mat(); - this.cv.gemm(this.k.inv(3), uvPoint, 1, new this.cv.Mat(), 0, result); - this.cv.multiply(result, new this.cv.matFromArray(4, 1, this.cv.CV_64FC1, [s, 0, 0, 0]), result); + let scaleMat = this.cv.matFromArray(4, 1, this.cv.CV_64FC1, [s, 0, 0, 0]); + this.cv.gemm(this.k.inv(3), uvPoint, 1, zeroMat, 0, result); + this.cv.multiply(result, scaleMat, result); this.cv.subtract(result, this.translationMatrix, result); - this.cv.gemm(rotationMatrix.inv(3), result, 1, new this.cv.Mat(), 0, result); - return result.data64F; + this.cv.gemm(rotationMatrix.inv(3), result, 1, zeroMat, 0, result); + const data64F = [result.data64F[0], result.data64F[1], result.data64F[2]]; + uvPoint.delete(); + rotationMatrix.delete(); + zeroMat.delete(); + tempMat.delete(); + tempMat2.delete(); + scaleMat.delete(); + result.delete(); + return data64F; } } \ No newline at end of file diff --git a/src/mapboxgl/mapping/GeojsonSource.js b/src/mapboxgl/mapping/GeojsonSource.js index a016fb9f21..3f62ce3912 100644 --- a/src/mapboxgl/mapping/GeojsonSource.js +++ b/src/mapboxgl/mapping/GeojsonSource.js @@ -1,7 +1,5 @@ -import { featureEach, coordEach } from '@turf/meta'; import cloneDeep from 'lodash.clonedeep'; -import { transformCoord } from './utils/VideoMapUtil'; -import proj4 from 'proj4'; +import { transformVideoMapGeoJSON } from './utils/clipVideoMapGeometry'; /** * @class GeojsonSource @@ -12,13 +10,8 @@ import proj4 from 'proj4'; */ export default class GeojsonSource { constructor(videoMap) { - const { coordTransfer, originCoordsRightBottom, originCoordsLeftTop, videoWidth, videoHeight, map } = videoMap; - this.map = map; - this.coordTransfer = coordTransfer; - this.originCoordsRightBottom = originCoordsRightBottom; - this.originCoordsLeftTop = originCoordsLeftTop; - this.videoWidth = videoWidth; - this.videoHeight = videoHeight; + this.videoMap = videoMap; + this.map = videoMap.map; } /** @@ -31,35 +24,44 @@ export default class GeojsonSource { if (this.map.getSource(id)) { return; } - const newData = cloneDeep(source.data); - featureEach(newData, (currentFeature) => { - coordEach(currentFeature, (curCoords) => { - let transCurCoords = proj4('EPSG:4326', 'EPSG:3857', curCoords); - let transCoords = this.coordTransfer.toVideoCoordinate(transCurCoords); - curCoords.length = 0; - curCoords.push( - ...transformCoord({ - videoPoint: transCoords.data64F, - videoWidth: this.videoWidth, - videoHeight: this.videoHeight, - originCoordsRightBottom: this.originCoordsRightBottom, - originCoordsLeftTop: this.originCoordsLeftTop - }) - ); - }); - }); - + this.id = id; + this.source = source; + this.originalData = cloneDeep(source.data); + const newData = this._transformData(this.originalData); source.data = newData; - this.map.addSource(id, source); } + + update() { + const source = this.map.getSource(this.id); + if (!source || !this.originalData) { + return; + } + source.setData(this._transformData(this.originalData)); + } + + /** + * @function GeojsonSource.prototype.setData + * @description 更新原始地理数据并重新投影到视频地图。 + * @param {Object} data - GeoJSON 数据。 + */ + setData(data) { + this.originalData = cloneDeep(data); + this.update(); + } + + _transformData(data) { + return transformVideoMapGeoJSON(data, this.videoMap); + } + /** * @function GeojsonSource.prototype.remove * @description 移除数据源。 * @param {Object} id - 数据源 id。 - * @param {Object} source */ - remove(id) { - this.map.addSource(id); + remove() { + if (this.id && this.map.getSource(this.id)) { + this.map.removeSource(this.id); + } } } diff --git a/src/mapboxgl/mapping/VideoMap.js b/src/mapboxgl/mapping/VideoMap.js index b53c979fb1..c5358d2359 100644 --- a/src/mapboxgl/mapping/VideoMap.js +++ b/src/mapboxgl/mapping/VideoMap.js @@ -1,9 +1,20 @@ import mapboxgl from 'mapbox-gl'; +import proj4 from 'proj4'; import CoordTransfer from './CoordTransfer'; import VideoMapLayer from './layers/VideoMapLayer'; import GeojsonLayer from './layers/GeojsonLayer'; -import { transformCoordReverse, fovXToFx, fovYToFy } from './utils/VideoMapUtil'; +import { + transformCoord, + transformCoordReverse, + fovXToFx, + fovYToFy, + smartTimeProcessor, + FastRangeSearcher, + resolveCameraPose +} from './utils/VideoMapUtil'; import GeojsonSource from './GeojsonSource'; +import VideoMapDraw from './VideoMapDraw'; +import { Lang } from '@supermapgis/iclient-common/lang/Lang'; const MAP_EVENTS = [ 'resize', @@ -49,6 +60,35 @@ const MAP_EVENTS = [ 'idle' ]; +/** + * @typedef {Object} VideoMap.VideoParameters - 视频地图配准参数(静态配准,相机位置固定)。 + * @property {number} pitch - 相机俯仰角,单位:度。 + * @property {number} roll - 相机侧偏角,单位:度。 + * @property {number} yaw - 相机偏航角,单位:度。 + * @property {number} x - 相机位置 x 坐标(投影至 EPSG:3857 后的横坐标)。 + * @property {number} y - 相机位置 y 坐标(投影至 EPSG:3857 后的纵坐标)。 + * @property {number} z - 相机位置 z 坐标(投影至 EPSG:3857 后的高程)。 + * @property {number} fovX - 相机水平视场角,单位:度。内部通过 videoWidth 与该值换算为水平焦距 fx。 + * @property {number} fovY - 相机垂直视场角,单位:度。内部通过 videoHeight 与该值换算为垂直焦距 fy。 + * @property {number} centerX - 相机主点(光轴与图像平面交点)的水平像素坐标。 + * @property {number} centerY - 相机主点(光轴与图像平面交点)的垂直像素坐标。 + */ + +/** + * @typedef {Object} VideoMap.VideoTimeParameters - 动态视频配准参数(按视频时间动态更新相机位置)。 + * @property {number} time - 视频时间戳,单位秒。用于按视频播放时间匹配对应的相机参数。 + * @property {number} pitch - 相机俯仰角,单位:度。 + * @property {number} roll - 相机侧偏角,单位:度。 + * @property {number} yaw - 相机偏航角,单位:度。 + * @property {number} x - 相机位置 x 坐标(投影至 EPSG:3857 后的横坐标)。 + * @property {number} y - 相机位置 y 坐标(投影至 EPSG:3857 后的纵坐标)。 + * @property {number} z - 相机位置 z 坐标(投影至 EPSG:3857 后的高程)。 + * @property {number} fovX - 相机水平视场角,单位:度。内部通过 videoWidth 与该值换算为水平焦距 fx。 + * @property {number} fovY - 相机垂直视场角,单位:度。内部通过 videoHeight 与该值换算为垂直焦距 fy。 + * @property {number} centerX - 相机主点(光轴与图像平面交点)的水平像素坐标。 + * @property {number} centerY - 相机主点(光轴与图像平面交点)的垂直像素坐标。 + */ + /** * @class VideoMap * @classdesc 视频地图 @@ -56,25 +96,28 @@ const MAP_EVENTS = [ * @version 11.2.0 * @modulecategory Mapping * @param {Object} options - 参数 - * @param {string} options.url - 视频 或 流链接。支持 flv, m3u8, map4 格式。 - * @param {string} options.videoParameters - 视频地图配准参数 - * @param {number} options.videoParameters.pitch - 俯仰角。 - * @param {number} options.videoParameters.roll - 侧偏角。 - * @param {number} options.videoParameters.yaw - 偏航角。 - * @param {number} options.videoParameters.x - 视频 x 坐标。 - * @param {number} options.videoParameters.y - 视频 y 坐标。 - * @param {number} options.videoParameters.z - 视频 z 坐标。 - * @param {number} options.videoParameters.fovX - 水平方向上以像素为单位的焦距。 - * @param {number} options.videoParameters.fovY - 垂直方向上以像素为单位的焦距。 - * @param {number} options.videoParameters.centerX - 相机中心的水平坐标。 - * @param {number} options.videoParameters.centerY - 相机中心的垂直坐标。 - * @param {string} [options.container='map'] - 地图容器id - * @param {string} [options.opencv] - opencv 实例 - * @param {function} [options.videoWidth] - 视频地图宽度,没设置时默认获取视频宽度 - * @param {function} [options.videoHeight] - 视频地图高度,没设置时默认获取视频高度 - * @param {Object} [options.styleOptions] - 视频地图风格配置 - * @param {string} [options.autoplay=true] - 视频是否自动播放 - * @param {string} [options.loop=true] - 视频是否循环播放 + * @param {string} options.url - 视频 或 流链接。支持 flv, m3u8, mp4 格式。 + * @param {VideoMap.VideoParameters|Array} options.videoParameters - 视频地图配准参数。传入对象时为静态配准(相机位置固定);传入数组时为动态配准,按视频时间动态更新相机参数。 + * @param {string|HTMLElement} [options.container='map'] - 地图容器 id 或 DOM 元素。 + * @param {Object} [options.opencv] - opencv.js 实例。未传入时取 window.cv;若均不存在将抛出异常。 + * @param {number} [options.videoWidth] - 视频宽度,单位像素。未设置时默认读取视频实际宽度。 + * @param {number} [options.videoHeight] - 视频高度,单位像素。未设置时默认读取视频实际高度。 + * @param {Object} [options.styleOptions] - 视频地图风格配置,对应 mapbox-gl 的 style 对象(sprite、glyphs 等)。 + * @param {boolean} [options.autoplay=true] - 视频是否自动播放。 + * @param {boolean} [options.loop=true] - 视频是否循环播放。 + * @param {number} [options.interval=0.1] - 动态配准参数的时间重采样间隔,单位秒。仅当 videoParameters 为数组时生效:对原始相机参数序列按该间隔做插值或抽稀,决定相机位置随时间变化的精度。 + * @fires VideoMap#load + * @fires VideoMap#vectorupdate + * @fires VideoMap#play + * @fires VideoMap#pause + * @fires VideoMap#drawstart + * @fires VideoMap#drawcreate + * @fires VideoMap#drawupdate + * @fires VideoMap#drawcancel + * @fires VideoMap#drawclear + * @fires VideoMap#drawmodechange + * @fires VideoMap#drawselectionchange + * @fires VideoMap#drawdelete * @extends {mapboxgl.Evented} * @usage *``` @@ -97,7 +140,18 @@ const MAP_EVENTS = [ export class VideoMap extends mapboxgl.Evented { constructor(options) { super(); - const { container, url, videoParameters, autoplay, loop, videoWidth, videoHeight, opencv, styleOptions } = options; + const { + container, + url, + videoParameters, + autoplay, + loop, + videoWidth, + videoHeight, + opencv, + styleOptions, + interval + } = options; this.container = container || 'map'; this.layerCache = {}; this.sourceCache = {}; @@ -113,11 +167,141 @@ export class VideoMap extends mapboxgl.Evented { if (!videoParameters) { throw new Error('videoParameters must be config!'); } - this.videoParameters = videoParameters; + this.interval = interval || 0.1; + this.vectorUpdateInterval = this.interval; + this.isTimeVarying = Array.isArray(videoParameters); + this.rawVideoParameters = videoParameters; + this.videoParameters = this.isTimeVarying + ? smartTimeProcessor(this.interval, videoParameters, ['yaw', 'pitch', 'roll', 'x', 'y', 'z']) + : videoParameters; + if (this.isTimeVarying) { + this.timeSearcher = new FastRangeSearcher(this.videoParameters.map((item) => item.time)); + } + this._pendingControls = []; + this._mapEventListeners = {}; + const boundMapMethods = new WeakMap(); this._createMap().then((map) => { this.map = map; + this.map._smVideoMap = this; + this._flushPendingControls(); this._addVideoLayer(url); }); + return new Proxy(this, { + get: (target, property, receiver) => { + if (Reflect.has(target, property)) { + return Reflect.get(target, property, receiver); + } + const map = target.map; + if (!map || !(property in map)) { + return undefined; + } + const value = Reflect.get(map, property, map); + if (typeof value !== 'function') { + return value; + } + if (!boundMapMethods.has(value)) { + boundMapMethods.set(value, value.bind(map)); + } + return boundMapMethods.get(value); + }, + set: (target, property, value, receiver) => { + if (Reflect.has(target, property)) { + return Reflect.set(target, property, value, receiver); + } + const map = target.map; + if (map && property in map) { + return Reflect.set(map, property, value, map); + } + return Reflect.set(target, property, value, receiver); + }, + has: (target, property) => Reflect.has(target, property) || !!(target.map && property in target.map) + }); + } + + on(type, layerIds, listener) { + if (!MAP_EVENTS.includes(type) || type === 'load') { + return arguments.length === 2 ? super.on(type, layerIds) : super.on(type, listener); + } + const callback = arguments.length === 2 ? layerIds : listener; + const context = arguments.length === 2 ? undefined : arguments[3]; + const eventListener = this._createMapEventListener(type, layerIds, callback, context, false); + this._addMapEventListener(eventListener); + return this; + } + + once(type, layerIds, listener) { + if (!MAP_EVENTS.includes(type) || type === 'load') { + return arguments.length === 2 ? super.once(type, layerIds) : super.once(type, listener); + } + const callback = arguments.length === 2 ? layerIds : listener; + const context = arguments.length === 2 ? undefined : arguments[3]; + const eventListener = this._createMapEventListener(type, layerIds, callback, context, true); + this._addMapEventListener(eventListener); + return this; + } + + off(type, layerIds, listener) { + if (!MAP_EVENTS.includes(type) || type === 'load') { + return arguments.length === 2 ? super.off(type, layerIds) : super.off(type, listener); + } + const callback = arguments.length === 2 ? layerIds : listener; + const listeners = this._mapEventListeners[type] || []; + this._mapEventListeners[type] = listeners.filter((eventListener) => { + if (callback && eventListener.listener !== callback) { + return true; + } + if (this.map) { + this._removeMapEventListener(eventListener); + } + return false; + }); + return this; + } + + _createMapEventListener(type, layerIds, listener, context, once) { + const hasLayerIds = arguments.length > 1 && typeof layerIds !== 'function'; + const eventListener = { + type, + layerIds: hasLayerIds ? layerIds : undefined, + listener: hasLayerIds ? listener : layerIds, + context: hasLayerIds ? context : undefined, + once, + handler: null + }; + eventListener.handler = (event) => { + const mapEvent = this._bindMapEvent(event); + eventListener.listener.call(eventListener.context || this, mapEvent); + if (eventListener.once) { + this.off(type, eventListener.listener); + } + }; + return eventListener; + } + + _addMapEventListener(eventListener, addToListeners = true) { + if (addToListeners) { + const listeners = this._mapEventListeners[eventListener.type] || []; + listeners.push(eventListener); + this._mapEventListeners[eventListener.type] = listeners; + } + if (!this.map) { + return; + } + if (eventListener.layerIds === undefined) { + eventListener.once ? this.map.once(eventListener.type, eventListener.handler) : this.map.on(eventListener.type, eventListener.handler); + } else { + eventListener.once + ? this.map.once(eventListener.type, eventListener.layerIds, eventListener.handler) + : this.map.on(eventListener.type, eventListener.layerIds, eventListener.handler); + } + } + + _removeMapEventListener(eventListener) { + if (eventListener.layerIds === undefined) { + this.map.off(eventListener.type, eventListener.handler); + } else { + this.map.off(eventListener.type, eventListener.layerIds, eventListener.handler); + } } /** @@ -166,6 +350,159 @@ export class VideoMap extends mapboxgl.Evented { this.sourceCache[id] = geojsonSource; } + /** + * @function VideoMap.prototype.updateAtTime + * @description 使用视频时间更新相机参数并重新投影已添加的 GeoJSON 数据源。 + * @param {number} time - 视频时间,单位秒。 + */ + updateAtTime(time) { + if (!this.isTimeVarying || !this.timeSearcher || !this.coordTransfer) { + return; + } + if (time < this.currentTime) { + this.lastVectorUpdateTime = -Infinity; + } + this.currentTime = time; + if (this.pendingVectorUpdate || time - (this.lastVectorUpdateTime || -Infinity) < this.vectorUpdateInterval) { + return; + } + const range = this.timeSearcher.findRange(time); + if (!range) { + console.warn(Lang.i18n('msg_videoMapTimeRangeMissing'), time, 'timeSearcher.data=', this.timeSearcher && this.timeSearcher.data); + return; + } + const pose = resolveCameraPose(this.rawVideoParameters, time); + this.coordTransfer.setCameraLocation({ + pitch: pose.pitch, + roll: pose.roll, + yaw: pose.yaw, + x: pose.x, + y: pose.y, + z: pose.z, + fx: fovXToFx(pose.fovX, this.videoWidth), + fy: fovYToFy(pose.fovY, this.videoHeight), + centerX: pose.centerX, + centerY: pose.centerY + }); + this.pendingVectorUpdate = true; + const update = () => { + this.pendingVectorUpdate = false; + this.lastVectorUpdateTime = this.currentTime; + Object.keys(this.sourceCache).forEach((id) => { + this.sourceCache[id].update(); + }); + if (this.map) { + this.map.fire('move'); + } + /** + * @event VideoMap#vectorupdate + * @description 矢量要素重投影完成时触发。已打开的弹窗可监听此事件跟随要素位置更新。 + */ + this.fire('vectorupdate', { time: this.currentTime }); + }; + if (typeof window.requestAnimationFrame === 'function') { + window.requestAnimationFrame(update); + } else { + update(); + } + } + + /** + * @function VideoMap.prototype.toSpatialCoordinate + * @description 将视频地图坐标(lngLat)转换为真实地理坐标(EPSG:3857)。 + * @param {mapboxgl.LngLat} lngLat - 视频地图坐标。 + * @returns {Array|null} 真实地理坐标 [x, y, z](EPSG:3857),无法转换时返回 null。 + */ + toSpatialCoordinate(lngLat) { + if (!this.coordTransfer || !this.originCoordsLeftTop || !this.originCoordsRightBottom || !this.videoWidth || !this.videoHeight) { + return null; + } + const videoPixel = transformCoordReverse({ + coord: [lngLat.lng, lngLat.lat], + originCoordsRightBottom: this.originCoordsRightBottom, + originCoordsLeftTop: this.originCoordsLeftTop, + videoHeight: this.videoHeight, + videoWidth: this.videoWidth + }); + return this.coordTransfer.toSpatialCoordinate(videoPixel); + } + + /** + * @function VideoMap.prototype.project + * @description 将 EPSG:4326 经纬度投影到当前视频地图坐标后,再转换为屏幕像素坐标。 + * @param {mapboxgl.LngLat|Object|Array} lngLat - EPSG:4326 坐标。 + * @returns {mapboxgl.Point} 屏幕像素坐标。 + */ + project(lngLat) { + if (!this.map) { + return null; + } + const normalizedLngLat = mapboxgl.LngLat.convert(lngLat); + const videoLngLat = this.toVideoMapCoordinate( + proj4('EPSG:4326', 'EPSG:3857', [normalizedLngLat.lng, normalizedLngLat.lat]) + ); + return this.projectVideoMapCoordinate(videoLngLat); + } + + /** + * @function VideoMap.prototype.projectVideoMapCoordinate + * @description 将当前视频地图坐标转换为屏幕像素坐标。仅供已经持有视频地图坐标的调用方使用。 + * @param {Array|mapboxgl.LngLat|null} videoLngLat - 当前视频地图坐标。 + * @returns {mapboxgl.Point|null} 屏幕像素坐标。 + */ + projectVideoMapCoordinate(videoLngLat) { + if (!this.map || !videoLngLat) { + return null; + } + return this.map.project(mapboxgl.LngLat.convert(videoLngLat)); + } + + /** + * @function VideoMap.prototype.toVideoMapCoordinate + * @description 将真实地理坐标(EPSG:3857)按当前相机参数投影到视频地图坐标。 + * @param {Array} spatialPoint - 真实地理坐标 [x, y] 或 [x, y, z](EPSG:3857)。 + * @returns {Array|null} 视频地图坐标 [lng, lat],无法转换时返回 null。 + */ + toVideoMapCoordinate(spatialPoint) { + if (!this.coordTransfer || !this.originCoordsLeftTop || !this.originCoordsRightBottom || !this.videoWidth || !this.videoHeight) { + return null; + } + const videoCoord = this.coordTransfer.toVideoCoordinate(spatialPoint); + if (!videoCoord.data64F || videoCoord.data64F.length < 2) { + return null; + } + return transformCoord({ + videoPoint: videoCoord.data64F, + originCoordsRightBottom: this.originCoordsRightBottom, + originCoordsLeftTop: this.originCoordsLeftTop, + videoHeight: this.videoHeight, + videoWidth: this.videoWidth + }); + } + + /** + * @function VideoMap.prototype.getVideoBounds + * @description 获取当前视频画面反投影到地面的覆盖多边形。 + * 顶点顺序为左上 → 右上 → 右下 → 左下;坐标为 EPSG:4326,经纬度,环自动闭合。 + * @param {Object} [options] - 参数。 + * @param {number} [options.maxDistance] - 地面距离相机的最大长度,单位米(EPSG:3857);用于截断过远的地平线交点。 + * @returns {Object|null} GeoJSON Polygon Feature,无法计算时返回 `null`。 + */ + getVideoBounds(options) { + const ring = this._getVideoCornerLngLats(options); + if (!ring) { + return null; + } + return { + type: 'Feature', + properties: {}, + geometry: { + type: 'Polygon', + coordinates: [ring] + } + }; + } + /** * @function VideoMap.prototype.removeLayer * @description 移除图层。 @@ -198,11 +535,230 @@ export class VideoMap extends mapboxgl.Evented { } } + /** + * @function VideoMap.prototype.play + * @description 播放视频。推荐使用 {@link VideoPlayControl} 提供圆形播放/暂停按钮。 + */ + play() { + if (this.videoMapLayer) { + this.videoMapLayer.play(); + } + } + + /** + * @function VideoMap.prototype.pause + * @description 暂停视频。 + */ + pause() { + if (this.videoMapLayer) { + this.videoMapLayer.pause(); + } + } + + /** + * @function VideoMap.prototype.paused + * @description 获取当前视频播放状态。返回 `true` 表示已暂停,返回 `false` 表示正在播放。 + * @returns {boolean} 视频是否暂停。 + */ + paused() { + return this.videoMapLayer ? this.videoMapLayer.paused() : true; + } + + /** + * @function VideoMap.prototype.addControl + * @description 向视频地图添加 MapboxGL 控件。若控件实现了 `setTarget` 且尚无目标,或实现了 `setVideoMap`,会自动注入当前 VideoMap。 + * @param {Object} control - MapboxGL IControl 控件。 + * @param {string} [position] - MapboxGL 原生控件位置:`'top-left'` | `'top-right'` | `'bottom-left'` | `'bottom-right'`。 + * @returns {VideoMap} this。 + */ + addControl(control, position) { + if (!this._mapExisted()) { + this._pendingControls.push({ control, position }); + return this; + } + this._addControl(control, position); + return this; + } + + /** + * @function VideoMap.prototype.removeControl + * @description 移除控件。 + * @param {Object} control - 已添加的控件。 + * @returns {VideoMap} this。 + */ + removeControl(control) { + this._pendingControls = this._pendingControls.filter((item) => item.control !== control); + if (!this.map || !control) { + return this; + } + this.map.removeControl(control); + return this; + } + + /** + * @function VideoMap.prototype.startDraw + * @description 开始点、线、面标绘。单击加点;线、面双击或调用 `finishDraw` 结束当前图形。坐标会转换为真实地理坐标,并随相机更新重投影。推荐使用 {@link VideoMapDrawControl} 提供工具条。 + * @param {string} type - 标绘类型,`'Point'` | `'LineString'` | `'Polygon'`。 + */ + startDraw(type) { + this._getDraw().start(type); + } + + /** + * @event VideoMap#drawstart + * @description 开始标绘时触发。 + * @property {string} type - 标绘类型。 + */ + + /** + * @event VideoMap#drawcreate + * @description 完成一个标绘要素时触发。 + * @property {Object} feature - 新增的 GeoJSON Feature。 + * @property {Object} data - 当前全部标绘结果。 + */ + + /** + * @event VideoMap#drawupdate + * @description 标绘结果或绘制中的图形发生变化时触发,可用于同步到其它地图。 + * @property {Object} data - 已完成的 GeoJSON FeatureCollection。 + * @property {Object} live - 已完成图形加上当前草稿的 GeoJSON FeatureCollection。 + */ + + /** + * @event VideoMap#drawcancel + * @description 取消当前标绘时触发。 + */ + + /** + * @event VideoMap#drawclear + * @description 清空标绘结果时触发。 + */ + + /** + * @event VideoMap#drawmodechange + * @description 绘制模式变化时触发。 + * @property {string} mode - UI 模式,`'simple_select'` | `'draw_point'` | `'draw_line_string'` | `'draw_polygon'`。 + * @property {string|null} type - GeoJSON 类型,`'Point'` | `'LineString'` | `'Polygon'` | `null`。 + */ + + /** + * @event VideoMap#drawselectionchange + * @description 选中要素变化时触发,供后续要素编辑使用。 + * @property {Array} features - 当前选中的 GeoJSON Feature。 + */ + + /** + * @event VideoMap#drawdelete + * @description 删除选中要素时触发。 + * @property {Array} features - 被删除的 GeoJSON Feature。 + * @property {Object} data - 删除后的全部标绘结果。 + */ + + /** + * @function VideoMap.prototype.finishDraw + * @description 结束当前线或面标绘并保存图形。点标绘在单击时即完成,无需调用此方法。 + * @returns {Object|null} 完成的 GeoJSON Feature。 + */ + finishDraw() { + return this._draw ? this._draw.finish() : null; + } + + /** + * @function VideoMap.prototype.cancelDraw + * @description 取消当前正在绘制的图形并退出标绘。 + */ + cancelDraw() { + if (this._draw) { + this._draw.cancel(); + } + } + + /** + * @function VideoMap.prototype.clearDraw + * @description 清空已标绘的点、线、面。 + */ + clearDraw() { + if (this._draw) { + this._draw.clear(); + } + } + + /** + * @function VideoMap.prototype.getDrawData + * @description 获取已标绘要素的 GeoJSON(经纬度,EPSG:4326)。 + * @returns {Object} GeoJSON FeatureCollection。 + */ + getDrawData() { + return this._draw ? this._draw.getData() : { type: 'FeatureCollection', features: [] }; + } + + /** + * @function VideoMap.prototype.getDrawLiveData + * @description 获取已完成标绘加上当前草稿的 GeoJSON(经纬度,EPSG:4326),可用于同步到真实地图。 + * @returns {Object} GeoJSON FeatureCollection。 + */ + getDrawLiveData() { + return this._draw ? this._draw.getLiveData() : { type: 'FeatureCollection', features: [] }; + } + + /** + * @function VideoMap.prototype.getDrawMode + * @description 获取当前标绘类型。未处于标绘状态时返回 `null`。 + * @returns {string|null} `'Point'` | `'LineString'` | `'Polygon'` | `null`。 + */ + getDrawMode() { + return this._draw ? this._draw.getMode() : null; + } + + /** + * @function VideoMap.prototype.getDrawUiMode + * @description 获取当前绘制 UI 模式,对齐 mapbox-gl-draw。 + * @returns {string} `'simple_select'` | `'draw_point'` | `'draw_line_string'` | `'draw_polygon'`。 + */ + getDrawUiMode() { + return this._draw ? this._draw.getUiMode() : 'simple_select'; + } + + /** + * @function VideoMap.prototype.changeDrawMode + * @description 切换绘制模式。`direct_select` 预留给后续顶点编辑,当前按选中处理。 + * @param {string} mode - `'simple_select'` | `'draw_point'` | `'draw_line_string'` | `'draw_polygon'` | `'direct_select'`。 + * @param {Object} [options] - 模式参数,如 `{ featureId }`。 + */ + changeDrawMode(mode, options) { + this._getDraw().changeMode(mode, options); + } + + /** + * @function VideoMap.prototype.deleteDraw + * @description 删除标绘要素。不传 ids 时删除当前选中要素。 + * @param {string|Array} [ids] - 要素 id。 + * @returns {Object} 删除后的 GeoJSON FeatureCollection。 + */ + deleteDraw(ids) { + return this._getDraw().delete(ids); + } + + /** + * @function VideoMap.prototype.getDrawSelected + * @description 获取当前选中的标绘要素。 + * @returns {Object} GeoJSON FeatureCollection。 + */ + getDrawSelected() { + return this._draw + ? this._draw.getSelected() + : { type: 'FeatureCollection', features: [] }; + } + /** * @function VideoMap.prototype.destroy * @description 销毁视频地图。 */ destroy() { + if (this._draw) { + this._draw.destroy(); + this._draw = null; + } this.layerCache = {}; this.sourceCache = {}; if (this.videoMapLayer) { @@ -213,8 +769,141 @@ export class VideoMap extends mapboxgl.Evented { this.map = null; } + _getDraw(options) { + if (!this._draw) { + this._draw = new VideoMapDraw(this, options); + } + return this._draw; + } + + _getVideoCornerLngLats(options) { + const spatials = this._getVideoCornerSpatials(options); + if (!spatials) { + return null; + } + const ring = spatials.map((spatial) => { + const lngLat = proj4('EPSG:3857', 'EPSG:4326', [spatial[0], spatial[1]]); + return [lngLat[0], lngLat[1]]; + }); + ring.push(ring[0].slice()); + return ring; + } + + _getVideoCornerPixels() { + const width = this.videoWidth; + const height = this.videoHeight; + // Mapbox video coordinates: top-left, top-right, bottom-right, bottom-left + return [ + [0, 0], + [width, 0], + [width, height], + [0, height] + ]; + } + + _getVideoCornerSpatials(options) { + if (!this.coordTransfer || !this.videoWidth || !this.videoHeight) { + return null; + } + const maxDistance = this._resolveFootprintMaxDistance(options); + const pixels = this._getVideoCornerPixels(); + const spatials = []; + for (let i = 0; i < pixels.length; i++) { + let spatial = this._pixelToGroundSpatial(pixels[i], maxDistance); + if (!spatial) { + spatial = this._searchGroundOnVerticalEdge(pixels[i][0], pixels[i][1], maxDistance); + } + if (!spatial) { + return null; + } + spatials.push(spatial); + } + return spatials; + } + + _resolveFootprintMaxDistance(options) { + if (options && options.maxDistance > 0) { + return options.maxDistance; + } + const cameraZ = this.coordTransfer && this.coordTransfer._z; + if (cameraZ > 0) { + return Math.max(cameraZ * 12, 300); + } + return 0; + } + + _searchGroundOnVerticalEdge(u, vStart, maxDistance) { + const height = this.videoHeight; + const towardBottom = vStart <= height / 2; + const vEnd = towardBottom ? height : 0; + const steps = 24; + for (let i = 1; i <= steps; i++) { + const v = vStart + (vEnd - vStart) * (i / steps); + const spatial = this._pixelToGroundSpatial([u, v], maxDistance); + if (spatial) { + return spatial; + } + } + return null; + } + + _pixelToGroundSpatial(pixel, maxDistance) { + const spatial = this.coordTransfer.toSpatialCoordinate(pixel); + if (!spatial || spatial.length < 2 || !isFinite(spatial[0]) || !isFinite(spatial[1])) { + return null; + } + const camera = this.coordTransfer.toCameraCoordinate(spatial); + if (camera && !(camera[2] > 0.01)) { + return null; + } + const cameraX = this.coordTransfer._x; + const cameraY = this.coordTransfer._y; + if (maxDistance > 0 && isFinite(cameraX) && isFinite(cameraY)) { + const dx = spatial[0] - cameraX; + const dy = spatial[1] - cameraY; + const dist = Math.hypot(dx, dy); + if (dist > maxDistance) { + const scale = maxDistance / dist; + return [cameraX + dx * scale, cameraY + dy * scale, 0]; + } + } + return spatial; + } + + _addControl(control, position) { + if (control && typeof control.setTarget === 'function' && control.target == null) { + control.setTarget(this); + } else if (control && typeof control.setVideoMap === 'function') { + control.setVideoMap(this); + } + const resolvedPosition = position || (control && typeof control.getDefaultPosition === 'function' && control.getDefaultPosition()); + this.map.addControl(control, resolvedPosition || undefined); + } + + _flushPendingControls() { + const pending = this._pendingControls || []; + this._pendingControls = []; + pending.forEach((item) => { + this._addControl(item.control, item.position); + }); + } + _addVideoLayer(src) { this.videoMapLayer = new VideoMapLayer(this); + /** + * @event VideoMap#play + * @description 视频开始播放时触发。 + */ + this.videoMapLayer.on('play', () => { + this.fire('play'); + }); + /** + * @event VideoMap#pause + * @description 视频暂停时触发。 + */ + this.videoMapLayer.on('pause', () => { + this.fire('pause'); + }); this.videoMapLayer.add(src); this._bindEvents(); } @@ -260,27 +949,43 @@ export class VideoMap extends mapboxgl.Evented { } _bindEvents() { - this.videoMapLayer.on('loaded', async ({ originCoordsLeftTop, originCoordsRightBottom, videoWidth, videoHeight }) => { + this.videoMapLayer.on('loaded', async ({ originCoordsLeftTop, originCoordsRightBottom, originCoordinates, videoWidth, videoHeight }) => { this.originCoordsLeftTop = originCoordsLeftTop; this.originCoordsRightBottom = originCoordsRightBottom; + this.originCoordinates = originCoordinates; if (this.videoWidth === undefined) { this.videoWidth = videoWidth; } if (this.videoHeight === undefined) { this.videoHeight = videoHeight; } - this.coordTransfer = await this._initParameters(this.videoParameters); - this._bindMapEventFn = this._bindMapEvent.bind(this); - MAP_EVENTS.forEach((eventName) => { - this.map.on(eventName, this._bindMapEventFn); + const initialParameters = this.isTimeVarying ? this.videoParameters[0] : this.videoParameters; + this.coordTransfer = await this._initParameters(initialParameters); + if (this.isTimeVarying) { + this.currentTime = initialParameters.time; + this.videoMapLayer.on('timeupdate', ({ time }) => { + this.updateAtTime(time); + }); + } + Object.keys(this._mapEventListeners).forEach((eventName) => { + this._mapEventListeners[eventName].forEach((eventListener) => { + this._addMapEventListener(eventListener, false); + }); }); + /** + * @event VideoMap#load + * @description 视频地图加载完成时触发。此时可调用 addSource/addLayer 叠加矢量数据。 + * @property {mapboxgl.Map} map - 底层 mapbox-gl 地图实例。 + */ this.fire('load', { map: this.map }); }); } _clearEvents() { - MAP_EVENTS.forEach((eventName) => { - this.map.off(eventName, this._bindMapEventFn); + Object.keys(this._mapEventListeners).forEach((eventName) => { + this._mapEventListeners[eventName].forEach((eventListener) => { + this._removeMapEventListener(eventListener); + }); }); } @@ -289,6 +994,7 @@ export class VideoMap extends mapboxgl.Evented { if (this.originCoordsRightBottom && this.originCoordsLeftTop && this.videoWidth && this.videoHeight) { let coord = [e.lngLat.lng, e.lngLat.lat]; if (this.coordTransfer) { + const mapEvent = e; let spatialPoint = this.coordTransfer.toSpatialCoordinate( transformCoordReverse({ coord, @@ -298,10 +1004,17 @@ export class VideoMap extends mapboxgl.Evented { videoWidth: this.videoWidth }) ); - e.spatialPoint = [spatialPoint[0], spatialPoint[1]]; + const spatialPoint2d = [spatialPoint[0], spatialPoint[1]]; + const lngLat = proj4('EPSG:3857', 'EPSG:4326', spatialPoint2d); + return { + ...e, + lngLat: new mapboxgl.LngLat(lngLat[0], lngLat[1]), + spatialPoint: spatialPoint2d, + mapEvent + }; } } } - this.fire(e.type, { mapEvent: e }); + return { ...e, mapEvent: e }; } } \ No newline at end of file diff --git a/src/mapboxgl/mapping/VideoMapDraw.js b/src/mapboxgl/mapping/VideoMapDraw.js new file mode 100644 index 0000000000..674ea239bb --- /dev/null +++ b/src/mapboxgl/mapping/VideoMapDraw.js @@ -0,0 +1,943 @@ +import proj4 from 'proj4'; +import mapboxgl from 'mapbox-gl'; +import distance from '@turf/distance'; +import center from '@turf/center'; +import area from '@turf/area'; +import { Lang } from '@supermapgis/iclient-common/lang/Lang'; + +const SOURCE_ID = 'sm-videomap-draw'; +const PREVIEW_SOURCE_ID = 'sm-videomap-draw-preview'; +const DRAW_TYPES = ['Point', 'LineString', 'Polygon']; +const SELECT_COLOR = '#fbb03b'; +const DEFAULT_COLOR = '#1890ff'; +const MEASURE_LABEL_MS = 3000; + +const DEFAULT_STYLES = { + point: { + 'circle-radius': 5, + 'circle-color': DEFAULT_COLOR, + 'circle-opacity': 1, + 'circle-stroke-width': 1, + 'circle-stroke-color': '#fff' + }, + line: { + 'line-color': DEFAULT_COLOR, + 'line-width': 2, + 'line-opacity': 1 + }, + polygon: { + 'fill-color': DEFAULT_COLOR, + 'fill-opacity': 0.25, + 'line-color': DEFAULT_COLOR, + 'line-width': 2, + 'line-opacity': 1 + }, + selected: { + color: SELECT_COLOR + } +}; + +// 选中时覆盖的颜色属性 +const SELECTABLE_COLOR_PROPS = ['circle-color', 'line-color', 'fill-color']; + +const PREVIEW_PROPS = { + point: ['circle-radius', 'circle-color', 'circle-opacity', 'circle-stroke-width', 'circle-stroke-color'], + line: ['line-color', 'line-width', 'line-opacity', 'line-dasharray'], + polygon: ['fill-color', 'fill-opacity', 'line-color', 'line-width', 'line-opacity', 'line-dasharray'] +}; + +function mergeStyles(base, styles) { + const merged = {}; + Object.keys(DEFAULT_STYLES).forEach((key) => { + const custom = styles && styles[key]; + const allowed = DEFAULT_STYLES[key]; + merged[key] = Object.assign({}, base[key]); + if (custom && typeof custom === 'object') { + Object.keys(custom).forEach((prop) => { + if (Object.prototype.hasOwnProperty.call(allowed, prop) || prop === 'line-dasharray') { + merged[key][prop] = custom[prop]; + } + }); + } + }); + merged.preview = {}; + Object.keys(PREVIEW_PROPS).forEach((key) => { + const custom = styles && styles.preview && styles.preview[key]; + merged.preview[key] = Object.assign({}, base.preview && base.preview[key]); + if (custom && typeof custom === 'object') { + PREVIEW_PROPS[key].forEach((prop) => { + if (custom[prop] !== undefined) { + merged.preview[key][prop] = custom[prop]; + } + }); + } + }); + return merged; +} + +function buildPaint(styles, group, prefixes) { + const styleGroup = styles[group]; + const paint = {}; + Object.keys(styleGroup).forEach((prop) => { + if (prefixes.some((prefix) => prop.indexOf(prefix) === 0)) { + paint[prop] = + SELECTABLE_COLOR_PROPS.indexOf(prop) > -1 ? paintBySelected(styleGroup[prop], styles.selected.color) : styleGroup[prop]; + } + }); + return paint; +} + +const MODE_SIMPLE_SELECT = 'simple_select'; +const MODE_DIRECT_SELECT = 'direct_select'; +const MODE_DRAW_POINT = 'draw_point'; +const MODE_DRAW_LINE_STRING = 'draw_line_string'; +const MODE_DRAW_POLYGON = 'draw_polygon'; + +const TYPE_TO_MODE = { + Point: MODE_DRAW_POINT, + LineString: MODE_DRAW_LINE_STRING, + Polygon: MODE_DRAW_POLYGON +}; + +const MODE_TO_TYPE = { + [MODE_DRAW_POINT]: 'Point', + [MODE_DRAW_LINE_STRING]: 'LineString', + [MODE_DRAW_POLYGON]: 'Polygon' +}; + +function emptyCollection() { + return { type: 'FeatureCollection', features: [] }; +} + +function sameCoord(a, b) { + return a && b && a[0] === b[0] && a[1] === b[1] && (a[2] || 0) === (b[2] || 0); +} + +function toDrawCoord(spatial) { + if (!spatial || spatial.length < 2) { + return null; + } + const lngLat = proj4('EPSG:3857', 'EPSG:4326', [spatial[0], spatial[1]]); + if (spatial.length > 2) { + return [lngLat[0], lngLat[1], spatial[2]]; + } + return lngLat; +} + +function paintBySelected(idleColor, selectedColor) { + return ['case', ['boolean', ['get', 'selected'], false], selectedColor, idleColor]; +} + +function lngLatOf(coord) { + return [coord[0], coord[1]]; +} + +function formatLength(meters) { + if (meters >= 1000) { + return `${(meters / 1000).toFixed(2)}${Lang.i18n('text_videoMapUnitKilometer')}`; + } + return `${meters.toFixed(1)}${Lang.i18n('text_videoMapUnitMeter')}`; +} + +function formatArea(squareMeters) { + if (squareMeters >= 1000000) { + return `${(squareMeters / 1000000).toFixed(2)}${Lang.i18n('text_videoMapUnitSquareKilometer')}`; + } + return `${squareMeters.toFixed(1)}${Lang.i18n('text_videoMapUnitSquareMeter')}`; +} + +/** + * @class VideoMapDraw + * @private + * @classdesc 视频地图点、线、面标绘。顶点按真实地理坐标保存,随相机更新重投影。 + * 交互模式对齐 mapbox-gl-draw:`simple_select` / `draw_point` / `draw_line_string` / `draw_polygon`, + * `direct_select` 预留给后续顶点编辑。 + */ +export default class VideoMapDraw { + constructor(videoMap, options) { + this.videoMap = videoMap; + this._styles = mergeStyles(DEFAULT_STYLES, options && options.styles); + this.mode = null; + this.vertices = []; + this.features = []; + this.selectedIds = []; + this._featureSeq = 0; + this._onClick = this._onClick.bind(this); + this._onDblClick = this._onDblClick.bind(this); + this._onMouseMove = this._onMouseMove.bind(this); + this._onContextMenu = this._onContextMenu.bind(this); + this._onKeyDown = this._onKeyDown.bind(this); + this._measurePopups = []; + this._measureTimer = null; + } + + activate() { + this._ensureLayers(); + this._bind(); + } + + start(type) { + if (DRAW_TYPES.indexOf(type) === -1) { + throw new Error("draw type must be 'Point', 'LineString' or 'Polygon'"); + } + this._clearMeasureLabels(); + this._ensureLayers(); + this._resetDraft(); + this._setSelectedIds([]); + this.mode = type; + this._applyPreviewStyle(); + this._setCursor('crosshair'); + this._setDoubleClickZoom(type === 'Point'); + this._bind(); + this.videoMap.fire('drawstart', { type, mode: this.getUiMode() }); + this._emitModeChange(); + this._emitUpdate(); + } + + changeMode(mode, options) { + const type = MODE_TO_TYPE[mode]; + if (type) { + this.start(type); + return; + } + if (mode === MODE_DIRECT_SELECT) { + const featureId = options && options.featureId; + this._enterSelect(featureId ? [featureId] : this.selectedIds.slice()); + return; + } + this._enterSelect(options && options.featureIds); + } + + finish() { + if (!this.mode || this.mode === 'Point') { + return null; + } + this._dedupeLastVertex(); + const feature = this._createFeature(this.mode, this.vertices); + if (!feature) { + return null; + } + return this._completeFeature(feature); + } + + cancel() { + const hadMode = !!this.mode; + this._resetDraft(); + this.mode = null; + this._setCursor(''); + this._setDoubleClickZoom(true); + if (hadMode) { + this.videoMap.fire('drawcancel'); + this._emitModeChange(); + this._emitUpdate(); + } + } + + clear() { + this._clearMeasureLabels(); + this._resetDraft(); + this.features = []; + this._setSelectedIds([]); + this._syncResult(); + this.videoMap.fire('drawclear'); + this._emitUpdate(); + } + + delete(ids) { + const targetIds = ids == null ? this.selectedIds.slice() : [].concat(ids); + if (!targetIds.length) { + return this.getData(); + } + const idMap = {}; + targetIds.forEach((id) => { + idMap[id] = true; + }); + const removed = this.features.filter((feature) => idMap[feature.id]); + this.features = this.features.filter((feature) => !idMap[feature.id]); + this._setSelectedIds(this.selectedIds.filter((id) => !idMap[id])); + this._syncResult(); + this.videoMap.fire('drawdelete', { features: removed, data: this.getData() }); + this._emitUpdate(); + return this.getData(); + } + + getData() { + return { + type: 'FeatureCollection', + features: this.features.slice() + }; + } + + getLiveData(cursor) { + return { + type: 'FeatureCollection', + features: this.features.concat(this._draftFeatures(cursor)) + }; + } + + getMode() { + return this.mode; + } + + getUiMode() { + return TYPE_TO_MODE[this.mode] || MODE_SIMPLE_SELECT; + } + + getSelectedIds() { + return this.selectedIds.slice(); + } + + getSelected() { + const selected = {}; + this.selectedIds.forEach((id) => { + selected[id] = true; + }); + return { + type: 'FeatureCollection', + features: this.features.filter((feature) => selected[feature.id]) + }; + } + + getStyles() { + return JSON.parse(JSON.stringify(this._styles)); + } + + setStyles(styles) { + this._styles = mergeStyles(this._styles, styles); + const map = this.videoMap.map; + if (!map || !map.getLayer(`${SOURCE_ID}-point`)) { + return; + } + const layers = { + [`${SOURCE_ID}-point`]: buildPaint(this._styles, 'point', ['circle-']), + [`${SOURCE_ID}-line`]: buildPaint(this._styles, 'line', ['line-']), + [`${SOURCE_ID}-fill`]: buildPaint(this._styles, 'polygon', ['fill-']), + [`${SOURCE_ID}-polygon-line`]: buildPaint(this._styles, 'polygon', ['line-']) + }; + Object.keys(layers).forEach((layerId) => { + Object.keys(layers[layerId]).forEach((prop) => { + map.setPaintProperty(layerId, prop, layers[layerId][prop]); + }); + }); + this._applyPreviewStyle(); + } + + _applyPreviewStyle() { + const map = this.videoMap.map; + if (!map || !map.getLayer(`${PREVIEW_SOURCE_ID}-line`)) { + return; + } + const isPolygon = this.mode === 'Polygon'; + const own = this._styles.preview[isPolygon ? 'polygon' : 'line']; + const fallback = isPolygon ? this._styles.polygon : this._styles.line; + const pick = (group, fallbackGroup, prop, defaultValue) => { + if (group[prop] !== undefined) { + return group[prop]; + } + return fallbackGroup && fallbackGroup[prop] !== undefined ? fallbackGroup[prop] : defaultValue; + }; + const lineId = `${PREVIEW_SOURCE_ID}-line`; + map.setPaintProperty(lineId, 'line-color', pick(own, fallback, 'line-color', DEFAULT_COLOR)); + map.setPaintProperty(lineId, 'line-width', pick(own, fallback, 'line-width', 2)); + map.setPaintProperty(lineId, 'line-opacity', pick(own, fallback, 'line-opacity', 1)); + map.setPaintProperty(lineId, 'line-dasharray', pick(own, null, 'line-dasharray', [2, 1])); + if (map.getLayer(`${PREVIEW_SOURCE_ID}-fill`)) { + const fillId = `${PREVIEW_SOURCE_ID}-fill`; + map.setPaintProperty(fillId, 'fill-color', pick(own, this._styles.polygon, 'fill-color', DEFAULT_COLOR)); + map.setPaintProperty(fillId, 'fill-opacity', pick(own, this._styles.polygon, 'fill-opacity', 0.25)); + } + const pointOwn = this._styles.preview.point; + const pointId = `${PREVIEW_SOURCE_ID}-point`; + map.setPaintProperty(pointId, 'circle-radius', pick(pointOwn, null, 'circle-radius', 4)); + map.setPaintProperty(pointId, 'circle-color', pick(pointOwn, null, 'circle-color', '#fff')); + map.setPaintProperty(pointId, 'circle-opacity', pick(pointOwn, null, 'circle-opacity', 1)); + map.setPaintProperty(pointId, 'circle-stroke-width', pick(pointOwn, null, 'circle-stroke-width', 2)); + map.setPaintProperty( + pointId, + 'circle-stroke-color', + pick(pointOwn, null, 'circle-stroke-color', this._styles.point['circle-color']) + ); + } + + destroy() { + this._clearMeasureLabels(); + this._unbind(); + this.mode = null; + this.vertices = []; + this.features = []; + this.selectedIds = []; + this._setCursor(''); + this._setDoubleClickZoom(true); + } + + _enterSelect(featureIds) { + const hadMode = !!this.mode; + this._resetDraft(); + this.mode = null; + this._setCursor(''); + this._setDoubleClickZoom(true); + this._setSelectedIds(featureIds || []); + this._ensureLayers(); + this._bind(); + if (hadMode) { + this.videoMap.fire('drawcancel'); + } + this._emitModeChange(); + this._emitUpdate(); + } + + _ensureLayers() { + const videoMap = this.videoMap; + if (!videoMap.sourceCache[SOURCE_ID]) { + videoMap.addSource(SOURCE_ID, { type: 'geojson', data: emptyCollection() }); + videoMap.addLayer({ + id: `${SOURCE_ID}-fill`, + type: 'fill', + source: SOURCE_ID, + filter: ['==', '$type', 'Polygon'], + paint: buildPaint(this._styles, 'polygon', ['fill-']) + }); + videoMap.addLayer({ + id: `${SOURCE_ID}-polygon-line`, + type: 'line', + source: SOURCE_ID, + filter: ['==', '$type', 'Polygon'], + paint: buildPaint(this._styles, 'polygon', ['line-']) + }); + videoMap.addLayer({ + id: `${SOURCE_ID}-line`, + type: 'line', + source: SOURCE_ID, + filter: ['==', '$type', 'LineString'], + paint: buildPaint(this._styles, 'line', ['line-']) + }); + videoMap.addLayer({ + id: `${SOURCE_ID}-point`, + type: 'circle', + source: SOURCE_ID, + filter: ['==', '$type', 'Point'], + paint: buildPaint(this._styles, 'point', ['circle-']) + }); + } + if (!videoMap.sourceCache[PREVIEW_SOURCE_ID]) { + videoMap.addSource(PREVIEW_SOURCE_ID, { type: 'geojson', data: emptyCollection() }); + videoMap.addLayer({ + id: `${PREVIEW_SOURCE_ID}-fill`, + type: 'fill', + source: PREVIEW_SOURCE_ID, + filter: ['==', '$type', 'Polygon'], + paint: { + 'fill-color': DEFAULT_COLOR, + 'fill-opacity': 0.25 + } + }); + videoMap.addLayer({ + id: `${PREVIEW_SOURCE_ID}-line`, + type: 'line', + source: PREVIEW_SOURCE_ID, + paint: { + 'line-color': DEFAULT_COLOR, + 'line-width': 2, + 'line-dasharray': [2, 1] + } + }); + videoMap.addLayer({ + id: `${PREVIEW_SOURCE_ID}-point`, + type: 'circle', + source: PREVIEW_SOURCE_ID, + paint: { + 'circle-radius': 4, + 'circle-color': '#fff', + 'circle-stroke-width': 2, + 'circle-stroke-color': DEFAULT_COLOR + } + }); + } + } + + _bind() { + const map = this.videoMap.map; + if (!map || this._bound) { + return; + } + map.on('click', this._onClick); + map.on('dblclick', this._onDblClick); + map.on('mousemove', this._onMouseMove); + map.on('contextmenu', this._onContextMenu); + window.addEventListener('keydown', this._onKeyDown); + this._bound = true; + } + + _unbind() { + const map = this.videoMap && this.videoMap.map; + if (map && this._bound) { + map.off('click', this._onClick); + map.off('dblclick', this._onDblClick); + map.off('mousemove', this._onMouseMove); + map.off('contextmenu', this._onContextMenu); + } + window.removeEventListener('keydown', this._onKeyDown); + this._bound = false; + } + + _onClick(e) { + if (!e) { + return; + } + if (!this.mode) { + this._onSelectClick(e); + return; + } + if (!e.lngLat) { + return; + } + if (e.originalEvent && e.originalEvent.button && e.originalEvent.button !== 0) { + return; + } + const coord = toDrawCoord(this.videoMap.toSpatialCoordinate(e.lngLat)); + if (!coord) { + return; + } + if (this.mode === 'Point') { + this._completeFeature(this._createFeature('Point', [coord])); + return; + } + this.vertices.push(coord); + this._syncPreview(); + } + + _onSelectClick(e) { + const ids = this._queryFeatureIds(e); + this._setSelectedIds(ids.length ? [ids[0]] : []); + this._syncResult(); + } + + _completeFeature(feature) { + if (!feature) { + return null; + } + this._resetDraft(); + this.mode = null; + this._setCursor(''); + this._setDoubleClickZoom(true); + this.features.push(feature); + this._setSelectedIds([feature.id]); + this._syncResult(); + this.videoMap.fire('drawcreate', { feature, data: this.getData() }); + this._emitModeChange(); + this._emitUpdate(); + this._showMeasureLabels(feature); + return feature; + } + + _showMeasureLabels(feature) { + this._clearMeasureLabels(); + const map = this.videoMap && this.videoMap.map; + if (!map || !mapboxgl.Popup || !feature || !feature.geometry) { + return; + } + try { + const labels = this._measureLabels(feature); + labels.forEach((item) => { + const position = this._toVideoLngLat(item.coord); + if (!position) { + return; + } + const popup = new mapboxgl.Popup({ + closeButton: false, + closeOnClick: false, + anchor: 'bottom', + offset: [0, -8], + className: 'sm-videomap-draw-measure' + }); + popup.setLngLat(position).setText(item.text).addTo(map); + this._measurePopups.push(popup); + }); + } catch (e) { + this._clearMeasureLabels(); + return; + } + if (!this._measurePopups.length) { + return; + } + this._measureTimer = setTimeout(() => { + this._clearMeasureLabels(); + }, MEASURE_LABEL_MS); + } + + _measureLabels(feature) { + const { type, coordinates } = feature.geometry; + if (type === 'LineString') { + return this._lineMeasureLabels(coordinates); + } + if (type === 'Polygon') { + return this._polygonMeasureLabels(coordinates); + } + return []; + } + + _lineMeasureLabels(coordinates) { + if (!coordinates || coordinates.length < 2) { + return []; + } + const labels = [{ coord: coordinates[0], text: Lang.i18n('text_videoMapMeasurementStart') }]; + let sum = 0; + for (let i = 1; i < coordinates.length; i++) { + sum += distance(lngLatOf(coordinates[i - 1]), lngLatOf(coordinates[i]), { units: 'meters' }); + const text = + i === coordinates.length - 1 + ? `${Lang.i18n('text_videoMapMeasurementTotalDistance')}${formatLength(sum)}` + : formatLength(sum); + labels.push({ coord: coordinates[i], text }); + } + return labels; + } + + _polygonMeasureLabels(coordinates) { + const ring = coordinates && coordinates[0]; + if (!ring || ring.length < 4) { + return []; + } + const polygon = { + type: 'Feature', + properties: {}, + geometry: { + type: 'Polygon', + coordinates: [ring.map(lngLatOf)] + } + }; + const squareMeters = area(polygon); + const centroid = center(polygon); + if (!centroid || !centroid.geometry || !centroid.geometry.coordinates) { + return []; + } + return [ + { + coord: centroid.geometry.coordinates, + text: `${Lang.i18n('text_videoMapMeasurementArea')}${formatArea(squareMeters)}` + } + ]; + } + + _toVideoLngLat(coord) { + if (!coord || !this.videoMap || typeof this.videoMap.toVideoMapCoordinate !== 'function') { + return null; + } + const mercator = proj4('EPSG:4326', 'EPSG:3857', lngLatOf(coord)); + const videoCoord = this.videoMap.toVideoMapCoordinate(mercator); + if (!videoCoord || videoCoord.length < 2 || !isFinite(videoCoord[0]) || !isFinite(videoCoord[1])) { + return null; + } + return videoCoord; + } + + _clearMeasureLabels() { + if (this._measureTimer) { + clearTimeout(this._measureTimer); + this._measureTimer = null; + } + (this._measurePopups || []).forEach((popup) => { + if (popup && popup.remove) { + popup.remove(); + } + }); + this._measurePopups = []; + } + + _queryFeatureIds(e) { + const map = this.videoMap.map; + if (!map || typeof map.queryRenderedFeatures !== 'function' || !e.point) { + return []; + } + const layers = [`${SOURCE_ID}-fill`, `${SOURCE_ID}-polygon-line`, `${SOURCE_ID}-line`, `${SOURCE_ID}-point`].filter((id) => map.getLayer(id)); + if (!layers.length) { + return []; + } + const pad = 8; + const box = [ + [e.point.x - pad, e.point.y - pad], + [e.point.x + pad, e.point.y + pad] + ]; + const queried = map.queryRenderedFeatures(box, { layers }) || []; + const ids = []; + queried.forEach((item) => { + const id = item.id || (item.properties && (item.properties.id || item.properties.drawId)); + if (id && ids.indexOf(id) === -1) { + ids.push(id); + } + }); + return ids; + } + + _onDblClick(e) { + if (!this.mode || this.mode === 'Point') { + return; + } + if (e && e.preventDefault) { + e.preventDefault(); + } + if (e && e.originalEvent && e.originalEvent.preventDefault) { + e.originalEvent.preventDefault(); + } + this.finish(); + } + + _onMouseMove(e) { + if (!this.mode || this.mode === 'Point' || !this.vertices.length || !e || !e.lngLat) { + return; + } + const coord = toDrawCoord(this.videoMap.toSpatialCoordinate(e.lngLat)); + if (!coord) { + return; + } + this._syncPreview(coord); + } + + _onContextMenu(e) { + if (!this.mode || this.mode === 'Point') { + return; + } + if (e && e.preventDefault) { + e.preventDefault(); + } + if (e && e.originalEvent && e.originalEvent.preventDefault) { + e.originalEvent.preventDefault(); + } + this.vertices.pop(); + this._syncPreview(); + } + + _onKeyDown(e) { + const tag = e.target && e.target.tagName; + if (tag === 'INPUT' || tag === 'TEXTAREA') { + return; + } + if (e.key === 'Escape') { + if (this.mode) { + this.cancel(); + } else if (this.selectedIds.length) { + this._setSelectedIds([]); + this._syncResult(); + } + return; + } + if ((e.key === 'Delete' || e.key === 'Backspace') && this.selectedIds.length && !this.mode) { + e.preventDefault(); + this.delete(); + return; + } + if (e.key === 'Enter' && this.mode) { + this.finish(); + } + } + + _createFeature(type, vertices) { + if (type === 'Point') { + if (!vertices.length) { + return null; + } + return this._feature('Point', vertices[0]); + } + if (type === 'LineString') { + if (vertices.length < 2) { + return null; + } + return this._feature('LineString', vertices.slice()); + } + if (vertices.length < 3) { + return null; + } + const ring = vertices.slice(); + if (!sameCoord(ring[0], ring[ring.length - 1])) { + ring.push(ring[0].slice()); + } + return this._feature('Polygon', [ring]); + } + + _feature(type, coordinates) { + this._featureSeq += 1; + const id = `videomap-draw-${this._featureSeq}`; + return { + type: 'Feature', + id, + properties: { drawType: type, id }, + geometry: { type, coordinates } + }; + } + + _syncResult() { + const source = this.videoMap.sourceCache[SOURCE_ID]; + if (source) { + source.setData(this._displayData()); + } + } + + _displayData() { + const selected = {}; + this.selectedIds.forEach((id) => { + selected[id] = true; + }); + return { + type: 'FeatureCollection', + features: this.features.map((feature) => { + return { + type: 'Feature', + id: feature.id, + properties: Object.assign({}, feature.properties, { selected: !!selected[feature.id] }), + geometry: feature.geometry + }; + }) + }; + } + + _syncPreview(cursor) { + const source = this.videoMap.sourceCache[PREVIEW_SOURCE_ID]; + if (!source) { + return; + } + const vertices = cursor ? this.vertices.concat([cursor]) : this.vertices; + const features = []; + vertices.forEach((coord, index) => { + features.push(this._previewFeature(`p${index}`, 'Point', coord)); + }); + if (this.mode === 'LineString' && vertices.length >= 2) { + features.push(this._previewFeature('line', 'LineString', vertices)); + } + if (this.mode === 'Polygon' && vertices.length >= 2) { + if (vertices.length >= 3) { + const ring = vertices.concat([vertices[0]]); + features.push(this._previewFeature('polygon', 'Polygon', [ring])); + } else { + features.push(this._previewFeature('line', 'LineString', vertices)); + } + } + source.setData({ type: 'FeatureCollection', features }); + this._emitUpdate(cursor); + } + + _draftFeatures(cursor) { + if (!this.mode || this.mode === 'Point') { + return []; + } + const vertices = cursor ? this.vertices.concat([cursor]) : this.vertices.slice(); + const features = []; + vertices.forEach((coord, index) => { + features.push({ + type: 'Feature', + id: `videomap-draw-draft-p${index}`, + properties: { drawType: 'Point', draft: true }, + geometry: { type: 'Point', coordinates: coord } + }); + }); + if (this.mode === 'LineString' && vertices.length >= 2) { + features.push({ + type: 'Feature', + id: 'videomap-draw-draft-line', + properties: { drawType: 'LineString', draft: true }, + geometry: { type: 'LineString', coordinates: vertices } + }); + } + if (this.mode === 'Polygon' && vertices.length >= 2) { + if (vertices.length >= 3) { + features.push({ + type: 'Feature', + id: 'videomap-draw-draft-polygon', + properties: { drawType: 'Polygon', draft: true }, + geometry: { type: 'Polygon', coordinates: [vertices.concat([vertices[0]])] } + }); + } else { + features.push({ + type: 'Feature', + id: 'videomap-draw-draft-line', + properties: { drawType: 'LineString', draft: true }, + geometry: { type: 'LineString', coordinates: vertices } + }); + } + } + return features; + } + + _emitUpdate(cursor) { + this.videoMap.fire('drawupdate', { + data: this.getData(), + live: this.getLiveData(cursor) + }); + } + + _emitModeChange() { + this.videoMap.fire('drawmodechange', { + mode: this.getUiMode(), + type: this.mode + }); + } + + _setSelectedIds(ids) { + const next = (ids || []).slice(); + const same = + next.length === this.selectedIds.length && next.every((id, index) => id === this.selectedIds[index]); + this.selectedIds = next; + if (!same) { + this.videoMap.fire('drawselectionchange', { + features: this.getSelected().features + }); + } + } + + _previewFeature(id, type, coordinates) { + return { + type: 'Feature', + id, + properties: {}, + geometry: { type, coordinates } + }; + } + + _resetDraft() { + this.vertices = []; + const source = this.videoMap.sourceCache && this.videoMap.sourceCache[PREVIEW_SOURCE_ID]; + if (source) { + source.setData(emptyCollection()); + } + } + + _dedupeLastVertex() { + const n = this.vertices.length; + if (n >= 2 && sameCoord(this.vertices[n - 1], this.vertices[n - 2])) { + this.vertices.pop(); + } + } + + _setCursor(cursor) { + const map = this.videoMap.map; + if (!map || !map.getCanvas) { + return; + } + const canvas = map.getCanvas(); + if (canvas && canvas.style) { + canvas.style.cursor = cursor; + } + } + + _setDoubleClickZoom(enabled) { + const control = this.videoMap.map && this.videoMap.map.doubleClickZoom; + if (!control) { + return; + } + if (enabled) { + control.enable(); + } else { + control.disable(); + } + } +} + +export { + DRAW_TYPES, + MODE_SIMPLE_SELECT, + MODE_DIRECT_SELECT, + MODE_DRAW_POINT, + MODE_DRAW_LINE_STRING, + MODE_DRAW_POLYGON, + TYPE_TO_MODE, + MODE_TO_TYPE +}; diff --git a/src/mapboxgl/mapping/layers/GeojsonLayer.js b/src/mapboxgl/mapping/layers/GeojsonLayer.js index e90e853c5c..a6bc9188bf 100644 --- a/src/mapboxgl/mapping/layers/GeojsonLayer.js +++ b/src/mapboxgl/mapping/layers/GeojsonLayer.js @@ -1,7 +1,5 @@ -import { featureEach, coordEach } from '@turf/meta'; -import cloneDeep from 'lodash.clonedeep'; -import { transformCoord } from '../utils/VideoMapUtil'; -import proj4 from 'proj4'; +import { transformVideoMapGeoJSON } from '../utils/clipVideoMapGeometry'; + /** * @class GeojsonLayer * @version 11.2.0 @@ -11,14 +9,9 @@ import proj4 from 'proj4'; */ export default class GeojsonLayer { constructor(videoMap) { - const { coordTransfer, originCoordsRightBottom, originCoordsLeftTop, videoWidth, videoHeight, map } = videoMap; - this.map = map; - this.coordTransfer = coordTransfer; + this.videoMap = videoMap; + this.map = videoMap.map; this.layerId = null; - this.originCoordsRightBottom = originCoordsRightBottom; - this.originCoordsLeftTop = originCoordsLeftTop; - this.videoWidth = videoWidth; - this.videoHeight = videoHeight; } /** @@ -33,8 +26,7 @@ export default class GeojsonLayer { return; } if (typeof source === 'object') { - const newData = this.eachData(cloneDeep(source.data)); - layer.source.data = newData; + layer.source.data = this.eachData(source.data); } this.map.addLayer(layer, beforeId); @@ -52,31 +44,13 @@ export default class GeojsonLayer { } /** - * @function GeojsonLayer.prototype.add - * @param {Array} features - Mapbox layer 地图对象。 + * @function GeojsonLayer.prototype.eachData + * @param {Object} features - GeoJSON 数据。 */ eachData(features) { - if (!this.coordTransfer) { - return []; + if (!this.videoMap || !this.videoMap.coordTransfer) { + return features; } - featureEach(features, (currentFeature) => { - coordEach(currentFeature, (curCoords) => { - let transCurCoords = proj4('EPSG:4326', 'EPSG:3857', curCoords); - let transCoords = this.coordTransfer.toVideoCoordinate(transCurCoords); - curCoords.length = 0; - if (transCoords.data64F.length) { - curCoords.push( - ...transformCoord({ - videoPoint: transCoords.data64F, - videoWidth: this.videoWidth, - videoHeight: this.videoHeight, - originCoordsRightBottom: this.originCoordsRightBottom, - originCoordsLeftTop: this.originCoordsLeftTop - }) - ); - } - }); - }); - return features; + return transformVideoMapGeoJSON(features, this.videoMap); } } diff --git a/src/mapboxgl/mapping/layers/VideoMapLayer.js b/src/mapboxgl/mapping/layers/VideoMapLayer.js index 578fcd1c5b..00733f461d 100644 --- a/src/mapboxgl/mapping/layers/VideoMapLayer.js +++ b/src/mapboxgl/mapping/layers/VideoMapLayer.js @@ -35,6 +35,7 @@ export default class VideoMapLayer extends mapboxgl.Evented { this.renderer = new VideoLayerRenderer({ url: this.address, id: this.id, loop: this.loop, autoplay: this.autoplay }); this.video = this.renderer.createVideo(); this.videoDomId = this.renderer.getVideoDomId(); + this._bindPlaybackEvents(); this.video.one('firstplay', () => { if (this.autoplay) { this.play(); @@ -91,16 +92,64 @@ export default class VideoMapLayer extends mapboxgl.Evented { _afterAddVideoLayer() { if (this.autoplay) { - this.map.getSource(this.id).play(); + this.play(); } + this._bindTimeUpdates(); this.fire('loaded', { originCoordsRightBottom: this.originCoordsRightBottom, originCoordsLeftTop: this.originCoordsLeftTop, + originCoordinates: this.originCoordinates, videoWidth: this.videoWidth, videoHeight: this.videoHeight }); } + _bindTimeUpdates() { + const videoElement = this.video.tech && this.video.tech().el(); + if (!videoElement) { + return; + } + this._statsStartTime = performance.now(); + this._statsFrameCount = 0; + this._statsLastMediaTime = 0; + if (videoElement.requestVideoFrameCallback) { + const update = (now, metadata) => { + this._statsFrameCount++; + this._statsLastMediaTime = metadata.mediaTime; + this.fire('timeupdate', { time: metadata.mediaTime }); + if (this._statsFrameCount % 30 === 0) { + this._fireVideoStats(videoElement, metadata.mediaTime); + } + this.frameCallbackId = videoElement.requestVideoFrameCallback(update); + }; + this.frameCallbackId = videoElement.requestVideoFrameCallback(update); + } else { + this.timeUpdateHandler = () => { + this._statsFrameCount++; + this._statsLastMediaTime = this.video.currentTime(); + this.fire('timeupdate', { time: this.video.currentTime() }); + if (this._statsFrameCount % 30 === 0) { + this._fireVideoStats(videoElement, this._statsLastMediaTime); + } + }; + this.video.on('timeupdate', this.timeUpdateHandler); + } + } + + _fireVideoStats(videoElement, mediaTime) { + const elapsed = (performance.now() - this._statsStartTime) / 1000; + const quality = videoElement.getVideoPlaybackQuality ? videoElement.getVideoPlaybackQuality() : null; + this.fire('videostats', { + mediaTime, + decodedFrames: quality ? quality.totalVideoFrames : videoElement.webkitDecodedFrameCount, + droppedFrames: quality ? quality.droppedVideoFrames : videoElement.webkitDroppedFrameCount, + measuredFps: elapsed ? this._statsFrameCount / elapsed : 0, + videoWidth: this.videoWidth, + videoHeight: this.videoHeight, + duration: this.video.duration() + }); + } + _calcCoords(videoMap) { const { width, height, videoHeight, videoWidth } = videoMap; const calcWidth = videoWidth || this.videoWidth; @@ -124,6 +173,7 @@ export default class VideoMapLayer extends mapboxgl.Evented { }); this.originCoordsLeftTop = coords[0]; this.originCoordsRightBottom = coords[2]; + this.originCoordinates = coords; return coords; } /** @@ -131,14 +181,54 @@ export default class VideoMapLayer extends mapboxgl.Evented { * @description 播放视频。 */ play() { - this.video.play(); + if (this.video) { + this.video.play(); + } + const source = this._getVideoSource(); + if (source && typeof source.play === 'function') { + source.play(); + } } /** * @function VideoMapLayer.prototype.pause * @description 暂停视频。 */ pause() { - this.video.pause(); + if (this.video) { + this.video.pause(); + } + const source = this._getVideoSource(); + if (source && typeof source.pause === 'function') { + source.pause(); + } + } + /** + * @function VideoMapLayer.prototype.paused + * @description 获取视频是否处于暂停状态。 + * @returns {boolean} 视频是否暂停。 + */ + paused() { + if (this.video && typeof this.video.paused === 'function') { + return this.video.paused(); + } + return true; + } + _bindPlaybackEvents() { + if (!this.video) { + return; + } + this.video.on('play', () => { + this.fire('play'); + }); + this.video.on('pause', () => { + this.fire('pause'); + }); + } + _getVideoSource() { + if (!this.map || !this.id || typeof this.map.getSource !== 'function') { + return null; + } + return this.map.getSource(this.id) || null; } /** * @function VideoMapLayer.prototype.remove @@ -146,6 +236,13 @@ export default class VideoMapLayer extends mapboxgl.Evented { */ remove() { if (this.id) { + const videoElement = this.video && this.video.tech && this.video.tech().el(); + if (videoElement && this.frameCallbackId && videoElement.cancelVideoFrameCallback) { + videoElement.cancelVideoFrameCallback(this.frameCallbackId); + } + if (this.timeUpdateHandler) { + this.video.off('timeupdate', this.timeUpdateHandler); + } this.map.removeLayer(this.id); this.map.removeSource(this.id); document.body.removeChild(document.getElementById(this.id)); diff --git a/src/mapboxgl/mapping/utils/VideoMapUtil.js b/src/mapboxgl/mapping/utils/VideoMapUtil.js index 2fbae21ae9..e09f7f22ab 100644 --- a/src/mapboxgl/mapping/utils/VideoMapUtil.js +++ b/src/mapboxgl/mapping/utils/VideoMapUtil.js @@ -30,46 +30,229 @@ export const fovYToFy = (fovY, videoHeight) => { return videoHeight / (2 * Math.tan(fovY / 2 * Math.PI / 180)); } +/** 连续航向变化累计超过该角度时,视为一次快转(度)。 */ +export const ANGLE_SNAP_THRESHOLD = 45; +/** 快转检测的最大时间窗口(秒)。 */ +export const HEADING_SWEEP_WINDOW = 2; +/** 快转过程中保持起点姿态的时间比例,接近终点再切到 B。 */ +export const HEADING_SWEEP_HOLD_RATIO = 0.95; +const YAW_EPS = 0.5; + +export function shortestAngleDelta(from, to) { + return ((to - from) % 360 + 540) % 360 - 180; +} + +export function lerpAngle(from, to, t) { + return from + shortestAngleDelta(from, to) * t; +} + +export function findParamIndexAtTime(params, time) { + if (!params || !params.length) { + return 0; + } + if (time <= params[0].time) { + return 0; + } + const last = params.length - 1; + if (time >= params[last].time) { + return last; + } + let lo = 0; + let hi = last; + while (lo <= hi) { + const mid = (lo + hi) >> 1; + if (params[mid].time <= time && params[mid + 1].time > time) { + return mid; + } + if (params[mid].time < time) { + lo = mid + 1; + } else { + hi = mid - 1; + } + } + return Math.max(0, Math.min(last, lo)); +} + +/** + * 从当前关键帧向前后扩展,找出同一方向上的短时大角度航向变化。 + * 用于避免 A→B 快转时用中间朝向把 B 侧要素提前投进画面。 + */ +export function findHeadingSweep(params, index, maxWindow = HEADING_SWEEP_WINDOW, minDelta = ANGLE_SNAP_THRESHOLD) { + if (!params || !params.length || index < 0 || index >= params.length) { + return null; + } + const stepDelta = (i) => shortestAngleDelta(params[i].yaw, params[i + 1].yaw); + const isNoise = (d) => Math.abs(d) < YAW_EPS; + let dir = 0; + if (index < params.length - 1 && !isNoise(stepDelta(index))) { + dir = Math.sign(stepDelta(index)); + } + if (!dir && index > 0 && !isNoise(stepDelta(index - 1))) { + dir = Math.sign(stepDelta(index - 1)); + } + if (!dir) { + return null; + } + + let start = index; + while (start > 0) { + const d = stepDelta(start - 1); + if (!isNoise(d) && Math.sign(d) !== dir) { + break; + } + if (params[index].time - params[start - 1].time > maxWindow) { + break; + } + start--; + } + + let end = Math.min(index, params.length - 1); + while (end < params.length - 1) { + const d = stepDelta(end); + if (!isNoise(d) && Math.sign(d) !== dir) { + break; + } + if (params[end + 1].time - params[start].time > maxWindow) { + break; + } + end++; + } + + if (end <= start) { + return null; + } + const delta = shortestAngleDelta(params[start].yaw, params[end].yaw); + const span = params[end].time - params[start].time; + if (Math.abs(delta) < minDelta || span <= 0 || span > maxWindow) { + return null; + } + return { + startIndex: start, + endIndex: end, + start: params[start], + end: params[end], + delta, + span + }; +} + +export function interpolateCameraPose(prev, next, ratio) { + const t = ratio; + const lerp = (a, b) => a + (b - a) * t; + return { + pitch: lerpAngle(prev.pitch, next.pitch, t), + roll: lerpAngle(prev.roll, next.roll, t), + yaw: lerpAngle(prev.yaw, next.yaw, t), + x: lerp(prev.x, next.x), + y: lerp(prev.y, next.y), + z: lerp(prev.z, next.z), + fovX: lerp(prev.fovX, next.fovX), + fovY: lerp(prev.fovY, next.fovY), + centerX: lerp(prev.centerX, next.centerX), + centerY: lerp(prev.centerY, next.centerY) + }; +} + +/** + * 解析当前时间应使用的相机姿态。 + * 若处于短时大角度航向快转中,在接近终点前始终使用起点 A。 + * 不能按相邻 20°/45° 关键帧成对切换,否则画面只转到约 20° 就会用到下一帧朝向。 + */ +export function resolveCameraPose(params, time) { + if (!params || !params.length) { + return null; + } + const index = findParamIndexAtTime(params, time); + const prev = params[index]; + const next = params[index + 1] || prev; + const dt = (next.time || 0) - (prev.time || 0); + const ratio = dt > 0 ? (time - prev.time) / dt : 0; + const sweep = findHeadingSweep(params, index); + if (sweep) { + const r = sweep.span > 0 ? (time - sweep.start.time) / sweep.span : 1; + return r >= HEADING_SWEEP_HOLD_RATIO ? sweep.end : sweep.start; + } + return interpolateCameraPose(prev, next, ratio); +} + /** * @private */ export class FastRangeSearcher { constructor(sortedArray) { + this.raw = sortedArray.slice(); this.data = sortedArray.map(n => Math.round(n * 1000)); } - findNearest(target) { + /** + * 查找 target 落入的区间 [data[index], data[index+1]],并返回插值比例。 + * @param {number} target - 目标时间(秒)。 + * @returns {{index: number, ratio: number}|null} index 为前一个关键帧索引,ratio 为 [0,1] 插值比例。 + */ + findRange(target) { + if (!this.data.length) { + return null; + } const targetInt = Math.round(target * 1000); - const minVal = targetInt; - const maxVal = targetInt + 3000; - let closestIndex = -1; - let minDiff = Infinity; + // target 早于首个关键帧,取首帧 + if (targetInt <= this.data[0]) { + return { index: 0, ratio: 0 }; + } + // target 晚于末个关键帧,取末帧 + const last = this.data.length - 1; + if (targetInt >= this.data[last]) { + return { index: last, ratio: 0 }; + } - for (let i = 0; i < this.data.length; i++) { - const current = this.data[i]; - - if (current > maxVal) { - break + // 二分查找 target 所在区间 + let lo = 0; + let hi = last; + while (lo <= hi) { + const mid = (lo + hi) >> 1; + if (this.data[mid] <= targetInt && this.data[mid + 1] > targetInt) { + const span = this.data[mid + 1] - this.data[mid]; + const ratio = span > 0 ? (targetInt - this.data[mid]) / span : 0; + return { index: mid, ratio }; } - - if (current >= minVal) { - const diff = current - targetInt; - if (diff < minDiff) { - minDiff = diff; - closestIndex = i; - } + if (this.data[mid] < targetInt) { + lo = mid + 1; + } else { + hi = mid - 1; } } + return { index: lo, ratio: 0 }; + } - if (closestIndex !== -1) { - return { - value: +(this.data[closestIndex] / 1000).toFixed(3) - }; + /** + * 查找不小于 target 的最近关键帧,返回其时间值(秒)。 + * @param {number} target - 目标时间(秒)。 + * @returns {{value: number}|null} value 为命中的关键帧时间值(秒)。 + */ + findNearest(target) { + if (!this.data.length) { + return null; } - - return null; + const targetInt = Math.round(target * 1000); + // 二分查找第一个 >= target 的索引 + let lo = 0; + let hi = this.data.length - 1; + let result = -1; + while (lo <= hi) { + const mid = (lo + hi) >> 1; + if (this.data[mid] >= targetInt) { + result = mid; + hi = mid - 1; + } else { + lo = mid + 1; + } + } + // target 晚于末帧,取末帧 + if (result === -1) { + result = this.data.length - 1; + } + return { value: this.raw[result] }; } } @@ -123,14 +306,19 @@ export function smartTimeProcessor(interval, data, properties = []) { if (useInterpolation) { const ratio = next.time === current.time ? 0 : (t - current.time) / (next.time - current.time); + const poseT = (properties.indexOf('yaw') !== -1 && Math.abs(shortestAngleDelta(current.yaw, next.yaw)) >= ANGLE_SNAP_THRESHOLD) + ? (ratio >= HEADING_SWEEP_HOLD_RATIO ? 1 : 0) + : ratio; let res = {}; properties.forEach(prop => { if (prop === 'extent') { res[prop] = current[prop].map((item, index) => { - return [current[prop][index].x + (next[prop][index].x - current[prop][index].x) * ratio, current[prop][index].y + (next[prop][index].y - current[prop][index].y) * ratio]; + return [current[prop][index].x + (next[prop][index].x - current[prop][index].x) * poseT, current[prop][index].y + (next[prop][index].y - current[prop][index].y) * poseT]; }); + } else if (prop === 'yaw' || prop === 'pitch' || prop === 'roll') { + res[prop] = +lerpAngle(current[prop], next[prop], poseT); } else { - const value = current[prop] + (next[prop] - current[prop]) * ratio; + const value = current[prop] + (next[prop] - current[prop]) * poseT; res[prop] = +value; } }); @@ -140,13 +328,22 @@ export function smartTimeProcessor(interval, data, properties = []) { ...res }); } else { - if (current.time === t) { - result.push(formatPoint(current)); - dataPtr++; - } else if (next.time === t) { - result.push(formatPoint(next)); + // 降采样:在每个目标时间点 t 选取最近的关键帧,并去重。 + // 旧实现要求 current.time/next.time 与 t 严格相等才入队, + // 当原始时间步长(如33/34ms交替)与目标间隔(如330ms)不对齐时会丢掉几乎所有帧, + // 导致 timeParams 仅剩零散几帧、画面长时间不更新。 + while (dataPtr < processed.length - 1 && processed[dataPtr + 1].time <= t) { dataPtr++; } + const cur = processed[dataPtr]; + const nxt = processed[dataPtr + 1]; + let candidate = cur; + if (nxt && Math.abs(nxt.time - t) < Math.abs(cur.time - t)) { + candidate = nxt; + } + if (result.length === 0 || result[result.length - 1].time !== formatPoint(candidate).time) { + result.push(formatPoint(candidate)); + } } } return result; diff --git a/src/mapboxgl/mapping/utils/clipVideoMapGeometry.js b/src/mapboxgl/mapping/utils/clipVideoMapGeometry.js new file mode 100644 index 0000000000..20cbb158a5 --- /dev/null +++ b/src/mapboxgl/mapping/utils/clipVideoMapGeometry.js @@ -0,0 +1,424 @@ +import { featureEach } from '@turf/meta'; +import cloneDeep from 'lodash.clonedeep'; +import proj4 from 'proj4'; +import { transformCoord } from './VideoMapUtil'; + +export const CAMERA_Z_NEAR = 0.01; +export const VIEW_MARGIN_RATIO = 0.05; + +export function getImageClipRect(videoWidth, videoHeight, marginRatio = VIEW_MARGIN_RATIO) { + const mx = videoWidth * marginRatio; + const my = videoHeight * marginRatio; + return { + minX: -mx, + minY: -my, + maxX: videoWidth + mx, + maxY: videoHeight + my + }; +} + +export function isInImageRect(uv, rect) { + return !!(uv && uv.length >= 2 && uv[0] >= rect.minX && uv[0] <= rect.maxX && uv[1] >= rect.minY && uv[1] <= rect.maxY); +} + +function interpolate(a, b, t) { + return [a[0] + t * (b[0] - a[0]), a[1] + t * (b[1] - a[1])]; +} + +function interpolateCamera(a, b, zNear, projectFn) { + const denom = b.camera[2] - a.camera[2]; + const t = denom === 0 ? 0 : (zNear - a.camera[2]) / denom; + const camera = [ + a.camera[0] + t * (b.camera[0] - a.camera[0]), + a.camera[1] + t * (b.camera[1] - a.camera[1]), + zNear + ]; + return { + camera, + uv: projectFn(camera) + }; +} + +export function clipSegmentToRect(x0, y0, x1, y1, rect) { + const dx = x1 - x0; + const dy = y1 - y0; + let t0 = 0; + let t1 = 1; + const p = [-dx, dx, -dy, dy]; + const q = [x0 - rect.minX, rect.maxX - x0, y0 - rect.minY, rect.maxY - y0]; + for (let i = 0; i < 4; i++) { + if (p[i] === 0) { + if (q[i] < 0) { + return null; + } + } else { + const t = q[i] / p[i]; + if (p[i] < 0) { + if (t > t1) { + return null; + } + if (t > t0) { + t0 = t; + } + } else { + if (t < t0) { + return null; + } + if (t < t1) { + t1 = t; + } + } + } + } + return [ + [x0 + t0 * dx, y0 + t0 * dy], + [x0 + t1 * dx, y0 + t1 * dy] + ]; +} + +export function clipPolylineToRect(points, rect) { + const parts = []; + let current = []; + for (let i = 1; i < points.length; i++) { + const a = points[i - 1]; + const b = points[i]; + if (!a || !b) { + continue; + } + const clipped = clipSegmentToRect(a[0], a[1], b[0], b[1], rect); + if (!clipped) { + if (current.length >= 2) { + parts.push(current); + } + current = []; + continue; + } + if (!current.length) { + current.push(clipped[0], clipped[1]); + continue; + } + const last = current[current.length - 1]; + if (Math.abs(last[0] - clipped[0][0]) < 1e-6 && Math.abs(last[1] - clipped[0][1]) < 1e-6) { + current.push(clipped[1]); + } else { + if (current.length >= 2) { + parts.push(current); + } + current = [clipped[0], clipped[1]]; + } + } + if (current.length >= 2) { + parts.push(current); + } + return parts; +} + +export function clipPolygonToRect(ring, rect) { + const edges = [ + { + inside: (p) => p[0] >= rect.minX, + intersect: (a, b) => interpolate(a, b, (b[0] - a[0]) === 0 ? 0 : (rect.minX - a[0]) / (b[0] - a[0])) + }, + { + inside: (p) => p[0] <= rect.maxX, + intersect: (a, b) => interpolate(a, b, (b[0] - a[0]) === 0 ? 0 : (rect.maxX - a[0]) / (b[0] - a[0])) + }, + { + inside: (p) => p[1] >= rect.minY, + intersect: (a, b) => interpolate(a, b, (b[1] - a[1]) === 0 ? 0 : (rect.minY - a[1]) / (b[1] - a[1])) + }, + { + inside: (p) => p[1] <= rect.maxY, + intersect: (a, b) => interpolate(a, b, (b[1] - a[1]) === 0 ? 0 : (rect.maxY - a[1]) / (b[1] - a[1])) + } + ]; + let output = uncloseRing(ring); + for (let e = 0; e < edges.length; e++) { + const edge = edges[e]; + if (!output.length) { + break; + } + const input = output; + output = []; + for (let i = 0; i < input.length; i++) { + const cur = input[i]; + const prev = input[(i + input.length - 1) % input.length]; + const curIn = edge.inside(cur); + const prevIn = edge.inside(prev); + if (curIn) { + if (!prevIn) { + output.push(edge.intersect(prev, cur)); + } + output.push(cur); + } else if (prevIn) { + output.push(edge.intersect(prev, cur)); + } + } + } + return output.length >= 3 ? closeRing(output) : []; +} + +export function clipPolylineNearPlane(points, zNear, projectFn) { + const parts = []; + let current = []; + for (let i = 0; i < points.length; i++) { + const p = points[i]; + const visible = p.camera && p.camera[2] > zNear; + if (i === 0) { + if (visible) { + current.push(withUv(p, projectFn)); + } + continue; + } + const prev = points[i - 1]; + const prevVisible = prev.camera && prev.camera[2] > zNear; + if (prevVisible && visible) { + current.push(withUv(p, projectFn)); + } else if (prevVisible && !visible) { + current.push(interpolateCamera(prev, p, zNear, projectFn)); + if (current.length >= 2) { + parts.push(current); + } + current = []; + } else if (!prevVisible && visible) { + current.push(interpolateCamera(prev, p, zNear, projectFn)); + current.push(withUv(p, projectFn)); + } + } + if (current.length >= 2) { + parts.push(current); + } + return parts; +} + +export function clipRingNearPlane(points, zNear, projectFn) { + const ring = uncloseProjectedRing(points); + if (!ring.length) { + return []; + } + const output = []; + for (let i = 0; i < ring.length; i++) { + const cur = ring[i]; + const prev = ring[(i + ring.length - 1) % ring.length]; + const curIn = cur.camera && cur.camera[2] > zNear; + const prevIn = prev.camera && prev.camera[2] > zNear; + if (curIn) { + if (!prevIn) { + output.push(interpolateCamera(prev, cur, zNear, projectFn)); + } + output.push(withUv(cur, projectFn)); + } else if (prevIn) { + output.push(interpolateCamera(prev, cur, zNear, projectFn)); + } + } + return output; +} + +function withUv(point, projectFn) { + if (point.uv && point.uv.length >= 2) { + return point; + } + return { + camera: point.camera, + uv: projectFn(point.camera) + }; +} + +function uncloseRing(ring) { + if (ring.length >= 2 && samePoint(ring[0], ring[ring.length - 1])) { + return ring.slice(0, -1); + } + return ring.slice(); +} + +function uncloseProjectedRing(ring) { + if (ring.length >= 2 && sameProjected(ring[0], ring[ring.length - 1])) { + return ring.slice(0, -1); + } + return ring.slice(); +} + +function closeRing(ring) { + if (!ring.length) { + return ring; + } + if (samePoint(ring[0], ring[ring.length - 1])) { + return ring; + } + return ring.concat([ring[0].slice ? ring[0].slice() : ring[0]]); +} + +function samePoint(a, b) { + return a && b && a[0] === b[0] && a[1] === b[1]; +} + +function sameProjected(a, b) { + if (!a || !b || !a.camera || !b.camera) { + return false; + } + return a.camera[0] === b.camera[0] && a.camera[1] === b.camera[1] && a.camera[2] === b.camera[2]; +} + +function toMapCoord(uv, videoMap) { + const { originCoordsRightBottom, originCoordsLeftTop, videoWidth, videoHeight } = videoMap; + return transformCoord({ + videoPoint: uv, + videoWidth, + videoHeight, + originCoordsRightBottom, + originCoordsLeftTop + }); +} + +function projectLngLat(coord, coordTransfer) { + const world = proj4('EPSG:4326', 'EPSG:3857', coord); + const camera = coordTransfer.toCameraCoordinate(world); + if (!camera) { + return { camera: [0, 0, -1], uv: null }; + } + return { + camera, + uv: coordTransfer.projectCameraToVideo(camera, CAMERA_Z_NEAR) + }; +} + +function transformPoint(coord, videoMap, rect) { + const projected = projectLngLat(coord, videoMap.coordTransfer); + if (!projected.uv || !isInImageRect(projected.uv, rect)) { + return null; + } + return toMapCoord(projected.uv, videoMap); +} + +function transformLine(coords, videoMap, rect) { + const projected = coords.map((coord) => projectLngLat(coord, videoMap.coordTransfer)); + const nearParts = clipPolylineNearPlane( + projected, + CAMERA_Z_NEAR, + (camera) => videoMap.coordTransfer.projectCameraToVideo(camera, CAMERA_Z_NEAR) + ); + const mapParts = []; + nearParts.forEach((part) => { + const uvs = part.map((item) => item.uv).filter((uv) => uv && uv.length >= 2); + clipPolylineToRect(uvs, rect).forEach((clipped) => { + mapParts.push(clipped.map((uv) => toMapCoord(uv, videoMap))); + }); + }); + return mapParts; +} + +function transformRing(coords, videoMap, rect) { + const projected = coords.map((coord) => projectLngLat(coord, videoMap.coordTransfer)); + const nearClipped = clipRingNearPlane( + projected, + CAMERA_Z_NEAR, + (camera) => videoMap.coordTransfer.projectCameraToVideo(camera, CAMERA_Z_NEAR) + ); + const uvs = nearClipped.map((item) => item.uv).filter((uv) => uv && uv.length >= 2); + if (uvs.length < 3) { + return []; + } + return clipPolygonToRect(uvs, rect).map((uv) => toMapCoord(uv, videoMap)); +} + +function transformPolygon(coordinates, videoMap, rect) { + if (!coordinates || !coordinates.length) { + return null; + } + const outer = transformRing(coordinates[0], videoMap, rect); + if (outer.length < 4) { + return null; + } + const rings = [outer]; + for (let i = 1; i < coordinates.length; i++) { + const hole = transformRing(coordinates[i], videoMap, rect); + if (hole.length >= 4) { + rings.push(hole); + } + } + return rings; +} + +function transformGeometry(geometry, videoMap, rect) { + if (!geometry || !geometry.type) { + return null; + } + const { type, coordinates, geometries } = geometry; + if (type === 'Point') { + const coord = transformPoint(coordinates, videoMap, rect); + return coord ? { type, coordinates: coord } : null; + } + if (type === 'MultiPoint') { + const coords = (coordinates || []).map((coord) => transformPoint(coord, videoMap, rect)).filter(Boolean); + return coords.length ? { type, coordinates: coords } : null; + } + if (type === 'LineString') { + const parts = transformLine(coordinates, videoMap, rect); + if (!parts.length) { + return null; + } + if (parts.length === 1) { + return { type: 'LineString', coordinates: parts[0] }; + } + return { type: 'MultiLineString', coordinates: parts }; + } + if (type === 'MultiLineString') { + const parts = []; + (coordinates || []).forEach((line) => { + transformLine(line, videoMap, rect).forEach((part) => parts.push(part)); + }); + return parts.length ? { type: 'MultiLineString', coordinates: parts } : null; + } + if (type === 'Polygon') { + const polygon = transformPolygon(coordinates, videoMap, rect); + return polygon ? { type: 'Polygon', coordinates: polygon } : null; + } + if (type === 'MultiPolygon') { + const polygons = (coordinates || []).map((polygon) => transformPolygon(polygon, videoMap, rect)).filter(Boolean); + return polygons.length ? { type: 'MultiPolygon', coordinates: polygons } : null; + } + if (type === 'GeometryCollection') { + const nextGeometries = (geometries || []).map((item) => transformGeometry(item, videoMap, rect)).filter(Boolean); + return nextGeometries.length ? { type: 'GeometryCollection', geometries: nextGeometries } : null; + } + return null; +} + +/** + * 将地理 GeoJSON 投影到视频地图,并裁掉相机后方、视野外的几何。 + * @param {Object} data - GeoJSON Feature / FeatureCollection / Geometry。 + * @param {Object} videoMap - VideoMap 实例。 + * @returns {Object} 裁剪后的 GeoJSON。 + */ +export function transformVideoMapGeoJSON(data, videoMap) { + if (!data || !videoMap || !videoMap.coordTransfer) { + return data; + } + const rect = getImageClipRect(videoMap.videoWidth, videoMap.videoHeight); + const cloned = cloneDeep(data); + if (cloned.type === 'FeatureCollection') { + const features = []; + featureEach(cloned, (feature) => { + const geometry = transformGeometry(feature.geometry, videoMap, rect); + if (geometry) { + feature.geometry = geometry; + features.push(feature); + } + }); + cloned.features = features; + return cloned; + } + if (cloned.type === 'Feature') { + const geometry = transformGeometry(cloned.geometry, videoMap, rect); + if (!geometry) { + return { + type: 'FeatureCollection', + features: [] + }; + } + cloned.geometry = geometry; + return cloned; + } + const geometry = transformGeometry(cloned, videoMap, rect); + return geometry || { type: 'FeatureCollection', features: [] }; +} diff --git a/src/mapboxgl/namespace.js b/src/mapboxgl/namespace.js index e402cfe02a..ed5b2650d2 100644 --- a/src/mapboxgl/namespace.js +++ b/src/mapboxgl/namespace.js @@ -1,7 +1,7 @@ /* Copyright© 2000 - 2021 SuperMap Software Co.Ltd. All rights reserved. * This program are made available under the terms of the Apache License, Version 2.0 * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/ - import { Logo } from './control'; + import { Logo, VideoMapDrawControl, VideoPlayControl } from './control'; import { Util, decryptSources } from './core'; import { GraphThemeLayer, @@ -76,6 +76,8 @@ mapboxgl.supermap.map = mapboxgl.supermap.map || {}; mapboxgl.supermap.LogoControl = Logo; mapboxgl.supermap.Logo = Logo; + mapboxgl.supermap.VideoMapDrawControl = VideoMapDrawControl; + mapboxgl.supermap.VideoPlayControl = VideoPlayControl; mapboxgl.supermap.Util = Util; mapboxgl.supermap.decryptSources = decryptSources; mapboxgl.supermap.WebMap = WebMap; diff --git a/src/mapboxgl/overlay/VideoLayer.js b/src/mapboxgl/overlay/VideoLayer.js index 4c1d65bf89..c0a080933d 100644 --- a/src/mapboxgl/overlay/VideoLayer.js +++ b/src/mapboxgl/overlay/VideoLayer.js @@ -53,6 +53,8 @@ * @param {number} [options.interval=0.1] 非定点视频参数间隔,单位秒,当视频参数为数组时,会根据该参数将 VideoTimeParameters.time 处理成均匀间隔的视频参数,默认为 0.1 秒,最小值为 0.001 秒。 * @param {string} [options.id] - 视频图层 ID。默认使用 CommonUtil.createUniqueID("VideoLayer_") 创建专题图层 ID。 * @param {Array} [options.clipRegion] -裁剪范围 + * @fires VideoLayer#play + * @fires VideoLayer#pause * @extends {mapboxgl.Evented} * @usage * ``` @@ -116,6 +118,7 @@ this.renderer = new VideoLayerRenderer({ url: this.url, id: this.layerId }); this.video = this.renderer.createVideo(); this.videoDomId = this.renderer.getVideoDomId(); + this._bindPlaybackEvents(); this.video.one('firstplay', () => { this.video.play(); @@ -129,6 +132,7 @@ this._initParameters(this.videoParameters[0]).then((coordTransfer) => { this.coordTransfer = coordTransfer; this.timeParams = {}; + let baseRatio; this.videoParameters.forEach((dataItem) => { const { pitch, roll, yaw, x, y, z, fovX, fovY, centerX, centerY } = dataItem; const time = dataItem.time || 0; @@ -186,16 +190,24 @@ let tl = map.project([result[0], result[1]]); let size = [Math.abs(br.x - tl.x), Math.abs(br.y - tl.y)]; let ratio = size[0] / size[1]; + if (baseRatio === undefined) { + baseRatio = ratio; + } this.timeParams[time].ratio = ratio; - this.timeParams[time].dsize = new this.cv.Size(realHeight * ratio, realHeight); + // 输出帧尺寸必须全程恒定:video source 的 WebGL 纹理按首帧尺寸创建, + // 后续帧尺寸一旦变化,texSubImage2D 会静默失败,表现为视频消失/后半段画面不更新。 + // realHeight 恒定(视频高或裁剪区高),仅宽度随 ratio 变化, + // 这里统一为基准时刻宽度,并在下方把目标点横向缩放对齐,显示几何保持等价。 + this.timeParams[time].dsize = new this.cv.Size(realHeight * baseRatio, realHeight); let realX = realHeight * ratio; let realY = realHeight; let ratioX = realX / size[0]; let ratioY = realY / size[1]; let realRatio = Math.min(ratioX, ratioY); pointCoords = this._getPixelBbox(pointCoords, result, this.timeParams[time].allContained); - pointCoords = pointCoords.map((item) => { - return item * realRatio; + const scaleX = baseRatio / ratio; + pointCoords = pointCoords.map((item, index) => { + return (index % 2 === 0 ? item * scaleX : item) * realRatio; }); originBounds = this._getPixelBbox(originBounds); this.timeParams[time].originBounds = originBounds.map((item) => { @@ -271,8 +283,25 @@ that.dsize = that.timeParams[that.beginIndex].dsize; let dstTri = that.timeParams[that.beginIndex].dstTri; let canvas = document.createElement('canvas'); + // 裁剪遮罩只依赖基准参数(originBounds / dsize 均恒定),创建一次即可。 + // 原实现每帧新建 clipMat/dst1 且从不 delete,WASM 内存只增不减, + // 最终 OpenCV 分配失败,表现为画面不再更新。 let { clipMat, dst1 } = this._updateMask(canvas, that.timeParams[that.beginIndex].realHeight, that.timeParams[that.beginIndex].ratio); let count = 0; + let lastGoodFrame = null; + // 输出帧尺寸已恒定,复用同一 ImageData,避免每帧分配约 30MB(4K) 大数组带来的 GC 停顿 + let outFrame = null; + // 单应矩阵只在时间参数切换(dstTri 变化)时改变,缓存复用: + // 省掉每帧一次 findHomography 的 WASM 调用及其内部临时 Mat 分配 + let cachedM = null; + let cachedDstTri = null; + // 自适应跳帧状态:4K 帧透视变换耗时(约 30~80ms)可能超过视频帧间隔(33ms), + // 处理不过来时逐帧硬算会堆积阻塞主线程,表现为画面与位置一起卡。 + // 记录每帧处理耗时,处理不过来时复用上一帧,等视频时间推进足够再处理新帧, + // 把"卡死式掉帧"变成"均匀降帧"。 + const FRAME_INTERVAL = 1 / 30; + let lastProcessCost = 0; + let lastProcessTime = -1; const videoEle = this.video.tech().el(); let current = 0; if (this.videoParameters.length > 1 && videoEle && videoEle.requestVideoFrameCallback) { @@ -280,58 +309,147 @@ current = metadata.mediaTime; videoEle.requestVideoFrameCallback(updateCanvas); }; - + videoEle.requestVideoFrameCallback(updateCanvas); } + // setCoordinates 会销毁并重建 source 的 WebGL 顶点缓冲,并触发 source 元数据事件。 + // 原实现用 setTimeout(0),执行时机可能落在渲染中途,与渲染管线形成竞态, + // 报 enableAttributes undefined,视频闪现。这里改为 rAF(帧间隙执行)+ 50ms 节流 + // (位置更新 20Hz 足够平滑)+ 变化阈值,把调用频率和时机收敛到安全范围。 + let coordRafId = 0; + let pendingResult = null; + let lastCoordTime = 0; + let lastAppliedResult = null; + const applyCoords = () => { + coordRafId = 0; + const r = pendingResult; + if (!r) { + return; + } + const now = performance.now(); + if (now - lastCoordTime < 50) { + // 距上次更新不足 50ms,下一帧再试(不丢弃,保证最终位置收敛) + coordRafId = requestAnimationFrame(applyCoords); + return; + } + pendingResult = null; + if (!that.map || !that.map.getSource(that.layerId)) { + return; + } + lastCoordTime = now; + lastAppliedResult = r; + that.map.getSource(that.layerId).setCoordinates([ + [r[0], r[3]], + [r[2], r[3]], + [r[2], r[1]], + [r[0], r[1]] + ]); + }; + const scheduleSetCoordinates = (r) => { + // 变化小于约 1cm 时不更新,避免元数据事件风暴 + if (lastAppliedResult && !pendingResult && + Math.abs(r[0] - lastAppliedResult[0]) < 1e-7 && + Math.abs(r[1] - lastAppliedResult[1]) < 1e-7 && + Math.abs(r[2] - lastAppliedResult[2]) < 1e-7 && + Math.abs(r[3] - lastAppliedResult[3]) < 1e-7) { + return; + } + pendingResult = r; + if (!coordRafId) { + coordRafId = requestAnimationFrame(applyCoords); + } + }; map.addSource(this.layerId, { type: 'video', urls: [url], drawImageCallback(frame) { - if (that.videoParameters.length > 1) { - let time = current || that.video.currentTime(); - let res = that.finder.findNearest(time); - if (res) { - count = res.value; + let src = null; + let dst = null; + let M = null; + try { + let curData = null; + if (that.videoParameters.length > 1) { + let time = current || that.video.currentTime(); + let res = that.finder.findNearest(time); + if (res) { + count = res.value; + } + + if (count) { + curData = that.timeParams[count]; + count = 0; + if (curData) { + that.dsize = curData.dsize; + dstTri = curData.dstTri; + result = curData.result; + scheduleSetCoordinates(result); + } + } } - - if (count) { - let curData = that.timeParams[count]; - count = 0; - if (curData) { - that.dsize = curData.dsize; - dstTri = curData.dstTri; - result = curData.result; - setTimeout(() => { - that.map.getSource(that.layerId).setCoordinates([ - [result[0], result[3]], - [result[2], result[3]], - [result[2], result[1]], - [result[0], result[1]] - ]) - }, 0); + // 自适应跳帧:位置跟随(上方的 scheduleSetCoordinates)照常执行,仅跳过重量级帧处理。 + // 处理耗时超过帧间隔说明算不过来,视频时间推进不足一次处理耗时时直接复用上一帧; + // 上限 0.1s,保证画面最多降到 10fps,不会卡死。 + // 注意 elapsed 必须非负:循环播放/拖拽进度条时视频时间会回退, + // 负值若参与比较会导致跳帧条件恒成立,画面永久停在缓存帧。 + const videoTime = current || that.video.currentTime(); + const elapsed = videoTime - lastProcessTime; + if (lastGoodFrame && lastProcessTime >= 0 && lastProcessCost > FRAME_INTERVAL && + elapsed >= 0 && elapsed < Math.min(lastProcessCost, 0.1)) { + return lastGoodFrame; + } + const processStart = performance.now(); + src = that.cv.matFromImageData(frame); + dst = new that.cv.Mat(); + if (!cachedM || cachedDstTri !== dstTri) { + if (cachedM) { cachedM.delete(); cachedM = null; } + const newM = that.cv.findHomography(srcTri, dstTri); + if (newM && newM.rows && newM.cols) { + cachedM = newM; + cachedDstTri = dstTri; + } else { + if (newM) { newM.delete(); } + throw new Error('findHomography failed'); } } - } - let src = that.cv.matFromImageData(frame); - let dst = new that.cv.Mat(); - let M = that.cv.findHomography(srcTri, dstTri); - that.cv.warpPerspective(src, dst, M, that.dsize); - let newFrame; - if (that.timeParams[count].allContained) { - newFrame = new ImageData(new Uint8ClampedArray(dst.data), dst.cols, dst.rows); - } else { - if (that.videoParameters.length > 1) { - const res = that._updateMask(canvas, that.timeParams[that.beginIndex].realHeight, that.timeParams[that.beginIndex].ratio); - clipMat = res.clipMat; - dst1 = res.dst1; + M = cachedM; + that.cv.warpPerspective(src, dst, M, that.dsize); + let outMat = dst; + if (!that.timeParams[count].allContained) { + dst.copyTo(dst1, clipMat); + outMat = dst1; + } + if (!outFrame || outFrame.width !== outMat.cols || outFrame.height !== outMat.rows) { + outFrame = new ImageData(outMat.cols, outMat.rows); } - dst.copyTo(dst1, clipMat); - newFrame = new ImageData(new Uint8ClampedArray(dst1.data), dst1.cols, dst1.rows); + outFrame.data.set(outMat.data); + src.delete(); + dst.delete(); + // 注意:M 是缓存的单应矩阵(cachedM),不能在此 delete, + // 仅时间参数切换时由缓存替换逻辑释放旧矩阵 + lastProcessCost = (performance.now() - processStart) / 1000; + lastProcessTime = videoTime; + lastGoodFrame = outFrame; + return outFrame; + } catch (err) { + // 单帧处理失败不拖垮渲染循环:返回上一成功帧,视频不停更不消失 + if (src) { src.delete(); } + if (dst) { dst.delete(); } + // M 指向缓存对象 cachedM,不能 delete + const nowErr = Date.now(); + if (!that._lastErrorLogAt || nowErr - that._lastErrorLogAt > 1000) { + that._lastErrorLogAt = nowErr; + // eslint-disable-next-line no-console + console.error('[VideoLayer] process frame error:', err); + } + if (lastGoodFrame) { + return lastGoodFrame; + } + // 首帧即失败时返回与输出同尺寸的空白帧(尺寸必须恒定,否则上传静默失败) + return new ImageData( + Math.max(1, Math.round(that.dsize.width)), + Math.max(1, Math.round(that.dsize.height)) + ); } - src.delete(); - dst.delete(); - M.delete(); - return newFrame; }, coordinates: [ [result[0], result[3]], @@ -401,5 +519,72 @@ const visible = visibility ? 'visible' : 'none'; this.map.setLayoutProperty(this.layerId, 'visibility', visible); } + + /** + * @function VideoLayer.prototype.play + * @description 播放视频。 + */ + play() { + if (this.video) { + this.video.play(); + } + const source = this._getVideoSource(); + if (source && typeof source.play === 'function') { + source.play(); + } + } + + /** + * @function VideoLayer.prototype.pause + * @description 暂停视频。 + */ + pause() { + if (this.video) { + this.video.pause(); + } + const source = this._getVideoSource(); + if (source && typeof source.pause === 'function') { + source.pause(); + } + } + + /** + * @function VideoLayer.prototype.paused + * @description 获取当前视频播放状态。返回 `true` 表示已暂停,返回 `false` 表示正在播放。 + * @returns {boolean} 视频是否暂停。 + */ + paused() { + if (this.video && typeof this.video.paused === 'function') { + return this.video.paused(); + } + return true; + } + + _bindPlaybackEvents() { + if (!this.video) { + return; + } + /** + * @event VideoLayer#play + * @description 视频开始播放时触发。 + */ + this.video.on('play', () => { + this.fire('play'); + }); + /** + * @event VideoLayer#pause + * @description 视频暂停时触发。 + */ + this.video.on('pause', () => { + this.fire('pause'); + }); + } + + _getVideoSource() { + if (!this.map || !this.layerId || typeof this.map.getSource !== 'function') { + return null; + } + return this.map.getSource(this.layerId) || null; + } } \ No newline at end of file diff --git a/test/mapboxgl/control/VideoMapDrawControlSpec.js b/test/mapboxgl/control/VideoMapDrawControlSpec.js new file mode 100644 index 0000000000..67f27c109a --- /dev/null +++ b/test/mapboxgl/control/VideoMapDrawControlSpec.js @@ -0,0 +1,182 @@ +import { VideoMap } from '../../../src/mapboxgl/mapping/VideoMap'; +import { VideoMapDrawControl } from '../../../src/mapboxgl/control/VideoMapDrawControl'; +import { Lang } from '../../../src/common/lang/Lang'; +import mapboxgl from 'mapbox-gl'; +import mbglmap, { revertCRS } from '../../tool/mock_mapboxgl_map'; + +var videoUrl = 'base/resources/data/test.mp4'; + +describe('mapboxgl_VideoMapDrawControl', () => { + var originalTimeout; + var testDiv; + var cv; + + beforeAll(() => { + cv = { + then(cb) { + setTimeout(function () { + cb(); + }, 200); + }, + CV_32FC2: 'CV_32FC2', + CV_64FC1: 'CV_64FC1', + matFromImageData: function () { + return { + delete: function () {} + }; + }, + Size: function () { + return { + width: 770, + height: 690 + }; + }, + matFromArray: function () {}, + Mat: function () { + return { + inv: function () {}, + delete: function () {}, + data64F: [200, 100], + cols: 2, + rows: 2, + data: [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] + }; + }, + gemm: function () {}, + Rodrigues: function () {}, + projectPoints: function () {}, + multiply: function () {}, + subtract: function () {} + }; + }); + + afterEach(() => { + revertCRS(); + document.body.removeChild(testDiv); + jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; + }); + + beforeEach(() => { + spyOn(mapboxgl, 'Map').and.callFake(mbglmap); + testDiv = window.document.createElement('div'); + testDiv.setAttribute('id', 'map'); + testDiv.style.width = '500px'; + testDiv.style.height = '500px'; + window.document.body.appendChild(testDiv); + originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; + jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000; + }); + + function createVideoMap() { + return new VideoMap({ + url: videoUrl, + opencv: cv, + videoParameters: { + fovX: 84, + fovY: 47, + centerX: 960, + centerY: 540, + pitch: -20, + roll: 0, + yaw: 2, + x: 11587478.810629973, + y: 3570800.195541344, + z: 154.50312 + } + }); + } + + it('onAdd renders draw buttons', (done) => { + var videoMap = createVideoMap(); + videoMap.on('load', function () { + var control = new VideoMapDrawControl(); + spyOn(videoMap.map, 'addControl').and.callThrough(); + videoMap.addControl(control, 'top-left'); + expect(videoMap.map.addControl).toHaveBeenCalledWith(control, 'top-left'); + expect(control._container).not.toBeNull(); + expect(control._container.className).toContain('sm-videomap-draw-ctrl'); + expect(control._buttons.point).toBeDefined(); + expect(control._buttons.point.className).toContain('mapbox-gl-draw_point'); + expect(control._buttons.line_string.className).toContain('mapbox-gl-draw_line'); + expect(control._buttons.polygon.className).toContain('mapbox-gl-draw_polygon'); + expect(control._buttons.trash.className).toContain('mapbox-gl-draw_trash'); + expect(control._buttons.line_string).toBeDefined(); + expect(control._buttons.polygon).toBeDefined(); + expect(control._buttons.trash).toBeDefined(); + expect(control._buttons.trash.disabled).toBeTruthy(); + done(); + }); + }); + + it('localizes button title and aria-label', () => { + var originalLanguage = Lang.code; + Lang.code = 'en-US'; + var control = new VideoMapDrawControl(); + var container = control.onAdd({ _smVideoMap: null }); + expect(control._buttons.point.title).toBe('Draw point'); + expect(control._buttons.point.getAttribute('aria-label')).toBe('Draw point'); + expect(container.querySelectorAll('button').length).toBe(4); + control.onRemove(); + Lang.code = originalLanguage; + }); + + it('uses top-left as the default control position', () => { + var control = new VideoMapDrawControl({ position: 'bottom-right' }); + expect(control.getDefaultPosition()).toBe('top-left'); + expect(control.options.position).toBeUndefined(); + }); + + it('buttons change draw mode', (done) => { + var videoMap = createVideoMap(); + videoMap.on('load', function () { + var control = new VideoMapDrawControl(); + videoMap.addControl(control); + control._buttons.point.click(); + expect(videoMap.getDrawUiMode()).toBe('draw_point'); + expect(control._buttons.point.className).toContain('active'); + control._buttons.line_string.click(); + expect(videoMap.getDrawUiMode()).toBe('draw_line_string'); + expect(control._buttons.point.className).not.toContain('active'); + expect(control._buttons.line_string.className).toContain('active'); + control._buttons.line_string.click(); + expect(videoMap.getDrawUiMode()).toBe('simple_select'); + done(); + }); + }); + + it('trash deletes selected feature', (done) => { + var videoMap = createVideoMap(); + videoMap.on('load', function () { + spyOn(videoMap, 'toSpatialCoordinate').and.callFake(function (lngLat) { + return [lngLat.lng, lngLat.lat, 0]; + }); + var control = new VideoMapDrawControl(); + videoMap.addControl(control); + control._buttons.point.click(); + expect(control._buttons.trash.disabled).toBeFalsy(); + videoMap.map.fire('click', { lngLat: { lng: 11587478.81, lat: 3570800.19 } }); + var featureId = videoMap.getDrawData().features[0].id; + expect(videoMap.getDrawSelected().features[0].id).toBe(featureId); + expect(control._buttons.trash.disabled).toBeFalsy(); + control._buttons.trash.click(); + expect(videoMap.getDrawData().features.length).toBe(0); + expect(control._buttons.trash.disabled).toBeTruthy(); + done(); + }); + }); + + it('controls option hides buttons', () => { + var control = new VideoMapDrawControl({ + controls: { point: true, trash: true } + }); + var container = control.onAdd({ + _smVideoMap: null + }); + expect(control._buttons.point).toBeDefined(); + expect(control._buttons.trash).toBeDefined(); + expect(control._buttons.line_string).toBeUndefined(); + expect(control._buttons.polygon).toBeUndefined(); + expect(container.querySelectorAll('button').length).toBe(2); + control.onRemove(); + }); +}); diff --git a/test/mapboxgl/control/VideoPlayControlLayerSpec.js b/test/mapboxgl/control/VideoPlayControlLayerSpec.js new file mode 100644 index 0000000000..9eddaeb4e9 --- /dev/null +++ b/test/mapboxgl/control/VideoPlayControlLayerSpec.js @@ -0,0 +1,218 @@ +import { VideoPlayControl } from '../../../src/mapboxgl/control/VideoPlayControl'; +import { Lang } from '@supermapgis/iclient-common/lang/Lang'; + +function createVideoLayer(initialPaused) { + var paused = initialPaused; + var listeners = {}; + return { + listeners, + on: function (event, callback) { + listeners[event] = callback; + }, + off: function (event, callback) { + if (listeners[event] === callback) { + delete listeners[event]; + } + }, + paused: function () { + return paused; + }, + play: function () { + paused = false; + }, + pause: function () { + paused = true; + }, + fire: function (event) { + if (listeners[event]) { + listeners[event](); + } + } + }; +} + +describe('mapboxgl_VideoPlayControl with VideoLayer', () => { + it('creates a native bottom-left play control', () => { + var videoLayer = createVideoLayer(true); + var control = new VideoPlayControl({ target: videoLayer }); + var container = control.onAdd({}); + + expect(control.getDefaultPosition()).toBe('bottom-left'); + expect(container.className).toContain('sm-mapboxgl-play-ctrl'); + expect(control._button.className).toContain('sm-mapboxgl-play-btn'); + expect(control._button.querySelector('.sm-mapboxgl-play-svg--play')).not.toBeNull(); + expect(control._button.querySelector('.sm-mapboxgl-play-svg--pause')).not.toBeNull(); + expect(control._button.className).toContain('is-paused'); + + control.onRemove(); + }); + + it('applies the configured button size', () => { + var control = new VideoPlayControl({ size: 48 }); + control.onAdd({}); + + expect(control._button.style.width).toBe('48px'); + expect(control._button.style.height).toBe('48px'); + + control.onRemove(); + }); + + it('toggles playback and syncs state from play and pause events', () => { + var videoLayer = createVideoLayer(true); + var control = new VideoPlayControl({ target: videoLayer }); + control.onAdd({}); + spyOn(videoLayer, 'play').and.callThrough(); + spyOn(videoLayer, 'pause').and.callThrough(); + + control._button.click(); + expect(videoLayer.play).toHaveBeenCalled(); + videoLayer.fire('play'); + expect(control._button.className).toContain('is-playing'); + + control._button.click(); + expect(videoLayer.pause).toHaveBeenCalled(); + videoLayer.fire('pause'); + expect(control._button.className).toContain('is-paused'); + + control.onRemove(); + }); + + it('rebinds events when the target changes', () => { + var firstLayer = createVideoLayer(true); + var nextLayer = createVideoLayer(false); + var control = new VideoPlayControl({ target: firstLayer }); + control.onAdd({}); + + control.setTarget(nextLayer); + + expect(firstLayer.listeners.play).toBeUndefined(); + expect(firstLayer.listeners.pause).toBeUndefined(); + expect(nextLayer.listeners.play).toBeDefined(); + expect(nextLayer.listeners.pause).toBeDefined(); + expect(control._button.className).toContain('is-playing'); + + control.onRemove(); + expect(nextLayer.listeners.play).toBeUndefined(); + expect(nextLayer.listeners.pause).toBeUndefined(); + }); + + it('renders custom content from setHTML before and after onAdd', () => { + var videoLayer = createVideoLayer(true); + var control = new VideoPlayControl({ target: videoLayer }); + + expect(control.setHTML('')).toBe(control); + control.onAdd({}); + expect(control._container.querySelector('.my-play')).not.toBeNull(); + expect(control._container.querySelector('.sm-mapboxgl-play-btn')).toBeNull(); + expect(control._button).toBeNull(); + + control.setHTML(''); + expect(control._container.querySelector('.next')).not.toBeNull(); + expect(control._container.querySelector('.my-play')).toBeNull(); + + control.onRemove(); + }); + + it('toggles playback when a custom button is clicked', () => { + var videoLayer = createVideoLayer(true); + var control = new VideoPlayControl({ target: videoLayer }); + control.setHTML(''); + control.onAdd({}); + spyOn(videoLayer, 'play').and.callThrough(); + + control._container.querySelector('.mine').click(); + + expect(videoLayer.play).toHaveBeenCalled(); + expect(control._container.className).toContain('is-paused'); + + var whenPaused = control._container.querySelector('.sm-mapboxgl-play-when-paused'); + expect(whenPaused.style.display).toBe(''); + videoLayer.fire('play'); + expect(whenPaused.style.display).toBe('none'); + + control.onRemove(); + }); + + it('sanitizes dangerous markup passed to setHTML', () => { + var control = new VideoPlayControl(); + control.onAdd({}); + control.setHTML( + '' + + '' + + 'xy' + + '
    ' + + 'z' + ); + var button = control._container; + + expect(button.querySelector('script, iframe, style, foreignObject')).toBeNull(); + expect(button.querySelector('img').hasAttribute('onerror')).toBe(false); + expect(button.querySelector('#a1').hasAttribute('href')).toBe(false); + expect(button.querySelector('#a2').getAttribute('href')).toBe('https://example.com'); + expect(button.querySelector('path').hasAttribute('onclick')).toBe(false); + expect(button.querySelector('.ok').getAttribute('style')).toContain('color'); + expect(window.__xss).toBeUndefined(); + + control.onRemove(); + }); + + it('keeps custom content when the control is added again', () => { + var control = new VideoPlayControl(); + control.setHTML(''); + control.onAdd({}); + control.onRemove(); + control.onAdd({}); + + expect(control._container.querySelector('.again')).not.toBeNull(); + + control.onRemove(); + }); + + it('rejects non-node values in setDOMContent', () => { + var control = new VideoPlayControl(); + + expect(() => control.setDOMContent('')).toThrowError(TypeError); + }); + + it('keeps custom DOM content when playback state changes', () => { + var videoLayer = createVideoLayer(true); + var control = new VideoPlayControl({ target: videoLayer }); + var node = document.createElement('span'); + node.className = 'my-node'; + control.onAdd({}); + + expect(control.setDOMContent(node)).toBe(control); + videoLayer.play(); + videoLayer.fire('play'); + + expect(control._container.firstChild).toBe(node); + expect(control._container.className).toContain('is-playing'); + + control.onRemove(); + }); + + it('localizes play and pause button labels', () => { + var previousCode = Lang.code; + var videoLayer = createVideoLayer(true); + var control = new VideoPlayControl({ target: videoLayer }); + + try { + Lang.code = 'en-US'; + control.onAdd({}); + expect(control._button.title).toBe('Play'); + videoLayer.play(); + control._syncUI(); + expect(control._button.title).toBe('Pause'); + + Lang.code = 'zh-CN'; + control._syncUI(); + expect(control._button.title).toBe('暂停'); + videoLayer.pause(); + control._syncUI(); + expect(control._button.title).toBe('播放'); + } finally { + control.onRemove(); + Lang.code = previousCode; + } + }); +}); \ No newline at end of file diff --git a/test/mapboxgl/control/VideoPlayControlMapSpec.js b/test/mapboxgl/control/VideoPlayControlMapSpec.js new file mode 100644 index 0000000000..a472483df1 --- /dev/null +++ b/test/mapboxgl/control/VideoPlayControlMapSpec.js @@ -0,0 +1,189 @@ +import { VideoMap } from '../../../src/mapboxgl/mapping/VideoMap'; +import { VideoPlayControl } from '../../../src/mapboxgl/control/VideoPlayControl'; +import mapboxgl from 'mapbox-gl'; +import mbglmap, { revertCRS } from '../../tool/mock_mapboxgl_map'; + +var videoUrl = 'base/resources/data/test.mp4'; + +describe('mapboxgl_VideoPlayControl with VideoMap', () => { + var originalTimeout; + var testDiv; + var cv; + + beforeAll(() => { + cv = { + then(cb) { + setTimeout(function () { + cb(); + }, 200); + }, + CV_32FC2: 'CV_32FC2', + CV_64FC1: 'CV_64FC1', + matFromImageData: function () { + return { + delete: function () {} + }; + }, + Size: function () { + return { + width: 770, + height: 690 + }; + }, + matFromArray: function () {}, + Mat: function () { + return { + inv: function () {}, + delete: function () {}, + data64F: [200, 100], + cols: 2, + rows: 2, + data: [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4] + }; + }, + gemm: function () {}, + Rodrigues: function () {}, + projectPoints: function () {}, + multiply: function () {}, + subtract: function () {} + }; + }); + + afterEach(() => { + revertCRS(); + document.body.removeChild(testDiv); + jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; + }); + + beforeEach(() => { + spyOn(mapboxgl, 'Map').and.callFake(mbglmap); + testDiv = window.document.createElement('div'); + testDiv.setAttribute('id', 'map'); + testDiv.style.width = '500px'; + testDiv.style.height = '500px'; + window.document.body.appendChild(testDiv); + originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; + jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000; + }); + + function createVideoMap() { + return new VideoMap({ + url: videoUrl, + opencv: cv, + videoParameters: { + fovX: 84, + fovY: 47, + centerX: 960, + centerY: 540, + pitch: -20, + roll: 0, + yaw: 2, + x: 11587478.810629973, + y: 3570800.195541344, + z: 154.50312 + } + }); + } + + it('onAdd renders circular play button', (done) => { + var videoMap = createVideoMap(); + videoMap.on('load', function () { + var control = new VideoPlayControl(); + spyOn(videoMap.map, 'addControl').and.callThrough(); + videoMap.addControl(control); + expect(videoMap.map.addControl).toHaveBeenCalledWith(control, 'bottom-left'); + expect(control.target).toBe(videoMap); + expect(control._container).not.toBeNull(); + expect(control._container.className).toContain('sm-mapboxgl-play-ctrl'); + expect(control.options.position).toBe('bottom-left'); + expect(control._button).toBeDefined(); + expect(control._button.className).toContain('sm-mapboxgl-play-btn'); + expect(control._button.querySelector('.sm-mapboxgl-play-svg--play')).not.toBeNull(); + expect(control._button.querySelector('.sm-mapboxgl-play-svg--pause')).not.toBeNull(); + done(); + }); + }); + + it('bottom-right uses the native map control position', (done) => { + var videoMap = createVideoMap(); + videoMap.on('load', function () { + var control = new VideoPlayControl(); + spyOn(videoMap.map, 'addControl').and.callThrough(); + videoMap.addControl(control, 'bottom-right'); + expect(videoMap.map.addControl).toHaveBeenCalledWith(control, 'bottom-right'); + expect(control.options.position).toBe('bottom-left'); + done(); + }); + }); + + it('does not replace an explicit target when added to VideoMap', (done) => { + var videoMap = createVideoMap(); + var videoLayer = { + on: function () {}, + off: function () {}, + paused: function () { + return true; + }, + play: function () {}, + pause: function () {} + }; + videoMap.on('load', function () { + var control = new VideoPlayControl({ target: videoLayer }); + videoMap.addControl(control); + expect(control.target).toBe(videoLayer); + done(); + }); + }); + + it('click toggles play and pause', (done) => { + var videoMap = createVideoMap(); + videoMap.on('load', function () { + var control = new VideoPlayControl(); + videoMap.addControl(control, 'bottom-right'); + spyOn(videoMap, 'paused').and.returnValue(true); + spyOn(videoMap, 'play'); + control._button.click(); + expect(videoMap.play).toHaveBeenCalled(); + videoMap.paused.and.returnValue(false); + spyOn(videoMap, 'pause'); + control._button.click(); + expect(videoMap.pause).toHaveBeenCalled(); + done(); + }); + }); + + it('play and pause events sync button state', (done) => { + var videoMap = createVideoMap(); + videoMap.on('load', function () { + var control = new VideoPlayControl(); + videoMap.addControl(control); + spyOn(videoMap, 'paused').and.returnValue(false); + videoMap.fire('play'); + expect(control._button.className).toContain('is-playing'); + expect(control._button.title).toBe('暂停'); + videoMap.paused.and.returnValue(true); + videoMap.fire('pause'); + expect(control._button.className).toContain('is-paused'); + expect(control._button.title).toBe('播放'); + done(); + }); + }); + + it('size option sets button diameter', () => { + var control = new VideoPlayControl({ size: 48 }); + var container = control.onAdd({ + _smVideoMap: null + }); + expect(control._button.style.width).toBe('48px'); + expect(control._button.style.height).toBe('48px'); + expect(control.getDefaultPosition()).toBe('bottom-left'); + expect(container.className).not.toContain('overlay'); + control.onRemove(); + }); + + it('uses bottom-left as the native default position', () => { + var control = new VideoPlayControl(); + expect(control.getDefaultPosition()).toBe('bottom-left'); + }); + +}); diff --git a/test/mapboxgl/mapping/VideoMapSpec.js b/test/mapboxgl/mapping/VideoMapSpec.js index 26f1dbdd25..62ca3d0681 100644 --- a/test/mapboxgl/mapping/VideoMapSpec.js +++ b/test/mapboxgl/mapping/VideoMapSpec.js @@ -68,6 +68,8 @@ describe('mapboxgl_videoMap', () => { var videoMap = new VideoMap({ url: url, opencv: cv, + interval: 0.2, + vectorUpdateInterval: 0.05, videoParameters: { fovX: 84, fovY: 47, @@ -82,8 +84,77 @@ describe('mapboxgl_videoMap', () => { } }); videoMap.on('load', function () { + expect(videoMap.vectorUpdateInterval).toBe(0.2); expect(videoMap.coordTransfer).not.toBe(null); expect(videoMap.videoParameters).not.toBe(null); + var clickEvent; + videoMap.on('click', function (event) { + clickEvent = event; + }); + videoMap.originCoordsLeftTop = { lng: 0, lat: 100 }; + videoMap.originCoordsRightBottom = { lng: 100, lat: 0 }; + videoMap.videoWidth = 100; + videoMap.videoHeight = 100; + spyOn(videoMap.coordTransfer, 'toSpatialCoordinate').and.returnValue([13358338.895192828, 3503549.8435043753, 0]); + videoMap.map.fire('click', { lngLat: { lng: 120, lat: 30 }, point: { x: 10, y: 20 } }); + expect(clickEvent.lngLat.lng).toBeCloseTo(120, 6); + expect(clickEvent.lngLat.lat).toBeCloseTo(30, 6); + expect(clickEvent.point).toEqual({ x: 10, y: 20 }); + expect(clickEvent.mapEvent.lngLat).toEqual({ lng: 120, lat: 30 }); + var container = {}; + var projectedPoint = { x: 10, y: 20 }; + spyOn(videoMap.map, 'getContainer').and.returnValue(container); + videoMap.map.project = jasmine.createSpy('project').and.returnValue(projectedPoint); + spyOn(videoMap.coordTransfer, 'toVideoCoordinate').and.returnValue({ data64F: [50, 50] }); + expect(videoMap.getContainer()).toBe(container); + expect(videoMap.project({ lng: 120, lat: 30 })).toBe(projectedPoint); + expect(videoMap.map.project).toHaveBeenCalledWith(jasmine.objectContaining({ lng: 50, lat: 50 })); + videoMap.map.project.calls.reset(); + videoMap.coordTransfer.toVideoCoordinate.calls.reset(); + expect(videoMap.projectVideoMapCoordinate([60, 70])).toBe(projectedPoint); + expect(videoMap.map.project).toHaveBeenCalledWith(jasmine.objectContaining({ lng: 60, lat: 70 })); + expect(videoMap.coordTransfer.toVideoCoordinate).not.toHaveBeenCalled(); + expect(videoMap.transform).toBe(videoMap.map.transform); + var getMaxZoom = spyOn(videoMap.map, 'getMaxZoom').and.callThrough(); + expect(videoMap.getMaxZoom()).toBe(videoMap.map.maxZoom); + expect(getMaxZoom.calls.mostRecent().object).toBe(videoMap.map); + expect(videoMap.addLayer).toBe(VideoMap.prototype.addLayer); + done(); + }); + }); + + it('getVideoBounds returns the closed EPSG:4326 footprint polygon', (done) => { + var videoMap = new VideoMap({ + url: videoUrl, + opencv: cv, + videoParameters: { + fovX: 84, + fovY: 47, + centerX: 960, + centerY: 540, + pitch: -20, + roll: 0, + yaw: 2, + x: 11587478.810629973, + y: 3570800.195541344, + z: 154.50312 + } + }); + videoMap.on('load', function () { + videoMap.videoWidth = 100; + videoMap.videoHeight = 50; + spyOn(videoMap.coordTransfer, 'toSpatialCoordinate').and.callFake(function (pixel) { + return [11587478 + pixel[0], 3570800 - pixel[1], 0]; + }); + var footprint = videoMap.getVideoBounds(); + expect(footprint.type).toBe('Feature'); + expect(footprint.geometry.type).toBe('Polygon'); + expect(footprint.geometry.coordinates[0].length).toBe(5); + expect(footprint.geometry.coordinates[0][4]).toEqual(footprint.geometry.coordinates[0][0]); + footprint.geometry.coordinates[0].forEach(function (coord) { + expect(Math.abs(coord[0])).toBeLessThan(180); + expect(Math.abs(coord[1])).toBeLessThan(90); + }); done(); }); }); @@ -226,4 +297,144 @@ describe('mapboxgl_videoMap', () => { done(); }, 2000); }); + + it('play pause', (done) => { + var videoMap = new VideoMap({ + url: videoUrl, + opencv: cv, + videoParameters: { + fovX: 84, + fovY: 47, + centerX: 960, + centerY: 540, + pitch: -20, + roll: 0, + yaw: 2, + x: 11587478.810629973, + y: 3570800.195541344, + z: 154.50312 + } + }); + videoMap.on('load', function () { + spyOn(videoMap.videoMapLayer, 'play').and.callThrough(); + spyOn(videoMap.videoMapLayer, 'pause').and.callThrough(); + videoMap.pause(); + expect(videoMap.videoMapLayer.pause).toHaveBeenCalled(); + expect(videoMap.paused()).toBeDefined(); + videoMap.play(); + expect(videoMap.videoMapLayer.play).toHaveBeenCalled(); + done(); + }); + }); + + it('draw point line polygon', (done) => { + var videoMap = new VideoMap({ + url: videoUrl, + opencv: cv, + videoParameters: { + fovX: 84, + fovY: 47, + centerX: 960, + centerY: 540, + pitch: -20, + roll: 0, + yaw: 2, + x: 11587478.810629973, + y: 3570800.195541344, + z: 154.50312 + } + }); + videoMap.on('load', function () { + spyOn(videoMap, 'toSpatialCoordinate').and.callFake(function (lngLat) { + return [lngLat.lng, lngLat.lat, 0]; + }); + + expect(videoMap.getDrawMode()).toBeNull(); + expect(videoMap.getDrawData().features.length).toBe(0); + + videoMap.startDraw('Point'); + expect(videoMap.getDrawMode()).toBe('Point'); + videoMap.map.fire('click', { lngLat: { lng: 11587478.81, lat: 3570800.19 } }); + expect(videoMap.getDrawData().features.length).toBe(1); + expect(videoMap.getDrawData().features[0].geometry.type).toBe('Point'); + expect(videoMap.getDrawData().features[0].geometry.coordinates.length).toBe(3); + expect(videoMap.getDrawUiMode()).toBe('simple_select'); + expect(videoMap.getDrawSelected().features.length).toBe(1); + + videoMap.startDraw('LineString'); + videoMap.map.fire('click', { lngLat: { lng: 11587478.81, lat: 3570800.19 } }); + videoMap.map.fire('click', { lngLat: { lng: 11587578.81, lat: 3570900.19 } }); + expect(videoMap.finishDraw().geometry.type).toBe('LineString'); + expect(videoMap.getDrawData().features.length).toBe(2); + + videoMap.startDraw('Polygon'); + videoMap.map.fire('click', { lngLat: { lng: 11587478.81, lat: 3570800.19 } }); + videoMap.map.fire('click', { lngLat: { lng: 11587578.81, lat: 3570800.19 } }); + videoMap.map.fire('click', { lngLat: { lng: 11587578.81, lat: 3570900.19 } }); + var polygon = videoMap.finishDraw(); + expect(polygon.geometry.type).toBe('Polygon'); + expect(polygon.geometry.coordinates[0].length).toBe(4); + expect(videoMap.getDrawData().features.length).toBe(3); + + videoMap.cancelDraw(); + expect(videoMap.getDrawMode()).toBeNull(); + videoMap.clearDraw(); + expect(videoMap.getDrawData().features.length).toBe(0); + expect(function () { + videoMap.startDraw('Circle'); + }).toThrow(); + + expect(videoMap.getDrawUiMode()).toBe('simple_select'); + videoMap.changeDrawMode('draw_point'); + expect(videoMap.getDrawUiMode()).toBe('draw_point'); + expect(videoMap.getDrawMode()).toBe('Point'); + videoMap.changeDrawMode('simple_select'); + expect(videoMap.getDrawMode()).toBeNull(); + done(); + }); + }); + + it('draw select and delete', (done) => { + var videoMap = new VideoMap({ + url: videoUrl, + opencv: cv, + videoParameters: { + fovX: 84, + fovY: 47, + centerX: 960, + centerY: 540, + pitch: -20, + roll: 0, + yaw: 2, + x: 11587478.810629973, + y: 3570800.195541344, + z: 154.50312 + } + }); + videoMap.on('load', function () { + spyOn(videoMap, 'toSpatialCoordinate').and.callFake(function (lngLat) { + return [lngLat.lng, lngLat.lat, 0]; + }); + videoMap.startDraw('Point'); + videoMap.map.fire('click', { lngLat: { lng: 11587478.81, lat: 3570800.19 } }); + var featureId = videoMap.getDrawData().features[0].id; + expect(featureId).toBeDefined(); + expect(videoMap.getDrawSelected().features.length).toBe(1); + expect(videoMap.getDrawSelected().features[0].id).toBe(featureId); + + videoMap.changeDrawMode('simple_select'); + spyOn(videoMap.map, 'queryRenderedFeatures').and.returnValue([{ id: featureId }]); + videoMap.map.fire('click', { + lngLat: { lng: 11587478.81, lat: 3570800.19 }, + point: { x: 10, y: 10 } + }); + expect(videoMap.getDrawSelected().features.length).toBe(1); + expect(videoMap.getDrawSelected().features[0].id).toBe(featureId); + + videoMap.deleteDraw(); + expect(videoMap.getDrawData().features.length).toBe(0); + expect(videoMap.getDrawSelected().features.length).toBe(0); + done(); + }); + }); }); diff --git a/test/mapboxgl/mapping/VideoMapUtilSpec.js b/test/mapboxgl/mapping/VideoMapUtilSpec.js new file mode 100644 index 0000000000..cb73168d43 --- /dev/null +++ b/test/mapboxgl/mapping/VideoMapUtilSpec.js @@ -0,0 +1,77 @@ +import { + shortestAngleDelta, + lerpAngle, + interpolateCameraPose, + resolveCameraPose, + findHeadingSweep, + ANGLE_SNAP_THRESHOLD, + HEADING_SWEEP_HOLD_RATIO +} from '../../../src/mapboxgl/mapping/utils/VideoMapUtil'; + +function makePose(time, yaw, extra = {}) { + return { + time, + yaw, + pitch: 0, + roll: 0, + x: extra.x != null ? extra.x : 0, + y: 0, + z: 0, + fovX: 60, + fovY: 40, + centerX: 0, + centerY: 0 + }; +} + +describe('VideoMapUtil camera pose interpolation', () => { + it('shortestAngleDelta should take the short arc across 180', () => { + expect(shortestAngleDelta(179, -179)).toBeCloseTo(2, 6); + expect(shortestAngleDelta(-179, 179)).toBeCloseTo(-2, 6); + expect(Math.abs(shortestAngleDelta(0, 180))).toBeCloseTo(180, 6); + }); + + it('lerpAngle should not rotate the long way from 179 to -179', () => { + expect(lerpAngle(179, -179, 0.5)).toBeCloseTo(180, 5); + }); + + it('small heading change should keep time-based interpolation', () => { + const prev = makePose(0, 10); + const next = makePose(1, 20); + expect(interpolateCameraPose(prev, next, 0.5).yaw).toBeCloseTo(15, 5); + expect(resolveCameraPose([prev, next], 0.5).yaw).toBeCloseTo(15, 5); + }); + + it('single 180deg jump should stay on A until near B', () => { + const params = [makePose(0, 0, { x: 0 }), makePose(0.2, 180, { x: 10 })]; + expect(ANGLE_SNAP_THRESHOLD).toBe(45); + expect(resolveCameraPose(params, 0.1).yaw).toBe(0); + expect(resolveCameraPose(params, 0.1).x).toBe(0); + expect(resolveCameraPose(params, 0.2 * HEADING_SWEEP_HOLD_RATIO - 0.001).yaw).toBe(0); + expect(resolveCameraPose(params, 0.2 * HEADING_SWEEP_HOLD_RATIO).yaw).toBe(180); + expect(resolveCameraPose(params, 0.2 * HEADING_SWEEP_HOLD_RATIO).x).toBe(10); + }); + + it('45deg resampled steps should not show B-side pose around 20deg', () => { + const params = [0, 45, 90, 135, 180].map((yaw, i) => makePose(i * 0.1, yaw, { x: yaw })); + expect(findHeadingSweep(params, 0).end.yaw).toBe(180); + expect(resolveCameraPose(params, 0.05).yaw).toBe(0); + expect(resolveCameraPose(params, 0.18).yaw).toBe(0); + expect(resolveCameraPose(params, 0.3).yaw).toBe(0); + expect(resolveCameraPose(params, 0.39).yaw).toBe(180); + }); + + it('20deg keyframe steps over a short 180deg sweep should stay on A until near B', () => { + const params = []; + for (let i = 0; i <= 9; i++) { + params.push(makePose(i * 0.04, i * 20, { x: i * 20 })); + } + expect(findHeadingSweep(params, 3).start.yaw).toBe(0); + expect(findHeadingSweep(params, 3).end.yaw).toBe(180); + expect(resolveCameraPose(params, 0.04).yaw).toBe(0); + expect(resolveCameraPose(params, 0.08).yaw).toBe(0); + expect(resolveCameraPose(params, 0.16).yaw).toBe(0); + expect(resolveCameraPose(params, 0.32).yaw).toBe(0); + expect(resolveCameraPose(params, 0.35).yaw).toBe(180); + }); +}); diff --git a/test/mapboxgl/mapping/clipVideoMapGeometrySpec.js b/test/mapboxgl/mapping/clipVideoMapGeometrySpec.js new file mode 100644 index 0000000000..4bd9e185d4 --- /dev/null +++ b/test/mapboxgl/mapping/clipVideoMapGeometrySpec.js @@ -0,0 +1,170 @@ +import { + clipSegmentToRect, + clipPolylineToRect, + clipPolygonToRect, + clipPolylineNearPlane, + getImageClipRect, + isInImageRect, + transformVideoMapGeoJSON, + CAMERA_Z_NEAR +} from '../../../src/mapboxgl/mapping/utils/clipVideoMapGeometry'; + +describe('clipVideoMapGeometry', () => { + const rect = { minX: 0, minY: 0, maxX: 100, maxY: 100 }; + + it('getImageClipRect should expand by margin', () => { + const clipRect = getImageClipRect(1000, 500, 0.05); + expect(clipRect.minX).toBe(-50); + expect(clipRect.minY).toBe(-25); + expect(clipRect.maxX).toBe(1050); + expect(clipRect.maxY).toBe(525); + }); + + it('isInImageRect should detect inside and outside', () => { + expect(isInImageRect([10, 10], rect)).toBe(true); + expect(isInImageRect([-1, 10], rect)).toBe(false); + expect(isInImageRect(null, rect)).toBe(false); + }); + + it('clipSegmentToRect should keep inner segment', () => { + const clipped = clipSegmentToRect(-50, 50, 150, 50, rect); + expect(clipped[0][0]).toBe(0); + expect(clipped[1][0]).toBe(100); + expect(clipped[0][1]).toBe(50); + }); + + it('clipSegmentToRect should drop fully outside segment', () => { + expect(clipSegmentToRect(-10, -10, -1, -1, rect)).toBeNull(); + }); + + it('clipPolylineToRect should split when leaving the rect', () => { + const parts = clipPolylineToRect( + [ + [10, 10], + [90, 10], + [200, 10], + [200, 50], + [50, 50] + ], + rect + ); + expect(parts.length).toBe(2); + expect(parts[0][0][0]).toBe(10); + expect(parts[1][parts[1].length - 1][0]).toBe(50); + }); + + it('clipPolygonToRect should clip a square crossing the boundary', () => { + const clipped = clipPolygonToRect( + [ + [-20, -20], + [120, -20], + [120, 120], + [-20, 120], + [-20, -20] + ], + rect + ); + expect(clipped.length).toBeGreaterThan(3); + clipped.forEach((point) => { + expect(point[0]).toBeGreaterThanOrEqual(0); + expect(point[0]).toBeLessThanOrEqual(100); + expect(point[1]).toBeGreaterThanOrEqual(0); + expect(point[1]).toBeLessThanOrEqual(100); + }); + }); + + it('clipPolylineNearPlane should drop behind-camera points and insert intersection', () => { + const projectFn = (camera) => [camera[0] / camera[2], camera[1] / camera[2]]; + const parts = clipPolylineNearPlane( + [ + { camera: [0, 0, 10], uv: [0, 0] }, + { camera: [0, 0, -10], uv: null }, + { camera: [10, 0, 10], uv: [1, 0] } + ], + CAMERA_Z_NEAR, + projectFn + ); + expect(parts.length).toBe(2); + expect(parts[0][parts[0].length - 1].camera[2]).toBe(CAMERA_Z_NEAR); + expect(parts[1][0].camera[2]).toBe(CAMERA_Z_NEAR); + }); + + it('transformVideoMapGeoJSON should drop behind-camera points', () => { + const videoMap = { + videoWidth: 100, + videoHeight: 100, + originCoordsLeftTop: { lng: 0, lat: 1 }, + originCoordsRightBottom: { lng: 1, lat: 0 }, + coordTransfer: { + toCameraCoordinate: (coord) => { + if (coord[0] < 0) { + return [0, 0, -1]; + } + return [50, 50, 10]; + }, + projectCameraToVideo: (camera) => { + if (!(camera[2] > CAMERA_Z_NEAR)) { + return null; + } + return [50, 50]; + } + } + }; + const result = transformVideoMapGeoJSON( + { + type: 'FeatureCollection', + features: [ + { + type: 'Feature', + properties: { id: 1 }, + geometry: { type: 'Point', coordinates: [-1, 0] } + }, + { + type: 'Feature', + properties: { id: 2 }, + geometry: { type: 'Point', coordinates: [1, 0] } + } + ] + }, + videoMap + ); + expect(result.features.length).toBe(1); + expect(result.features[0].properties.id).toBe(2); + }); + + it('transformVideoMapGeoJSON should clip line to image rect', () => { + const cameras = [ + [-50, 50, 10], + [150, 50, 10] + ]; + let index = 0; + const videoMap = { + videoWidth: 100, + videoHeight: 100, + originCoordsLeftTop: { lng: 0, lat: 1 }, + originCoordsRightBottom: { lng: 1, lat: 0 }, + coordTransfer: { + toCameraCoordinate: () => cameras[index++], + projectCameraToVideo: (camera) => [camera[0], camera[1]] + } + }; + const result = transformVideoMapGeoJSON( + { + type: 'Feature', + properties: {}, + geometry: { + type: 'LineString', + coordinates: [ + [0, 0], + [1, 0] + ] + } + }, + videoMap + ); + expect(result.geometry.type).toBe('LineString'); + expect(result.geometry.coordinates.length).toBe(2); + expect(result.geometry.coordinates[0][0]).toBeCloseTo(0, 5); + expect(result.geometry.coordinates[1][0]).toBeCloseTo(1, 5); + }); +}); diff --git a/test/mapboxgl/overlay/VideoLayerSpec.js b/test/mapboxgl/overlay/VideoLayerSpec.js index b4362fffa4..084fa1513d 100644 --- a/test/mapboxgl/overlay/VideoLayerSpec.js +++ b/test/mapboxgl/overlay/VideoLayerSpec.js @@ -387,4 +387,46 @@ describe('mapboxgl_VideoLayer', () => { done(); }, 3000); }); + + it('play pause', (done) => { + const videoLayer = new VideoLayer({ + opencv: cv, + url: videoUrl, + clipRegion: [ + [0, 0], + [1920, 0], + [1920, 900], + [0, 900] + ], + videoParameters: { + fovX: 84, + fovY: 47, + centerX: 960, + centerY: 540, + pitch: -20, + roll: 0, + yaw: 2, + x: 11587478.810629973, + y: 3570800.195541344, + z: 154.50312 + }, + extent: [ + [116.14394400766855, 28.249134537249257], + [116.143464581289, 28.252977295834056], + [116.14734767029731, 28.251762901914655], + [116.14737169684759, 28.25095489453961] + ] + }); + videoLayer.onAdd(map); + setTimeout(() => { + spyOn(videoLayer.video, 'play').and.callThrough(); + spyOn(videoLayer.video, 'pause').and.callThrough(); + videoLayer.pause(); + expect(videoLayer.video.pause).toHaveBeenCalled(); + expect(videoLayer.paused()).toBeDefined(); + videoLayer.play(); + expect(videoLayer.video.play).toHaveBeenCalled(); + done(); + }, 3000); + }); }); diff --git a/test/test-main-mapboxgl.js b/test/test-main-mapboxgl.js index 1acab239b0..830d20823f 100644 --- a/test/test-main-mapboxgl.js +++ b/test/test-main-mapboxgl.js @@ -3,6 +3,9 @@ import './mapboxgl/core/UtilSpec.js'; /*mapboxgl -- control*/ import './mapboxgl/control/LogoSpec.js'; +import './mapboxgl/control/VideoMapDrawControlSpec.js'; +import './mapboxgl/control/VideoPlayControlLayerSpec.js'; +import './mapboxgl/control/VideoPlayControlMapSpec.js'; /*mapboxgl -- overlay*/ import './mapboxgl/overlay/mapv/MapvDataSetSpec.js'; @@ -85,4 +88,6 @@ import './mapboxgl/mapping/WebMapV2Spec.js'; import './mapboxgl/mapping/WebMapV3Spec.js'; import './mapboxgl/mapping/InitMapSpec.js'; import './mapboxgl/mapping/VideoMapSpec.js'; +import './mapboxgl/mapping/clipVideoMapGeometrySpec.js'; +import './mapboxgl/mapping/VideoMapUtilSpec.js'; import './mapboxgl/mapping/WebMapV22Spec.js'; diff --git a/test/tool/mock_mapboxgl_map.js b/test/tool/mock_mapboxgl_map.js index 2307604541..5b17507962 100644 --- a/test/tool/mock_mapboxgl_map.js +++ b/test/tool/mock_mapboxgl_map.js @@ -174,7 +174,8 @@ const Map = function (options) { if (sourceInfo && sourceInfo.type === 'video') { return { setCoordinates: function () {}, - play: function () {} + play: function () {}, + pause: function () {} }; } if (sourceInfo && sourceInfo.type === 'geojson') {